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/cGovernance/taskECallTwo/index.vue |  495 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 304 insertions(+), 191 deletions(-)

diff --git a/src/views/cGovernance/taskECallTwo/index.vue b/src/views/cGovernance/taskECallTwo/index.vue
index 32086d8..63571ff 100644
--- a/src/views/cGovernance/taskECallTwo/index.vue
+++ b/src/views/cGovernance/taskECallTwo/index.vue
@@ -5,16 +5,19 @@
       v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
       @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
       @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-      <template slot="menuLeft">
-        <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
-          除
+
+      <template slot-scope="{row, size}" slot="menu">
+        <el-button size="small" type="text" icon="el-icon-edit" plain @click="handleEdit(row)">编辑
+        </el-button>
+
+        <el-button size="small" type="text" icon="el-icon-delete" plain @click="rowDel(row)">删除
         </el-button>
       </template>
 
-      <!-- <template slot="menu" slot-scope="{row, size, index}">
+      <template slot="menu" slot-scope="{row, size, index}">
         <el-button size="small" type="text" icon="el-icon-share" plain @click="share(row)">分享
         </el-button>
-      </template> -->
+      </template>
 
       <template slot-scope="{row, size}" slot="phone">
         <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneflag')"
@@ -31,6 +34,21 @@
       </template>
 
     </avue-crud>
+
+    <el-dialog title="编辑" append-to-body :visible.sync="editPopup" center @close="editClose">
+      <avue-form ref="formRef" :option="option" v-model="editForm" @submit="handleSubmit">
+
+        <template slot-scope="{type, disabled}" slot="sceneGeo">
+          <el-button type="primary" style="font-size: 14px;  border: none;" icon="el-icon-map-location"
+            @click="openMapTwo()">获取位置</el-button>
+
+          <avue-input-map style="position: fixed; top: -11111111111111px;" ref="avueInputMapTwo"
+            :params="editForm.params" placeholder="请选择地图" v-model="editForm.sceneGeo"></avue-input-map>
+        </template>
+
+      </avue-form>
+
+    </el-dialog>
 
     <el-dialog title="分享" append-to-body :visible.sync="sharePopup" center @close="popupClose">
       <div style="display: flex; justify-content: center; ">
@@ -49,11 +67,18 @@
 
 <script>
   import {
+    setToken,
+    setRefreshToken,
+    removeToken,
+    removeRefreshToken,
+  } from "@/util/auth";
+  import {
     getList,
     remove,
     update,
     add,
-    getDetail
+    getDetail,
+    synchronizeData
   } from "@/api/task/eCallEventTwo"
   import {
     add as circleAdd,
@@ -62,6 +87,9 @@
     getList as getHouseList,
     getDetatil as getHouseDetail
   } from "@/api/doorplateAddress/doorplateAddress.js"
+  import {
+    getDept
+  } from "@/api/system/dept"
   import {
     mapGetters
   } from "vuex"
