董国庆
2026-06-11 37785ed4d3e331b637375bc3a69a1c8a4e10da22
新增-修改bug
6个文件已修改
84 ■■■■■ 已修改文件
locales/en_US.json 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
locales/zh_CN.json 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/accountManagement/index.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/accountRoleTabs/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/roleManagement/form.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/roleManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
locales/en_US.json
@@ -376,16 +376,16 @@
      "userNamePlaceholder": "Please enter user name",
      "userPhonePlaceholder": "Please enter user phone",
      "rolePlaceholder": "Please select role",
      "accountStatusPlaceholder": "Please select status"
      "accountStatusPlaceholder": "Please select account status"
    },
    "table": {
      "index": "No.",
      "personName": "Person Name",
      "number": "Number",
      "loginAccount": "Login Account",
      "phoneNumber": "Phone Number",
      "phoneNumber": "User Phone",
      "role": "Role",
      "status": "Status",
      "status": "Account Status",
      "createTime": "Create Time",
      "remark": "Remark",
      "actions": "Actions"
@@ -594,7 +594,7 @@
      "userName": "User Name",
      "number": "Number",
      "loginAccount": "Login Account",
      "phoneNumber": "Phone Number",
      "phoneNumber": "User Phone",
      "initialPassword": "Initial Password",
      "role": "Role"
    },
@@ -602,7 +602,7 @@
      "userName": "Please enter user name",
      "number": "Auto-generated by system",
      "loginAccount": "Please enter login account",
      "phoneNumber": "Please enter phone number",
      "phoneNumber": "Please enter user phone",
      "initialPassword": "Please enter initial password",
      "role": "Please select role"
    },
@@ -612,7 +612,7 @@
      "userNameFormat": "User name only supports Chinese, English, numbers, and spaces",
      "loginAccountRequired": "Please enter login account",
      "loginAccountFormat": "Login account must be 11-digit phone number or email format",
      "phoneNumberRequired": "Please enter phone number",
      "phoneNumberRequired": "Please enter user phone",
      "phoneNumberFormat": "Please enter a valid 11-digit phone number",
      "passwordRequired": "Please enter initial password",
      "passwordLength": "Initial password length should be 8-20 characters",
locales/zh_CN.json
@@ -430,22 +430,22 @@
  "accountManagement": {
    "search": {
      "userName": "用户名称",
      "userPhone": "联系电话",
      "userPhone": "用户电话",
      "role": "角色",
      "accountStatus": "账号状态",
      "userNamePlaceholder": "请输入",
      "userPhonePlaceholder": "请输入",
      "userPhonePlaceholder": "请输入用户电话",
      "rolePlaceholder": "请选择",
      "accountStatusPlaceholder": "请选择"
      "accountStatusPlaceholder": "请选择账号状态"
    },
    "table": {
      "index": "序号",
      "personName": "用户名称",
      "number": "编号",
      "loginAccount": "登录账号",
      "phoneNumber": "联系电话",
      "phoneNumber": "用户电话",
      "role": "角色",
      "status": "状态",
      "status": "账号状态",
      "createTime": "创建时间",
      "remark": "备注",
      "actions": "操作"
@@ -654,7 +654,7 @@
      "userName": "用户名称",
      "number": "编号",
      "loginAccount": "登录账号",
      "phoneNumber": "联系电话",
      "phoneNumber": "用户电话",
      "initialPassword": "初始密码",
      "role": "所属角色"
    },
@@ -662,7 +662,7 @@
      "userName": "请输入",
      "number": "系统自动生成",
      "loginAccount": "请输入",
      "phoneNumber": "请输入",
      "phoneNumber": "请输入用户电话",
      "initialPassword": "请输入",
      "role": "请选择"
    },
@@ -672,7 +672,7 @@
      "userNameFormat": "用户姓名仅支持中英文、数字、空格",
      "loginAccountRequired": "请输入登录账号",
      "loginAccountFormat": "登录账号需为 11 位手机号或邮箱格式",
      "phoneNumberRequired": "请输入联系电话",
      "phoneNumberRequired": "请输入用户电话",
      "phoneNumberFormat": "请输入正确的 11 位手机号",
      "passwordRequired": "请输入初始密码",
      "passwordLength": "初始密码长度为 8-20 位",
