From d090edfef3884837b55263cc11e1c9462f724cbc Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期三, 10 十二月 2025 17:01:27 +0800
Subject: [PATCH] 系统管理模块测试调整
---
UI-Project/src/views/Slicecage/slicecage.vue | 10
UI-Project/src/lang/en.js | 6
UI-Project/src/lang/py.js | 6
UI-Project/src/lang/zh.js | 6
UI-Project/src/views/User/permissions.vue | 42 +
UI-Project/src/views/User/userlist.vue | 787 ++++++++++++++++++++++++++++++++++------------------
UI-Project/src/lang/kr.js | 6
UI-Project/src/views/User/userpageNo.vue | 10
8 files changed, 578 insertions(+), 295 deletions(-)
diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index b8d5f71..e041c92 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -412,6 +412,11 @@
height: 'Height',
},
productStock: {
+ inconfirmpassword: 'Please enter the confirmation password',
+ passwordNotMatch: 'The passwords entered do not match',
+ confirmpassword: 'Confirm Password',
+ inputNewPassword: 'Please enter a new password',
+ userIdError: 'Failed to obtain user ID',
configName: 'configure name',
configNamea:'configure name锛�',
configCode: 'Configuration Code',
@@ -805,6 +810,7 @@
finegrinding: 'Fine grinding',
},
hellow: {
+ pleaseConfirm: 'Please double-click to confirm this fault after the issue has been resolved to ensure the system operates normally!',
taskAlreadyClaimed: 'This task has already been claimed and cannot be performed again.',
claimed: 'Already claimed',
claimFailed: 'Failed to receive task',
diff --git a/UI-Project/src/lang/kr.js b/UI-Project/src/lang/kr.js
index b661dab..d90fc9c 100644
--- a/UI-Project/src/lang/kr.js
+++ b/UI-Project/src/lang/kr.js
@@ -409,6 +409,11 @@
height:'雴掛澊',
},
productStock:{
+ inconfirmpassword: '牍勲皜氩堩樃毳� 頇曥澑頃� 鞛呺牓頃橃劯鞖�',
+ passwordNotMatch: '霊� 氩� 鞛呺牓頃� 牍勲皜氩堩樃臧� 鞚检箻頃橃 鞎婌姷雼堧嫟',
+ confirmpassword: '牍勲皜氩堩樃 頇曥澑',
+ inputNewPassword: '靸� 牍勲皜氩堩樃毳� 鞛呺牓頃橃劯鞖�',
+ userIdError: '靷毄鞛� ID 臧�鞝胳槫旮� 鞁ろ尐',
addconfigName:'甑劚 於旉皜',
editconfigName:'甑劚 靾橃爼',
configName:'甑劚 鞚措',
@@ -806,6 +811,7 @@
finegrinding: '鞝曣祼頃橁矊 臧堧嫟',
},
hellow: {
+ pleaseConfirm: '氍胳牅臧� 觳橂Μ霅� 頉勳棎 鞚� 鞛レ暊毳� 頇曥澑頃橂牑氅� 雿旊笖 韥措Ν頃橃棳 鞁滌姢韰滌澊 鞝曥儊鞝侅溂搿� 鞛戨彊頃橂弰搿� 頃橃劯鞖�!',
taskAlreadyClaimed: '鞚� 鞛戩梾鞚� 鞚措 靾橂牴霅橃棃鞙茧┌, 氚橂车 靾橅枆頃� 靾� 鞐嗢姷雼堧嫟.',
claimed: '氚涭潓',
claimFailed: '鞛勲 氚涥赴 鞁ろ尐',
diff --git a/UI-Project/src/lang/py.js b/UI-Project/src/lang/py.js
index ed67e7d..2a73923 100644
--- a/UI-Project/src/lang/py.js
+++ b/UI-Project/src/lang/py.js
@@ -409,6 +409,11 @@
height: '袙褘褋芯褌邪',
},
productStock: {
+ inconfirmpassword: '璇疯緭鍏ョ‘璁ゅ瘑鐮�',
+ passwordNotMatch: '涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�',
+ confirmpassword: '纭瀵嗙爜',
+ inputNewPassword: '璇疯緭鍏ユ柊瀵嗙爜',
+ userIdError: '鐢ㄦ埛ID鑾峰彇澶辫触',
configName:'閰嶇疆鍚�',
configNamea:'閰嶇疆鍚嶏細',
configCode:'閰嶇疆浠g爜',
@@ -725,6 +730,7 @@
finegrinding: '绮剧(',
},
hellow: {
+ pleaseConfirm: '璇峰湪闂澶勭悊瀹屽悗锛屽弻鍑荤‘璁ゆ鏁呴殰锛屼繚璇佺郴缁熸甯歌繍琛岋紒',
taskAlreadyClaimed: '璇ヤ换鍔″凡棰嗗彇锛屼笉鍙噸澶嶆搷浣�',
claimed: '宸查鍙�',
claimFailed: '棰嗗彇浠诲姟澶辫触',
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 7a4d0e9..175fc1a 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -411,6 +411,11 @@
height:'楂樺害',
},
productStock:{
+ inconfirmpassword: '璇疯緭鍏ョ‘璁ゅ瘑鐮�',
+ passwordNotMatch: '涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�',
+ confirmpassword: '纭瀵嗙爜',
+ inputNewPassword: '璇疯緭鍏ユ柊瀵嗙爜',
+ userIdError: '鐢ㄦ埛ID鑾峰彇澶辫触',
addconfigName:'娣诲姞閰嶇疆',
editconfigName:'淇敼閰嶇疆',
configName:'閰嶇疆鍚�',
@@ -814,6 +819,7 @@
finegrinding: '绮剧(',
},
hellow: {
+ pleaseConfirm: '璇峰湪闂澶勭悊瀹屽悗锛屽弻鍑荤‘璁ゆ鏁呴殰锛屼繚璇佺郴缁熸甯歌繍琛岋紒',
taskAlreadyClaimed: '璇ヤ换鍔″凡棰嗗彇锛屼笉鍙噸澶嶆搷浣�',
claimed: '宸查鍙�',
claimFailed: '棰嗗彇浠诲姟澶辫触',
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index eac6658..5d0d667 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1248,6 +1248,7 @@
<el-icon><WarnTriangleFilled /></el-icon>
<span class="alert-text">
{{ alertText }} (id:{{ alertMessage }})
+ <!-- <span class="confirm-text">{{ $t('hellow.pleaseConfirm') }}</span> -->
</span>
</div>
<button @click="showAlert = false" class="close-btn">脳</button>
@@ -1265,7 +1266,7 @@
style="width: 100%;"
>
<el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="100" />
- <el-table-column
+ <el-table-column
:label="$t('hellow.content')"
align="center"
min-width="220"
@@ -2035,4 +2036,11 @@
.el-loading-mask {
z-index: 2000 !important;
}
+.confirm-text {
+ color: rgb(242, 121, 8);
+ display: block; /* 寮哄埗鎹㈣ */
+ text-align: center; /* 姘村钩灞呬腑 */
+ margin-top: 4px; /* 涓庝笂涓�琛屼繚鎸侀棿璺濓紝鍙�� */
+ font-weight: 500; /* 鍙�夛紝鍔犵矖绐佸嚭 */
+}
</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/permissions.vue b/UI-Project/src/views/User/permissions.vue
index e3445ad..4d40bda 100644
--- a/UI-Project/src/views/User/permissions.vue
+++ b/UI-Project/src/views/User/permissions.vue
@@ -20,17 +20,27 @@
const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁
const tableData = ref([])
const slot = ref('')
- request.get("/loadGlass/sys/menu/nav").then((res) => {
- if (res.code == 200) {
- tableData.value = res.data.tree
- } else {
- ElMessage.warning(res.msg)
- }
- });
+ const fetchList = async () => {
+ try {
+ const response = await request.get('/loadGlass/sys/menu/getMenuTree', {
+ params: {
+ key: -1
+ }
+ });
+ if (response.code === 200) {
+ tableData.value = response.data
+ } else {
+ ElMessage.warning(response.data);
+ }
+ } catch (error) {
+ console.error('Error fetching options:', error);
+ }
+};
const titleSelectJsona = ref({
processType: [],
})
onMounted(() => {
+ fetchList()
fetchOptionsa('');
});
// 瑙掕壊涓嬫媺閫�
@@ -96,12 +106,13 @@
menuName: menuName.value,
listSort: listSort.value,
url: url.value,
+ parentId: 0
});
if (response.code === 200) {
ElMessage.success(response.message);
add.value = false;
- tableData.value = response.data;
+ fetchList()
menuName.value = '';
listSort.value = '';
url.value = '';
@@ -137,7 +148,7 @@
if (response.code === 200) {
ElMessage.success(response.message);
addb.value = false;
- tableData.value = response.data;
+ fetchList()
menuName.value = '';
listSort.value = '';
url.value = '';
@@ -186,7 +197,7 @@
if (response.code === 200) {
ElMessage.success(response.message);
adda.value = false;
- tableData.value = response.data;
+ fetchList()
menuName.value = '';
listSort.value = '';
url.value = '';
@@ -220,7 +231,7 @@
if (response.code === 200) {
ElMessage.success(response.message);
addc.value = false;
- tableData.value = response.data;
+ fetchList()
menuName.value = '';
listSort.value = '';
url.value = '';
@@ -244,11 +255,14 @@
}
);
if (confirmResult === 'confirm') {
- const response = await request.post("/loadGlass/sys/menu/deleteMenu", {
- menuId: row.id,
- })
+ const url = "/loadGlass/sys/menu/deleteMenu?menuId=" + row.id;
+ const response = await request.post(url);
+ // const response = await request.post("/loadGlass/sys/menu/deleteMenu", {
+ // menuId: row.id,
+ // })
if (response.code === 200) {
ElMessage.success(response.message);
+ fetchList()
} else {
ElMessage.error(response.msg);
}
diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue
index 8395779..5d1f44b 100644
--- a/UI-Project/src/views/User/userlist.vue
+++ b/UI-Project/src/views/User/userlist.vue
@@ -1,363 +1,596 @@
<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
-const router = useRouter()
-const add = ref(false)
-const adda = ref(false)
-import request from "@/utils/request"
-import { ref, onMounted } from "vue";
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { useI18n } from 'vue-i18n'
-const { t } = useI18n()
-let language = ref(localStorage.getItem('lang') || 'zh')
+import { Search, Lock } from "@element-plus/icons-vue"; // 鏂板Lock鍥炬爣瀵煎叆
+import { reactive, ref, onMounted } from "vue"; // 鍚堝苟瀵煎叆
+import { useRouter } from "vue-router";
+const router = useRouter();
+import request from "@/utils/request";
+import { ElMessage, ElMessageBox } from "element-plus";
+import { useI18n } from "vue-i18n";
+const { t } = useI18n();
+
+let language = ref(localStorage.getItem("lang") || "zh");
const selectedProjectNoa = ref(null);
-const userName = ref('');
-const password = ref('');
-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 listByUserName = async () => {
+const userName = ref("");
+const password = ref("");
+const confirmPassword = ref(""); // 鏂板锛氱‘璁ゅ瘑鐮�
+const editPassword = ref(""); // 鏂板锛氱紪杈戞椂鐨勫瘑鐮�
+const editConfirmPassword = ref(""); // 鏂板锛氱紪杈戞椂鐨勭‘璁ゅ瘑鐮�
+const tableData = ref([]);
+const slot = ref("");
+const add = ref(false); // 娣诲姞寮圭獥
+const adda = ref(false); // 缂栬緫寮圭獥
+
+// 鑾峰彇鐢ㄦ埛鍒楄〃
+const listByUserName = async () => {
try {
- const response = await request.post('/loadGlass/sys/user/listByUserName',{
- key: ''
- });
- if (response.code === 200) {
- tableData.value = response.data
- } else {
- ElMessage.warning(response.data);
- }
- } catch (error) {
- }
-};
-// 閲嶇疆瀵嗙爜
- const open = async(row) => {
- try {
- const confirmResult = await ElMessageBox.confirm(
- t('productStock.repassword'),
- t('productStock.prompt'),
- {
- confirmButtonText: t('productStock.yes'),
- cancelButtonText: t('productStock.cancel'),
- type: 'warning',
- }
- );
- if (confirmResult === 'confirm') {
- var url="/loadGlass/sys/user/resetPassword?userId="+row.id;
- const response = await request.post(url, {
- esdId: row.esdId
- })
+ const response = await request.post("/loadGlass/sys/user/listByUserName", {
+ key: "",
+ });
if (response.code === 200) {
- ElMessage.success(response.message);
+ tableData.value = response.data;
+ } else {
+ ElMessage.warning(response.msg);
+ }
+ } catch (error) {
+ ElMessage.error( );
+ console.error("鑾峰彇鐢ㄦ埛鍒楄〃澶辫触锛�", error);
+ }
+};
+
+// 閲嶇疆瀵嗙爜
+const open = async (row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t("productStock.repassword"),
+ t("productStock.prompt"),
+ {
+ confirmButtonText: t("productStock.yes"),
+ cancelButtonText: t("productStock.cancel"),
+ type: "warning",
+ }
+ );
+ if (confirmResult === "confirm") {
+ const url = "/loadGlass/sys/user/resetPassword?userId=" + row.id;
+ const response = await request.post(url, {
+ esdId: row.esdId,
+ });
+ if (response.code === 200) {
+ ElMessage.success(response.message);
} else {
- ElMessage.error(response.msg);
- }
- }
+ ElMessage.error(response.msg);
+ }
+ }
} catch (error) {
- }
-};
+ if (error !== "cancel") { // 鎺掗櫎鍙栨秷鎿嶄綔鐨勯敊璇�
+ ElMessage.error( );
+ console.error("閲嶇疆瀵嗙爜澶辫触锛�", error);
+ }
+ }
+};
+
const titleSelectJsona = ref({
- processType: [],
-})
-onMounted(() => {
- fetchOptionsa('');
- listByUserName('');
-});
- // 瑙掕壊涓嬫媺閫�
- const fetchOptionsa = async () => {
+ processTypea: [], // 淇瀛楁鍚嶆嫾鍐�
+});
+
+// 鑾峰彇瑙掕壊鍒楄〃
+const fetchOptionsa = async () => {
try {
- const response = await request.post('/loadGlass/sys/role/queryRole',{
- key: ''
- });
- if (response.code === 200) {
- titleSelectJsona.value.processTypea = response.data;
- } else {
- ElMessage.warning(response.data);
- }
+ const response = await request.post("/loadGlass/sys/role/queryRole", {
+ key: "",
+ });
+ if (response.code === 200) {
+ titleSelectJsona.value.processTypea = response.data;
+ } else {
+ ElMessage.warning(response.msg);
+ }
} catch (error) {
- }
-};
-// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮
-function handleEdit(row) {
+ ElMessage.error( );
+ console.error("鑾峰彇瑙掕壊鍒楄〃澶辫触锛�", error);
+ }
+};
+
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮
+function handleEdit(row) {
userName.value = row.userName;
- if (row.roleList && row.roleList.length > 0) {
- const firstRole = row.roleList[0];
- selectedProjectNoa.value = firstRole.id; // 璁剧疆涓篒D锛岃�屼笉鏄痭ame
- }
+ editPassword.value = ""; // 娓呯┖缂栬緫瀵嗙爜
+ editConfirmPassword.value = ""; // 娓呯┖缂栬緫纭瀵嗙爜
+ if (row.roleList && row.roleList.length > 0) {
+ const firstRole = row.roleList[0];
+ selectedProjectNoa.value = firstRole.id;
+ }
adda.value = true;
- window.localStorage.setItem('id', row.id)
-}
-function closeDialog(row) {
- add.value = false;
- userName.value = '';
- nickName.value = '';
- password.value = '';
- selectedProjectNoa.value = '';
+ window.localStorage.setItem("id", row.id);
}
-function closeDialoga(row) {
- adda.value = false;
- userName.value = '';
- nickName.value = '';
- password.value = '';
+
+// 鍏抽棴娣诲姞寮圭獥
+function closeDialog() {
+ add.value = false;
+ userName.value = "";
+ password.value = "";
+ confirmPassword.value = ""; // 娓呯┖纭瀵嗙爜
+ selectedProjectNoa.value = "";
}
-// 娣诲姞
+
+// 鍏抽棴缂栬緫寮圭獥
+function closeDialoga() {
+ adda.value = false;
+ userName.value = "";
+ editPassword.value = ""; // 娓呯┖缂栬緫瀵嗙爜
+ editConfirmPassword.value = ""; // 娓呯┖缂栬緫纭瀵嗙爜
+ selectedProjectNoa.value = "";
+}
+
+// 娣诲姞鐢ㄦ埛
const getTableRow = async () => {
- if (!userName.value) {
- ElMessage.error(t('productStock.inusername'))
- return
+ // 楠岃瘉鐢ㄦ埛鍚�
+ if (!userName.value) {
+ ElMessage.error(t("productStock.inusername"));
+ return;
}
- if (!selectedProjectNoa.value) {
- ElMessage.error(t('productStock.inrole'))
- return
+ // 楠岃瘉瑙掕壊
+ if (!selectedProjectNoa.value) {
+ ElMessage.error(t("productStock.inrole"));
+ return;
}
- if (!password.value) {
- ElMessage.error(t('productStock.inpassword'))
- return
+ // 楠岃瘉瀵嗙爜
+ if (!password.value) {
+ ElMessage.error(t("productStock.inpassword"));
+ return;
}
+ // 楠岃瘉纭瀵嗙爜
+ if (!confirmPassword.value) {
+ ElMessage.error(t("productStock.inconfirmpassword")); // 闇�鍦╥18n涓坊鍔犺瀛楁
+ return;
+ }
+ // 楠岃瘉瀵嗙爜涓�鑷存��
+ if (password.value !== confirmPassword.value) {
+ ElMessage.error(t("productStock.passwordNotMatch")); // 闇�鍦╥18n涓坊鍔犺瀛楁
+ return;
+ }
+
try {
- const response = await request.post('/loadGlass/sys/user/saveUser', {
+ const response = await request.post("/loadGlass/sys/user/saveUser", {
userName: userName.value,
nickName: userName.value,
password: password.value,
roleList: [
- {
- id: selectedProjectNoa.value,
- }]
- });
+ {
+ id: selectedProjectNoa.value,
+ },
+ ],
+ });
if (response.code === 200) {
ElMessage.success(response.message);
- add.value = false;
- listByUserName('');
- // tableData.value = response.data;
+ closeDialog(); // 鍏抽棴寮圭獥骞舵竻绌鸿〃鍗�
+ listByUserName(); // 鍒锋柊鍒楄〃
} else {
ElMessage.error(response.message);
}
} catch (error) {
+ ElMessage.error( );
+ console.error("娣诲姞鐢ㄦ埛澶辫触锛�", error);
}
};
-// 缂栬緫
+
+// 缂栬緫鐢ㄦ埛
const getTableRowa = async () => {
- if (!userName.value) {
- ElMessage.error(t('productStock.inusername'))
- return
+ // 楠岃瘉鐢ㄦ埛鍚�
+ if (!userName.value) {
+ ElMessage.error(t("productStock.inusername"));
+ return;
}
- if (!selectedProjectNoa.value) {
- ElMessage.error(t('productStock.inrole'))
- return
+ // 楠岃瘉瑙掕壊
+ if (!selectedProjectNoa.value) {
+ ElMessage.error(t("productStock.inrole"));
+ return;
}
- if (!password.value) {
- ElMessage.error(t('productStock.inpassword'))
- return
+ // 濡傛灉濉啓浜嗗瘑鐮侊紝楠岃瘉瀵嗙爜鍜岀‘璁ゅ瘑鐮�
+ if (editPassword.value || editConfirmPassword.value) {
+ if (!editPassword.value) {
+ ElMessage.error(t("productStock.inpassword"));
+ return;
+ }
+ if (!editConfirmPassword.value) {
+ ElMessage.error(t("productStock.inconfirmpassword"));
+ return;
+ }
+ if (editPassword.value !== editConfirmPassword.value) {
+ ElMessage.error(t("productStock.passwordNotMatch"));
+ return;
+ }
}
- let id = window.localStorage.getItem('id')
+
+ let id = window.localStorage.getItem("id");
+ if (!id) {
+ ElMessage.error(t("productStock.userIdError"));
+ return;
+ }
try {
- const response = await request.post('/loadGlass/sys/user/updateUser', {
+ // 鏋勫缓璇锋眰鍙傛暟
+ const requestData = {
id: id,
userName: userName.value,
roleList: [
- {
- id: selectedProjectNoa.value,
- }]
- }
- );
+ {
+ id: selectedProjectNoa.value,
+ },
+ ],
+ };
+ // 濡傛灉濉啓浜嗗瘑鐮侊紝娣诲姞鍒拌姹傚弬鏁颁腑
+ if (editPassword.value) {
+ requestData.password = editPassword.value;
+ }
+
+ const response = await request.post("/loadGlass/sys/user/updateUser", requestData);
if (response.code === 200) {
ElMessage.success(response.message);
- adda.value = false;
- listByUserName('');
- tableData.value = response.data;
+ closeDialoga(); // 鍏抽棴寮圭獥骞舵竻绌鸿〃鍗�
+ listByUserName(); // 鍒锋柊鍒楄〃
} else {
ElMessage.error(response.message);
}
} catch (error) {
+ ElMessage.error( );
+ console.error("缂栬緫鐢ㄦ埛澶辫触锛�", error);
}
};
-// 鍒犻櫎
- const opena = async(row) => {
+
+// 鍒犻櫎鐢ㄦ埛
+const opena = async (row) => {
try {
- const confirmResult = await ElMessageBox.confirm(
- t('productStock.deusername'),
- t('productStock.prompt'),
- {
- confirmButtonText: t('productStock.yes'),
- cancelButtonText: t('productStock.cancel'),
- type: 'warning',
- }
+ const confirmResult = await ElMessageBox.confirm(
+ t("productStock.deusername"),
+ t("productStock.prompt"),
+ {
+ confirmButtonText: t("productStock.yes"),
+ cancelButtonText: t("productStock.cancel"),
+ type: "warning",
+ }
);
- if (confirmResult === 'confirm') {
- const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id])
- if (response.code === 200) {
- ElMessage.success(response.message);
- listByUserName('');
- } else {
- ElMessage.error(response.msg);
- }
- }
+ if (confirmResult === "confirm") {
+ const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id]);
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ listByUserName(); // 鍒锋柊鍒楄〃
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
} catch (error) {
- }
-};
+ if (error !== "cancel") {
+ ElMessage.error( );
+ console.error("鍒犻櫎鐢ㄦ埛澶辫触锛�", error);
+ }
+ }
+};
+
+onMounted(() => {
+ fetchOptionsa();
+ listByUserName();
+});
</script>
+
<template>
<div>
- <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" id="searchButton" @click="add = true">{{ $t('productStock.addusers') }}</el-button>
- <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="750" ref="table"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="userName" align="center" :label="$t('productStock.username')" min-width="180" />
- <el-table-column align="center" :label="$t('productStock.role')" 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="$t('productStock.operate')" align="center" width="270">
+ <el-button
+ type="primary"
+ style="margin-top: 10px; margin-left: 10px"
+ id="searchButton"
+ @click="add = true"
+ >
+ {{ $t("productStock.addusers") }}
+ </el-button>
+ <el-card style="flex: 1; margin-left: 10px; margin-top: 20px">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+ <el-table
+ height="750"
+ ref="table"
+ :data="tableData"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
+ >
+ <el-table-column
+ prop="userName"
+ align="center"
+ :label="$t('productStock.username')"
+ min-width="180"
+ />
+ <el-table-column
+ align="center"
+ :label="$t('productStock.role')"
+ min-width="80"
+ >
<template #default="scope">
- <el-button type="text" plain @click="open(scope.row)">{{ $t('productStock.resetpassword') }}</el-button>
- <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
- <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
+ <el-tag v-for="role in scope.row.roleList" :key="role.id">
+ {{ role.name }}
+ </el-tag>
</template>
- </el-table-column>
+ </el-table-column>
+ <el-table-column
+ fixed="right"
+ :label="$t('productStock.operate')"
+ align="center"
+ width="270"
+ >
+ <template #default="scope">
+ <el-button
+ type="text"
+ plain
+ @click="open(scope.row)"
+ >
+ {{ $t('productStock.resetpassword') }}
+ </el-button>
+ <el-button
+ type="text"
+ plain
+ @click="handleEdit(scope.row)"
+ >
+ {{ $t('productStock.exit') }}
+ </el-button>
+ <el-button
+ type="text"
+ plain
+ @click="opena(scope.row)"
+ >
+ {{ $t('productStock.delete') }}
+ </el-button>
+ </template>
+ </el-table-column>
</el-table>
</div>
</el-card>
</div>
- <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusers')">
- <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form label-width="150px">
- <el-form label-width="105px" 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 v-model="userName" autocomplete="off" style="width: 350px;" :placeholder="$t('productStock.inusername')" />
- </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.rolea')" :required="true" style="width: 25vw;">
- <el-select
- v-model="selectedProjectNoa"
- filterable
- clearable
- :placeholder="$t('productStock.inrole')"
- style="width: 350px;"
- >
- <el-option
- v-for="item in titleSelectJsona['processTypea']"
- :key="item.id"
- :label="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: 350px;"
- v-model="password"
- :placeholder="$t('productStock.inpassword')"
- autocomplete="off"
- :prefix-icon="Lock"
- show-password/>
- </el-form-item></div></div>
- </el-col>
- </el-row>
+
+ <!-- 娣诲姞鐢ㄦ埛寮圭獥 -->
+ <el-dialog
+ v-model="add"
+ top="23vh"
+ width="37%"
+ :title="$t('productStock.addusers')"
+ @close="closeDialog"
+ >
+ <div style="margin-left: -50px; margin-top: 10px; margin-bottom: 10px">
+ <el-form label-width="150px">
+ <el-form label-width="105px" label-position="right">
+ <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('productStock.usernamea')"
+ :required="true"
+ style="width: 25vw"
+ >
+ <el-input
+ v-model="userName"
+ autocomplete="off"
+ style="width: 350px"
+ :placeholder="$t('productStock.inusername')"
+ />
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px">
+ <el-form-item
+ :label="$t('productStock.rolea')"
+ :required="true"
+ style="width: 25vw"
+ >
+ <el-select
+ v-model="selectedProjectNoa"
+ filterable
+ clearable
+ :placeholder="$t('productStock.inrole')"
+ style="width: 350px"
+ >
+ <el-option
+ v-for="item in titleSelectJsona.processTypea"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px">
+ <el-form-item
+ :label="$t('productStock.password')"
+ :required="true"
+ style="width: 25vw"
+ >
+ <el-input
+ v-model="password"
+ :placeholder="$t('productStock.inpassword')"
+ autocomplete="off"
+ :prefix-icon="Lock"
+ show-password
+ style="width: 350px"
+ />
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ <!-- 鏂板纭瀵嗙爜 -->
+ <el-row style="margin-top: 10px">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px">
+ <el-form-item
+ :label="$t('productStock.confirmpassword')"
+ :required="true"
+ style="width: 25vw"
+ >
+ <el-input
+ v-model="confirmPassword"
+ :placeholder="$t('productStock.inconfirmpassword')"
+ autocomplete="off"
+ :prefix-icon="Lock"
+ show-password
+ style="width: 350px"
+ />
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
</el-form>
- </el-form>
- </div>
+ </el-form>
+ </div>
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRow">
{{ $t('productStock.sure') }}
</el-button>
- <el-button @click="closeDialog">{{ $t('productStock.cancel') }}</el-button>
+ <el-button @click="closeDialog">
+ {{ $t('productStock.cancel') }}
+ </el-button>
</div>
</template>
- </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 ref="formRef" label-width="150px">
- <el-form label-width="105px" 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="userName" autocomplete="off" style="width: 350px;"/>
- </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.rolea')" :required="true" style="width: 25vw;">
- <el-select
- v-model="selectedProjectNoa"
- filterable
- clearable
- :placeholder="$t('productStock.inrole')"
- style="width: 350px;"
- >
- <el-option
- v-for="item in titleSelectJsona['processTypea']"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- />
- </el-select>
- </el-form-item></div></div>
- </el-col>
- </el-row>
+ </el-dialog>
+
+ <!-- 缂栬緫鐢ㄦ埛寮圭獥 -->
+ <el-dialog
+ v-model="adda"
+ top="23vh"
+ width="37%"
+ :title="$t('productStock.reusername')"
+ @close="closeDialoga"
+ >
+ <div style="margin-left: -50px; margin-top: 10px; margin-bottom: 10px">
+ <el-form ref="formRef" label-width="150px">
+ <el-form label-width="105px" label-position="right">
+ <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('productStock.usernamea')"
+ :required="true"
+ style="width: 25vw"
+ >
+ <el-input
+ v-model="userName"
+ :placeholder="$t('productStock.inusername')"
+ autocomplete="off"
+ style="width: 350px"
+ />
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px">
+ <el-form-item
+ :label="$t('productStock.rolea')"
+ :required="true"
+ style="width: 25vw"
+ >
+ <el-select
+ v-model="selectedProjectNoa"
+ filterable
+ clearable
+ :placeholder="$t('productStock.inrole')"
+ style="width: 350px"
+ >
+ <el-option
+ v-for="item in titleSelectJsona.processTypea"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ <!-- 鏂板缂栬緫瀵嗙爜 -->
+ <el-row style="margin-top: 10px">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px">
+ <el-form-item
+ :label="$t('productStock.password')"
+ :required="false"
+ style="width: 25vw"
+ >
+ <el-input
+ v-model="editPassword"
+ :placeholder="$t('productStock.inputNewPassword')"
+ autocomplete="off"
+ :prefix-icon="Lock"
+ show-password
+ style="width: 350px"
+ />
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ <!-- 鏂板缂栬緫纭瀵嗙爜 -->
+ <el-row style="margin-top: 10px">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px">
+ <el-form-item
+ :label="$t('productStock.confirmpassword')"
+ :required="false"
+ style="width: 25vw"
+ >
+ <el-input
+ v-model="editConfirmPassword"
+ :placeholder="$t('productStock.inconfirmpassword')"
+ autocomplete="off"
+ :prefix-icon="Lock"
+ show-password
+ style="width: 350px"
+ />
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
</el-form>
- </el-form>
- </div>
+ </el-form>
+ </div>
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRowa">
{{ $t('productStock.sure') }}
</el-button>
- <el-button @click="closeDialoga">{{ $t('productStock.cancel') }}</el-button>
+ <el-button @click="closeDialoga">
+ {{ $t('productStock.cancel') }}
+ </el-button>
</div>
</template>
- </el-dialog>
+ </el-dialog>
</template>
+
<style scoped>
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+#dt {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 100px;
+}
+#dta {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 80%;
+}
+#dialog-footer {
text-align: center;
margin-top: -15px;
}
-#message{
+#message {
text-align: center;
align-items: center;
color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
}
-#awatch{
+#awatch {
height: 460px;
- /* margin-top: -60px; */
}
</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/userpageNo.vue b/UI-Project/src/views/User/userpageNo.vue
index 7c115a2..31e51e3 100644
--- a/UI-Project/src/views/User/userpageNo.vue
+++ b/UI-Project/src/views/User/userpageNo.vue
@@ -134,10 +134,14 @@
ElMessage.error(t('productStock.inconfigValue'))
return
}
- if (!isEnable.value) {
- ElMessage.error(t('searchOrder.choicestartstatus'))
- return
+ if (isEnable.value === '' || isEnable.value === undefined || isEnable.value === null) {
+ ElMessage.error(t('searchOrder.choicestartstatus'));
+ return;
}
+ // if (!isEnable.value) {
+ // ElMessage.error(t('searchOrder.choicestartstatus'))
+ // return
+ // }
try {
const response = await request.post('/loadGlass/sys/sysConfig/updateConfig',{
id: id,
--
Gitblit v1.8.0