fix(healthMonitor): 修复健康监测模块中的组织机构数据显示和绑定功能
- 在sectoralData.data.ts中添加单位名称列的颜色渲染,三级单位显示为红色 - 在sectoralDataList.vue中添加组织代码长度限制,小于6位时禁用明细和导出功能 - 修复toolManagement组件中bindModal.vue的参数传递问题 - 修改toolManagement.data.ts中部门选择器的默认值和禁用状态 - 移除重复的单位名称表单项并优化搜索表单的组织机构选择逻辑 - 添加单位名称列到员工表格中并调整搜索表单的字段映射
This commit is contained in:
+5
@@ -3,6 +3,7 @@ import { message } from 'ant-design-vue';
|
|||||||
import { allSecondaryDepartsNew, getThirdDepartsNew } from '/@/utils/system/api';
|
import { allSecondaryDepartsNew, getThirdDepartsNew } from '/@/utils/system/api';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
|
import { h } from 'vue';
|
||||||
|
|
||||||
export const columns: BasicColumn[] = [
|
export const columns: BasicColumn[] = [
|
||||||
{
|
{
|
||||||
@@ -133,6 +134,10 @@ export const columnsNew: BasicColumn[] = [
|
|||||||
{
|
{
|
||||||
title: '单位名称',
|
title: '单位名称',
|
||||||
dataIndex: ['orgCodeName'],
|
dataIndex: ['orgCodeName'],
|
||||||
|
customRender: ({ text, record }) => {
|
||||||
|
const isRed = record?.orgCode?.length === 3;
|
||||||
|
return h('span', { style: isRed ? { color: 'red' } : {} }, text);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '部门名称',
|
title: '部门名称',
|
||||||
|
|||||||
+4
-1
@@ -88,20 +88,23 @@
|
|||||||
|
|
||||||
const [registerTable, { reload, getForm }] = tableContext;
|
const [registerTable, { reload, getForm }] = tableContext;
|
||||||
function getTableAction(record: any) {
|
function getTableAction(record: any) {
|
||||||
|
let orgCodeLenth = record?.orgCode?.length;
|
||||||
let flag = record?.orgCodeLeafName == '-';
|
let flag = record?.orgCodeLeafName == '-';
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: '明细',
|
label: '明细',
|
||||||
onClick: handleDetail.bind(null, record),
|
onClick: handleDetail.bind(null, record),
|
||||||
|
disabled: orgCodeLenth < 6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '明细导出',
|
label: '明细导出',
|
||||||
onClick: handleExport.bind(null, record),
|
onClick: handleExport.bind(null, record),
|
||||||
|
disabled: orgCodeLenth < 6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '周报',
|
label: '周报',
|
||||||
onClick: handleWeekReport.bind(null, record),
|
onClick: handleWeekReport.bind(null, record),
|
||||||
disabled: !flag,
|
disabled: !flag || orgCodeLenth < 6,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -105,7 +105,7 @@
|
|||||||
// orgCodeSecond:data.record?.orgCode
|
// orgCodeSecond:data.record?.orgCode
|
||||||
});
|
});
|
||||||
bindUserId.value = data.record?.bindUserId;
|
bindUserId.value = data.record?.bindUserId;
|
||||||
paramsInfo.value = { orgCode: data.record?.orgCode };
|
paramsInfo.value = { orgCode: 'A01' };
|
||||||
await clearValidate();
|
await clearValidate();
|
||||||
// 隐藏底部时禁用整个表单
|
// 隐藏底部时禁用整个表单
|
||||||
await setProps({ disabled: !data?.showFooter });
|
await setProps({ disabled: !data?.showFooter });
|
||||||
|
|||||||
+88
-55
@@ -211,21 +211,16 @@ export const formSchema: FormSchema[] = [
|
|||||||
field: 'deptId',
|
field: 'deptId',
|
||||||
required: true,
|
required: true,
|
||||||
component: 'ApiSelect',
|
component: 'ApiSelect',
|
||||||
componentProps: ({ formModel }) => {
|
defaultValue: '1683768826307096578',
|
||||||
const { getVal: getVal1, disabled: disabled1 } = initD();
|
show: false,
|
||||||
getVal1('id');
|
componentProps: () => {
|
||||||
return {
|
return {
|
||||||
api: allSecondaryDepartsNew,
|
api: allSecondaryDepartsNew,
|
||||||
resultField: 'result',
|
resultField: 'result',
|
||||||
labelField: 'departName',
|
labelField: 'departName',
|
||||||
immediate: true,
|
immediate: true,
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
disabled: disabled1,
|
disabled: true,
|
||||||
afterFetch: (res: any) => {
|
|
||||||
if (res.length === 1) {
|
|
||||||
formModel.deptId = res[0].id;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getPopupContainer: () => document.body,
|
getPopupContainer: () => document.body,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterOption: (input: string, option: any): boolean => {
|
filterOption: (input: string, option: any): boolean => {
|
||||||
@@ -326,40 +321,40 @@ export const rkFormSchema: FormSchema[] = [
|
|||||||
required: true,
|
required: true,
|
||||||
slot: 'file',
|
slot: 'file',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
label: '单位名称',
|
// label: '单位名称',
|
||||||
field: 'deptId',
|
// field: 'deptId',
|
||||||
component: 'ApiSelect',
|
// component: 'ApiSelect',
|
||||||
required: true,
|
// required: true,
|
||||||
componentProps: ({ formModel, schema }) => {
|
// componentProps: ({ formModel, schema }) => {
|
||||||
const { getVal, disabled } = initD();
|
// const { getVal, disabled } = initD();
|
||||||
getVal('id');
|
// getVal('id');
|
||||||
return {
|
// return {
|
||||||
api: allSecondaryDepartsNew,
|
// api: allSecondaryDepartsNew,
|
||||||
resultField: 'list',
|
// resultField: 'list',
|
||||||
labelField: 'departName',
|
// labelField: 'departName',
|
||||||
valueField: 'id',
|
// valueField: 'id',
|
||||||
immediate: true,
|
// immediate: true,
|
||||||
onChange: (val: any) => {
|
// onChange: (val: any) => {
|
||||||
if (val) {
|
// if (val) {
|
||||||
formModel['orgId'] = '';
|
// formModel['orgId'] = '';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
onDeselect: () => {
|
// onDeselect: () => {
|
||||||
formModel.deptId = '';
|
// formModel.deptId = '';
|
||||||
formModel['orgId'] = '';
|
// formModel['orgId'] = '';
|
||||||
},
|
// },
|
||||||
showSearch: true,
|
// showSearch: true,
|
||||||
filterOption: (input: string, option: any): boolean => {
|
// filterOption: (input: string, option: any): boolean => {
|
||||||
const str: string = input.toLowerCase();
|
// const str: string = input.toLowerCase();
|
||||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
// return option.label.toLowerCase().indexOf(str) >= 0;
|
||||||
},
|
// },
|
||||||
disabled: disabled,
|
// disabled: disabled,
|
||||||
getPopupContainer: () => document.body,
|
// getPopupContainer: () => document.body,
|
||||||
};
|
// };
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
/*{
|
||||||
label: '部门名称',
|
label: '部门名称',
|
||||||
field: 'orgId',
|
field: 'orgId',
|
||||||
component: 'ApiSelect',
|
component: 'ApiSelect',
|
||||||
@@ -390,7 +385,7 @@ export const rkFormSchema: FormSchema[] = [
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},*/
|
||||||
];
|
];
|
||||||
// 绑定导入
|
// 绑定导入
|
||||||
export const bindUserFormSchema: FormSchema[] = [
|
export const bindUserFormSchema: FormSchema[] = [
|
||||||
@@ -726,6 +721,11 @@ export const mColumns: BasicColumn[] = [
|
|||||||
dataIndex: 'realname',
|
dataIndex: 'realname',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '单位名称',
|
||||||
|
dataIndex: ['secondDepart', 'departName'],
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '部门名称',
|
title: '部门名称',
|
||||||
dataIndex: ['depart', 'departName'],
|
dataIndex: ['depart', 'departName'],
|
||||||
@@ -737,7 +737,7 @@ export const mColumns: BasicColumn[] = [
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
export const mSearchFormSchema = (orgCode) => {
|
export const mSearchFormSchema = (orgCode = 'orgCode', orgCode1 = 'orgCode1', threeOrgCode = 'threeOrgCode') => {
|
||||||
const schemaInfo: FormSchema[] = [
|
const schemaInfo: FormSchema[] = [
|
||||||
{
|
{
|
||||||
label: '员工姓名',
|
label: '员工姓名',
|
||||||
@@ -746,33 +746,66 @@ export const mSearchFormSchema = (orgCode) => {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
label: '单位',
|
label: '单位名称',
|
||||||
field: 'orgCode',
|
field: orgCode1,
|
||||||
component: 'Input',
|
component: 'ApiSelect',
|
||||||
defaultValue: orgCode,
|
componentProps: ({ formModel, schema }) => {
|
||||||
show: false,
|
return {
|
||||||
|
api: allSecondaryDepartsNew,
|
||||||
|
resultField: 'list',
|
||||||
|
labelField: 'departName',
|
||||||
|
valueField: 'orgCode',
|
||||||
|
placeholder: '请选择单位',
|
||||||
|
showSearch: true,
|
||||||
|
filterOption: (input: string, option: any): boolean => {
|
||||||
|
const str: string = input.trim().toLowerCase();
|
||||||
|
return option.departName.toLowerCase().indexOf(str) >= 0;
|
||||||
|
},
|
||||||
|
onChange: (val) => {
|
||||||
|
// 选中单位时,orgCode 赋值为单位的 orgCode,并清空部门
|
||||||
|
formModel[orgCode] = val || '';
|
||||||
|
formModel[threeOrgCode] = '';
|
||||||
|
},
|
||||||
|
onDeselect: () => {
|
||||||
|
formModel[orgCode] = '';
|
||||||
|
formModel[orgCode1] = '';
|
||||||
|
formModel[threeOrgCode] = '';
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '部门名称',
|
label: '部门名称',
|
||||||
field: 'threeOrgCode',
|
field: threeOrgCode,
|
||||||
component: 'ApiSelect',
|
component: 'ApiSelect',
|
||||||
componentProps: ({ formModel }) => {
|
componentProps: ({ formModel }) => {
|
||||||
console.log(formModel, '11111111111');
|
|
||||||
return {
|
return {
|
||||||
api: getThirdDepartsNew,
|
api: getThirdDepartsNew,
|
||||||
resultField: 'list',
|
resultField: 'list',
|
||||||
labelField: 'departName',
|
labelField: 'departName',
|
||||||
params: {
|
|
||||||
idOrCode: formModel?.orgCode || '12313',
|
|
||||||
},
|
|
||||||
valueField: 'orgCode',
|
valueField: 'orgCode',
|
||||||
|
placeholder: '请选择部门',
|
||||||
|
showSearch: true,
|
||||||
|
params: {
|
||||||
|
idOrCode: formModel[orgCode1] || '12313',
|
||||||
|
},
|
||||||
immediate: true,
|
immediate: true,
|
||||||
style: {
|
style: {
|
||||||
width: '195px',
|
width: '195px',
|
||||||
},
|
},
|
||||||
|
onChange: (val) => {
|
||||||
|
// 选中部门时覆盖 orgCode,清空时回退到单位的 orgCode
|
||||||
|
formModel[orgCode] = val || formModel[orgCode1] || '';
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: orgCode,
|
||||||
|
component: 'Input',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '员工编号',
|
label: '员工编号',
|
||||||
field: 'workNo',
|
field: 'workNo',
|
||||||
|
|||||||
Reference in New Issue
Block a user