From 0dbf19e9f92f5cb1d5ca9a06fd268d3b16e466e3 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 07 十二月 2022 15:22:01 +0800
Subject: [PATCH] 完善断流监控,集群和设备详情的查询

---
 src/views/personalCenter/components/SubAccount.vue |  307 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 193 insertions(+), 114 deletions(-)

diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue
index 5efb91e..985a4f0 100644
--- a/src/views/personalCenter/components/SubAccount.vue
+++ b/src/views/personalCenter/components/SubAccount.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="sub-account" v-if="!isShowAdd && !isShowRelate">
-    <div class="head-name">瀛愯处鎴风鐞�</div>
+    <div class="head-name" v-show="showHeadName">瀛愯处鍙风鐞�</div>
     <div class="search">
       <div class="left">
         <div class="id">
@@ -41,14 +41,15 @@
         :data="dataList"
         :fit="true"
         :default-sort="{ prop: 'createTime', order: 'descending' }"
+        v-loading="tbLoading"
       >
         <el-table-column label="搴忓彿" width="55" class-name="index">
           <template slot-scope="scope">{{ scope.$index + 1 + (page - 1) * size }}</template>
         </el-table-column>
-        <el-table-column prop="username" label="鐢ㄦ埛鍚�" show-overflow-tooltip ></el-table-column>
-        <el-table-column prop="trueName" label="濮撳悕" show-overflow-tooltip ></el-table-column>
-        <el-table-column prop="phoneNum" label="鎵嬫満鍙�" show-overflow-tooltip ></el-table-column>
-        <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷" >
+        <el-table-column prop="username" label="鐢ㄦ埛鍚�" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="trueName" label="濮撳悕" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="phoneNum" label="鎵嬫満鍙�" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷">
           <template slot-scope="scope">
             <span>{{ scope.row.userType == 1 ? "鏈湴" : "OA璐︽埛" }}</span>
           </template>
@@ -94,10 +95,11 @@
     </div>
   </div>
   <div class="sub-account" v-else-if="isShowAdd">
-    <div class="add-title" @click="isShowAdd = false">
+    <!-- <div class="add-title" @click="isShowAdd = false">
       <span class="iconfont">&#xe614;</span>
-      <span>娣诲姞瀛愯处鎴�</span>
-    </div>
+      <span>瀛愯处鎴风鐞�</span>
+    </div> -->
+    <div class="head-name" style="margin-bottom:20px">瀛愯处鎴风紪杈�</div>
     <el-form
       :model="ruleForm"
       :rules="rules"
@@ -194,9 +196,32 @@
           />
         </div>
       </el-form-item>
+      <el-form-item label="鐭俊鎺ㄩ��" v-show="isEditing">
+        <el-select v-model="smsSceneConfig" multiple collapse-tags style="width: 250px" placeholder="璇烽�夋嫨">
+          <el-option
+            v-for="item in taskOptions"
+            style="font-size: 12px"
+            :key="item.value"
+            :value="item.value"
+            :label="item.value"
+            :title="item.value"
+          ></el-option>
+        </el-select>
+        <el-select
+          v-model="smsLevelConfig"
+          multiple
+          collapse-tags
+          style="margin-left:10px;width: 150px"
+          placeholder="璇烽�夋嫨"
+        >
+          <el-option v-for="item in levelOptions" :key="item.value" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+        <el-checkbox v-model="smsEnable" style="margin-left:20px">鍚敤</el-checkbox>
+      </el-form-item>
     </el-form>
     <div class="right">
-      <div class="button searchBtn" @click="saveSubUser">淇濆瓨</div>
+      <div class="button searchBtn" @click="saveUser">淇濆瓨</div>
       <div class="button resetBtn" @click="resetUser">閲嶇疆</div>
       <div class="button resetBtn" style="margin-left:20px" @click="goback">杩斿洖</div>
     </div>
@@ -213,6 +238,7 @@
 
 <script>
 import { findUserList, saveSubUser, getMenu, getDataTree, deleteUser } from "@/api/user"
+import { findTaskById, updateTask } from "@/api/report"
 import { getAreas, getDic } from "@/api/login"
 
 import Steps from "./Steps"
