|
@@ -6,15 +6,15 @@
|
|
|
<el-form :model="baseForm" label-width="auto" :rules="baseFormRules" size="large" label-position="left">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="项目名称:" prop="key1" class="with-auto">
|
|
|
- <el-input v-model="baseForm.key1" placeholder="请输入" clearable />
|
|
|
+ <el-form-item label="项目名称:" prop="name">
|
|
|
+ <el-input v-model="baseForm.name" placeholder="请输入" clearable />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="建设规模:" prop="key2" class="with-auto">
|
|
|
- <el-input v-model="baseForm.key2" placeholder="请输入" clearable>
|
|
|
+ <el-form-item label="建设规模:" prop="buildScale">
|
|
|
+ <el-input v-model="baseForm.buildScale" placeholder="请输入" clearable>
|
|
|
<template #append>
|
|
|
- <el-select v-model="unitSelect" placeholder="单位" style="width: 80px">
|
|
|
+ <el-select v-model="baseForm.buildScaleUnit" placeholder="单位" style="width: 80px">
|
|
|
<el-option label="公里" value="1" />
|
|
|
<el-option label="无" value="2" />
|
|
|
</el-select>
|
|
@@ -23,23 +23,23 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="项目阶段:" prop="key3" class="with-auto">
|
|
|
- <el-select v-model="baseForm.key3" placeholder="请选择">
|
|
|
+ <el-form-item label="项目阶段:" prop="projectStage">
|
|
|
+ <el-select v-model="baseForm.projectStage" placeholder="请选择">
|
|
|
<el-option v-for="item in stateOptions" :key="item.id" :label="item.dictValue" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="项目类型:" prop="key4" class="with-auto">
|
|
|
- <el-select v-model="baseForm.key4" placeholder="请选择">
|
|
|
+ <el-form-item label="项目类型:" prop="projectType">
|
|
|
+ <el-select v-model="baseForm.projectType" placeholder="请选择">
|
|
|
<el-option v-for="item in typeOptions" :key="item.id" :label="item.dictValue" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="总投资:" prop="key111" class="with-auto">
|
|
|
+ <el-form-item label="总投资:" prop="allInvest">
|
|
|
<el-input
|
|
|
- v-model="yearForm.key111" placeholder="请输入" clearable
|
|
|
+ v-model="yearForm.allInvest" placeholder="请输入" clearable
|
|
|
:formatter="formatInput"
|
|
|
>
|
|
|
<template #append>亿元</template>
|
|
@@ -47,9 +47,9 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="十四五计划投资:" prop="key112" class="with-auto">
|
|
|
+ <el-form-item label="十四五计划投资:" prop="fourteenFiveInvest">
|
|
|
<el-input
|
|
|
- v-model="yearForm.key112" placeholder="请输入" clearable
|
|
|
+ v-model="yearForm.fourteenFiveInvest" placeholder="请输入" clearable
|
|
|
:formatter="formatInput"
|
|
|
>
|
|
|
<template #append>亿元</template>
|
|
@@ -57,42 +57,44 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="开工年:" prop="key5" class="with-auto">
|
|
|
- <el-date-picker ref="startYearRef" v-model="baseForm.key5" class="block" type="year" placeholder="请选择" value-format="YYYY" @change="startYearChange" />
|
|
|
+ <el-form-item label="开工年:" prop="startYear">
|
|
|
+ <el-date-picker ref="startYearRef" v-model="baseForm.startYear" class="block" type="year" placeholder="请选择" value-format="YYYY" @change="startYearChange" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="完工年:" prop="key6" class="with-auto">
|
|
|
- <el-date-picker ref="endYearRef" v-model="baseForm.key6" class="block" type="year" placeholder="请选择" value-format="YYYY" @change="endYearChange" @blur="endYearBlur" />
|
|
|
+ <el-form-item label="完工年:" prop="endYear">
|
|
|
+ <el-date-picker ref="endYearRef" v-model="baseForm.endYear" class="block" type="year" placeholder="请选择" value-format="YYYY" @change="endYearChange" @blur="endYearBlur" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="市级重点项目:" prop="kekey33" class="with-auto">
|
|
|
- <el-select v-model="baseForm.key33" placeholder="请选择">
|
|
|
- <el-option v-for="item in stateOptions" :key="item.id" :label="item.dictValue" :value="item.id" />
|
|
|
+ <el-form-item label="市级重点项目:" prop="isFocusProject">
|
|
|
+ <el-select v-model="baseForm.isFocusProject" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" />
|
|
|
+ <el-option label="否" value="0" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="交通强国建设试点任务:" prop="key44" class="with-auto">
|
|
|
- <el-select v-model="baseForm.key44" placeholder="请选择">
|
|
|
- <el-option v-for="item in typeOptions" :key="item.id" :label="item.dictValue" :value="item.id" />
|
|
|
+ <el-form-item label="交通强国建设试点任务:" prop="isPilotPlan">
|
|
|
+ <el-select v-model="baseForm.isPilotPlan" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" />
|
|
|
+ <el-option label="否" value="0" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="牵头单位:" prop="key7" class="with-auto">
|
|
|
- <el-input v-model="baseForm.key7" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="牵头单位:" prop="leaderUnit">
|
|
|
+ <el-input v-model="baseForm.leaderUnit" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="配合单位:" prop="key8" class="with-auto">
|
|
|
- <el-input v-model="baseForm.key7" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="配合单位:" prop="assistUnit">
|
|
|
+ <el-input v-model="baseForm.assistUnit" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="责任单位:" prop="key9" class="with-auto">
|
|
|
- <el-input v-model="baseForm.key7" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="责任单位:" prop="dutyUnit">
|
|
|
+ <el-input v-model="baseForm.dutyUnit" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -103,10 +105,10 @@
|
|
|
<el-option v-for="(item, index) in yearOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</template>
|
|
|
- <el-form :model="yearOptions[selectIndex]?.yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left" size="large">
|
|
|
- <el-form-item label="全年计划投资:" prop="key1" class="w-100">
|
|
|
+ <el-form :model="yearOptions[selectIndex].yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left" size="large">
|
|
|
+ <el-form-item label="全年计划投资:" prop="yearlyInvest" class="w-100">
|
|
|
<el-input
|
|
|
- v-model="yearOptions[selectIndex].yearForm.key1" placeholder="请输入" clearable
|
|
|
+ v-model="yearOptions[selectIndex].yearForm.yearlyInvest" placeholder="请输入" clearable
|
|
|
:formatter="formatInput"
|
|
|
>
|
|
|
<template #append>亿元</template>
|
|
@@ -115,55 +117,55 @@
|
|
|
<el-form-item label="预计完成投资额:" prop="key1">
|
|
|
<div class="quarter-box w-full flex">
|
|
|
<div class="flex">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key2" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.oneInvest" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
<template #prepend>一季度</template>
|
|
|
<template #append>亿元</template>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="ml-[40px] flex">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key3" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.twoInvest" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
<template #prepend>二季度</template>
|
|
|
<template #append>亿元</template>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="ml-[40px] flex">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key4" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.threeInvest" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
<template #prepend>三季度</template>
|
|
|
<template #append>亿元</template>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="ml-[40px] flex">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key5" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.fourInvest" placeholder="请输入" clearable :formatter="formatInput">
|
|
|
<template #prepend>四季度</template>
|
|
|
<template #append>亿元</template>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="全年目标:" prop="key6">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key6" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="全年目标:" prop="yearlyTarget">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.yearlyTarget" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <el-form :model="yearOptions[selectIndex].yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left">
|
|
|
+ <el-form :model="yearOptions[selectIndex]?.yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left">
|
|
|
<div class="hc-form-item-title">各季度工作计划:</div>
|
|
|
- <el-form-item label="一季度:" prop="key7">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key7" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="一季度:" prop="onePlan">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.onePlan" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="二季度:" prop="key8">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key8" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="二季度:" prop="twoPlan">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.twoPlan" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="三季度:" prop="key8">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key8" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="三季度:" prop="threePlan ">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.threePlan" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="四季度:" prop="key10">
|
|
|
- <el-input v-model="yearOptions[selectIndex].yearForm.key10" placeholder="请输入" clearable type="textarea" />
|
|
|
+ <el-form-item label="四季度:" prop="fourPlan">
|
|
|
+ <el-input v-model="yearOptions[selectIndex].yearForm.fourPlan" placeholder="请输入" clearable type="textarea" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</hc-card-item>
|
|
|
<template #action>
|
|
|
- <el-button v-if="formInfo.id" type="info" @click="cancelClick">取消</el-button>
|
|
|
+ <el-button type="info" @click="cancelClick">取消</el-button>
|
|
|
<el-button v-if="!formInfo.id" color="#20C98B" type="primary" class="text-white" @click="createClick">创建</el-button>
|
|
|
- <el-button type="warning" @click="saveClick">保存</el-button>
|
|
|
+ <el-button v-else type="warning" @click="saveClick">保存</el-button>
|
|
|
</template>
|
|
|
</hc-card>
|
|
|
</template>
|
|
@@ -173,6 +175,7 @@ import { computed, onMounted, ref, watch } from 'vue'
|
|
|
import { isNullES } from 'js-fast-way'
|
|
|
import { getDictionary } from '~api/dictbiz'
|
|
|
import { arrIndex, formValidate, getArrValue, getObjValue, isArrItem } from 'js-fast-way'
|
|
|
+ import mainApi from '~api/project/project'
|
|
|
|
|
|
const props = defineProps({
|
|
|
form: {
|
|
@@ -188,37 +191,34 @@ const emit = defineEmits(['back'])
|
|
|
const formInfo = ref(props.form)
|
|
|
watch(() => props.form, (data) => {
|
|
|
formInfo.value = data
|
|
|
+
|
|
|
})
|
|
|
|
|
|
//渲染完成
|
|
|
onMounted(() => {
|
|
|
- console.log(formInfo.value)
|
|
|
+ console.log(formInfo.value, '11111')
|
|
|
getProStation()
|
|
|
getProType()
|
|
|
})
|
|
|
|
|
|
-const baseForm = ref({ key1:'', key2: '', key3:'', key4:'', key5:'', key6:'', key7:'', key8:'', key9:'' })
|
|
|
+const baseForm = ref({ })
|
|
|
const baseFormRules = {
|
|
|
- key1: {
|
|
|
+ name: {
|
|
|
required: true,
|
|
|
trigger: 'blur',
|
|
|
message: '请输入项目名称',
|
|
|
},
|
|
|
- key3: {
|
|
|
+ projectStage: {
|
|
|
required: true,
|
|
|
trigger: 'blur',
|
|
|
message: '请选择项目阶段',
|
|
|
},
|
|
|
- key4: {
|
|
|
+ projectType: {
|
|
|
required: true,
|
|
|
trigger: 'blur',
|
|
|
message: '请选择项目类型',
|
|
|
},
|
|
|
- role: {
|
|
|
- required: true,
|
|
|
- trigger: 'blur',
|
|
|
- message: '请选择角色',
|
|
|
- },
|
|
|
+
|
|
|
}
|
|
|
const unitSelect = ref('')
|
|
|
|
|
@@ -228,11 +228,11 @@ const stateOptions = ref([])
|
|
|
const getProStation = async () => {
|
|
|
const { error, code, data } = await getDictionary({ code:'projectStage' })
|
|
|
if (!error && code === 200) {
|
|
|
- stateOptions.value = getArrValue(data)
|
|
|
+ stateOptions.value = getArrValue(data)
|
|
|
} else {
|
|
|
stateOptions.value = []
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
//项目类型
|
|
|
const typeOptions = ref([])
|
|
@@ -242,14 +242,14 @@ const getProType = async () => {
|
|
|
typeOptions.value = getArrValue(data)
|
|
|
} else {
|
|
|
typeOptions.value = []
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
const endYearRef = ref(null)
|
|
|
const startYearRef = ref(null)
|
|
|
//开始年
|
|
|
const startYearChange = (val) => {
|
|
|
- baseForm.value.key5 = val
|
|
|
+ baseForm.value.startYear = val
|
|
|
endYearRef.value?.focus()
|
|
|
endYearRef.value?.handleOpen()
|
|
|
startYearRef.value?.handleClose()
|
|
@@ -258,28 +258,30 @@ const startYearChange = (val) => {
|
|
|
//结束年
|
|
|
const endYearChange = (val) => {
|
|
|
if (isNullES(val)) {
|
|
|
- baseForm.value.key5 = ''
|
|
|
+ baseForm.value.startYear = ''
|
|
|
}
|
|
|
- baseForm.value.key6 = val
|
|
|
+ baseForm.value.endYear = val
|
|
|
|
|
|
}
|
|
|
//失去焦点
|
|
|
const endYearBlur = () => {
|
|
|
- if (isNullES(baseForm.value.key5) || isNullES(baseForm.value.key6)) {
|
|
|
- baseForm.value.key5 = ''
|
|
|
- baseForm.value.key6 = ''
|
|
|
+ if (isNullES(baseForm.value.startYear) || isNullES(baseForm.value.endYear)) {
|
|
|
+ baseForm.value.startYear = ''
|
|
|
+ baseForm.value.endYear = ''
|
|
|
window.$message.warning('请重新选择完整的范围年份')
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
let years = []
|
|
|
- let startYear = baseForm.value.key5
|
|
|
- let endYear = baseForm.value.key6
|
|
|
+ let startYear = baseForm.value.startYear
|
|
|
+ let endYear = baseForm.value.endYear
|
|
|
for (let year = startYear; year <= endYear; year++) {
|
|
|
years.push(
|
|
|
{
|
|
|
value:year,
|
|
|
label:year,
|
|
|
- yearForm:{},
|
|
|
+ yearForm:{
|
|
|
+ planYear:year,
|
|
|
+ },
|
|
|
},
|
|
|
)
|
|
|
}
|
|
@@ -307,7 +309,7 @@ const formatInput = (value)=>{
|
|
|
} else {
|
|
|
// 如果输入不合法,则移除非法字符,并返回处理后的值
|
|
|
return value.slice(0, -1)
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -330,17 +332,45 @@ const cancelClick = () => {
|
|
|
}
|
|
|
|
|
|
//创建
|
|
|
-const createClick = () => {
|
|
|
+const creatLoading = ref(false)
|
|
|
+const createClick = async () => {
|
|
|
const form = formInfo.value
|
|
|
- if (isNullES(form.id)) cancelClick()
|
|
|
+ // if (isNullES(form.id)) cancelClick()
|
|
|
+ console.log(baseForm.value, 'baseForm.value')
|
|
|
+ console.log(yearOptions.value, '111111')
|
|
|
+ let list = []
|
|
|
+ yearOptions.value.forEach((ele)=>{
|
|
|
+ let yearForm = ele.yearForm
|
|
|
+ list.push(yearForm)
|
|
|
+ })
|
|
|
+ creatLoading.value = true
|
|
|
+ //发起请求
|
|
|
+ const { error, code, msg } = await mainApi.add({
|
|
|
+ ...baseForm.value,
|
|
|
+ list,
|
|
|
+ })
|
|
|
+ //判断状态
|
|
|
+ creatLoading.value = false
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window?.$message?.success(msg)
|
|
|
+ if (!isNullES(form.id)) {
|
|
|
+ baseForm.value = {}
|
|
|
+ yearOptions.value = [{}]
|
|
|
+ cancelClick()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window.$message.error(msg ?? '操作失败')
|
|
|
+ }
|
|
|
+
|
|
|
console.log('创建')
|
|
|
}
|
|
|
|
|
|
//保存
|
|
|
const saveClick = () => {
|
|
|
- const form = formInfo.value
|
|
|
- if (isNullES(form.id)) cancelClick()
|
|
|
+ // const form = formInfo.value
|
|
|
+ // if (isNullES(form.id)) cancelClick()
|
|
|
console.log('保存')
|
|
|
+ console.log(baseForm.value, 'baseForm.value')
|
|
|
console.log(yearOptions.value, '111111')
|
|
|
}
|
|
|
</script>
|