From 56fab901b298857ff4985b7429ef843c9a9d1471 Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期三, 28 八月 2024 16:20:02 +0800 Subject: [PATCH] 钢化模块打印功能,新增表格字段 --- UI-Project/src/views/User/userlist.vue | 253 +++++++++++++++++++++++-------------------------- 1 files changed, 119 insertions(+), 134 deletions(-) diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue index aa8c386..5ebb196 100644 --- a/UI-Project/src/views/User/userlist.vue +++ b/UI-Project/src/views/User/userlist.vue @@ -5,13 +5,15 @@ const router = useRouter() const add = ref(false) const adda = ref(false) - 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 selectedProjectNoa = ref(null); // 褰撳墠閫変腑鐨勮鑹� // const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃 const userName = ref(''); const password = ref(''); @@ -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); @@ -94,23 +96,84 @@ console.error('Error fetching options:', error); } }; +// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮 +function handleEdit(row) { + userName.value = row.userName; + if (row.roleList && row.roleList.length > 0) { + const firstRole = row.roleList[0]; + selectedProjectNoa.value = firstRole.id; // 璁剧疆涓篒D锛岃�屼笉鏄痭ame + } + adda.value = true; // 鏄剧ず瀵硅瘽妗� + window.localStorage.setItem('id', row.id) + +} + +function closeDialog(row) { + add.value = false; + userName.value = ''; + nickName.value = ''; + password.value = ''; + selectedProjectNoa.value = ''; +} +function closeDialoga(row) { + adda.value = false; + userName.value = ''; + nickName.value = ''; + password.value = ''; +} // 娣诲姞 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; } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� - ElMessage.error(response.msg); + ElMessage.error(response.message); + } + } catch (error) { + // 澶勭悊閿欒 + console.error(error); + } +}; +// 缂栬緫 +const getTableRowa = async () => { + let id = window.localStorage.getItem('id') + try { + const response = await request.post('/loadGlass/sys/user/updateUser', { + id: id, + userName: userName.value, + roleList: [ + { + id: selectedProjectNoa.value, + // roleKey: selectedProjectNoa.value.id, + }] + } + ); + if (response.code === 200) { + // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 + ElMessage.success(response.message); + adda.value = false; + tableData.value = response.data; + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); } } catch (error) { // 澶勭悊閿欒 @@ -119,22 +182,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("/cacheGlass/edgStorageCage/edgReportStatus", { - glassId: row.GlassId, - controlsId: 301 - }) + const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id]) if (response.code === 200) { ElMessage.success(response.message); } else { @@ -149,74 +209,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" + <el-table height="500" 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="adda = true">缂栬緫</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"> @@ -224,8 +246,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> @@ -233,19 +255,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> @@ -255,9 +277,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/> @@ -270,22 +293,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="closeDialog">{{ $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 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 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> @@ -293,59 +316,21 @@ <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="value" + v-model="selectedProjectNoa" + filterable clearable - placeholder="璇烽�夋嫨瑙掕壊" + :placeholder="$t('productStock.inrole')" style="width: 330px" > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in titleSelectJsona['processTypea']" + :key="item.id" + :label="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 autocomplete="off" /> - </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-select - v-model="value" - clearable - placeholder="璇烽�夋嫨鏄惁绂佺敤" - style="width: 330px" - > - <el-option - v-for="item in optionsa" - :key="item.valuea" - :label="item.labela" - :value="item.valuea" - /> - </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 autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -354,13 +339,13 @@ </div> <template #footer> <div id="dialog-footer"> - <el-button type="primary" @click="getTableRow('edit')"> - 纭 + <el-button type="primary" @click="getTableRowa"> + {{ $t('productStock.sure') }} </el-button> - <el-button @click="adda = false">鍙栨秷</el-button> + <el-button @click="closeDialoga">{{ $t('productStock.cancel') }}</el-button> </div> </template> - </el-dialog> + </el-dialog> </template> <style scoped> -- Gitblit v1.8.0