From 19824ba58a83eb98c0ed547067fbe988875b7283 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 29 九月 2025 17:08:05 +0800
Subject: [PATCH] 最新版本541200007

---
 admin/src/api/business/warning.js                        |    6 +
 admin/src/views/business/warningRule.vue                 |  104 +++++++----------
 admin/src/components/business/OperaWarningRuleWindow.vue |  222 ++++++++++++++++++++++++++++++------
 admin/src/views/business/warningPush.vue                 |   12 -
 admin/src/api/business/warningRule.js                    |    4 
 admin/src/api/business/device.js                         |    1 
 6 files changed, 241 insertions(+), 108 deletions(-)

diff --git a/admin/src/api/business/device.js b/admin/src/api/business/device.js
index 207ca0b..7259c4a 100644
--- a/admin/src/api/business/device.js
+++ b/admin/src/api/business/device.js
@@ -12,6 +12,7 @@
   return request.post('/visitsAdmin/cloudService/business/hksync/syncDevices', data)
 }
 
+
 // 鑾峰彇闂ㄧ闆嗗悎-鎻愪緵缁欓棬绂佺粍
 export function getList (data) {
   return request.post('/visitsAdmin/cloudService/business/device/getList', data)
diff --git a/admin/src/api/business/warning.js b/admin/src/api/business/warning.js
index e81fa5e..a18378e 100644
--- a/admin/src/api/business/warning.js
+++ b/admin/src/api/business/warning.js
@@ -14,6 +14,12 @@
     download: true
   })
 }
+export function allList (data) {
+  return request.post('/visitsAdmin/cloudService/business/warning/allList', data)
+}
+export function regionList (data) {
+  return request.post('/visitsAdmin/cloudService/business/hksync/regionList', data)
+}
 export function updateStatus (data) {
   return request.post('/visitsAdmin/cloudService/business/warning/updateStatus', data)
 }
diff --git a/admin/src/api/business/warningRule.js b/admin/src/api/business/warningRule.js
index 15a1602..16bf530 100644
--- a/admin/src/api/business/warningRule.js
+++ b/admin/src/api/business/warningRule.js
@@ -19,7 +19,9 @@
 export function create (data) {
   return request.post('/visitsAdmin/cloudService/business/warningRule/create', data)
 }