@@ -83,7 +111,9 @@
       }
 
       return {
+        editPopup: false,
         form: {},
+        editForm: {},
         query: {},
         loading: true,
         page: {
@@ -101,7 +131,9 @@
           // searchLabelWidth: 96,
           searchShow: true,
           searchMenuSpan: 3,
-          menuWidth: 310,
+          menuWidth: 160,
+          delBtn: false,
+          editBtn: false,
 
           height: "auto",
           calcHeight: 54,
@@ -117,82 +149,14 @@
           column: [{
               label: "工单号",
               prop: "orderCode",
+              viewDisplay: false,
               span: 12,
               searchSpan: 4,
-              width: 100,
+              width: 160,
+              overHidden: true,
               search: true,
               searchLabelWidth: 76,
-              rules: [{
-                required: true,
-                message: "请输入工单号",
-                trigger: "blur",
-              }, ],
-            },
-            {
-              width: 156,
-              label: "诉求主题",
-              prop: "issueTitle",
-              search: true,
-              searchSpan: 4,
-              rules: [{
-                required: true,
-                message: "请选择诉求主题",
-                trigger: "blur",
-              }],
-            },
-            {
-              width: 100,
-              label: "诉求来源",
-              prop: "issueOrigin",
-              span: 12,
-              searchSpan: 4,
-              dataType: "number",
-              type: "select",
-              dicData: [{
-                label: "热线",
-                value: 0
-              }, {
-                label: "公安110",
-                value: 1
-              }, {
-                label: "微信",
-                value: 2
-              }, {
-                label: "微博",
-                value: 3
-              }],
-              rules: [{
-                required: true,
-                message: "请选择诉求来源",
-                trigger: "blur",
-              }, ],
-            },
-            {
-              label: "诉求内容",
-              parent: false,
-              prop: "issueContent",
-              search: false,
-              rules: [{
-                required: true,
-                message: "请选择诉求内容",
-                trigger: "blur",
-              }, ],
-            },
-
-            {
-              label: "诉求用户类别",
-              prop: "applicantType",
-              span: 12,
-              searchSpan: 4,
-              width: 100,
-              type: "select",
-              dicData: [{
-                label: "个人",
-                value: "0"
-              }, {
-                label: "企业",
-                value: "1"
-              }],
+              addDisplay: false,
             },
             {
               width: 110,
@@ -230,12 +194,12 @@
               slot: true
             },
             {
-              width: 100,
-              label: "现场联系电话",
+              width: 120,
+              label: "诉求人联系电话",
               prop: "applicantPhone",
               rules: [{
                   required: true,
-                  message: "请输入现场联系电话",
+                  message: "请输入诉求人联系电话",
                   trigger: "blur",
                 },
                 {
@@ -243,6 +207,76 @@
                   trigger: 'blur'
                 }
               ],
+            },
+            {
+              width: 100,
+              label: "诉求来源",
+              prop: "issueOrigin",
+              disabled: true,
+              span: 12,
+              searchSpan: 4,
+              dataType: "number",
+              type: "select",
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=ehjb_org",
+              props: {
+                label: "dictValue",
+                value: "dictKey",
+              },
+              rules: [{
+                required: true,
+                message: "请选择诉求来源",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 156,
+              label: "诉求标题",
+              prop: "issueTitle",
+              search: true,
+              searchSpan: 4,
+              width: 160,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择诉求标题",
+                trigger: "blur",
+              }],
+            },
+
+            {
+              label: "诉求用户类别",
+              prop: "applicantType",
+              span: 12,
+              searchSpan: 4,
+              width: 100,
+              type: "select",
+              dicData: [{
+                label: "个人",
+                value: "0"
+              }, {
+                label: "企业",
+                value: "1"
+              }],
+              rules: [{
+                required: true,
+                message: "请输入诉求用户类别",
+                trigger: "blur",
+              }],
+            },
+            {
+              label: "办结内容",
+              parent: false,
+              prop: "issueContent",
+              search: false,
+              type: 'textarea',
+              width: 160,
+              span: 24,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择办结内容",
+                trigger: "blur",
+              }, ],
             },
             {
               label: "事发地址",
@@ -259,16 +293,19 @@
                 trigger: "blur",
               }],
             },
-
             {
               prop: "sceneGeo",
               dataType: "string",
               type: 'map',
+              hide: true,
+              width: 100,
+              viewDisplay: false,
               // dataType: "string",
               span: 24,
               // value: [117.966460, 28.431002, ""]
             },
             {
+              width: 100,
               label: "事发地点-经度",
               prop: "sceneGeoLng",
               disabled: true,
@@ -279,6 +316,7 @@
               }, ],
             },
             {
+              width: 100,
               label: "事发地点-纬度",
               prop: "sceneGeoLat",
               disabled: true,
@@ -299,15 +337,31 @@
                 value: "code"
               },
             },
+            // {
+            //   label: "事发场所",
+            //   width: 100,
+            //   prop: "scenePlace",
+            // },
             {
-              label: "事发场所",
-              prop: "scenePlace",
+              label: "受理时间",
+              prop: "createTime",
+              type: "datetime",
+              format: "yyyy-MM-dd HH:mm:ss",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              // labelWidth: 100,
+              rules: [{
+                required: true,
+                message: "请输入受理时间",
+                trigger: "blur",
+              }],
             },
             {
               label: "归口类型",
               prop: "issueClazz",
-              type: "tree",
+              // type: "tree",
+              type: "cascader",
               dicUrl: "/api/blade-issueClazz/issueClazz/tree",
+              // showAllLevels: false,
               props: {
                 label: "title",
                 value: "id"
@@ -318,18 +372,97 @@
                 trigger: "blur",
               }, ],
               span: 12,
+              filterable: true,
             },
