From 1a5c9d89d7a1347046692ce5086a1391027c8593 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 08 Aug 2024 09:59:42 +0800
Subject: [PATCH] 代码优化

---
 src/views/task/customTask/index.vue |  268 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 178 insertions(+), 90 deletions(-)

diff --git a/src/views/task/customTask/index.vue b/src/views/task/customTask/index.vue
index b7992fe..1bebfdb 100644
--- a/src/views/task/customTask/index.vue
+++ b/src/views/task/customTask/index.vue
@@ -7,6 +7,7 @@
       @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
 
       <template slot-scope="{row, size}" slot="menu">
+
         <el-button size="small" type="text" icon="el-icon-edit" plain @click="handleEdit(row)">编辑
         </el-button>
 
@@ -19,39 +20,18 @@
         </el-button>
       </template>
 
-      <!--   <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 slot-scope="{row, size}" slot="phone">
-        <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneflag')"
-          v-text="textDispose(row, 'phoneflag', 'phone')">
-        </el-button>
-      </template> -->
-
-
-
-      <!-- <template slot-scope="{type, disabled}" slot="sceneGeoForm">
-        <el-button type="primary" style="font-size: 14px;  border: none;" icon="el-icon-map-location"
-          @click="openMap()">获取位置</el-button>
-
-        <avue-input-map style="position: fixed; top: -11111111111111px;" ref="avueInputMap" :params="form.params"
-          placeholder="请选择地图" v-model="form.sceneGeo"></avue-input-map>
-      </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">
+        <!-- <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>
+        </template> -->
 
       </avue-form>
 
@@ -137,14 +117,24 @@
           selection: true,
           dialogClickModal: false,
           column: [{
+              span: 12,
+              searchSpan: 4,
               label: "任务名称",
               prop: "name",
+              search: true,
+              rules: [{
+                required: true,
+                message: "请输入任务名称",
+                trigger: "blur",
+              }, ],
             },
             {
+              searchSpan: 4,
               label: "任务类型",
               prop: "taskType",
               type: "select",
               value: "1",
+              search: true,
               dicData: [{
                 label: "走访任务",
                 value: "0"
@@ -152,20 +142,107 @@
                 label: "自查任务",
                 value: "1"
               }],
-            }, {
+            },
+            // {
+            //   label: "所属街道",
+            //   parent: false,
+            //   search: true,
+            //   searchSpan: 4,
+            //   prop: "townStreetName",
+            //   type: "tree",
+            //   dicUrl: "/api/blade-system/region/getTownTree",
+            //   props: {
+            //     label: "name",
+            //     value: "name"
+            //   },
+            //   rules: [{
+            //     required: true,
+            //     message: "请选择所属街道",
+            //     trigger: "blur",
+            //   }, ],
+            // },
+            {
+              hide: true,
+              // parent: false,
+              label: "任务范围",
+              prop: "taskRange",
+              search: false,
+              type: "tree",
+              dicUrl: "/api/blade-system/region/treeToCommunity",
+              props: {
+                label: "name",
+                value: "id",
+              },
+              cascader: ["gridCode"],
+              // rules: [{
+              //   required: true,
+              //   message: "请选择所属社区",
+              //   trigger: "blur",
+              // }, ],
+            },
+            {
               label: "人员标签",
               prop: "labelId",
               type: "tree",
               parent: false,
               dicUrl: "/api/blade-label/label/getLabelList?parentId=1000",
+              display: false,
               props: {
                 label: "name",
                 value: "id",
               },
-            }, {
+              rules: [{
+                required: true,
+                message: "请选择人员标签",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              span: 7,
+              display: false,
+              label: "场所标签",
+              prop: "placeLabel",
+              labelWidth: 120,
+              type: "select",
+              dicUrl: "/api/blade-category/category/getCategory?level=2",
+              cascader: ["placeSmallLabel"],
+              props: {
+                label: "categoryName",
+                value: "categoryNo",
+              },
+              dataType: "string",
+              // hide: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请选择场所标签",
+              //   trigger: "blur",
+              // }, ],
+            },
+            {
+              span: 5,
+              display: false,
+              label: "",
+              labelWidth: 20,
+              prop: "placeSmallLabel",
+              type: "select",
+              dicUrl: "/api/blade-category/category/getCategory?parentNo={{placeLabel}}",
+              props: {
+                label: "categoryName",
+                value: "categoryNo",
+              },
+              rules: [{
+                required: true,
+                message: "请选择场所标签",
+                trigger: "blur",
+              }, ],
+              dataType: "string",
+              hide: true,
+            },
+            {
               label: "标签颜色",
               prop: "labelColor",
               type: "select",
+              display: true,
               value: "green",
               dicData: [{
                   label: "绿",
@@ -180,6 +257,11 @@
                   value: "red",
                 },
               ],
+              rules: [{
+                required: true,
+                message: "请选择标签颜色",
+                trigger: "blur",
+              }, ],
             }, {
               label: "任务计划",
               prop: "cron",
@@ -189,41 +271,15 @@
                 label: "title",
                 value: "remark",
               },
-            }, {
-              span: 7,
-              label: "场所标签",
-              prop: "placeLabel",
-              labelWidth: 120,
-              type: "select",
-              dicUrl: "/api/blade-category/category/getCategory?level=2",
-              cascader: ["placeSmallLabel"],
-              props: {
-                label: "categoryName",
-                value: "categoryNo",
-              },
-              dataType: "string",
-              hide: true,
               rules: [{
                 required: true,
-                message: "请输入场所标签",
+                message: "请选择任务计划",
                 trigger: "blur",
               }, ],
             },
             {
-              span: 5,
-              label: "",
-              labelWidth: 20,
-              prop: "placeSmallLabel",
-              type: "select",
-              dicUrl: "/api/blade-category/category/getCategory?parentNo={{placeLabel}}",
-              props: {
-                label: "categoryName",
-                value: "categoryNo",
-              },
-              dataType: "string",
-              hide: true,
-            }, {
               label: "九小类型",
+              display: false,
               prop: "nineType",
               searchSpan: 4,
               dataType: "number",
@@ -235,26 +291,34 @@
                 label: "title",
                 value: "key",
               },
-              search: true,
+              // rules: [{
+              //   required: true,
+              //   message: "请选择九小类型",
+              //   trigger: "blur",
+              // }, ],
               searchLabelWidth: 46,
             },
             {
               label: "状态",
               prop: "taskStatus",
               type: "select",
-              value: "1",
+              value: 1,
               dicData: [{
                   label: "停止",
-                  value: "1",
+                  value: 1,
                 },
                 {
                   label: "启用",
-                  value: "2",
+                  value: 2,
                 }
               ],
-            }, {
+              addDisplay: false,
+            },
+            {
               label: "创建时间",
               prop: "createTime",
+              addDisplay: false,
+              editDisplay: false,
             },
           ],
         },
