|
|
|
@ -59,7 +59,20 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 原因 --> |
|
|
|
<van-field v-model="formData.reason" name="reason" label="原因" placeholder="请输入原因" readonly /> |
|
|
|
<van-field v-model="formData.reason" name="reason" label="原因" :placeholder="formData.reason || '请选择'" readonly |
|
|
|
:clickable="canSelectReason" :is-link="canSelectReason" |
|
|
|
@click="canSelectReason && (showReasonPicker = true)" /> |
|
|
|
|
|
|
|
<!-- 原因选择弹窗 --> |
|
|
|
<van-popup v-model:show="showReasonPicker" round position="bottom"> |
|
|
|
<van-picker :columns="reasonOptions" title="选择原因" @confirm="selectReason" |
|
|
|
@cancel="showReasonPicker = false" /> |
|
|
|
</van-popup> |
|
|
|
|
|
|
|
<!-- 其他原因输入框(选择"其他"时显示) --> |
|
|
|
<van-field v-if="formData.reason === '其他'" v-model="formData.other_reasons" name="other_reasons" label="其他原因" |
|
|
|
placeholder="请输入其他原因" type="textarea" rows="3" maxlength="500" show-word-limit |
|
|
|
:rules="[{ required: true, message: '请填写其他原因' }]" required /> |
|
|
|
|
|
|
|
<!-- 入企时间(可选,近10天内) --> |
|
|
|
<van-field v-model="formData.enforcementTime" name="enforcementTime" label="入企时间" placeholder="请选择入企时间" |
|
|
|
@ -95,6 +108,14 @@ const matterOptions = ref([]); |
|
|
|
// 弹窗显示状态 |
|
|
|
const showMatterPicker = ref(false); |
|
|
|
const showTimePicker = ref(false); |
|
|
|
const showReasonPicker = ref(false); |
|
|
|
|
|
|
|
const reasonOptions = [ |
|
|
|
{ text: '企业原因', value: '企业原因' }, |
|
|
|
{ text: '系统原因', value: '系统原因' }, |
|
|
|
{ text: '扫码未能显示企业信息', value: '扫码未能显示企业信息' }, |
|
|
|
{ text: '其他', value: '其他' } |
|
|
|
]; |
|
|
|
const datePickerValue = ref([]); |
|
|
|
const minDate = ref(new Date()); |
|
|
|
const maxDate = ref(new Date()); |
|
|
|
@ -106,6 +127,15 @@ const selectMatter = ({ selectedOptions }) => { |
|
|
|
showMatterPicker.value = false; |
|
|
|
}; |
|
|
|
|
|
|
|
// 选择原因 |
|
|
|
const selectReason = ({ selectedOptions }) => { |
|
|
|
props.formData.reason = selectedOptions[0]?.text || ''; |
|
|
|
if (props.formData.reason !== '其他') { |
|
|
|
props.formData.other_reasons = ''; |
|
|
|
} |
|
|
|
showReasonPicker.value = false; |
|
|
|
}; |
|
|
|
|
|
|
|
// 初始化加载入企事由字典、时间选择范围 |
|
|
|
onMounted(() => { |
|
|
|
const range = getEnforcementTimeDateRange(10); |
|
|
|
@ -145,6 +175,10 @@ const props = defineProps({ |
|
|
|
additionalPersons: { |
|
|
|
type: Array, |
|
|
|
default: () => [] |
|
|
|
}, |
|
|
|
canSelectReason: { |
|
|
|
type: Boolean, |
|
|
|
default: false |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
|