+            {
+              label: "承办单位",
+              prop: "acptOrgName",
+              // type: "tree",
+              // type: "cascader",
+              // dicUrl: "/api/blade-issueClazz/issueClazz/tree",
+              // props: {
+              //   label: "title",
+              //   value: "id"
+              // },
+              rules: [{
+                required: true,
+                message: "请选择归口类型",
+                trigger: "blur",
+              }, ],
+              span: 12,
+            },
+
             {
               label: "紧急程度",
               prop: "issueLevel",
               type: "select",
+              value: "1",
               dicData: [{
                 label: "一般",
                 value: "0"
               }, {
                 label: "即办",
                 value: "1"
+              }, {
+                label: "重大",
+                value: "2"
+              }, {
+                label: "紧急重大",
+                value: "3"
               }],
+            },
+            {
+              label: "是否保密",
+              prop: "is_secret",
+              type: "select",
+              value: "1",
+              dicData: [{
+                label: "否",
+                value: "0"
+              }, {
+                label: "是",
+                value: "1"
+              }],
+              rules: [{
+                required: true,
+                message: "请选择是否保密",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "诉求类型",
+              prop: "issue_type",
+              // disabled: true,
+              // addDisplay: false,
+              type: "select",
+              value: "2",
+              dicData: [{
+                label: "咨询",
+                value: "0"
+              }, {
+                label: "投诉",
+                value: "1"
+              }, {
+                label: "求助",
+                value: "2"
+              }, {
+                label: "举报",
+                value: "3"
+              }, {
+                label: "建议",
+                value: "4"
+              }, {
+                label: "表扬",
+                value: "5"
+              }, {
+                label: "无效投诉",
+                value: "6"
+              }],
+              rules: [{
+                required: true,
+                message: "请选择诉求类型",
+                trigger: "blur",
+              }, ],
             },
             {
               label: "工单附件",
@@ -348,105 +481,74 @@
               label: "工单状态",
               prop: "status",
               disabled: true,
+              addDisplay: false,
               type: "select",
-              value: "0",
+              value: "2",
               dicData: [{
                 label: "受理",
-                value: "0"
-              }, {
-                label: "处理中",
                 value: "1"
               }, {
-                label: "已归档",
+                label: "处理中",
                 value: "2"
-              }],
-            },
-            {
-              label: "已反馈",
-              prop: "tagDoing",
-              type: "select",
-              value: "Y",
-              dicData: [{
-                label: "否",
-                value: "N"
               }, {
-                label: "是",
-                value: "Y"
+                label: "已归档",
+                value: "3"
               }],
             },
-            {
-              label: "已答复",
-              prop: "tagResp",
-              value: "Y",
-              type: "select",
-              dicData: [{
-                label: "否",
-                value: "N"
-              }, {
-                label: "是",
-                value: "Y"
-              }],
-            },
-            {
-              label: "已办结",
-              prop: "tagDone",
-              value: "Y",
-              type: "select",
-              dicData: [{
-                label: "否",
-                value: "N"
-              }, {
-                label: "是",
-                value: "Y"
-              }],
-            },
-            {
-              label: "已回访",
-              prop: "tagCheck",
-              value: "Y",
-              type: "select",
-              dicData: [{
-                label: "否",
-                value: "N"
-              }, {
-                label: "是",
-                value: "Y"
-              }],
-            },
-            {
-              label: "核实/督办",
-              prop: "tagRedo",
-              value: "Y",
-              type: "select",
-              dicData: [{
-                label: "否",
-                value: "N"
-              }, {
-                label: "是",
-                value: "Y"
-              }],
-            },
+
+
           ],
         },
         data: [],
+        dept: {},
       }
     },
     watch: {
       "form.sceneGeo": {
         // form是表单或者表格绑定的数据集,v-model='form'
         handler(val) {
-          console.log("*****123**********" + val)
-          console.log("*****456**********" + typeof(val))
           if (typeof val == "object") {
+            console.log("*****11**********" + val)
+            console.log("*****789111**********" + !val)
+            if (val.length <= 0) {
+              return
+            }
+            console.log("*****789**********" + val)
+
             var arr = val
             //经纬度替换
             this.form.sceneGeoLat = arr[1]
             this.form.sceneGeoLng = arr[0]
+            this.form.location = arr[2]
           }
         },
-        immediate: true,
+      },
+
+      "editForm.sceneGeo": {
+        // form是表单或者表格绑定的数据集,v-model='form'
+        handler(val) {
+          if (typeof val == "object") {
+            if (val.length <= 0) {
+              return
+            }
+            console.log("*****789**********" + val)
+            console.log("*****78910**********" + !val)
+
+            var arr = val
+            //经纬度替换
+            this.editForm.sceneGeoLat = arr[1]
+            this.editForm.sceneGeoLng = arr[0]
+            this.editForm.location = arr[2]
+          }
+        },
       },
     },
