| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <template>	<view class="f-straight">    <uni-forms ref="form" :modelValue="formData" :rules="rules" validateTrigger="bind" :label-width="formLabelWidth">      <uni-forms-item label="实习到岗开始时间" name="startTime" required>				<picker mode="date" :value="formData.startTime" fields="month" @change="e => formData.startTime = e.detail.value">					<view v-if="formData.startTime" class="pickerText">{{ formData.startTime }}</view>					<view v-else class="pickerText">请选择</view>				</picker>			</uni-forms-item>      <uni-forms-item label="实习到岗结束时间" name="endTime" required>				<picker mode="date" :value="formData.endTime" fields="month" @change="e => formData.endTime = e.detail.value">					<view v-if="formData.endTime" class="pickerText">{{ formData.endTime }}</view>					<view v-else class="pickerText">请选择</view>				</picker>			</uni-forms-item>    </uni-forms>	</view></template><script setup>import { ref, unref } from 'vue'import { convertYearMonthToTimestamp } from '@/utils/date.js'const props = defineProps({  formLabelWidth: { type: [String, Number], default: '136px' },})const form = ref()let formData = ref({  startTime: '',  endTime: ''})const rules = {	startTime:{		rules: [{required: true, errorMessage: '请选择实习到岗开始时间' }]	},	endTime:{		rules: [{required: true, errorMessage: '请选择实习到岗结束时间' }]	}}// 保存const getQueryParams = async () => {  const valid = await unref(form).validate()  if (!valid) return  const startTime = convertYearMonthToTimestamp(formData.value.startTime)  const endTime = convertYearMonthToTimestamp(formData.value.endTime)  if (rules?.startTime && !startTime) {    uni.showToast({ icon: 'none', title: '请选择实习到岗开始时间' })    return  }  if (rules?.endTime && !endTime) {    uni.showToast({ icon: 'none', title: '请选择实习到岗结束时间' })    return  }  if (startTime > endTime) {    uni.showToast({ icon: 'none', title: '开始时间不能大于结束时间' })    return  }  return { practiceStartTime: startTime, practiceEndTime: endTime }}defineExpose({	getQueryParams})</script><style scoped lang="scss">.f-straight{	display: flex;	justify-content: center;	flex-direction: column;}.pickerText {  height: 36px;  line-height: 36px;}</style>
 |