From c1f06f52a6b7f3337bacd98feb55aca6af8e6e2c Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期五, 05 七月 2024 08:32:09 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/User/rolelist.vue | 108 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 87 insertions(+), 21 deletions(-) diff --git a/UI-Project/src/views/User/rolelist.vue b/UI-Project/src/views/User/rolelist.vue index 8a92066..14d1ad3 100644 --- a/UI-Project/src/views/User/rolelist.vue +++ b/UI-Project/src/views/User/rolelist.vue @@ -8,7 +8,6 @@ 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' @@ -17,8 +16,15 @@ const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勮鑹� // const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃 const name = ref(''); - const tableData = ref([]) +const options = ref([]) +const selectedOptions = ref('') +// 瀹氫箟绾ц仈閫夋嫨鍣ㄧ殑灞炴�� +const cascaderProps = { + value: 'id', + label: 'menuName', + multiple: true +}; const slot = ref('') const titleSelectJsona = ref({ @@ -57,19 +63,35 @@ }; // 娣诲姞 const getTableRow = async () => { + + const lastId = selectedOptions.value[selectedOptions.value.length - 1]; + // sendDataToServer(dataToSend); + console.log(selectedOptions.value[selectedOptions.value.length - 1]); + // 鍙互杩涗竴姝ュ鐞嗭紝濡傚彂閫佽姹傜瓑 try { - const response = await request.post('/loadGlass/sys/role/saveRole', { + const dataToSend = { name: name.value, - }); - + // id: selectedOptions.value, + menuList: [lastId] + // [ + // { + // menuName: selectedOptions.value, + // selectedOptions.value, + // } + // ] + }; + const response = await request.post('/loadGlass/sys/role/saveRole', dataToSend); if (response.code == 200) { // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 ElMessage.success(response.message); add.value = false; - // tableData.value = response.data; + name.value = ''; + selectedOptions.value = ''; + fetchOptionsa() + // tableData.value = response.data; } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� - ElMessage.error(response.msg); + ElMessage.error(response.message); } } catch (error) { // 澶勭悊閿欒 @@ -78,26 +100,32 @@ }; // 澶勭悊缂栬緫鎸夐挳鐐瑰嚮 function handleEdit(row) { - editingUser.value = { ...row }; // 浣跨敤灞曞紑杩愮畻绗﹀鍒跺綋鍓嶈鏁版嵁 + name.value = row.name; + selectedOptions.value = row.selectedOptions; adda.value = true; // 鏄剧ず瀵硅瘽妗� + window.localStorage.setItem('id', row.id) } // 缂栬緫 const getTableRowa = async () => { + let id = window.localStorage.getItem('id') + try { const response = await request.post('/loadGlass/sys/role/updateRole', { + id: id, name: name.value, - }); if (response.code == 200) { // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 ElMessage.success(response.message); - editingUser.value = {}; adda.value = false; - tableData.value = response.data; + name.value = ''; + selectedOptions.value = ''; + fetchOptionsa() + tableData.value = response.data; } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� - ElMessage.error(response.msg); + ElMessage.error(response.message); } } catch (error) { // 澶勭悊閿欒 @@ -118,14 +146,13 @@ ); if (confirmResult === 'confirm') { // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛 - const response = await request.post("/loadGlass/sys/role/delete", { - ids: row.id, - }) + const response = await request.post("/loadGlass/sys/role/delete",[row.id]) if (response.code === 200) { ElMessage.success(response.message); + fetchOptionsa() } else { // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛 - ElMessage.error(response.msg); + ElMessage.error(response.message); // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); } } @@ -133,7 +160,16 @@ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑 console.error('鍙戠敓閿欒:', error); } -}; +}; +request.get("/loadGlass/sys/menu/nav").then((res) => { + if (res.code == 200) { + console.log(res.data); + options.value = res.data.tree + console.log( options.value); + } else { + ElMessage.warning(res.msg) + } + }); </script> <template> @@ -155,9 +191,9 @@ </div> </el-card> </div> - <el-dialog v-model="add" top="23vh" width="37%" :title="$t('delivery.addrole')" > + <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusername')" > <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"> @@ -165,6 +201,21 @@ <div> <el-form-item :label="$t('delivery.rolea')" :required="true" style="width: 25vw"> <el-input :placeholder="$t('delivery.inrole')" v-model="name" 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="$t('delivery.choice')" :required="true" style="width: 25vw;"> + <el-cascader + v-model="selectedOptions" + :placeholder="$t('delivery.inchoice')" + :props="cascaderProps" + :options="options" + style="width: 330px" + clearable /> </el-form-item></div></div> </el-col> </el-row> @@ -182,14 +233,29 @@ </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('delivery.editrole')"> <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="$t('delivery.rolea')" :required="true" style="width: 25vw"> - <el-input :placeholder="$t('delivery.inrole')" v-model="editingUser.name" autocomplete="off" /> + <el-input :placeholder="$t('delivery.inrole')" v-model="name" 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="$t('delivery.choice')" :required="true" style="width: 25vw;"> + <el-cascader + v-model="selectedOptions" + :placeholder="$t('delivery.inchoice')" + :props="cascaderProps" + :options="options" + style="width: 330px" + clearable /> </el-form-item></div></div> </el-col> </el-row> -- Gitblit v1.8.0