@@ -263,44 +327,67 @@
       }
     },
     watch: {
-      "form.sceneGeo": {
+      "form.taskType": {
         // form是表单或者表格绑定的数据集,v-model='form'
-        handler(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]
+        handler(newData) {
+          console.log("*******************", newData)
+          const column = this.findObject(this.option.column, "placeLabel")
+          const column2 = this.findObject(this.option.column, "placeSmallLabel")
+          const column3 = this.findObject(this.option.column, "labelId")
+          const column5 = this.findObject(this.option.column, "nineType")
+          if (newData == 1) {
+            column.display = true
+            column5.display = true
+            column2.display = true
+            column3.display = false
+          } else {
+            column.display = false
+            column5.display = false
+            column2.display = false
+            column3.display = true
+          }
+        },
+      },
+      "editForm.taskType": {
+        // form是表单或者表格绑定的数据集,v-model='form'
+        handler(newData) {
+          console.log("*******************", newData)
+          const column = this.findObject(this.option.column, "placeLabel")
+          const column2 = this.findObject(this.option.column, "placeSmallLabel")
+          const column3 = this.findObject(this.option.column, "labelId")
+          const column5 = this.findObject(this.option.column, "nineType")
+          if (newData == 1) {
+            column.display = true
+            column5.display = true
+            column2.display = true
+            column3.display = false
+          } else {
+            column.display = false
+            column5.display = false
+            column2.display = false
+            column3.display = 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)
+      // "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]
-          }
-        },
-      },
+      //       var arr = val
+      //       //经纬度替换
+      //       this.editForm.sceneGeoLat = arr[1]
+      //       this.editForm.sceneGeoLng = arr[0]
+      //       this.editForm.location = arr[2]
+      //     }
+      //   },
+      // },
     },
 
     computed: {
@@ -544,6 +631,7 @@
       beforeOpen(done, type) {
         if (["edit", "view"].includes(type)) {
           getDetail(this.form.id).then((res) => {
+            console.log("********************", res.data)
             this.form = res.data.data
           })
         }

--
Gitblit v1.9.3