浏览代码

任务列表
联动选择增加搜索

彭宇 2 年之前
父节点
当前提交
a2eeafd187
共有 3 个文件被更改,包括 69 次插入51 次删除
  1. 8 3
      src/components/vBottomMenu.vue
  2. 60 47
      src/views/eventdetailsdialog.vue
  3. 1 1
      src/views/forest.vue

+ 8 - 3
src/components/vBottomMenu.vue

@@ -104,7 +104,7 @@
         <div class="btm-r-pop-info">
           <div class="btm-r-pop-info-box" v-for="(item,index) in taskList">
             <div class="btm-r-pop-info-tit">
-              <h3>火险任务</h3>
+              <h3>{{ item.taskSourceValue }}</h3>
             </div>
             <div class="btm-r-pop-info-con">
               <div class="btm-r-pop-info-list">
@@ -123,6 +123,11 @@
                 <div class="btm-r-pop-info-list-name">关联事件</div>
                 <div class="btm-r-pop-info-list-text">{{ item.eventName }}</div>
               </div>
+              <div class="btm-r-pop-info-list">
+                <div class="btm-r-pop-info-list-name">催办状态</div>
+                <div class="btm-r-pop-info-list-text" v-if="item.isUrged==1">已催办</div>
+                <div class="btm-r-pop-info-list-text" v-else>未催办</div>
+              </div>
             </div>
             <div class="btm-r-pop-info-btm">
               <el-link type="success" @click="showEventDialog( item.eventCode )">查看详情</el-link>
@@ -139,7 +144,7 @@
       </el-popover>
       <el-popover placement="top" trigger="click">
         <div class="btm-r-pop-info">
-          <div class="btm-r-pop-info-box" v-for="(item,index) in 4">
+          <div class="btm-r-pop-info-box" v-for="(item,index) in 0">
             <div class="btm-r-pop-info-tit">
               <h3>火险任务</h3>
             </div>
@@ -170,7 +175,7 @@
             </div>
           </div>
         </div>
-        <el-badge :value="3" slot="reference">
+        <el-badge :value="0" slot="reference">
           <el-button size="small" icon="el-icon-chat-line-round">消息</el-button>
         </el-badge>
       </el-popover>

+ 60 - 47
src/views/eventdetailsdialog.vue

@@ -244,6 +244,16 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item label="任务来源" v-if="eventStatusButton=='ld'">
+          <el-select v-model="sendTaskSource" placeholder="请选择任务来源!" clearable>
+            <el-option
+              v-for="dict in dict.type.task_source"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="联动标题" v-if="eventStatusButton=='ld'">
           <el-input v-model="sendTaskTitle" placeholder="请输入联动标题"/>
         </el-form-item>
@@ -253,21 +263,24 @@
           </el-input>
         </el-form-item>
         <el-form-item label="联动部门" v-if="eventStatusButton=='ld'">
-          <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
-          <!--          <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>-->
-          <!--          <el-checkbox v-model="deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>-->
+          <el-input
+            placeholder="输入关键字进行过滤"
+            v-model="filterText">
+          </el-input>
           <el-tree
             class="tree-border"
             style="height: 20vh; overflow-y:scroll"
             :data="deptOptionsLiandong"
             show-checkbox
-            default-expand-all
             ref="LiandongDept"
             node-key="id"
-            :check-strictly="!deptCheckStrictly"
+            :check-strictly="true"
+            :filter-node-method="filterNode"
+            :accordion="true"
             empty-text="加载中,请稍候"
             :props="defaultProps"
           ></el-tree>
+          <!--            default-expand-all-->
         </el-form-item>
         <el-form-item label="关联预案" v-if="eventStatusButton=='qs'">
           <el-select v-model="sendGuanLianYuAn" placeholder="请选择关联预案!" clearable>