src/views/system/accountPermission/accountManagement/index.vue
@@ -232,15 +232,15 @@
    resizable: true,
    render: row => <span>{dayjs(row.createTime).format('YYYY/MM/DD HH:mm') || '-'}</span>,
  },
  {
    title: t('accountManagement.table.remark'),
    align: 'left',
    key: 'remark',
    minWidth: 170,
    ellipsis: true,
    resizable: true,
    render: row => <span>{row.remark || '-'}</span>,
  },
  // {
  //   title: t('accountManagement.table.remark'),
  //   align: 'left',
  //   key: 'remark',
  //   minWidth: 170,
  //   ellipsis: true,
  //   resizable: true,
  //   render: row => <span>{row.remark || '-'}</span>,
  // },
  {
    title: t('accountManagement.table.actions'),
    align: 'left',
@@ -361,10 +361,15 @@
const showResetPasswordModal = ref(false)
const resetPasswordRow = ref<any>(null)
function handleAdd() {
  modalMode.value = 'add'
  currentRow.value = null
async function openAccountModal(mode: 'add' | 'edit', row: any = null) {
  await getRoleList()
  modalMode.value = mode
  currentRow.value = row
  showModal.value = true
}
async function handleAdd() {
  await openAccountModal('add')
}
const showOperationLogModal = ref(false)
@@ -373,10 +378,8 @@
  showOperationLogModal.value = true
}
function handleEdit(row: any) {
  modalMode.value = 'edit'
  currentRow.value = row
  showModal.value = true
async function handleEdit(row: any) {
  await openAccountModal('edit', row)
}
function handleResetPassword(row: any) {
@@ -496,7 +499,7 @@
  {
    label: '登录账号',
    path: 'userAccount',
    render: () => <n-input v-model:value={model.value.userAccount} placeholder="请输入登录账号" />,
    render: () => <n-input v-model:value={model.value.userAccount} placeholder="请输入" />,
  },
  {
    label: '创建时间',
@@ -515,11 +518,11 @@
      />
    ),
  },
  {
    label: '备注',
    path: 'remark',
    render: () => <n-input v-model:value={model.value.remark} placeholder="请输入备注" />,
  },
  // {
  //   label: '备注',
  //   path: 'remark',
  //   render: () => <n-input v-model:value={model.value.remark} placeholder="请输入" />,
  // },
])
onMounted(() => {
@@ -539,6 +542,7 @@
defineExpose({
  applyRoleFilter,
  refreshRoleOptions: getRoleList,
})
</script>
src/views/system/accountPermission/accountRoleTabs/index.vue
@@ -6,6 +6,7 @@
type AccountPermissionTab = 'account' | 'role'
interface AccountManagementExpose {
  applyRoleFilter: (roleId: string | number | null) => void
  refreshRoleOptions: () => Promise<void>
}
interface TabConfig {
@@ -42,10 +43,13 @@
  if (activeTab.value === tab)
    return
  activeTab.value = tab
  if (tab === 'account')
    void accountManagementRef.value?.refreshRoleOptions()
}
function handleOpenAccountTab(payload: { roleId: string | number }) {
  activeTab.value = 'account'
  void accountManagementRef.value?.refreshRoleOptions()
  // 账号页组件常驻,通过 ref 直接应用角色筛选条件
  accountManagementRef.value?.applyRoleFilter(payload.roleId)
}
src/views/system/accountPermission/roleManagement/form.vue
@@ -794,7 +794,7 @@
            <NFormItem label="权限名称" path="permissionKeyword" class="permission-search-item">
              <NInput
                v-model:value="formModel.permissionKeyword"
                placeholder="请输入权限名称进行搜索"
                placeholder="请输入"
                clearable
                :disabled="isReadOnlyMode"
              />
src/views/system/accountPermission/roleManagement/index.vue
@@ -143,7 +143,7 @@
            权限预览
          </span>
          <span
            style={{ color: hasAccounts ? '#ccc' : '#0068FF', cursor: hasAccounts ? 'not-allowed' : 'pointer' }}
            style={{ color: hasAccounts ? '#ccc' : '#EA0000', cursor: hasAccounts ? 'not-allowed' : 'pointer' }}
            v-permission="20154"
            onClick={() => !hasAccounts && handleDelete(row.id!)}
          >