update
init
This commit is contained in:
@@ -0,0 +1,363 @@
|
||||
import { BasicColumn } from '/@/components/Table';
|
||||
import { FormSchema } from '/@/components/Table';
|
||||
import { getDefaultImage, getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
||||
import { h } from 'vue';
|
||||
import { EyeOutlined } from '@ant-design/icons-vue';
|
||||
import { Image } from 'ant-design-vue';
|
||||
import { render } from '/@/utils/common/renderUtils';
|
||||
import { getDoctor } from '/@/views/consult/resource/conResource.api';
|
||||
import { message } from 'ant-design-vue';
|
||||
//列表数据
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '序号',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
customRender: ({ index }) => {
|
||||
return index + 1;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '医院名称',
|
||||
align: 'center',
|
||||
dataIndex: 'resourceName',
|
||||
},
|
||||
{
|
||||
title: '主图',
|
||||
align: 'center',
|
||||
dataIndex: 'img',
|
||||
width: 100,
|
||||
customRender: ({ text }) => {
|
||||
return h(Image, {
|
||||
placeholder: true,
|
||||
src: getFileAccessHttpUrl(text),
|
||||
height: 50,
|
||||
width: 50,
|
||||
fallback: getDefaultImage(),
|
||||
previewMask: () => {
|
||||
return h(EyeOutlined, {
|
||||
style: {
|
||||
color: 'white',
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '详细地址',
|
||||
align: 'center',
|
||||
dataIndex: 'address',
|
||||
},
|
||||
// {
|
||||
// title: '医院类型',
|
||||
// align: 'center',
|
||||
// dataIndex: 'type',
|
||||
// customRender: ({ text }) => {
|
||||
// return render.renderDict(text, 'h_type');
|
||||
// },
|
||||
// },
|
||||
{
|
||||
title: '医院级别',
|
||||
align: 'center',
|
||||
dataIndex: 'level',
|
||||
customRender: ({ text }) => {
|
||||
return render.renderDict(text, 'hospital_level');
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '是否置顶',
|
||||
align: 'center',
|
||||
dataIndex: 'tfTop',
|
||||
customRender: ({ text }) => (text === 1 ? '是' : '否'),
|
||||
},
|
||||
{
|
||||
title: '排序',
|
||||
align: 'center',
|
||||
dataIndex: 'sort',
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
dataIndex: 'status',
|
||||
customRender: ({ text }) => {
|
||||
if (text == '1') {
|
||||
return '正常';
|
||||
} else {
|
||||
return '冻结';
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
//查询数据
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
label: '医院名称',
|
||||
field: 'resourceName',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '地址',
|
||||
field: 'province',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '医院级别',
|
||||
field: 'level',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'hospital_level',
|
||||
},
|
||||
},
|
||||
// {
|
||||
// label: '医院类型',
|
||||
// field: 'type',
|
||||
// component: 'JDictSelectTag',
|
||||
// componentProps: {
|
||||
// dictCode: 'h_type',
|
||||
// },
|
||||
// },
|
||||
];
|
||||
const validate = async (_rule, value) => {
|
||||
if (!value) {
|
||||
return Promise.reject('请选择状态');
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
};
|
||||
const departmentValidator = async (_rule, value) => {
|
||||
if (!value || !value.length) {
|
||||
return Promise.reject('请选择院内科室');
|
||||
}
|
||||
return Promise.resolve();
|
||||
};
|
||||
//表单数据
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '医院名称',
|
||||
field: 'resourceName',
|
||||
component: 'Input',
|
||||
required: true,
|
||||
rules: [{ required: true, message: '请输入医院名称!' }],
|
||||
},
|
||||
// {
|
||||
// label: '医院类型',
|
||||
// field: 'type',
|
||||
// component: 'JDictSelectTag',
|
||||
// componentProps: {
|
||||
// dictCode: 'h_type',
|
||||
// },
|
||||
// rules: [{ required: true }],
|
||||
// },
|
||||
{
|
||||
label: '医院级别',
|
||||
field: 'level',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'hospital_level',
|
||||
},
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
{
|
||||
label: '医院主图',
|
||||
field: 'img',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
fileMax: 1,
|
||||
},
|
||||
rules: [{ required: false }],
|
||||
},
|
||||
{
|
||||
label: '状态',
|
||||
field: 'status',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
label: '正常',
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '冻结',
|
||||
},
|
||||
],
|
||||
type: 'radio',
|
||||
},
|
||||
rules: [{ required: true, validator: validate, trigger: 'blur' }],
|
||||
},
|
||||
{
|
||||
label: '医院简介',
|
||||
field: 'synopsis',
|
||||
component: 'InputTextArea',
|
||||
componentProps: {
|
||||
showCount: true,
|
||||
rows: 4,
|
||||
},
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
{
|
||||
label: '医院介绍',
|
||||
field: 'resourceDetail',
|
||||
component: 'JEditor',
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
{
|
||||
label: '地址',
|
||||
field: 'customAddress',
|
||||
component: 'Input',
|
||||
slot: 'customAddress',
|
||||
rules: [{ required: true }],
|
||||
ifShow: false,
|
||||
},
|
||||
{
|
||||
label: '详细地址',
|
||||
field: 'address',
|
||||
component: 'Input',
|
||||
slot: 'address',
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'longitude',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'latitude',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '院内科室',
|
||||
field: 'conDepartmentList',
|
||||
component: 'JTreeDepartment',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
valueField: 'departmentId',
|
||||
field: 'departmentId',
|
||||
allDep: true,
|
||||
multiple: true,
|
||||
immediate: true,
|
||||
treeCheckable: true,
|
||||
treeCheckStrictly: true,
|
||||
showCheckedStrategy: 'SHOW_ALL',
|
||||
checkFather: true,
|
||||
onChange: (val) => {
|
||||
if (!val) {
|
||||
formModel.conSicksList = [];
|
||||
formModel.conDoctorList = [];
|
||||
}
|
||||
},
|
||||
};
|
||||
},
|
||||
rules: [{ required: true, trigger: 'blur', validator: departmentValidator }],
|
||||
},
|
||||
{
|
||||
label: '主治疾病',
|
||||
field: 'conSicksList',
|
||||
component: 'ApiSelect',
|
||||
show: false,
|
||||
// componentProps: ({ formModel }) => {
|
||||
// let departmentId = '1321354';
|
||||
// if (formModel?.conDepartmentList) {
|
||||
// if (Array.isArray(formModel?.conDepartmentList)) {
|
||||
// departmentId = formModel?.conDepartmentList?.join(',');
|
||||
// } else {
|
||||
// departmentId = formModel?.conDepartmentList;
|
||||
// }
|
||||
// }
|
||||
// return {
|
||||
// api: getDepartmentList,
|
||||
// params: {
|
||||
// departmentId: departmentId,
|
||||
// isDoctor: false, //通用接口标识 是否是医生的情况下查询疾病
|
||||
// },
|
||||
// labelField: 'sicksName',
|
||||
// valueField: 'id',
|
||||
// mode: 'multiple',
|
||||
// immediate: true,
|
||||
// onFocus: () => {
|
||||
// if (!formModel?.conDepartmentList || formModel?.conDepartmentList.length < 1) {
|
||||
// return message.warn('请先选择院内科室');
|
||||
// }
|
||||
// },
|
||||
// disabledInitValue: true,
|
||||
// getPopupContainer: () => document.body,
|
||||
// };
|
||||
// },
|
||||
},
|
||||
{
|
||||
label: '院内专家',
|
||||
field: 'conDoctorList',
|
||||
component: 'ApiSelect',
|
||||
componentProps: ({ formModel }) => {
|
||||
let departmentId = '1321354';
|
||||
if (formModel?.conDepartmentList) {
|
||||
if (Array.isArray(formModel?.conDepartmentList)) {
|
||||
departmentId = formModel?.conDepartmentList?.join(',');
|
||||
} else {
|
||||
departmentId = formModel?.conDepartmentList;
|
||||
}
|
||||
}
|
||||
return {
|
||||
api: getDoctor,
|
||||
params: {
|
||||
departmentId: departmentId,
|
||||
isAdd: !formModel.id,
|
||||
},
|
||||
labelField: 'doctorName',
|
||||
valueField: 'id',
|
||||
mode: 'multiple',
|
||||
immediate: true,
|
||||
onFocus: () => {
|
||||
if (!formModel?.conDepartmentList || formModel?.conDepartmentList.length < 1) {
|
||||
return message.warn('请先选择院内科室');
|
||||
}
|
||||
},
|
||||
// disabledInitValue: true,
|
||||
getPopupContainer: () => document.body,
|
||||
disabled: true,
|
||||
};
|
||||
},
|
||||
ifShow: ({ values }) => values?.id,
|
||||
},
|
||||
{
|
||||
label: '是否置顶',
|
||||
field: 'tfTop',
|
||||
component: 'RadioGroup',
|
||||
componentProps: {
|
||||
options: [
|
||||
{
|
||||
label: '是',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '否',
|
||||
value: 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '排序',
|
||||
field: 'sort',
|
||||
component: 'InputNumber',
|
||||
},
|
||||
];
|
||||
|
||||
/**
|
||||
* 流程表单调用这个方法获取formSchema
|
||||
* @param _formData
|
||||
*/
|
||||
export function getBpmFormSchema(_formData): FormSchema[] {
|
||||
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
|
||||
return formSchema;
|
||||
}
|
||||
Reference in New Issue
Block a user