Bladeren bron

事件分组

zhuliu 1 jaar geleden
bovenliggende
commit
155df9bf38

+ 0 - 1
src/views/event/components/dialog/addEvent.vue

@@ -283,7 +283,6 @@ export default {
     },
     //提交保存、编辑事件接口
     addInterface(forms) {
-      this.$emit('isAddEdit',forms)
       let formData = new FormData()
       // formData.append('file')//文件数据
       formData.append('event', JSON.stringify(forms[0]))

+ 20 - 22
src/views/event/components/index.vue

@@ -44,13 +44,10 @@
             :commonData="commonData"
             @on-sort="handleSort"
             @option="handleOption"
-            
             :groupBy='groupingValue'
             :groupingOption="groupingOption"
             :searchOption="searchOption"
-            :addEditData="addEditData"
-            :deleData="deleData"
-            @getData="getData"
+            :handleMessage="handleMessage"
           ></component>
         </div>
       </el-main>
@@ -68,7 +65,7 @@
       </el-footer>
     </el-container>
 
-    <addEvent ref="addEvent"  @isSuccess="handleSuccess" @isAddEdit="isAddEdit"></addEvent>
+    <addEvent ref="addEvent"  @isSuccess="handleSuccess"></addEvent>
     <fields ref="field"></fields>
   </div>
 </template>
@@ -130,10 +127,8 @@ export default {
       scene:[],
       //表格全部栏位
       fieldList: [],
-      // 分组时新增或编辑事件数组
-      addEditData: [],
-      // 分组时删除事件数组
-      deleData:[],
+      //操作回馈
+      handleMessage:''
     };
   },
   watch: {},
@@ -152,19 +147,19 @@ export default {
         this.scene = response.data.ENTERPRISE_APPLICATION_SCENARIO  
       })
     },
-    // 分组时若删除当前分组最后一条数据时重新请求分组接口
-    getData(val) {
-      this.getGrouping()
-    },
-    // 子组件新增事件、编辑事件成功往孙组件table发送数据
-    isAddEdit(val) {
-      this.addEditData=val
-    },
     // 子组件新增事件成功
     handleSuccess(val) {
+      this.handleMessage = val
       this.queryParams.current = 1
       this.searchOption.searchQuery=''
       this.getList()
+      this.clearMessage()
+    },
+    //清空信息
+    clearMessage(){
+      this.$nextTick(()=>{
+        this.handleMessage = ''
+      })
     },
     //显示视图?
     showViews() {
@@ -336,14 +331,14 @@ export default {
       }
     },
     //表格操作列(option为操作类型,row为当前行数据,type为报告类型,单件事件弹窗为1)
-    handleOption({ option, row, type }) {
+    handleOption({ option, row, type,isLast }) {
       switch (option) {
         case '0'://新增专题库
           break;
         case 'addReport'://新增报告
           break;
         case '10'://删除
-          this.eventDelete(row)
+          this.eventDelete(row,isLast)
           break;
         case 'cancel'://取消关联
           break;
@@ -353,19 +348,22 @@ export default {
       }
     },
     // 删除事件
-    eventDelete(row) {
-      this.deleData=[]
+    eventDelete(row,isLast) {
       this.$confirm('此操作将删除该事件, 是否继续?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
         // 调用接口
-        this.deleData.push(row)
         let params = [ row.id ]
         this.$api.deleteEvent(params).then(res => {
           if (res.code == 200) {
             this.getList()
+            if(isLast){
+              this.isGrouping()
+            }
+            this.handleMessage = '删除成功'
+            this.clearMessage()
             this.$message.success('删除成功!');
           }
         })

+ 17 - 2
src/views/event/components/mixins/index.js

@@ -71,8 +71,19 @@ export default {
       this.$emit('option', { option: 'cancel', row })
     },
     //操作列事件
-    handleCommand(option, row) {  
-      this.$emit('option', { option, row })
+    handleCommand(option, row) { 
+      var isLast = false
+      if(option == 10){
+        this.action={
+          type:'1',
+          id:row.id
+        } 
+        if(this.tableData.length == 1){
+          isLast = true
+        }
+      }
+      
+      this.$emit('option', { option, row,isLast:isLast })
     },
     //新增报告
     handleAnalyse(type, row) {
@@ -80,6 +91,10 @@ export default {
     },
     //编辑事件
     handleClick(row) {
+      this.action={
+        type:'2',
+        id:row.id
+      } 
       this.$emit('option', { option: 'edit', row })
     }
   },

+ 63 - 25
src/views/event/components/view/table.vue

@@ -108,8 +108,8 @@ export default {
       }
     },
     row: null,
-    editData:null,
-    addEditData:null,
+    //操作信息
+    handleMessage:''
   },
   data() {
     return {
@@ -125,33 +125,19 @@ export default {
       },
       // 排序数组
       sort: [],
+      //事件类型及所选
+      action:{
+        type:'',//1表示删除,2表示其他,3表示新增
+        id:''
+      }
     };
   },
   watch: {
-    // 分组时新增或编辑事件处理
-    'addEditData'(val) {
-      let a = this.tableData.findIndex(item => {
-        return item.id == val[0].id
-      })
-      if (a != -1) {
-        this.$set(this.tableData,[a],val[0])
-      } else {
-        this.$set(this.tableData, [this.tableData.length], val[0])
-      }
-    },
-    'deleData'(val) {
-      let a = this.tableData.findIndex(item => {
-        return item.id == val[0].id
-      })
-      if (a != -1) {
-        this.tableData.splice(a, 1)
-        console.log(this.tableData);
-        // 分组时若删除当前分组最后一条数据时重新请求分组接口
-        if (this.tableData.length==0) {
-          this.$emit('getData',true)
-        }
+    handleMessage(val){
+      if(val){
+        this.updateData()
       }
-    },
+    }
   },
   mounted() {
     if (!this.row) {
@@ -161,6 +147,58 @@ export default {
     }
   },
   methods: {
+    //更新数据
+    updateData(){
+      if(this.action.type == 1){
+        if(this.tableData.length == 1){
+          return false
+        }
+        var startIndex = this.tableData.findIndex(item=>{
+              return item.id == this.action.id
+          })
+          this.tableData.splice(startIndex,1)
+        let params = {
+          ...this.params,
+          ...this.row.searchOption,//检索条件
+          orderDTOList: this.sort,//排序
+          groupField: this.row.groupBy,
+          groupFieldValue: this.row.row.value,
+        }
+        this.getList2(params,1)
+      }else if(this.action.type == 2){
+        let params = {
+          ...this.params,
+          searchQuery:`id=${this.action.id}`,//检索条件
+          groupField: this.row.groupBy,
+          groupFieldValue: this.row.row.value,
+        }
+        this.getList2(params,2)
+      }
+    },
+
+    getList2(params,type){
+      
+      this.$api.queryEvent(params).then(res => {
+        if (res.code == 200) {
+          if(type == 1){
+            var startIndex = (params.current-1)*size
+            var endIndex = this.tableData.length
+            var len = endIndex - startIndex
+            this.tableData.splice(startIndex,len,...res.data.data)
+            this.params.total = res.data.total
+          }else if(type == 2){
+            var startIndex = this.tableData.findIndex(item=>{
+              return item.id == this.action.id
+            })
+            this.tableData.splice(startIndex,1,...res.data.data)
+          }
+          
+        }
+      }).catch(err => {
+      })
+    },
+
+
     getList() {
       if (!this.row) return;
       if (this.params.current * this.params.size >= this.params.total) {