成员管理 分配部门 部门搜索 添加 修改 导入人员 下载导入模板
| | |
| | | margin: 50px auto; |
| | | } |
| | | .avue-dialog .el-dialog{ |
| | | top:43%; |
| | | top:50%; |
| | | max-height: calc(100% - 100px); |
| | | -webkit-transform: translate(-50%, 0); |
| | | transform: translate(-50%, -50%); |
| | |
| | | // è§è²å
¨æ¥è¯¢ |
| | | export function gridRoles(page,limit) { |
| | | return request({ |
| | | url: "/api/roleQueryController/gridRoles", |
| | | url: "/api/roleQueryController/refDataGrid", |
| | | method: "get", |
| | | params:{ |
| | | page,limit |
| | |
| | | data:formData |
| | | }); |
| | | } |
| | | |
| | | // ä¸è½½æ¨¡æ¿æ¥å£ |
| | | export const download = (params) => { |
| | | return request({ |
| | | url: '/api/userQueryController/downloadImportTemplate', |
| | | method: 'get', |
| | | headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}, |
| | | responseType: 'blob', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | //è·åå¯ç çç¥ |
| | | export function departmentQueryController(params) { |
| | | return request({ |
| | | url: "/api/departmentQueryController/refTree", |
| | | method: "get", |
| | | params |
| | | }); |
| | | } |
| | | |
| | | //è·åå¯ç çç¥ |
| | | export function saveUsersDepts(params) { |
| | | return request({ |
| | | url: "/api/departmentQueryController/saveUsersDepts", |
| | | method: "post", |
| | | params |
| | | }); |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | v-dialogDrag |
| | | :close-on-click-modal="false" |
| | | :destroy-on-close="true" |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | width="40%" |
| | | append-to-body |
| | | class="avue-dialog" |
| | | style="margin-top: -20vh !important;" |
| | | > |
| | | <Divider left="30px" text="导å
¥æç¤º"></Divider> |
| | | <ul> |
| | | <li> |
| | | 请ç¹å»æµè§æä»¶è¿è¡ä¸ä¼ |
| | | </li> |
| | | </ul> |
| | | <Divider left="30px" text="éæ©æä»¶åä¼èªå¨ä¸ä¼ "></Divider> |
| | | <el-upload |
| | | :action="fileUrl" |
| | | :before-upload="beforeUpload" |
| | | :data="fileData" |
| | | :headers="uploadHeaders" |
| | | :on-change="uploadChange" |
| | | :on-error="onError" |
| | | :on-success="onSuccess" |
| | | :show-file-list="false" |
| | | class="upload-demo"> |
| | | <el-button size="small" style="margin: 15px 35px" type="primary">æµè§æä»¶</el-button> |
| | | </el-upload> |
| | | <template #footer> |
| | | <el-button size="small" @click="visible = false">å
³é</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getToken} from "@/util/auth"; |
| | | import func from "@/util/func"; |
| | | import {validatenull} from "@/util/validate"; |
| | | |
| | | export default { |
| | | name: "upload-file", |
| | | props: { |
| | | fileType: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: 'ä¸ä¼ æä»¶' |
| | | }, |
| | | fileUrl: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | fileData: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | flga: true, |
| | | pageLoading: null, |
| | | downloadLoading: false, |
| | | visible: false, |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(newval, oldval) { |
| | | // console.log('newval',newval) |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | uploadHeaders() { |
| | | return { |
| | | "Authorizationtoken": getToken(), |
| | | }; |
| | | }, |
| | | }, |
| | | methods: { |
| | | //æä»¶ä¸ä¼ å |
| | | async beforeUpload(file) { |
| | | // è·åæä»¶æ©å±å |
| | | const fileExtension = file.name.split(".").pop().toLowerCase(); // 转æ¢ä¸ºå°å以é¿å
大å°åä¸å¹é
çé®é¢ |
| | | if (this.fileType) { |
| | | if (!this.fileType.includes(fileExtension)) { |
| | | // ä¸ä¼ æ ¼å¼ä¸ç¬¦åè¦æ±ï¼æç¤ºé误信æ¯å¹¶åæ¶ä¸ä¼ |
| | | this.$message.error(`åªå
许ä¸ä¼ ${this.fileType.toString()}æ ¼å¼çæä»¶`); |
| | | return Promise.reject(false); |
| | | } |
| | | } |
| | | this.pageLoading = this.$loading({ |
| | | lock: true, |
| | | text: "æä»¶ä¸ä¼ ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | |
| | | return true; |
| | | }, |
| | | // æä»¶ä¸ä¼ æå |
| | | onSuccess(resbonse) { |
| | | console.log(resbonse); |
| | | if (resbonse.code === 200) { |
| | | this.$message.success("导å
¥æåï¼"); |
| | | this.visible = false; |
| | | } else { |
| | | this.$message.error(resbonse.msg); |
| | | } |
| | | }, |
| | | //æä»¶ä¸ä¼ 失败 |
| | | onError(res) { |
| | | this.pageLoading.close(); |
| | | this.$message.error(res); |
| | | }, |
| | | //æä»¶ç¶ææ¹å |
| | | uploadChange(file) { |
| | | console.log( this.pageLoading); |
| | | if (file.status === "success" || file.status === "error") { |
| | | this.pageLoading.close(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | ul { |
| | | color: rgb(188, 188, 188); |
| | | margin: 20px 0 20px 0; |
| | | padding: 0 0 0 30px; |
| | | list-style: none; |
| | | |
| | | li { |
| | | margin-bottom: 5px; |
| | | font-size: 13px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | async beforeUpload(file) { |
| | | // è·åæä»¶æ©å±å |
| | | const fileExtension = file.name.split(".").pop().toLowerCase(); // 转æ¢ä¸ºå°å以é¿å
大å°åä¸å¹é
çé®é¢ |
| | | const allowedExtensions = this.paramVOS.fileType || ['css', 'csv', 'doc', 'gif', 'html', 'jpe', 'jpg', 'jpeg', 'png', 'js', 'json', |
| | | 'mp3', 'mp4', 'xlsx', 'xml', 'zip', 'xhtml', 'wps', 'ppt', 'xls', 'word', 'pdf', 'txt']; |
| | | |
| | | // æ£æ¥æä»¶æ©å±åæ¯å¦å¨å
许çæä»¶æ©å±åæ°ç»ä¸ |
| | | if (!allowedExtensions.includes(fileExtension)) { |
| | | // ä¸ä¼ æ ¼å¼ä¸ç¬¦åè¦æ±ï¼æç¤ºé误信æ¯å¹¶åæ¶ä¸ä¼ |
| | | this.$message.error(`åªå
许ä¸ä¼ ${allowedExtensions.toString()}æ ¼å¼çæä»¶`); |
| | | return Promise.reject(false); |
| | | if(this.paramVOS.fileType){ |
| | | if (!this.paramVOS.fileType.includes(fileExtension)) { |
| | | // ä¸ä¼ æ ¼å¼ä¸ç¬¦åè¦æ±ï¼æç¤ºé误信æ¯å¹¶åæ¶ä¸ä¼ |
| | | this.$message.error(`åªå
许ä¸ä¼ ${this.paramVOS.fileType.toString()}æ ¼å¼çæä»¶`); |
| | | return Promise.reject(false); |
| | | } |
| | | } |
| | | |
| | | this.pageLoading = this.$loading({ |
| | |
| | | // 坿æ¬ç»ä»¶ |
| | | import richText from '@/components/PLT-basic-component/richText' |
| | | // ä¸ä¼ æä»¶ç»ä»¶ |
| | | import UploadFiles from '@/components/PLT-basic-component/Upload-files' |
| | | import uploadFile from '@/components/PLT-basic-component/upload-file' |
| | | // 表åä¸ä¼ æä»¶ç»ä»¶ |
| | | import formUpload from "@/components/PLT-basic-component/formUpload"; |
| | | // ç©¿æ¢æ¡ç»ä»¶ |
| | |
| | | Vue.component('dynamicTableForm', dynamicTableForm); |
| | | Vue.component('dynamicForm', dynamicForm); |
| | | Vue.component('richText', richText); |
| | | Vue.component('UploadFiles', UploadFiles); |
| | | Vue.component('uploadFile', uploadFile); |
| | | Vue.component('formUpload', formUpload); |
| | | Vue.component('Divider', Divider); |
| | | Vue.component('transfer', transfer); |
| | |
| | | searchIcon:true, |
| | | selection:true, |
| | | stripe:true, |
| | | headerAlign: 'center', |
| | | align: 'center', |
| | | // selection æ¯å¦æéæ©æ¡ |
| | | // indexFixed:true/left/right, åºå®å |
| | | // menu:false, æ¯å¦ææä½æ |
| | | // menuTitle:xxx, æä½æ æ é¢ |
| | | // stripe æ¡çº¹ |
| | | } |
| | |
| | | <basic-container> |
| | | <avue-crud |
| | | ref="userCrud" |
| | | :before-open="beforeOpen" |
| | | :data="tableData" |
| | | :option="option" |
| | | :page.sync="page" |
| | |
| | | @row-click="rowClickHandler" |
| | | @row-save="rowSaveHandler" |
| | | @row-update="rowUpdateHandler" |
| | | @row-del="rowDelHandler" |
| | | > |
| | | <!-- é¨é¨å¤´é¨æç´¢ææ§½ --> |
| | | <template slot-scope="{disabled,size}" slot="pkDepartmentNameSearch"> |
| | | <div style="display: flex;gap: 5px"> |
| | | <el-select v-model="departSearchValue" clearable placeholder="è¯·éæ©é¨é¨"> |
| | | <el-option :label="departSearchObj.name" :value="departSearchObj.oid"></el-option> |
| | | </el-select> |
| | | <el-button size="small" type="success" @click="dialogDepartSearchHandler">éæ©é¨é¨</el-button> |
| | | </div> |
| | | </template> |
| | | |
| | | <!-- å¯¹è¯æ¡é¨é¨ææ§½ --> |
| | | <template slot="pkDepartmentNameForm" slot-scope="scope"> |
| | | <div style="display: flex;gap: 5px"> |
| | | <el-select v-model="departValue" clearable placeholder="è¯·éæ©é¨é¨"> |
| | | <el-option :label="departObj.name" :value="departObj.oid"></el-option> |
| | | </el-select> |
| | | <el-button size="small" type="success" @click="dialogDepartHandler">éæ©é¨é¨</el-button> |
| | | </div> |
| | | </template> |
| | | |
| | | <template slot="status" slot-scope="{row}"> |
| | | <el-tag v-if="row.status === 0" type="success">å¯ç¨</el-tag> |
| | | <el-tag v-if="row.status === 1" type="danger">åç¨</el-tag> |
| | |
| | | </template> |
| | | |
| | | <template #menu="{row,index,size}"> |
| | | <el-button size="small" type="text" @click="stopUserHandler(row)"> |
| | | <el-button icon="el-icon-edit" size="small" type="text" @click.stop="rowEditHandler(row,index)">ç¼è¾</el-button> |
| | | <el-button icon="el-icon-delete" size="small" type="text" @click.stop="rowDeleteHandler(row)">å é¤</el-button> |
| | | <el-button size="small" type="text" @click.stop="stopUserHandler(row)"> |
| | | <span v-if="row.status === 0" style="color: #fa3434"><i class="el-icon-video-pause"></i> åç¨</span> |
| | | <span v-if="row.status === 1" style="color: #55b61d"><i class="el-icon-video-pause"></i> å¯ç¨</span> |
| | | </el-button> |
| | |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">å é¤</el-button> |
| | | <el-button icon="el-icon-user" plain size="small" type="primary" @click="roleHandler">åé
è§è²</el-button> |
| | | <el-button icon="el-icon-school" plain size="small" type="primary">åé
é¨é¨</el-button> |
| | | <el-button icon="el-icon-school" plain size="small" type="primary" @click="departmentHandler">åé
é¨é¨</el-button> |
| | | <el-button icon="el-icon-key" plain size="small" type="success" @click="setPwsHandler">设置å¯ç çç¥</el-button> |
| | | <el-button icon="el-icon-upload2" plain size="small" type="primary">导å
¥äººå</el-button> |
| | | <el-button icon="el-icon-download" plain size="small" type="primary">ä¸è½½å¯¼å
¥æ¨¡æ¿</el-button> |
| | | <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadRole">导å
¥äººå</el-button> |
| | | <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadHandler">ä¸è½½å¯¼å
¥æ¨¡æ¿</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | |
| | | <!-- åé
è§è²ç©¿æ¢æ¡ --> |
| | | <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" |
| | | :transferTitle="transferTitle" title="åé
è§è²" |
| | |
| | | :visible.sync="pwdVisible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | style="margin-top: -20vh !important;" |
| | | style="margin-top: -15vh !important;" |
| | | title="设置å¯ç çç¥" |
| | | width="30%" |
| | | > |
| | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="pwdVisible = false">å æ¶</el-button> |
| | | <el-button size="small" type="primary" @click="savePwdHandler">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 导å
¥äººå --> |
| | | <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" title="导å
¥äººå"></upload-file> |
| | | |
| | | <!-- åé
é¨é¨å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | v-dialogDrag |
| | | v-loading="departLoading" |
| | | :destroy-on-close="true" |
| | | :visible.sync="departVisible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | title="åé
é¨é¨" |
| | | width="50%" |
| | | > |
| | | <avue-crud |
| | | ref="departCrud" |
| | | :data="departData" |
| | | :option="departOption" |
| | | @current-row-change="handleCurrentRowChange" |
| | | > |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="departVisible = false">å æ¶</el-button> |
| | | <el-button size="small" type="primary" @click="saveDepartHandler">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </basic-container> |
| | |
| | | updateUser, |
| | | deleteUser, |
| | | selectPwdStrategyMap, |
| | | saveUserPasswordStrateg |
| | | saveUserPasswordStrateg, |
| | | download, |
| | | departmentQueryController, |
| | | saveUsersDepts |
| | | } from '@/api/system/user/api' |
| | | import {column} from "./option" |
| | | import func from '@/util/func' |
| | | |
| | | export default { |
| | | name: "userManage", |
| | | data() { |
| | | data: function () { |
| | | return { |
| | | departSearchObj:{}, |
| | | departSearchValue:'', |
| | | loadKey: 0, |
| | | departStatus: '', // åºåä¸åæ¹å¼æå¼é¨é¨å¯¹è¯æ¡ |
| | | departValue: '', // é¨é¨å¯¹è¯æ¡ä¸ææ¡ç»å®å¼ |
| | | departObj: {}, // é¨é¨å¯¹è¯æ¡ä¸ææ¡é项ç»å®å¼ |
| | | departCurrenRow: {}, |
| | | departOption: { |
| | | ...basicOption, |
| | | rowKey: 'oid', |
| | | rowParentKey: 'parentId', |
| | | selection: false, |
| | | highlightCurrentRow: true, |
| | | stripe: false, |
| | | menu: false, |
| | | refreshBtn: false, |
| | | gridBtn: false, |
| | | column: [ |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'name', |
| | | }, |
| | | { |
| | | label: 'ç¼å·', |
| | | prop: 'id', |
| | | }, |
| | | { |
| | | label: 'æè¿°', |
| | | prop: 'description', |
| | | }, |
| | | ] |
| | | }, |
| | | departData: [], |
| | | departLoading: false, |
| | | departVisible: false, |
| | | upFileType: ['xls', 'xlsx'], |
| | | fileUrl: 'api/userQueryController/importUser', |
| | | pwdVisible: false, |
| | | pwdLoading: false, |
| | | pwdValue: '', |
| | |
| | | tableData: [], |
| | | option: { |
| | | ...basicOption, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | dialogWidth: '50%', |
| | | calcHeight: -60, |
| | | column: column |
| | |
| | | created() { |
| | | }, |
| | | methods: { |
| | | // æ°å¢æä¿®æ¹å¯¹è¯æ¡æå¼å |
| | | beforeOpen(done, type) { |
| | | if(type == 'add'){ |
| | | this.departObj = {}; |
| | | this.departValue = ""; |
| | | } |
| | | done(); |
| | | }, |
| | | // è¡¨æ ¼è¯·æ± |
| | | getTableList() { |
| | | this.tableLoading = true; |
| | |
| | | |
| | | // æç´¢æ¥è¯¢ |
| | | handleSearch(params, done) { |
| | | this.searchParams = {}; |
| | | if(this.departSearchObj && this.departSearchValue){ |
| | | this.searchParams['conditionMap["pkDepartment"]'] = this.departSearchValue; |
| | | } |
| | | |
| | | if (!func.isEmptyObject(params)) { |
| | | for (let key in params) { |
| | | if (params.hasOwnProperty(key)) { |
| | |
| | | this.searchParams[`conditionMap["${newKey}"]`] = params[key]; |
| | | } |
| | | } |
| | | } else { |
| | | } |
| | | |
| | | if (func.isEmptyObject(params) && !this.departSearchValue) { |
| | | this.searchParams = {}; |
| | | } |
| | | |
| | | this.getTableList(); |
| | | done(); |
| | | }, |
| | | |
| | | // éç½®æç´¢æ¡ä»¶ |
| | | handleReset() { |
| | | this.departSearchObj = {}; |
| | | this.departSearchValue = ""; |
| | | this.searchParams = {}; |
| | | this.getTableList(); |
| | | }, |
| | |
| | | this.$message.error('è¯·æ£æ¥ä¸¤æ¬¡å¯ç æ¯å¦è¾å
¥ä¸è´ï¼') |
| | | return this.$refs.userCrud.$refs.dialogForm.$refs.tableForm.allDisabled = false; |
| | | } |
| | | row.pkDepartment = this.departValue; // å°å½åè¡çé¨é¨åæ°pkDepartment èµå¼ä¸ºä¸ææ¡ç»å®çå¼ |
| | | addUser(row).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | |
| | | done() |
| | | }, |
| | | |
| | | // æä½æ ç¼è¾ |
| | | rowEditHandler(row, index) { |
| | | let obj = { name: row.pkDepartmentName, oid: row.pkDepartment, rowOid: row.oid }; |
| | | this.departValue = row.pkDepartment; |
| | | this.departObj = obj; |
| | | |
| | | if (this.departObj.rowOid) { |
| | | this.$refs.userCrud.rowEdit(row, index); |
| | | } |
| | | |
| | | }, |
| | | |
| | | // ç¼è¾ |
| | | rowUpdateHandler(row, index, done) { |
| | | if (row.password != row.confirmPassword) { |
| | | this.$message.error('è¯·æ£æ¥ä¸¤æ¬¡å¯ç æ¯å¦è¾å
¥ä¸è´ï¼') |
| | | return this.$refs.userCrud.$refs.dialogForm.$refs.tableForm.allDisabled = false; |
| | | } |
| | | row.pkDepartment = this.departValue; // å°å½åè¡çé¨é¨åæ°pkDepartment èµå¼ä¸ºä¸ææ¡ç»å®çå¼ |
| | | updateUser(row).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | |
| | | }, |
| | | |
| | | // å é¤ |
| | | rowDelHandler(row) { |
| | | rowDeleteHandler(row) { |
| | | let params = { |
| | | ids: row.oid |
| | | } |
| | |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // ä¸è½½å¯¼å
¥æ¨¡æ¿ |
| | | downloadHandler() { |
| | | download().then(res => { |
| | | console.log(res); |
| | | func.downloadFileByBlobHandler(res); |
| | | this.$message.success('ä¸è½½æå') |
| | | }).catch(err => { |
| | | this.$message.error(err); |
| | | }) |
| | | }, |
| | | |
| | | // 导å
¥äººå |
| | | uploadRole() { |
| | | this.$refs.upload.visible = true; |
| | | }, |
| | | |
| | | // åé
é¨é¨ |
| | | departmentHandler() { |
| | | if (this.selectList.length <= 0) { |
| | | this.$message.warning('æ¸
å
éæ©äººååè¿è¡æä½ï¼') |
| | | return; |
| | | } |
| | | this.departStatus = 'default'; // åºåä¸åæ¹å¼æå¼é¨é¨å¯¹è¯æ¡ |
| | | this.departmentQueryOnLoad(); |
| | | }, |
| | | |
| | | // åé
é¨é¨è¡¨æ ¼åå§åè¯·æ± |
| | | departmentQueryOnLoad() { |
| | | departmentQueryController({queryAllLevel: true}).then(res => { |
| | | const data = res.data.treeData; |
| | | this.departData = this.departDtaFormAtter(data); |
| | | this.departVisible = true; |
| | | }).catch(err => { |
| | | this.$message.error(err); |
| | | }) |
| | | }, |
| | | |
| | | // åé
é¨é¨æ°æ®è½¬æ¢ |
| | | departDtaFormAtter(items) { |
| | | return items.map(item => { |
| | | // 转æ¢å½åèç¹ç屿§ |
| | | const formList = { |
| | | oid: item.oid, |
| | | id: item.attributes.id, |
| | | name: item.attributes.name, |
| | | description: item.attributes.description, |
| | | parentId: item.parentId, |
| | | parentName: item.parentName, |
| | | parentBtmName: item.parentBtmName, |
| | | // 妿childrenåå¨ä¸ä¸ä¸ºç©ºï¼åéå½è½¬æ¢children |
| | | children: item.children && item.children.length > 0 ? this.departDtaFormAtter(item.children) : undefined |
| | | }; |
| | | return formList; |
| | | }); |
| | | }, |
| | | |
| | | // åé
é¨é¨ è¡åé |
| | | handleCurrentRowChange(row) { |
| | | this.departCurrenRow = row; |
| | | }, |
| | | |
| | | // åé
é¨é¨ ä¿å |
| | | saveDepartHandler() { |
| | | if (func.isEmptyObject(this.departCurrenRow)) { |
| | | this.$message.warning('è¯·éæ©é¨é¨èç¹ï¼') |
| | | return; |
| | | } |
| | | |
| | | if (this.departStatus == 'default') { |
| | | let params = { |
| | | userOIds: this.selectList.map(item => item.oid).join(','), |
| | | deptId: this.departCurrenRow.oid, |
| | | }; |
| | | saveUsersDepts(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.departVisible = false; |
| | | this.getTableList(); |
| | | this.$message.success('åé
æåï¼') |
| | | } |
| | | }).catch(err => { |
| | | console.log(err); |
| | | }) |
| | | return; |
| | | } |
| | | |
| | | if (this.departStatus == 'handle') { |
| | | this.departObj = this.departCurrenRow; |
| | | this.departValue = this.departCurrenRow.oid; |
| | | this.departVisible = false; |
| | | return;; |
| | | } |
| | | |
| | | if(this.departStatus == 'search'){ |
| | | this.departSearchObj = this.departCurrenRow; |
| | | this.departSearchValue = this.departCurrenRow.oid; |
| | | this.departVisible = false; |
| | | return; |
| | | } |
| | | }, |
| | | |
| | | // å¯¹è¯æ¡åé
é¨é¨æé® |
| | | dialogDepartHandler() { |
| | | this.departmentQueryOnLoad(); |
| | | this.departStatus = 'handle'; // åºåä¸åæ¹å¼æå¼é¨é¨å¯¹è¯æ¡ |
| | | }, |
| | | |
| | | // æç´¢å¯¹è¯æ¡åé
é¨é¨æé® |
| | | dialogDepartSearchHandler(){ |
| | | this.departmentQueryOnLoad(); |
| | | this.departStatus = 'search'; // åºåä¸åæ¹å¼æå¼é¨é¨å¯¹è¯æ¡ |
| | | }, |
| | | } |
| | | |
| | | } |
| | |
| | | { |
| | | label: 'è´¦å·', |
| | | prop: 'id', |
| | | align:'center', |
| | | search:true, |
| | | sortable:true, |
| | | rules: [ |
| | |
| | | { |
| | | label: 'å§å', |
| | | prop: 'name', |
| | | align:'center', |
| | | search:true, |
| | | sortable:true, |
| | | rules: [ |
| | |
| | | { |
| | | label: 'ç¶æ', |
| | | prop: 'status', |
| | | align: 'center', |
| | | display:false, |
| | | sortable:true, |
| | | slot: true, |
| | |
| | | { |
| | | label: 'éå®ç¶æ', |
| | | prop: 'lockFlag', |
| | | align:'center', |
| | | sortable:true, |
| | | display:false, |
| | | }, |
| | |
| | | search:true, |
| | | sortable:true, |
| | | searchslot:true, |
| | | row:true, |
| | | formslot:true, |
| | | }, |
| | | { |
| | | label: 'ä¸ä¸', |
| | | prop: 'specialties', |
| | | align:'center', |
| | | sortable:true, |
| | | }, |
| | | { |
| | | label: 'è§è²', |
| | | prop: 'pkPersonName', |
| | | align:'center', |
| | | type:'select', |
| | | dicUrl: 'api/roleQueryController/gridRoles', |
| | | dicUrl: 'api/roleQueryController/refDataGrid', |
| | | props: { |
| | | label: 'name', |
| | | value: 'oid' |
| | |
| | | { |
| | | label: 'çµåé®ä»¶', |
| | | prop: 'email', |
| | | align:'center', |
| | | sortable:true, |
| | | overHidden: true, |
| | | row:true |
| | | }, |
| | | { |
| | | label: 'æè¿°', |
| | | type:'textarea', |
| | | prop: 'description', |
| | | align:'center', |
| | | sortable:true, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: 'é¨é¨é¢å¯¼', |
| | | prop: 'isDeptLeader', |
| | | align:'center', |
| | | sortable:true, |
| | | display:false, |
| | | }, |
| | | { |
| | | label: 'æå±å¯çº§', |
| | | prop: 'secretGradeText', |
| | | align:'center', |
| | | sortable:true, |
| | | display:false, |
| | | }, |