| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 | 
							- <template>
 
-     <view>
 
-         <cu-custom :backUrl="'/pages/index/index?id=apps'" :isBack="true" bgColor="bg-gradual-blue">
 
-             <block slot="content">建筑垃圾巡视</block>
 
-         </cu-custom>
 
-         <!-- 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>
 
-         <!-- 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 {
 
-         components: {
 
-         },
 
-         computed: mapState({
 
-             userInfo: (state) => state.user.userInfo,
 
-             avatar: (state) => state.user.avatar
 
-         }),
 
-         data () {
 
-             return {
 
-                 disFlag: true,  // 启用动态获取处理单位则设置为false
 
-                 processingUnits: [],
 
-                 fileList1: [],
 
-                 nodeFlag: false,
 
-                 inputForm: {
 
-                     no: '',
 
-                     processingUnit: '',
 
-                     processingUnitName: '',
 
-                     clearUserId: '',
 
-                     clearUserName: '',
 
-                     clearUserMobile: '',
 
-                     remarks: '',
 
-                 },
 
-                 rules: {
 
-                     'processingUnit': [
 
-                         {
 
-                             required: true,
 
-                             message: '处理单位不能为空',
 
-                             trigger: ['blur', 'change']
 
-                         }
 
-                     ],
 
-                 }
 
-             }
 
-         },
 
-         // 页面加载时执行
 
-         async created() {
 
-             let data = await overService.getMaxNo();
 
-             if (data) {
 
-                 let newNo = parseInt(data, 10) + 1;
 
-                 this.inputForm.no = 'XS-J' + newNo;
 
-             } else {
 
-                 // 获取当前年份
 
-                 let nowY = new Date().getFullYear();
 
-                 this.inputForm.no = 'XS-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.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;
 
-                 });
 
-         },
 
-         props: {
 
-             status: {
 
-                 type: String,
 
-                 default: ''
 
-             }
 
-         },
 
-         watch: {
 
-         },
 
-         methods: {
 
-            init (id) {
 
-                this.nodeFlag = true
 
-                 this.inputForm.id = id
 
-                 /*if (id) {
 
-                    financeInvoiceService.queryById(id).then((data) => {
 
-                        if (this.status === 'testSee') {
 
-                            this.nodeFlag = true
 
-                            this.testFlag = true
 
-                        } else {
 
-                            this.commonApi.getTaskNameByProcInsId(data.procInsId).then((data) => {
 
-                                if (this.isNotEmpty(data)) {
 
-                                    if (data === '发起人重新申请' || this.isEmpty(data)) {
 
-                                        this.nodeFlag = false
 
-                                    } else if (data === '发票管理员审核'){
 
-                                        this.nodeFlag = true
 
-                                        this.addFlag = true
 
-                                    }
 
-                                }else {
 
-                                    this.testFlag = true
 
-                                    this.addFlag = true
 
-                                    console.log('没有')
 
-                                }
 
-                            })
 
-                        }
 
-                         this.inputForm = this.recover(this.inputForm, data)
 
-                         if (this.inputForm.workAttachmentDtoList) {
 
-                             this.inputForm.workAttachmentDtoList.forEach( (item,index) => {
 
-                                 this.$set(this.showFileList, index, true);
 
-                             })
 
-                         }
 
-                        let i = this.inputForm.financeInvoiceBaseDTOList.length
 
-                        let sun = 0
 
-                        for (let j = 0; j < i; j++) {
 
-                            sun = (100*sun + 100* this.inputForm.financeInvoiceBaseDTOList[j].account)/100
 
-                        }
 
-                        this.inputForm.accountTotal = sun
 
-                        this.inputForm.billingDate = this.formatDate(new Date())
 
-                        if ( !this.nodeFlag && this.status !== 'testSee') {
 
-                            this.inputForm.financeInvoiceDetailDTOList.push({
 
-                                code: '',
 
-                                number: '',
 
-                                account: sun,
 
-                                rate: '',
 
-                                amount: '',
 
-                                tax: '',
 
-                                allAmount: ''
 
-                            })
 
-                        }
 
-                        if (!this.isEmpty(this.inputForm.billingWorkplaceRealId)) {
 
-                            this.bankList = []
 
-                            workClientService.queryById(this.inputForm.billingWorkplaceRealId).then((data) => {
 
-                                if (this.isNotEmpty(data.cwWorkClientBillingDTOList)) {
 
-                                    data.cwWorkClientBillingDTOList.forEach(i => {
 
-                                        i.ourBank = i.accountHolder
 
-                                        let test = {label: i.ourBank, value: i.id, account: i.account}
 
-                                        this.bankList.push(test)
 
-                                        this.$set(this.inputForm, 'openBank', i.id);
 
-                                    })
 
-                                } else {
 
-                                    this.bankList = []
 
-                                }
 
-                            })
 
-                        }
 
-                     })
 
-                 }*/
 
-             },
 
-             formatDate(date) {
 
-                 const dateNew = new Date(date); // 将日期字符串转换为 Date 对象
 
-                 const year = dateNew.getFullYear();
 
-                 const month = (dateNew.getMonth() + 1).toString().padStart(2, '0');
 
-                 const day = dateNew.getDate().toString().padStart(2, '0');
 
-                 return `${year}-${month}-${day}`;
 
-             },
 
-             isEmpty(value) {
 
-                 let result = false;
 
-                 if (value == null || value == undefined) {
 
-                     result = true;
 
-                 }
 
-                 if (typeof value == 'string' && (value.replace(/\s+/g, "") == "" || value == "")) {
 
-                     result = true;
 
-                 }
 
-                 if (typeof value == "object" && value instanceof Array && value.length === 0) {
 
-                     result = true;
 
-                 }
 
-                 return result;
 
-             },
 
-             isNotEmpty (value) {
 
-                 return !this.isEmpty(value)
 
-             },
 
-             /**
 
-              * 判断是否为空
 
-              */
 
-             isNull(val) {
 
-                 if (val instanceof Array) {
 
-                     if (val.length === 0) return true;
 
-                 } else if (val instanceof Object) {
 
-                     if (JSON.stringify(val) === "{}") return true;
 
-                 } else {
 
-                     if (
 
-                         val === "null" ||
 
-                         val == null ||
 
-                         val === "undefined" ||
 
-                         val === undefined ||
 
-                         val === ""
 
-                     )
 
-                         return true;
 
-                     return false;
 
-                 }
 
-                 return false;
 
-             },
 
-             formatDateNew(date) {
 
-                 const year = date.getFullYear();
 
-                 const month = (date.getMonth() + 1).toString().padStart(2, '0');
 
-                 const day = date.getDate().toString().padStart(2, '0');
 
-                 const hours = date.getHours().toString().padStart(2, '0');
 
-                 const minutes = date.getMinutes().toString().padStart(2, '0');
 
-                 const seconds = date.getSeconds().toString().padStart(2, '0');
 
-                 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) {
 
-                         // 存在错误,显示提示信息
 
-                         errors.forEach(error => {
 
-                             uni.showToast({
 
-                                 title: error,
 
-                                 icon: 'none',
 
-                                 duration: 2000
 
-                             });
 
-                         });
 
-                         reject('Form validation failed');
 
-                     } else {
 
-                         // 所有验证通过,执行保存操作
 
-                         this.$refs.inputForm.validate().then(() => {
 
-                             uni.showLoading();
 
-                             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');
 
-                             });
 
-                         }).catch(() => {
 
-                             reject('Form validation failed');
 
-                         });
 
