From e37e45cfe1123928dba5d9c5a427b0ee497b7ad6 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 23 八月 2022 03:21:32 +0800 Subject: [PATCH] 修复算法配置的字段内容 --- src/views/personalCenter/components/SubAccount.vue | 867 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 466 insertions(+), 401 deletions(-) diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue index 380ef3a..5efb91e 100644 --- a/src/views/personalCenter/components/SubAccount.vue +++ b/src/views/personalCenter/components/SubAccount.vue @@ -4,110 +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="searchingBtn">鎼滅储</div> - <div class="button resetBtn" @click="clearSearch">閲嶇疆</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"> - <div v-if="scope.row.installTime.length > 1"> - <div>{{ scope.row.installTime[0] }}</div> - <div>{{ scope.row.installTime[1] }}</div> - </div> - <div v-else>--</div> - </template> - </el-table-column> --> - <!-- <el-table-column label="棣栨浣跨敤鏃堕棿" > - <template slot-scope="scope"> - <div v-if="scope.row.firstUseTime.length > 1"> - <div>{{ scope.row.firstUseTime[0] }}</div> - <div>{{ scope.row.firstUseTime[1] }}</div> - </div> - <div v-else>--</div> + <span>{{ scope.row.userType == 1 ? "鏈湴" : "OA璐︽埛" }}</span> </template> </el-table-column> - <el-table-column label="鎵�灞為泦缇�" show-overflow-tooltip > - <template> -- </template> + <!-- <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱"> + <template slot-scope="scope"> + <span>{{ scope.row.authDuration + " 骞�" }} </span> + </template> </el-table-column> --> - <el-table-column label="鐘舵��"> + <!-- <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> @@ -124,31 +92,6 @@ ></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"> @@ -163,57 +106,99 @@ 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> <div class="right"> - <div class="button searchBtn" @click="searchingBtn">鎼滅储</div> - <div class="button resetBtn" @click="clearSearch">閲嶇疆</div> + <div class="button searchBtn" @click="saveSubUser">淇濆瓨</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"> @@ -221,242 +206,356 @@ <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 { findDevList } from "@/api/device"; -// import AddBox from "@/views/equipmentManagement/equipmentList/components/AddBox"; -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 { 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 }, 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, //鍒嗛〉鐩稿叧 inputText: "", //杈撳叆妗嗗唴瀹� activeStep: 0, activeIndex: 0, - total: 0, //鎬绘暟 - dataList: [ - { - name: "basic", - phone: "1121313232", - userType: "涓汉", - duration: "姘镐箙", - authList: "闆嗙兢1锛岄泦缇�2", - isBind: 1, - }, - ], + industrys: [], + total: 0, //鎬绘暟, + 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: [], + userInfo: {}, + curEditId: "", + defaultProp: { children: "children", - label: "label", - }, - 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", - }, - }; + label: "name" + } + } + }, + created() { + this.userInfo = JSON.parse(sessionStorage.getItem("userInfo")) + this.findUserList() + this.getIndustrys() + this.fetchSysMenus() + this.fetchDataTree() + }, + mounted() { + this.TreeDataPool.reset() + this.TreeDataPool.multiple = true }, 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 + + // 鏌ヨ褰撳墠鐢ㄦ埛鏉冮檺涓嬫墍鏈夊彲绠$悊鐨勬憚鍍忔満 + 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.$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("鏌ヨ琛屼笟鍒楄〃澶辫触锛�") + } + }, + saveSubUser() { + 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 + } + + if (typeof json.areaId === "string") { + delete json.areaId + } + + if (typeof json.authDuration === "string") { + delete json.authDuration + } + + // return + saveSubUser(json) + .then((res) => { + if (res.success) { + 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.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 + }, + reset() { + this.inputText = "" + this.timeLength = null }, // 璺冲埌璁惧璇︽儏 checkDetail(row) { @@ -466,9 +565,9 @@ id: row.devId, ip: row.devIp, port: row.serverPort, - ndid: row.id, - }, - }); + ndid: row.id + } + }) }, // 璺冲埌绠楁硶璇︽儏 @@ -478,113 +577,75 @@ query: { id: row.devId, ip: row.devIp, - port: row.serverPort, - }, - }); + port: row.serverPort + } + }) }, // 鏌ヨ鍒楄〃 - searchingBtn() { - let param = { - page: this.page, - size: this.size, - // startTime: this.searchTime[0], - // endTime: this.searchTime[1], - inputText: this.inputText, - }; - findDevList(param) - .then((res) => { - this.dataList = res.data.list; - //鏃堕棿鍒嗚鏄剧ず - this.dataList.forEach((item) => { - item.installTime = item.installTime.split(" "); - item.firstUseTime = item.firstUseTime.split(" "); - }); - this.total = res.data.total; - if (res.data.total <= this.size) { - this.page = 1; - } - }) - .catch((err) => { - console.log(err); - }); - }, - + save() {}, //鍒嗛〉鍔熻兘 handleSizeChange(size) { - this.size = size; - this.searchingBtn(); + this.size = size + this.findUserList() }, //鍒嗛〉鍔熻兘 refrash(page) { - this.page = page; - this.searchingBtn(); + this.page = page + this.findUserList() }, //瑙g粦鎸夐挳 Untying(row) { - console.log(row); - this.unbindId = row.id; - this.isShowUnbind = true; + 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"), - ]; + 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; + this.isShowUnbind = false }, //瑙g粦鎴愬姛鍥炶皟 reflash() { - this.isShowUnbind = false; - this.searchingBtn(); + this.isShowUnbind = false }, clearSearch() { - this.searchTime = this.getDateInit(); - this.inputText = ""; - this.searchingBtn(); + this.searchTime = this.getDateInit() + this.inputText = "" }, //閫�鍑洪泦缇� quitCluster(equipment) { - this.activeEquipment = equipment; - this.showQuit = true; + this.activeEquipment = equipment + this.showQuit = true }, //鍔犲叆闆嗙兢 joinCluster(equipment) { - this.activeEquipment = equipment; - this.showJoin = true; - }, - }, - mounted() { - this.searchTime = this.getDateInit(); - this.searchingBtn(); - }, -}; + this.activeEquipment = equipment + this.showJoin = true + } + } +} </script> <style scoped lang="scss"> @@ -613,7 +674,6 @@ } .add-ruleForm::v-deep { .el-input__inner { - width: 350px; color: #3d3d3d; border-radius: 4px; border-color: #c0c5cc; @@ -622,6 +682,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 { @@ -823,7 +888,7 @@ .option { margin-right: 10px; - font-size: 24px; + font-size: 14px; color: rgb(0, 101, 255); cursor: pointer; } @@ -869,7 +934,7 @@ } </style> -<style > +<style> .el-date-table td.start-date span, .el-date-table td.end-date span { background-color: #0065ff; @@ -884,4 +949,4 @@ color: #0065ff; border-color: #0065ff; } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0