UI-Project/src/layout/MainErpView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/User/permissions.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/User/rolelist.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/User/userlist.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
UI-Project/src/layout/MainErpView.vue
@@ -18,7 +18,18 @@ userStore.$patch({ user: null, }) router.push('/login') // router.push('/login') let token = window.localStorage.getItem('userInfo') console.log(token); request.get("/loadGlass/sys/user/login").then((res) => { if (res.code === 200) { ElMessage.success(res.msg); console.log(res.data); } else { ElMessage.warning(res.msg); // router.push("/login"); } }); } //提取菜单模块列表 @@ -27,6 +38,7 @@ request.get('/loadGlass/sys/menu/getMenuTree').then((res) => { if (res.code == 200) { menuList = deepClone(res.data) console.log(response.data.token); } else { ElMessage.warning(res.msg) router.push('/login') UI-Project/src/views/User/permissions.vue
@@ -1,273 +1,259 @@ <script lang="ts" setup> <script setup> import {Search} from "@element-plus/icons-vue"; import {reactive} from "vue"; import {useRouter} from "vue-router" import { ref } from 'vue' const router = useRouter() const value1 = ref(true) const add = ref(false) const adda = ref(false) const changer = ref(false) import request from "@/utils/request" import { ref, onMounted } from "vue"; // import { ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' // import LanguageMixin from './lang/LanguageMixin' const selectedProjectNoa = ref(''); // 当前选中的角色 // const options = ref<any[]>([]); // 下拉选项列表 const menuName = ref(''); const parentId = ref(''); const url = ref(''); const tableData = ref([]) const slot = ref('') request.get("/loadGlass/sys/menu/nav").then((res) => { if (res.code == 200) { console.log(res.data); tableData.value = res.data.tree } else { ElMessage.warning(res.msg) const tableData = [ { id: '1', long: '1005', wide: '183.6', thick: '1991', time: '2024/4/1', type: '待识别', typea: '1', }, { id: '2', long: '105', wide: '183', time: '2024/4/1', thick: '191', typea: '1', type: '待识别' }, { id: '2', long: '105', wide: '183', time: '2024/4/1', thick: '191', typea: '1', type: '待识别' }, ] const open = () => { ElMessageBox.confirm( '是否删除该条信息?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ) .then(() => { ElMessage({ type: 'success', message: '删除成功!', }) }) .catch(() => { ElMessage({ type: 'info', message: '删除失败', }) }) } const getTableRow = (row,type) =>{ switch (type) { case 'edit' :{ //alert('我接收到子组件传送的编辑信息') router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) break } case 'delete':{ alert('我接收到子组件传送的删除信息') break } } } const dialogForm = () => { ElMessageBox.confirm( '是否重置密码?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ) .then(() => { // this.boxa = true // this.box = false }) } const dialogForma = () => { ElMessageBox.confirm( '是否删除该条信息?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ) } const options = [ { value: 'Option1', label: 'admin', }, { value: 'Option2', label: 'ueser2', }, { value: 'Option3', label: 'ueser3', }, ] const optionsa = [ { valuea: 'Option1', labela: '正常', }, { valuea: 'Option2', labela: '禁用', }, ] const data= reactive({ tableList:[]//table数据 }) const beforeChange = () => { return new Promise((resolve) => { setTimeout(() => { ElMessage.success("修改成功!"); return resolve(true); }, 1000); }); }; // //js层,实战版本,与后台接口交互 // const gettableList = (id) = >{ // xxx接口.({ // id:id // }).then((res)=>{ // //将数据传给el-table绑定的:data=>data.tableList // data.tableList = res.data // }) // } } }); const titleSelectJsona = ref({ processType: [], // //最后将请求函数挂载到vue视图上 // onMounted(() => { // gettableList () // }) // const delete = () => { // ElMessageBox.confirm( // '是否删除该条信息?', // '提示', // { // confirmButtonText: '是', // cancelButtonText: '取消', // type: 'warning', // } // ) // .then(() => { // }) // } 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', 'time': '2024/4/1', } ] }) // const handleInputChangea = async (value: string) => { // if (value) { // await fetchOptionsa(value); // } else { // options.value = []; // 清空选项列表 // } // }; onMounted(() => { // 在组件挂载后调用 fetchOptions('') 来加载初始数据(如果需要) fetchOptionsa(''); }); // 角色下拉选 const fetchOptionsa = async () => { try { // 发送请求到后端接口 const response = await request.post('/loadGlass/sys/role/queryRole',{ key: '' }); if (response.code == 200) { titleSelectJsona.value.processTypea = response.data; console.log(response.data); } else { ElMessage.warning(response.data); } } catch (error) { console.error('Error fetching options:', error); } }; // 添加 const getTableRow = async () => { try { const response = await request.post('/loadGlass/sys/menu/save', { menuName: menuName.value, parentId: parentId.value, url: url.value, }); if (response.code == 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; // tableData.value = response.data; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 编辑 const getTableRowa = async () => { try { const response = await request.post('/loadGlass/sys/menu/updateMenu', { menuName: menuName.value, parentId: parentId.value, url: url.value, }); if (response.code == 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; tableData.value = response.data; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 删除 const opena = async(row) => { try { const confirmResult = await ElMessageBox.confirm( '是否删除该用户?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ); if (confirmResult === 'confirm') { // 用户点击了“是”,现在调用删除接口 const response = await request.post("/loadGlass/sys/menu/deleteMenu", { menuId: row.id, }) if (response.code === 200) { ElMessage.success(response.message); } else { // 删除失败,您可以处理错误或显示错误信息给用户 ElMessage.error(response.msg); // alert('删除失败:' + deleteResponse.message); } } } catch (error) { // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 console.error('发生错误:', error); } }; // 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-input clearable placeholder="请输入用户名" size="mini" style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" /> <el-input clearable placeholder="请输入邮箱" size="mini" style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" /> <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">查询</el-button > <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">清空</el-button> <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;"> <el-table height="100%" ref="table" @selection-change="handleSelectionChange" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="id" align="center" label="用户名" min-width="80" /> <el-table-column prop="long" align="center" label="邮箱" min-width="120" /> <el-table-column prop="time" align="center" label="创建时间" min-width="120" /> <el-table-column align="center" prop="changer" label="是否禁用" min-width="140" > <template #default="scope"> <el-switch v-model="scope.row.changer" :before-change="beforeChange" /> </template> </el-table-column> <el-table-column fixed="right" label="操作" align="center" width="200"> <template #default> <el-button size="mini" type="text" plain @click="dialogForm">重置密码</el-button> <el-button size="mini" type="text" plain @click="adda = true">编辑</el-button> <el-button size="mini" type="text" plain @click="dialogForma">删除</el-button> <div style="height: 700px;"> <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">添加菜单</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;max-height: 650px;"> <el-table :data="tableData" height="650" @expand-change="handleExpandChange" row-key="id" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" > <el-table-column type="expand"> <template #default="props"> <div v-if="props.row.children && props.row.children.length"> <el-table :data="props.row.children" border style="width: 100%;margin-left: 20px;" row-key="id" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" > <el-table-column prop="menuName" label="二级菜单栏" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/> <el-table-column prop="url" label="链接" align="center" min-width="160"/> <el-table-column prop="id" align="center" label="排序" min-width="140"/> <el-table-column fixed="right" label="操作" align="center"> <template #default="scope"> <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> </template> </el-table-column> </el-table> </el-table> </div> </template> </el-table-column> <el-table-column prop="menuName" label="一级菜单栏" align="center" min-width="120" /> <el-table-column prop="url" label="链接" align="center" min-width="200"/> <el-table-column prop="id" align="center" label="排序" min-width="180" /> <el-table-column fixed="right" label="操作" align="center" width="200"> <template #default="scope"> <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> </template> </el-table-column> </el-table> <!-- <el-table height="240" ref="table" @selection-change="handleSelectionChange" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="menuName" align="center" label="菜单栏" min-width="180" /> <el-table-column align="center" label="链接" min-width="180"> <template #default="scope"> <el-tag v-for="role in scope.row.children"> {{role.url}} </el-tag> </template> </el-table-column> <el-table-column prop="id" align="center" label="排序" min-width="180" /> <el-table-column fixed="right" label="操作" align="center" width="200"> <template #default="scope"> <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> </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="添加菜单" > <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"> <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" /> <div> <el-form-item label="菜单栏:" :required="true" style="width: 25vw"> <el-input v-model="menuName" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -275,20 +261,8 @@ <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 options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-form-item label="链接:" :required="true" style="width: 25vw"> <el-input v-model="url" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -296,38 +270,8 @@ <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 label="排序:" :required="true" style="width: 25vw"> <el-input v-model="parentId" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -336,23 +280,23 @@ </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow('edit')"> <el-button type="primary" @click="getTableRow"> 确认 </el-button> <el-button @click="add = false">取消</el-button> </div> </template> </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" title="修改用户" > </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" title="修改菜单" > <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"> <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" /> <div> <el-form-item label="菜单栏:" :required="true" style="width: 25vw"> <el-input v-model="menuName" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -360,20 +304,8 @@ <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 options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-form-item label="链接:" :required="true" style="width: 25vw"> <el-input v-model="url" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -381,38 +313,8 @@ <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 label="排序:" :required="true" style="width: 25vw"> <el-input v-model="parentId" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -421,13 +323,13 @@ </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow('edit')"> <el-button type="primary" @click="getTableRowa"> 确认 </el-button> <el-button @click="adda = false">取消</el-button> </div> </template> </el-dialog> </el-dialog> </template> <style scoped> @@ -448,14 +350,7 @@ margin-left: 28%; } #awatch{ height: 450px; } #main-body{ margin-top: -20px; margin-left: 300px; } #main-bodya{ margin-top: -10px; margin-left: 100px; height: 460px; /* margin-top: -60px; */ } </style> UI-Project/src/views/User/rolelist.vue
@@ -1,178 +1,131 @@ <script lang="ts" setup> <script setup> import {Search} from "@element-plus/icons-vue"; import {reactive} from "vue"; import {useRouter} from "vue-router" import { ref } from 'vue' const router = useRouter() const value1 = ref(true) const add = ref(false) const adda = ref(false) const changer = ref(false) import request from "@/utils/request" import { ref, onMounted } from "vue"; // import { ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' // import LanguageMixin from './lang/LanguageMixin' const selectedProjectNoa = ref(''); // 当前选中的角色 // const options = ref<any[]>([]); // 下拉选项列表 const name = ref(''); const tableData = [ { id: '1', long: '1005', wide: '183.6', thick: '1991', time: '2024/4/1', type: '待识别', typea: '1', }, { id: '2', long: '105', wide: '183', time: '2024/4/1', thick: '191', typea: '1', type: '待识别' }, { id: '2', long: '105', wide: '183', time: '2024/4/1', thick: '191', typea: '1', type: '待识别' }, ] const open = () => { ElMessageBox.confirm( '是否删除该条信息?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ) .then(() => { ElMessage({ type: 'success', message: '删除成功!', }) }) .catch(() => { ElMessage({ type: 'info', message: '删除失败', }) }) } const getTableRow = (row,type) =>{ switch (type) { case 'edit' :{ //alert('我接收到子组件传送的编辑信息') router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) break } case 'delete':{ alert('我接收到子组件传送的删除信息') break } } } const dialogForm = () => { ElMessageBox.confirm( '是否重置密码?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ) .then(() => { // this.boxa = true // this.box = false }) } const dialogForma = () => { ElMessageBox.confirm( '是否删除该条信息?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ) } const tableData = ref([]) const slot = ref('') const options = [ { value: 'Option1', label: 'admin', }, { value: 'Option2', label: 'ueser2', }, { value: 'Option3', label: 'ueser3', }, ] const optionsa = [ { valuea: 'Option1', labela: '正常', }, { valuea: 'Option2', labela: '禁用', }, ] const data= reactive({ tableList:[]//table数据 }) const beforeChange = () => { return new Promise((resolve) => { setTimeout(() => { ElMessage.success("修改成功!"); return resolve(true); }, 1000); }); }; // //js层,实战版本,与后台接口交互 // const gettableList = (id) = >{ // xxx接口.({ // id:id // }).then((res)=>{ // //将数据传给el-table绑定的:data=>data.tableList // data.tableList = res.data // }) // } const titleSelectJsona = ref({ processType: [], // //最后将请求函数挂载到vue视图上 // onMounted(() => { // gettableList () }) // const handleInputChangea = async (value: string) => { // if (value) { // await fetchOptionsa(value); // } else { // options.value = []; // 清空选项列表 // } // }; onMounted(() => { // 在组件挂载后调用 fetchOptions('') 来加载初始数据(如果需要) fetchOptionsa(''); }); // 角色下拉选 const fetchOptionsa = async () => { try { // 发送请求到后端接口 const response = await request.post('/loadGlass/sys/role/queryRole',{ key: '' }); if (response.code == 200) { tableData.value = response.data // titleSelectJsona.value.processTypea = response.data.menuList; console.log(response.data); } else { ElMessage.warning(response.data); } } catch (error) { console.error('Error fetching options:', error); } }; // 添加 const getTableRow = async () => { try { const response = await request.post('/loadGlass/sys/role/saveRole', { name: name.value, }); if (response.code == 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; // tableData.value = response.data; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 编辑 const getTableRowa = async () => { try { const response = await request.post('/loadGlass/sys/role/updateRole', { name: name.value, // }) // const delete = () => { // ElMessageBox.confirm( // '是否删除该条信息?', // '提示', // { // confirmButtonText: '是', // cancelButtonText: '取消', // type: 'warning', // } // ) // .then(() => { // }) // } }); if (response.code == 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; tableData.value = response.data; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 删除 const opena = async(row) => { try { const confirmResult = await ElMessageBox.confirm( '是否删除该用户?', '提示', { confirmButtonText: '是', cancelButtonText: '取消', type: 'warning', } ); if (confirmResult === 'confirm') { // 用户点击了“是”,现在调用删除接口 const response = await request.post("/loadGlass/sys/role/delete", { ids: row.id, }) if (response.code === 200) { ElMessage.success(response.message); } else { // 删除失败,您可以处理错误或显示错误信息给用户 ElMessage.error(response.msg); // alert('删除失败:' + deleteResponse.message); } } } catch (error) { // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 console.error('发生错误:', error); } }; const gridOptions = reactive({ border: "full",//表格加边框 keepSource: true,//保持源数据 @@ -207,58 +160,32 @@ 'long': '5', 'wide': '1005', 'thick': '183.6', 'time': '2024/4/1', } ] }) </script> <template> <div> <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">添加用户</el-button> <el-input clearable placeholder="请输入用户名" size="mini" style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" /> <el-input clearable placeholder="请输入邮箱" size="mini" style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" /> <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">查询</el-button > <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">清空</el-button> <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;"> <el-table height="100%" ref="table" <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">添加角色</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="id" align="center" label="用户名" min-width="80" /> <el-table-column prop="long" align="center" label="邮箱" min-width="120" /> <el-table-column prop="time" align="center" label="创建时间" min-width="120" /> <el-table-column align="center" prop="changer" label="是否禁用" min-width="140" > <template #default="scope"> <el-switch v-model="scope.row.changer" :before-change="beforeChange" /> </template> </el-table-column> <el-table-column prop="name" align="center" label="角色" min-width="180" /> <el-table-column fixed="right" label="操作" align="center" width="200"> <template #default> <el-button size="mini" type="text" plain @click="dialogForm">重置密码</el-button> <el-button size="mini" type="text" plain @click="adda = true">编辑</el-button> <el-button size="mini" type="text" plain @click="dialogForma">删除</el-button> <template #default="scope"> <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> </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="添加角色" > <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"> @@ -266,68 +193,8 @@ <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 options" :key="item.value" :label="item.label" :value="item.value" /> </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 label="角色:" :required="true" style="width: 25vw"> <el-input v-model="name" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -336,83 +203,23 @@ </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow('edit')"> <el-button type="primary" @click="getTableRow"> 确认 </el-button> <el-button @click="add = false">取消</el-button> </div> </template> </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" title="修改用户" > </el-dialog> <el-dialog v-model="adda" top="23vh" width="37%" title="修改角色" > <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"> <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></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 options" :key="item.value" :label="item.label" :value="item.value" /> </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 label="角色:" :required="true" style="width: 25vw"> <el-input v-model="name" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -421,13 +228,13 @@ </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow('edit')"> <el-button type="primary" @click="getTableRowa"> 确认 </el-button> <el-button @click="adda = false">取消</el-button> </div> </template> </el-dialog> </el-dialog> </template> <style scoped> @@ -448,14 +255,7 @@ margin-left: 28%; } #awatch{ height: 450px; } #main-body{ margin-top: -20px; margin-left: 300px; } #main-bodya{ margin-top: -10px; margin-left: 100px; height: 460px; /* margin-top: -60px; */ } </style> UI-Project/src/views/User/userlist.vue
@@ -107,6 +107,29 @@ // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; // tableData.value = response.data; } else { // 请求失败,显示错误消息 ElMessage.error(response.msg); } } catch (error) { // 处理错误 console.error(error); } }; // 编辑 const getTableRowa = async () => { try { const response = await request.post('/loadGlass/sys/user/updateUser', { userName: userName.value, password: password.value, name: selectedProjectNoa.value, }); if (response.code == 200) { // 绑定成功,处理逻辑 ElMessage.success(response.message); add.value = false; tableData.value = response.data; } else { // 请求失败,显示错误消息 @@ -131,9 +154,8 @@ ); 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", { ids: [row.id], }) if (response.code === 200) { ElMessage.success(response.message); @@ -284,8 +306,8 @@ <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="用户名:" :required="true" style="width: 25vw"> <el-input v-model="userName" autocomplete="off" /> </el-form-item></div></div> </el-col> </el-row> @@ -295,46 +317,17 @@ <div> <el-form-item label="角色:" :required="true" style="width: 25vw;"> <el-select v-model="value" v-model="selectedProjectNoa" filterable clearable placeholder="请选择角色" style="width: 330px" > <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </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" v-for="item in titleSelectJsona['processTypea']" :key="item.id" :label="item.name" :value="item.name" /> </el-select> </el-form-item></div></div> @@ -345,7 +338,11 @@ <div id="dt" style="font-size: 15px;"> <div> <el-form-item label="密码:" :required="true" style="width: 25vw;"> <el-input autocomplete="off" /> <el-input style="width: 340px;" v-model="password" autocomplete="off" :prefix-icon="Lock" show-password/> </el-form-item></div></div> </el-col> </el-row> @@ -354,13 +351,13 @@ </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="getTableRow('edit')"> <el-button type="primary" @click="getTableRowa"> 确认 </el-button> <el-button @click="adda = false">取消</el-button> </div> </template> </el-dialog> </el-dialog> </template> <style scoped>