From fa837d5f98b6d66185d5fb171948d90bd5acd793 Mon Sep 17 00:00:00 2001 From: 艺术家 <10819716+q100102@user.noreply.gitee.com> Date: 星期三, 11 六月 2025 17:14:37 +0800 Subject: [PATCH] 代码提交 --- 项目代码/伸缩杆/client/src/views/tts/UserManagement/Usermanagement.vue | 306 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 304 insertions(+), 2 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue" index ee75184..2505a94 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue" @@ -26,6 +26,12 @@ > 鐢ㄦ埛鍗曚綅 </div> + <div + :class="['item', isactive == 5 ? 'isactive' : '']" + @click="changeactive(5)" + > + 鐢ㄦ埛IP + </div> </div> <div class="serch"> <div class="time_box"> @@ -150,6 +156,23 @@ type="primary" size="small" @click="AddUnit" + style=" + width: 5.5rem; + height: 2rem; + font-size: 0.88rem; + display: flex; + align-items: center; + " + class="text_btn" + ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon + >鏂板缓</el-button + > + <!-- 鐢ㄦ埛IP鏂板缓 --> + <el-button + v-if="isactive == 5" + type="primary" + size="small" + @click="Addip" style=" width: 5.5rem; height: 2rem; @@ -557,6 +580,63 @@ cursor: 'pointer', }" @click="EditUnit(scope.row)" + >缂栬緫</span + > + </template></el-table-column + > + </el-table> + + <!-- 鐢ㄦ埛IP --> + <el-table + empty-text="鏆傛棤鏁版嵁" + :height="isMin ? '950' : '450'" + v-if="isactive == 5" + :data="ipData" + style="width: 100%" + :header-cell-style=" + isMin + ? { + background: 'rgba(250,250,250,1)', + color: '#101010', + fontSize: '1.5rem', + height: '3rem', + border: 'none', + } + : { + background: 'rgba(250,250,250,1)', + color: '#101010', + fontSize: '0.88rem', + height: '3rem', + border: 'none', + } + " + :row-style=" + isMin + ? { + color: '#101010', + fontSize: '1.88rem', + height: '3rem', + } + : { + color: '#101010', + fontSize: '0.88rem', + height: '3rem', + } + " + @selection-change="IpSelectionChange" + > + <el-table-column type="selection" align="center" /> + <el-table-column prop="iPaddress" label="ip鍦板潃" align="center" /> + <el-table-column prop="addressname" label="妫�淇亾" align="center" /> + <el-table-column label="鎿嶄綔" align="center"> + <template #default="scope"> + <span + :style="{ + color: 'blue', + fontSize: isMin ? '1.88rem' : '0.88rem', + cursor: 'pointer', + }" + @click="Editip(scope.row)" >缂栬緫</span > </template></el-table-column @@ -1271,6 +1351,120 @@ </template> </el-dialog> + <!-- 鐢ㄦ埛ip鏂板缓/缂栬緫 --> + <el-dialog + v-model="dialogipVisible" + title="" + width="40%" + :before-close="handleClose" + :show-close="false" + :align-center="true" + @close="resetForm4(formipRef)" + > + <template #title> + <div + style=" + height: 3.63rem; + display: flex; + border-bottom: 1px solid #e6e6e6; + " + > + <span + :style="{ + color: 'rgb(16, 16, 16)', + fontSize: isMin ? '2rem' : '1rem', + fontWeight: 'bold', + }" + >鐢ㄦ埛ip</span + > + </div> + </template> + <el-form + :model="formip" + label-width="auto" + label-position="top" + ref="formipRef" + :rules="ipRules" + :hide-required-asterisk="true" + > + <el-form-item prop="iPaddress"> + <template #label> + <div style="display: flex; align-items: flex-end"> + <span + :style="{ + color: 'red', + marginRight: '0.2rem', + fontSize: '2rem', + }" + >*</span + > + <span + :style="{ + fontSize: isMin ? '2rem' : '0.88rem', + color: 'black', + fontWeight: bold, + }" + >ip鍦板潃</span + > + </div> + </template> + <el-input + style="height: 2rem" + size="small" + v-model="formip.iPaddress" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + <el-form-item prop="addressname"> + <template #label> + <div style="display: flex; align-items: flex-end"> + <span + :style="{ + color: 'red', + marginRight: '0.2rem', + fontSize: '2rem', + }" + >*</span + > + <span + :style="{ + fontSize: isMin ? '2rem' : '0.88rem', + color: 'black', + fontWeight: bold, + }" + >妫�淇亾</span + > + </div> + </template> + <el-input + style="height: 2rem" + size="small" + v-model="formip.addressname" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer" style="text-align: center"> + <el-button + size="small" + @click="dialogipVisible = false" + style="height: 2rem; font-size: 0.88rem" + >鍙栨秷</el-button + > + + <el-button + size="small" + type="primary" + @click="saveIp(formipRef)" + style="height: 2rem; font-size: 0.88rem" + > + 淇濆瓨 + </el-button> + </div> + </template> + </el-dialog> + <el-dialog v-model="imgdialogVisible" width="35%" top="3vh"> <div style=" @@ -1352,6 +1546,10 @@ AddUserUnit, EditUserUnit, DeleteUserUnit, + GetIPData, + AddIP, + EditIP, + DeleteIP, } from "@/api/user"; import { useRouter } from "vue-router"; import { formatTime } from "@/utils/index.js"; @@ -1681,6 +1879,19 @@ unitName: "", }; }; +const resetForm4 = (formEl) => { + if (!formEl) return; + formEl.resetFields(); + formip.value = { + creater: "", + createDate: "", + modifier: "", + modifyDate: "", + id: 0, + iPaddress: "", + addressname: "", + }; +}; const handlePictureCardPreview = (uploadFile) => { dialogImageUrl.value = uploadFile.url; @@ -1879,6 +2090,19 @@ trigger: "blur", }, }); +const ipRules = reactive({ + iPaddress: { + required: true, + message: "璇疯緭鍏P鍦板潃", + trigger: "blur", + }, + addressname: { + required: true, + message: "璇疯緭鍏ユ淇亾", + trigger: "blur", + }, +}); + const formRole = ref({ roleName: "", description: "", @@ -2044,6 +2268,10 @@ Unittype.value = "鏂板缓"; UnitdialogVisible.value = true; }; +const Addip = () => { + ipType.value = "鏂板缓"; + dialogipVisible.value = true; +}; //鑾峰彇鐢ㄦ埛鍗曚綅 const getUnit = () => { const startTime = formatTime(queryForm.value.selectTime[0]); @@ -2100,6 +2328,8 @@ } else if (isactive.value == 4) { selectoptions.value = unitOptions; getUnit(); + } else if ((isactive.value = 5)) { + getIpData(); } }; @@ -2119,6 +2349,10 @@ ids.value = val.map((item) => item.id); }; const UnitSelectionChange = (val) => { + ids.value = []; + ids.value = val.map((item) => item.id); +}; +const IpSelectionChange = (val) => { ids.value = []; ids.value = val.map((item) => item.id); }; @@ -2150,6 +2384,11 @@ DeleteUserUnit(ids.value).then((res) => { ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" }); getUnit(); + }); + } else if (isactive.value == 5) { + DeleteIP(ids.value).then((res) => { + ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" }); + getIpData(); }); } }; @@ -2241,11 +2480,74 @@ ElMessage.error("鏁版嵁鎻愪氦澶辫触"); onloading.value.close(); registerdialogVisible.value = false; - // hideLoading(); } }; xmlResquest.send(JSON.stringify({ Base64Image: imgbase64.value })); } +const ipData = ref([]); +const dialogipVisible = ref(false); +const ipType = ref("鏂板缓"); +const formip = ref({ + creater: "", + createDate: "", + modifier: "", + modifyDate: "", + id: 0, + iPaddress: "", + addressname: "", +}); +const formipRef = ref(null); +//鑾峰彇ip鏁版嵁 +const getIpData = () => { + // 鏌ヨ鏉′欢 + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); + const filter = [ + { + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "like", + }, + { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, + { name: "createDate", value: endTime, displayType: "LessOrEqual" }, + ]; + GetIPData({ + ...pageQuery.value, + filter, + }).then((res) => { + ipData.value = res.rows; + pageTotal.value = res.total; + }); +}; +const Editip = (val) => { + ipType.value = "淇敼"; + let obj = Object.assign({}, val); + formip.value = obj; + dialogipVisible.value = true; +}; +//淇濆瓨ip +const saveIp = async (formEl) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + if (ipType.value == "淇敼") { + EditIP(formip.value).then((res) => { + ElMessage({ message: "淇敼鎴愬姛", type: "success" }); + dialogipVisible.value = false; + getIpData(); + }); + } else { + AddIP(formip.value).then((res) => { + ElMessage({ message: "娣诲姞鎴愬姛", type: "success" }); + dialogipVisible.value = false; + getIpData(); + }); + } + } else { + console.log("error submit!", fields); + } + }); +}; onMounted(() => { if (window.innerWidth <= 1080) { @@ -2413,7 +2715,7 @@ flex-direction: column; .checkbox { - width: 35rem; + width: 45rem; display: flex; justify-content: space-between; margin-top: 1rem; -- Gitblit v1.9.3