|
@@ -1,68 +1,72 @@
|
|
|
<template>
|
|
|
<view>
|
|
|
- <cu-custom :backUrl="'/pages/index/index?id=apps'" :isBack="true" bgColor="bg-gradual-blue" >
|
|
|
+ <cu-custom :backUrl="'/pages/index/index?id=apps'" :isBack="true" bgColor="bg-gradual-blue">
|
|
|
<block slot="content">建筑垃圾处理</block>
|
|
|
</cu-custom>
|
|
|
- <u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" :rules="rules" ref="inputForm" v-if="!nodeFlag" >
|
|
|
-
|
|
|
-
|
|
|
- <u-form-item label="巡视工单" prop="no"
|
|
|
- :rules="[
|
|
|
- ]">
|
|
|
- <u--input v-model="inputForm.no" :disabled="true" placeholder="工单编号" clearable></u--input>
|
|
|
- </u-form-item>
|
|
|
-
|
|
|
- <u-form-item label="处理单位" borderBottom prop="processingUnit" :required="true">
|
|
|
- <jp-picker v-model="inputForm.processingUnit" rangeKey="label" rangeValue="value" :range="[
|
|
|
- { label: '审计费', value: '1' },
|
|
|
- { label: '工程审核费', value: '2' },
|
|
|
- { label: '咨询费', value: '3' },
|
|
|
- { label: '预算编制费', value: '4' },
|
|
|
- { label: '招标代理费', value: '5' },
|
|
|
- { label: '司法鉴定费', value: '6' },
|
|
|
- { label: '其他', value: '8' },
|
|
|
- { label: '技术服务费', value: '9' },
|
|
|
- { label: '鉴证咨询服务*评估费', value: '10' },
|
|
|
- { label: '其他咨询服务*专家咨询费', value: '11' },
|
|
|
- { label: '会计服务', value: '12' },
|
|
|
- { label: '竣工决算编制费', value: '13' },
|
|
|
- { label: '*信息技术服务*技术服务费', value: '14' },
|
|
|
- ]" ></jp-picker>
|
|
|
- </u-form-item>
|
|
|
-
|
|
|
- <u-form-item label="清运专员" prop="clearUserName"
|
|
|
- :rules="[
|
|
|
- ]">
|
|
|
- <u--input v-model="inputForm.clearUserName" :disabled="true" placeholder="清运专员" clearable></u--input>
|
|
|
- </u-form-item>
|
|
|
-
|
|
|
- <u-form-item label="联系方式" prop="clearUserMobile"
|
|
|
- :rules="[
|
|
|
- ]">
|
|
|
- <u--input v-model="inputForm.clearUserMobile" :disabled="true" placeholder="联系方式" clearable></u--input>
|
|
|
- </u-form-item>
|
|
|
-
|
|
|
- <view class="u-demo-block">
|
|
|
- <text class="u-demo-block__title">基础用法</text>
|
|
|
- <view class="u-demo-block__content">
|
|
|
- <view class="u-page__upload-item">
|
|
|
- <u-upload
|
|
|
- :fileList="fileList1"
|
|
|
- @afterRead="afterRead"
|
|
|
- @delete="deletePic"
|
|
|
- name="1"
|
|
|
- multiple
|
|
|
- :maxCount="10"
|
|
|
- ></u-upload>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
+
|
|
|
+ <!-- First Section: 巡视工单 to 联系方式 -->
|
|
|
+ <view class="form-section">
|
|
|
+ <u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" :rules="rules" ref="inputForm" v-if="!nodeFlag">
|
|
|
+
|
|
|
+ <u-form-item label="巡视工单" prop="no">
|
|
|
+ <u--input v-model="inputForm.no" :disabled="true" placeholder="工单编号" clearable></u--input>
|
|
|
+ </u-form-item>
|
|
|
+
|
|
|
+ <u-form-item label="处理单位" borderBottom prop="processingUnit" :required="true" v-if="!disFlag">
|
|
|
+ <jp-picker v-model="inputForm.processingUnit" rangeKey="label" rangeValue="value" :range="processingUnits" @input="getUserInfoByOffId"></jp-picker>
|
|
|
+ </u-form-item>
|
|
|
+
|
|
|
+ <u-form-item label="处理单位" borderBottom prop="processingUnitName" :required="true" v-else-if="disFlag">
|
|
|
+ <u--input v-model="inputForm.processingUnitName" :disabled="true" placeholder="处理单位" clearable></u--input>
|
|
|
+ </u-form-item>
|
|
|
+
|
|
|
+ <u-form-item label="清运专员" prop="clearUserName">
|
|
|
+ <u--input v-model="inputForm.clearUserName" :disabled="true" placeholder="清运专员" clearable></u--input>
|
|
|
+ </u-form-item>
|
|
|
+
|
|
|
+ <u-form-item label="联系方式" prop="clearUserMobile">
|
|
|
+ <u--input v-model="inputForm.clearUserMobile" :disabled="true" placeholder="联系方式" clearable></u--input>
|
|
|
+ </u-form-item>
|
|
|
+ </u--form>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- Second Section: 上传图片 -->
|
|
|
+ <view class="form-section">
|
|
|
+ <text class="u-demo-block__title">现场照片</text>
|
|
|
+ <view class="u-page__upload-item">
|
|
|
+ <u-upload
|
|
|
+ :fileList="fileList1"
|
|
|
+ @afterRead="afterRead"
|
|
|
+ @delete="deletePic"
|
|
|
+ name="1"
|
|
|
+ multiple
|
|
|
+ :maxCount="10"
|
|
|
+ ></u-upload>
|
|
|
</view>
|
|
|
+ </view>
|
|
|
|
|
|
- </u--form>
|
|
|
+ <!-- Third Section: 备注 -->
|
|
|
+ <view class="form-section">
|
|
|
+ <u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" :rules="rules" ref="inputForm" v-if="!nodeFlag">
|
|
|
+ <u-form-item label="备注" borderBottom prop="remarks">
|
|
|
+ <u--textarea placeholder='请填写备注' :maxlength="500" v-model="inputForm.remarks"></u--textarea>
|
|
|
+ </u-form-item>
|
|
|
+
|
|
|
+ <view class="button-container">
|
|
|
+ <u-button
|
|
|
+ text="提交"
|
|
|
+ size="large"
|
|
|
+ type="primary"
|
|
|
+ @click="saveForm"
|
|
|
+ ></u-button>
|
|
|
+ </view>
|
|
|
+ </u--form>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ import overService from '@/api/garbageClearance/overService'
|
|
|
import {mapState, mapMutations, mapActions} from 'vuex'
|
|
|
import * as $auth from "../../common/auth";
|
|
|
export default {
|
|
@@ -74,43 +78,73 @@
|
|
|
}),
|
|
|
data () {
|
|
|
return {
|
|
|
+ disFlag: true, // 启用动态获取处理单位则设置为false
|
|
|
+ processingUnits: [],
|
|
|
fileList1: [],
|
|
|
nodeFlag: false,
|
|
|
inputForm: {
|
|
|
no: '',
|
|
|
processingUnit: '',
|
|
|
+ processingUnitName: '',
|
|
|
clearUserId: '',
|
|
|
clearUserName: '',
|
|
|
- clearUserMobile: ''
|
|
|
+ clearUserMobile: '',
|
|
|
+ remarks: '',
|
|
|
},
|
|
|
rules: {
|
|
|
- /*'billingWorkplaceReal': [
|
|
|
+ 'processingUnit': [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: '实际开票单位不能为空',
|
|
|
+ message: '处理单位不能为空',
|
|
|
trigger: ['blur', 'change']
|
|
|
}
|
|
|
- ],*/
|
|
|
+ ],
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- /*ossService: null,
|
|
|
- materialTypeService: null,
|
|
|
- wareHouseService: null,
|
|
|
- commonApi: null,*/
|
|
|
// 页面加载时执行
|
|
|
- created() {
|
|
|
+ async created() {
|
|
|
+
|
|
|
+ let data = await overService.getMaxNo();
|
|
|
+ if (data) {
|
|
|
+ let newNo = parseInt(data, 10) + 1;
|
|
|
+ this.inputForm.no = 'XJ-J' + newNo;
|
|
|
+ } else {
|
|
|
+ // 获取当前年份
|
|
|
+ let nowY = new Date().getFullYear();
|
|
|
+ this.inputForm.no = 'XJ-J' + nowY + '0001';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果要使用动态获取处理单位则设置为true
|
|
|
+ if (false) {
|
|
|
+ let units = await overService.getProcessingUnit();
|
|
|
+ let childs = units[0].children;
|
|
|
+
|
|
|
+ if (childs) {
|
|
|
+ this.processingUnits = []; // 初始化数组
|
|
|
+
|
|
|
+ for (let i = 0; i < childs.length; i++) {
|
|
|
+ this.processingUnits.push({
|
|
|
+ label: childs[i].name,
|
|
|
+ value: childs[i].id
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- /*this.ossService = new OSSService()
|
|
|
- this.commonApi = new CommonApi()
|
|
|
- this.materialTypeService = new MaterialTypeService()
|
|
|
- this.wareHouseService = new WareHouseService()
|
|
|
+ this.inputForm.processingUnit = this.userInfo.officeDTO.id
|
|
|
+ this.inputForm.processingUnitName = this.userInfo.officeDTO.name
|
|
|
+ // 不动态获取 根据当前登录人去查
|
|
|
+ await overService.getUserInfoByOffId(this.userInfo.officeDTO.id)
|
|
|
+ .then(data => {
|
|
|
+ this.inputForm.clearUserId = data.id
|
|
|
+ this.inputForm.clearUserName = data.name
|
|
|
+ this.inputForm.clearUserMobile = data.mobile
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ throw e;
|
|
|
+ });
|
|
|
|
|
|
- this.inputForm.actualDrawerEmailAddress = this.userInfo.email
|
|
|
- this.inputForm.handledBy = this.userInfo.name
|
|
|
- this.inputForm.handledById = this.userInfo.id
|
|
|
- this.inputForm.handledByOffice = this.userInfo.officeDTO.id
|
|
|
- this.inputForm.handledByOfficeName = this.userInfo.officeDTO.name*/
|
|
|
|
|
|
},
|
|
|
props: {
|
|
@@ -251,14 +285,26 @@
|
|
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
|
},
|
|
|
saveForm(callback) {
|
|
|
+
|
|
|
return new Promise((resolve, reject) => {
|
|
|
// 表单规则验证
|
|
|
// ...
|
|
|
|
|
|
let errors = [];
|
|
|
|
|
|
+ if (this.fileList1 && this.fileList1.length > 0) {
|
|
|
+ // 将 fileList1 中的每个文件对象的属性名调整为新的属性名
|
|
|
+ this.inputForm.fileList1 = this.fileList1.map(file => {
|
|
|
+ return {
|
|
|
+ attachmentName: file.name,
|
|
|
+ fileSize: file.size,
|
|
|
+ url: file.url,
|
|
|
+ type: file.type, // 如果不需要,可以不写
|
|
|
+ };
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- /*if (errors.length > 0) {
|
|
|
+ if (errors.length > 0) {
|
|
|
// 存在错误,显示提示信息
|
|
|
errors.forEach(error => {
|
|
|
uni.showToast({
|
|
@@ -269,13 +315,17 @@
|
|
|
});
|
|
|
reject('Form validation failed');
|
|
|
} else {
|
|
|
- this.inputForm.account = this.inputForm.accountTotal
|
|
|
// 所有验证通过,执行保存操作
|
|
|
this.$refs.inputForm.validate().then(() => {
|
|
|
uni.showLoading();
|
|
|
- this.inputForm.status = '2';
|
|
|
- financeInvoiceService.saveForm(this.inputForm).then(data => {
|
|
|
- callback(data.businessTable, data.businessId);
|
|
|
+
|
|
|
+ overService.save(this.inputForm).then(data => {
|
|
|
+
|
|
|
+ uni.showToast({title:"提交成功", icon:"success"});
|
|
|
+ // 返回上一页
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ });
|
|
|
resolve('Form saved successfully');
|
|
|
}).catch(error => {
|
|
|
reject('Save operation failed');
|
|
@@ -283,117 +333,9 @@
|
|
|
}).catch(() => {
|
|
|
reject('Form validation failed');
|
|
|
});
|
|
|
- }*/
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 修改状态
|
|
|
- /*async updateStatusById (type, callback) {
|
|
|
- if (type === 'reject' || type === 'reback') {
|
|
|
- financeInvoiceService.queryById(this.inputForm.id).then((data) => {
|
|
|
- if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
|
|
|
- this.loading = false
|
|
|
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
|
|
|
- throw new Error()
|
|
|
- } else {
|
|
|
- if (type === 'reject') {
|
|
|
- // 驳回
|
|
|
- this.inputForm.status = '4'
|
|
|
- }
|
|
|
- if (type === 'reback') {
|
|
|
- // 撤回
|
|
|
- this.inputForm.status = '3'
|
|
|
- }
|
|
|
- if (type === 'reject' || type === 'reback') {
|
|
|
- let param = {status: this.inputForm.status, id: this.inputForm.id}
|
|
|
- financeInvoiceService.updateStatusById(param).then(() => {
|
|
|
- this.loading = false
|
|
|
- callback()
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- } else if (type === 'hold') {
|
|
|
- financeInvoiceService.queryById(this.inputForm.id).then((data) => {
|
|
|
- if (data.status !== '4') { // status的值不等于“驳回”就弹出提示
|
|
|
- this.loading = false
|
|
|
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
|
|
|
- throw new Error()
|
|
|
- } else {
|
|
|
- // 终止
|
|
|
- let param = {status: '1', id: this.inputForm.id}
|
|
|
- financeInvoiceService.updateStatusById(param).then(() => {
|
|
|
- this.loading = false
|
|
|
- callback()
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- },*/
|
|
|
- /*reapplyForm (callback) {
|
|
|
- this.loading = true
|
|
|
- financeInvoiceService.queryById(this.inputForm.id).then((data) => {
|
|
|
- if (data.status !== '4') { // 审核状态不是“驳回”,就弹出提示
|
|
|
- this.loading = false
|
|
|
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
|
|
|
- throw new Error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
|
|
|
- } else {
|
|
|
- this.startFormTrue(callback)
|
|
|
- }
|
|
|
- })
|
|
|
- },*/
|
|
|
- // 送审
|
|
|
- /*async startFormTrue (callback) {
|
|
|
- this.$refs.inputForm.validate().then(res => {
|
|
|
- this.inputForm.status = '2'
|
|
|
- financeInvoiceService.saveForm(this.inputForm).then((data) => {
|
|
|
- this.inputForm.id = data.businessId
|
|
|
- callback(data.businessTable, data.businessId, this.inputForm)
|
|
|
- this.$refs.inputForm.resetFields()
|
|
|
- this.loading = false
|
|
|
- }).catch(() => {
|
|
|
- this.$refs.inputForm.resetFields()
|
|
|
- }).catch((e) => {
|
|
|
-
|
|
|
- })
|
|
|
- })
|
|
|
- },*/
|
|
|
- // 通过
|
|
|
- /*async agreeForm (callback) {
|
|
|
-
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- // 表单规则验证
|
|
|
- // ...
|
|
|
-
|
|
|
- let errors = [];
|
|
|
- let acc = 0
|
|
|
-
|
|
|
- if (errors.length > 0) {
|
|
|
- // 存在错误,显示提示信息
|
|
|
- errors.forEach(error => {
|
|
|
- uni.showToast({
|
|
|
- title: error,
|
|
|
- icon: 'none',
|
|
|
- duration: 2000
|
|
|
- });
|
|
|
- });
|
|
|
- reject('Form validation failed');
|
|
|
- } else {
|
|
|
- // 所有验证通过,执行保存操作
|
|
|
- this.$refs.inputForm.validate().then(res => {
|
|
|
- this.inputForm.status = '5'
|
|
|
- financeInvoiceService.saveForm(this.inputForm).then((data) => {
|
|
|
- callback(data.businessTable, data.businessId, this.inputForm)
|
|
|
- this.$refs.inputForm.resetFields()
|
|
|
- this.loading = false
|
|
|
- }).catch(() => {
|
|
|
- this.loading = false
|
|
|
- this.$refs.inputForm.resetFields()
|
|
|
- })
|
|
|
- })
|
|
|
}
|
|
|
});
|
|
|
- },*/
|
|
|
+ },
|
|
|
|
|
|
// 删除图片
|
|
|
deletePic(event) {
|
|
@@ -412,7 +354,7 @@
|
|
|
})
|
|
|
})
|
|
|
for (let i = 0; i < lists.length; i++) {
|
|
|
- const result = await this.uploadFilePromise(lists[i].url)
|
|
|
+ const result = await this.uploadFilePromise(lists[i].url, fileListLen)
|
|
|
let item = this[`fileList${event.name}`][fileListLen]
|
|
|
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
|
|
|
status: 'success',
|
|
@@ -422,11 +364,11 @@
|
|
|
fileListLen++
|
|
|
}
|
|
|
},
|
|
|
- uploadFilePromise(url) {
|
|
|
+ uploadFilePromise(url, index) {
|
|
|
console.log($auth.getUserToken())
|
|
|
return new Promise((resolve, reject) => {
|
|
|
let a = uni.uploadFile({
|
|
|
- url: 'http://localhost:8000/app/file/upload', // 仅为示例,非真实的接口地址
|
|
|
+ url: 'http://localhost:8000/app/file/webUpload/fileUpload', // 仅为示例,非真实的接口地址
|
|
|
filePath: url,
|
|
|
name: 'file',
|
|
|
formData: {
|
|
@@ -436,8 +378,13 @@
|
|
|
'token': $auth.getUserToken(),
|
|
|
},
|
|
|
success: (res) => {
|
|
|
+
|
|
|
+ // this.fileList1[index].url = url
|
|
|
+
|
|
|
setTimeout(() => {
|
|
|
- resolve(res.data.data);
|
|
|
+ const dataObj = JSON.parse(res.data);
|
|
|
+ const url = dataObj.url;
|
|
|
+ resolve(url);
|
|
|
}, 1000);
|
|
|
},
|
|
|
fail: (err) => {
|
|
@@ -446,21 +393,41 @@
|
|
|
});
|
|
|
})
|
|
|
},
|
|
|
+ getUserInfoByOffId(){
|
|
|
+ // 根据组织ID 获取 该村的 村支书
|
|
|
+ overService.getUserInfoByOffId(this.inputForm.processingUnit)
|
|
|
+ .then(data => {
|
|
|
+ this.inputForm.clearUserId = data.id
|
|
|
+ this.inputForm.clearUserName = data.name
|
|
|
+ this.inputForm.clearUserMobile = data.mobile
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ throw e;
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style>
|
|
|
- .cu-form-group .title {
|
|
|
- min-width: calc(4em + 40px);
|
|
|
+ .form-section {
|
|
|
+ padding: 10px 15px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ background-color: #ffffff;
|
|
|
+ border-radius: 5px;
|
|
|
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
|
}
|
|
|
|
|
|
- /* 样式示例,您可能需要根据实际情况调整 */
|
|
|
- .upload-demo {
|
|
|
- width: 40%;
|
|
|
+ .u-page__upload-item {
|
|
|
+ margin-top: 10px;
|
|
|
}
|
|
|
+
|
|
|
.button-container {
|
|
|
- margin-top: 10px;
|
|
|
- text-align: right;
|
|
|
+ margin-top: 20px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .cu-form-group .title {
|
|
|
+ min-width: 100px;
|
|
|
}
|
|
|
</style>
|