2026-01-19 18:52:18 +08:00
|
|
|
|
<template>
|
2026-01-27 16:46:36 +08:00
|
|
|
|
<form-positive-find
|
|
|
|
|
|
v-if="attrs.title === 'positiveFind'"
|
|
|
|
|
|
v-bind="attrs"
|
|
|
|
|
|
:form="form"
|
|
|
|
|
|
:disableChange="disableChange"
|
|
|
|
|
|
@change="change"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<form-diagnosis-picker
|
|
|
|
|
|
v-else-if="attrs.title === 'diagnosis' || attrs.title === 'diagnosisName'"
|
|
|
|
|
|
v-bind="attrs"
|
|
|
|
|
|
:form="form"
|
|
|
|
|
|
:disableChange="disableChange"
|
|
|
|
|
|
@change="change"
|
|
|
|
|
|
/>
|
2026-01-28 20:01:28 +08:00
|
|
|
|
<form-input v-else-if="attrs.type === 'hisCardNo' || attrs.title === 'hisCardNo'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
2026-01-23 17:10:23 +08:00
|
|
|
|
<form-surgical-history
|
2026-01-27 16:46:36 +08:00
|
|
|
|
v-else-if="attrs.title === 'surgicalHistory'"
|
2026-01-23 17:10:23 +08:00
|
|
|
|
v-bind="attrs"
|
|
|
|
|
|
:form="form"
|
|
|
|
|
|
:disableChange="disableChange"
|
|
|
|
|
|
@change="change"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<form-datepicker v-else-if="attrs.type === 'date'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
2026-01-19 18:52:18 +08:00
|
|
|
|
<form-input v-else-if="attrs.type === 'input'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<form-radio v-else-if="attrs.type === 'radio'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<form-region v-else-if="attrs.type === 'region'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<form-select v-else-if="attrs.type === 'select'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
2026-01-23 17:10:23 +08:00
|
|
|
|
<form-select-other v-else-if="attrs.type === 'selectAndOther'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<form-select-image v-else-if="attrs.type === 'selectAndImage'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<form-select-mobile v-else-if="attrs.type === 'selectMobile'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
2026-01-19 18:52:18 +08:00
|
|
|
|
<form-textarea v-else-if="attrs.type === 'textarea'" v-bind="attrs" :form="form" :disableChange="disableChange"
|
|
|
|
|
|
@change="change" />
|
2026-01-23 17:10:23 +08:00
|
|
|
|
<form-multi-select-and-other
|
|
|
|
|
|
v-else-if="attrs.type === 'multiSelectAndOther'"
|
|
|
|
|
|
v-bind="attrs"
|
|
|
|
|
|
:form="form"
|
|
|
|
|
|
:disableChange="disableChange"
|
|
|
|
|
|
@change="change"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<form-run-time v-else-if="attrs.type === 'runTime'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<form-files v-else-if="attrs.type === 'files'" v-bind="attrs" :form="form" :disableChange="disableChange" @change="change" />
|
|
|
|
|
|
<view v-else-if="attrs.type || attrs.name || attrs.title" class="py-20rpx px-30rpx border-bottom text-28rpx text-gray-500">
|
|
|
|
|
|
{{ attrs.name || attrs.title }}(暂不支持:{{ attrs.type }})
|
|
|
|
|
|
</view>
|
2026-01-19 18:52:18 +08:00
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
|
<form-operation v-else-if="attrs.title === 'surgicalHistory'" v-bind="attrs" :form="form" @change="change"
|
|
|
|
|
|
@addRule="addRule" />
|
|
|
|
|
|
<form-mult v-else-if="attrs.type === 'multiSelectAndOther'" v-bind="attrs" :form="form" @change="change"
|
|
|
|
|
|
@addRule="addRule" />
|
|
|
|
|
|
<customer-mult-disease v-else-if="attrs.type === 'selfMultipleDiseases'" v-bind="attrs" :form="form"
|
|
|
|
|
|
@change="change"></customer-mult-disease> -->
|
|
|
|
|
|
<!-- <view v-else-if="type" class="py-20rpx px-30rpx border-bottom"> {{ type }} {{ attrs.name }}</view> -->
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
|
|
|
import { useAttrs } from 'vue';
|
|
|
|
|
|
|
|
|
|
|
|
import formInput from './form-input.vue';
|
|
|
|
|
|
import formSelect from './form-select.vue';
|
|
|
|
|
|
import formRadio from './form-radio.vue';
|
|
|
|
|
|
import formDatepicker from './form-datepicker.vue';
|
|
|
|
|
|
import formRegion from './form-region.vue';
|
|
|
|
|
|
import formTextarea from './form-textarea.vue';
|
2026-01-23 17:10:23 +08:00
|
|
|
|
import formMultiSelectAndOther from './form-multiSelectAndOther.vue';
|
|
|
|
|
|
import formSelectOther from './form-select-other.vue';
|
|
|
|
|
|
import formSelectMobile from './form-select-mobile.vue';
|
|
|
|
|
|
import formRunTime from './form-run-time.vue';
|
|
|
|
|
|
import formFiles from './form-files.vue';
|
|
|
|
|
|
import formSelectImage from './form-select-image.vue';
|
|
|
|
|
|
import formSurgicalHistory from './form-surgical-history.vue';
|
2026-01-27 16:46:36 +08:00
|
|
|
|
import formPositiveFind from './form-positive-find.vue';
|
|
|
|
|
|
import formDiagnosisPicker from './form-diagnosis-picker.vue';
|
2026-01-19 18:52:18 +08:00
|
|
|
|
|
|
|
|
|
|
defineProps({
|
|
|
|
|
|
form: {
|
|
|
|
|
|
type: Object,
|
|
|
|
|
|
default: () => ({})
|
|
|
|
|
|
},
|
|
|
|
|
|
disableChange: {
|
|
|
|
|
|
type: Boolean,
|
|
|
|
|
|
default: false
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
const attrs = useAttrs();
|
|
|
|
|
|
const emits = defineEmits(['change']);
|
|
|
|
|
|
|
|
|
|
|
|
function change(data) {
|
|
|
|
|
|
emits('change', data)
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <script>
|
|
|
|
|
|
import formDatepicker from './form-datepicker.vue';
|
|
|
|
|
|
import formInput from './form-input.vue';
|
|
|
|
|
|
import formRadio from './form-radio.vue';
|
|
|
|
|
|
import formSelect from './form-select.vue';
|
|
|
|
|
|
import formRegion from './form-region/form-region.vue';
|
|
|
|
|
|
import formTextarea from './form-textarea.vue';
|
|
|
|
|
|
import formMult from './form-multiSelectAndOther.vue';
|
|
|
|
|
|
import formOperation from './form-operation.vue';
|
|
|
|
|
|
import customerMultDisease from '../custom-cell/custom-multiple-diseases.vue';
|
|
|
|
|
|
export default {
|
|
|
|
|
|
components: {
|
|
|
|
|
|
formInput,
|
|
|
|
|
|
formSelect,
|
|
|
|
|
|
formDatepicker,
|
|
|
|
|
|
formRadio,
|
|
|
|
|
|
formRegion,
|
|
|
|
|
|
formTextarea,
|
|
|
|
|
|
formMult,
|
|
|
|
|
|
formOperation,
|
|
|
|
|
|
customerMultDisease
|
|
|
|
|
|
},
|
|
|
|
|
|
props: {
|
|
|
|
|
|
form: {
|
|
|
|
|
|
type: Object,
|
|
|
|
|
|
default: () => ({})
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
computed: {
|
|
|
|
|
|
componentName() {
|
|
|
|
|
|
return FormComponent[this.attrs.type]
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
change(data) {
|
|
|
|
|
|
this.$emit('change', data)
|
|
|
|
|
|
},
|
|
|
|
|
|
addRule(data) {
|
|
|
|
|
|
this.$emit('addRule', data)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script> -->
|
|
|
|
|
|
|
2026-01-23 17:10:23 +08:00
|
|
|
|
<style lang="scss" scoped></style>
|