-
+export function updateStatus (data) {
+  return request.post('/visitsAdmin/cloudService/business/warning/updateStatus', data)
+}
 // 淇敼
 export function updateById (data) {
   return request.post('/visitsAdmin/cloudService/business/warningRule/updateById', data)
diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index 5635278..2f8126f 100644
--- a/admin/src/components/business/OperaWarningRuleWindow.vue
+++ b/admin/src/components/business/OperaWarningRuleWindow.vue
@@ -1,43 +1,57 @@
 <template>
   <GlobalWindow
     :title="title"
+    width="50%"
     :visible.sync="visible"
     :confirm-working="isWorking"
     @confirm="confirm"
   >
+    <p class="tip-warn"><i class="el-icon-warning"></i>鎿嶄綔璇存槑锛�<br>
+      1.璇锋寜闇�閰嶇疆鎺ㄩ�佽鍒欙紝閰嶉�佸涓鍒欐椂锛屽嵆涓哄涓鍒欐弧瓒虫椂鎵嶆帹閫�;<br>
+      2.鍙戠敓鍖哄煙闈炲繀濉紝涓嶅~鍒欒〃绀鸿瑙勫垯涓嬫墍鏈夊尯鍩熺殑鐩稿簲鎶ヨ绫诲瀷鍧囬�氱煡;<br>
+    </p>
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
-        <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      <el-form-item label="閫夋嫨绛惧埌閫氱煡浜哄憳" prop="memberIds" style="margin-bottom: 30px" >
+        <el-select v-model="memberSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeMembers">
+          <el-option v-for="item in memberList" :key="'member_'+item.id" :label="item.name+'-'+item.companyName" :value="item.id+''">
+          </el-option>
+        </el-select>
       </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
-        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      <div style="display: flex;" v-for="(item,index) in form.detailList" :key="'region_'+item.random" >
+        <span style="line-height: 32px;font-size: 14px;"><b style="color: #F56C6C;margin-right: 4px;font-size: 11px;">*</b>{{'瑙勫垯'+(index +1)}}</span>
+        <el-form-item label=""   style="display: inline-block;margin-left: 10px; " >
+          <el-select v-model="item.warningId" filterable      placeholder="璇烽�夋嫨鎶ヨ绫诲瀷"    >
+            <el-option v-for="item in warningList"   :label="item.name" :value="item.id">  </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label=""  style="display: inline-block;margin-left: 10px">
+<!--          <el-select v-model="item.regionId" filterable multiple clearable  placeholder="璇烽�夋嫨鍙戠敓鍖哄煙" >
+            <el-option v-for="item in regionList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>-->
+          <treeselect
+              style="width: 200px;height:32px;display: inline-block"
+              @input="changeSel(index)"
+              v-model="item.regionId"
+              placeholder="璇烽�夋嫨鍙戠敓鍖哄煙"
+              :options="regionList"
+              :normalizer="normalizeOptions"
+              :default-expand-level="1"
+              noChildrenText="娌℃湁瀛愰�夐」"
+              noOptionsText="娌℃湁鍙�夐」"
+              noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />
+        </el-form-item>
+        <el-button type="danger" style="margin-left: 10px;height: 32px; " @click="delDo(index)" v-if="index>0 || form.detailList.length>1">鍒犻櫎</el-button>
+      </div>
+      <el-button type="primary" style="margin-left: 10px;margin-bottom: 20px;" @click="addDo">澧炲姞瑙勫垯</el-button>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-radio-group v-model="form.status">
+          <el-radio :label="0" :value="0">绂佺敤</el-radio>
+          <el-radio :label="1" :value="1">鍚敤</el-radio>
+        </el-radio-group>
       </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
-        <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
-        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
-        <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="info">
-        <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)" prop="memberId">
-        <el-input v-model="form.memberId" placeholder="璇疯緭鍏ュ唴閮ㄤ汉鍛樼紪鐮侊紙鍏宠仈member)" v-trim/>
-      </el-form-item>
-      <el-form-item label="澶氳鍒欓棿闅旀椂闂�(绉掞級" prop="intervalSec">
-        <el-input v-model="form.intervalSec" placeholder="璇疯緭鍏ュ瑙勫垯闂撮殧鏃堕棿(绉掞級" v-trim/>
-      </el-form-item>
-      <el-form-item label="鎺掑簭鐮�" prop="sortnum">
-        <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐘舵�� 0绂佺敤 1鍚敤" prop="status">
-        <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0绂佺敤 1鍚敤" v-trim/>
-      </el-form-item>
-      <el-form-item label="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�" prop="warningId">
-        <el-input v-model="form.warningId" placeholder="璇疯緭鍏ユ姤璀︾被鍨嬬紪鐮�(鍏宠仈warning锛�" v-trim/>
+      <el-form-item label="鍙戠敓闂撮殧鏃堕棿(绉掞級" prop="intervalSec">
+        <el-input type="number" v-model="form.intervalSec" placeholder="璇疯緭鍏ュ瑙勫垯闂撮殧鏃堕棿(绉掞級" v-trim/>
       </el-form-item>
     </el-form>
   </GlobalWindow>
@@ -46,6 +60,8 @@
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
+import { allList } from '@/api/business/member'
+import { allList as warningList, regionList } from '@/api/business/warning'
 export default {
   name: 'OperaWarningRuleWindow',
   extends: BaseOpera,
@@ -55,20 +71,20 @@
       // 琛ㄥ崟鏁版嵁
       form: {
         id: null,
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
-        info: '',
-        memberId: '',
+        memberIds: '',
         intervalSec: '',
         sortnum: '',
-        status: '',
-        warningId: ''
+        status: 0,
+        detailList: [{ random:Math.random(),regionId: null, regionName: null, regionCode: null ,warningId:null}]
       },
+      memberSelect: [],
+      memberList: [],
+      warningList: [],
+      regionList: [],
       // 楠岃瘉瑙勫垯
       rules: {
+        memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳', tigger: 'blur' }],
+        status: [{ required: true, message: '璇烽�夋嫨鐘舵��'}]
       }
     }
   },
