|
@@ -1,6 +1,12 @@
|
|
|
import type { Ref } from 'vue'
|
|
import type { Ref } from 'vue'
|
|
|
|
|
|
|
|
-import type { HospitalItem, PharmacyItem } from '@/services/modules/task/entitySelector/type'
|
|
|
|
|
|
|
+import { getPackageListByTaskTypeApi } from '@/services/modules/information'
|
|
|
|
|
+import type {
|
|
|
|
|
+ DistributionItem,
|
|
|
|
|
+ HospitalItem,
|
|
|
|
|
+ PharmacyItem,
|
|
|
|
|
+ SurveyTargetItem,
|
|
|
|
|
+} from '@/services/modules/task/entitySelector/type'
|
|
|
import { getListDrugTableApi } from '@/services/modules/task/taskFrom/index'
|
|
import { getListDrugTableApi } from '@/services/modules/task/taskFrom/index'
|
|
|
|
|
|
|
|
import type {
|
|
import type {
|
|
@@ -10,6 +16,7 @@ import type {
|
|
|
TaskFieldConfigViewItem,
|
|
TaskFieldConfigViewItem,
|
|
|
TaskFieldOption,
|
|
TaskFieldOption,
|
|
|
} from './useTaskForm'
|
|
} from './useTaskForm'
|
|
|
|
|
+import { serializeTaskFieldOptions } from './useTaskForm'
|
|
|
|
|
|
|
|
export interface SingleSelectChangeEvent {
|
|
export interface SingleSelectChangeEvent {
|
|
|
previousValue: FieldValue
|
|
previousValue: FieldValue
|
|
@@ -18,11 +25,6 @@ export interface SingleSelectChangeEvent {
|
|
|
selectedItem: TaskFieldOption
|
|
selectedItem: TaskFieldOption
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const HOSPITAL_FIELD_SOURCE_MAP: Readonly<Record<string, keyof HospitalItem>> = {
|
|
|
|
|
- yycs: 'city',
|
|
|
|
|
- yydz: 'address',
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
interface UseTaskSelectHandlersOptions {
|
|
interface UseTaskSelectHandlersOptions {
|
|
|
taskTypeId: Ref<string>
|
|
taskTypeId: Ref<string>
|
|
|
form: Ref<DynamicFormState>
|
|
form: Ref<DynamicFormState>
|
|
@@ -169,6 +171,54 @@ export const useTaskSelectHandlers = ({
|
|
|
* 特殊接口请求和业务校验写在这里。
|
|
* 特殊接口请求和业务校验写在这里。
|
|
|
*/
|
|
*/
|
|
|
const handleSingleSelectBeforeOpen = async (field: TaskFieldConfigViewItem): Promise<boolean> => {
|
|
const handleSingleSelectBeforeOpen = async (field: TaskFieldConfigViewItem): Promise<boolean> => {
|
|
|
|
|
+ if (['1', '2', '3', '4', '64'].includes(field.taskTypeId) && field.alias === 'scorePackage') {
|
|
|
|
|
+ const meetingTypeValue = getFieldFormValueByAlias('meetingType')
|
|
|
|
|
+ if (!meetingTypeValue?.value) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '请先选择会议类型',
|
|
|
|
|
+ icon: 'none',
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (['34'].includes(field.taskTypeId) && field.alias === 'scorePackage') {
|
|
|
|
|
+ const trainingTypeValue = getFieldFormValueByAlias('trainingType')
|
|
|
|
|
+ if (!trainingTypeValue?.value) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '请先选择积分包',
|
|
|
|
|
+ icon: 'none',
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ const res = await getPackageListByTaskTypeApi(trainingTypeValue.value)
|
|
|
|
|
+ setFieldOptions(field, serializeTaskFieldOptions(res.data))
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (['14', '31', '37'].includes(field.taskTypeId) && field.taskFiledValue === 'surveyTarget') {
|
|
|
|
|
+ const realTaskTypeIdValue = getFieldFormValueByAlias('realTaskTypeId')
|
|
|
|
|
+ if (!realTaskTypeIdValue?.value) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '请先选择调查类别',
|
|
|
|
|
+ icon: 'none',
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ uni.navigateTo({
|
|
|
|
|
+ url: `/pages-common/entity-selector/index?alias=surveyTarget`,
|
|
|
|
|
+ events: {
|
|
|
|
|
+ surveyTargetSelect: (selectedItem: SurveyTargetItem) => {
|
|
|
|
|
+ const name = selectedItem.yymc || selectedItem.gsmc || selectedItem.pharmacyName || ''
|
|
|
|
|
+
|
|
|
|
|
+ setFieldFormValueByAlias('surveyTarget', {
|
|
|
|
|
+ label: name,
|
|
|
|
|
+ value: selectedItem.id,
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (field.taskTypeId === '18' && field.alias === 'pharmacyName') {
|
|
if (field.taskTypeId === '18' && field.alias === 'pharmacyName') {
|
|
|
uni.navigateTo({
|
|
uni.navigateTo({
|
|
|
url: `/pages-common/entity-selector/index?alias=pharmacyName`,
|
|
url: `/pages-common/entity-selector/index?alias=pharmacyName`,
|
|
@@ -191,6 +241,17 @@ export const useTaskSelectHandlers = ({
|
|
|
})
|
|
})
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
|
|
+ if (field.taskTypeId === '16' && field.alias === 'companyName') {
|
|
|
|
|
+ uni.navigateTo({
|
|
|
|
|
+ url: `/pages-common/entity-selector/index?alias=companyName`,
|
|
|
|
|
+ events: {
|
|
|
|
|
+ companySelect: (selectedCompanyItem: DistributionItem | string) => {
|
|
|
|
|
+ setCompanyNameSelectEvent(selectedCompanyItem)
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
if (taskTypeId.value === '47') {
|
|
if (taskTypeId.value === '47') {
|
|
|
/**
|
|
/**
|
|
|
* OTC 推广任务示例。
|
|
* OTC 推广任务示例。
|
|
@@ -352,15 +413,93 @@ export const useTaskSelectHandlers = ({
|
|
|
value: selectedHospitalItem.id,
|
|
value: selectedHospitalItem.id,
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- const address = `${selectedHospitalItem.province}-${selectedHospitalItem.city}-${selectedHospitalItem.area}`
|
|
|
|
|
|
|
+ const city = `${selectedHospitalItem.province}-${selectedHospitalItem.city}-${selectedHospitalItem.area}`
|
|
|
|
|
+ setFieldFormValueByAlias('city', {
|
|
|
|
|
+ label: city,
|
|
|
|
|
+ value: city,
|
|
|
|
|
+ })
|
|
|
setFieldFormValueByAlias('address', {
|
|
setFieldFormValueByAlias('address', {
|
|
|
- label: address,
|
|
|
|
|
- value: address,
|
|
|
|
|
|
|
+ label: selectedHospitalItem.address,
|
|
|
|
|
+ value: selectedHospitalItem.address,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('level', {
|
|
|
|
|
+ label: selectedHospitalItem.yygm ?? '',
|
|
|
|
|
+ value: undefined,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('ownerType', {
|
|
|
|
|
+ label: selectedHospitalItem.yyxz ?? '',
|
|
|
|
|
+ value: undefined,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('website', {
|
|
|
|
|
+ label: selectedHospitalItem.website ?? '',
|
|
|
|
|
+ value: selectedHospitalItem.website ?? '',
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ setFieldFormValueByAlias('bedNumber', {
|
|
|
|
|
+ label: selectedHospitalItem.ybczs ?? '',
|
|
|
|
|
+ value: undefined,
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
console.log('setHospitalNameSelectEvent', selectedHospitalItem)
|
|
console.log('setHospitalNameSelectEvent', selectedHospitalItem)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ const setCompanyNameSelectEvent = (selectedCompanyItem: DistributionItem | string) => {
|
|
|
|
|
+ console.log('selectedCompanyItem', selectedCompanyItem)
|
|
|
|
|
+
|
|
|
|
|
+ if (typeof selectedCompanyItem === 'string') {
|
|
|
|
|
+ setFieldFormValueByAlias('companyName', {
|
|
|
|
|
+ label: selectedCompanyItem,
|
|
|
|
|
+ value: selectedCompanyItem,
|
|
|
|
|
+ })
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ setFieldFormValueByAlias('companyName', {
|
|
|
|
|
+ label: selectedCompanyItem.gsmc,
|
|
|
|
|
+ value: selectedCompanyItem.id,
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ setFieldFormValueByAlias('address', {
|
|
|
|
|
+ label: selectedCompanyItem.sygsdz,
|
|
|
|
|
+ value: selectedCompanyItem.sygsdz,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('gsgm', {
|
|
|
|
|
+ label: selectedCompanyItem.gsgm,
|
|
|
|
|
+ value: undefined,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('shyshxydm', {
|
|
|
|
|
+ label: selectedCompanyItem.shyshxydm,
|
|
|
|
|
+ value: selectedCompanyItem.shyshxydm,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('shyshxydm', {
|
|
|
|
|
+ label: selectedCompanyItem.shyshxydm,
|
|
|
|
|
+ value: selectedCompanyItem.shyshxydm,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('zczb', {
|
|
|
|
|
+ label: selectedCompanyItem.zczb,
|
|
|
|
|
+ value: selectedCompanyItem.zczb,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('frdb', {
|
|
|
|
|
+ label: selectedCompanyItem.frdb,
|
|
|
|
|
+ value: selectedCompanyItem.frdb,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('medicineTraceability', {
|
|
|
|
|
+ label: undefined,
|
|
|
|
|
+ value: selectedCompanyItem.medicineTraceability,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('medicineTraceabilityOther', {
|
|
|
|
|
+ label: selectedCompanyItem.medicineTraceabilityOther,
|
|
|
|
|
+ value: selectedCompanyItem.medicineTraceabilityOther,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('gsjj', {
|
|
|
|
|
+ label: selectedCompanyItem.gsjj,
|
|
|
|
|
+ value: selectedCompanyItem.gsjj,
|
|
|
|
|
+ })
|
|
|
|
|
+ setFieldFormValueByAlias('jyys', {
|
|
|
|
|
+ label: selectedCompanyItem.jyys,
|
|
|
|
|
+ value: selectedCompanyItem.jyys,
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
return {
|
|
return {
|
|
|
handleSingleSelectBeforeOpen,
|
|
handleSingleSelectBeforeOpen,
|
|
|
handleSingleSelectChange,
|
|
handleSingleSelectChange,
|