From 5e2aafeede13d337380f736567caf74f49713be7 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:38:32 +0800
Subject: [PATCH] 代码优化

---
 src/views/property/process/maintenanceFundApply/edit.vue |  466 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 392 insertions(+), 74 deletions(-)

diff --git a/src/views/property/process/maintenanceFundApply/edit.vue b/src/views/property/process/maintenanceFundApply/edit.vue
index 7eb648f..2fa0bb8 100644
--- a/src/views/property/process/maintenanceFundApply/edit.vue
+++ b/src/views/property/process/maintenanceFundApply/edit.vue
@@ -13,7 +13,7 @@
         <div slot="header">
           <span>审批信息</span>
         </div>
-        <avue-form ref="crud" :option="option" v-model="form" @submit="handleSubmit">
+        <avue-form ref="crud" :option="option" v-model="form" @submit="handleSubmit" :upload-exceed="uploadExceed">
 
           <template slot-scope="{ row, size, index }" slot="vote">
             <div>{{ topicTitle }}</div>
@@ -50,8 +50,10 @@
           <el-timeline>
             <el-timeline-item :key="flow.id" :timestamp="flow.createTime" v-for="flow in flowList" placement="top">
               <el-card shadow="hover">
-                <p>{{ flow.assigneeName }} 在 [{{ flow.createTime }}] 开始处理 [{{ flow.historyActivityName }}] 环节</p>
-                <p v-if="flow.historyActivityDurationTime !== ''">任务历时 [{{ flow.historyActivityDurationTime }}]</p>
+                <p>{{ flow.assigneeName }} 在 [{{ flow.createTime }}] 开始处理 [{{ flow.historyActivityName
+                                    }}] 环节</p>
+                <p v-if="flow.historyActivityDurationTime !== ''">任务历时 [{{
+            flow.historyActivityDurationTime }}]</p>
                 <p v-if="flow.comment !== ''">批复意见: [{{ flow.comment }}]</p>
                 <p v-if="flow.endTime !== ''">结束时间: [{{ flow.endTime }}]</p>
               </el-card>
@@ -78,8 +80,9 @@
       <el-button type="danger" @click="handleDisagree">关闭申请</el-button>
     </div>
 
-    <deitDiscussion ref="DeitDiscussion">
-    </deitDiscussion>
+    <deitDiscussion ref="DeitDiscussion"> </deitDiscussion>
+
+    <userList ref="userList" @selectPersonList="selectPersonList"></userList>
 
   </basic-container>
 </template>
@@ -88,7 +91,8 @@
   import {
     historyFlowList,
     leaveDetail
-  } from "@/api/work/process";
+  } from "@/api/work/process"
+  import userList from "../../components/userList.vue"
 
   import {
     getList,
@@ -96,17 +100,18 @@
     update,
     add,
     getPropertyCapitalApply
-  } from "@/api/property/propertyCapitalApply";
+  } from "@/api/property/propertyCapitalApply"
   import {
     completeTask
-  } from "@/api/work/work";
+  } from "@/api/work/work"
   import {
     getLists
   } from "@/api/discuss/topics"
   import deitDiscussion from "../../components/deitDiscussion.vue"
   export default {
     components: {
-      deitDiscussion
+      deitDiscussion,
+      userList
     },
     data() {
       return {
@@ -162,6 +167,33 @@
                 message: "请选择小区",
                 trigger: "blur",
               }, ],
+            },
+            {
+              disabled: true,
+              label: "户室",
+              prop: "houseNames",
+              tags: true,
+              type: "input",
+              span: 12,
+              remote: true,
+              rules: [{
+                required: true,
+                message: '请选择户室',
+                trigger: 'blur'
+              }],
+              focus: ({
+                value,
+                column
+              }) => {
+                if (!this.form.districtId) {
+                  this.$message({
+                    type: "error",
+                    message: "请先选择小区后,再选择户室!",
+                  })
+                  return
+                }
+                this.$refs.userList.show(this.form.districtId)
+              },
             },
             {
               label: '维修项目名称',
@@ -291,7 +323,6 @@
               viewDisabled: false,
               type: 'select',
               dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
-              // slot: true,
               formslot: true,
               cascader: ['vote'],
               props: {
@@ -308,9 +339,6 @@
               }, ],
               change: (val) => {
                 console.log("val===>", val)
-                // console.log("form===>",this.form)
-
-
               }
             },
 
@@ -342,39 +370,287 @@
               type: "textarea",
             },
             // {