@@ -77,6 +93,134 @@
       api: '/business/warningRule',
       'field.id': 'id'
     })
+  },
+  methods: {
+    normalizeOptions (node) {
+      if (!node.childList || !node.childList.length) {
+        // 鍘绘帀children=[]鐨刢hildren灞炴��
+        delete node.childList
+      }
+      return {
+        id: node.indexCode,
+        label: node.name,
+        children: node.childList
+      }
+    },
+    changeSel(opt){
+      var item = this.form.detailList[opt]
+      this.form.detailList[opt].regionCode = null
+      this.form.detailList[opt].regionName = null
+      if(item.regionId){
+        var reg = this.getSelectedObject(item.regionId)
+        if(reg){
+          this.form.detailList[opt].regionCode = reg.indexCode
+          this.form.detailList[opt].regionName = reg.name
+        }
+      }
+      console.log(" this.form.detailList[opt]",reg, this.form.detailList[opt])
+    },
+    getSelectedObject(id) {
+      if (!id) {
+        return null  // 娌℃湁閫変腑椤规椂杩斿洖 null 鎴� {} 鏍规嵁闇�瑕佸鐞�
+      }
+      const findSelected = (options) => {
+        for (const option of options) {
+          if (option.indexCode === id) {
+            return option // 杩斿洖鍖归厤鐨勫畬鏁村璞�
+          } else if (option.childList && option.childList.length > 0) {
+            const found = findSelected(option.childList) // 閫掑綊鎼滅储瀛愰�夐」
+            if (found) return found // 濡傛灉鎵惧埌杩斿洖璇ュ璞�
+          }
+        }
+        return null; // 鏈壘鍒拌繑鍥� null 鎴� {} 鏍规嵁闇�瑕佸鐞�
+      }
+      return findSelected(this.regionList); // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
+    },
+    addDo () {
+      this.form.detailList.push({random:Math.random(), regionId: null, regionName: null, regionCode: null,warningId:null })
+    },
+    delDo (index) {
+      if (this.form.detailList.length > 1 && this.form.detailList.length > index) {
+        this.form.detailList.splice(index, 1)
+      }
+    },
+    changeMembers () {
+      console.log(this.memberSelect)
+      this.form.memberIds = ''
+      if (!this.memberSelect || !this.memberSelect.length) {
+        return
+      }
+      this.form.memberIds = this.memberSelect.join(',')
+    },
+    open (title, target) {
+      this.memberSelect =[]
+      this.title = title
+      this.loadMember()
+      this.loadRegions()
+      this.loadWarning()
+      this.visible = true
+      this.form = {
+        id: null,
+        memberIds: '',
+        intervalSec: '',
+        sortnum: '',
+        status: 0,
+        detailList: [{ random:Math.random(),regionId: null, regionName: null, regionCode: null,warningId:null }]
+      }
+      // 鏂板缓
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        if (!this.form.detailList || !this.form.detailList.length) {
+          this.form.detailList = [{ random:Math.random(),regionId: null, regionName: null, regionCode: null,warningId:null }]
+        }
+        if(this.form.memberIds){
+          this.memberSelect = this.form.memberIds.split(",")
+        }
+      })
+    },
+    loadMember () {
+      allList({
+        type: 2
+      }).then(res => {
+        this.memberList = res
+      })
+    },
+    loadWarning () {
+      warningList({
+      }).then(res => {
+        this.warningList = res
+      })
+    },
+    loadRegions () {
+      regionList({
+      }).then(res => {
+        this.regionList = res
+      })
+    }
   }
 }
 </script>