+    // created() {
+    //   const token = this.$route.query.token
+    //   if (token) {
+    //     setToken(token)
+    //   }
+    // },
     computed: {
       ...mapGetters(["permission", "userInfo"]),
       permissionList() {
@@ -479,8 +581,19 @@
       }
     },
     methods: {
+      getDeptInfo() {
+        getDept(this.userInfo.dept_id).then(res => {
+          this.dept = res.data.data
+          this.form.issueOrigin = res.data.data.sort
+          // console.log("*********res.data.data*************" + JSON.stringify(res.data.data))
+        })
+      },
       openMap() {
         this.$refs.avueInputMap.box = true
+        console.log(this.$refs.avueInputMap)
+      },
+      openMapTwo() {
+        this.$refs.avueInputMapTwo.box = true
         console.log(this.$refs.avueInputMap)
       },
 
@@ -519,16 +632,25 @@
           }
         )
       },
+
+      handleSubmit(form, done) {
+        update(form).then(
+          () => {
+            this.onLoad(this.page)
+            this.editPopup = false
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
       rowUpdate(row, index, done, loading) {
-        if (row.imageUrls.length > 0) {
-          var urls = []
-          var split = row.imageUrls.split(",")
-          split.forEach(url => {
-            var names = url.split("jczz/")
-            urls.push(names[1])
-          })
-          row.imageUrls = urls.join(",")
-        }
         update(row).then(
           () => {
             this.onLoad(this.page)
@@ -592,8 +714,8 @@
         param.houseCode = this.shareCircleRow.addressCode
         param.circleImages = this.shareCircleRow.imageUrls
         param.communityCode = this.shareCircleRow.communityCode
-        param.circleText = this.shareCircleRow.remark
-        param.evenType = 2
+        param.circleText = "标题:" + this.shareCircleRow.issueTitle + " 内容: " + this.shareCircleRow.issueContent
+        param.evenType = 3
         param.eventId = this.shareCircleRow.id
         circleAdd(param).then(
           () => {
@@ -612,6 +734,12 @@
       },
       popupClose() {
         this.sharePopup = false
+      },
+      handleEdit(row) {
+        getDetail(row.orderId).then((res) => {
+          this.editForm = res.data.data
+          this.editPopup = true
+        })
       },
       handleDelete() {
         if (this.selectionList.length === 0) {
@@ -639,15 +767,6 @@
         if (["edit", "view"].includes(type)) {
           getDetail(this.form.orderId).then((res) => {
             this.form = res.data.data
-            this.form.sceneAddr = [this.form.sceneGeoLng, this.form.sceneGeoLat, this.form.sceneAddr].join(',')
-            // if (this.form.imageUrls.length > 0) {
-            //   var urls = []
-            //   var names = this.form.imageUrls.split(",")
-            //   names.forEach(name => {
-            //     urls.push(website.minioUrl + name)
-            //   })
-            //   this.form.imageUrls = urls.join(",")
-            // }
           })
         }
         // con
@@ -679,26 +798,20 @@
           values.dateTime = null
         }
         this.loading = true
+        // this.getDeptInfo();
+
         getList(page.currentPage, page.pageSize, values).then((res) => {
           const data = res.data.data
           this.page.total = data.total
           this.data = data.records
-          this.data.forEach(item => {
-            // this.$set(item, 'phoneflag', false)
-            // if (item.imageUrls) {
-            //   if (item.imageUrls.length > 0) {
-            //     var urls = []
-            //     var names = item.imageUrls.split(",")
-            //     names.forEach(name => {
-            //       urls.push(website.minioUrl + name)
-            //     })
-            //     item.imageUrls = urls.join(",")
-            //   }
-            // }
-          })
+
           this.loading = false
           this.selectionClear()
         })
+
+        // synchronizeData().then((res) => {
+
+        // })
       }
     },
   }

--
Gitblit v1.9.3