-            //   label: "批复意见",
+            //   label: '施工方案附件',
+            //   prop: 'constructionSchemeUrls',
+            //   type: 'upload',
             //   span: 24,
             //   hide: true,
-            //   prop: "comment",
             //   labelWidth: 140,
-            //   type: "textarea",
+            //   multiple: true,
+            //   // showFileList: true,
+            //   propsHttp: {
+            //     res: 'data',
+            //     name: "originalName",
+            //     url: "link"
+            //   },
+            //   action: '/api/blade-resource/oss/endpoint/put-file-attach',
             //   rules: [{
             //     required: true,
-            //     message: "请输入批复意见",
+            //     message: "请上传施工方案",
             //     trigger: "blur",
             //   }, ],
-            // },
+            // }
             {
-              label: '施工方案附件',
-              prop: 'constructionSchemeUrls',
-              type: 'upload',
+              label: "维修资金使用申请审批表",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file1",
+              type: "upload",
+              dataType: 'object',
+              listType: "picture-card",
+              limit: 1,
+              props: {
+                label: 'fileUrl',
+                value: 'fileName'
+              },
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
               span: 24,
               hide: true,
-              labelWidth: 140,
-              multiple: true,
-              // showFileList: true,
-              propsHttp: {
-                res: 'data',
-                name: "originalName",
-                url: "link"
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "申请使用维修资金的报告、附维修部位彩色照片、业委会(物管会)会议纪要(社区意见)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file2",
+              type: "upload",
+              dataType: 'object',
+              listType: "picture-card",
+              limit: 1,
+              props: {
+                label: 'fileUrl',
+                value: 'fileName'
               },
-              action: '/api/blade-resource/oss/endpoint/put-file-attach',
-              rules: [{
-                required: true,
-                message: "请上传施工方案",
-                trigger: "blur",
-              }, ],
-            }
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "公示单,预算,现场勘察图片、公示照片(公示期7天)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file3",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "维修单位出具的工程款发票(验收合格后以竣工决算审核报告审定金额开具)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file4",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "应急维修需提供专业机构出具的检验检测报告或(乡镇人民政府)街道办事处现场核实意见",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file5",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "业主签名表或线上表决记录(应急情况不提供)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file6",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "政府采购资料",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file7",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "维修和更新、改造方案、维修项目的协议或合同",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file8",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "维修改造工程竣工验收单一式两份(维修完工需经申请人签字);维修项目签证单(超出预算清单内容的需出具签证单)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file9",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "维修项目决算、造价机构出具的决算审价报告",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file10",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
+            {
+              label: "业主委员会情况登记表;经办人或代理人证件(复印件),复印件上签名、联系电话",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file11",
+              type: "upload",
+              listType: "picture-card",
+              limit: 1,
+              dataType: 'object',
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请上传文件",
+              //   trigger: "blur",
+              // }],
+            },
           ],
         },
         topictData: [],