+<style scoped lang="scss">
+.inline {
+  width: 178px;
+}
+.vue-treeselect {
+  line-height: 30px;
+  ::v-deep .vue-treeselect__control {
+    height: 32px;
+    .vue-treeselect__single-value {
+      line-height: 30px;
+    }
+  }
+}
+</style>
diff --git a/admin/src/views/business/warningPush.vue b/admin/src/views/business/warningPush.vue
index 0c0b205..ff1d735 100644
--- a/admin/src/views/business/warningPush.vue
+++ b/admin/src/views/business/warningPush.vue
@@ -2,13 +2,6 @@
   <TableLayout :permissions="['business:warningpush:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鎶ヨ绫诲瀷" prop="warningId">
-        <el-select v-model="searchForm.warningId" placeholder="璇烽�夋嫨" clearable @change="search">
-          <el-option label="鏈帹閫�" value="0"></el-option>
-          <el-option label="鎺ㄩ�佹垚鍔�" value="1"></el-option>
-          <el-option label="鎺ㄩ�佸け璐�" value="2"></el-option>
-        </el-select>
-      </el-form-item>
       <el-form-item label="鎶ヨ鍒嗙被" prop="warningType">
         <el-select v-model="searchForm.warningType" placeholder="璇烽�夋嫨" clearable  @change="search">
           <el-option label="瀹夐槻浜嬩欢" value="0"></el-option>
@@ -23,6 +16,9 @@
       </el-form-item>
       <el-form-item label="鎶ヨ鍐呭" prop="content">
         <el-input v-model="searchForm.content" placeholder="璇疯緭鍏ユ姤璀﹀唴瀹�" clearable @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="閫氱煡浜哄憳" prop="content">
+        <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ラ�氱煡浜哄憳" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="閫氱煡鐘舵�� " prop="status">
         <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨"   clearable @change="search">
@@ -88,6 +84,7 @@
         <el-table-column prop="region" label="鎵�鍦ㄤ綅缃�" min-width="120px" show-tooltip-when-overflow></el-table-column>
         <el-table-column prop="content" label="鎶ヨ鍐呭" min-width="180px" show-tooltip-when-overflow></el-table-column>
         <el-table-column prop="memberName" label="閫氱煡浜哄憳" min-width="100px" show-tooltip-when-overflow></el-table-column>
+        <el-table-column prop="companyName" label="浜哄憳閮ㄩ棬" min-width="100px" show-tooltip-when-overflow></el-table-column>
         <el-table-column prop="status" label="閫氱煡鐘舵��" min-width="100px">
           <template slot-scope="{row}">
             <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">鏈�氱煡</span>
