|
@@ -0,0 +1,258 @@
|
|
|
+<template>
|
|
|
+ <flow-form :data="formData" @submit="submitNextActivity">
|
|
|
+ <card title="基本信息" style="height: auto">
|
|
|
+ <van-form required="true" ref="form">
|
|
|
+ <van-cell-group inset>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.name"
|
|
|
+ name="合同名称"
|
|
|
+ label="合同名称"
|
|
|
+ placeholder="合同名称"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.planSignDate"
|
|
|
+ name="签订时间"
|
|
|
+ label="签订时间"
|
|
|
+ placeholder="签订时间"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contractNumber"
|
|
|
+ name="合同编号"
|
|
|
+ label="合同编号"
|
|
|
+ placeholder="合同编号"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contractAmount"
|
|
|
+ name="分包金额(元)"
|
|
|
+ label="分包金额(元)"
|
|
|
+ placeholder="分包金额(元)"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contractOn"
|
|
|
+ name="合同拿出日期"
|
|
|
+ label="合同拿出日期"
|
|
|
+ placeholder="合同拿出日期"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contractOff"
|
|
|
+ name="合同拿回日期"
|
|
|
+ label="合同拿回日期"
|
|
|
+ placeholder="合同拿回日期"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.reason"
|
|
|
+ name="分包理由"
|
|
|
+ label="分包理由"
|
|
|
+ placeholder="分包理由"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.purchaseRequirements"
|
|
|
+ name="分包采购内容需求"
|
|
|
+ label="分包采购内容需求"
|
|
|
+ placeholder="分包采购内容需求"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.bz"
|
|
|
+ name="备注"
|
|
|
+ label="备注"
|
|
|
+ placeholder="备注"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ </van-form>
|
|
|
+ </card>
|
|
|
+ <card title="项目信息" style="height: auto">
|
|
|
+ <van-form required="true" ref="form">
|
|
|
+ <van-cell-group inset>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.project.xmmc"
|
|
|
+ name="项目名称"
|
|
|
+ label="项目名称"
|
|
|
+ placeholder="项目名称"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.project.xmbh"
|
|
|
+ name="项目编号"
|
|
|
+ label="项目编号"
|
|
|
+ placeholder="项目编号"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contract.name"
|
|
|
+ name="主合同名称"
|
|
|
+ label="主合同名称"
|
|
|
+ placeholder="主合同名称"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contract.contractNumber"
|
|
|
+ name="主合同编号"
|
|
|
+ label="主合同编号"
|
|
|
+ placeholder="主合同编号"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.contract.contractAmount"
|
|
|
+ name="主合同金额"
|
|
|
+ label="主合同金额"
|
|
|
+ placeholder="主合同金额"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.project.zrbm"
|
|
|
+ name="责任部门"
|
|
|
+ label="责任部门"
|
|
|
+ placeholder="责任部门"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+
|
|
|
+ </van-cell-group>
|
|
|
+ </van-form>
|
|
|
+ </card>
|
|
|
+ <card title="甲乙方信息" style="height: auto">
|
|
|
+ <van-form required="true" ref="form">
|
|
|
+ <van-cell-group inset>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.assigneeName"
|
|
|
+ name="委托方"
|
|
|
+ label="委托方"
|
|
|
+ placeholder="委托方"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ v-model="formData.customerName"
|
|
|
+ name="受托方"
|
|
|
+ label="受托方"
|
|
|
+ placeholder="受托方"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
+
|
|
|
+ </van-cell-group>
|
|
|
+ </van-form>
|
|
|
+ </card>
|
|
|
+ </flow-form>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+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";
|
|
|
+
|
|
|
+const route = useRoute();
|
|
|
+const form = ref(null);
|
|
|
+
|
|
|
+interface FormDataType {
|
|
|
+}
|
|
|
+
|
|
|
+const formData = ref<FormDataType>({
|
|
|
+ contract: {},
|
|
|
+ project: {}
|
|
|
+})
|
|
|
+const detailData = ref({})
|
|
|
+
|
|
|
+
|
|
|
+const {activityInstanceId, participant, flowInstanceId, read} = route.query as {
|
|
|
+ activityInstanceId: string;
|
|
|
+ participant: string;
|
|
|
+ flowInstanceId: string;
|
|
|
+ read: string;
|
|
|
+};
|
|
|
+const activityData: FlowDTO = {
|
|
|
+ activityInstanceId,
|
|
|
+ participantId: participant,
|
|
|
+ flowOpinion: ''
|
|
|
+}
|
|
|
+const submitNextActivity = async (NextActivity: () => Promise<any>) => {
|
|
|
+ NextActivity();
|
|
|
+};
|
|
|
+const jsonToFormData = (json: any): FormData | null => {
|
|
|
+ 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]);
|
|
|
+ });
|
|
|
+ return formData;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/** 初始化表单数据 */
|
|
|
+const initFormData = async () => {
|
|
|
+ const result = await reqest.get(`/business/flow/contract-sub/mobileAdd?flowInstanceId=${flowInstanceId}`)
|
|
|
+
|
|
|
+
|
|
|
+ formData.value = result.data;
|
|
|
+ formData.project = result.data.project;
|
|
|
+ formData.contract = result.data.contract;
|
|
|
+
|
|
|
+
|
|
|
+ formData.value.subShareWayText = getDictLabel(DICT_TYPE.SUBCONTRACT_SHARE_WAY, formData.value.subShareWay);
|
|
|
+
|
|
|
+ const isRemindExpiry = formData.value.isRemindExpiry;
|
|
|
+ if (isRemindExpiry != null) {
|
|
|
+ let isRemindExpiryc;
|
|
|
+ switch (isRemindExpiry) {
|
|
|
+ case 0:
|
|
|
+ isRemindExpiryc = "否";
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ isRemindExpiryc = "是";
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ isRemindExpiryc = "";
|
|
|
+ }
|
|
|
+ formData.value.isRemindExpiryc = isRemindExpiryc;
|
|
|
+ }
|
|
|
+
|
|
|
+ let signc;
|
|
|
+ const sign = formData.value.isSign;
|
|
|
+ if (sign != null) {
|
|
|
+ switch (sign) {
|
|
|
+ case 0:
|
|
|
+ signc = "否"
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ signc = "是";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ signc = "";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ formData.value.isSignc = signc;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/** 初始化 */
|
|
|
+onMounted(() => {
|
|
|
+ initFormData()
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import "./index.scss";
|
|
|
+
|
|
|
+::v-deep .van-field__label {
|
|
|
+ width: auto;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .van-field__control {
|
|
|
+ text-align: right;
|
|
|
+}
|
|
|
+</style>
|