|
@@ -1,138 +1,148 @@
|
|
|
<template>
|
|
|
<flow-form :data="formData" @submit="submitNextActivity">
|
|
|
<card title="基础信息" style="height: auto">
|
|
|
- <van-form ref="form">
|
|
|
+ <van-form ref="form">
|
|
|
<van-cell-group inset>
|
|
|
<van-field
|
|
|
- v-model="formData.applyWorkerName"
|
|
|
- name="发起人"
|
|
|
- label="发起人"
|
|
|
- placeholder="发起人"
|
|
|
- readonly
|
|
|
+ v-model="formData.applyWorkerName"
|
|
|
+ name="发起人"
|
|
|
+ label="发起人"
|
|
|
+ placeholder="发起人"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.applyWorkerDept"
|
|
|
- name="所在部门"
|
|
|
- label="所在部门"
|
|
|
- placeholder="所在部门"
|
|
|
- readonly
|
|
|
+ v-model="formData.applyWorkerDept"
|
|
|
+ name="所在部门"
|
|
|
+ label="所在部门"
|
|
|
+ placeholder="所在部门"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.xmmc"
|
|
|
- name="项目名称"
|
|
|
- label="项目名称"
|
|
|
- placeholder="项目名称"
|
|
|
- readonly
|
|
|
+ v-model="formData.xmmc"
|
|
|
+ name="项目名称"
|
|
|
+ label="项目名称"
|
|
|
+ placeholder="项目名称"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.xmjl"
|
|
|
- name="项目经理"
|
|
|
- label="项目经理"
|
|
|
- placeholder="项目经理"
|
|
|
- readonly
|
|
|
+ v-model="formData.xmjl"
|
|
|
+ name="项目经理"
|
|
|
+ label="项目经理"
|
|
|
+ placeholder="项目经理"
|
|
|
+ readonly
|
|
|
/>
|
|
|
|
|
|
<van-field
|
|
|
- v-model="formData.zrbm"
|
|
|
- name="责任部门"
|
|
|
- label="责任部门"
|
|
|
- placeholder="责任部门"
|
|
|
- readonly
|
|
|
+ v-model="formData.zrbm"
|
|
|
+ name="责任部门"
|
|
|
+ label="责任部门"
|
|
|
+ placeholder="责任部门"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.xmbh"
|
|
|
- name="项目编号"
|
|
|
- label="项目编号"
|
|
|
- placeholder="项目编号"
|
|
|
- readonly
|
|
|
+ v-model="formData.xmbh"
|
|
|
+ name="项目编号"
|
|
|
+ label="项目编号"
|
|
|
+ placeholder="项目编号"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.lxsjc"
|
|
|
- name="立项时间"
|
|
|
- label="立项时间"
|
|
|
- placeholder="立项时间"
|
|
|
- readonly
|
|
|
+ v-model="formData.lxsjc"
|
|
|
+ name="立项时间"
|
|
|
+ label="立项时间"
|
|
|
+ placeholder="立项时间"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.planContractAmount"
|
|
|
- name="预估合同额(万元)"
|
|
|
- label="预估合同额(万元)"
|
|
|
- placeholder="预估合同额(万元)"
|
|
|
- readonly
|
|
|
+ v-model="formData.planContractAmount"
|
|
|
+ name="预估合同额(万元)"
|
|
|
+ label="预估合同额(万元)"
|
|
|
+ placeholder="预估合同额(万元)"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.xzqmc"
|
|
|
- name="行政区"
|
|
|
- label="行政区"
|
|
|
- placeholder="行政区"
|
|
|
- readonly
|
|
|
+ v-model="formData.xzqmc"
|
|
|
+ name="行政区"
|
|
|
+ label="行政区"
|
|
|
+ placeholder="行政区"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.projectTypeName"
|
|
|
- name="项目类型"
|
|
|
- label="项目类型"
|
|
|
- placeholder="项目类型"
|
|
|
- readonly
|
|
|
+ v-model="formData.projectTypeName"
|
|
|
+ name="项目类型"
|
|
|
+ label="项目类型"
|
|
|
+ placeholder="项目类型"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.hyIdText"
|
|
|
- name="行业"
|
|
|
- label="行业"
|
|
|
- placeholder="行业"
|
|
|
- readonly
|
|
|
+ v-model="formData.hyIdText"
|
|
|
+ name="行业"
|
|
|
+ label="行业"
|
|
|
+ placeholder="行业"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.yggq"
|
|
|
- name="预估工期(天)"
|
|
|
- label="预估工期(天)"
|
|
|
- placeholder="预估工期(天)"
|
|
|
- readonly
|
|
|
+ v-model="formData.yggq"
|
|
|
+ name="预估工期(天)"
|
|
|
+ label="预估工期(天)"
|
|
|
+ placeholder="预估工期(天)"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.xsry"
|
|
|
- name="销售人员"
|
|
|
- label="销售人员"
|
|
|
- placeholder="销售人员"
|
|
|
- readonly
|
|
|
+ v-model="formData.xsry"
|
|
|
+ name="销售人员"
|
|
|
+ label="销售人员"
|
|
|
+ placeholder="销售人员"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.belongCompanyname"
|
|
|
- name="归属公司"
|
|
|
- label="归属公司"
|
|
|
- placeholder="归属公司"
|
|
|
- readonly
|
|
|
+ v-model="formData.belongCompanyname"
|
|
|
+ name="归属公司"
|
|
|
+ label="归属公司"
|
|
|
+ placeholder="归属公司"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.bz"
|
|
|
+ name="备注"
|
|
|
+ label="备注"
|
|
|
+ placeholder="备注"
|
|
|
+ type="textarea"
|
|
|
+ rows="3"
|
|
|
+ autosize
|
|
|
+ :rules="[{ message: '未获取备注' }]"
|
|
|
/>
|
|
|
</van-cell-group>
|
|
|
</van-form>
|
|
|
</card>
|
|
|
<card title="产值信息" style="height: auto">
|
|
|
- <van-form ref="form">
|
|
|
+ <van-form ref="form">
|
|
|
<van-cell-group inset>
|
|
|
<van-field
|
|
|
- v-model="formData.isSignc"
|
|
|
- name="是否签合同"
|
|
|
- label="是否签合同"
|
|
|
- placeholder="是否签合同"
|
|
|
- readonly
|
|
|
+ v-model="formData.isSignc"
|
|
|
+ name="是否签合同"
|
|
|
+ label="是否签合同"
|
|
|
+ placeholder="是否签合同"
|
|
|
+ readonly
|
|
|
/>
|
|
|
<van-field
|
|
|
- v-model="formData.shareRatioc"
|
|
|
- name="利益分成(公司/部门)"
|
|
|
- label="利益分成(公司/部门)"
|
|
|
- placeholder="利益分成(公司/部门)"
|
|
|
- readonly
|
|
|
+ v-model="formData.shareRatioc"
|
|
|
+ name="利益分成(公司/部门)"
|
|
|
+ label="利益分成(公司/部门)"
|
|
|
+ placeholder="利益分成(公司/部门)"
|
|
|
+ readonly
|
|
|
/>
|
|
|
</van-cell-group>
|
|
|
</van-form>
|
|
|
</card>
|
|
|
<card title="项目里程碑信息">
|
|
|
<template #default>
|
|
|
- <div v-for="(item,index) in formData.detail" :key="index">
|
|
|
+ <div v-for="(item, index) in formData.detail" :key="index">
|
|
|
<van-swipe-cell>
|
|
|
<card-cell>
|
|
|
- <van-cell title="里程碑信息" :value="item.name"/>
|
|
|
- <van-cell title="计划完成时间" :value="item.planFinishTime"/>
|
|
|
- <van-cell title="项目进度" :value="item.process"/>
|
|
|
+ <van-cell title="里程碑信息" :value="item.name" />
|
|
|
+ <van-cell title="计划完成时间" :value="item.planFinishTime" />
|
|
|
+ <van-cell title="项目进度" :value="item.process" />
|
|
|
</card-cell>
|
|
|
</van-swipe-cell>
|
|
|
</div>
|
|
@@ -142,77 +152,81 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import {useRoute} from 'vue-router';
|
|
|
-import {FlowDTO, getNextActivity} from '@/service/flow';
|
|
|
+import { useRoute } from "vue-router";
|
|
|
+import { FlowDTO, getNextActivity } from "@/service/flow";
|
|
|
import reqest from "@/utils/request";
|
|
|
-import FlowForm from '@/components/flowForm.vue';
|
|
|
-import Card from '@/components/card.vue';
|
|
|
-import CardCell from '@/components/cardCell.vue';
|
|
|
-import {DICT_TYPE, getDictLabel} from "@/utils/dict";
|
|
|
-
|
|
|
+import FlowForm from "@/components/flowForm.vue";
|
|
|
+import Card from "@/components/card.vue";
|
|
|
+import CardCell from "@/components/cardCell.vue";
|
|
|
+import { DICT_TYPE, getDictLabel } from "@/utils/dict";
|
|
|
|
|
|
const route = useRoute();
|
|
|
const form = ref(null);
|
|
|
|
|
|
-interface FormDataType {
|
|
|
-}
|
|
|
-
|
|
|
-const formData = ref<FormDataType>({})
|
|
|
+interface FormDataType {}
|
|
|
|
|
|
+const formData = ref<FormDataType>({});
|
|
|
|
|
|
-const {activityInstanceId, participant, flowInstanceId, read} = route.query as {
|
|
|
- activityInstanceId: string;
|
|
|
- participant: string;
|
|
|
- flowInstanceId: string;
|
|
|
- read: string;
|
|
|
-};
|
|
|
+const { activityInstanceId, participant, flowInstanceId, read } =
|
|
|
+ route.query as {
|
|
|
+ activityInstanceId: string;
|
|
|
+ participant: string;
|
|
|
+ flowInstanceId: string;
|
|
|
+ read: string;
|
|
|
+ };
|
|
|
const activityData: FlowDTO = {
|
|
|
activityInstanceId,
|
|
|
participantId: participant,
|
|
|
- flowOpinion: ''
|
|
|
-}
|
|
|
+ flowOpinion: "",
|
|
|
+};
|
|
|
const submitNextActivity = async (NextActivity: () => Promise<any>) => {
|
|
|
NextActivity();
|
|
|
};
|
|
|
|
|
|
const jsonToFormData = (json: any): FormData | null => {
|
|
|
- const keys: string[] = Object.keys(json)
|
|
|
+ const keys: string[] = Object.keys(json);
|
|
|
if (keys.length > 0) {
|
|
|
const formData = new FormData();
|
|
|
keys.forEach((key) => {
|
|
|
- formData.append(key, (json[key] instanceof Object) ? JSON.stringify(json[key]) : json[key]);
|
|
|
+ formData.append(
|
|
|
+ key,
|
|
|
+ json[key] instanceof Object ? JSON.stringify(json[key]) : json[key]
|
|
|
+ );
|
|
|
});
|
|
|
return formData;
|
|
|
}
|
|
|
return null;
|
|
|
-}
|
|
|
-
|
|
|
+};
|
|
|
|
|
|
function formatDate(timestamp: number) {
|
|
|
const date = new Date(timestamp);
|
|
|
const year = date.getFullYear();
|
|
|
let month = (1 + date.getMonth()).toString();
|
|
|
- month = month.length > 1 ? month : '0' + month;
|
|
|
+ month = month.length > 1 ? month : "0" + month;
|
|
|
let day = date.getDate().toString();
|
|
|
- day = day.length > 1 ? day : '0' + day;
|
|
|
+ day = day.length > 1 ? day : "0" + day;
|
|
|
return `${year}-${month}-${day}`;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/** 初始化表单数据 */
|
|
|
const initFormData = async () => {
|
|
|
- const result = await reqest.get(`/business/flow/project/mobileAdd?flowInstanceId=${flowInstanceId}`)
|
|
|
- formData.value = result.data
|
|
|
+ const result = await reqest.get(
|
|
|
+ `/business/flow/project/mobileAdd?flowInstanceId=${flowInstanceId}`
|
|
|
+ );
|
|
|
+ formData.value = result.data;
|
|
|
|
|
|
- formData.value.lxsjc = formatDate(formData.value.lxsj)
|
|
|
- formData.value.hyIdText = getDictLabel(DICT_TYPE.PROJECT_HY, formData.value.hyId);
|
|
|
+ formData.value.lxsjc = formatDate(formData.value.lxsj);
|
|
|
+ formData.value.hyIdText = getDictLabel(
|
|
|
+ DICT_TYPE.PROJECT_HY,
|
|
|
+ formData.value.hyId
|
|
|
+ );
|
|
|
|
|
|
let signc;
|
|
|
const sign = formData.value.isSign;
|
|
|
if (sign != null) {
|
|
|
switch (sign) {
|
|
|
case 0:
|
|
|
- signc = "否"
|
|
|
+ signc = "否";
|
|
|
break;
|
|
|
case 1:
|
|
|
signc = "是";
|
|
@@ -228,27 +242,23 @@ const initFormData = async () => {
|
|
|
if (shareRatio != null) {
|
|
|
let shareRatioc;
|
|
|
|
|
|
-
|
|
|
if (shareRatio == 0.42) {
|
|
|
shareRatioc = "58% / 42%";
|
|
|
} else if (shareRatio == 0.375) {
|
|
|
shareRatioc = "62.5% / 37.5%";
|
|
|
} else if (shareRatio != 0.42 && shareRatio != 0.375) {
|
|
|
- shareRatioc = (100 - 100 * shareRatio) + "% / " + (100 * shareRatio) + "%";
|
|
|
+ shareRatioc = 100 - 100 * shareRatio + "% / " + 100 * shareRatio + "%";
|
|
|
} else {
|
|
|
shareRatioc = "";
|
|
|
}
|
|
|
formData.value.shareRatioc = shareRatioc;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
+};
|
|
|
|
|
|
/** 初始化 */
|
|
|
onMounted(() => {
|
|
|
- initFormData()
|
|
|
-})
|
|
|
+ initFormData();
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|