From c7093edbf1fb3c91107c457ea13935305e1a9458 Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期五, 05 七月 2024 14:58:50 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/User/userlist.vue | 187 ++++++++++++++++++---------------------------- 1 files changed, 72 insertions(+), 115 deletions(-) diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue index ecd91ed..8e97491 100644 --- a/UI-Project/src/views/User/userlist.vue +++ b/UI-Project/src/views/User/userlist.vue @@ -5,11 +5,13 @@ const router = useRouter() const add = ref(false) const adda = ref(false) -const editingUser = ref({}); // 鐢ㄤ簬瀛樺偍褰撳墠缂栬緫鐨勭敤鎴锋暟鎹� import request from "@/utils/request" import { ref, onMounted } from "vue"; // import { ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' + import { useI18n } from 'vue-i18n' + const { t } = useI18n() + let language = ref(localStorage.getItem('lang') || 'zh') // import LanguageMixin from './lang/LanguageMixin' const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勮鑹� // const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃 @@ -31,16 +33,16 @@ }); // 閲嶇疆瀵嗙爜 const open = async(row) => { - try { + try { const confirmResult = await ElMessageBox.confirm( - '鏄惁閲嶇疆鐢ㄦ埛瀵嗙爜?', - '鎻愮ず', + t('productStock.repassword'), + t('productStock.prompt'), { - confirmButtonText: '鏄�', - cancelButtonText: '鍙栨秷', + confirmButtonText: t('productStock.yes'), + cancelButtonText: t('productStock.cancel'), type: 'warning', - } - ); + } + ); if (confirmResult === 'confirm') { // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛 var url="/loadGlass/sys/user/resetPassword?userId="+row.id; @@ -83,7 +85,7 @@ const response = await request.post('/loadGlass/sys/role/queryRole',{ key: '' }); - if (response.code == 200) { + if (response.code === 200) { titleSelectJsona.value.processTypea = response.data; console.log(response.data); @@ -96,23 +98,33 @@ }; // 澶勭悊缂栬緫鎸夐挳鐐瑰嚮 function handleEdit(row) { - editingUser.value = { ...row }; // 浣跨敤灞曞紑杩愮畻绗﹀鍒跺綋鍓嶈鏁版嵁 + userName.value = row.userName; adda.value = true; // 鏄剧ず瀵硅瘽妗� + window.localStorage.setItem('id', row.id) + } // 娣诲姞 const getTableRow = async () => { try { const response = await request.post('/loadGlass/sys/user/saveUser', { userName: userName.value, + nickName: userName.value, password: password.value, - name: selectedProjectNoa.value, + roleList: [ + { + id: selectedProjectNoa.value, + // name: selectedProjectNoa.value.name, + }] + // roleList: selectedProjectNoa.value.map(item => ({ + // id: item.id, + // name: item.name + // })) }); - - if (response.code == 200) { + if (response.code === 200) { // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 ElMessage.success(response.message); add.value = false; - // tableData.value = response.data; + tableData.value = response.data; } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� ElMessage.error(response.msg); @@ -124,22 +136,26 @@ }; // 缂栬緫 const getTableRowa = async () => { + let id = window.localStorage.getItem('id') try { const response = await request.post('/loadGlass/sys/user/updateUser', { + id: id, userName: userName.value, - password: password.value, - name: selectedProjectNoa.value, - }); - - if (response.code == 200) { + roleList: [ + { + id: selectedProjectNoa.value, + // roleKey: selectedProjectNoa.value.id, + }] + } + ); + if (response.code === 200) { // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 ElMessage.success(response.message); - editingUser.value = {}; adda.value = false; tableData.value = response.data; } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� - ElMessage.error(response.msg); + ElMessage.error(response.message); } } catch (error) { // 澶勭悊閿欒 @@ -148,21 +164,19 @@ }; // 鍒犻櫎 const opena = async(row) => { - try { + try { const confirmResult = await ElMessageBox.confirm( - '鏄惁鍒犻櫎璇ョ敤鎴�?', - '鎻愮ず', + t('productStock.deusername'), + t('productStock.prompt'), { - confirmButtonText: '鏄�', - cancelButtonText: '鍙栨秷', + confirmButtonText: t('productStock.yes'), + cancelButtonText: t('productStock.cancel'), type: 'warning', - } - ); + } + ); if (confirmResult === 'confirm') { // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛 - const response = await request.post("/loadGlass/sys/user/deleteUser", { - ids: [row.id], - }) + const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id]) if (response.code === 200) { ElMessage.success(response.message); } else { @@ -177,74 +191,36 @@ } }; -const gridOptions = reactive({ - border: "full",//琛ㄦ牸鍔犺竟妗� - keepSource: true,//淇濇寔婧愭暟鎹� - align: 'center',//鏂囧瓧灞呬腑 - stripe:true,//鏂戦┈绾� - rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒 - id: 'OrderList', - showFooter: true,//鏄剧ず鑴� - printConfig: {}, - importConfig: {}, - exportConfig: {}, - scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔� - showOverflow:true, - columnConfig: { - resizable: true, - useKey: true - }, - filterConfig: { //绛涢�夐厤缃」 - remote: true - }, - customConfig: { - storage: true - }, - editConfig: { - trigger: 'click', - mode: 'row', - showStatus: true - }, - data: [ - { - 'id': '1', - 'long': '5', - 'wide': '1005', - 'thick': '183.6', - } - ] - -}) </script> <template> <div> - <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">娣诲姞鐢ㄦ埛</el-button> + <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">{{ $t('productStock.addusers') }}</el-button> <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="240" ref="table" @selection-change="handleSelectionChange" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> - <el-table-column prop="userName" align="center" label="鐢ㄦ埛鍚�" min-width="180" /> - <el-table-column align="center" label="瑙掕壊" min-width="80"> + <el-table-column prop="userName" align="center" :label="$t('productStock.username')" min-width="180" /> + <el-table-column align="center" :label="$t('productStock.role')" min-width="80"> <template #default="scope"> <el-tag v-for="role in scope.row.roleList"> {{role.name}} </el-tag> </template> </el-table-column> - <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200"> + <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270"> <template #default="scope"> - <el-button size="mini" type="text" plain @click="open(scope.row)">閲嶇疆瀵嗙爜</el-button> - <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">缂栬緫</el-button> - <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button> + <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('productStock.resetpassword') }}</el-button> + <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button> + <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button> </template> </el-table-column> </el-table> </div> </el-card> </div> - <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鐢ㄦ埛" > + <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusers')"> <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> <el-form size="mini" label-width="150px"> <el-form label-width="100px" label-position="right"> @@ -252,8 +228,8 @@ <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> - <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw"> - <el-input v-model="userName" autocomplete="off" /> + <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw"> + <el-input v-model="userName" autocomplete="off" :placeholder="$t('productStock.inusername')" /> </el-form-item></div></div> </el-col> </el-row> @@ -261,19 +237,19 @@ <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> - <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;"> + <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;"> <el-select v-model="selectedProjectNoa" filterable clearable - placeholder="璇烽�夋嫨瑙掕壊" + :placeholder="$t('productStock.inrole')" style="width: 330px" > <el-option v-for="item in titleSelectJsona['processTypea']" :key="item.id" :label="item.name" - :value="item.name" + :value="item.id" /> </el-select> </el-form-item></div></div> @@ -283,9 +259,10 @@ <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> - <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;"> + <el-form-item :label="$t('productStock.password')" :required="true" style="width: 25vw;"> <el-input style="width: 340px;" v-model="password" + :placeholder="$t('productStock.inpassword')" autocomplete="off" :prefix-icon="Lock" show-password/> @@ -298,22 +275,22 @@ <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow"> - 纭 + {{ $t('productStock.sure') }} </el-button> - <el-button @click="add = false">鍙栨秷</el-button> + <el-button @click="add = false">{{ $t('productStock.cancel') }}</el-button> </div> </template> </el-dialog> - <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鐢ㄦ埛" > + <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('productStock.reusername')" > <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> - <el-form :model="editingUser" ref="formRef" size="mini" label-width="150px"> + <el-form ref="formRef" size="mini" label-width="150px"> <el-form label-width="100px" label-position="right"> <el-row style="margin-top: -15px;margin-bottom: -2px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> - <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw"> - <el-input v-model="editingUser.userName" autocomplete="off" /> + <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw"> + <el-input :placeholder="$t('productStock.inusername')" v-model="userName" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -321,41 +298,21 @@ <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> - <!-- <el-table-column align="center" label="瑙掕壊" min-width="80"> - <template #default="scope"> - <el-tag v-for="role in scope.row.roleList"> - {{role.name}} - </el-tag> - </template> - </el-table-column> --> - <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;"> + <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;"> <el-select v-model="selectedProjectNoa" filterable clearable - placeholder="璇烽�夋嫨瑙掕壊" + :placeholder="$t('productStock.inrole')" style="width: 330px" > <el-option - v-for="item in titleSelectJsona['processTypea']" + v-for="item in titleSelectJsona['processTypea']" :key="item.id" :label="item.name" - :value="item.name" + :value="item.id" /> </el-select> - </el-form-item></div></div> - </el-col> - </el-row> - <el-row style="margin-top: 10px;"> - <el-col :span="6"> - <div id="dt" style="font-size: 15px;"> - <div> - <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;"> - <el-input style="width: 340px;" - v-model="editingUser.password" - autocomplete="off" - :prefix-icon="Lock" - show-password/> </el-form-item></div></div> </el-col> </el-row> @@ -365,9 +322,9 @@ <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRowa"> - 纭 + {{ $t('productStock.sure') }} </el-button> - <el-button @click="adda = false">鍙栨秷</el-button> + <el-button @click="adda = false">{{ $t('productStock.cancel') }}</el-button> </div> </template> </el-dialog> -- Gitblit v1.8.0