linwe
2024-08-08 1a5c9d89d7a1347046692ce5086a1391027c8593
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
          })
        }