@@ -826,6 +839,12 @@ import {
 } from '@/api/system/dept'
 
 export default {
+  dicts: ['task_source'],
+  watch: {
+    filterText(val) {
+      this.$refs.LiandongDept.filter(val);
+    }
+  },
   components: {
     vheader,
     vBottomMenu,
@@ -834,6 +853,7 @@ export default {
   },
   data() {
     return {
+      filterText:'',//树搜索
       /** *****************事件流程***************************/
       deptNameitem: '签收部门',
       sendDeptId: null,//签收部门/发起部门
@@ -841,6 +861,7 @@ export default {
       sendEventType: null,//事件类型
       sendHuoZaiBanJing: null,//火灾报告
       sendGuanLianYuAn: null,//关联预案
+      sendTaskSource:null,//任务来源
       sendTaskTitle: null,//联动标题
       sendTaskContent: null,//联动内容
       sendLianDongDept: [],//联动部门
@@ -850,9 +871,6 @@ export default {
       deptOptionsLiandong: [],//联动部门
       eventStatusButton: null,//流程按钮标识
       eventConfirmTitle: null,//弹窗标题  ---签收 误报  重复
-      deptExpand: true,//展开/折叠
-      deptNodeAll: false,//全选/全不选
-      deptCheckStrictly: false,//父子联动
       defaultProps: {
         children: 'children',
         label: 'label'
@@ -1145,6 +1163,7 @@ export default {
       this.longitude = null
       this.latitude = null
       this.sendTaskTitle = null
+      this.sendTaskSource = null
       this.sendTaskContent = null
       this.sendLianDongDept = []
       this.eventTypeList = []//事件类型列表
@@ -1162,6 +1181,7 @@ export default {
       this.sendHuoZaiBanJing = null
       this.sendGuanLianYuAn = null
       this.sendTaskTitle = null
+      this.sendTaskSource = null
       this.sendTaskContent = null
       this.sendLianDongDept = []
       this.eventTypeList = []//事件类型列表
@@ -1343,6 +1363,26 @@ export default {
               this.sendLianDongDept.push({'taskDeptId': array[i].id, 'taskDeptName': array[i].label})
             }
           }
+          if(this.sendTaskSource==""||this.sendTaskSource==null){
+            this.$message.error(`请选择任务来源!`)
+            return
+          }
+          if(this.sendTaskContent==""||this.sendTaskContent==null){
+            this.$message.error(`请输入任务内容!`)
+            return
+          }
+          if(this.sendTaskTitle==""||this.sendTaskTitle==null){
+            this.$message.error(`请输入任务标题!`)
+            return
+          }
+          if(this.sendLianDongDept==""||this.sendLianDongDept==null){
+            this.$message.error(`请选择任务联动部门!`)
+            return
+          }
+          if(this.sendDeptId==""||this.sendDeptId==null||this.sendDeptName==""||this.sendDeptName==null){
+            this.$message.error(`请选择任务发起部门!`)
+            return
+          }
           let param = {
             sendDeptId: this.sendDeptId,
             sendDept: this.sendDeptName,
@@ -1350,6 +1390,7 @@ export default {
             longitude: this.longitude,
             latitude: this.latitude,
             taskTitle: this.sendTaskTitle,
+            taskSource: this.sendTaskSource,
             taskContent: this.sendTaskContent,
             taskDept: this.sendLianDongDept
           }
@@ -1357,14 +1398,12 @@ export default {
             if (res.code == 200) {
               this.$message.success(`联动发起成功!`)
               this.refreshEventDialog(this.eventCode)
-              this.sendLianDongDept=[]
+              this.cancelEventConfirm_send()
               this.showEventConfirm = false
             }
           })
 
         } else if (eventStatus == 'gd') {
-          console.log(this.table1)
-          console.log(this.table2)
           //事件处理流程--归档
           let param = {
             eventCode: this.eventCode,
@@ -1396,6 +1435,12 @@ export default {
             }
           })
         } else {
+          if(eventStatus == 'qs'||eventStatus == 'wb'||eventStatus == 'cf'){
+            if(this.sendDeptId==""||this.sendDeptId==null||this.sendDeptName==""||this.sendDeptName==null){
+              this.$message.error(`请选择部门!`)
+              return
+            }
+          }
           //事件处理流程
           let param = {
             eventCode: this.eventCode,
@@ -1421,42 +1466,10 @@ export default {
         }
       }
     },
-    // 树权限(展开/折叠)
-    handleCheckedTreeExpand(value, type) {
-      if (type == 'menu') {
-        let treeList = this.menuOptions
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value
-        }
-      } else if (type == 'menuVisu') {
-        let treeList = this.menuVisuOptions
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.menuVisu.store.nodesMap[treeList[i].id].expanded = value
-        }
-      } else if (type == 'dept') {
-        let treeList = this.deptOptions
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.LiandongDept.store.nodesMap[treeList[i].id].expanded = value
-        }
-      }
-    },
-    // 树权限(全选/全不选)
-    handleCheckedTreeNodeAll(value, type) {
-      if (type == 'menu') {
-        this.$refs.menu.setCheckedNodes(value ? this.menuOptions : [])
-      } else if (type == 'menuVisu') {
-        this.$refs.menuVisu.setCheckedNodes(value ? this.menuVisuOptions : [])
-      } else if (type == 'dept') {
-        this.$refs.LiandongDept.setCheckedNodes(value ? this.deptOptions : [])
-      }
-    },
-    // 树权限(父子联动)
-    handleCheckedTreeConnect(value, type) {
-      if (type == 'menu') {
-        this.menuCheckStrictly = value ? true : false
-      } else if (type == 'dept') {
-        this.deptCheckStrictly = value ? true : false
-      }
+    filterNode(value, data) {
+      //树搜索
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
     },
     sendEventLog() {
       //日志发送

+ 1 - 1
src/views/forest.vue

@@ -85,7 +85,7 @@
             <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
             <div class="i-list-con h-27" style="padding-left: 1rem;">
               <el-collapse accordion>
-                <el-collapse-item v-for="(item,index) in forestFarm" :key="index">
+                <el-collapse-item v-for="(item,index) in forestFarm" :key="index" v-if="item.deptName!=null&&item.deptName!=''">
                   <!-- deptId -->
                   <template slot="title">
                     <div class="d-l-con sj-collapse" :class="{on:listCurrentIndex1==item.deptId}"