|
@@ -3,6 +3,7 @@
|
|
<div class="hc-project-info-drawer relative h-full">
|
|
<div class="hc-project-info-drawer relative h-full">
|
|
<hc-tab-card scrollbar :tabs="tabsData" :tab-key="tabsKey" is-action-btn :disabled="isDisabled" @change="tabsChange">
|
|
<hc-tab-card scrollbar :tabs="tabsData" :tab-key="tabsKey" is-action-btn :disabled="isDisabled" @change="tabsChange">
|
|
<HcInfo v-if="tabsKey === '1'" ref="infoRef" v-model="basicForm" />
|
|
<HcInfo v-if="tabsKey === '1'" ref="infoRef" v-model="basicForm" />
|
|
|
|
+
|
|
<template #action>
|
|
<template #action>
|
|
<el-button hc-btn class="mr-4" :loading="submitLoading" @click="saveAndExit">保存并退出</el-button>
|
|
<el-button hc-btn class="mr-4" :loading="submitLoading" @click="saveAndExit">保存并退出</el-button>
|
|
<el-button hc-btn type="primary" :loading="submitLoading" @click="saveAndNextStep">保存并进入下一步</el-button>
|
|
<el-button hc-btn type="primary" :loading="submitLoading" @click="saveAndNextStep">保存并进入下一步</el-button>
|
|
@@ -15,8 +16,8 @@
|
|
<script setup>
|
|
<script setup>
|
|
import { ref, watch } from 'vue'
|
|
import { ref, watch } from 'vue'
|
|
import HcInfo from './info.vue'
|
|
import HcInfo from './info.vue'
|
|
-import mainApi from '~api/project/tree'
|
|
|
|
-import { getArrValue, isNullES } from 'js-fast-way'
|
|
|
|
|
|
+import mainApi from '~api/project/project'
|
|
|
|
+import { getObjValue, isNullES } from 'js-fast-way'
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
data: {
|
|
data: {
|
|
@@ -45,21 +46,48 @@ watch(isShow, (val) => {
|
|
})
|
|
})
|
|
|
|
|
|
//处理相关数据
|
|
//处理相关数据
|
|
-const getDataApi = () => {
|
|
|
|
-
|
|
|
|
|
|
+const isDisabled = ref(true)
|
|
|
|
+const getDataApi = async () => {
|
|
|
|
+ tabsKey.value = '1'
|
|
|
|
+ //获取参数
|
|
|
|
+ const info = getObjValue(dataInfo.value)
|
|
|
|
+ isDisabled.value = isNullES(info.id)
|
|
|
|
+ if (isNullES(info.id)) return
|
|
|
|
+ //获取详情数据
|
|
|
|
+ const { code, data } = await mainApi.detail(info.id)
|
|
|
|
+ if (code !== 200) return
|
|
|
|
+ //处理回显数据
|
|
|
|
+ const res = getObjValue(data)
|
|
|
|
+ res.projectAllMileage = Number(res.projectAllMileage)
|
|
|
|
+ res.projectPavement = Number(res.projectPavement)
|
|
|
|
+ res.projectSubgrade = Number(res.projectSubgrade)
|
|
|
|
+ res.referenceWbsTemplateIdTrial = res.referenceWbsTemplateIdTrial != -1 ? res.referenceWbsTemplateIdTrial : ''
|
|
|
|
+ res.estimatedAmount = Number(res.estimatedAmount) <= 0 ? 0 : res.estimatedAmount
|
|
|
|
+ //获取wbs类型
|
|
|
|
+ const templateType = isNullES(res.referenceWbsTemplateType) ? 'public' : res.referenceWbsTemplateType
|
|
|
|
+ const { code: code1, data:data1 } = await mainApi.detail2({
|
|
|
|
+ id: info.id,
|
|
|
|
+ ReferenceWbsTemplateId: res.referenceWbsTemplateId,
|
|
|
|
+ ReferenceWbsTemplateType: templateType,
|
|
|
|
+ })
|
|
|
|
+ if (code1 === 200) {
|
|
|
|
+ const { wbsType } = getObjValue(data1)
|
|
|
|
+ res.wbsType = wbsType
|
|
|
|
+ }
|
|
|
|
+ //设置回显数据
|
|
|
|
+ basicForm.value = res
|
|
}
|
|
}
|
|
|
|
|
|
//选项卡
|
|
//选项卡
|
|
const tabsKey = ref('1')
|
|
const tabsKey = ref('1')
|
|
-const isDisabled = ref(true)
|
|
|
|
const tabsData = ref([
|
|
const tabsData = ref([
|
|
{ key: '1', name: '项目基本信息' },
|
|
{ key: '1', name: '项目基本信息' },
|
|
{ key: '2', name: '分配WBS模版' },
|
|
{ key: '2', name: '分配WBS模版' },
|
|
{ key: '3', name: '分配日志WBS' },
|
|
{ key: '3', name: '分配日志WBS' },
|
|
{ key: '4', name: '分配系统维护人员' },
|
|
{ key: '4', name: '分配系统维护人员' },
|
|
])
|
|
])
|
|
-const tabsChange = (item) => {
|
|
|
|
- console.log(item)
|
|
|
|
|
|
+const tabsChange = ({ key }) => {
|
|
|
|
+ tabsKey.value = key
|
|
}
|
|
}
|
|
|
|
|
|
//基本信息表单
|
|
//基本信息表单
|
|
@@ -68,13 +96,16 @@ const basicForm = ref({})
|
|
//保存并退出
|
|
//保存并退出
|
|
const saveAndExit = async () => {
|
|
const saveAndExit = async () => {
|
|
const isRes = await saveDataApi()
|
|
const isRes = await saveDataApi()
|
|
- console.log(isRes)
|
|
|
|
|
|
+ if (!isRes) return
|
|
|
|
+ drawerClose()
|
|
}
|
|
}
|
|
|
|
|
|
//保存并进入下一步
|
|
//保存并进入下一步
|
|
const saveAndNextStep = async () => {
|
|
const saveAndNextStep = async () => {
|
|
const isRes = await saveDataApi()
|
|
const isRes = await saveDataApi()
|
|
- console.log(isRes)
|
|
|
|
|
|
+ if (!isRes) return
|
|
|
|
+ isDisabled.value = false
|
|
|
|
+ tabsKey.value = '2'
|
|
}
|
|
}
|
|
|
|
|
|
//ref
|
|
//ref
|
|
@@ -83,17 +114,25 @@ const infoRef = ref(null)
|
|
//保存数据
|
|
//保存数据
|
|
const submitLoading = ref(false)
|
|
const submitLoading = ref(false)
|
|
const saveDataApi = async () => {
|
|
const saveDataApi = async () => {
|
|
|
|
+ //项目基本信息
|
|
if (tabsKey.value === '1') {
|
|
if (tabsKey.value === '1') {
|
|
const isRes = await infoRef.value.isForm()
|
|
const isRes = await infoRef.value.isForm()
|
|
if (!isRes) return false
|
|
if (!isRes) return false
|
|
- console.log('saveDataApi', basicForm.value)
|
|
|
|
- return true
|
|
|
|
|
|
+ submitLoading.value = true
|
|
|
|
+ const { code, data } = await mainApi.submit(basicForm.value)
|
|
|
|
+ submitLoading.value = false
|
|
|
|
+ if (code === 200) {
|
|
|
|
+ basicForm.value = getObjValue(data)
|
|
|
|
+ window?.$message?.success('保存成功')
|
|
|
|
+ }
|
|
|
|
+ return code === 200
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//关闭抽屉
|
|
//关闭抽屉
|
|
const drawerClose = () => {
|
|
const drawerClose = () => {
|
|
isShow.value = false
|
|
isShow.value = false
|
|
|
|
+ basicForm.value = {}
|
|
emit('close')
|
|
emit('close')
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|