@@ -224,6 +250,59 @@
     Steps,
     StepsCard,
     TreeMenu
+  },
+  computed: {
+    taskOptions() {
+      return [
+        {
+          value: "鏄庣伀",
+          label: "鏄庣伀"
+        },
+        {
+          value: "鐑熼浘",
+          label: "鐑熼浘"
+        },
+        {
+          value: "缈昏秺鍥存爮",
+          label: "缈昏秺鍥存爮"
+        },
+        {
+          value: "鍖哄煙鍏ヤ镜",
+          label: "鍖哄煙鍏ヤ镜"
+        },
+        {
+          value: "浜哄憳绂诲矖",
+          label: "浜哄憳绂诲矖"
+        },
+        {
+          value: "浜哄憳鑱氶泦",
+          label: "浜哄憳鑱氶泦"
+        },
+        {
+          value: "鎵撶數璇�",
+          label: "鎵撶數璇�"
+        },
+        {
+          value: "鎶界儫",
+          label: "鎶界儫"
+        },
+        {
+          value: "鏈僵鎴村畨鍏ㄥ附",
+          label: "鏈僵鎴村畨鍏ㄥ附"
+        },
+        {
+          value: "鏈┛宸ヨ",
+          label: "鏈┛宸ヨ"
+        },
+        {
+          value: "鐫″矖",
+          label: "鐫″矖"
+        }
+      ]
+    },
+    showHeadName() {
+      return this.$route.path === "/personalCenter"
+    }
   },
   data() {
     const validateTree = (rule, value, callback) => {
@@ -239,14 +318,15 @@
       }
     }
     return {
+      tbLoading: false,
       searchTime: [this.$moment().format("YYYY-MM-DD 00:00:00"), this.$moment().format("YYYY-MM-DD HH:mm:ss")], //鎼滅储鏃堕棿
       page: 1,
       size: 10, //鍒嗛〉鐩稿叧
+      total: 0, //鎬绘暟,
       inputText: "", //杈撳叆妗嗗唴瀹�
       activeStep: 0,
       activeIndex: 0,
       industrys: [],
-      total: 0, //鎬绘暟,
       treeHeight: 750,
       treeData: [],
       treeSettings: {
@@ -324,17 +404,27 @@
         username: [{ required: true, message: "璇疯緭鍏ョ敤鎴峰悕", trigger: "blur" }],
         // password: [{ required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" }],
         userType: [{ required: true, message: "璇烽�夋嫨鐢ㄦ埛绫诲瀷", trigger: "blur" }],
-        trueName: [{ required: true, message: "璇疯緭鍏ュ鍚�", trigger: "blur" }],
-        menuIds: [{ validator: validateTree, trigger: "blur" }]
+        trueName: [{ required: true, message: "璇疯緭鍏ュ鍚�", trigger: "blur" }]
+        // menuIds: [{ validator: validateTree, trigger: "blur" }]
       },
       sysMenus: [],
       DataTree: [],
+      smsSceneConfig: [],
+      smsLevelConfig: [],
+      smsEnable: false,
       userInfo: {},
       curEditId: "",
       defaultProp: {
         children: "children",
         label: "name"
-      }
+      },
+      levelOptions: [
+        { value: "涓�绾�", label: "涓�绾�" },
+        { value: "浜岀骇", label: "浜岀骇" },
+        { value: "涓夌骇", label: "涓夌骇" },
+        { value: "鍥涚骇", label: "鍥涚骇" },
+        { value: "浜旂骇", label: "浜旂骇" }
+      ]
     }
   },
   created() {
@@ -347,6 +437,7 @@
   mounted() {
     this.TreeDataPool.reset()
     this.TreeDataPool.multiple = true
+    this.VideoPhotoData.queryTaskList()
   },
   methods: {
     fetchDataTree() {
@@ -396,11 +487,27 @@
       this.checkedMenu = row.menuIds
       this.checkedData = row.dataIds
 
+      this.smsSceneConfig = []
+      this.smsLevelConfig = []
+      this.smsEnable = false
+      findTaskById({ id: row.id }).then((rsp) => {
+        if (rsp && rsp.success && rsp.data != "") {
+          if (rsp.data.taskName != "") {
+            this.smsSceneConfig = rsp.data.taskName.split(",")
+          }
+          if (rsp.data.level != "") {
+            this.smsLevelConfig = rsp.data.level.split(",")
+          }
+          this.smsEnable = rsp.data.enable
+        }
+      })
+
       // 鏌ヨ褰撳墠鐢ㄦ埛鏉冮檺涓嬫墍鏈夊彲绠$悊鐨勬憚鍍忔満
       if (row.dataIds) {
         sessionStorage.setItem("clusterId", row.dataIds[0])
         await this.TreeDataPool.fetchTreeData()
       }
+
       // 鐢╡mail瀛楁鏆傛椂浠f浛鎽勫儚鏈洪泦鍚堝瓧娈�
       let checkedCameras = row.email
 
@@ -416,21 +523,21 @@
       }
     },
     delUser(row) {
-      this.$confirm('纭瑕佸垹闄よ鐢ㄦ埛鍚�, 鏄惁缁х画?', '鎻愮ず', {
-          confirmButtonText: '纭畾',
-          cancelButtonText: '鍙栨秷',
-          type: 'warning'
-        }).then(async () => {
-          let rsp = await deleteUser({id:row.id})
-          if (rsp && rsp.success) {
-            this.$message({
-              type: 'success',
-              message: '鍒犻櫎鎴愬姛!'
-            });
-          }
+      this.$confirm("纭瑕佸垹闄よ鐢ㄦ埛鍚�, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      }).then(async () => {
+        let rsp = await deleteUser({ id: row.id })
+        if (rsp && rsp.success) {
+          this.$message({
+            type: "success",
+            message: "鍒犻櫎鎴愬姛!"
+          })
+        }
 
-          this.findUserList()          
-        })
+        this.findUserList()
+      })
     },
     resetUser() {
       this.ruleForm = {
@@ -449,6 +556,9 @@
         provinceId: "",
         authDuration: 1
       }
+      this.smsSceneConfig = []
+      this.smsLevelConfig = []
+      this.smsEnable = false
       this.$nextTick(() => {
         this.$refs.treeMenus.setCheckedKeys([])
         this.$refs.treeData.setCheckedKeys([])
@@ -462,7 +572,7 @@
         console.log("鏌ヨ琛屼笟鍒楄〃澶辫触锛�")
       }
     },
-    saveSubUser() {
+    saveUser() {
       let _this = this
       this.ruleForm.menuIds = this.$refs.treeMenus.getCheckedKeys()
       this.ruleForm.dataIds = this.$refs.treeData.getCheckedKeys()
@@ -495,6 +605,7 @@
           // 缂栬緫涓嶆彁浜ゅ瘑鐮�
           if (this.isEditing) {
             delete json.password
+            json.isChangePwd = false
           }
 
           if (typeof json.areaId === "string") {
@@ -509,16 +620,34 @@
           saveSubUser(json)
             .then((res) => {
               if (res.success) {
-                this.$notify.success(res.data)
-                this.isShowAdd = false
-                this.isEditing = false
-                this.findUserList()
+                // 淇濆瓨娑堟伅鎺ㄩ��
+                if (_this.isEditing) {
+                  let smsTaskInfo = {
+                    id: _this.ruleForm.id,
+                    taskName: _this.smsSceneConfig.join(","),
+                    level: _this.smsLevelConfig.join(","),
+                    cameras: json.email,
+                    person: json.trueName,
+                    tel: json.phoneNum,
+                    enable: _this.smsEnable,
+                    IsDel: "0"
+                  }
+
+                  updateTask(smsTaskInfo).then((rsp) => {
+                    // console.log(rsp)
+                  })
+                }
+
+                _this.$notify.success(res.data)
+                _this.isShowAdd = false
+                _this.isEditing = false
+                _this.findUserList()
               } else {
-                this.$notify.error(res.msg)
+                _this.$notify.error(res.msg)
               }
             })
             .catch((err) => {
-              this.$notify.error(err.data.msg)
+              _this.$notify.error(err.data.msg)
             })
         } else {
           return false
@@ -526,6 +655,11 @@
       })
     },
     findUserList() {
+      this.tbLoading = true
+      if (this.inputText.length) {
+        this.inputText = this.inputText.trim()
+      }
+
       findUserList({
         inputText: this.inputText,
         page: this.page,
@@ -539,9 +673,12 @@
           } else {
             this.$notify.error("鍔犺浇瀛愯处鎴峰垪琛ㄥけ璐�")
           }
+
+          this.tbLoading = false
         })
         .catch((e) => {
           this.$notify.error(e.msg)
+          this.tbLoading = false
         })
     },
     goback() {
@@ -557,34 +694,7 @@
       this.inputText = ""
       this.timeLength = null
     },
