import { BuildinRules, CommonYesOrNoStatus } from '@amc-udk/constants' import { GlobalDispatcher } from '@amc-udk/core' import { Field, SpecificationDto } from '@amc-udk/types' import { FieldUtils, ModelUtils } from '@amc-udk/utils' import moment from 'moment' export const DefaultServiceFields: Field.IDescriptor[] = [ { title: '服务机构', id: 'serviceAgency', column: { type: 'text', hideInSearch: false, }, editable: false, descriptor: { type: 'BrokerSelect', rules: [{ required: true }], renderProps: { plainValue: true, meta: { key: 'id', label: 'nickName', value: 'nickName' }, }, }, conjunct: 'and', }, { title: '服务日期', id: 'sDate', column: { type: 'date', render: (text: string) => { return moment(text).format('YYYY-MM-DD') }, }, editable: false, descriptor: { type: 'datetime', parse: (value: string) => { return moment(value) }, format: (value: moment.Moment) => { return value.format('YYYY-MM-DD hh:mm:ss') }, // format: (value: moment.Moment) => { // return value.format('YYYY-MM-DD') // }, rules: [{ required: true }], }, }, { title: '主题', id: 'topic', column: { type: 'text', hideInSearch: false, }, searchType: 'like', editable: false, descriptor: { type: 'string', rules: [{ required: true }], }, conjunct: 'and', }, { title: '相关领域', id: 'industrySector', column: { type: 'text', hideInSearch: false, }, editable: false, descriptor: { type: 'dictionary', rules: [BuildinRules.required], renderProps: { mode: 'select', type: ['SWIC'], meta: { label: 'value', value: 'value' }, }, }, conjunct: 'and', }, { title: '服务类型', id: 'serviceType', column: { type: 'text', }, editable: false, descriptor: { type: 'dictionary', rules: [BuildinRules.required], renderProps: { mode: 'select', type: ['brkSrvType'], meta: { label: 'value', value: 'value' }, }, }, }, { title: '分析师', id: 'specialGuest', column: { type: 'text', // hideInSearch: false, }, editable: false, descriptor: { type: 'BrokerResearcherSelect', rules: [{ required: true }], dependencies: ['serviceAgency', 'industrySector'], literal: '请输入人员名称查询', parse: valueFromServer => { if (typeof valueFromServer === 'string') return valueFromServer.split(',') return valueFromServer }, format: valueToServer => { if (Array.isArray(valueToServer)) return valueToServer.join(',') return valueToServer }, renderProps: { plainValue: true, searchable: true, multiple: true, meta: { key: 'id', label: 'researcherName', value: 'researcherName' }, /** 实现券商和行业选择与分析师联动 */ onDependencySearch: (values: { serviceAgency: string; industrySector?: string }) => { const searchSpecs: SpecificationDto[] = [] if (values.serviceAgency) { searchSpecs.push({ field: 'companyName', value: values.serviceAgency, valueType: 'string', type: 'eq', }) } if (values.industrySector) { searchSpecs.push({ field: 'researchField', value: values.industrySector, valueType: 'string', type: 'eq', }) } GlobalDispatcher.emit( ModelUtils.createAction('researcher/getAllForSelect')({ searchSpecs, conjunct: 'and' }), ) }, }, }, }, { title: '定制服务', id: 'ifCustomed', type: 'bool', conjunct: 'and', column: { type: 'text', hideInSearch: false, filters: true, valueEnum: FieldUtils.makeDisplayEnums(CommonYesOrNoStatus), }, editable: false, descriptor: { type: 'select', enums: FieldUtils.makeInputEnums(CommonYesOrNoStatus), renderProps: { min: 0, max: 5, }, }, }, { title: '评分人', id: 'receiver', column: { type: 'text', // hideInSearch: false, }, editable: false, descriptor: { type: 'UserSelect', rules: [{ required: true }], literal: '请输入人员名称查询', renderProps: { plainValue: true, searchable: true, meta: { key: 'id', label: 'name', value: 'name' }, }, }, }, ]