xiebin
2022-09-20 1a81eb2f78097c62f48dc50d1b2591f5f63db2ff
事件管理功能优化
4 files modified
107 ■■■■■ changed files
src/const/eventgm/eventgm.js 56 ●●●● patch | view | raw | blame | history
src/views/eventgm/disposal.vue 16 ●●●● patch | view | raw | blame | history
src/views/eventgm/eventgm.vue 34 ●●●●● patch | view | raw | blame | history
src/views/repairsorder/sendorder.vue 1 ●●●● patch | view | raw | blame | history
src/const/eventgm/eventgm.js
@@ -6,8 +6,15 @@
  searchMenuSpan: 6,
  border: true,
  index: true,
  viewBtn: true,
  viewBtn: false,
  delBtn: false,
  editBtn: false,
  menuType:'menu',
  menuBtnTitle:'事件处置',
  selection: true,
  selectable: (row) => {
    return parseInt(row.state) == 0;
  },
  dialogClickModal: false,
  column: [
    {
@@ -18,23 +25,6 @@
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "事件类型",
      prop: "type",
      type: "select",
      dicUrl: "/api/blade-system/dict-biz/dictionary?code=EVENT_TYPE",
      dataType: "number",
      props: {
        label: "dictValue",
        value: "dictKey"
      },
      rules: [{
        required: true,
        message: "请选择事件类型",
        trigger: "blur"
      }],
      search: true,
    },
    {
      label: "上报人",
@@ -62,19 +52,31 @@
      prop: "avueMapAddress",
      type: "map",
      component: 'avueMap',
      value: {
        // "formattedAddress": "",
        // "longitude": 0,
        // "latitude": 0
      },
      // value: {},
      hide: true,
      overHidden: true,
      span: 24,
      rules: [{
        required: true,
        message: "选择坐标",
        trigger: "blur"
      }],
    },
    {
      label: "事件类型",
      prop: "type",
      type: "select",
      dicUrl: "/api/blade-system/dict-biz/dictionary?code=EVENT_TYPE",
      dataType: "number",
      props: {
        label: "dictValue",
        value: "dictKey"
      },
      rules: [{
        required: true,
        message: "请选择事件类型",
        trigger: "blur"
      }],
      search: true,
    },
    {
      label: "地址",
@@ -118,18 +120,20 @@
      label: "事件状态",
      prop: "state",
      type: "select",
      search: true,
      disabled: true,
      dicUrl: "/api/blade-system/dict-biz/dictionary?code=EVENT_STATE",
      dataType: "number",
      props: {
        label: "dictValue",
        value: "dictKey"
      },
      search: true,
    },
    {
      label: "任务来源",
      label: "事件来源",
      prop: "source",
      type: "select",
      disabled: true,
      dicData: [{id:'WEB',name:'WEB'},{id:'APP',name:'APP'}],
      props: {
        label: "name",
src/views/eventgm/disposal.vue
@@ -1,3 +1,4 @@
<!--事件处置弹窗页面-->
<template>
  <el-dialog
    :title="title"
@@ -21,7 +22,7 @@
      title:"事件处置",
      form: {},
      visible: false,
      ids: null,
      eventgm: null,
      option: {
        emptyBtn: false,
        submitText: "保存",
@@ -31,6 +32,7 @@
            label: "事件状态",
            prop: "state",
            type: "select",
            disabled:true,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=EVENT_STATE",
            dataType: "number",
            props: {
@@ -49,20 +51,26 @@
            prop: "remark",
            type: "textarea",
            span: 24,
            rules: [{
              required: true,
              message: "请输入备注",
              trigger: "blur"
            }]
          }
        ]
      }
    }
  },
  methods: {
    init(ids) {
    init(eventgm) {
      this.visible = true
      this.ids = ids
      this.eventgm = eventgm
      this.form.state = 10
    },
    // 表单提交
    submit(row,done) {
      var that = this
      row['id'] = that.ids
      row['id'] = that.eventgm.id
      update(row).then(() => {
        this.$refs.form.resetFields()
        this.$emit("refreshOnLoad")
src/views/eventgm/eventgm.vue
@@ -18,6 +18,19 @@
               @size-change="sizeChange"
               @refresh-change="refreshChange"
               @on-load="onLoad">
      <template slot-scope="{type,size,row,index}" slot="menuBtn">
        <el-dropdown-item icon="el-icon-check" :size="size" :type="type"
                          :disabled="row.state >= 1"
                          @click.native="createOrder">生成维修工单</el-dropdown-item>
        <!--divided 是一个划分线-->
        <el-dropdown-item divided icon="el-icon-error" :size="size" :type="type"
                          :disabled="row.state >= 2"
                          @click.native="handleDisposal(row)">拒绝</el-dropdown-item>
      </template>
      <template slot-scope="{type,size,row,index}" slot="menu">
        <el-button icon="el-icon-edit" :size="size" :type="type" :disabled="row.state >= 1" @click="$refs.crud.rowEdit(row,index)">编 辑</el-button>
        <el-button icon="el-icon-delete" :size="size" :type="type" :disabled="row.state >= 1" @click="$refs.crud.rowDel(row,index)">删 除</el-button>
      </template>
      <template slot="menuLeft">
        <el-button type="danger"
                   size="small"
@@ -26,9 +39,6 @@
                   v-if="permission.eventgm_delete"
                   @click="handleDelete">删 除
        </el-button>
      </template>
      <template slot="menuLeft">
        <el-button icon="el-icon-check" type="success" size="small" @click="handleDisposal">事件处置</el-button>
      </template>
    </avue-crud>
@@ -170,6 +180,9 @@
              "latitude": this.form.latitude
            }
          });
        } else {
          this.form.source = 'WEB'
          this.form.state = '0'
        }
        done();
      },
@@ -209,20 +222,13 @@
          this.selectionClear();
        });
      },
      handleDisposal() {
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
        }
        if (this.selectionList.length > 1) {
          this.$message.warning("请选择一条数据");
          return;
        }
      handleDisposal(row) {
        this.disposalVisible = true
        this.$nextTick(() => {
          this.$refs.disposal.init(this.ids)
          this.$refs.disposal.init(row)
        })
      }
      },
      createOrder(){}
    }
  };
</script>
src/views/repairsorder/sendorder.vue
@@ -1,3 +1,4 @@
<!--派单弹窗页面-->
<template>
  <el-dialog
    :title="title"