From e955e0e34f52d3a8f66354f2a75b762791f918b1 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期三, 16 十一月 2022 17:24:30 +0800 Subject: [PATCH] 頁面更改 --- src/views/maintenance/userManagement.vue | 1251 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 1,132 insertions(+), 119 deletions(-) diff --git a/src/views/maintenance/userManagement.vue b/src/views/maintenance/userManagement.vue index 35152c3..516c75d 100644 --- a/src/views/maintenance/userManagement.vue +++ b/src/views/maintenance/userManagement.vue @@ -1,190 +1,1130 @@ <template> - <div class="userManagement_box"> - <My-bread :list="['杩愮淮绠$悊', '鐢ㄦ埛绠$悊']"></My-bread> + <div class="userInfo_box"> + <My-bread + :list="[ + `${$t('operatManage.operatManage')}`, + `${$t('userManage.userManage')}`, + ]" + ></My-bread> <el-divider /> <div class="inquire"> - <el-form ref="formData1" :model="form" :inline="true"> - <el-form-item label="瑙掕壊鍚嶇О" prop="name"> - <el-input v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-form ref="queryForm" :model="queryForm" :inline="true"> + <el-form-item prop="uname" :label="$t('userManage.userInfoObj.uname')"> + <el-input v-model="queryForm.uname" /> </el-form-item> - <el-form-item label="鏉冮檺瀛楃" prop="jurisdiction"> - <el-input v-model="form.jurisdiction" placeholder="璇疯緭鍏�" /> + <el-form-item + prop="depid" + :label="$t('userManage.userInfoObj.depName')" + > + <el-cascader + v-model="queryForm.depid" + :options="treeOptions" + filterable + @change="handleChange" + :show-all-levels="false" + :props="{ + label: 'name', + value: 'id', + children: 'children', + checkStrictly: true, + emitPath: false, + }" + > + </el-cascader> </el-form-item> - <el-form-item label="瑙掕壊鐘舵��" prop="region"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="onSubmit">鏌ヨ</el-button> - <el-button @click="resetForm()">閲嶇疆</el-button> + <el-button + size="small" + type="primary" + @click="queryInfo()" + icon="el-icon-search" + style="background: #1890ff" + >{{ $t('operatManage.ELM.search') }} + </el-button> + </el-form-item> + <el-form-item> + <el-button + size="small" + @click="resetInfo('queryForm')" + icon="el-icon-refresh" + > + {{ $t('operatManage.ELM.reset') }} + </el-button> + </el-form-item> + <br /> + <el-form-item> + <el-button + type="success" + size="small" + @click="showAddDialog" + icon="el-icon-plus" + > + {{ $t('common.append') }} + </el-button> + </el-form-item> + <el-form-item> + <el-button + type="danger" + size="small" + @click="deleteUserInfo" + icon="el-icon-delete" + > + {{ $t('common.delete') }} + </el-button> + </el-form-item> + <el-form-item v-show="setbatchFlag"> + <el-button + type="primary" + size="small" + @click="editPwd" + style="background: #1890ff" + icon="el-icon-unlock" + >{{ $t('common.changepassWord') }} + </el-button> </el-form-item> </el-form> - <div class="btn_box"> - <el-button>娣诲姞</el-button> - <el-button>淇敼</el-button> - <el-button>瀵煎嚭</el-button> - <el-button>鍒犻櫎</el-button> - </div> </div> <div class="table_box"> - <el-table :data="tableData" style="width: 100%"> + <el-table + :data="tableData" + border + style="width: 100%" + height="99%" + @selection-change="handleSelectionChange" + > <el-table-column type="selection" width="55" /> - <el-table-column prop="user" label="鐢ㄦ埛鍚�" /> - <el-table-column prop="name" label="濮撳悕" /> - <el-table-column prop="email" label="閭" /> - <el-table-column prop="phone" label="鑱旂郴鏂瑰紡" /> - <el-table-column fixed="right" prop="permission" label="鏉冮檺" /> - <!-- <el-table-column label="鎿嶄綔" width="280"> - <template #default> + <el-table-column + align="center" + type="index" + :label="$t('common.index')" + width="70px" + fixed + /> - <el-button type="primary" size="small">鍒犻櫎</el-button> + <el-table-column + align="center" + prop="uname" + width="150px" + :label="$t('userManage.userInfoObj.uname')" + fixed + /> + <el-table-column + align="center" + prop="uid" + width="150px" + :label="$t('userManage.userInfoObj.uid')" + /> + <el-table-column + align="center" + prop="sex" + width="80px" + :label="$t('userManage.userInfoObj.sex')" + > + <template slot-scope="scope"> + <span v-if="scope.row.sex == 1"> 鐢� </span> + <span v-else-if="scope.row.sex == 0">濂�</span> + <span v-else>鏈煡</span> </template> - </el-table-column> --> + </el-table-column> + <el-table-column + align="center" + prop="natives" + width="100px" + :label="$t('userManage.userInfoObj.natives')" + /> + <el-table-column + align="center" + prop="depName" + width="200px" + :label="$t('userManage.userInfoObj.depName')" + /> + <el-table-column + align="center" + prop="idcard" + width="200px" + :label="$t('userManage.userInfoObj.idcard')" + /><el-table-column + align="center" + prop="job" + width="200px" + :label="$t('userManage.userInfoObj.job')" + /> + <el-table-column + align="center" + prop="edu" + width="200px" + :label="$t('userManage.userInfoObj.edu')" + /> + <el-table-column + align="center" + prop="addr" + width="200px" + :label="$t('userManage.userInfoObj.addr')" + /> + <el-table-column + align="center" + prop="email" + width="200px" + :label="$t('userManage.userInfoObj.email')" + /> + <el-table-column + align="center" + prop="contact" + width="200px" + :label="$t('userManage.userInfoObj.contact')" + /> + + <el-table-column + align="center" + prop="largeModuleName" + :label="$t('userManage.userInfoObj.status')" + > + <template slot-scope="scope"> + <el-tag v-if="scope.row.status == 0" type="success">姝e父</el-tag> + <el-tag v-if="scope.row.status == 1" type="info">绂佺敤</el-tag> + <el-tag v-if="scope.row.status == 2" type="warning">鍒犻櫎</el-tag> + <el-tag v-if="scope.row.status == 3">鐢宠</el-tag> + <el-tag v-if="scope.row.status == 4" type="danger">鎷掓壒</el-tag> + </template> + </el-table-column> + <el-table-column + align="center" + prop="bak" + width="200px" + :label="$t('userManage.userInfoObj.bak')" + /> + <el-table-column + :label="$t('common.operate')" + width="80px" + fixed="right" + v-if="menuStatus.update" + > + <template slot-scope="scope"> + <!-- <el-button type="primary" size="small">淇敼</el-button> --> + <el-button + type="warning" + @click="editInfo(scope.row)" + size="mini" + >{{ $t('common.edit') }}</el-button + > + </template> + </el-table-column> </el-table> - <div style="margin-top: 40px" class="pagination_box"> + <div style="margin-top: 25px" class="pagination_box"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="currentPage4" - :page-sizes="[10, 20, 30, 40]" - :page-size="10" + :current-page="currentPage" + :page-sizes="[1, 2, 5, 10]" + :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" - :total="5" + :total="count" > </el-pagination> </div> </div> + <el-dialog + width="910px" + top="15vh" + :title="behavior" + :visible.sync="dialogFormVisible" + :before-close="handleClose" + > + <el-form + :model="editForm" + ref="editForm" + :rules="rules" + style="display: flex" + > + <div> + <el-form-item + prop="uid" + :label="$t('userManage.userInfoObj.uid')" + v-if="behavior == '鏂板鐢ㄦ埛'" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.uid" autocomplete="off"></el-input> + <div class="isNewUser" v-if="isNewUser"> + <img src="../../assets/img/success.png" /> + {{ $t('userManage.userInfoObj.uid') }} + </div> + </el-form-item> + <el-form-item + v-if="behavior == '淇敼淇℃伅'" + :label="$t('userManage.userInfoObj.uid')" + :label-width="formLabelWidth" + > + <el-input + v-model="editForm.uid" + autocomplete="off" + disabled + ></el-input> + </el-form-item> + <el-form-item + v-if="behavior == '淇敼淇℃伅'" + prop="oldPwd" + :label="$t('userManage.userInfoObj.origpassword')" + :label-width="formLabelWidth" + > + <el-input + type="password" + v-model="editForm.oldPwd" + autocomplete="off" + show-password + ></el-input> + </el-form-item> + <el-form-item + prop="pwd" + :label="$t('userManage.userInfoObj.pwd')" + :label-width="formLabelWidth" + > + <el-input + type="password" + v-model="editForm.pwd" + autocomplete="off" + show-password + ></el-input> + </el-form-item> + <el-form-item + prop="checkPass" + :label="$t('userManage.userInfoObj.confirmPassword')" + :label-width="formLabelWidth" + > + <el-input + type="password" + show-password + v-model="editForm.checkPass" + autocomplete="off" + ></el-input> + </el-form-item> + <el-form-item + prop="uname" + :label="$t('userManage.userInfoObj.username')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.uname" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="sex" + :label="$t('userManage.userInfoObj.sex')" + :label-width="formLabelWidth" + > + <el-select + v-model="editForm.sex" + clearable + :placeholder="$t('userManage.userInfoObj.pleaseSelect')" + > + <el-option + v-for="item in sexOpt" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item + prop="natives" + :label="$t('userManage.userInfoObj.nativePlace')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.natives" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="depid" + :label-width="formLabelWidth" + :label="$t('userManage.userInfoObj.depName')" + > + <el-cascader + v-model="editForm.depid" + :options="treeOptions" + filterable + clearable + @change="editChange" + :show-all-levels="false" + :props="{ + label: 'name', + value: 'id', + children: 'children', + checkStrictly: true, + emitPath: false, + }" + > + </el-cascader> + </el-form-item> + <el-form-item + prop="idcard" + :label="$t('userManage.userInfoObj.identityCard')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.idcard" autocomplete="off"></el-input> + </el-form-item> + </div> + <div style="width: 45%"> + <el-form-item + prop="job" + :label="$t('userManage.userInfoObj.job')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.job" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="edu" + :label="$t('userManage.userInfoObj.edu')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.edu" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="addr" + :label="$t('userManage.userInfoObj.addr')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.addr" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="email" + :label="$t('userManage.userInfoObj.email')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.email" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="contact" + :label="$t('userManage.userInfoObj.contact')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.contact" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + prop="status" + :label="$t('userManage.userInfoObj.status')" + :label-width="formLabelWidth" + > + <el-select + v-model="editForm.status" + clearable + :placeholder="$t('userManage.userInfoObj.pleaseSelect')" + > + <el-option + v-for="item in statusOpt" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item + prop="bak" + :label="$t('userManage.userInfoObj.remarks')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.bak" autocomplete="off"></el-input> + </el-form-item> + </div> + </el-form> + <div v-if="behavior == '淇敼淇℃伅'" slot="footer" class="dialog-footer"> + <el-button size="medium" @click="cancelEdit()">{{ + $t('common.reset') + }}</el-button> + <el-button + size="medium" + type="primary" + @click="sendEdit('editForm')" + v-loading.fullscreen.lock="fullscreenLoading" + >{{ $t('common.submit') }}</el-button + > + </div> + <div v-else slot="footer" class="dialog-footer"> + <el-button size="medium" @click="cancelAdd('editForm')">{{ + $t('common.reset') + }}</el-button> + <el-button + size="medium" + type="primary" + @click="sendAdd('editForm')" + v-loading.fullscreen.lock="fullscreenLoading" + >{{ $t('common.submit') }}</el-button + > + </div> + </el-dialog> + <el-dialog + width="520px" + top="30vh" + title="鎵归噺閲嶇疆瀵嗙爜" + :visible.sync="resetPwd" + :before-close="handleClose" + > + <el-form :model="pwdForm" ref="pwdForm" :rules="rules"> + <el-form-item prop="adminPwd" label="绠$悊鍛樺瘑鐮�" label-width="140px"> + <el-input + type="password" + v-model="pwdForm.adminPwd" + autocomplete="off" + show-password + ></el-input> + </el-form-item> + <el-form-item prop="newPwd" label="鏂板瘑鐮�" label-width="140px"> + <el-input + type="password" + v-model="pwdForm.newPwd" + autocomplete="off" + show-password + ></el-input> + </el-form-item> + <el-form-item prop="checkPwd" label="纭瀵嗙爜" label-width="140px"> + <el-input + type="password" + v-model="pwdForm.checkPwd" + autocomplete="off" + show-password + ></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button size="medium" @click="cancelReset - 'pwdForm'" + >閲嶇疆</el-button + > + <el-button + size="medium" + type="primary" + @click="sendReset('pwdForm')" + v-loading.fullscreen.lock="fullscreenLoading" + >鎻愪氦</el-button + > + </div> + </el-dialog> </div> </template> <script> +var encrypt = new JSEncrypt(); +import { mapActions } from 'vuex'; import MyBread from '../../components/MyBread.vue'; +import { + queryDepTree, + queryPageUser, + insertUser, + deleteUser, + updateUser, + updatePwd, + selectByUserid, + userSelectForIsAdmin, +} from '../../api/api'; export default { //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� components: { MyBread, }, - data() { + let validName = (rule, value, callback) => { + if (value === '' || value === null || value === undefined) { + return callback(new Error('璇疯緭鍏ュ瘑鐮�')); + } else { + callback(); + } + }; + let validatePass = (rule, value, callback) => { + if (value === '' || value === undefined) { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.editForm.pwd) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }; + let resetPass = (rule, value, callback) => { + if (value === '' || value === undefined) { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.pwdForm.newPwd) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }; return { - currentPage4: 1, - form: { - name: '', - region: '', - jurisdiction: '', + setbatchFlag: false, + menuStatus: { + delete: false, + insert: false, + update: false, }, - tableData: [ + isNewUser: false, + currentPage: 1, + pageSize: 10, + pageIndex: 1, + defaultProps: { + children: 'children', + label: 'name', + }, + queryForm: { + uname: '', + depid: null, + depName: '', + }, + tableData: [], + fullscreenLoading: false, + count: 0, + formLabelWidth: '100px', + dialogFormVisible: false, + initialForm: '', + behavior: '', + multipleSelection: [], + resetPwd: false, + editForm: { + uid: '', + uname: '', + oldPwd: '', + pwd: '', + checkPass: '', + sex: null, + natives: '', + depid: null, + idcard: '', + job: '', + edu: '', + addr: '', + email: '', + contact: '', + status: null, + bak: '', + salt: '', + }, + pwdForm: { + adminPwd: '', + newPwd: '', + checkPwd: '', + ids: [], + }, + treeOptions: [], + statusOpt: [ { - name: '寮犱笁', - user: 'admin', - email: 'admin@daa.com', - phone: '182111199328', - permission: '绠$悊鍛�', + value: 0, + label: '姝e父', }, { - name: '鏉庡洓', - user: 'admin', - email: 'admin@daa.com', - phone: '182111199328', - permission: '绠$悊鍛�', + value: 1, + label: '绂佺敤', }, { - name: '鐜嬩簲', - user: 'admin', - email: 'admin@daa.com', - phone: '182111199328', - permission: '绠$悊鍛�', + value: 2, + label: '鍒犻櫎', }, { - name: '璧垫皬', - user: 'admin', - email: 'admin@daa.com', - phone: '182111199328', - permission: '绠$悊鍛�', + value: 3, + label: '鐢宠', }, - { - name: '寮犱笁', - user: 'admin', - email: 'admin@daa.com', - phone: '182111199328', - permission: '绠$悊鍛�', + value: 4, + label: '鎷掓壒', }, ], + depList: [], + sexOpt: [ + { + value: 0, + label: '濂�', + }, + { + value: 1, + label: '鐢�', + }, + { + value: -1, + label: '鏈煡', + }, + ], + rules: { + uid: [ + { required: true, validator: validName, trigger: 'blur' }, + { + trigger: 'blur', + validator: (rule, value, callback) => { + var reg = new RegExp(/^[a-zA-Z0-9_]{0,15}$/); //瀛楃涓叉鍒欒〃杈惧紡 4鍒�14浣嶏紙瀛楁瘝锛屾暟瀛楋紝涓嬪垝绾匡紝鍑忓彿锛� + if (!reg.test(value)) { + callback( + new Error('璐﹀彿蹇呴』鐢卞瓧姣嶏紝鏁板瓧鎴栦笅鍒掔嚎,闀垮害涓嶅緱瓒呰繃16浣�') + ); + } else { + selectByUserid({ uid: value }).then((res) => { + if (res.result != null) { + this.isNewUser = false; + callback(new Error('璐﹀彿宸插瓨鍦�')); + } else { + this.isNewUser = true; + callback(); + } + }); + } + }, + }, + ], + pwd: [ + { + required: true, + message: '璇疯緭鍏ュ瘑鐮�', + transform: (value) => value, + trigger: 'blur', + }, + { + type: 'string', + message: '璇疯緭鍏ヤ笉鍖呭惈绌烘牸鐨勫瓧绗�', + trigger: 'blur', + transform(value) { + if (value && value.indexOf(' ') === -1) { + return value; + } else { + return false; + } + }, + }, + { + trigger: 'blur', + validator: (rule, value, callback) => { + var regex = new RegExp(''); + var passwordreg = + /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{8,20}$/; + if (!passwordreg.test(value)) { + callback( + new Error('瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�8-20浣�') + ); + } else { + callback(); + } + }, + }, + ], + checkPass: [ + { required: true, validator: validatePass, trigger: 'blur' }, + ], + adminPwd: [{ validator: validName, trigger: 'blur' }], + newPwd: [ + { + message: '璇疯緭鍏ュ瘑鐮�', + transform: (value) => value, + trigger: 'blur', + }, + { + type: 'string', + message: '璇疯緭鍏ヤ笉鍖呭惈绌烘牸鐨勫瓧绗�', + trigger: 'blur', + transform(value) { + if (value && value.indexOf(' ') === -1) { + return value; + } else { + return false; + } + }, + }, + { + trigger: 'blur', + validator: (rule, value, callback) => { + var regex = new RegExp(''); + var passwordreg = + /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{8,20}$/; + if (!passwordreg.test(value)) { + callback( + new Error('瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�8-20浣�') + ); + } else { + callback(); + } + }, + }, + ], + checkPwd: [{ validator: resetPass, trigger: 'blur' }], + }, }; }, methods: { + ...mapActions(['login', 'getpublickey']), + getUserInfo() { + queryDepTree() + .then((res) => { + if (res.code == 200) { + this.depList = this.treeData(res.result); + this.treeOptions = this.treeData(res.result); + } else { + this.$notify.error({ + title: res.code, + message: res.result, + }); + } + }) + .catch((res) => {}); + + queryPageUser({ + pageIndex: 1, + pageSize: 10, + }) + .then((res) => { + if (res.code == 200) { + this.tableData = res.result; + this.count = res.count; + } else { + this.$notify.error({ + title: res.code, + message: res.result, + }); + } + }) + .catch((res) => {}); + }, + treeData(source) { + let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + return cloneData.filter((father) => { + // 寰幆鎵�鏈夐」 + let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 + branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + }); + }, + //鏌ヨ閫夋嫨鍗曚綅 + handleChange(value) { + this.queryForm.depid = value; + }, + //鎼滅储鎸夐挳 + queryInfo() { + let searchData = { + uname: this.queryForm.uname.trim(), + depid: this.queryForm.depid, + pageIndex: this.pageIndex, + pageSize: this.pageSize, + }; + queryPageUser(searchData).then((res) => { + if (res.code == 200) { + this.tableData = res.result; + this.count = res.count; + } else { + console.log('鏌ヨ鎺ュ彛鎶ラ敊'); + this.$notify.error({ + title: res.code, + message: res.result, + }); + } + }); + }, + //閲嶇疆鎸夐挳 + resetInfo(formName) { + this.$refs[formName].resetFields(); + }, + //鏂板鎸夐挳 + showAddDialog() { + this.behavior = '鏂板鐢ㄦ埛'; + this.editForm = {}; + this.dialogFormVisible = true; + }, + cancelAdd(formName) { + this.editForm = {}; + this.isNewUser = false; + this.$refs[formName].resetFields(); + }, + sendAdd(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + // console.log(this.$store.state.key); + encrypt.setPublicKey(this.$store.state.key); + this.editForm.uid = encrypt.encrypt(this.editForm.uid); + this.editForm.pwd = encrypt.encrypt(this.editForm.pwd); + this.fullscreenLoading = true; + delete this.editForm.checkPass; + delete this.editForm.oldPwd; + insertUser(this.editForm) + .then((res) => { + setTimeout(() => { + this.fullscreenLoading = false; + if (res.code == 200) { + this.getUserInfo(); + this.$message({ + message: '娣诲姞鎴愬姛', + type: 'success', + }); + this.editForm = {}; + this.dialogFormVisible = false; + } + }, 500); + }) + .catch((res) => { + alert('淇敼澶辫触锛岃閲嶈瘯锛�'); + this.fullscreenLoading = false; + }); + } else { + console.log('error submit!!'); + return false; + } + }); + }, + //澶氶�� + handleSelectionChange(val) { + this.multipleSelection = val; + }, + //鍒犻櫎鎸夐挳 + deleteUserInfo() { + this.$confirm('姝ゆ搷浣滃皢鍒犻櫎宸查�変腑鐨勭敤鎴�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + var std = []; + for (var i in this.multipleSelection) { + std.push(this.multipleSelection[i].id); + } + deleteUser({ ids: std.toString() }) + .then((res) => { + if (res.code == 200) { + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!', + }); + this.multipleSelection = []; + this.getUserInfo(); + } else { + this.$message.error('鍒犻櫎澶辫触'); + } + }) + .catch(() => { + this.$message.error('鍒犻櫎澶辫触'); + this.multipleSelection = []; + }); + }) + .catch(() => { + this.$message('宸插彇娑堝垹闄�'); + }); + }, + //閲嶇疆瀵嗙爜 + editPwd() { + var std = []; + for (var i in this.multipleSelection) { + std.push(this.multipleSelection[i].id); + } + if (std.length == 0) { + alert('璇峰厛閫夋嫨鐢ㄦ埛'); + return; + } + this.pwdForm.ids = std; + this.resetPwd = true; + }, + cancelReset(formName) { + this.$refs[formName].resetFields(); + this.pwdForm.ids = []; + }, + sendReset(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + encrypt.setPublicKey(this.$store.state.key); + var data = { + adminPwd: encrypt.encrypt(this.pwdForm.adminPwd), + newPwd: encrypt.encrypt(this.pwdForm.newPwd), + ids: this.pwdForm.ids, + }; + this.fullscreenLoading = true; + updatePwd(data) + .then((res) => { + setTimeout(() => { + this.fullscreenLoading = false; + if (res.code == 200) { + this.getUserInfo(); + this.$message({ + message: '淇敼鎴愬姛', + type: 'success', + }); + this.pwdForm = { + adminPwd: '', + newPwd: '', + checkPwd: '', + ids: [], + }; + this.multipleSelection = []; + this.resetPwd = false; + } + }, 500); + }) + .catch((res) => { + alert('淇敼澶辫触锛岃閲嶈瘯锛�'); + this.fullscreenLoading = false; + }); + } else { + return false; + } + }); + }, + //缂栬緫鎸夐挳 + editInfo(row) { + delete row.updateTime; + delete row.updateUser; + row.pwd = ''; + this.initialForm = JSON.stringify(row); + this.behavior = '淇敼淇℃伅'; + this.editForm = JSON.parse(JSON.stringify(row)); + this.dialogFormVisible = true; + }, + //缂栬緫閫夋嫨鍗曚綅 + editChange(value) { + this.editForm.depid = value; + }, + //鍏抽棴寮瑰嚭妗� + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then((_) => { + this.editForm = { + uid: '', + uname: '', + oldPwd: '', + pwd: '', + checkPass: '', + sex: null, + natives: '', + depid: null, + idcard: '', + job: '', + edu: '', + addr: '', + email: '', + contact: '', + status: null, + bak: '', + salt: '', + }; + this.pwdForm = { + adminPwd: '', + newPwd: '', + checkPwd: '', + ids: [], + }; + + done(); + }) + .catch((_) => {}); + }, + //鎻愪氦缂栬緫 + sendEdit(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + encrypt.setPublicKey(this.$store.state.key); + this.editForm.uid = encrypt.encrypt(this.editForm.uid); + this.editForm.salt = encrypt.encrypt(this.editForm.pwd); + this.editForm.pwd = encrypt.encrypt(this.editForm.oldPwd); + this.fullscreenLoading = true; + delete this.editForm.checkPass; + delete this.editForm.oldPwd; + updateUser(this.editForm) + .then((res) => { + setTimeout(() => { + this.fullscreenLoading = false; + if (res.code == 200) { + this.getUserInfo(); + this.$message({ + message: '淇敼鎴愬姛', + type: 'success', + }); + this.editForm = {}; + this.dialogFormVisible = false; + } + }, 500); + }) + .catch((res) => { + alert('淇敼澶辫触锛岃閲嶈瘯锛�'); + this.fullscreenLoading = false; + }); + } else { + console.log('error submit!!'); + return false; + } + }); + }, + cancelEdit() { + this.$nextTick(() => { + this.editForm = JSON.parse(this.initialForm); + }); + }, + handleSizeChange(val) { - console.log(`姣忛〉 ${val} 鏉); + // console.log(`姣忛〉 ${val} 鏉); + this.pageSize = val; + this.queryInfo(); }, handleCurrentChange(val) { - console.log(`褰撳墠椤�: ${val}`); + // console.log(`褰撳墠椤�: ${val}`); + this.pageIndex = val; + this.currentPage = val; + this.queryInfo(); }, - onSubmit() { - console.log('submit!'); + showPermsMenu(res) { + switch (res.tag) { + case '/delete': + this.menuStatus.delete = true; + break; + case '/insert': + this.menuStatus.insert = true; + break; + case '/update': + this.menuStatus.update = true; + break; + } }, - resetForm() {}, + async getIsAdmin() { + const data = await userSelectForIsAdmin(); + if (data.code != 200) { + this.setbatchFlag = false; + return; + } + this.setbatchFlag = data.result; + }, }, - created() {}, + + mounted() { + this.getIsAdmin(); + this.getUserInfo(); + this.getpublickey(); + }, + created() { + var val = this.$store.state.currentPerms; + var permsEntity = this.$store.state.permsEntity; + for (var i = 0; i < permsEntity.length; i++) { + if (permsEntity[i].perms == val) { + this.showPermsMenu(permsEntity[i]); + } + } + }, }; </script> +<style> +/deep/ .el-table__fixed-right { + height: 100% !important; +} +</style> <style lang="less" scoped> //@import url(); 寮曞叆鍏叡css绫� -.userManagement_box { +.userInfo_box { + border-radius: 10px; + height: 100%; + + box-sizing: border-box; + .el-input { + width: 300px; + } .inquire { - padding: 10px; + position: relative; + height: 110px; + overflow: auto; + padding: 8px; + margin-top: 20px; + border-radius: 5px; border: 1px solid rgb(202, 201, 204); margin-bottom: 20px; - /deep/ .el-input__inner { - background-color: transparent !important; - border: 1px solid; - color: white; - } - /deep/ .el-button { - background: linear-gradient(180deg, #002992, #080472); - border: 1px solid #000000; - border-radius: 3px; - color: white; - } - /deep/.el-form-item__label { - color: white; + .el-form-item { + margin: 5px; } } .table_box { + height: 470px; padding: 10px; border-radius: 5px; border: 1px solid rgb(202, 201, 204); - /deep/.el-input__inner { - background-color: transparent !important; - border: 1px solid; - color: white; - } - /deep/.el-pagination__total { - color: white; - } - /deep/.el-pagination__jump { - color: white; - } - /deep/.el-pager li.active { - color: #1890ff; - } - /deep/.el-pager li { - color: white; - background: transparent; - } - /deep/.el-pager li { - color: white; - } - /deep/.btn-prev { - background: transparent; - } - /deep/.btn-next { - background: transparent; - } + /*淇敼table 琛ㄤ綋鐨勮儗鏅鑹插拰鏂囧瓧棰滆壊*/ /deep/ .el-table { background-color: transparent; @@ -226,7 +1166,7 @@ .el-table__body-wrapper::-webkit-scrollbar { width: 5px; /*婊氬姩鏉″搴�*/ - height: 10px; + height: 5px; /*婊氬姩鏉¢珮搴�*/ } /*瀹氫箟婊氬姩鏉¤建閬� 鍐呴槾褰�+鍦嗚*/ @@ -244,6 +1184,79 @@ } } } + .el-dialog { + .el-form-item { + margin-bottom: 20px; + // width: 48%; + /deep/.el-form-item__error { + width: 300px; + } + .isNewUser { + display: inline-block; + width: 75px; + margin-left: 5px; + img { + width: 1em; + } + } + .el-cascader, + .el-select { + width: 300px; + } + } + } + /deep/.el-form-item__label { + color: white; + } + /deep/.el-input__inner { + background-color: transparent !important; + border: 1px solid; + color: white; + } + /deep/ .el-dialog { + background: #303030; + } + /deep/.el-range-editor.is-active, + .el-range-editor.is-active:hover, + .el-select .el-input.is-focus .el-input__inner { + border: 1px solid; + } + /deep/.el-dialog__title { + color: white; + } + /deep/ .el-dialog__body { + padding: 10px 0 0 0; + } + .pagination_box { + margin-top: 20px; + /deep/.el-input__inner { + background-color: transparent !important; + border: 1px solid; + color: white; + } + /deep/.el-pagination__total { + color: white; + } + /deep/.el-pagination__jump { + color: white; + } + /deep/.el-pager li.active { + color: #1890ff; + } + /deep/.el-pager li { + color: white; + background: transparent; + } + /deep/.el-pager li { + color: white; + } + /deep/.btn-prev { + background: transparent; + } + /deep/.btn-next { + background: transparent; + } + } } </style> <style> -- Gitblit v1.9.3