@@ -134,6 +131,7 @@
       searchForm: {
         id: '',
         warningId: '',
+        memberName: null,
         warningType: null,
         title: '',
         content: '',
diff --git a/admin/src/views/business/warningRule.vue b/admin/src/views/business/warningRule.vue
index c0511a1..ebc0e6d 100644
--- a/admin/src/views/business/warningRule.vue
+++ b/admin/src/views/business/warningRule.vue
@@ -2,52 +2,27 @@
   <TableLayout :permissions="['business:warningrule:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鎶ヨ瑙勫垯" prop="info">
+        <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ユ姤璀﹁鍒�" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
-        <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      <el-form-item label="浜哄憳/閮ㄩ棬" prop="memberNames">
+        <el-input v-model="searchForm.memberNames" placeholder="璇疯緭鍏ヤ汉鍛樻垨閮ㄩ棬鍚�" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
-        <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
-        <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
-        <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
-        <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="info">
-        <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)" prop="memberId">
-        <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ュ唴閮ㄤ汉鍛樼紪鐮侊紙鍏宠仈member)" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="澶氳鍒欓棿闅旀椂闂�(绉掞級" prop="intervalSec">
-        <el-input v-model="searchForm.intervalSec" placeholder="璇疯緭鍏ュ瑙勫垯闂撮殧鏃堕棿(绉掞級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎺掑簭鐮�" prop="sortnum">
-        <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵�� 0绂佺敤 1鍚敤" prop="status">
-        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0绂佺敤 1鍚敤" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�" prop="warningId">
-        <el-input v-model="searchForm.warningId" placeholder="璇疯緭鍏ユ姤璀︾被鍨嬬紪鐮�(鍏宠仈warning锛�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鐘舵��" prop="status" >
+        <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨鐘舵��" clearable @change="search">
+          <el-option label="绂佺敤" value="0"></el-option>
+          <el-option label="鍚敤" value="1"></el-option>
+        </el-select>
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:warningrule:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
         <el-button @click="reset">閲嶇疆</el-button>
       </section>
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
       <ul class="toolbar" v-permissions="['business:warningrule:create', 'business:warningrule:delete']">
-        <li><el-button type="primary" @click="$refs.operaWarningRuleWindow.open('鏂板缓鎶ヨ瑙勫垯閰嶇疆琛�')" icon="el-icon-plus" v-permissions="['business:warningrule:create']">鏂板缓</el-button></li>
+        <li><el-button type="primary" @click="$refs.operaWarningRuleWindow.open('鏂板缓鎶ヨ瑙勫垯閰嶇疆')" icon="el-icon-plus" v-permissions="['business:warningrule:create']">鏂板缓</el-button></li>
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:warningrule:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
@@ -58,18 +33,17 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
-        <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
-        <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
-        <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
-        <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="memberId" label="鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)" min-width="100px"></el-table-column>
-        <el-table-column prop="intervalSec" label="澶氳鍒欓棿闅旀椂闂�(绉掞級" min-width="100px"></el-table-column>
-        <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="status" label="鐘舵�� 0绂佺敤 1鍚敤" min-width="100px"></el-table-column>
-        <el-table-column prop="warningId" label="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="title" label="鎶ヨ瑙勫垯" min-width="200px" show-tooltip-when-overflow></el-table-column>
+        <el-table-column prop="memberNames" label="鎶ヨ鎺ユ敹浜�" min-width="200px" show-tooltip-when-overflow></el-table-column>
+        <el-table-column prop="intervalSec" label="闂撮殧鏃堕棿(绉掞級" min-width="100px" ></el-table-column>
+        <el-table-column prop="status" label="鐘舵��" min-width="100px" >
+          <template slot-scope="{row}">
+            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
+                       inactive-color="#ff4949" :active-value="1" :inactive-value="0" >
+            </el-switch>
+          </template>
+        </el-table-column>
+        <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="150px"></el-table-column>
         <el-table-column
           v-if="containPermissions(['business:warningrule:update', 'business:warningrule:delete'])"
           label="鎿嶄綔"
@@ -77,7 +51,7 @@
           fixed="right"
         >
           <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaWarningRuleWindow.open('缂栬緫鎶ヨ瑙勫垯閰嶇疆琛�', row)" icon="el-icon-edit" v-permissions="['business:warningrule:update']">缂栬緫</el-button>
+            <el-button type="text" @click="$refs.operaWarningRuleWindow.open('缂栬緫鎶ヨ瑙勫垯閰嶇疆', row)" icon="el-icon-edit" v-permissions="['business:warningrule:update']">缂栬緫</el-button>
             <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:warningrule:delete']">鍒犻櫎</el-button>
           </template>
         </el-table-column>
@@ -107,29 +81,37 @@
     return {
       // 鎼滅储
       searchForm: {
-        id: '',
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
-        info: '',
-        memberId: '',
-        intervalSec: '',
-        sortnum: '',
-        status: '',
-        warningId: ''
+        title: '',
+        memberNames: '',
+        status:'',
       }
     }
   },
   created () {
     this.config({
-      module: '鎶ヨ瑙勫垯閰嶇疆琛�',
+      module: '鎶ヨ瑙勫垯閰嶇疆',
       api: '/business/warningRule',
       'field.id': 'id',
       'field.main': 'id'
     })
     this.search()
+  },
+  methods: {
+    changeStatus (e, row) {
+      this.working = true
+      this.api.updateStatus({ id: row.id, status: e })
+          .then(res => {
+            this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+            this.search()
+          })
+          .catch(e => {
+            this.$tip.apiFailed(e)
+          })
+          .finally(() => {
+            this.working = false
+          })
+          .catch(() => { })
+    }
   }
 }
 </script>

--
Gitblit v1.9.3