@@ -389,7 +665,7 @@
         handler(newData) {
           const column = this.findObject(this.option.column, "articleId")
           if (newData && this.form.articleId) {
-            column.display = true;
+            column.display = true
           } else {
             column.display = false
           }
@@ -402,7 +678,7 @@
           this.getVoteDetail(this.form.articleId, this.articleRange)
           const column = this.findObject(this.option.column, "vote")
           if (newData) {
-            column.display = true;
+            column.display = true
           } else {
             column.display = false
           }
@@ -413,7 +689,7 @@
 
 
     created() {
-      this.init();
+      this.init()
     },
     beforeRouteUpdate(to, from, next) {
       // 在当前路由改变,但是该组件被复用时调用
@@ -421,50 +697,87 @@
       // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
       // 可以访问组件实例 `this`
       if (to.fullPath !== from.fullPath) {
-        next();
-        this.init();
+        next()
+        this.init()
       }
     },
     methods: {
+
+      uploadAfter(res, done, loading, column) {
+        console.log(res, column)
+        // this.form.attachment = []
+        this.form.attachment.push({
+          fileName: column.label,
+          fileUrl: res.link,
+          fileType: this.getFileExtension(res.originalName),
+        })
+        done()
+        // this.$message.success('上传后的方法')
+      },
+
+      getFileExtension(filename) {
+        var lastDotIndex = filename.lastIndexOf('.')
+        if (lastDotIndex !== -1) {
+          return filename.substring(lastDotIndex + 1)
+        }
+        return ''
+      },
+
+      selectPersonList(personList) {
+        console.log(personList, "++++++++++++")
+        this.personList = personList
+        let houseNameList = personList.map(e => {
+          if (e.houseName) {
+            return e.houseName
+          }
+        })
+        this.form.houseName = houseNameList.join(",")
+        let addressCodeList = personList.map(e => {
+          if (e.addressCode) {
+            return e.addressCode
+          }
+        })
+        this.form.addressCodes = addressCodeList.join(",")
+      },
       handleSubmit(form, done, loading) {
         if (form.constructionSchemeUrls.length > 0) {
           var urls = []
-          var split = form.constructionSchemeUrls.split(",");
+          var split = form.constructionSchemeUrls.split(",")
           split.forEach(url => {
-            var names = url.split("jczz/");
+            var names = url.split("jczz/")
             urls.push(names[1])
           })
           form.constructionSchemeUrls = urls.join(",")
         }
         update(form).then(
           () => {
-            this.onLoad(this.page);
+            this.onLoad(this.page)
             this.$message({
               type: "success",
               message: "操作成功!",
-            });
-            done();
+            })
+            done()
           },
           (error) => {
-            window.console.log(error);
-            loading();
+            window.console.log(error)
+            loading()
           }
-        );
+        )
       },
       init() {
-        this.taskId = this.$route.params.taskId;
-        this.processInstanceId = this.$route.params.processInstanceId;
-        this.businessId = this.$route.params.businessId;
+        this.taskId = this.$route.params.taskId
+        this.processInstanceId = this.$route.params.processInstanceId
+        this.businessId = this.$route.params.businessId
         historyFlowList(this.processInstanceId).then(res => {
-          const data = res.data;
+          const data = res.data
           if (data.success) {
-            this.flowList = data.data;
+            this.flowList = data.data
           }
         })
         getPropertyCapitalApply(this.businessId).then(res => {
-          const data = res.data;
+          const data = res.data
           if (data.success) {
-            this.form = data.data;
+            this.form = data.data
           }
         })
       },
@@ -478,49 +791,49 @@
           processInstanceId: this.processInstanceId,
           flag: 'ok',
           comment: this.form.comment,
-        };
+        }
         completeTask(params).then(res => {
-          const data = res.data;
+          const data = res.data
           if (data.success) {
-            this.$message.success(data.msg);
-            this.$router.$avueRouter.closeTag();
+            this.$message.success(data.msg)
+            this.$router.$avueRouter.closeTag()
             this.$router.push({
               path: `/property/propertyCapitalApply`
-            });
+            })
           } else {
-            this.$message.error(data.msg || '提交失败');
+            this.$message.error(data.msg || '提交失败')
           }
         })
       },
       handleDisagree() {
         this.form.comment = '关闭申请'
         if (!this.form.comment) {
-          this.$message.warning('请先填写批复意见');
-          return;
+          this.$message.warning('请先填写批复意见')
+          return
         }
         const params = {
           taskId: this.taskId,
           processInstanceId: this.processInstanceId,
           comment: this.form.comment,
-        };
+        }
         completeTask(params).then(res => {
-          const data = res.data;
+          const data = res.data
           if (data.success) {
-            this.$message.success(data.msg);
-            this.$router.$avueRouter.closeTag();
+            this.$message.success(data.msg)
+            this.$router.$avueRouter.closeTag()
             this.$router.push({
               path: `/property/propertyCapitalApply`
-            });
+            })
           } else {
-            this.$message.error(data.msg || '提交失败');
+            this.$message.error(data.msg || '提交失败')
           }
         })
       },
       handleCancel() {
-        this.$router.$avueRouter.closeTag();
+        this.$router.$avueRouter.closeTag()
         this.$router.push({
           path: `/property/todo`
-        });
+        })
       },
 
       getVoteDetail(articleId, districtId) {
@@ -532,8 +845,8 @@
         getLists(1, 10, params).then(res => {
           const data = res.data.data
           if (data.length) {
-            this.topictData = data[0].children;
-            this.topicTitle = data[0].discussContent;
+            this.topictData = data[0].children
+            this.topicTitle = data[0].discussContent
           }
         })
       },
@@ -541,6 +854,11 @@
       openUserPopup(row) {
         this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
       },
+
+      uploadExceed(limit, files, fileList, column) {
+        console.log(limit, files, fileList, column)
+        this.$message.error('超出上传限制文件数量')
+      }
     }
   }
 </script>
@@ -549,4 +867,4 @@
   .workOrderStyle {
     font-weight: normal;
   }
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.3