From ca294bbef3a47d80b6f3f44f85ac587a8ee430d2 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 13 七月 2023 10:15:33 +0800 Subject: [PATCH] 提交代码 --- Source/UBCS-WEB/dist/src/views/system/user.vue | 1151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,151 insertions(+), 0 deletions(-) diff --git a/Source/UBCS-WEB/dist/src/views/system/user.vue b/Source/UBCS-WEB/dist/src/views/system/user.vue new file mode 100644 index 0000000..e8ce4b2 --- /dev/null +++ b/Source/UBCS-WEB/dist/src/views/system/user.vue @@ -0,0 +1,1151 @@ +<template> + <el-row> + <el-col :span="5"> + <div class="box"> + <el-scrollbar> + <basic-container> + <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"/> + </basic-container> + </el-scrollbar> + </div> + </el-col> + <el-col :span="19"> + <basic-container> + <avue-crud ref="crud" + v-model="form" + :before-open="beforeOpen" + :data="data" + :option="option" + :page.sync="page" + :permission="permissionList" + :search.sync="search" + :table-loading="loading" + @row-del="rowDel" + @row-update="rowUpdate" + @row-save="rowSave" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @refresh-change="refreshChange" + @on-load="onLoad"> + <template slot="menuLeft"> + <el-button v-if="permission.user_delete" + icon="el-icon-delete" + plain + size="small" + type="danger" + @click="handleDelete">鍒� 闄� + </el-button> + <el-button v-if="permission.user_role" + icon="el-icon-user" + plain + size="small" + type="info" + @click="handleGrant">瑙掕壊閰嶇疆 + </el-button> + <el-button v-if="permission.user_reset" + icon="el-icon-refresh" + plain + size="small" + type="info" + @click="handleReset">瀵嗙爜閲嶇疆 + </el-button> + <el-button size="small" + v-if="userInfo.role_name.includes('admin')" + type="success" + icon="el-icon-setting" + @click="handlepass"> + 閰嶇疆瀵嗙爜绛栫暐 + </el-button> + <el-button v-if="userInfo.role_name.includes('admin')" + icon="el-icon-coordinate" + plain + size="small" + type="info" + @click="handleLock">璐﹀彿瑙e皝 + </el-button> + <el-button v-if="userInfo.role_name.includes('admin')" + icon="el-icon-upload2" + plain + size="small" + type="success" + @click="handleImport">瀵煎叆 + </el-button> + <el-button v-if="userInfo.role_name.includes('admin')" + icon="el-icon-download" + plain + size="small" + type="warning" + @click="handleExport">瀵煎嚭 + </el-button> + </template> + <template slot="tenantName" + slot-scope="{row}"> + <el-tag>{{ row.tenantName }}</el-tag> + </template> + <template slot="roleName" + slot-scope="{row}"> + <el-tag>{{ row.roleName }}</el-tag> + </template> + <template slot="deptName" + slot-scope="{row}"> + <el-tag>{{ row.deptName }}</el-tag> + </template> + <template slot="userTypeName" + slot-scope="{row}"> + <el-tag>{{ row.userTypeName }}</el-tag> + </template> + </avue-crud> + <el-dialog :visible.sync="roleBox" + append-to-body + title="鐢ㄦ埛瑙掕壊閰嶇疆" + width="345px"> + + <el-tree ref="treeRole" + :data="roleGrantList" + :default-checked-keys="roleTreeObj" + :props="props" + check-strictly + default-expand-all + node-key="id" + show-checkbox> + </el-tree> + + <span slot="footer" class="dialog-footer"> + <el-button @click="roleBox = false">鍙� 娑�</el-button> + <el-button type="primary" + @click="submitRole">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog :visible.sync="excelBox" + append-to-body + title="鐢ㄦ埛鏁版嵁瀵煎叆" + width="555px"> + <avue-form v-model="excelForm" :option="excelOption" :upload-after="uploadAfter"> + <template slot="excelTemplate"> + <el-button type="primary" @click="handleTemplate"> + 鐐瑰嚮涓嬭浇<i class="el-icon-download el-icon--right"></i> + </el-button> + </template> + </avue-form> + </el-dialog> + <!-- 璁剧疆瀵嗙爜绛栫暐寮瑰嚭妗�--> + <el-dialog + :before-close="handleClose" + :visible.sync="passVisible" + class="passdialog" + append-to-body + title="璁剧疆瀵嗙爜绛栫暐" + width="30%" + > + <el-select v-model="sevalue" placeholder="璇烽�夋嫨" class="selects" @change="selChange" > + <el-option + v-for="item in seoptions" + :key="item.id" + :label="item.strategyName" + :value="item.id" + class="seloption" + > + + </el-option> + </el-select> + <span slot="footer" class="dialog-footer"> + <el-button @click="passVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="passhandle">纭� 瀹�</el-button> + </span> + </el-dialog> + <!-- <el-dialog title="鐢ㄦ埛骞冲彴閰嶇疆"--> + <!-- append-to-body--> + <!-- :visible.sync="platformBox">--> + <!-- <avue-crud :option="platformOption"--> + <!-- :table-loading="platformLoading"--> + <!-- :data="platformData"--> + <!-- ref="platformCrud"--> + <!-- v-model="platformForm"--> + <!-- :before-open="platformBeforeOpen"--> + <!-- :page.sync="platformPage"--> + <!-- :permission="platformPermissionList"--> + <!-- @row-update="platformRowUpdate"--> + <!-- @search-change="platformSearchChange"--> + <!-- @search-reset="platformSearchReset"--> + <!-- @selection-change="platformSelectionChange"--> + <!-- @current-change="platformCurrentChange"--> + <!-- @size-change="platformSizeChange"--> + <!-- @refresh-change="platformRefreshChange"--> + <!-- @on-load="platformOnLoad">--> + <!-- <template slot-scope="{row}"--> + <!-- slot="tenantName">--> + <!-- <el-tag>{{row.tenantName}}</el-tag>--> + <!-- </template>--> + <!-- <template slot-scope="{row}"--> + <!-- slot="userTypeName">--> + <!-- <el-tag>{{row.userTypeName}}</el-tag>--> + <!-- </template>--> + <!-- --> + <!-- </avue-crud>--> + <!-- </el-dialog>--> + </basic-container> + </el-col> + </el-row> +</template> + +<script> +import { + getList, + insert, + getUser, + getUserPlatform, + remove, + update, + updatePlatform, + add, + grant, + resetPassword, unlock +} from "@/api/system/user"; +import {exportBlob} from "@/api/common"; +import {getDeptTree, getDeptLazyTree} from "@/api/system/dept"; +import {getRoleTree} from "@/api/system/role"; +import {getPostList} from "@/api/system/post"; +import {mapGetters} from "vuex"; +import website from '@/config/website'; +import {getToken} from '@/util/auth'; +import {downloadXls} from "@/util/util"; +import {dateNow} from "@/util/date"; +import NProgress from 'nprogress'; +import 'nprogress/nprogress.css'; +import func from "@/util/func"; +import {getPage} from "@/api/system/passwords"; + +export default { + data() { + const validatePass = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇疯緭鍏ュ瘑鐮�')); + } else { + callback(); + } + }; + const validatePass2 = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.form.password) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }; + return { + form: {}, + seoptions: [], + sevalue:"", + passVisible: false, + id: '', + search: {}, + roleBox: false, + excelBox: false, + platformBox: false, + initFlag: true, + selectionList: [], + query: {}, + loading: true, + platformLoading: false, + page: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + platformPage: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + init: { + roleTree: [], + deptTree: [], + }, + props: { + label: "title", + value: "key" + }, + roleGrantList: [], + roleTreeObj: [], + treeDeptId: '', + treeData: [], + treeOption: { + nodeKey: 'id', + lazy: true, + treeLoad: function (node, resolve) { + const parentId = (node.level === 0) ? 0 : node.data.id; + getDeptLazyTree(parentId).then(res => { + resolve(res.data.data.map(item => { + return { + ...item, + leaf: !item.hasChildren + } + })) + }); + }, + addBtn: false, + menu: false, + size: 'small', + props: { + labelText: '鏍囬', + label: 'title', + value: 'value', + children: 'children' + } + }, + option: { + height: 'auto', + calcHeight: 80, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + selection: true, + viewBtn: true, + dialogType: 'drawer', + dialogClickModal: false, + column: [ + { + label: "鐧诲綍璐﹀彿", + prop: "account", + search: true, + display: false + }, + { + label: "鎵�灞炵鎴�", + prop: "tenantName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛濮撳悕", + prop: "realName", + search: true, + display: false + }, + { + label: "鎵�灞炶鑹�", + prop: "roleName", + slot: true, + display: false + }, + { + label: "瀵嗙爜绛栫暐", + prop: "pwdStrategy", + slot: true, + display: false + }, + { + label: "鎵�灞為儴闂�", + prop: "deptName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛骞冲彴", + prop: "userTypeName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛骞冲彴", + type: "select", + dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type", + props: { + label: "dictValue", + value: "dictKey" + }, + dataType: "number", + search: true, + hide: true, + display: false, + prop: "userType", + rules: [{ + required: true, + message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", + trigger: "blur" + }] + }, + ], + group: [ + { + label: '鍩虹淇℃伅', + prop: 'baseInfo', + icon: 'el-icon-user-solid', + column: [ + { + label: "鎵�灞炵鎴�", + prop: "tenantId", + type: "tree", + dicUrl: "/api/ubcs-system/tenant/select", + props: { + label: "tenantName", + value: "tenantId" + }, + hide: !website.tenantMode, + addDisplay: website.tenantMode, + editDisplay: website.tenantMode, + viewDisplay: website.tenantMode, + rules: [{ + required: true, + message: "璇疯緭鍏ユ墍灞炵鎴�", + trigger: "click" + }], + span: 24, + }, + { + label: "鐧诲綍璐﹀彿", + prop: "account", + rules: [{ + required: true, + message: "璇疯緭鍏ョ櫥褰曡处鍙�", + trigger: "blur" + }], + }, + { + label: "鐢ㄦ埛骞冲彴", + type: "select", + dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type", + props: { + label: "dictValue", + value: "dictKey" + }, + dataType: "number", + slot: true, + prop: "userType", + rules: [{ + required: true, + message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", + trigger: "blur" + }] + }, + { + label: '瀵嗙爜', + prop: 'password', + hide: true, + editDisplay: false, + viewDisplay: false, + rules: [{required: true, validator: validatePass, trigger: 'blur'}] + }, + { + label: '纭瀵嗙爜', + prop: 'password2', + hide: true, + editDisplay: false, + viewDisplay: false, + rules: [{required: true, validator: validatePass2, trigger: 'blur'}] + }, + ] + }, + { + label: '璇︾粏淇℃伅', + prop: 'detailInfo', + icon: 'el-icon-s-order', + column: [ + { + label: "鐢ㄦ埛鏄电О", + prop: "name", + hide: true, + rules: [{ + required: true, + message: "璇疯緭鍏ョ敤鎴锋樀绉�", + trigger: "blur" + }] + }, + { + label: "鐢ㄦ埛濮撳悕", + prop: "realName", + rules: [{ + required: true, + message: "璇疯緭鍏ョ敤鎴峰鍚�", + trigger: "blur" + }, { + min: 2, + max: 5, + message: '濮撳悕闀垮害鍦�2鍒�5涓瓧绗�' + }] + }, + { + label: "鎵嬫満鍙风爜", + prop: "phone", + overHidden: true + }, + { + label: "鐢靛瓙閭", + prop: "email", + hide: true, + overHidden: true + }, + { + label: "鐢ㄦ埛鎬у埆", + prop: "sex", + type: "select", + dicData: [ + { + label: "鐢�", + value: 1 + }, + { + label: "濂�", + value: 2 + }, + { + label: "鏈煡", + value: 3 + } + ], + hide: true + }, + { + label: "鐢ㄦ埛鐢熸棩", + type: "date", + prop: "birthday", + format: "yyyy-MM-dd hh:mm:ss", + valueFormat: "yyyy-MM-dd hh:mm:ss", + hide: true + }, + { + label: "璐﹀彿鐘舵��", + prop: "statusName", + hide: true, + display: false + } + ] + }, + { + label: '鑱岃矗淇℃伅', + prop: 'dutyInfo', + icon: 'el-icon-s-custom', + column: [ + { + label: "鐢ㄦ埛缂栧彿", + prop: "code", + }, + { + label: "鎵�灞炶鑹�", + prop: "roleId", + multiple: true, + type: "tree", + dicData: [], + props: { + label: "title" + }, + checkStrictly: true, + slot: true, + rules: [{ + required: true, + message: "璇烽�夋嫨鎵�灞炶鑹�", + trigger: "click" + }] + }, + { + label: "鎵�灞為儴闂�", + prop: "deptId", + type: "tree", + multiple: true, + dicData: [], + props: { + label: "title" + }, + checkStrictly: true, + slot: true, + rules: [{ + required: true, + message: "璇烽�夋嫨鎵�灞為儴闂�", + trigger: "click" + }] + }, + { + label: "鎵�灞炲矖浣�", + prop: "postId", + type: "tree", + multiple: true, + dicData: [], + props: { + label: "postName", + value: "id" + }, + rules: [{ + required: true, + message: "璇烽�夋嫨鎵�灞炲矖浣�", + trigger: "click" + }], + }, + ] + }, + ] + }, + data: [], + platformQuery: {}, + platformSelectionList: [], + platformData: [], + platformForm: {}, + platformOption: { + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + selection: true, + viewBtn: true, + dialogClickModal: false, + menuWidth: 120, + editBtnText: '閰嶇疆', + column: [ + { + label: "鐧诲綍璐﹀彿", + prop: "account", + search: true, + display: false + }, + { + label: "鎵�灞炵鎴�", + prop: "tenantName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛濮撳悕", + prop: "realName", + search: true, + display: false + }, + { + label: "鐢ㄦ埛骞冲彴", + prop: "userTypeName", + slot: true, + display: false + }, + + { + label: "鐢ㄦ埛骞冲彴", + type: "select", + dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type", + props: { + label: "dictValue", + value: "dictKey" + }, + dataType: "number", + search: true, + hide: true, + display: false, + prop: "userType", + rules: [{ + required: true, + message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", + trigger: "blur" + }] + }, + { + label: "鐢ㄦ埛鎷撳睍", + prop: "userExt", + type: "textarea", + minRows: 8, + span: 24, + overHidden: true, + row: true, + hide: true, + }, + ], + }, + excelForm: {}, + excelOption: { + submitBtn: false, + emptyBtn: false, + column: [ + { + label: '妯℃澘涓婁紶', + prop: 'excelFile', + type: 'upload', + drag: true, + loadText: '妯℃澘涓婁紶涓紝璇风◢绛�', + span: 24, + propsHttp: { + res: 'data' + }, + tip: '璇蜂笂浼� .xls,.xlsx 鏍囧噯鏍煎紡鏂囦欢', + action: "/api/ubcs-user/import-user" + }, + { + label: "鏁版嵁瑕嗙洊", + prop: "isCovered", + type: "switch", + align: "center", + width: 80, + dicData: [ + { + label: "鍚�", + value: 0 + }, + { + label: "鏄�", + value: 1 + } + ], + value: 0, + slot: true, + rules: [ + { + required: true, + message: "璇烽�夋嫨鏄惁瑕嗙洊", + trigger: "blur" + } + ] + }, + { + label: '妯℃澘涓嬭浇', + prop: 'excelTemplate', + formslot: true, + span: 24, + } + ] + }, + selid:[], + UserPwdstrategyVO:{ + userIds:[], + pwdstrategyId:'' + } + }; + }, + watch: { + 'form.tenantId'() { + if (this.form.tenantId !== '' && this.initFlag) { + this.initData(this.form.tenantId); + } + }, + 'excelForm.isCovered'() { + if (this.excelForm.isCovered !== '') { + const column = this.findObject(this.excelOption.column, "excelFile"); + column.action = `/api/ubcs-user/import-user?isCovered=${this.excelForm.isCovered}`; + } + } + }, + computed: { + ...mapGetters(["userInfo", "permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission.user_add, false), + viewBtn: this.vaildData(this.permission.user_view, false), + delBtn: this.vaildData(this.permission.user_delete, false), + editBtn: this.vaildData(this.permission.user_edit, false) + }; + }, + platformPermissionList() { + return { + addBtn: false, + viewBtn: false, + delBtn: false, + editBtn: this.vaildData(this.permission.user_edit, false) + }; + }, + ids() { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(","); + }, + }, + mounted() { + // 闈炵鎴锋ā寮忛粯璁ゅ姞杞界鐞嗙粍鏁版嵁 + if (!website.tenantMode) { + this.initData(website.tenantId); + } + }, + created() { + this.selecload() + }, + methods: { + //esc鍙栨秷閿搷浣� + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(() => { + done(); + }) + .catch(() => { + done(); + }); + + }, + //鐐瑰嚮閰嶇疆瀵嗙爜绛栫暐 + handlepass(){ + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + }else { + this.passVisible=true; + } + console.log("selectionList",this.selectionList) + }, + // 璁剧疆瀵嗙爜绛栫暐锛屼紶閫掍笅鎷夋鐨刬d鍜屽閫夋鐨刬d + passhandle(){ + // 閲嶆柊寰幆宸查�変腑id锛屽畾涔変竴涓猻elid鏁扮粍鏉ヨ祴鍊� + this.selectionList.forEach(ele => { + this.selid.push(ele.id); + }) + //瑕佷紶閫掔殑id锛屼竴涓槸鏁扮粍鍙︿竴涓槸瀛楃涓� + this.UserPwdstrategyVO.userIds=this.selid; + this.UserPwdstrategyVO.pwdstrategyId=this.id + console.log(this.UserPwdstrategyVO) + //璇锋眰 + insert(this.UserPwdstrategyVO).then(()=>{ + this.passVisible=false + this.$message({ + type: "success", + message: "閰嶇疆鎴愬姛!" + }); + this.selectionList=[] + this.onLoad(this.page) + console.log("selectionList",this.selectionList) + }).catch(res=>{ + this.$message({ + type: "warning", + message: res + }); + }) + + }, + //閫氳繃涓嬫媺妗哻hange浜嬩欢锛屾嬁鍒板搴旂殑id璧嬪�肩粰瀹氫箟鐨刬d锛屼紶閫掑悗绔� + selChange(row){ + this.id=row + }, + selecload(page, params = {}) { + getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => { + console.log(res) + this.seoptions=res.data.data.content + }); + }, + nodeClick(data) { + this.treeDeptId = data.id; + this.page.currentPage = 1; + this.onLoad(this.page); + }, + initData(tenantId) { + getRoleTree(tenantId).then(res => { + const column = this.findObject(this.option.group, "roleId"); + column.dicData = res.data.data; + this.id = tenantId + + }); + getDeptTree(tenantId).then(res => { + const column = this.findObject(this.option.group, "deptId"); + column.dicData = res.data.data; + }); + getPostList(tenantId).then(res => { + const column = this.findObject(this.option.group, "postId"); + column.dicData = res.data.data; + }); + }, + submitRole() { + const roleList = this.$refs.treeRole.getCheckedKeys().join(","); + grant(this.ids, roleList).then(() => { + this.roleBox = false; + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + this.onLoad(this.page); + }); + }, + rowSave(row, done, loading) { + row.deptId = row.deptId.join(","); + row.roleId = row.roleId.join(","); + row.postId = row.postId.join(","); + add(row).then(() => { + this.initFlag = false; + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowUpdate(row, index, done, loading) { + row.deptId = row.deptId.join(","); + row.roleId = row.roleId.join(","); + row.postId = row.postId.join(","); + update(row).then(() => { + this.initFlag = false; + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowDel(row) { + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return remove(row.id); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + }); + }, + searchReset() { + this.query = {}; + this.treeDeptId = ''; + this.onLoad(this.page); + }, + searchChange(params, done) { + this.query = params; + this.page.currentPage = 1; + this.onLoad(this.page, params); + done(); + }, + selectionChange(list) { + this.selectionList = list; + }, + selectionClear() { + this.selectionList = []; + this.$refs.crud.toggleSelection(); + }, + handleDelete() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return remove(this.ids); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + this.$refs.crud.toggleSelection(); + }); + }, + handleReset() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨璐﹀彿瀵嗙爜閲嶇疆涓�123456?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return resetPassword(this.ids); + }) + .then(() => { + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + this.$refs.crud.toggleSelection(); + }); + }, + handleGrant() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.roleTreeObj = []; + if (this.selectionList.length === 1) { + this.roleTreeObj = this.selectionList[0].roleId.split(","); + } + getRoleTree().then(res => { + this.roleGrantList = res.data.data; + this.roleBox = true; + + }); + }, + handlePlatform() { + this.platformBox = true; + }, + handleLock() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨璐﹀彿瑙e皝锛�", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return unlock(this.ids); + }) + .then(() => { + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + }); + }, + handleImport() { + this.excelBox = true; + }, + uploadAfter(res, done, loading, column) { + window.console.log(column); + this.excelBox = false; + this.refreshChange(); + done(); + }, + handleExport() { + const account = func.toStr(this.search.account); + const realName = func.toStr(this.search.realName); + this.$confirm("鏄惁瀵煎嚭鐢ㄦ埛鏁版嵁?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + NProgress.start(); + exportBlob(`/api/ubcs-user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}`).then(res => { + downloadXls(res.data, `鐢ㄦ埛鏁版嵁琛�${dateNow()}.xlsx`); + NProgress.done(); + }) + }); + }, + handleTemplate() { + exportBlob(`/api/ubcs-user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => { + downloadXls(res.data, "鐢ㄦ埛鏁版嵁妯℃澘.xlsx"); + }) + }, + beforeOpen(done, type) { + if (["edit", "view"].includes(type)) { + getUser(this.form.id).then(res => { + this.form = res.data.data; + if (this.form.hasOwnProperty("deptId")) { + this.form.deptId = this.form.deptId.split(","); + } + if (this.form.hasOwnProperty("roleId")) { + this.form.roleId = this.form.roleId.split(","); + } + if (this.form.hasOwnProperty("postId")) { + this.form.postId = this.form.postId.split(","); + } + }); + } + this.initFlag = true; + done(); + }, + currentChange(currentPage) { + this.page.currentPage = currentPage; + }, + sizeChange(pageSize) { + this.page.pageSize = pageSize; + }, + refreshChange() { + this.onLoad(this.page, this.query); + }, + onLoad(page, params = {}) { + this.loading = true; + getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => { + const data = res.data.data; + this.page.total = data.total; + this.data = data.records; + this.loading = false; + this.selectionClear(); + }); + }, + platformRowUpdate(row, index, done, loading) { + updatePlatform(row.id, row.userType, row.userExt).then(() => { + this.platformOnLoad(this.platformPage); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + platformBeforeOpen(done, type) { + if (["edit", "view"].includes(type)) { + getUserPlatform(this.platformForm.id).then(res => { + this.platformForm = res.data.data; + }); + } + done(); + }, + platformSearchReset() { + this.platformQuery = {}; + this.platformOnLoad(this.platformPage); + }, + platformSearchChange(params, done) { + this.platformQuery = params; + this.platformPage.currentPage = 1; + this.platformOnLoad(this.platformPage, params); + done(); + }, + platformSelectionChange(list) { + this.platformSelectionList = list; + }, + platformSelectionClear() { + this.platformSelectionList = []; + this.$refs.platformCrud.toggleSelection(); + }, + platformCurrentChange(currentPage) { + this.platformPage.currentPage = currentPage; + }, + platformSizeChange(pageSize) { + this.platformPage.pageSize = pageSize; + }, + platformRefreshChange() { + this.platformOnLoad(this.platformPage, this.platformQuery); + }, + platformOnLoad(page, params = {}) { + this.platformLoading = true; + getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => { + const data = res.data.data; + this.platformPage.total = data.total; + this.platformData = data.records; + this.platformLoading = false; + this.selectionClear(); + }); + } + } +}; +</script> + +<style lang="scss"> +.box { + height: 800px; +} + +.el-scrollbar { + height: 100%; +} + +.box .el-scrollbar__wrap { + overflow: scroll; +} +.selects{ + width: 400px; + margin-left: 92px; +} +.seloption{ + margin-left: 10px; +} +</style> -- Gitblit v1.9.3