-                     }
 
-                 });
 
-             },
 
-             // 删除图片
 
-             deletePic(event) {
 
-                 this[`fileList${event.name}`].splice(event.index, 1)
 
-             },
 
-             // 新增图片
 
-             async afterRead(event) {
 
-                 // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
 
-                 let lists = [].concat(event.file)
 
-                 let fileListLen = this[`fileList${event.name}`].length
 
-                 lists.map((item) => {
 
-                     this[`fileList${event.name}`].push({
 
-                         ...item,
 
-                         status: 'uploading',
 
-                         message: '上传中'
 
-                     })
 
-                 })
 
-                 for (let i = 0; i < lists.length; i++) {
 
-                     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',
 
-                         message: '',
 
-                         url: result
 
-                     }))
 
-                     fileListLen++
 
-                 }
 
-             },
 
-             uploadFilePromise(url, index) {
 
-                 console.log($auth.getUserToken())
 
-                 return new Promise((resolve, reject) => {
 
-                     let a = uni.uploadFile({
 
-                         url: 'http://localhost:8000/app/file/webUpload/fileUpload', // 仅为示例,非真实的接口地址
 
-                         filePath: url,
 
-                         name: 'file',
 
-                         formData: {
 
-                             user: this.$store.state.user.userInfo
 
-                         },
 
-                         header: {
 
-                             'token': $auth.getUserToken(),
 
-                         },
 
-                         success: (res) => {
 
-                             // this.fileList1[index].url = url
 
-                             setTimeout(() => {
 
-                                 const dataObj = JSON.parse(res.data);
 
-                                 const url = dataObj.url;
 
-                                 resolve(url);
 
-                             }, 1000);
 
-                         },
 
-                         fail: (err) => {
 
-                             console.error('Upload failed:', err);
 
-                         }
 
-                     });
 
-                 })
 
-             },
 
-             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>
 
-     .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);
 
-     }
 
-     .u-page__upload-item {
 
-         margin-top: 10px;
 
-     }
 
-     .button-container {
 
-         margin-top: 20px;
 
-         text-align: center;
 
-     }
 
-     .cu-form-group .title {
 
-         min-width: 100px;
 
-     }
 
- </style>
 
 
  |