-    // 璺冲埌璁惧璇︽儏
-    checkDetail(row) {
-      this.$router.push({
-        path: "/equipmentDetail",
-        query: {
-          id: row.devId,
-          ip: row.devIp,
-          port: row.serverPort,
-          ndid: row.id
-        }
-      })
-    },
 
-    // 璺冲埌绠楁硶璇︽儏
-    algorithmDetail(row) {
-      this.$router.push({
-        path: "/algorithmDetail",
-        query: {
-          id: row.devId,
-          ip: row.devIp,
-          port: row.serverPort
-        }
-      })
-    },
-
-    // 鏌ヨ鍒楄〃
-
-    save() {},
     //鍒嗛〉鍔熻兘
     handleSizeChange(size) {
       this.size = size
@@ -596,53 +706,14 @@
       this.findUserList()
     },
 
-    //瑙g粦鎸夐挳
-    Untying(row) {
-      console.log(row)
-      this.unbindId = row.id
-      this.isShowUnbind = true
-    },
-
-    //鑾峰緱榛樿鏃堕棿
-    getDateInit() {
-      // 瑕佹眰 榛樿涓�涓湀
-      const end = new Date()
-      const start = new Date()
-      const nowDate = new Date()
-      nowDate.setHours(0)
-      nowDate.setMinutes(0)
-      nowDate.setSeconds(0)
-      nowDate.setMilliseconds(0)
-      start.setTime(nowDate.getTime() - 3600 * 1000 * 24 * 30)
-      end.setTime(nowDate.getTime() + 3600 * 1000 * 24 - 1)
-      return [this.$moment(start).format("YYYY-MM-DD HH:mm:ss"), this.$moment(end).format("YYYY-MM-DD HH:mm:ss")]
-    },
-
-    // 鍏抽棴瑙g粦寮圭獥
-    closeUnbindBox() {
-      this.isShowUnbind = false
-    },
-
-    //瑙g粦鎴愬姛鍥炶皟
-    reflash() {
-      this.isShowUnbind = false
-    },
-
-    clearSearch() {
-      this.searchTime = this.getDateInit()
-      this.inputText = ""
-    },
-
-    //閫�鍑洪泦缇�
-    quitCluster(equipment) {
-      this.activeEquipment = equipment
-      this.showQuit = true
-    },
-
-    //鍔犲叆闆嗙兢
-    joinCluster(equipment) {
-      this.activeEquipment = equipment
-      this.showJoin = true
+    // 鐢熸垚uuid
+    getUuid() {
+      let originStr = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+      let originChar = "0123456789abcdef"
+      let len = originChar.length
+      return originStr.replace(/x/g, function(match) {
+        return originChar.charAt(Math.floor(Math.random() * len))
+      })
     }
   }
 }
@@ -708,9 +779,10 @@
     }
   }
   .searchBtn {
-    width: 60px;
-    height: 32px;
-    line-height: 32px;
+    width: 50px;
+    height: 25px;
+    line-height: 25px;
+    font-size: 14px;
     text-align: center;
     color: #fff;
     background: #0065ff;
@@ -720,9 +792,10 @@
     display: flex;
   }
   .resetBtn {
-    width: 60px;
-    height: 32px;
-    line-height: 32px;
+    width: 50px;
+    height: 25px;
+    line-height: 25px;
+    font-size: 14px;
     text-align: center;
     color: #0065ff;
     box-sizing: border-box;
@@ -931,6 +1004,12 @@
       }
     }
   }
+
+  .el-select ::v-deep {
+    .el-select__tags-text {
+      color: #3d3d3d;
+    }
+  }
 }
 </style>
 

--
Gitblit v1.8.0