|
@@ -3,7 +3,7 @@
|
|
<template #header>
|
|
<template #header>
|
|
<div class="flex-1 text-center text-[24px] font-bold">项目信息填写</div>
|
|
<div class="flex-1 text-center text-[24px] font-bold">项目信息填写</div>
|
|
</template>
|
|
</template>
|
|
- <el-form :model="baseForm" label-width="auto" :rules="baseFormRules" size="large" label-position="left">
|
|
|
|
|
|
+ <el-form ref="formRef" :model="baseForm" label-width="auto" :rules="baseFormRules" size="large" label-position="left">
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
<el-form-item label="项目名称:" prop="name">
|
|
<el-form-item label="项目名称:" prop="name">
|
|
@@ -37,9 +37,9 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-col :span="6">
|
|
- <el-form-item label="总投资:" prop="allInvest">
|
|
|
|
|
|
+ <el-form-item label="总投资:" prop="allInvestMoney">
|
|
<el-input
|
|
<el-input
|
|
- v-model="yearForm.allInvest" placeholder="请输入" clearable
|
|
|
|
|
|
+ v-model="baseForm.allInvestMoney" placeholder="请输入" clearable
|
|
:formatter="formatInput"
|
|
:formatter="formatInput"
|
|
>
|
|
>
|
|
<template #append>亿元</template>
|
|
<template #append>亿元</template>
|
|
@@ -49,7 +49,7 @@
|
|
<el-col :span="6">
|
|
<el-col :span="6">
|
|
<el-form-item label="十四五计划投资:" prop="fourteenFiveInvest">
|
|
<el-form-item label="十四五计划投资:" prop="fourteenFiveInvest">
|
|
<el-input
|
|
<el-input
|
|
- v-model="yearForm.fourteenFiveInvest" placeholder="请输入" clearable
|
|
|
|
|
|
+ v-model="baseForm.fourteenFiveInvest" placeholder="请输入" clearable
|
|
:formatter="formatInput"
|
|
:formatter="formatInput"
|
|
>
|
|
>
|
|
<template #append>亿元</template>
|
|
<template #append>亿元</template>
|
|
@@ -105,7 +105,7 @@
|
|
<el-option v-for="(item, index) in yearOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
<el-option v-for="(item, index) in yearOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
- <el-form :model="yearOptions[selectIndex].yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left" size="large">
|
|
|
|
|
|
+ <el-form :model="yearOptions[selectIndex].yearForm" label-width="auto" class="mt-3" label-position="left" size="large">
|
|
<el-form-item label="全年计划投资:" prop="yearlyInvest" class="w-100">
|
|
<el-form-item label="全年计划投资:" prop="yearlyInvest" class="w-100">
|
|
<el-input
|
|
<el-input
|
|
v-model="yearOptions[selectIndex].yearForm.yearlyInvest" placeholder="请输入" clearable
|
|
v-model="yearOptions[selectIndex].yearForm.yearlyInvest" placeholder="请输入" clearable
|
|
@@ -146,7 +146,7 @@
|
|
<el-input v-model="yearOptions[selectIndex].yearForm.yearlyTarget" placeholder="请输入" clearable type="textarea" />
|
|
<el-input v-model="yearOptions[selectIndex].yearForm.yearlyTarget" placeholder="请输入" clearable type="textarea" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</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" class="mt-3" label-position="left">
|
|
<div class="hc-form-item-title">各季度工作计划:</div>
|
|
<div class="hc-form-item-title">各季度工作计划:</div>
|
|
<el-form-item label="一季度:" prop="onePlan">
|
|
<el-form-item label="一季度:" prop="onePlan">
|
|
<el-input v-model="yearOptions[selectIndex].yearForm.onePlan" placeholder="请输入" clearable type="textarea" />
|
|
<el-input v-model="yearOptions[selectIndex].yearForm.onePlan" placeholder="请输入" clearable type="textarea" />
|
|
@@ -171,10 +171,9 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
-import { computed, onMounted, ref, watch } from 'vue'
|
|
|
|
|
|
+import { onMounted, ref, watch } from 'vue'
|
|
import { isNullES } from 'js-fast-way'
|
|
import { isNullES } from 'js-fast-way'
|
|
-import { getDictionary } from '~api/dictbiz'
|
|
|
|
-import { arrIndex, formValidate, getArrValue, getObjValue, isArrItem } from 'js-fast-way'
|
|
|
|
|
|
+import { arrIndex, formValidate, getArrValue, getObjValue } from 'js-fast-way'
|
|
import mainApi from '~api/project/project'
|
|
import mainApi from '~api/project/project'
|
|
import { getDictionaryData } from '~src/utils/tools'
|
|
import { getDictionaryData } from '~src/utils/tools'
|
|
|
|
|
|
@@ -197,22 +196,15 @@ watch(() => props.form, (data) => {
|
|
|
|
|
|
//渲染完成
|
|
//渲染完成
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
- console.log(formInfo.value, '11111')
|
|
|
|
|
|
+
|
|
await getProStation()
|
|
await getProStation()
|
|
await getProType()
|
|
await getProType()
|
|
getDataApi()
|
|
getDataApi()
|
|
})
|
|
})
|
|
const getDataApi = async () => {
|
|
const getDataApi = async () => {
|
|
-
|
|
|
|
const form = getObjValue(formInfo.value)
|
|
const form = getObjValue(formInfo.value)
|
|
if (!isNullES(form.id)) {
|
|
if (!isNullES(form.id)) {
|
|
getProDetail(form.id)
|
|
getProDetail(form.id)
|
|
- // baseForm.value = {
|
|
|
|
- // ...form,
|
|
|
|
- // id: form.id,
|
|
|
|
-
|
|
|
|
- // }
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
const getProDetail = async (id)=>{
|
|
const getProDetail = async (id)=>{
|
|
@@ -221,13 +213,28 @@ const getProDetail = async (id)=>{
|
|
|
|
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
baseForm.value = getObjValue(data)
|
|
baseForm.value = getObjValue(data)
|
|
|
|
+ let list = getArrValue(baseForm.value?.list)
|
|
|
|
+ if (list.length > 0) {
|
|
|
|
+ selectYear.value = list[0].planYear
|
|
|
|
+ }
|
|
baseForm.value.startYear = data.startYear.toString()
|
|
baseForm.value.startYear = data.startYear.toString()
|
|
baseForm.value.endYear = data.endYear.toString()
|
|
baseForm.value.endYear = data.endYear.toString()
|
|
|
|
+ yearOptions.value = []
|
|
|
|
+ list.forEach((ele)=>{
|
|
|
|
+ yearOptions.value.push({
|
|
|
|
+ value:ele.planYear,
|
|
|
|
+ label:ele.planYear,
|
|
|
|
+ yearForm:ele,
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
baseForm.value = {}
|
|
baseForm.value = {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-const baseForm = ref({ })
|
|
|
|
|
|
+const baseForm = ref({ buildScaleUnit:'1' })
|
|
const baseFormRules = {
|
|
const baseFormRules = {
|
|
name: {
|
|
name: {
|
|
required: true,
|
|
required: true,
|
|
@@ -264,7 +271,7 @@ const getProType = async () => {
|
|
const startYearRef = ref(null)
|
|
const startYearRef = ref(null)
|
|
//开始年
|
|
//开始年
|
|
const startYearChange = (val) => {
|
|
const startYearChange = (val) => {
|
|
- baseForm.value.startYear = val
|
|
|
|
|
|
+ baseForm.value.startYear = val.toString()
|
|
endYearRef.value?.focus()
|
|
endYearRef.value?.focus()
|
|
endYearRef.value?.handleOpen()
|
|
endYearRef.value?.handleOpen()
|
|
startYearRef.value?.handleClose()
|
|
startYearRef.value?.handleClose()
|
|
@@ -275,7 +282,7 @@ const endYearChange = (val) => {
|
|
if (isNullES(val)) {
|
|
if (isNullES(val)) {
|
|
baseForm.value.startYear = ''
|
|
baseForm.value.startYear = ''
|
|
}
|
|
}
|
|
- baseForm.value.endYear = val
|
|
|
|
|
|
+ baseForm.value.endYear = val.toString()
|
|
|
|
|
|
}
|
|
}
|
|
//失去焦点
|
|
//失去焦点
|
|
@@ -296,6 +303,16 @@ const endYearBlur = () => {
|
|
label:year,
|
|
label:year,
|
|
yearForm:{
|
|
yearForm:{
|
|
planYear:year,
|
|
planYear:year,
|
|
|
|
+ oneInvest:'',
|
|
|
|
+ twoInvest:'',
|
|
|
|
+ threeInvest:'',
|
|
|
|
+ fourInvest:'',
|
|
|
|
+ yearlyTarget:'',
|
|
|
|
+ onePlan:'',
|
|
|
|
+ twoPlan:'',
|
|
|
|
+ threePlan:'',
|
|
|
|
+ fourPlan:'',
|
|
|
|
+
|
|
},
|
|
},
|
|
},
|
|
},
|
|
)
|
|
)
|
|
@@ -305,14 +322,28 @@ const endYearBlur = () => {
|
|
}
|
|
}
|
|
//选择年份
|
|
//选择年份
|
|
const selectIndex = ref(0)
|
|
const selectIndex = ref(0)
|
|
-const yearOptions = ref([{ yearForm:{} }])
|
|
|
|
|
|
+const yearOptions = ref([{
|
|
|
|
+ yearForm:{
|
|
|
|
+ yearlyInvest:'',
|
|
|
|
+ oneInvest:'',
|
|
|
|
+ twoInvest:'',
|
|
|
|
+ threeInvest:'',
|
|
|
|
+ fourInvest:'',
|
|
|
|
+ yearlyTarget:'',
|
|
|
|
+ onePlan:'',
|
|
|
|
+ twoPlan:'',
|
|
|
|
+ threePlan:'',
|
|
|
|
+ fourPlan:'',
|
|
|
|
+ planYear:'',
|
|
|
|
+ },
|
|
|
|
+ }])
|
|
const selectYear = ref('')
|
|
const selectYear = ref('')
|
|
const changeYear = (val)=>{
|
|
const changeYear = (val)=>{
|
|
selectIndex.value = arrIndex(yearOptions.value, 'value', val)
|
|
selectIndex.value = arrIndex(yearOptions.value, 'value', val)
|
|
console.log( selectIndex.value, '111111')
|
|
console.log( selectIndex.value, '111111')
|
|
}
|
|
}
|
|
-const yearForm = ref({ key1:'', key2: '', key3:'', key4:'', key5:'', key6:'', key7:'', key8:'', key9:'', key10:'' })
|
|
|
|
-const yearFormRules = {}
|
|
|
|
|
|
+
|
|
|
|
+
|
|
const formatInput = (value)=>{
|
|
const formatInput = (value)=>{
|
|
// 如果输入为空,则直接返回空字符串
|
|
// 如果输入为空,则直接返回空字符串
|
|
if (!value) {
|
|
if (!value) {
|
|
@@ -331,12 +362,12 @@ const formatInput = (value)=>{
|
|
|
|
|
|
//监听
|
|
//监听
|
|
watch(() => [
|
|
watch(() => [
|
|
-yearForm.value.key2,
|
|
|
|
-yearForm.value.key3,
|
|
|
|
-yearForm.value.key4,
|
|
|
|
-yearForm.value.key5,
|
|
|
|
|
|
+yearOptions.value[selectIndex.value].yearForm.oneInvest,
|
|
|
|
+yearOptions.value[selectIndex.value].yearForm.twoInvest,
|
|
|
|
+yearOptions.value[selectIndex.value].yearForm.threeInvest,
|
|
|
|
+yearOptions.value[selectIndex.value].yearForm.fourInvest,
|
|
], ([key2, key3, key4, key5]) => {
|
|
], ([key2, key3, key4, key5]) => {
|
|
- yearForm.value.key1 = Number(key2) + Number(key3) + Number(key4) + Number(key5)
|
|
|
|
|
|
+ yearOptions.value[selectIndex.value].yearForm.yearlyInvest = Number(key2) + Number(key3) + Number(key4) + Number(key5)
|
|
},
|
|
},
|
|
)
|
|
)
|
|
|
|
|
|
@@ -348,9 +379,11 @@ const cancelClick = () => {
|
|
}
|
|
}
|
|
|
|
|
|
//创建
|
|
//创建
|
|
|
|
+const formRef = ref(null)
|
|
const creatLoading = ref(false)
|
|
const creatLoading = ref(false)
|
|
const createClick = async () => {
|
|
const createClick = async () => {
|
|
const form = formInfo.value
|
|
const form = formInfo.value
|
|
|
|
+ console.log(form)
|
|
// if (isNullES(form.id)) cancelClick()
|
|
// if (isNullES(form.id)) cancelClick()
|
|
console.log(baseForm.value, 'baseForm.value')
|
|
console.log(baseForm.value, 'baseForm.value')
|
|
console.log(yearOptions.value, '111111')
|
|
console.log(yearOptions.value, '111111')
|
|
@@ -359,6 +392,8 @@ const createClick = async () => {
|
|
let yearForm = ele.yearForm
|
|
let yearForm = ele.yearForm
|
|
list.push(yearForm)
|
|
list.push(yearForm)
|
|
})
|
|
})
|
|
|
|
+ const isValidate = await formValidate(formRef.value)
|
|
|
|
+ if (!isValidate) return false
|
|
creatLoading.value = true
|
|
creatLoading.value = true
|
|
//发起请求
|
|
//发起请求
|
|
const { error, code, msg } = await mainApi.add({
|
|
const { error, code, msg } = await mainApi.add({
|
|
@@ -369,10 +404,24 @@ const createClick = async () => {
|
|
creatLoading.value = false
|
|
creatLoading.value = false
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
window?.$message?.success(msg)
|
|
window?.$message?.success(msg)
|
|
- if (!isNullES(form.id)) {
|
|
|
|
|
|
+ console.log(form.id, 'form.id')
|
|
|
|
+ if (isNullES(form.id)) {
|
|
baseForm.value = {}
|
|
baseForm.value = {}
|
|
- yearOptions.value = [{}]
|
|
|
|
- cancelClick()
|
|
|
|
|
|
+ yearOptions.value = [{
|
|
|
|
+ yearForm:{
|
|
|
|
+ yearlyInvest:'',
|
|
|
|
+ oneInvest:'',
|
|
|
|
+ twoInvest:'',
|
|
|
|
+ threeInvest:'',
|
|
|
|
+ fourInvest:'',
|
|
|
|
+ yearlyTarget:'',
|
|
|
|
+ onePlan:'',
|
|
|
|
+ twoPlan:'',
|
|
|
|
+ threePlan:'',
|
|
|
|
+ fourPlan:'',
|
|
|
|
+ },
|
|
|
|
+ }]
|
|
|
|
+ // cancelClick()
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
window.$message.error(msg ?? '操作失败')
|
|
window.$message.error(msg ?? '操作失败')
|
|
@@ -382,12 +431,30 @@ const createClick = async () => {
|
|
}
|
|
}
|
|
|
|
|
|
//保存
|
|
//保存
|
|
-const saveClick = () => {
|
|
|
|
- // const form = formInfo.value
|
|
|
|
- // if (isNullES(form.id)) cancelClick()
|
|
|
|
- console.log('保存')
|
|
|
|
- console.log(baseForm.value, 'baseForm.value')
|
|
|
|
-console.log(yearOptions.value, '111111')
|
|
|
|
|
|
+const saveClick = async () => {
|
|
|
|
+ let list = []
|
|
|
|
+ yearOptions.value.forEach((ele)=>{
|
|
|
|
+ let yearForm = ele.yearForm
|
|
|
|
+ list.push(yearForm)
|
|
|
|
+ })
|
|
|
|
+ const isValidate = await formValidate(formRef.value)
|
|
|
|
+ if (!isValidate) return false
|
|
|
|
+ creatLoading.value = true
|
|
|
|
+ //发起请求
|
|
|
|
+ const { error, code, msg } = await mainApi.update({
|
|
|
|
+ ...baseForm.value,
|
|
|
|
+ list,
|
|
|
|
+ })
|
|
|
|
+ //判断状态
|
|
|
|
+ creatLoading.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success(msg)
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ window.$message.error(msg ?? '操作失败')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log('创建')
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|