|
@@ -3,8 +3,8 @@
|
|
|
<div class="detailHeader">
|
|
|
<div>
|
|
|
<div>
|
|
|
- <h2>江山市自然资源业务数字化管理学系统</h2>
|
|
|
- <span class="subTitle">(YF057020220035)</span>
|
|
|
+ <h2>{{ projectDetail['xmmc'] }}</h2>
|
|
|
+ <span class="subTitle">({{ projectDetail['xmbh'] }})</span>
|
|
|
<span class="statu">进行中</span>
|
|
|
</div>
|
|
|
<ul>
|
|
@@ -19,7 +19,7 @@
|
|
|
<div>
|
|
|
<p>
|
|
|
<span class="title">合同额(元):</span>
|
|
|
- <span class="value">17500</span>
|
|
|
+ <span class="value">{{ projectDetail['contractAmount'] }}</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
<span class="title">应收款(元):</span>
|
|
@@ -35,7 +35,10 @@
|
|
|
<li @click="switchComponent(XmxxComp, 0)" :class="currentIndex === 0 ? 'active' : ''"
|
|
|
><i class="icon"></i>项目信息</li
|
|
|
>
|
|
|
- <li @click="switchComponent(XmhtComp, 1)" :class="currentIndex === 1 ? 'active' : ''"
|
|
|
+ <li
|
|
|
+ v-if="projectDetail['isSign'] === 1"
|
|
|
+ @click="switchComponent(XmhtComp, 1)"
|
|
|
+ :class="currentIndex === 1 ? 'active' : ''"
|
|
|
><i class="icon"></i>项目合同</li
|
|
|
>
|
|
|
<li @click="switchComponent(XmcbComp, 2)" :class="currentIndex === 2 ? 'active' : ''"
|
|
@@ -60,7 +63,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="detailContent">
|
|
|
- <component :is="currentComponent" />
|
|
|
+ <component :is="currentComponent" :detailData="projectDetail" />
|
|
|
</div>
|
|
|
<div class="subProjectModalBox" v-show="subProjectShow">
|
|
|
<ul class="tab">
|
|
@@ -71,36 +74,36 @@
|
|
|
<div class="tabContent">
|
|
|
<div class="tabContentOne" v-if="tabIndex === 0">
|
|
|
<div class="formBox">
|
|
|
- <el-form :model="projectForm" label-width="120px">
|
|
|
+ <el-form :model="projectChildForm" label-width="120px">
|
|
|
<h4>基本信息</h4>
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="项目名称">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.xmmc" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="项目经理">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.xmjl" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="责任部门">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.zrbm" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="项目编号">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.xmbh" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="预估工期(天)">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.yggq" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -108,24 +111,24 @@
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="总合同额(元)">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.contractAmount" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="本项目产值(元)">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.outputValue" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="利益分成(公司/部门)">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.shareRatio" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="本项目成本(元)">
|
|
|
- <el-input v-model="projectForm.xmmc" />
|
|
|
+ <el-input v-model="projectChildForm.projectCost" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -155,11 +158,17 @@
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="btnGroup">
|
|
|
+ <el-button type="default">取消</el-button>
|
|
|
+ <el-button type="primary" @click="submitProjectChild">提交</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
import { type Component } from 'vue'
|
|
|
+import { useRoute } from 'vue-router'
|
|
|
+import request from '@/config/axios'
|
|
|
|
|
|
defineOptions({ name: 'ProjectDetail' })
|
|
|
const XmxxComp = defineAsyncComponent(() => {
|
|
@@ -184,13 +193,69 @@ const subProjectShow = ref<boolean>(false)
|
|
|
const addSubProject: () => void = () => {
|
|
|
subProjectShow.value = true
|
|
|
}
|
|
|
-const projectForm = ref({
|
|
|
- xmmc: ''
|
|
|
-})
|
|
|
const tabIndex = ref<number>(0)
|
|
|
const switchTabHandle: (i: number) => void = (i: number) => {
|
|
|
tabIndex.value = i
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 项目详情后台接口
|
|
|
+ * **/
|
|
|
+const projectDetail = ref({
|
|
|
+ xmmc: ''
|
|
|
+})
|
|
|
+const queryProjectDetail = async (id: any): Promise<void> => {
|
|
|
+ const urlApi = `/project`
|
|
|
+ const sendData = {
|
|
|
+ id: id
|
|
|
+ }
|
|
|
+ const result = await request.get({ url: urlApi, params: sendData }, '/business')
|
|
|
+ projectDetail.value = result
|
|
|
+}
|
|
|
+const route = useRoute()
|
|
|
+const query = route.query
|
|
|
+if (query.id) {
|
|
|
+ queryProjectDetail(query.id)
|
|
|
+}
|
|
|
+/***
|
|
|
+ * 添加子项目
|
|
|
+ * **/
|
|
|
+const projectChildForm = ref({
|
|
|
+ xmmc: '',
|
|
|
+ xmbh: '',
|
|
|
+ xmjlId: '',
|
|
|
+ xmjl: '',
|
|
|
+ zrbmId: '',
|
|
|
+ zrbm: '',
|
|
|
+ yggq: 0,
|
|
|
+ contractAmount: 0,
|
|
|
+ projectCost: 0,
|
|
|
+ outputValue: 0,
|
|
|
+ shareRatio: 0
|
|
|
+})
|
|
|
+const addProjectChild = async (): Promise<void> => {
|
|
|
+ const urlApi = `/project/child`
|
|
|
+ const sendData = {
|
|
|
+ pid: query.id,
|
|
|
+ ...projectChildForm.value
|
|
|
+ }
|
|
|
+ const result = await request.post({ url: urlApi, data: sendData }, '/business')
|
|
|
+}
|
|
|
+/***
|
|
|
+ * 添加项目成员
|
|
|
+ * **/
|
|
|
+const addWorkerRelation = async (): Promise<void> => {
|
|
|
+ const urlApi = `/project-worker-relation/bind`
|
|
|
+ const sendData = {
|
|
|
+ projectId: '',
|
|
|
+ workerId: ''
|
|
|
+ }
|
|
|
+ const result = await request.post({ url: urlApi, data: sendData }, '/business')
|
|
|
+}
|
|
|
+const submitProjectChild = () => {
|
|
|
+ addProjectChild()
|
|
|
+ addWorkerRelation()
|
|
|
+}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
@import url(./projectDetail.scss);
|