|
@@ -0,0 +1,131 @@
|
|
|
+<template>
|
|
|
+ <div class="relative p-12px">
|
|
|
+ <el-form ref="formRef" :model="formModel" :rules="formRules" label-width="auto" size="large">
|
|
|
+ <el-row :gutter="60">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目名称:" prop="projectName">
|
|
|
+ <el-input v-model="formModel.projectName" clearable placeholder="项目名称" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="项目别名:" prop="projectAlias">
|
|
|
+ <el-input v-model="formModel.projectAlias" clearable placeholder="项目别名" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="项目编号:">
|
|
|
+ <el-input v-model="formModel.projectNumber" clearable placeholder="项目编号" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="公路等级:">
|
|
|
+ <el-select v-model="formModel.projectGrade" filterable clearable block placeholder="公路等级">
|
|
|
+ <el-option v-for="item in highwayGradeList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="计划开工:" prop="planStartTime">
|
|
|
+ <el-date-picker v-model="formModel.planStartTime" class="block" format="YYYY 年 MM 月 DD 日" type="date" value-format="YYYY-MM-DD HH:mm:ss" placeholder="计划开工日期" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="实际开工:" prop="actualStartTime">
|
|
|
+ <el-date-picker v-model="formModel.actualStartTime" class="block" format="YYYY 年 MM 月 DD 日" type="date" value-format="YYYY-MM-DD HH:mm:ss" placeholder="实际开工日期" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="预算投资:">
|
|
|
+ <el-input v-model="formModel.estimatedAmount" clearable placeholder="项目预算投资">
|
|
|
+ <template #append>万元</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="电签类别:" prop="remarkType">
|
|
|
+ <div class="form-item-div">
|
|
|
+ <el-radio-group v-model="formModel.remarkType">
|
|
|
+ <el-radio :value="1">安心签</el-radio>
|
|
|
+ <el-radio :value="2">东方中讯</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="电签方式:">
|
|
|
+ <div class="form-item-div">
|
|
|
+ <el-radio-group v-model="formModel.approvalType">
|
|
|
+ <el-radio :value="1">流程审批</el-radio>
|
|
|
+ <el-radio :value="2">平行审批</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="计量单元:">
|
|
|
+ <el-select v-model="formModel.meterTemplateId" filterable clearable block placeholder="系统计量单元">
|
|
|
+ <el-option v-for="item in meterTemplateOption" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目概况:">
|
|
|
+ <el-input v-model="formModel.projectGist" :rows="7" type="textarea" placeholder="项目概况" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="内置里程:">
|
|
|
+ <el-radio-group v-model="formModel.radioType" class="mr-14px">
|
|
|
+ <el-radio-button label="总里程" value="总里程" />
|
|
|
+ <el-radio-button label="路面" value="路面" />
|
|
|
+ <el-radio-button label="路基" value="路基" />
|
|
|
+ </el-radio-group>
|
|
|
+ <el-input-number v-if="formModel.radioType === '总里程'" v-model="formModel.projectAllMileage" :min="0" />
|
|
|
+ <el-input-number v-if="formModel.radioType === '路面'" v-model="formModel.projectPavement" :min="0" />
|
|
|
+ <el-input-number v-if="formModel.radioType === '路基'" v-model="formModel.projectSubgrade" :min="0" />
|
|
|
+ <span class="ml-12px">公里(KM)</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="计划完工:" prop="planEndTime">
|
|
|
+ <el-date-picker v-model="formModel.planEndTime" class="block" format="YYYY 年 MM 月 DD 日" type="date" value-format="YYYY-MM-DD HH:mm:ss" placeholder="计划完工日期" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="实际完工:" prop="actualEndTime">
|
|
|
+ <el-date-picker v-model="formModel.actualEndTime" class="block" format="YYYY 年 MM 月 DD 日" type="date" value-format="YYYY-MM-DD HH:mm:ss" placeholder="实际完工日期" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="随机数:" prop="isOpenRandomNumber">
|
|
|
+ <div class="form-item-div">
|
|
|
+ <el-radio-group v-model="formModel.isOpenRandomNumber">
|
|
|
+ <el-radio :value="0">不开启</el-radio>
|
|
|
+ <el-radio :value="1">开启</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import { onMounted, ref, watch } from 'vue'
|
|
|
+import { getDictionaryData } from '~uti/tools'
|
|
|
+
|
|
|
+//双向绑定
|
|
|
+const modelData = defineModel('modelValue', {
|
|
|
+ default: {},
|
|
|
+})
|
|
|
+
|
|
|
+//渲染完成
|
|
|
+onMounted(() => {
|
|
|
+ getHighwayGradeList()
|
|
|
+})
|
|
|
+
|
|
|
+//监听数据
|
|
|
+const formModel = ref({})
|
|
|
+watch(() => modelData.value, (data) => {
|
|
|
+ data.radioType = data.radioType || '总里程'
|
|
|
+ formModel.value = data
|
|
|
+}, { immediate: true, deep: true })
|
|
|
+
|
|
|
+//表单
|
|
|
+const formRef = ref(null)
|
|
|
+const formRules = {
|
|
|
+ projectName: { required: true, trigger: 'blur', message: '请输入项目名称' },
|
|
|
+ projectAlias: { required: true, trigger: 'blur', message: '请输入项目别名' },
|
|
|
+ planStartTime: { required: true, trigger: 'blur', message: '请选择计划开工日期' },
|
|
|
+ actualStartTime: { required: true, trigger: 'blur', message: '请选择实际开工日期' },
|
|
|
+ remarkType: { required: true, trigger: 'blur', message: '请选择电签类别' },
|
|
|
+}
|
|
|
+
|
|
|
+//公路等级
|
|
|
+const highwayGradeList = ref([])
|
|
|
+const getHighwayGradeList = async () => {
|
|
|
+ highwayGradeList.value = await getDictionaryData('highway_grade')
|
|
|
+}
|
|
|
+
|
|
|
+//系统计量单元
|
|
|
+const meterTemplateOption = ref([])
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+
|
|
|
+</style>
|