This commit is contained in:
niedongsheng 2026-04-15 10:45:02 +08:00
commit 68c6df8af8
2 changed files with 25 additions and 8 deletions

View File

@ -7,7 +7,7 @@
</span> </span>
<van-icon name="arrow-down" class="selector-icon" /> <van-icon name="arrow-down" class="selector-icon" />
</div> --> </div> -->
<van-field :modelValue="modelValue" is-link readonly :label="label" :placeholder="placeholder" @click="showPicker = true" /> <van-field :modelValue="modelValue" is-link readonly :label="label" :placeholder="placeholder" :rules="rules" :required="required" @click="showPicker = true" />
<!-- 移动端弹出层使用 van-action-sheet + 内部列表 --> <!-- 移动端弹出层使用 van-action-sheet + 内部列表 -->
<van-action-sheet v-model:show="showPicker" :title="dialogTitle" :close-on-click-action="false" round :style="{ maxHeight: '80vh' }" @close="handlePickerClose"> <van-action-sheet v-model:show="showPicker" :title="dialogTitle" :close-on-click-action="false" round :style="{ maxHeight: '80vh' }" @close="handlePickerClose">
@ -39,7 +39,7 @@ import { ref, computed, watch, onUnmounted } from 'vue'
import { showToast } from 'vant' import { showToast } from 'vant'
import { request } from '@shared/utils/request' import { request } from '@shared/utils/request'
// ==================== Props ==================== // ==================== Props ====================
const props = defineProps({ const props = defineProps({
// v-model 线 // v-model 线
modelValue: { modelValue: {
@ -84,6 +84,16 @@ const props = defineProps({
searchDelay: { searchDelay: {
type: Number, type: Number,
default: 500 default: 500
},
//
rules: {
type: Array,
default: () => []
},
//
required: {
type: Boolean,
default: false
} }
}) })

View File

@ -5,11 +5,11 @@
<van-form ref="formRef" label-align="left" colon> <van-form ref="formRef" label-align="left" colon>
<van-field v-model="form.project.districtName" label="区县名称" center placeholder="请填写" required <van-field v-model="form.project.districtName" label="区县名称" center placeholder="请填写" required
:rules="[{ required: true, message: '请填写区县名称' }]" /> :rules="[{ required: true, message: '请填写区县名称' }]" />
<van-field v-model="form.project.routeNo" label="线路编号" center placeholder="请填写" required <RoadRoutesPicker v-model="form.project.routeNo" label="线路编号" center placeholder="请选择" required
:rules="[{ required: true, message: '请填写线路编号' }]" /> :rules="[{ required: true, message: '请选择线路编号' }]" @change="handleRouteNoChange" />
<van-field v-model="form.project.startStakeNo" label="起点桩号" center placeholder="请填写" required <van-field v-model="form.project.startStakeNo" label="起点桩号" disabled center placeholder="请选择线路编号" required
:rules="[{ required: true, message: '请填写起点桩号' }]" /> :rules="[{ required: true, message: '请填写起点桩号' }]" />
<van-field v-model="form.project.endStakeNo" label="止点桩号" center placeholder="请填写" required <van-field v-model="form.project.endStakeNo" label="止点桩号" disabled center placeholder="请选择线路编号" required
:rules="[{ required: true, message: '请填写止点桩号' }]" /> :rules="[{ required: true, message: '请填写止点桩号' }]" />
<van-field v-model="form.project.implementMileage" label="实施里程" center placeholder="单位:公里" required <van-field v-model="form.project.implementMileage" label="实施里程" center placeholder="单位:公里" required
type="number" :rules="[{ required: true, message: '请填写实施里程' }]"> type="number" :rules="[{ required: true, message: '请填写实施里程' }]">
@ -59,6 +59,7 @@ import PageContainer from '@/components/PageContainer.vue'
import { showToast, showLoadingToast } from "vant"; import { showToast, showLoadingToast } from "vant";
import PanelItem from '@/components/PanelItem.vue' import PanelItem from '@/components/PanelItem.vue'
import { request } from "../../../../shared/utils/request"; import { request } from "../../../../shared/utils/request";
import RoadRoutesPicker from '../DisasterManagement/RoadRoutesPicker.vue'
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
@ -180,10 +181,10 @@ const handleAdd = async () => {
data: form data: form
}) })
toast.close(); toast.close();
if(res.code === '00000'){ if (res.code === '00000') {
showToast('提交成功'); showToast('提交成功');
handleClickBack(); handleClickBack();
}else{ } else {
showToast('提交失败, 请稍后重试或联系管理员'); showToast('提交失败, 请稍后重试或联系管理员');
} }
} catch (error) { } catch (error) {
@ -193,6 +194,12 @@ const handleAdd = async () => {
} }
const handleRouteNoChange = (item) => {
form.project.startStakeNo = item.startStakeNo
form.project.endStakeNo = item.endStakeNo
}
</script> </script>