diff --git a/src/views/register.vue b/src/views/register.vue
index 8b08645..a49e34c 100644
--- a/src/views/register.vue
+++ b/src/views/register.vue
@@ -22,7 +22,8 @@
-
+
+
@@ -34,7 +35,7 @@
-
+
@@ -184,6 +185,49 @@ const filterDisabledDept = (deptList) => {
})
}
+// 中文姓名转英文姓名
+const convertToEnglishName = () => {
+ if (!registerForm.value.nickName.trim()) {
+ registerForm.value.englishName = '';
+ return;
+ }
+
+ // 去除前后空格
+ let name = form.value.nickName.trim();
+
+ // 检查是否是复姓
+ let isCompound = false;
+ let surnameParts = [];
+
+ for (const sn of compoundSurnames) {
+ if (name.startsWith(sn)) {
+ isCompound = true;
+ surnameParts = [sn];
+ name = name.slice(sn.length);
+ break;
+ }
+ }
+
+ // 如果不是复姓,则取第一个字作为姓
+ if (!isCompound && name.length > 0) {
+ surnameParts = [name[0]];
+ name = name.slice(1);
+ }
+
+ // 处理剩余的名字部分
+ const givenNameParts = name.split('');
+
+ // 构建英文姓氏 (全部大写)
+ const engSurname = surnameParts.join('').toUpperCase();
+
+ // 构建英文名字 (每个字首字母大写)
+ const engGivenName = givenNameParts
+ .map(char => char.charAt(0).toUpperCase() + char.slice(1).toLowerCase())
+ .join('');
+
+ // 组合结果
+ registerForm.value.englishName = `${engSurname} ${engGivenName}`;
+};
const handleRegister = () => {
proxy.$refs.registerRef.validate(valid => {
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 2634bc1..82e3281 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -177,7 +177,8 @@
-
+
@@ -375,7 +376,13 @@ const columns = ref([
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true }
])
-
+// 常见的复姓列表
+const compoundSurnames = [
+ '欧阳', '太史', '端木', '上官', '司马',
+ '东方', '公孙', '尉迟', '公羊', '澹台',
+ '宗政', '濮阳', '闾丘', '子车', '亓官',
+ '南宫', '墨夷', '恰喇', '阏氏', '竺联'
+];
const validateRoles = (rule, value, callback) => {
console.log('选择值', value)
const forbiddenRoles = ['3', '4', '5']
@@ -696,6 +703,50 @@ function submitForm() {
})
}
+// 中文姓名转英文姓名
+const convertToEnglishName = () => {
+ if (!form.value.nickName.trim()) {
+ form.value.englishName = '';
+ return;
+ }
+
+ // 去除前后空格
+ let name = form.value.nickName.trim();
+
+ // 检查是否是复姓
+ let isCompound = false;
+ let surnameParts = [];
+
+ for (const sn of compoundSurnames) {
+ if (name.startsWith(sn)) {
+ isCompound = true;
+ surnameParts = [sn];
+ name = name.slice(sn.length);
+ break;
+ }
+ }
+
+ // 如果不是复姓,则取第一个字作为姓
+ if (!isCompound && name.length > 0) {
+ surnameParts = [name[0]];
+ name = name.slice(1);
+ }
+
+ // 处理剩余的名字部分
+ const givenNameParts = name.split('');
+
+ // 构建英文姓氏 (全部大写)
+ const engSurname = surnameParts.join('').toUpperCase();
+
+ // 构建英文名字 (每个字首字母大写)
+ const engGivenName = givenNameParts
+ .map(char => char.charAt(0).toUpperCase() + char.slice(1).toLowerCase())
+ .join('');
+
+ // 组合结果
+ form.value.englishName = `${engSurname} ${engGivenName}`;
+};
+
onMounted(() => {
getDeptTree()
getBusDependencyData();