ZaiZai 11 місяців тому
батько
коміт
92c93bd3ca

+ 9 - 1
src/api/modules/project/project.js

@@ -17,8 +17,16 @@ export default {
             params: { id },
         })
     },
+    //详情
+    async detail2(form) {
+        return HcApi({
+            url: '/api/blade-manager/projectInfo/detail2',
+            method: 'get',
+            params: form,
+        })
+    },
     //合同段详情
-    async detail2(id) {
+    async detail3(id) {
         return HcApi({
             url: '/api/blade-manager/contractInfo/detail2',
             method: 'get',

+ 2 - 2
src/config/index.json

@@ -1,7 +1,7 @@
 {
     "version": "20230607160059",
-    "target": "http://39.108.216.210:8090",
-    "target1": "http://192.168.0.109:8090",
+    "target1": "http://39.108.216.210:8090",
+    "target": "http://192.168.0.109:8090",
     "vite": {
         "port": 5188,
         "host": "0.0.0.0"

+ 50 - 11
src/views/project/info/detail.vue

@@ -3,6 +3,7 @@
         <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">
                 <HcInfo v-if="tabsKey === '1'" ref="infoRef" v-model="basicForm" />
+
                 <template #action>
                     <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>
@@ -15,8 +16,8 @@
 <script setup>
 import { ref, watch } from '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({
     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 isDisabled = ref(true)
 const tabsData = ref([
     { key: '1', name: '项目基本信息' },
     { key: '2', name: '分配WBS模版' },
     { key: '3', name: '分配日志WBS' },
     { 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 isRes = await saveDataApi()
-    console.log(isRes)
+    if (!isRes) return
+    drawerClose()
 }
 
 //保存并进入下一步
 const saveAndNextStep = async () => {
     const isRes = await saveDataApi()
-    console.log(isRes)
+    if (!isRes) return
+    isDisabled.value = false
+    tabsKey.value = '2'
 }
 
 //ref
@@ -83,17 +114,25 @@ const infoRef = ref(null)
 //保存数据
 const submitLoading = ref(false)
 const saveDataApi = async () => {
+    //项目基本信息
     if (tabsKey.value === '1') {
         const isRes = await infoRef.value.isForm()
         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 = () => {
     isShow.value = false
+    basicForm.value = {}
     emit('close')
 }
 </script>

+ 3 - 3
src/views/project/info/info.vue

@@ -60,9 +60,9 @@
                             <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" />
+                        <el-input-number v-if="formModel.radioType === '总里程'" v-model="formModel.projectAllMileage" :precision="3" :min="0" />
+                        <el-input-number v-if="formModel.radioType === '路面'" v-model="formModel.projectPavement" :precision="3" :min="0" />
+                        <el-input-number v-if="formModel.radioType === '路基'" v-model="formModel.projectSubgrade" :precision="3" :min="0" />
                         <span class="ml-12px">公里(KM)</span>
                     </el-form-item>
                     <el-form-item label="计划完工:" prop="planEndTime">

+ 4 - 1
src/views/project/list.vue

@@ -152,7 +152,10 @@ const projectInfoCheck = ({ type, info, item }) => {
         wbsTreeType.value = (index + 1) + ''
         isWbsTreeDrawer.value = true
     } else if (type === 'editProject') {
-        console.log('编辑项目')
+        projectItem.value = getObjValue(info)
+        nextTick(() => {
+            isProjectDrawer.value = true
+        })
     } else if (type === 'addContract') {
         console.log('创建合同段')
     } else if (type === 'editContract') {