diff --git a/src/locales/lang/zh-CN/menu.js b/src/locales/lang/zh-CN/menu.js
index 961d7e1..651b7e6 100644
--- a/src/locales/lang/zh-CN/menu.js
+++ b/src/locales/lang/zh-CN/menu.js
@@ -32,10 +32,10 @@ export default {
account: '个人页',
'account.trigger': '触发报错',
'account.logout': '退出登录',
- 'dict': '字典管理',
+ dict: '字典管理',
'dict-detail': '字典数据',
- 'serverObj': '服务对象管理',
- 'serverList': '服务对象列表',
+ serverObj: '服务对象管理',
+ serverList: '服务对象列表',
workorderMenu: '工单管理',
mineWorderOrder: '我下的工单',
invalidWzorkOrder: '无效工单',
@@ -45,4 +45,11 @@ export default {
serviceSites: '服务站点',
serviceOrganization: '服务组织',
nodeAdministration: '节点管理',
+ allocation: '待分配对象列表',
+ domicile: '户籍对象列表',
+ institution: '机构服务对象列表',
+ toBeInstitution: '待完善对象列表',
+ carePhone: '电话关爱对象',
+ serverSearch: '服务对象查询',
+ existence: '生存状态管理',
}
diff --git a/src/router/routes/severObj.js b/src/router/routes/severObj.js
index fe043e2..f25d26d 100644
--- a/src/router/routes/severObj.js
+++ b/src/router/routes/severObj.js
@@ -24,6 +24,84 @@ export default [
permission: '*',
},
},
+ {
+ path: 'allocation',
+ name: 'allocation',
+ component: 'serverObj/allocation/index.vue',
+ meta: {
+ title: '服务对象分配',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'domicile',
+ name: 'domicile',
+ component: 'serverObj/domicile/index.vue',
+ meta: {
+ title: '户籍对象列表',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'institution',
+ name: 'institution',
+ component: 'serverObj/institution/index.vue',
+ meta: {
+ title: '机构服务对象列表',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'toBeInstitution',
+ name: 'toBeInstitution',
+ component: 'serverObj/toBeInstitution/index.vue',
+ meta: {
+ title: '待完善对象列表',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'carePhone',
+ name: 'carePhone',
+ component: 'serverObj/carePhone/index.vue',
+ meta: {
+ title: '电话关爱对象',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'serverSearch',
+ name: 'serverSearch',
+ component: 'serverObj/serverSearch/index.vue',
+ meta: {
+ title: '服务对象查询',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'existence',
+ name: 'existence',
+ component: 'serverObj/existence/index.vue',
+ meta: {
+ title: '生存状态管理',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ }
+
],
},
]
diff --git a/src/utils/validate.js b/src/utils/validate.js
new file mode 100644
index 0000000..67f03d8
--- /dev/null
+++ b/src/utils/validate.js
@@ -0,0 +1,82 @@
+/**
+ * 表单验证工具 - Vue 3 兼容
+ * 包含:手机号、邮箱、身份证号 验证规则
+ */
+
+// 验证手机号(中国大陆)
+export const validatePhone = (_rule, value) => {
+ console.log('validatePhone', value);
+ const phoneRegex = /^1[3-9]\d{9}$/;
+ if (!value) {
+ return Promise.reject('手机号不能为空');
+ }
+ if (!phoneRegex.test(value)) {
+ return Promise.reject('请输入正确的手机号');
+ }
+ return Promise.resolve();
+};
+
+// 验证邮箱
+export const validateEmail = (_rule, value) => {
+ const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
+ if (!value) {
+ return Promise.reject('邮箱不能为空');
+ }
+ if (!emailRegex.test(value)) {
+ return Promise.reject('请输入正确的邮箱地址');
+ }
+ return Promise.resolve();
+};
+
+// 验证身份证号码(支持 15 位和 18 位,含校验)
+export const validateIdCard = (_rule, value) => {
+ const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{18}X$)/i;
+
+ if (!value) {
+ return Promise.reject('身份证号不能为空');
+ }
+
+ if (!idCardRegex.test(value)) {
+ return Promise.reject('身份证号格式不正确');
+ }
+
+ // 更严格的 18 位身份证校验(含最后一位校验码)
+ if (value.length === 18) {
+ const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]; // 加权因子
+ const Vi = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
+
+ let sum = 0;
+ for (let i = 0; i < 17; i++) {
+ sum += parseInt(value[i], 10) * Wi[i];
+ }
+ const checkCode = Vi[sum % 11];
+ if (checkCode !== value[17].toUpperCase()) {
+ return Promise.reject('身份证号校验失败,请输入正确的身份证号');
+ }
+ }
+
+ // 可选:验证生日部分(仅做基础判断)
+ let year, month, day;
+ if (value.length === 15) {
+ year = '19' + value.substring(6, 8);
+ month = value.substring(8, 10);
+ day = value.substring(10, 12);
+ } else {
+ year = value.substring(6, 10);
+ month = value.substring(10, 12);
+ day = value.substring(12, 14);
+ }
+
+ const isValidDate = !isNaN(new Date(year, month - 1, day));
+ if (!isValidDate) {
+ return Promise.reject('身份证号中的出生日期不合法');
+ }
+
+ const currentYear = new Date().getFullYear();
+ const birthYear = parseInt(year, 10);
+ if (birthYear < 1900 || birthYear > currentYear) {
+ return Promise.reject('出生年份不合法');
+ }
+
+ return Promise.resolve();
+};
diff --git a/src/views/serverObj/allocation/components/EditDialog.vue b/src/views/serverObj/allocation/components/EditDialog.vue
new file mode 100644
index 0000000..33b0919
--- /dev/null
+++ b/src/views/serverObj/allocation/components/EditDialog.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/allocation/index.vue b/src/views/serverObj/allocation/index.vue
new file mode 100644
index 0000000..df19ca7
--- /dev/null
+++ b/src/views/serverObj/allocation/index.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量分配
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 分配
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/carePhone/components/EditDialog.vue b/src/views/serverObj/carePhone/components/EditDialog.vue
new file mode 100644
index 0000000..33b0919
--- /dev/null
+++ b/src/views/serverObj/carePhone/components/EditDialog.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/carePhone/index.vue b/src/views/serverObj/carePhone/index.vue
new file mode 100644
index 0000000..5622d9e
--- /dev/null
+++ b/src/views/serverObj/carePhone/index.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量分配
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 分配
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/domicile/components/EditDialog.vue b/src/views/serverObj/domicile/components/EditDialog.vue
new file mode 100644
index 0000000..489bee3
--- /dev/null
+++ b/src/views/serverObj/domicile/components/EditDialog.vue
@@ -0,0 +1,623 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 男
+ 女
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+ {{
+ item.introduction }}
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/domicile/index.vue b/src/views/serverObj/domicile/index.vue
new file mode 100644
index 0000000..773f800
--- /dev/null
+++ b/src/views/serverObj/domicile/index.vue
@@ -0,0 +1,570 @@
+
+
+
+
+
+
+
+
+
+ sss
+ {{ label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.introduction }}
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 户籍对象列表
+ ({{ totalCount }}人)
+
+
+
+
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 详情
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/existence/components/EditDialog.vue b/src/views/serverObj/existence/components/EditDialog.vue
new file mode 100644
index 0000000..33b0919
--- /dev/null
+++ b/src/views/serverObj/existence/components/EditDialog.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/existence/index.vue b/src/views/serverObj/existence/index.vue
new file mode 100644
index 0000000..5622d9e
--- /dev/null
+++ b/src/views/serverObj/existence/index.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量分配
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 分配
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/institution/components/EditDialog.vue b/src/views/serverObj/institution/components/EditDialog.vue
new file mode 100644
index 0000000..33b0919
--- /dev/null
+++ b/src/views/serverObj/institution/components/EditDialog.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/institution/index.vue b/src/views/serverObj/institution/index.vue
new file mode 100644
index 0000000..ea9fdb4
--- /dev/null
+++ b/src/views/serverObj/institution/index.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.introduction }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sss
+ {{ label }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+
+
+ {{ item.introduction }}
+
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 导入
+ 导入记录
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 分配
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/serverList/components/EditDialog.vue b/src/views/serverObj/serverList/components/EditDialog.vue
index 4f9934c..974d325 100644
--- a/src/views/serverObj/serverList/components/EditDialog.vue
+++ b/src/views/serverObj/serverList/components/EditDialog.vue
@@ -1,14 +1,14 @@
-
+
-
+
@@ -25,13 +25,14 @@
-
+
-
-
- {{ item.introduction }}
-
+
+
+ {{ item.introduction }}
+
@@ -55,7 +56,7 @@
-
+
@@ -78,8 +79,8 @@
-
+
{{ item.introduction }}
@@ -103,11 +104,10 @@
-
+
-
+
{{ item.introduction }}
@@ -117,18 +117,22 @@
-
- 服务中
+
+
+ {{ item.introduction }}
+
-
-
- 在世
+
+
+ {{
+ item.introduction }}
@@ -137,8 +141,8 @@
-
+
{{ item.introduction }}
@@ -156,23 +160,39 @@
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -182,8 +202,8 @@
-
+
{{ item.introduction }}
@@ -194,8 +214,8 @@
-
+
{{ item.introduction }}
@@ -206,8 +226,8 @@
-
+
{{ item.introduction }}
@@ -219,8 +239,8 @@
-
+
{{ item.introduction }}
@@ -232,8 +252,8 @@
-
+
{{ item.introduction }}
@@ -245,8 +265,8 @@
-
+
{{ item.introduction }}
@@ -283,8 +303,8 @@
-
+
{{ item.introduction }}
@@ -296,8 +316,8 @@
-
+
{{ item.introduction }}
@@ -308,8 +328,8 @@
-
+
{{ item.introduction }}
@@ -320,8 +340,8 @@
-
+
{{ item.introduction }}
@@ -332,8 +352,8 @@
-
+
{{ item.introduction }}
@@ -344,8 +364,8 @@
-
+
{{ item.introduction }}
@@ -357,8 +377,8 @@
-
+
{{ item.introduction }}
@@ -369,8 +389,8 @@
-
+
{{ item.introduction }}
@@ -378,15 +398,14 @@
-
-
+
+
-
-
+
+
-
+
@@ -394,7 +413,7 @@
+ :auto-size="{ minRows: 1, maxRows: 2 }" />
@@ -438,21 +457,24 @@ import apis from '@/apis'
import { useForm, useModal } from '@/hooks'
import { useDicsStore } from '@/store'
import AreaCascader from '@/components/AreaCascader/index.vue'
+import { validatePhone, validateEmail, validateIdCard } from '@/utils/validate'
const emit = defineEmits(['ok'])
const activeKey = ref('1')
const { modal, showModal, hideModal, showLoading, hideLoading } = useModal()
const { formRecord, formData, formRef, formRules, resetForm } = useForm()
const cancelText = ref('取消')
formRules.value = {
- name: [{ required: true, message: '请输入姓名' }],
- identityType: [{ required: true, message: '请选择证件类型',trigger: 'change' }],
- idNumber: [{ required: true, message: '请输入证件号码' }],
- contact1: [{ required: true, message: '请输入联系方式' }],
- healthStatus: [{ required: true, message: '请选择健康状况' }],
- survivalStatus: [{ required: true, message: '请选择生存状态' }],
- homeAreaCodes: [{ required: true, message: '请选择并输入家庭地址' }],
+ name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
+ identityType: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
+ idNumber: [{ required: true, message: '请输入证件号码', trigger: 'blur' }],
+ contact1: [{ validator: validatePhone, trigger: ['blur', 'input'] }, { required: true, message: '请输入联系方式', trigger: 'blur' }],
+ healthStatus: [{ required: true, message: '请选择健康状况', trigger: 'change' }],
+ survivalStatus: [{ required: true, message: '请选择生存状态', trigger: 'change' }],
+ homeAreaCodes: [{ required: true, message: '请选择并输入家庭地址', trigger: 'change' }],
+ serviceStatus: [{ required: true, message: '请选择服务状态', trigger: 'change' }],
+ homeDetailAddress: [{ required: true, message: '请输入详细地址', trigger: 'change' }],
}
-formData.value.gender='1'
+formData.value.gender = '1'
const dicsStore = useDicsStore()
/**
* 新建
@@ -475,7 +497,57 @@ function handleEdit(record = {}) {
formRecord.value = record
formData.value = cloneDeep(record)
}
+// utils/idCard.js
+function isValidIdCard(value) {
+ if (!value || typeof value !== 'string') return false;
+ const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{18}X$)/i;
+ if (!idCardRegex.test(value)) return false;
+
+ // 18位校验码验证
+ if (value.length === 18) {
+ const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
+ const Vi = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
+
+ let sum = 0;
+ for (let i = 0; i < 17; i++) {
+ sum += parseInt(value[i], 10) * Wi[i];
+ }
+ const checkCode = Vi[sum % 11];
+ if (checkCode !== value[17].toUpperCase()) {
+ return false;
+ }
+ }
+
+ // 验证生日
+ let year, month, day;
+ if (value.length === 15) {
+ year = '19' + value.substring(6, 8);
+ month = value.substring(8, 10);
+ day = value.substring(10, 12);
+ } else {
+ year = value.substring(6, 10);
+ month = value.substring(10, 12);
+ day = value.substring(12, 14);
+ }
+
+ const date = new Date(year, month - 1, day);
+ if (
+ date.getFullYear() !== parseInt(year, 10) ||
+ date.getMonth() + 1 !== parseInt(month, 10) ||
+ date.getDate() !== parseInt(day, 10)
+ ) {
+ return false;
+ }
+
+ const currentYear = new Date().getFullYear();
+ const birthYear = parseInt(year, 10);
+ if (birthYear < 1900 || birthYear > currentYear) {
+ return false;
+ }
+
+ return true;
+}
/**
* 确定
*/
@@ -488,6 +560,11 @@ function handleOk() {
const params = {
...formData.value,
}
+ // 单独封装一个同步校验函数
+ console.log('params.identityType', isValidIdCard(params.idNumber));
+ if (params.identityType === '1' && !isValidIdCard(params.idNumber)) {
+ throw new Error('请输入正确的身份证号码');
+ }
let result = null
switch (modal.value.type) {
case 'create':
@@ -514,11 +591,11 @@ function handleOk() {
hideLoading()
})
}
-function onAreaChange(value,labels) {
+function onAreaChange(value, labels) {
console.log(formData.value.homeAreaCodes);
formData.value.homeAreaLabels = [...labels]
}
-function onAreaHoldChange(value,labels) {
+function onAreaHoldChange(value, labels) {
console.log(formData.value.houseAreaCodes);
formData.value.houseAreaLabels = [...labels]
}
diff --git a/src/views/serverObj/serverSearch/components/EditDialog.vue b/src/views/serverObj/serverSearch/components/EditDialog.vue
new file mode 100644
index 0000000..33b0919
--- /dev/null
+++ b/src/views/serverObj/serverSearch/components/EditDialog.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/serverSearch/index.vue b/src/views/serverObj/serverSearch/index.vue
new file mode 100644
index 0000000..5622d9e
--- /dev/null
+++ b/src/views/serverObj/serverSearch/index.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量分配
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 分配
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/toBeInstitution/components/EditDialog.vue b/src/views/serverObj/toBeInstitution/components/EditDialog.vue
new file mode 100644
index 0000000..33b0919
--- /dev/null
+++ b/src/views/serverObj/toBeInstitution/components/EditDialog.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/serverObj/toBeInstitution/index.vue b/src/views/serverObj/toBeInstitution/index.vue
new file mode 100644
index 0000000..5622d9e
--- /dev/null
+++ b/src/views/serverObj/toBeInstitution/index.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量分配
+ 导出
+ 导出记录
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 分配
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dictionary/components/EditDialogDetail.vue b/src/views/system/dictionary/components/EditDialogDetail.vue
index 00b6c8c..534860c 100644
--- a/src/views/system/dictionary/components/EditDialogDetail.vue
+++ b/src/views/system/dictionary/components/EditDialogDetail.vue
@@ -1,5 +1,5 @@
-
@@ -16,6 +16,12 @@
+
+
+
+
+
diff --git a/src/views/system/dictionary/index.vue b/src/views/system/dictionary/index.vue
index 6ade96a..ff02a5a 100644
--- a/src/views/system/dictionary/index.vue
+++ b/src/views/system/dictionary/index.vue
@@ -124,6 +124,7 @@ const listDetailData = ref([]);
const detailColumns = [
{ title: '字典标签', dataIndex: 'introduction',width:200 },
{ title: '字典值', dataIndex: 'dval',width:80 },
+ { title: '排序', dataIndex: 'sort',width:80 },
{ title: '备注', dataIndex: 'remark', key: 'remark' },
{ title: '状态', dataIndex: 'status', key: 'status',width:100 },
{ title: t('button.action'), key: 'action', fixed: 'right', width: 130 },