From 366612bd8e8b88d02a98edf508f96d7add23ff9f Mon Sep 17 00:00:00 2001 From: pengwei <2071057782@qq.com> Date: 星期日, 27 四月 2025 16:03:38 +0800 Subject: [PATCH] 功能新增 --- 项目代码/client/src/views/tts/UserManagement/Usermanagement.vue | 685 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 504 insertions(+), 181 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/UserManagement/Usermanagement.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/UserManagement/Usermanagement.vue" index 2892d82..d988f4e 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/UserManagement/Usermanagement.vue" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/UserManagement/Usermanagement.vue" @@ -39,7 +39,7 @@ size="small" /> </div> - <!-- <div class="serch_box"> + <div class="serch_box"> <div class="serchb"> <el-select v-model="queryForm.selectType" @@ -56,11 +56,11 @@ </el-select> </div> <input - v-model="queryForm.selectName" + v-model="queryForm.selectInput" placeholder="璇疯緭鍏ュ叧閿瘝鎼滅储" style="border-left: 0.06rem solid #e2e2e2" /> - </div> --> + </div> <el-button @click="handleQuery" type="primary" @@ -87,7 +87,7 @@ display: flex; align-items: center; " - ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon + ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon >鏂板缓</el-button > <!-- 鐢ㄦ埛瑙掕壊鏂板缓 --> @@ -103,10 +103,11 @@ display: flex; align-items: center; " - ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon + ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon >鏂板缓</el-button > <el-button + v-if="isactive != 3" size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem" @click="printExcel" @@ -123,6 +124,7 @@ <div style="margin-top: 1rem; height: 100%"> <!-- 鐢ㄦ埛鍒楄〃 --> <el-table + empty-text="鏆傛棤鏁版嵁" height="450" v-if="isactive == 1" :data="tableData" @@ -139,7 +141,7 @@ fontSize: '0.88rem', height: '3rem', }" - @select="UserSelectionChange" + @selection-change="UserSelectionChange" > <el-table-column type="selection" align="center" min-width="1%" /> <el-table-column @@ -181,16 +183,29 @@ <template #default="scope"> <el-image style="width: 70px; height: 70px" - :src="scope.row.headImageUrl" + :src="'http://115.159.85.185:9098' + scope.row.headImageUrl" show-progress :initial-index="4" fit="cover" /> </template> </el-table-column> + <el-table-column + prop="groupID" + label="鐧惧害浜戝垎缁�" + align="center" + min-width="3%" + /> <el-table-column label="鏄惁鍚敤" align="center" min-width="2%"> <template #default="scope"> <el-switch + :disabled=" + userInfo.userName == 'admin' || userInfo.roleId == '1' + ? scope.row.userName == 'admin' || scope.row.user_Id == '1' + : scope.row.userName == 'admin' || + scope.row.user_Id == '1' || + scope.row.userName != userInfo.userName + " v-model="scope.row.enable" :active-value="1" :inactive-value="0" @@ -206,14 +221,26 @@ /> <el-table-column label="鎿嶄綔" align="center" min-width="3%"> <template #default="scope"> - <el-button size="small" type="text" @click="Edit(scope.row)" + <el-button + size="small" + type="text" + @click="Edit(scope.row)" + :disabled="scope.row.isdisabled" >缂栬緫</el-button > <el-button size="small" type="text" + :disabled="scope.row.isdisabled" @click="Editpassword(scope.row)" >淇敼瀵嗙爜</el-button + > + <el-button + size="small" + type="text" + @click="deletUser(scope.row)" + :disabled="scope.row.isdisabled" + >鍒犻櫎</el-button > </template> </el-table-column> @@ -221,6 +248,7 @@ <!-- 鐢ㄦ埛瑙掕壊 --> <el-table + empty-text="鏆傛棤鏁版嵁" height="450" v-if="isactive == 2" :data="grideData" @@ -237,19 +265,21 @@ fontSize: '0.88rem', height: '3rem', }" - @select="RoleSelectionChange" + @selection-change="RoleSelectionChange" > <el-table-column type="selection" align="center" /> <el-table-column prop="roleName" label="瑙掕壊鍚嶇О" align="center" /> <el-table-column prop="name" label="瑙掕壊鏉冮檺" align="center"> <template #default="scope"> <span - @click=" - router.replace({ - path: `/permission`, - state: { info: JSON.stringify(scope.row) }, - }) + v-if=" + !(userInfo.userName == 'admin' || userInfo.roleId == '1' + ? scope.row.userName == 'admin' || scope.row.user_Id == '1' + : scope.row.userName == 'admin' || + scope.row.user_Id == '1' || + scope.row.userName != userInfo.userName) " + @click="toDetail(scope.row)" style="color: #4386ff; cursor: pointer" >绠$悊</span > @@ -259,6 +289,9 @@ <el-table-column label="鏄惁鍚敤" align="center"> <template #default="scope"> <el-switch + :disabled=" + !(userInfo.userName == 'admin' || userInfo.roleId == '1') + " v-model="scope.row.enable" :active-value="1" :inactive-value="0" @@ -270,6 +303,13 @@ <el-table-column label="鎿嶄綔" align="center"> <template #default="scope"> <span + v-if=" + !(userInfo.userName == 'admin' || userInfo.roleId == '1' + ? scope.row.userName == 'admin' || scope.row.user_Id == '1' + : scope.row.userName == 'admin' || + scope.row.user_Id == '1' || + scope.row.userName != userInfo.userName) + " style="color: blue; font-size: 0.88rem; cursor: pointer" @click="EditRole(scope.row)" >缂栬緫</span @@ -305,9 +345,9 @@ layout="prev, pager, next" :current-page="pageQuery.page" :page-size="pageQuery.rows" - :total="pageTotal" - @size-change="RoleSizeChange" - @current-change="RoleCurrentChange" + :total="pageTotal1" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" /> </div> </div> @@ -320,6 +360,7 @@ :before-close="handleClose" :show-close="false" :align-center="true" + @close="resetForm(formUserRef)" > <template #title> <div @@ -339,11 +380,13 @@ :model="formUser" label-width="auto" label-position="top" - ref="formRef" + :rules="rules" + ref="formUserRef" + :hide-required-asterisk="true" > <el-row :gutter="20"> <el-col :span="8"> - <el-form-item prop="userName"> + <el-form-item prop="username"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -355,13 +398,13 @@ </template> <el-input size="small" - v-model="formUser.userName" + v-model="formUser.username" placeholder="璇疯緭鍏�" /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item prop="userTrueName"> + <el-form-item prop="usertruename"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -373,13 +416,13 @@ </template> <el-input size="small" - v-model="formUser.userTrueName" + v-model="formUser.usertruename" placeholder="璇疯緭鍏�" /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item prop="phoneNo"> + <el-form-item prop="phoneno"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -391,7 +434,7 @@ </template> <el-input size="small" - v-model="formUser.phoneNo" + v-model="formUser.phoneno" placeholder="璇疯緭鍏�" /> </el-form-item> @@ -399,23 +442,49 @@ </el-row> <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="roleid"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> <span style="font-size: 0.88rem; color: black; font-weight: bold" - >鐢ㄦ埛瑙掕壊</span - > + >鐢ㄦ埛瑙掕壊 + </span> </div> </template> <el-select - v-model="formUser.role_Id" + v-model="formUser.roleid" placeholder="璇烽�夋嫨" size="small" > <el-option + :disabled="item.roleId == 1" v-for="item in groupOptions" + :key="item.roleId" + :label="item.roleName" + :value="item.roleId" + /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item prop="rolename"> + <template #label> + <div style="display: flex; align-items: flex-end"> + <span style="color: red; margin-right: 0.2rem">*</span> + <span + style="font-size: 0.88rem; color: black; font-weight: bold" + >鐢ㄦ埛绫诲瀷 + </span> + </div> + </template> + <el-select + v-model="formUser.rolename" + placeholder="璇烽�夋嫨" + size="small" + > + <el-option + v-for="item in roleNameList" :key="item.value" :label="item.label" :value="item.value" @@ -424,7 +493,7 @@ </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="enable"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -458,25 +527,33 @@ <span style="font-size: 0.88rem; color: black; font-weight: bold" >浜鸿劯鍥剧墖</span - ><span + > + <!-- <span style=" color: rgba(255, 0, 0, 1); font-size: 0.75rem; margin-left: 0.5rem; " >娉細鏈�澶氬彲涓婁紶涓夊紶锛屽浘鐗囬渶瑕佹瑙勭殑浜哄儚璇佷欢鐓�</span - > + > --> </div> </template> <el-upload + ref="uploadRef" + name="files" class="avatar-uploader" - action="#" + action="http://115.159.85.185:9098/api/User/SaveFiles" list-type="picture-card" - :auto-upload="false" + limit="1" + :auto-upload="true" @before-upload="beforeAvatarUpload" - :on-change="handleAvatarSuccess" + :on-success="handleAvatarSuccess" + :file-list="fileList != [] ? fileList : []" + :class="{ hide: showUpload }" > - <el-icon><Plus /></el-icon> + <el-icon> + <Plus /> + </el-icon> <template #file="{ file }"> <div> <img @@ -496,14 +573,18 @@ class="el-upload-list__item-delete" @click="handleDownload(file)" > - <el-icon size="15"><Download /></el-icon> + <el-icon size="15"> + <Download /> + </el-icon> </span> <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)" > - <el-icon size="15"><Delete /></el-icon> + <el-icon size="15"> + <Delete /> + </el-icon> </span> </span> </div> @@ -525,7 +606,7 @@ <el-button size="small" type="primary" - @click="saveObj" + @click="saveObj(formUserRef)" style="height: 2rem; font-size: 0.88rem" > 淇濆瓨 @@ -558,7 +639,7 @@ </div> </template> <el-form - :model="formpassword" + :model="newobj" label-width="auto" label-position="top" ref="formpasswordRef" @@ -585,11 +666,11 @@ </div> </el-col> </el-row> - <el-form-item prop="password"> + <el-form-item prop="newPwd"> <el-input style="margin-top: 1rem" size="large" - v-model="formpassword.password" + v-model="newobj.newPwd" placeholder="璇疯緭鍏�" /> </el-form-item> @@ -623,6 +704,7 @@ :before-close="handleClose" :show-close="false" :align-center="true" + @close="resetForm1(formRoleRef)" > <template #title> <div @@ -700,7 +782,6 @@ </el-dialog> <!-- 鏉冮檺绠$悊寮瑰嚭妗� --> - <el-dialog v-model="imgdialogVisible"> <div style=" @@ -717,15 +798,20 @@ </div> </template> <script setup> -import { ref, reactive, onMounted } from "vue"; +import { ref, reactive, onMounted, toRef } from "vue"; import { ElMessage, ElMessageBox } from "element-plus"; import { - GetUserList, AddUser, UpdateUser, DelApi, ExportApi, ExportApi1, + UpdatePwd, + NewGetUserList, + AdduserData, + NewUpdateUser, + DeleteUserData, + FaceGetPageData, } from "@/api/user"; import { useRouter } from "vue-router"; import { formatTime } from "@/utils/index.js"; @@ -736,17 +822,20 @@ UpdateRoleApi, DeleteRoleApi, } from "@/api/role"; -const queryForm = reactive({ +let obj = { selectName: "", selectTime: [], // 鏃堕棿鑼冨洿 selectType: "", selectInput: "", -}); +}; +const queryForm = toRef({ ...obj }); const router = useRouter(); const tableData = ref([]); -const grideData = ref([{ id: 1 }]); -const formRef = ref(); +const grideData = ref([]); +const faceData = ref([]); +//鏂板缓鐢ㄦ埛ref +const formUserRef = ref(); const options = ref([]); const props = { multiple: true }; const isoptins = ref([ @@ -756,70 +845,73 @@ }, { value: 1, label: "鏄�" }, ]); +const showUpload = ref(false); //鍒嗙粍 -const groupOptions = ref([ - { value: 1, label: "瓒呯骇绠$悊鍛�" }, - { value: 2, label: "璐ㄦ缁�" }, - { value: 3, label: "鐢垫皵缁�" }, - { value: 4, label: "鏈烘缁�" }, - { value: 5, label: "鍦版矡缁�" }, -]); -const table = ref(false); +const groupOptions = ref([]); +const groupIDOptions = ref([]); const formUser = ref({ - user_Id: undefined, - userName: "", - role_Id: 2, - roleName: "", - phoneNo: "", - remark: "", - userPwd: "123456", - userTrueName: "", - dept_Id: 0, + id: undefined, + username: "", + phoneno: "", + roleid: 2, + rolename: "", enable: 1, - headImageUrl: "", + path: "", + usertruename: "", }); -const userform = reactive({ - userName: "", - description: "", +const rules = reactive({ + username: { + required: true, + message: "璇疯緭鍏ョ敤鎴峰悕", + trigger: "blur", + }, + roleid: { + required: true, + message: "璇烽�夋嫨瑙掕壊", + trigger: "change", + }, + newPwd: [ + { + required: true, + message: "璇疯緭鍏ュ瘑鐮�", + trigger: "blur", + }, + ], + realName: { + required: true, + message: "璇疯緭鍏ュ鍚�", + trigger: "blur", + }, + phoneno: { + required: true, + message: "璇疯緭鍏ユ墜鏈哄彿", + trigger: "blur", + }, + usertruename: { + required: true, + message: "璇疯緭鍏ョ湡瀹炲鍚�", + trigger: "blur", + }, }); + const formpasswordRef = ref(); const isactive = ref(1); -const claimdialogVisible = ref(false); const dialogVisible = ref(false); const imgdialogVisible = ref(false); const dialogImageUrl = ref(""); +const userInfo = ref(); //鐢ㄦ埛淇℃伅淇敼瀵嗙爜寮瑰嚭妗� const dialogVisible1 = ref(false); //鐢ㄦ埛瑙掕壊鏂板缓 const dialogVisible2 = ref(false); -const TorquedialogVisible = ref(false); -//鍒嗛〉璇锋眰鍙傛暟 -const pageQuery = ref({ - page: 1, //褰撳墠椤甸潰 - rows: 10, //姣忛〉鏄剧ず鏉℃暟 - order: "desc", //鎺掑簭鏂瑰紡 - sort: "createDate", //鎺掑簭瀛楁 - wheres: "", //鏉′欢鏌ヨ -}); - -const changeactive = (index) => { - isactive.value = index; - if (isactive.value == 1) { - selectoptions.value = userOptions; - initData(); - } else { - selectoptions.value = roleOptions; - getRole(); - } -}; - +//绛涢�夋潯浠� const userOptions = [ { - value: "userName", + value: "username", label: "鐧诲綍璐﹀彿", }, { - value: "userTrueName", + value: "usertruename", label: "鐪熷疄濮撳悕", }, { @@ -827,7 +919,18 @@ label: "鑱旂郴鏂瑰紡", }, ]; - +const fileList = ref([]); +const roleNameList = ref([ + { value: "鐢垫皵璐ㄦ", label: "鐢垫皵璐ㄦ" }, + { value: "鏈烘璐ㄦ", label: "鏈烘璐ㄦ" }, + { value: "鍦版矡璐ㄦ", label: "鍦版矡璐ㄦ" }, + { value: "鐢垫皵鍔涚煩", label: "鐢垫皵鍔涚煩" }, + { value: "鐢垫皵杈呭姪", label: "鐢垫皵杈呭姪" }, + { value: "鏈烘鍔涚煩", label: "鏈烘鍔涚煩" }, + { value: "鏈烘杈呭姪", label: "鏈烘杈呭姪" }, + { value: "鍦版矡鍔涚煩", label: "鍦版矡鍔涚煩" }, + { value: "鍦版矡杈呭姪", label: "鍦版矡杈呭姪" }, +]); const roleOptions = [ { value: "roleName", @@ -836,116 +939,239 @@ ]; const selectoptions = ref([]); selectoptions.value = userOptions; +//鐢ㄦ埛淇敼瀵嗙爜 const formpassword = ref({ - password: "", + oldPwd: "", + newPwd: "", }); const passwordrules = reactive({ - password: { - required: true, - message: "璇疯緭鍏ュ瘑鐮�", - trigger: "blur", - }, + newPwd: [ + { + required: true, + message: "璇疯緭鍏ュ瘑鐮�", + trigger: "blur", + }, + { + min: 6, + max: 12, + message: "瀵嗙爜闀垮害鍦� 6 鍒� 12 涓瓧绗�", + trigger: "blur", + }, + ], }); + +const uploadRef = ref(); + const pageTotal = ref(0); -//鐧诲綍璁板綍 +const pageTotal1 = ref(0); +const pageTotal2 = ref(0); +//鐢ㄦ埛鍒楄〃 const initData = () => { // 鏌ヨ鏉′欢 - const startTime = formatTime(queryForm.selectTime[0]); - const endTime = formatTime(queryForm.selectTime[1]); + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); const filter = [ { - name: "", - value: queryForm.selectType, - displayType: "int", + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "like", }, { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, { name: "createDate", value: endTime, displayType: "LessOrEqual" }, ]; - GetUserList({ - ...pageQuery.value, - filter, + NewGetUserList({ + pageIndex: pageQuery.value.page, + pageSize: pageQuery.value.rows, + searchKeyword: queryForm.value.selectInput, + startDate: startTime, + endDate: endTime, }).then((res) => { - tableData.value = res.rows; - pageTotal.value = res.total; + tableData.value = res.data.items.map((item) => { + return { + ...item, + isdisabled: + userInfo.value.userName == "admin" || userInfo.value.roleId == "1" + ? item.userName == "admin" || item.user_Id == "1" + : item.userName == "admin" || + item.user_Id == "1" || + item.userName != userInfo.value.userName, + }; + }); + pageTotal.value = res.data.totalCount; }); }; +//鍒嗛〉璇锋眰鍙傛暟 +const pageQuery = ref({ + page: 1, //褰撳墠椤甸潰 + rows: 10, //姣忛〉鏄剧ず鏉℃暟 + order: "desc", //鎺掑簭鏂瑰紡 + sort: "", //鎺掑簭瀛楁 + wheres: "", //鏉′欢鏌ヨ +}); +//鍒嗛〉璇锋眰鍙傛暟 +const pageQuery1 = ref({ + page: 1, //褰撳墠椤甸潰 + rows: 10, //姣忛〉鏄剧ず鏉℃暟 + order: "desc", //鎺掑簭鏂瑰紡 + sort: "", //鎺掑簭瀛楁 + wheres: "", //鏉′欢鏌ヨ +}); + +//鍒嗛〉璇锋眰鍙傛暟 +const pageQuery2 = ref({ + page: 1, //褰撳墠椤甸潰 + rows: 10, //姣忛〉鏄剧ず鏉℃暟 + order: "desc", //鎺掑簭鏂瑰紡 + sort: "", //鎺掑簭瀛楁 + wheres: "", //鏉′欢鏌ヨ +}); //鏁版嵁妫�绱簨浠� const handleQuery = () => { - pageQuery.value.page = 1; - initData(); + if (isactive.value == 1) { + pageQuery.value.page = 1; + initData(); + } else if (isactive.value == 2) { + pageQuery1.value.page = 1; + getRole(); + } else { + pageQuery2.value.page = 1; + GetFacePageData(); + } }; - +//閲嶇疆鏌ヨ鏉′欢 const resetQuery = () => { - queryForm.selectName = ""; - queryForm.selectInput = ""; - queryForm.selectTime = []; - queryForm.selectType = ""; - pageQuery.value.page = 1; - initData(); + queryForm.value = Object.assign({}, obj); + if (isactive.value == 1) { + pageQuery.value.page = 1; + initData(); + } else if (isactive.value == 2) { + pageQuery1.value.page = 1; + getRole(); + } else { + pageQuery2.value.page = 1; + GetFacePageData(); + } }; //鍒嗛〉椤甸潰澶у皬鏀瑰彉 const handleSizeChange = (val) => { pageQuery.value.rows = val; - initData(); + if (isactive.value == 1) { + initData(); + } else if (isactive.value == 2) { + getRole(); + } else { + GetFacePageData(); + } }; //鍒嗛〉椤甸潰鏀瑰彉 const handleCurrentChange = (val) => { pageQuery.value.page = val; - initData(); + if (isactive.value == 1) { + initData(); + } else if (isactive.value == 2) { + getRole(); + } else { + GetFacePageData(); + } }; -//鍒嗛〉椤甸潰澶у皬鏀瑰彉 -const RoleSizeChange = (val) => { - pageQuery.value.rows = val; - getRole(); +const handleAvatarSuccess = (response, file, fileList) => { + formUser.value.path = response.data; + if (fileList.length >= 1) { + showUpload.value = true; + } +}; +//閲嶇疆琛ㄥ崟 +const resetForm = (formEl) => { + if (!formEl) return; + formEl.resetFields(); + formUser.value = { + username: "", + phoneno: "", + roleid: 2, + rolename: "", + enable: 1, + path: "", + user_Id: undefined, + }; + fileList.value = []; +}; +const resetForm1 = (formEl) => { + if (!formEl) return; + formEl.resetFields(); + formRole.value = { + roleName: "", + description: "", + }; +}; +const resetForm2 = (formEl) => { + if (!formEl) return; + formEl.resetFields(); + formRole.value = { + roleName: "", + description: "", + }; }; -//鍒嗛〉椤甸潰鏀瑰彉 -const RoleCurrentChange = (val) => { - pageQuery.value.page = val; - getRole(); -}; const handlePictureCardPreview = (uploadFile) => { dialogImageUrl.value = uploadFile.url; imgdialogVisible.value = true; }; -const handleAvatarSuccess = (val) => { - console.log(val); +const handleRemove = (file, fileList1) => { + fileList.value = []; + //绉婚櫎宸蹭笂浼犵殑鍥剧墖 + formUser.value.path = ""; + if (fileList.value.length < 1) { + showUpload.value = false; + } }; + const beforeAvatarUpload = (val) => { console.log(val); }; + //鏂板缓鐢ㄦ埛璐﹀彿 -const saveObj = () => { - formRef.value.validate((valid) => { +const saveObj = async (formEl) => { + // submitUpload(); + if (!formEl) return; + await formEl.validate((valid, fields) => { if (valid) { - if (formUser.value.user_Id != undefined) { - UpdateUser(formUser.value).then((res) => { + if (formUser.value.id != undefined) { + NewUpdateUser(formUser.value).then((res) => { ElMessage({ message: "淇敼鎴愬姛", type: "success" }); dialogVisible.value = false; initData(); }); } else { - AddUser(formUser.value).then((res) => { + AdduserData(formUser.value).then((res) => { ElMessage({ message: "鎻愪氦鎴愬姛", type: "success" }); dialogVisible.value = false; initData(); }); } + } else { + console.log("error submit!", fields); } }); }; //鏄惁鍚敤 const changeSwitch = (val) => { - let data = Object.assign({}, val); - console.log(data); - UpdateUser(data).then((res) => { + let data = { + id: val.user_Id, + username: val.userName, + phoneno: val.phoneNo, + roleid: val.role_Id, + rolename: val.roleName, + enable: val.enable, + path: val.headImageUrl, + usertruename: val.userTrueName, + }; + NewUpdateUser(data).then((res) => { ElMessage({ message: "淇敼鎴愬姛", type: "success" }); dialogVisible.value = false; initData(); }); - console.log(val); }; // 鐢ㄦ埛瑙掕壊鏄惁鍚敤 const changeRoleSwitch = (val) => { @@ -958,26 +1184,51 @@ }; //缂栬緫鐢ㄦ埛璐﹀彿 const Edit = (val) => { - console.log(val); - let obj = Object.assign({}, val); + let obj = { + id: val.user_Id, + username: val.userName, + phoneno: val.phoneNo, + roleid: val.role_Id, + rolename: val.roleName, + enable: val.enable, + path: val.headImageUrl, + usertruename: val.userTrueName, + }; + formUser.value = { + ...obj, + }; + if (obj.path != "") { + fileList.value = [ + { + name: "1", + url: "http://115.159.85.185:9098" + obj.path, + }, + ]; + } + dialogVisible.value = true; - formUser.value = obj; }; const newobj = ref({}); //淇敼瀵嗙爜 const Editpassword = (val) => { + let obj = Object.assign({}, val); + formUser.value = obj; formpassword.value = val; - newobj.value = val; + newobj.value = Object.assign({}, val); dialogVisible1.value = true; }; //淇濆瓨淇敼瀵嗙爜 const savePassword = async (formEl) => { - let obj = Object.assign({}, newobj); - obj.password = formpassword.value.password; + let obj = Object.assign({}, newobj.value); + let formdata = { + id: obj.user_Id, + oldPwd: obj.userPwd, + newPwd: obj.newPwd, + }; if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { - UpdateUser(obj).then((res) => { + UpdatePwd(formdata).then((res) => { ElMessage({ message: "淇敼瀵嗙爜鎴愬姛", type: "success" }); dialogVisible1.value = false; initData(); @@ -1003,7 +1254,10 @@ const formRole = ref({ roleName: "", description: "", + createDate: formatTime(new Date()), //鍒涘缓鏃堕棿 + creater: JSON.parse(localStorage.getItem("user")).userName, //鍒涘缓浜� }); + //鏂板缓瑙掕壊 const AddRole = () => { Roletype.value = "鏂板缓"; @@ -1040,42 +1294,66 @@ formRole.value = obj; dialogVisible2.value = true; }; +//鑾峰彇瑙掕壊 const getRole = () => { - GetPageDataApi({ - page: 1, - rows: 10, - total: 100, - tableName: "", - sort: "", - order: "", - wheres: "", - export: true, - value: "", - filter: [ - { - name: "string", - value: "string", - displayType: "string", - }, - ], - }).then((res) => { - grideData.value = res.rows; - pageTotal.value = res.total; - }); -}; -const printExcel = () => { - // 鏌ヨ鏉′欢 - const startTime = formatTime(queryForm.selectTime[0]); - const endTime = formatTime(queryForm.selectTime[1]); + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); const filter = [ { - name: queryForm.selectType, - value: queryForm.selectInput, - displayType: "String", + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "like", + }, + { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, + { name: "createDate", value: endTime, displayType: "LessOrEqual" }, + ]; + GetPageDataApi({ ...pageQuery1.value, filter }).then((res) => { + grideData.value = res.rows; + pageTotal1.value = res.total; + groupOptions.value = res.rows; + }); +}; + +//鍒犻櫎鐢ㄦ埛 +const deletUser = (val) => { + ElMessageBox.confirm("纭鍒犻櫎璇ョ敤鎴峰悧锛�", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + DeleteUserData({ + userAccount: val.userName, + }).then((res) => { + ElMessage({ + type: "success", + message: "鍒犻櫎鎴愬姛", + }); + initData(); + }); + }) + .catch(() => { + ElMessage({ + type: "info", + message: "鍙栨秷鍒犻櫎", + }); + }); +}; + +//鎵撳嵃鏁版嵁 +const printExcel = () => { + // 鏌ヨ鏉′欢 + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); + const filter = [ + { + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "like", }, { name: "pustatus", - value: queryForm.selectName, + value: queryForm.value.selectName, displayType: "String", }, { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, @@ -1094,6 +1372,19 @@ }); } }; +//鍒囨崲椤甸潰 +const changeactive = (index) => { + isactive.value = index; + if (isactive.value == 1) { + selectoptions.value = userOptions; + initData(); + } else if (isactive.value == 2) { + selectoptions.value = roleOptions; + getRole(); + } else { + GetFacePageData(); + } +}; //鎵归噺鍒犻櫎 const ids = ref([]); @@ -1106,6 +1397,10 @@ ids.value = val.map((item) => item.roleId); }; const deleteAll = () => { + if (ids.value.includes(1)) { + ElMessage({ message: "瓒呯骇绠$悊鍛樹笉鑳藉垹闄�", type: "error" }); + return; + } if (ids.value.length == 0) { ElMessage({ message: "璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁", type: "error" }); return; @@ -1123,24 +1418,35 @@ } }; +//绠$悊 +//璺敱璺宠浆 +const toDetail = (row) => { + router.push({ name: "permission", state: { info: JSON.stringify(row) } }); +}; onMounted(() => { initData(); + getRole(); + userInfo.value = JSON.parse(localStorage.getItem("user")); }); </script> <style lang="scss" scoped> .Usermanagement { display: flex; + flex-direction: column; background-color: #fff; + .content { width: 100%; display: flex; flex-direction: column; + .checkbox { width: 11rem; display: flex; justify-content: space-between; margin-top: 1rem; margin-left: 1.31rem; + .item { width: 5rem; height: 1.88rem; @@ -1152,20 +1458,24 @@ line-height: 1.88rem; cursor: pointer; } + .isactive { background-color: rgba(16, 16, 16, 1); color: rgba(255, 255, 255, 1); } } + .serch { display: flex; margin-top: 1.31rem; align-items: center; + .time_box { display: flex; align-items: center; text-align: center; margin-left: 0.98rem; + .time { box-sizing: border-box; width: 6.88rem; @@ -1179,12 +1489,14 @@ justify-content: center; } } + .serch_box { display: flex; align-items: center; text-align: center; margin-left: 0.98rem; border-radius: 0.38rem; + .serchb { box-sizing: border-box; width: 6.88rem; @@ -1195,6 +1507,7 @@ align-items: center; justify-content: center; } + input { box-sizing: border-box; outline: none; @@ -1207,6 +1520,7 @@ } } } + .btns { display: flex; justify-content: space-between; @@ -1217,17 +1531,20 @@ box-sizing: border-box; } } + .my-header { height: 3.84rem; display: flex; justify-content: space-between; border-bottom: 0.06rem solid rgba(233, 233, 233, 1); } + .avatar-uploader .avatar { width: 7rem; height: 7rem; display: block; } + :deep(.avatar-uploader .el-upload) { width: 7rem; height: 7rem; @@ -1238,10 +1555,12 @@ overflow: hidden; transition: var(--el-transition-duration-fast); } + :deep(.el-upload-list__item) { width: 7rem; height: 7rem; } + .avatar-uploader .el-upload:hover { border-color: var(--el-color-primary); } @@ -1254,13 +1573,17 @@ text-align: center; } } + +:deep(.hide .el-upload--picture-card) { + display: none; +} </style> <style> -.confirmButtonClass { +/* .confirmButtonClass { margin-right: 10px; } .el-message-box .el-message-box__btns { flex-direction: row-reverse !important; justify-content: normal !important; -} +} */ </style> -- Gitblit v1.9.3