From 75291a6831b27cc76a79985269ed73f79ad1e4b6 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 27 九月 2022 17:07:54 +0800
Subject: [PATCH] 修改菜单权限
---
src/views/personalCenter/components/SubAccount.vue | 954 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 546 insertions(+), 408 deletions(-)
diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue
index 4721b7c..f886f23 100644
--- a/src/views/personalCenter/components/SubAccount.vue
+++ b/src/views/personalCenter/components/SubAccount.vue
@@ -4,87 +4,78 @@
<div class="search">
<div class="left">
<div class="id">
- 濮撳悕/鎵嬫満鍙�
- <el-input v-model="inputText" placeholder="璇疯緭鍏�"></el-input>
+ 鐢ㄦ埛鍚�/濮撳悕/鎵嬫満鍙�
+ <el-input v-model="inputText" placeholder="璇疯緭鍏�" clearable></el-input>
</div>
- <div class="cluster">
+ <div class="cluster" v-show="false">
鎺堟潈鏃堕暱
- <el-select v-model="cluster" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in durationArr"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
+ <el-select @change="findUserList" v-model="timeLength" placeholder="璇烽�夋嫨">
+ <el-option v-for="item in durationArr" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
</div>
<div class="right">
- <div class="button searchBtn" @click="save">鎼滅储</div>
- <div class="button resetBtn" @click="save">閲嶇疆</div>
+ <div class="button searchBtn" @click="findUserList">鎼滅储</div>
+ <div class="button resetBtn" @click="reset">閲嶇疆</div>
</div>
</div>
<div class="btns">
- <div class="button add" @click="isShowAdd = true">
+ <div class="button add" @click="addSubCount">
<span class="iconfont"></span>
<span>娣诲姞瀛愯处鍙�</span>
</div>
- <div class="button export" @click="isShowRelate = true">
+ <!-- <div class="button export" @click="isShowRelate = true">
<span class="iconfont"></span>
<span>鍏宠仈瀛愯处鍙�</span>
- </div>
+ </div> -->
</div>
<div class="table-area">
<el-table
id="multipleTable"
ref="multipleTable"
- tooltip-effect="dark"
:data="dataList"
:fit="true"
:default-sort="{ prop: 'createTime', order: 'descending' }"
- :stripe="true"
>
<el-table-column label="搴忓彿" width="55" class-name="index">
- <template slot-scope="scope">{{
- scope.$index + 1 + (page - 1) * size
- }}</template>
+ <template slot-scope="scope">{{ scope.$index + 1 + (page - 1) * size }}</template>
</el-table-column>
- <el-table-column
- prop="name"
- label="濮撳悕"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- prop="phone"
- label="鎵嬫満鍙�"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷"></el-table-column>
- <el-table-column prop="duration" label="鎺堟潈鏃堕暱"></el-table-column>
- <el-table-column prop="authList" label="鏉冮檺"></el-table-column>
-
- <el-table-column 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>
+ </el-table-column>
+
+ <!-- <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱">
+ <template slot-scope="scope">
+ <span>{{ scope.row.authDuration + " 骞�" }} </span>
+ </template>
+ </el-table-column> -->
+
+ <!-- <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱">
+ </el-table-column> -->
+ <!-- <el-table-column prop="dataNames" label="鍏徃"> </el-table-column> -->
+ <el-table-column prop="companyName" label="閮ㄩ棬" show-overflow-tooltip min-width="200px"></el-table-column>
+
+ <!-- <el-table-column label="鐘舵��">
<template slot-scope="scope">
<div v-if="scope.row.isBind == 1" class="status green">宸茬粦瀹�</div>
<div v-else class="status">鏈粦瀹�</div>
</template>
- </el-table-column>
+ </el-table-column> -->
- <el-table-column label="鎿嶄綔">
+ <el-table-column label="鎿嶄綔" align="center" width="100px">
<template slot-scope="scope">
- <!-- 缂栬緫 -->
- <span class="iconfont option" @click="joinCluster(scope.row)"
- ></span
- >
- <!-- 瑙g粦 -->
- <span class="iconfont option" @click="Untying(scope.row)"
- ></span
- >
+ <span class="iconfont option" @click="editUser(scope.row)">缂栬緫</span>
+ <span class="iconfont option" style="color:red" @click="delUser(scope.row)">鍒犻櫎</span>
</template>
</el-table-column>
</el-table>
@@ -101,37 +92,13 @@
></el-pagination>
</div>
</div>
-
- <!-- 瑙g粦寮圭獥 -->
- <UnbindBox
- @close="closeUnbindBox"
- v-if="isShowUnbind"
- :id="unbindId"
- @reflash="reflash"
- ></UnbindBox>
-
- <!-- 娣诲姞璁惧寮圭獥 -->
- <!-- <AddBox @close="closeAddBox" v-if="isShowAdd"></AddBox> -->
-
- <!-- 閫�鍑洪泦缇ゅ脊绐� -->
- <QuitClusterBox
- :equipment="activeEquipment"
- v-if="showQuit"
- @close="showQuit = false"
- ></QuitClusterBox>
-
- <!-- 鍔犲叆闆嗙兢寮圭獥 -->
- <JoinClusterBox
- :equipment="activeEquipment"
- v-if="showJoin"
- @close="showJoin = false"
- ></JoinClusterBox>
</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"></span>
- <span>娣诲姞瀛愯处鎴�</span>
- </div>
+ <span>瀛愯处鎴风鐞�</span>
+ </div> -->
+ <div class="head-name" style="margin-bottom:20px">瀛愯处鎴风紪杈�</div>
<el-form
:model="ruleForm"
:rules="rules"
@@ -140,57 +107,122 @@
label-width="100px"
class="add-ruleForm"
>
- <el-form-item label="鐢ㄦ埛鍚�" prop="name">
- <el-input v-model="ruleForm.name"></el-input>
+ <el-form-item label="鐢ㄦ埛鍚�" prop="username">
+ <el-input v-model="ruleForm.username" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="瀵嗙爜" prop="name">
- <el-input v-model="ruleForm.password"></el-input>
+ <el-form-item label="瀵嗙爜" prop="password" v-show="!isEditing">
+ <el-input v-model="ruleForm.password" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="閲嶇疆瀵嗙爜" prop="delivery">
- <el-checkbox v-model="ruleForm.delivery">棣栨鐧婚檰淇敼瀵嗙爜</el-checkbox>
- </el-form-item>
- <el-form-item label="鐢ㄦ埛绫诲瀷" prop="type">
- <el-radio v-model="ruleForm.type" label="1">涓汉</el-radio>
- <el-radio v-model="ruleForm.type" label="2">鍏徃</el-radio>
- </el-form-item>
- <el-form-item label="濮撳悕" prop="name">
- <el-input v-model="ruleForm.name"></el-input>
- </el-form-item>
- <el-form-item label="閭" prop="name">
- <el-input v-model="ruleForm.password"></el-input>
+ <!-- <el-form-item label="閲嶇疆瀵嗙爜">
+ <el-checkbox v-model="ruleForm.isChangePwd"
+ >棣栨鐧婚檰淇敼瀵嗙爜</el-checkbox
+ >
+ </el-form-item> -->
+ <el-form-item label="鐢ㄦ埛绫诲瀷" prop="userType">
+ <el-radio v-model="ruleForm.userType" :label="1">鏈湴</el-radio>
+ <el-radio v-model="ruleForm.userType" :label="2">OA璐︽埛</el-radio>
</el-form-item>
- <el-form-item label="琛屼笟" prop="region">
- <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍦板尯" prop="region">
- <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鎺堟潈鏃堕暱" prop="region">
- <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
- </el-select>
+ <el-form-item label="濮撳悕" prop="trueName">
+ <el-input v-model="ruleForm.trueName" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="鐢ㄦ埛鏉冮檺" prop="authList" class="user-tree">
-
- <TreeBox :defaultProp="defaultProp1" :treeData="data1"></TreeBox>
-
-
- <TreeBox :defaultProp="defaultProp2" :treeData="data2"></TreeBox>
+ <el-form-item label="鎵嬫満鍙�">
+ <el-input v-model="ruleForm.phoneNum" style="width: 350px"></el-input>
</el-form-item>
-
+
+ <el-form-item label="閮ㄩ棬">
+ <el-input v-model="ruleForm.companyName" style="width: 350px"></el-input>
+ </el-form-item>
+
+ <!-- <el-form-item label="琛屼笟">
+ <el-select v-model="ruleForm.industryId" placeholder="璇烽�夋嫨琛屼笟" style="width: 350px">
+ <el-option v-for="(item, index) in industrys" :label="item.name" :value="item.id" :key="index"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍦板尯">
+ <el-cascader v-model="ruleForm.address" :props="options" style="width: 350px"></el-cascader>
+ </el-form-item> -->
+
+ <!-- <el-form-item label="鎺堟潈鏃堕暱">
+ <el-select v-model="ruleForm.authDuration" style="width: 350px" placeholder="璇烽�夋嫨鎺堟潈鏃堕暱">
+ <el-option label="涓�骞�" :value="1"></el-option>
+ <el-option label="涓ゅ勾" :value="2"></el-option>
+ <el-option label="涓夊勾" :value="3"></el-option>
+ </el-select>
+ </el-form-item> -->
+
+ <el-form-item label="鐢ㄦ埛鏉冮檺" prop="menuIds" class="user-tree">
+ <div class="tree-box">
+ <div class="t">鑿滃崟鏉冮檺</div>
+ <el-tree
+ ref="treeMenus"
+ :data="sysMenus"
+ show-checkbox
+ default-expand-all
+ node-key="id"
+ :props="defaultProp"
+ :default-checked-keys="checkedMenu"
+ check-on-click-node
+ >
+ </el-tree>
+ </div>
+ <div class="tree-box">
+ <div class="t">鏁版嵁鏉冮檺</div>
+ <el-tree
+ ref="treeData"
+ :data="DataTree"
+ show-checkbox
+ default-expand-all
+ node-key="id"
+ :props="defaultProp"
+ :default-checked-keys="checkedData"
+ check-on-click-node
+ @check-change="selectDevice"
+ >
+ </el-tree>
+ </div>
+ <div class="tree-box">
+ <div class="t">鎽勫儚鏈烘潈闄�</div>
+ <tree-menu
+ ref="ztreeMenus"
+ app="Camera"
+ treeName="localTree"
+ :node="TreeDataPool.treeData"
+ :height="treeHeight"
+ :setting="treeSettings"
+ style="width:330px;max-height:440px"
+ />
+ </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.id"
+ :value="item.name"
+ :label="item.name"
+ :title="item.name"
+ ></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="save">鎼滅储</div>
- <div class="button resetBtn" @click="save">閲嶇疆</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>
</div>
<div class="sub-account" v-else-if="isShowRelate">
@@ -198,341 +230,435 @@
<span class="iconfont"></span>
<span>鍏宠仈瀛愯处鎴�</span>
</div>
- <Steps
- :titleList="['鍏宠仈瀛愯处鍙蜂俊鎭�', '鏉冮檺璁剧疆', '瀹屾垚']"
- :activeIndex="activeIndex"
- ></Steps>
+ <Steps :titleList="['鍏宠仈瀛愯处鍙蜂俊鎭�', '鏉冮檺璁剧疆', '瀹屾垚']" :activeIndex="activeIndex"></Steps>
<StepsCard @goback="goback" @goto="goto"></StepsCard>
</div>
</template>
<script>
-import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox";
-import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox";
-import JoinClusterBox from "@/views/equipmentManagement/equipmentList/components/JoinClusterBox";
-import Steps from "./Steps";
-import StepsCard from "./StepCard";
-import TreeBox from "./TreeBox";
+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"
+import StepsCard from "./StepCard"
+import TreeMenu from "@/components/giantTree/index"
+
export default {
components: {
- // AddBox,
- UnbindBox,
- QuitClusterBox,
- JoinClusterBox,
Steps,
StepsCard,
- TreeBox,
+ TreeMenu
+ },
+ computed: {
+ taskOptions() {
+ return this.VideoPhotoData.tasks.filter((item) => !item.isDelete)
+ }
},
data() {
+ const validateTree = (rule, value, callback) => {
+ if (
+ this.ruleForm.menuIds &&
+ this.ruleForm.dataIds &&
+ this.ruleForm.menuIds.length > 0 &&
+ this.ruleForm.dataIds.length > 0
+ ) {
+ callback()
+ } else {
+ callback(new Error("璇烽�夎彍鍗曟潈闄愬拰鏁版嵁鏉冮檺"))
+ }
+ }
return {
- searchTime: [
- this.$moment().format("YYYY-MM-DD 00:00:00"),
- this.$moment().format("YYYY-MM-DD HH:mm:ss"),
- ], //鎼滅储鏃堕棿
+ 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,
- total: 0, //鎬绘暟
- dataList: [
- {
- name: "basic",
- phone: "1121313232",
- userType: "涓汉",
- duration: "姘镐箙",
- authList: "闆嗙兢1锛岄泦缇�2",
- isBind: 1,
- },
- ],
+ industrys: [],
+ treeHeight: 750,
+ treeData: [],
+ treeSettings: {
+ check: {
+ enable: true
+ }
+ },
+ options: {
+ lazy: true,
+ lazyLoad(node, resolve) {
+ // 鎳掑姞杞借妭鐐圭渷甯傛暟鎹�
+ const { level } = node
+ let nodes
+ getAreas({ parentId: level == 0 ? 0 : node.value })
+ .then((json) => {
+ nodes = json.data.list
+ nodes = nodes.map((item) => ({
+ value: item.id,
+ label: item.name,
+ level: item.level,
+ leaf: level >= 1
+ }))
+ resolve(nodes)
+ })
+ .catch((err) => {
+ console.log(err)
+ })
+ }
+ },
+ dataList: [],
isShowAdd: false, //鏄惁灞曠ず鏂板寮圭獥
isShowUnbind: false, //鏄惁灞曠ず瑙g粦寮圭獥
isShowRelate: false,
+ isEditing: false,
unbindId: "",
durationArr: [
{
- value: 0,
- label: "涓�骞�",
+ value: 1,
+ label: "1骞�"
},
{
- value: 1,
- label: "涓ゅ勾",
+ value: 2,
+ label: "2骞�"
},
+ {
+ value: 3,
+ label: "3骞�"
+ }
], //鎵�灞為泦缇や笅鎷夋
- cluster: null, //閫変腑鐨勯泦缇ょ被鍨�
+ timeLength: null, //閫変腑鐨勬巿鏉冩椂闀�
showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
activeEquipment: null, //澶勭悊涓殑璁惧
+ checkedData: [],
+ checkedMenu: [],
ruleForm: {
- name: "",
- region: "",
+ id: "",
+ username: "",
+ userType: "",
password: "",
- date1: "",
- date2: "",
- delivery: false,
- type: [],
- resource: "",
- desc: "",
- authList: {
- menuAuth: [],
- dataAuth: [],
- },
+ trueName: "",
+ companyName: "",
+ phoneNum: "",
+ email: "basic",
+ isChangePwd: false,
+ industryId: "",
+ address: [],
+ authDuration: 3,
+ areaId: "",
+ provinceId: "",
+ menuIds: [],
+ dataIds: []
},
rules: {
- name: [
- { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
- { min: 3, max: 5, message: "闀垮害鍦� 3 鍒� 5 涓瓧绗�", trigger: "blur" },
- ],
- region: [
- { required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" },
- ],
- date1: [
- {
- type: "date",
- required: true,
- message: "璇烽�夋嫨鏃ユ湡",
- trigger: "change",
- },
- ],
- date2: [
- {
- type: "date",
- required: true,
- message: "璇烽�夋嫨鏃堕棿",
- trigger: "change",
- },
- ],
- type: [
- {
- type: "array",
- required: true,
- message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川",
- trigger: "change",
- },
- ],
- resource: [
- { required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" },
- ],
- desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }],
+ 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" }]
},
- data1: [
- {
- id: 1,
- label: "涓�绾� 1",
- children: [
- {
- id: 4,
- label: "浜岀骇 1-1",
- children: [
- {
- id: 9,
- label: "涓夌骇 1-1-1",
- },
- {
- id: 10,
- label: "涓夌骇 1-1-2",
- },
- ],
- },
- ],
- },
- {
- id: 2,
- label: "涓�绾� 2",
- children: [
- {
- id: 5,
- label: "浜岀骇 2-1",
- },
- {
- id: 6,
- label: "浜岀骇 2-2",
- },
- ],
- },
- {
- id: 3,
- label: "涓�绾� 3",
- children: [
- {
- id: 7,
- label: "浜岀骇 3-1",
- },
- {
- id: 8,
- label: "浜岀骇 3-2",
- },
- ],
- },
- ],
- defaultProps1: {
+ sysMenus: [],
+ DataTree: [],
+ smsSceneConfig: [],
+ smsLevelConfig: [],
+ smsEnable: false,
+ userInfo: {},
+ curEditId: "",
+ defaultProp: {
children: "children",
- label: "label",
+ label: "name"
},
- data2: [
- {
- id: 1,
- label: "涓�绾� 1",
- children: [
- {
- id: 4,
- label: "浜岀骇 1-1",
- children: [
- {
- id: 9,
- label: "涓夌骇 1-1-1",
- },
- {
- id: 10,
- label: "涓夌骇 1-1-2",
- },
- ],
- },
- ],
- },
- {
- id: 2,
- label: "涓�绾� 2",
- children: [
- {
- id: 5,
- label: "浜岀骇 2-1",
- },
- {
- id: 6,
- label: "浜岀骇 2-2",
- },
- ],
- },
- {
- id: 3,
- label: "涓�绾� 3",
- children: [
- {
- id: 7,
- label: "浜岀骇 3-1",
- },
- {
- id: 8,
- label: "浜岀骇 3-2",
- },
- ],
- },
- ],
- defaultProps2: {
- children: "children",
- label: "label",
- },
- };
+ levelOptions: [
+ { value: "涓�绾�", label: "涓�绾�" },
+ { value: "浜岀骇", label: "浜岀骇" },
+ { value: "涓夌骇", label: "涓夌骇" },
+ { value: "鍥涚骇", label: "鍥涚骇" },
+ { value: "浜旂骇", label: "浜旂骇" }
+ ]
+ }
+ },
+ created() {
+ this.userInfo = JSON.parse(sessionStorage.getItem("userInfo"))
+ this.findUserList()
+ this.getIndustrys()
+ this.fetchSysMenus()
+ this.fetchDataTree()
+ },
+ mounted() {
+ this.TreeDataPool.reset()
+ this.TreeDataPool.multiple = true
+ this.VideoPhotoData.queryTaskList()
},
methods: {
+ fetchDataTree() {
+ getDataTree({ userId: this.userInfo.id }).then((res) => {
+ this.DataTree = res.data.dataTree
+ })
+ },
+ fetchSysMenus() {
+ getMenu().then((rsp) => {
+ if (rsp && rsp.success) {
+ this.sysMenus = rsp.data.menus
+ // this.userMenus = [];
+ }
+ })
+ },
+ selectDevice(node, checked, hasChildren) {
+ if (checked) {
+ sessionStorage.setItem("clusterId", node.id)
+ this.TreeDataPool.fetchTreeData()
+ this.treeData = this.TreeDataPool.treeData
+ } else {
+ this.treeData = []
+ this.TreeDataPool.reset()
+ }
+ },
+ addSubCount() {
+ this.isShowAdd = true
+ this.resetUser()
+ },
+ async editUser(row) {
+ this.isShowAdd = true
+ this.isEditing = true
+ this.ruleForm.id = row.id
+ this.ruleForm.username = row.username
+ this.ruleForm.userType = row.userType
+ this.ruleForm.password = row.password
+ this.ruleForm.trueName = row.trueName
+ this.ruleForm.companyName = row.companyName
+ this.ruleForm.phoneNum = row.phoneNum
+ this.ruleForm.email = row.email
+ this.ruleForm.isChangePwd = false
+ this.ruleForm.industryId = row.industryId
+ this.ruleForm.areaId = row.areaId
+ this.ruleForm.address = [row.provinceId, row.areaId]
+ this.ruleForm.provinceId = row.provinceId
+ this.ruleForm.authDuration = row.authDuration
+ 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
+
+ // basic 涓哄瓙璐︽埛榛樿鐨勭┖瀛楁,琛ㄧず鍙鐞嗙殑鎽勫儚鏈虹洰褰曚负绌�
+ if (checkedCameras == "basic") {
+ return
+ }
+
+ // 鍙嶉�夋憚鍍忔満
+ if (checkedCameras.length) {
+ let cameraIds = checkedCameras.split(",")
+ this.$refs.ztreeMenus.updateNodes(cameraIds)
+ }
+ },
+ 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.findUserList()
+ })
+ },
+ resetUser() {
+ this.ruleForm = {
+ id: "",
+ username: "",
+ userType: "",
+ password: "",
+ trueName: "",
+ companyName: "",
+ phoneNum: "",
+ email: "",
+ isChangePwd: false,
+ address: [],
+ industryId: "",
+ areaId: "",
+ provinceId: "",
+ authDuration: 1
+ }
+ this.smsSceneConfig = []
+ this.smsLevelConfig = []
+ this.smsEnable = false
+ this.$nextTick(() => {
+ this.$refs.treeMenus.setCheckedKeys([])
+ this.$refs.treeData.setCheckedKeys([])
+ })
+ },
+ async getIndustrys() {
+ let res = await getDic()
+ if (res.success) {
+ this.industrys = res.data.dics
+ } else {
+ console.log("鏌ヨ琛屼笟鍒楄〃澶辫触锛�")
+ }
+ },
+ saveUser() {
+ let _this = this
+ this.ruleForm.menuIds = this.$refs.treeMenus.getCheckedKeys()
+ this.ruleForm.dataIds = this.$refs.treeData.getCheckedKeys()
+ this.$refs["ruleForm"].validate((valid) => {
+ if (valid) {
+ let json = {
+ id: this.isEditing ? this.ruleForm.id : "",
+ username: this.ruleForm.username,
+ password: this.ruleForm.password,
+ isChangePwd: this.ruleForm.isChangePwd,
+ userType: this.ruleForm.userType,
+ trueName: this.ruleForm.trueName,
+ companyName: this.ruleForm.companyName,
+ phoneNum: this.ruleForm.phoneNum,
+ industryId: this.ruleForm.industryId,
+ areaId: this.ruleForm.address.length == 2 ? this.ruleForm.address[1] : "",
+ authDuration: this.ruleForm.authDuration,
+ menuIds: this.ruleForm.menuIds,
+ dataIds: this.ruleForm.dataIds
+ }
+
+ // 鑾峰彇瀛愯处鎴烽�変腑鐨勬憚鍍忔満鍒楄〃
+ let cameraIds = this.TreeDataPool.selectedNodes
+ if (cameraIds.length == 0) {
+ json.email = "basic"
+ } else {
+ json.email = cameraIds.join(",")
+ }
+
+ // 缂栬緫涓嶆彁浜ゅ瘑鐮�
+ if (this.isEditing) {
+ delete json.password
+ json.isChangePwd = false
+ }
+
+ if (typeof json.areaId === "string") {
+ delete json.areaId
+ }
+
+ if (typeof json.authDuration === "string") {
+ delete json.authDuration
+ }
+
+ // return
+ saveSubUser(json)
+ .then((res) => {
+ if (res.success) {
+ // 淇濆瓨娑堟伅鎺ㄩ��
+ 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)
+ }
+ })
+ .catch((err) => {
+ _this.$notify.error(err.data.msg)
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ findUserList() {
+ findUserList({
+ inputText: this.inputText,
+ page: this.page,
+ size: this.size,
+ authDuration: this.timeLength
+ })
+ .then((res) => {
+ if (res.success) {
+ this.dataList = res.data.dataList
+ this.total = res.data.total
+ } else {
+ this.$notify.error("鍔犺浇瀛愯处鎴峰垪琛ㄥけ璐�")
+ }
+ })
+ .catch((e) => {
+ this.$notify.error(e.msg)
+ })
+ },
goback() {
- this.isShowAdd=false
- this.isShowRelate = false;
- this.activeIndex = 0;
+ this.isShowAdd = false
+ this.isEditing = false
+ this.isShowRelate = false
+ this.activeIndex = 0
},
goto(i) {
- this.activeIndex = i;
+ this.activeIndex = i
},
- // 璺冲埌璁惧璇︽儏
- checkDetail(row) {
- this.$router.push({
- path: "/equipmentDetail",
- query: {
- id: row.devId,
- ip: row.devIp,
- port: row.serverPort,
- ndid: row.id,
- },
- });
+ reset() {
+ this.inputText = ""
+ this.timeLength = null
},
- // 璺冲埌绠楁硶璇︽儏
- algorithmDetail(row) {
- this.$router.push({
- path: "/algorithmDetail",
- query: {
- id: row.devId,
- ip: row.devIp,
- port: row.serverPort,
- },
- });
- },
-
- // 鏌ヨ鍒楄〃
-
- save(){
-
- },
//鍒嗛〉鍔熻兘
handleSizeChange(size) {
- this.size = size;
+ this.size = size
+ this.findUserList()
},
//鍒嗛〉鍔熻兘
refrash(page) {
- this.page = page;
+ this.page = page
+ 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"),
- ];
- },
-
- //鍏抽棴鏂板寮圭獥
- closeAddBox() {
- this.isShowAdd = false;
- },
- // 鍏抽棴瑙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;
- },
- },
- mounted() {
-
- },
-};
+ // 鐢熸垚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))
+ })
+ }
+ }
+}
</script>
<style scoped lang="scss">
@@ -561,7 +687,6 @@
}
.add-ruleForm::v-deep {
.el-input__inner {
- width: 350px;
color: #3d3d3d;
border-radius: 4px;
border-color: #c0c5cc;
@@ -570,6 +695,11 @@
border-color: #c0c5cc;
}
.user-tree {
+ .el-form-item__label:before {
+ content: "*";
+ color: #f52323;
+ margin-right: 4px;
+ }
.el-form-item__content {
display: flex;
.tree-box {
@@ -591,9 +721,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;
@@ -603,9 +734,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;
@@ -771,7 +903,7 @@
.option {
margin-right: 10px;
- font-size: 24px;
+ font-size: 14px;
color: rgb(0, 101, 255);
cursor: pointer;
}
@@ -814,10 +946,16 @@
}
}
}
+
+ .el-select ::v-deep {
+ .el-select__tags-text {
+ color: #3d3d3d;
+ }
+ }
}
</style>
-<style >
+<style>
.el-date-table td.start-date span,
.el-date-table td.end-date span {
background-color: #0065ff;
@@ -832,4 +970,4 @@
color: #0065ff;
border-color: #0065ff;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.8.0