From 6877ca889fcc8e9963bb12fe27bff106bcc79ebd Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期二, 28 五月 2024 09:06:57 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/User/userlist.vue | 497 +++++++++++++++++++++++------------------------------- 1 files changed, 210 insertions(+), 287 deletions(-) diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue index 15a996d..bca1fae 100644 --- a/UI-Project/src/views/User/userlist.vue +++ b/UI-Project/src/views/User/userlist.vue @@ -1,178 +1,176 @@ -<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 userName = ref(''); + const password = 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: '鍒犻櫎鎴愬姛锛�', - }) +const tableData = ref([]) +const slot = ref('') +request.post("/loadGlass/sys/user/listByUserName",{ + key: '' +}).then((res) => { + if (res.code == 200) { + console.log(res.data); + tableData.value = res.data + } else { + ElMessage.warning(res.msg) + + } + }); +// 閲嶇疆瀵嗙爜 + const open = async(row) => { + try { + const confirmResult = await ElMessageBox.confirm( + '鏄惁閲嶇疆鐢ㄦ埛瀵嗙爜?', + '鎻愮ず', + { + confirmButtonText: '鏄�', + cancelButtonText: '鍙栨秷', + type: 'warning', + } + ); + if (confirmResult === 'confirm') { + // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛 + var url="/loadGlass/sys/user/resetPassword?userId="+row.id; + console.log(url); + const response = await request.post(url, { + esdId: row.esdId }) - .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: '姝e父', - }, - { - valuea: 'Option2', - labela: '绂佺敤', - }, -] - -const data= reactive({ - tableList:[]//table鏁版嵁 -}) - -const beforeChange = () => { - return new Promise((resolve) => { - setTimeout(() => { - ElMessage.success("淇敼鎴愬姛锛�"); - return resolve(true); - }, 1000); - }); -}; - -// //js灞傦紝瀹炴垬鐗堟湰,涓庡悗鍙版帴鍙d氦浜� -// const gettableList = (id) = >{ -// xxx鎺ュ彛.({ -// id:id -// }).then((res)=>{ -// //灏嗘暟鎹紶缁檈l-table缁戝畾鐨�:data=>data.tableList -// data.tableList = res.data - -// }) -// } + if (response.code === 200) { + ElMessage.success(response.message); + } else { + // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛 + ElMessage.error(response.msg); + // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); + } + } + } catch (error) { + // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑 + console.error('鍙戠敓閿欒:', error); + } +}; +const titleSelectJsona = ref({ + processType: [], -// //鏈�鍚庡皢璇锋眰鍑芥暟鎸傝浇鍒皏ue瑙嗗浘涓� -// 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) { + 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/user/saveUser', { + 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 { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + 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 { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + 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/user/deleteUser", { + 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 delete = () => { -// ElMessageBox.confirm( -// '鏄惁鍒犻櫎璇ユ潯淇℃伅?', -// '鎻愮ず', -// { -// confirmButtonText: '鏄�', -// cancelButtonText: '鍙栨秷', -// type: 'warning', -// } -// ) -// .then(() => { - -// }) -// } const gridOptions = reactive({ border: "full",//琛ㄦ牸鍔犺竟妗� keepSource: true,//淇濇寔婧愭暟鎹� @@ -207,57 +205,39 @@ '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="userName" align="center" label="鐢ㄦ埛鍚�" min-width="180" /> + <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-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="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> </template> </el-table-column> </el-table> </div> </el-card> - </div> - <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"> @@ -266,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 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> @@ -277,46 +257,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> @@ -327,7 +278,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> @@ -336,13 +291,13 @@ </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> <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"> @@ -351,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> @@ -362,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> @@ -412,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> @@ -421,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> @@ -448,14 +378,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> \ No newline at end of file -- Gitblit v1.8.0