UI-Project/src/lang/zh.js
@@ -284,8 +284,10 @@ deusername:'是否删除该用户?', }, customer:{ addmenu:'添加菜单', addmenua:'添加二级菜单', addmenu:'添加一级菜单', firstmenu:'一级菜单栏', firstmenuname:'一级菜单名称:', link:'链接', inlink:'请输入链接', linka:'链接:', @@ -296,11 +298,13 @@ exit:'编辑', delete:'删除', semenu:'二级菜单栏', semenuname:'二级菜单名称:', menu:'菜单栏:', inmenu:'请输入菜单栏', inmenu:'请输入菜单名称', sure:'确认', cancel:'取消', exmene:'修改菜单', exmene:'修改一级菜单', exmenea:'修改二级菜单', yes:'是', demenu:'是否删除该菜单?', prompt:'提示', @@ -319,6 +323,8 @@ cancel :'取消', derole :'是否删除该角色', prompt:'提示', choice:'菜单权限:', inchoice:'请选择菜单权限', }, replenish:{ patchManagement:'补片管理', UI-Project/src/views/Caching/cachingun.vue
@@ -106,7 +106,7 @@ ); if (confirmResult === 'confirm') { // 用户点击了“是”,现在调用删除接口 var url="/unLoadGlass/downStorage/deleteDownStorageCage?edgStorageCageId="+row.id; var url="/unLoadGlass/downStorage/deleteDownStorageCage?downStorageCageId="+row.id; console.log(url); const response = await request.post(url, { esdId: row.esdId UI-Project/src/views/Slicecage/slicecage.vue
@@ -82,15 +82,17 @@ } else if (currentPage.value === 3) { return 21; } else if (currentPage.value === 4) { return 21; return 20; } else if (currentPage.value === 5) { return 21; } else if (currentPage.value === 6) { return 21; return 25; } else if (currentPage.value === 7) { return 21; return 51; } else if (currentPage.value === 8) { return 25; } else { return 21; // 默认值,可以根据实际需求修改 return 25; // 默认值,可以根据实际需求修改 } }); @@ -112,15 +114,17 @@ } else if (i === 3) { index += 21; }else if (i === 4) { index += 21; index += 20; }else if (i === 5) { index += 21; }else if (i === 6) { index += 21; index += 25; }else if (i === 7) { index += 21; index += 51; }else if (i === 8) { index += 25; } else { index += 31; index += 25; } } return index; @@ -153,7 +157,7 @@ // total += 10; // } // } return 8; return 9; }); UI-Project/src/views/User/permissions.vue
@@ -5,11 +5,12 @@ const router = useRouter() const add = ref(false) const adda = ref(false) const addc = ref(false) const addb = ref(false) import { useI18n } from 'vue-i18n' const { t } = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') const editingUser = ref({}); // 用于存储当前编辑的用户数据 import request from "@/utils/request" import { ref, onMounted } from "vue"; // import { ref } from 'vue' @@ -18,8 +19,9 @@ const selectedProjectNoa = ref(''); // 当前选中的角色 // const options = ref<any[]>([]); // 下拉选项列表 const menuName = ref(''); const parentId = ref(''); const listSort = ref(''); const url = ref(''); const currentRow = reactive({}); // 当前行的数据 const tableData = ref([]) const slot = ref('') request.get("/loadGlass/sys/menu/nav").then((res) => { @@ -53,7 +55,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); @@ -64,20 +66,64 @@ console.error('Error fetching options:', error); } }; // 添加 const handleBindRack = (row) => { // selectedRow.value = row; // 更新选中的行数据 currentRow.menuName = row.menuName; // 直接设置响应式属性 currentRow.id = row.id; // 直接设置响应式属性 // currentRow.slot = row.slot; // window.localStorage.setItem('deviceId', row.deviceId) // window.localStorage.setItem('slot', row.slot) addb.value = true; // 打开绑定架子对话框 }; // 添加一级菜单 const getTableRow = async () => { try { const response = await request.post('/loadGlass/sys/menu/save', { menuName: menuName.value, parentId: parentId.value, listSort: listSort.value, url: url.value, }); if (response.code == 200) { if (response.code === 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; // tableData.value = response.data; tableData.value = response.data; menuName.value = ''; listSort.value = ''; url.value = ''; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 添加二级菜单 const getTableRowb = async () => { try { const dataToSend = { parentId: currentRow.id, // menuName: currentRow.menuName, // children: [ // { menuName: menuName.value, listSort: listSort.value, url: url.value, // } // ] }; const response = await request.post('/loadGlass/sys/menu/save',dataToSend ); if (response.code === 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); addb.value = false; tableData.value = response.data; menuName.value = ''; listSort.value = ''; url.value = ''; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); @@ -89,23 +135,60 @@ }; // 处理编辑按钮点击 function handleEdit(row) { editingUser.value = { ...row }; // 使用展开运算符复制当前行数据 listSort.value = row.listSort; menuName.value = row.menuName; url.value = row.url; adda.value = true; // 显示对话框 } // 修改二级菜单 function handleEditc(row) { listSort.value = row.listSort; menuName.value = row.menuName; url.value = row.url; addc.value = true; // 显示对话框 } // 编辑 const getTableRowa = async () => { try { const response = await request.post('/loadGlass/sys/menu/updateMenu', { parentId: currentRow.id, menuName: menuName.value, parentId: parentId.value, listSort: listSort.value, url: url.value, }); if (response.code == 200) { if (response.code === 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); editingUser.value = {}; adda.value = false; tableData.value = response.data; menuName.value = ''; listSort.value = ''; url.value = ''; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 编辑二级菜单 const getTableRowac = async () => { try { const response = await request.post('/loadGlass/sys/menu/updateMenu', { menuName: menuName.value, listSort: listSort.value, url: url.value, }); if (response.code === 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); addc.value = false; tableData.value = response.data; menuName.value = ''; listSort.value = ''; url.value = ''; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); @@ -172,10 +255,10 @@ > <el-table-column prop="menuName" :label="$t('customer.semenu')" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/> <el-table-column prop="url" :label="$t('customer.link')" align="center" min-width="160"/> <el-table-column prop="id" align="center" :label="$t('customer.sort')" min-width="140"/> <el-table-column prop="listSort" align="center" :label="$t('customer.sort')" min-width="140"/> <el-table-column fixed="right" :label="$t('customer.operate')" align="center"> <template #default="scope"> <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('customer.exit') }}</el-button> <el-button size="mini" type="text" plain @click="handleEditc(scope.row)">{{ $t('customer.exit') }}</el-button> <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('customer.delete') }}</el-button> </template> </el-table-column> @@ -185,9 +268,10 @@ </el-table-column> <el-table-column prop="menuName" :label="$t('customer.firstmenu')" align="center" min-width="120" /> <el-table-column prop="url" :label="$t('customer.link')" align="center" min-width="200"/> <el-table-column prop="id" align="center" :label="$t('customer.sort')" min-width="180" /> <el-table-column prop="listSort" align="center" :label="$t('customer.sort')" min-width="180" /> <el-table-column fixed="right" :label="$t('customer.operate')" align="center" width="200"> <template #default="scope"> <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ $t('customer.addmenua') }}</el-button> <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('customer.exit') }}</el-button> <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('customer.delete') }}</el-button> </template> @@ -199,6 +283,106 @@ <el-dialog v-model="add" top="23vh" width="37%" :title="$t('customer.addmenu')"> <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> <el-form size="mini" label-width="150px"> <el-form label-width="150px" 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('customer.firstmenuname')" :required="true" style="width: 25vw"> <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/> </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('customer.linka')" :required="true" style="width: 25vw"> <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/> </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('customer.sorta')" :required="true" style="width: 25vw"> <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/> </el-form-item></div></div> </el-col> </el-row> </el-form> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow"> {{ $t('customer.sure') }} </el-button> <el-button @click="add = false">{{ $t('customer.cancel') }}</el-button> </div> </template> </el-dialog> <el-dialog v-model="addb" top="23vh" width="37%" :title="$t('customer.addmenua')"> <div style="margin-bottom: 20px"> <el-form> <el-row style="margin-top: -15px;margin-bottom: -2px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <el-form-item :label="$t('customer.firstmenuname')" style="width: 22vw"> <!-- {{ currentRow.menuName }} --> <el-input disabled v-model="currentRow.menuName" autocomplete="off"></el-input> </el-form-item> </div> </el-col> </el-row> </el-form> </div> <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> <el-form size="mini" label-width="150px"> <el-form label-width="150px" 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('customer.semenuname')" :required="true" style="width: 25vw"> <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/> </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('customer.linka')" :required="true" style="width: 25vw"> <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/> </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('customer.sorta')" :required="true" style="width: 25vw"> <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/> </el-form-item></div></div> </el-col> </el-row> </el-form> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRowb"> {{ $t('customer.sure') }} </el-button> <el-button @click="addb = false">{{ $t('customer.cancel') }}</el-button> </div> </template> </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('customer.exmene')"> <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> <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"> @@ -223,50 +407,7 @@ <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw"> <el-input v-model="parentId" autocomplete="off" :placeholder="$t('customer.insort')"/> </el-form-item></div></div> </el-col> </el-row> </el-form> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow"> {{ $t('customer.sure') }} </el-button> <el-button @click="add = false">{{ $t('customer.cancel') }}</el-button> </div> </template> </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('customer.exmene')"> <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> <el-form :model="editingUser" 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('customer.menu')" :required="true" style="width: 25vw"> <el-input v-model="editingUser.menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/> </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('customer.linka')" :required="true" style="width: 25vw"> <el-input v-model="editingUser.url" autocomplete="off" :placeholder="$t('customer.inlink')"/> </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('customer.sorta')" :required="true" style="width: 25vw"> <el-input v-model="editingUser.parentId" autocomplete="off" :placeholder="$t('customer.insort')"/> <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/> </el-form-item></div></div> </el-col> </el-row> @@ -282,6 +423,49 @@ </div> </template> </el-dialog> <el-dialog v-model="addc" top="23vh" width="37%" :title="$t('customer.exmenea')"> <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> <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('customer.menu')" :required="true" style="width: 25vw"> <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/> </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('customer.linka')" :required="true" style="width: 25vw"> <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/> </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('customer.sorta')" :required="true" style="width: 25vw"> <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/> </el-form-item></div></div> </el-col> </el-row> </el-form> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRowac"> {{ $t('customer.sure') }} </el-button> <el-button @click="addc = false">{{ $t('customer.cancel') }}</el-button> </div> </template> </el-dialog> </template> <style scoped> 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> UI-Project/src/views/User/userlist.vue
@@ -5,7 +5,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' @@ -86,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); @@ -99,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); @@ -127,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) { // 处理错误 @@ -163,9 +176,7 @@ ); 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 { @@ -180,44 +191,6 @@ } }; 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> @@ -276,7 +249,7 @@ 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> @@ -310,14 +283,14 @@ </el-dialog> <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="$t('productStock.usernamea')" :required="true" style="width: 25vw"> <el-input :placeholder="$t('productStock.inusername')" v-model="editingUser.userName" autocomplete="off" /> <el-input :placeholder="$t('productStock.inusername')" v-model="userName" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -325,13 +298,6 @@ <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="$t('productStock.rolea')" :required="true" style="width: 25vw;"> <el-select v-model="selectedProjectNoa" @@ -341,26 +307,12 @@ 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="$t('productStock.password')" :required="true" style="width: 25vw;"> <el-input style="width: 340px;" v-model="editingUser.password" :placeholder="$t('productStock.inpassword')" autocomplete="off" :prefix-icon="Lock" show-password/> </el-form-item></div></div> </el-col> </el-row> hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
@@ -29,15 +29,20 @@ @PostMapping("/save") // @PreAuthorize("hasAuthority('sys:menu:save')") public Result save(@Validated @RequestBody SysMenu sysMenu) { return Result.success(sysMenuService.save(sysMenu)); sysMenuService.save(sysMenu); GeneralRequest request=new GeneralRequest(); return Result.success(sysMenuService.getMenuTree(request)); } @ApiOperation("修改菜单信息") @PostMapping("/updateMenu") // @PreAuthorize("hasAuthority('sys:menu:update')") public Result updateMenu(@Validated @RequestBody SysMenu sysMenu) { public Result<List<SysMenu>> updateMenu(@Validated @RequestBody SysMenu sysMenu) { //return Result.success(sysMenu); sysMenuService.updateMenu(sysMenu); return Result.success(sysMenu); GeneralRequest request=new GeneralRequest(); return Result.build(200,"修改成功",sysMenuService.getMenuTree(request)); } @ApiOperation("获取用户有权限的所有菜单") @@ -62,8 +67,9 @@ @ApiOperation("删除菜单") @PostMapping("/deleteMenu") // @PreAuthorize("hasAuthority('sys:menu:delete')") public Result<String> deleteMenu(Long menuId) { return Result.success(sysMenuService.deleteMenu(menuId)); public Result<List<SysMenu>> deleteMenu(Long menuId) { GeneralRequest request=new GeneralRequest(); return Result.build(200, sysMenuService.deleteMenu(menuId),sysMenuService.getMenuTree(request)); } @ApiOperation("批量删除菜单") hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
@@ -57,7 +57,7 @@ // @PreAuthorize("hasAuthority('sys:role:delete')") @Transactional public Result<String> deleteRole(@RequestBody List<Long> ids) { return Result.success(sysRoleService.deleteRole(ids)); return Result.build(200,"删除成功",sysRoleService.deleteRole(ids)); } } hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -60,8 +60,13 @@ @ApiOperation("更新用户信息") @PostMapping("/updateUser") // @PreAuthorize("hasAuthority('sys:user:update')") public Result<SysUserVO> updateUser(@Validated @RequestBody SysUserVO sysUser) { return Result.success(sysUserService.updateUser(sysUser)); public Result<List<SysUserVO>> updateUser(@Validated @RequestBody SysUserVO sysUser) { //return Result.success(sysUserService.updateUser(sysUser)); sysUserService.updateUser(sysUser); GeneralRequest request=new GeneralRequest(); request.setKey(""); return Result.success(sysUserService.listByUserName(request)); //更改了修改之后返回所有用户列表 } @ApiOperation("重置密码") hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -19,6 +19,7 @@ import com.mes.userinfo.entity.SysUserRole; import com.mes.userinfo.entity.vo.SysUserVO; import com.mes.userinfo.mapper.SysUserMapper; import com.mes.userinfo.mapper.SysUserRoleMapper; import com.mes.userinfo.service.SysUserRoleService; import com.mes.userinfo.service.SysUserService; import lombok.extern.slf4j.Slf4j; @@ -71,6 +72,8 @@ @Resource BCryptPasswordEncoder passwordEncoder; @Autowired private SysUserRoleMapper sysUserRoleMapper; @Override public Map<String, String> login(SysUser user) { @@ -125,10 +128,12 @@ this.updateById(sysUser); log.info("删除用户角色信息"); List<Long> roleIds = user.getRoleList().stream().map(SysRole::getId).collect(Collectors.toList()); sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>() .eq(SysUserRole::getUserId, sysUser.getId()).in(CollectionUtil.isNotEmpty(roleIds), SysUserRole::getRoleId, roleIds)); log.info("保存用户角色信息"); saveUserRole(user.getRoleList(), sysUser.getId()); // sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>() // .eq(SysUserRole::getUserId, sysUser.getId()).in(CollectionUtil.isNotEmpty(roleIds), SysUserRole::getRoleId, roleIds)); SysUserRole sysUserRole = new SysUserRole(sysUser.getId(),roleIds.get(0)); sysUserRoleMapper.updateById(sysUserRole); // log.info("保存用户角色信息"); // saveUserRole(user.getRoleList(), sysUser.getId()); return user; } hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
New file @@ -0,0 +1,88 @@ package com.mes.job; import cn.hutool.json.JSONObject; import com.mes.order.entity.Orders; import com.mes.order.service.OrdersService; import com.mes.pp.entity.OptimizeProject; import com.mes.pp.entity.request.AwaitingRepair; import com.mes.pp.entity.request.Reportingdamage; import com.mes.pp.service.OptimizeProjectService; import com.mes.pp.service.ReportingWorkService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; /** * @author SNG-010 */ @Component @Slf4j public class PlcScreenTask { @Autowired private ReportingWorkService reportingWorkService; @Autowired private OptimizeProjectService optimizeProjectService; @Autowired private OrdersService ordersService; /** * fixedRate : 上一个调用开始后再次调用的延时(不用等待上一次调用完成) * fixedDelay : 上一个调用结束后再次调用的延时 */ @Scheduled(fixedDelay = 2000) public void screenHome(){ JSONObject jsonObject = new JSONObject(); //正在等待进片的玻璃 Reportingdamage reportingdamage = new Reportingdamage(); reportingdamage.setReportingWorkTime("2024-05-11"); //获取切割信息 reportingdamage.setThisProcess("切割"); List<Reportingdamage> cutting = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("cutting", cutting); //获取磨边信息 reportingdamage.setThisProcess("磨边"); List<Reportingdamage> edging = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("edging", edging); //获取钢化信息 reportingdamage.setThisProcess("钢化"); List<Reportingdamage> tempering = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("tempering", tempering); //获取夹胶信息 reportingdamage.setThisProcess("夹胶"); List<Reportingdamage> doubling = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("doubling", doubling); //获取中空信息 reportingdamage.setThisProcess("中空"); List<Reportingdamage> hollow = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("hollow", hollow); //获取包装信息 reportingdamage.setThisProcess("包装"); List<Reportingdamage> packaging = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("packaging", packaging); //获取次破未补信息 List<AwaitingRepair>awaitingRepairs = reportingWorkService.selectAwaitingRepair(); jsonObject.append("awaitingRepairs", awaitingRepairs); //获取正在进行的工程 List<OptimizeProject>optimizeProjects= optimizeProjectService.getDoingTask(); jsonObject.append("DoingTask", optimizeProjects); //获取当前订单 List<Orders>orders=ordersService.selectOrders(); jsonObject.append("orders", orders); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("screen"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { webserver.sendMessage(jsonObject.toString()); } else { log.info("Home is closed"); } } } } }