Commit 1082cea9 authored by ccc2wdd's avatar ccc2wdd

变更签证管理,暂存功能实现

parent 1ed821ba
import {
ProjectParams,
ProjectModel,
} from '@/api/project/model/projectModel';
import { ProjectParams, ProjectModel } from '@/api/project/model/projectModel';
import { defHttp } from '@/utils/http/axios';
enum Api {
//查询厉害记录
operationList = '/pro/operator/oper-list',
//添加变更记录
addItem = '/pro/operator/add-operator',
//查询历史记录
operationList = '/pro/operator/oper-list',
//添加变更记录
addItem = '/pro/operator/add-operator',
}
export enum operateType {
update = "修改",
add = "新增",
delete = "删除",
audit = "审核",
export enum operateType {
update = '修改',
add = '新增',
delete = '删除',
audit = '审核',
}
export const addItemData={
operateType: null,
businessType: null,
businessId: null,
}
export const addItemData = {
operateType: '',
businessType: '',
businessId: null,
};
export const getOperationList = (params?: ProjectParams) =>
defHttp.get<ProjectModel>({ url: Api.operationList, params })
defHttp.get<ProjectModel>({ url: Api.operationList, params });
export const addItemApi = (params?: any) =>
defHttp.post<ProjectModel>(
{
url: Api.addItem,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8',
},
}
);
defHttp.post<ProjectModel>({
url: Api.addItem,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8',
},
});
......@@ -9,7 +9,7 @@
@ok="handleSubmit"
@visible-change="handleVisibleChange"
>
<BasicTable @register="registerTable"> </BasicTable>
<BasicTable @register="registerTable" />
</BasicModal>
</template>
<script lang="ts" setup>
......@@ -18,11 +18,12 @@
import { getGroupList } from '@/api/contract/contract';
import { useMessage } from '@/hooks/web/useMessage';
import { getBasicColumns } from './data';
import { onMounted, ref,inject} from 'vue';
import { onMounted, ref, inject } from 'vue';
const isContent = ref(false);
const tableList = ref([]);
onMounted(async () => {
showList()
showList();
});
const [registerTable, { expandAll, getSelectRows }] = useTable({
title: '树形表格',
......@@ -68,8 +69,8 @@
const emit = defineEmits(['close']);
function handleVisibleChange(v) {}
const [register, { closeModal }] = useModalInner((data) => {
console.log(data,"data数据查看")
if(data.isContent){
console.log(data, 'data数据查看');
if (data.isContent) {
isContent.value = data.isContent;
// tableList.value=[]
// showList()
......@@ -80,13 +81,12 @@
getSelectRowList();
closeModal();
}
async function showList(){
const list=[]
const listDate= await getGroupList({ isContent: true});
if(listDate.length>0){
list.push(...listDate)
}
async function showList() {
const list = [];
const listDate = await getGroupList({ isContent: true });
if (listDate.length > 0) {
list.push(...listDate);
}
for (let i = 0; i < list.length; i++) {
list[i].id = list[i].id + '_' + Math.random().toString(36).substring(2, 10);
let item = list[i].children;
......
......@@ -8,7 +8,7 @@ const changeSignature: AppRouteModule = {
component: LAYOUT,
redirect: '/changeSignature/index',
meta: {
hideChildrenInMenu: true,
hideChildrenInMenu: false,
icon: 'icon-park-outline:align-text-left-one',
orderNo: 5,
auth: '/www/dist/index.html#/changeSignature/index',
......@@ -25,11 +25,22 @@ const changeSignature: AppRouteModule = {
orderNo: 5,
},
},
{
path: 'statistic',
name: 'changeSignatureStatistic',
component: () => import('@/views/changeSignature/statistic/index.vue'),
meta: {
auth: '/www/dist/index.html#/changeSignature/index',
title: '签证管理统计',
orderNo: 5,
},
},
{
path: 'edit',
name: 'addChangeSignature',
component: () => import('@/views/changeSignature/addChangeSignature.vue'),
meta: {
hideMenu: true,
auth: '/www/dist/index.html#/changeSignature/index',
title: '新建变更管理',
orderNo: 8,
......
<template>
<PageWrapper :title="getTitle" :contentBackground="false" headerSticky>
<template #extra>
<a-button type="primary" @click="handleSubmit" v-if="showSubmit" >提交</a-button>
<a-button type="primary" @click="handleSubmit('0')" v-if="showSubmit">暂存</a-button>
<a-button type="primary" @click="handleSubmit('1')" v-if="showSubmit">提交</a-button>
<a-button type="primary" @click="history" v-if="historyData">历史记录 </a-button>
<a-button type="default" @click="router.back()"> 返回</a-button>
<!-- <a-button type="success" @click="examine" v-if="isUpdate == false && routerId >0"> 审核</a-button>-->
</template>
<PageCard v-for="(item, index) in tabsFormSchema" :key="index" :title="item.name">
<template #right>
<a-button
v-if="isUpdate==true"
type="text"
<!-- page页 -->
<CollapseContainer v-for="(item, index) in tabsFormSchema" :key="index">
<template #title>
<span class="projectName">{{ item.name }}</span>
</template>
<template #action>
<a-popconfirm
title="是否确认删除"
ok-text="确定"
cancel-text="取消"
placement="left"
v-if="!disabled"
type="text"
preIcon="ant-design:delete-outlined"
danger
@confirm="deleteItemPro(index, item)"
><a-button
preIcon="ant-design:delete-outlined"
danger
@click="deleteItem(index,item)"
v-if="!disabled"
type="text"
style="color: rgb(239, 124, 124); cursor: pointer"
>删除项目</a-button
></a-popconfirm
>
</a-button>
</template>
<BasicForm :loading="loading" @register="item.Form[0]">
</BasicForm>
<PageCard v-for="(content, contentIndex) in item.ContentFormList" :key="contentIndex"
:title="'合同'+contractName[index].contractNameList[contentIndex]">
<BasicForm :loading="loading" @register="content.ContentFormList"/>
</PageCard>
</PageCard>
<a-button type="dashed" @click="add" preIcon="ei:plus" v-if="buttonShow"> 从合同中导入</a-button>
<a-button type="dashed" @click="handleAdd" class="ml-2" preIcon="ei:plus" v-if="buttonShow"> 新建合同</a-button>
<contractDrawer @register="registerDrawer" @success="handleSuccess"/>
<projectlibraryModel @register="register" @close="handleNewData"/>
<Operations @register="registerDrawerOperations" />
<BasicForm :loading="loading" @register="item.Form[0]" />
<!-- 左上角为项目名 -->
<CollapseContainer
v-for="(content, contentIndex) in item.ContentFormList"
:key="contentIndex"
class="subCard"
:title="'合同:' + contractName[index].contractNameList[contentIndex]"
>
<template #title>
<span class="contractName">{{
'合同:' + contractName[index].contractNameList[contentIndex]
}}</span>
</template>
<!-- 右上角的删除按钮 -->
<template #action>
<a-popconfirm
title="是否确认删除"
ok-text="确定"
cancel-text="取消"
placement="left"
v-if="!disabled"
@confirm="() => deleteItemCon(index, contentIndex)"
>
<a-button
preIcon="ant-design:delete-outlined"
danger
v-if="!disabled"
type="text"
style="color: rgb(239, 124, 124); cursor: pointer"
>删除合同</a-button
>
</a-popconfirm>
</template>
<BasicForm :loading="loading" @register="content.ContentFormList" />
</CollapseContainer>
</CollapseContainer>
<a-button type="dashed" @click="add" preIcon="ei:plus" v-if="buttonShow">
从合同中导入</a-button
>
<a-button type="dashed" @click="handleAdd" class="ml-2" preIcon="ei:plus" v-if="buttonShow">
新建合同</a-button
>
<contractDrawer @register="registerDrawer" @success="handleSuccess" />
<projectlibraryModel @register="register" @close="handleNewData" />
<Operations @register="registerDrawerOperations" />
</PageWrapper>
</template>
<script lang="ts" setup>
//历史记录相关
import {operateType,addItemApi,addItemData} from "@/api/operations/operations"
//历史记录
import Operations from "@/components/Operations/Operations.vue"
const historyData= ref(true)
import { onMounted, reactive,ref} from 'vue';
import {router} from "@/router";
const getTitle = ref('');
//新建合同
import projectlibraryModel from '@/components/ContractModel/ContractDdta.vue';
//历史记录相关
import { addItemApi, addItemData, operateType } from '@/api/operations/operations';
//历史记录
import Operations from '@/components/Operations/Operations.vue';
//引入api
import { nextTick, onMounted, reactive, ref } from 'vue';
import { router } from '@/router';
//新建合同
import contractDrawer from '@/views/contract/contractDrawer.vue';
import projectlibraryModel from '@/components/ContractModel/Contract.vue';
import { useRoute } from 'vue-router';
//分页查询
import { PageWrapper } from '@/components/Page';
//卡片
//合同弹出框
//表单
import { BasicForm, FormProps, useForm, UseFormReturnType } from '@/components/Form';
import { Content, formSchema } from './changeSignatrue.data';
//引入api
//引入弹框
import { useMessage } from '@/hooks/web/useMessage';
//引入弹框
import { useDrawer } from '@/components/Drawer';
import { useModal } from '@/components/Modal';
import { EditModel } from '@/api/project/model/changeSignatureModel';
import { addItem, getItem, updateItem } from '@/api/changeSignatrue/changeSignatrue';
import CollapseContainer from '@/components/Container/src/collapse/CollapseContainer.vue';
import { Popconfirm } from 'ant-design-vue';
import { subFormSchema } from '@/views/monthlyPlan/monthlyPlanEdit/tableData';
import {useRoute} from 'vue-router';
//分页查询
import {PageWrapper} from '@/components/Page';
//卡片
import PageCard from '@/components/Page/src/PageCard.vue';
//合同弹出框
import contractDrawer from '@/views/contract/contractDrawer.vue';
//表单
import {BasicForm, useForm, FormProps, UseFormReturnType} from '@/components/Form';
import {formSchema, Content} from './changeSignatrue.data';
//引入api
//引入弹框
import {useMessage} from '@/hooks/web/useMessage';
//引入弹框
import {useDrawer} from '@/components/Drawer';
//引入api
import {nextTick} from 'vue';
const historyData = ref(true);
const getTitle = ref('');
const APopconfirm = Popconfirm;
const [registerDrawer, { openDrawer }] = useDrawer();
const [registerDrawerOperations, { openDrawer: openDrawer2 }] = useDrawer();
const [registerDrawer, {openDrawer}] = useDrawer();
const [registerDrawerOperations, { openDrawer: openDrawer2 }] = useDrawer();
import {useModal} from '@/components/Modal';
import {EditModel} from "@/api/project/model/changeSignatureModel";
import {getItem,addItem,updateItem,deleteOne} from '@/api/changeSignatrue/changeSignatrue';
const [register, { openModal: openModal }] = useModal();
const { createMessage } = useMessage();
const formData = ref<EditModel>({ management: [], proClosingQuarter: undefined });
const loadingRef = ref(false);
//删除id集合
const idList = ref([]);
const contractIdList = ref([]);
const [register, {openModal: openModal}] = useModal();
const {createMessage} = useMessage();
const formData = ref<EditModel>({management: [], proClosingQuarter: undefined});
const loadingRef = ref(false);
//删除id集合
const idList=ref([])
//列表对象
const tabsFormSchema = reactive<TabsFormType[]>([]);
//获取id
//合同名称
const contractName = ref([]);
const contractId = ref([]);
const isUpdate = ref(false);
const routerId = ref(null);
//提交按钮的显示
const showSubmit = ref(false);
// batton 显示
const buttonShow = ref(true);
//表单禁用
const disabled = ref(false);
const loading = ref(false);
//列表对象
const tabsFormSchema = reactive<TabsFormType[]>([]);
//获取id
//合同名称
const contractName = ref([]);
const isUpdate=ref(false)
const routerId=ref(null)
//提交按钮的显示
const showSubmit = ref(false)
// batton 显示
const buttonShow= ref(true)
//表单禁用
const disabled =ref(false)
onMounted(async () => {
const route = useRoute();
var id = route.query.id;
if (id) {
routerId.value= id
const resData= await getItem({"id":id})
if(route.query.isUpdate==="true"){
getTitle.value="编辑变更签证"
showSubmit.value=true
isUpdate.value=true
onMounted(async () => {
const route = useRoute();
var id = route.query.id;
if (id) {
routerId.value = id;
const resData = await getItem({ id: id });
if (route.query.isUpdate === 'true') {
getTitle.value = '编辑变更签证';
showSubmit.value = true;
isUpdate.value = true;
} else {
getTitle.value = '查看变更签证';
buttonShow.value = false;
isUpdate.value = false;
disabled.value = true;
}
//定义数据
formData.value.management = [];
for (let i = 0; i < resData.length; i++) {
//构建id集合
const source = resData[i];
let Name = {
//项目id
projectId: source.projectId,
//合同名称
contractNameList: [],
};
const item = {
name: '项目:' + source.projectName,
projectId: source.projectId,
forceRender: true,
Form: useForm(
Object.assign({ schemas: formSchema, disabled }, baseFormConfig) as FormProps,
),
ContentFormList: [],
};
tabsFormSchema.push(item);
contentAdd(item.Form[1], source, source.contractList[0].amountInvested);
//合同名称集合
let contractList = [];
for (let j = 0; j < source.contractList.length; j++) {
const sourceItem = source.contractList[j];
console.log(sourceItem, '数据查看');
const contentItem = {
ContentFormList: useForm(
Object.assign({ schemas: Content, disabled }, baseFormConfig) as FormProps,
),
};
item.ContentFormList.push(contentItem);
Name.contractNameList.push(sourceItem.contrcatName);
contentAdd(contentItem.ContentFormList[1], sourceItem, null);
const contract = {
contractId: sourceItem.contractId,
id: sourceItem.id,
proChngeVisaQuarterId: sourceItem.proChngeVisaQuarterId,
};
contractList.push(contract);
contractId.value.push(sourceItem.contractId);
}
formData.value.management.push({
projectId: source.projectId,
projectName: source.projectName,
fundingSource: source.fundingSource,
contract: contractList,
});
contractName.value.push(Name);
}
} else {
historyData.value = false;
isUpdate.value = true;
showSubmit.value = true;
formData.value.proClosingQuarter = {};
formData.value.proClosingQuarter.companyName = 'sdfh';
formData.value.proClosingQuarter.status = '0';
formData.value.proClosingQuarter.quarter = route.query.quarter;
formData.value.proClosingQuarter.givenYear = route.query.year;
formData.value.proClosingQuarter.yearQuarter = route.query.year + '年' + route.query.quarter;
getTitle.value = '新建变更签证';
}
else {
getTitle.value="查看变更签证"
buttonShow.value=false
isUpdate.value=false
disabled.value=true
});
type TabsFormType = {
name: string;
forceRender?: boolean;
projectId: string | number;
Form: UseFormReturnType;
ContentFormList: Array<UseFormReturnType>;
};
//配置
const baseFormConfig: Partial<FormProps> = {
showActionButtonGroup: false,
labelWidth: 100,
layout: 'vertical',
};
//导入合同的确认
async function handleNewData(info: any) {
if (info) {
info.map((i) => {
handleNew(i);
});
}
//定义数据
formData.value.management= [];
for (let i = 0; i <resData.length; i++) {
//构建id集合
const source = resData[i];
let Name={
}
// 构建表单
async function handleNew(info: any) {
//判断项目id是否相同
if (formData.value.management.some((obj) => obj.projectId === info.projectId)) {
const item = {
ContentFormList: useForm(
Object.assign({ schemas: Content, disabled }, baseFormConfig) as FormProps,
),
};
const index = tabsFormSchema.findIndex((obj) => obj.projectId === info.projectId);
const contractList = formData.value.management[index].contract;
if (contractList.some((obj) => obj.contractId === info.id)) {
console.log('id相同', contractList[index]);
} else {
for (let i = 0; i < contractList.length; i++) {
if (contractList[i].contractId !== info.id) {
console.log('id不相同', contractList[i]);
contractName.value[index].contractNameList.push(info.contrcatName);
tabsFormSchema[index].ContentFormList.push(item);
if (isUpdate.value) {
formData.value.management[index].contract.push({
contractId: info.id,
proChngeVisaQuarterId: routerId.value,
});
} else {
formData.value.management[index].contract.push({
contractId: info.id,
});
}
}
}
}
} else {
const contentItem = {
ContentFormList: useForm(
Object.assign({ schemas: Content, disabled }, baseFormConfig) as FormProps,
),
};
//合同名称集合
const contractNameList = [];
console.log('合同名称', info);
contractNameList.push(info.contrcatName);
//构建合同名称
let Name = {
//项目id
projectId: source.projectId,
projectId: info.projectId,
//合同名称
contractNameList:[],
}
contractNameList: contractNameList,
};
contractName.value.push(Name);
const list = [];
list.push(contentItem);
const item = {
name: '序号' + (i + 1),
projectId: source.projectId,
name: '项目:' + info.projectName,
projectId: info.projectId,
forceRender: true,
Form: useForm(Object.assign({schemas: formSchema,disabled}, baseFormConfig) as FormProps),
ContentFormList: [],
Form: useForm(
Object.assign({ schemas: formSchema, disabled }, baseFormConfig) as FormProps,
),
ContentFormList: list,
};
const { setFieldsValue } = item.Form[1];
tabsFormSchema.push(item);
contentAdd(item.Form[1],source,source.contractList[0].amountInvested)
//合同名称集合
let contractList=[]
for (let j = 0; j < source.contractList.length; j++) {
const sourceItem = source.contractList[j];
console.log(sourceItem,"数据查看")
const contentItem = {
ContentFormList: useForm(Object.assign({schemas: Content,disabled}, baseFormConfig) as FormProps),
};
item.ContentFormList.push(contentItem)
Name.contractNameList.push(sourceItem.contrcatName)
contentAdd(contentItem.ContentFormList[1],sourceItem,null)
const contract = {
contractId: sourceItem.contractId,
id: sourceItem.id,
proChngeVisaQuarterId:sourceItem.proChngeVisaQuarterId
}
contractList.push(contract)
const contractList = [];
const contract = {
contractId: info.id,
//合同名称
proChngeVisaQuarterId: null,
};
if (isUpdate.value) {
//proChngeVisaQuarterId
contract.proChngeVisaQuarterId = parseInt(routerId.value);
}
contractList.push(contract);
formData.value.management.push({
projectId: source.projectId,
projectName: source.projectName,
fundingSource: source.fundingSource,
contract: contractList
})
contractName.value.push(Name)
projectId: info.projectId,
projectName: info.projectName,
fundingSource: info.fundingSource,
contract: contractList,
});
nextTick(() => {
setFieldsValue({
projectName: info.projectName,
fundingSource: info.fundingSource,
});
});
}
} else {
historyData.value=false
isUpdate.value=true
showSubmit.value=true
formData.value.proClosingQuarter={}
formData.value.proClosingQuarter.companyName="sdfh"
formData.value.proClosingQuarter.status="0"
formData.value.proClosingQuarter.quarter= route.query.quarter
formData.value.proClosingQuarter.givenYear= route.query.year
formData.value.proClosingQuarter.yearQuarter= route.query.year+"年"+route.query.quarter
getTitle.value = '新建变更签证';
}
})
type TabsFormType = {
name: string;
forceRender?: boolean;
projectId: string | number;
Form: UseFormReturnType;
ContentFormList: Array<UseFormReturnType>;
};
//配置
const baseFormConfig: Partial<FormProps> = {
showActionButtonGroup: false,
labelWidth: 100,
layout: 'vertical',
};
//导入合同的确认
async function handleNewData(info: any) {
if (info) {
info.map((i) => {
handleNew(i);
});
}
}
// 构建表单
async function handleNew(info: any) {
//判断项目id是否相同
if (formData.value.management.some(obj => obj.projectId === info.projectId)) {
const item = {
ContentFormList: useForm(Object.assign({schemas: Content,disabled}, baseFormConfig) as FormProps),
};
const index = tabsFormSchema.findIndex(obj => obj.projectId === info.projectId);
const contractList = formData.value.management[index].contract
if(contractList.some(obj=>obj.contractId === info.id)){
console.log("id相同",contractList[index])
}
else {
for (let i = 0; i < contractList.length; i++) {
if (contractList[i].contractId !== info.id) {
console.log("id不相同",contractList[i])
contractName.value[index].contractNameList.push(info.contrcatName)
tabsFormSchema[index].ContentFormList.push(item);
if(isUpdate){
formData.value.management[index].contract.push({
contractId: info.id,
proChngeVisaQuarterId:routerId.value
});
}
else {
formData.value.management[index].contract.push({
contractId: info.id,
});
//提交
async function handleSubmit(isSubmit) {
for (let i = 0; i < tabsFormSchema.length; i++) {
let formProjectSchema = tabsFormSchema[i].Form[1];
const { updateSchema } = formProjectSchema;
if (isSubmit === '0') {
updateSchema([
{ field: 'projectName', required: false },
{ field: 'fundingSource', required: false },
{ field: 'amountInvested', required: false },
]);
} else {
updateSchema([
{ field: 'projectName', required: true },
{ field: 'fundingSource', required: true },
{ field: 'amountInvested', required: true },
]);
}
for (let j = 0; j < tabsFormSchema[i].ContentFormList.length; j++) {
console.log('tabsFormSchema[i].ContentFormList', tabsFormSchema[i].ContentFormList);
let formSchema = tabsFormSchema[i].ContentFormList[j].ContentFormList[1];
console.log('formSchema', formSchema);
const { updateSchema } = formSchema;
nextTick(() => {
if (isSubmit === '0') {
updateSchema([
{ field: 'contractName', required: false },
{ field: 'biddingMethod', required: false },
{ field: 'contractType', required: false },
{ field: 'firstPartyName', required: false },
{ field: 'partyName', required: false },
{ field: 'formOfContract', required: false },
{ field: 'contractAmount', required: false },
{ field: 'changeAmount', required: false },
{ field: 'amountRatio', required: false },
{ field: 'changeNumber', required: false },
{ field: 'changeType', required: false },
{ field: 'responsibleParty', required: false },
{ field: 'changeContent', required: false },
{ field: 'updateAmount', required: false },
{ field: 'contractValueRatio', required: false },
{ field: 'visaNumber', required: false },
{ field: 'visaType', required: false },
{ field: 'visaContent', required: false },
{ field: 'visaAmount', required: false },
{ field: 'estimatedAmountRatio', required: false },
{ field: 'meetingMinutes', required: false },
{
field: 'remark',
dynamicRules: ({ values }) => {
return [{ required: false }];
},
},
]);
} else {
updateSchema([
{ field: 'contractName', required: true },
{ field: 'biddingMethod', required: true },
{ field: 'contractType', required: true },
{ field: 'firstPartyName', required: true },
{ field: 'partyName', required: true },
{ field: 'formOfContract', required: true },
{ field: 'contractAmount', required: true },
{ field: 'changeAmount', required: true },
{ field: 'amountRatio', required: true },
{ field: 'changeNumber', required: true },
{ field: 'changeType', required: true },
{ field: 'responsibleParty', required: true },
{ field: 'changeContent', required: true },
{ field: 'updateAmount', required: true },
{ field: 'contractValueRatio', required: true },
{ field: 'visaNumber', required: true },
{ field: 'visaType', required: true },
{ field: 'visaContent', required: true },
{ field: 'visaAmount', required: true },
{ field: 'estimatedAmountRatio', required: true },
{ field: 'meetingMinutes', required: true },
{ field: 'remark', required: true },
]);
}
}
});
}
}
} else {
const contentItem = {
ContentFormList: useForm(Object.assign({schemas: Content,disabled}, baseFormConfig) as FormProps),
};
//合同名称集合
const contractNameList=[]
console.log("合同名称",info)
contractNameList.push(info.contrcatName)
//构建合同名称
let Name={
//项目id
projectId: info.projectId,
//合同名称
contractNameList: contractNameList,
}
contractName.value.push(Name)
const list = [];
list.push(contentItem)
const item = {
name: '序号' + (tabsFormSchema.length + 1),
projectId: info.projectId,
forceRender: true,
Form: useForm(Object.assign({schemas: formSchema,disabled}, baseFormConfig) as FormProps),
ContentFormList: list,
//构建数据
const data = {
management: [],
id: routerId.value,
idList: idList.value,
contractIdList: contractIdList.value,
proClosingQuarter: formData.value.proClosingQuarter,
};
const { setFieldsValue } = item.Form[1];
tabsFormSchema.push(item);
const contractList = []
const contract = {
contractId: info.id,
//合同名称
proChngeVisaQuarterId:null
const management = [];
loadingRef.value = true;
console.log(formData.value);
for (let i = 0; i < tabsFormSchema.length; i++) {
//数据构建
const contrantData = {
projectId: '',
contractList: [],
};
let item = tabsFormSchema[i];
const { validate } = item.Form[1];
const data = await validate();
await handleNewContent(item.Form[1]);
const { getFieldsValue } = item.Form[1];
contrantData.projectId = tabsFormSchema[i].projectId;
console.log('contrantData', contrantData);
var projectInvoice = getFieldsValue().amountInvested;
for (let j = 0; j < item.ContentFormList.length; j++) {
let content = item.ContentFormList[j];
const { getFieldsValue } = content.ContentFormList[1];
await handleNewContent(content.ContentFormList[1]);
let res = getFieldsValue();
if (!isUpdate.value) {
let itemConetnt = Object.assign(res, {
amountInvested: projectInvoice,
contractId: formData.value.management[i].contract[j].contractId,
});
contrantData.contractList.push(itemConetnt);
} else {
let itemConetnt = Object.assign(res, {
id: formData.value.management[i].contract[j].id,
amountInvested: projectInvoice,
contractId: formData.value.management[i].contract[j].contractId,
proChngeVisaQuarterId: formData.value.management[i].contract[j].proChngeVisaQuarterId,
});
contrantData.contractList.push(itemConetnt);
}
}
management.push(contrantData);
}
if( isUpdate){
//proChngeVisaQuarterId
contract.proChngeVisaQuarterId=parseInt(routerId.value)
data.management = management;
console.log('data', data);
//新增接口
if (routerId.value) {
const res = updateItem(data);
addItemData.operateType = operateType.update;
addItemData.businessId = routerId.value;
addItemData.businessType = '变更签证管理';
const showDatem = await addItemApi(addItemData);
createMessage.success('提交成功!');
// router.go(-1);
} else {
const res = await addItem(data);
addItemData.operateType = operateType.add;
addItemData.businessId = res;
addItemData.businessType = '变更签证管理';
const showDatem = await addItemApi(addItemData);
createMessage.success('提交成功!');
// router.go(-1);
}
contractList.push(contract)
formData.value.management.push({
projectId: info.projectId,
projectName: info.projectName,
fundingSource: info.fundingSource,
contract: contractList
//修改接口
}
async function add() {
openModal(true, {
isContent: true,
});
}
function contentAdd(contentItem, sourceItem, amountInvested) {
console.log('contentItem', contentItem, 'sourceItem', sourceItem);
const { setFieldsValue } = contentItem;
if (amountInvested) {
sourceItem = Object.assign(sourceItem, { amountInvested: amountInvested });
}
nextTick(() => {
setFieldsValue({
projectName: info.projectName,
fundingSource: info.fundingSource,
...sourceItem,
});
});
}
}
//提交
async function handleSubmit() {
//构建数据
const data={
management:"",
idList:idList.value,
proClosingQuarter: formData.value.proClosingQuarter,
};
const management = [];
loadingRef.value = true;
console.log(formData.value)
for (let i = 0; i < tabsFormSchema.length; i++) {
//数据构建
const contrantData={
projectId:"",
contractList:[]
}
let item = tabsFormSchema[i];
const { validate } = item.Form[1];
const data= await validate();
await handleNewContent(item.Form[1])
const { getFieldsValue } = item.Form[1]
contrantData.projectId = tabsFormSchema[i].projectId;
var projectInvoice = getFieldsValue().amountInvested
for (let j = 0; j < item.ContentFormList.length; j++) {
let content= item.ContentFormList[j]
const { getFieldsValue } = content.ContentFormList[1]
await handleNewContent(content.ContentFormList[1])
let res = getFieldsValue();
if(!isUpdate){
let itemConetnt = Object.assign
(res,{amountInvested:projectInvoice,contractId: formData.value.management[i].contract[j].contractId})
contrantData.contractList.push(itemConetnt)
}
else {
let itemConetnt = Object.assign
(res,{id:formData.value.management[i].contract[j].id,
amountInvested:projectInvoice,
contractId: formData.value.management[i].contract[j].contractId,
proChngeVisaQuarterId:formData.value.management[i].contract[j].proChngeVisaQuarterId
})
contrantData.contractList.push(itemConetnt)
}
}
management.push(contrantData)
/*删除合同表单*/
async function deleteItemCon(index: any, key: any) {
contractIdList.value.push(contractId.value[key]);
console.log(contractId[key]);
console.log(contractId);
console.log(key);
console.log('contractIdList', contractIdList);
formData.value.management[index].contract.splice(key, 1);
tabsFormSchema[index].ContentFormList.splice(key, 1);
loadingRef.value = false;
// }
}
data.management = management;
//新增接口
if(routerId.value){
const res=updateItem(data)
createMessage.success('提交成功!');
addItemData.operateType=operateType.update
addItemData.businessId=routerId.value
addItemData.businessType="变更签证管理"
const showDatem= await addItemApi(addItemData)
router.go(-1)
/*删除项目表单*/
async function deleteItemPro(index: any, item) {
idList.value.push(item.projectId);
formData.value.management.splice(index, 1);
tabsFormSchema.splice(index, 1);
contractName.value.splice(index, 1);
loadingRef.value = false;
// }
}
else {
const res = await addItem(data)
addItemData.operateType=operateType.add
addItemData.businessId=res
addItemData.businessType="变更签证管理"
const showDatem= await addItemApi(addItemData)
createMessage.success('提交成功!');
router.go(-1)
async function handleAdd() {
openDrawer(true, {
isUpdate: false,
});
}
//修改接口
}
async function add() {
openModal(true,{
isContent:true
});
}
function contentAdd(contentItem,sourceItem,amountInvested) {
console.log("contentItem",contentItem,"sourceItem",sourceItem)
const { setFieldsValue } =contentItem;
if(amountInvested){
// 校验方法
function handleNewContent(params) {
const { validate } = params;
return validate();
}
sourceItem= Object.assign
(sourceItem,{amountInvested:amountInvested})
async function handleSuccess(params: any) {
handleNew(params);
}
nextTick(() => {
setFieldsValue({
...sourceItem,
function history() {
openDrawer2(true, {
businessId: routerId.value,
businessType: '变更签证管理',
});
});
}
//删除项目
function deleteItem(index,item){
idList.value.push(item.projectId)
console.log("idList",idList)
// if(routerId.value){
// deleteOne({id:contractName.value[index].projectId})
// }
tabsFormSchema.splice(index,1)
formData.value.management.splice(index,1)
contractName.value.splice(index,1)
}
async function handleAdd() {
openDrawer(true, {
isUpdate: false,
});
}
// 校验方法
function handleNewContent(params) {
const { validate } = params;
const data= validate()
return data;
}
async function handleSuccess(params: any) {
handleNew(params);
}
function history(){
openDrawer2(true,{
businessId: routerId.value,
businessType:"变更签证管理",
});
console.log("历史记录")
}
console.log('历史记录');
}
</script>
<style scoped>
.subCard {
border: 1px solid #e8eaec;
}
.projectName {
border-left: blue solid 6px;
padding-left: 10px;
font-weight: bold;
}
.contractName {
border-left: red solid 6px;
padding-left: 10px;
font-weight: bold;
}
</style>
......@@ -275,9 +275,6 @@ export const Content: FormSchema[] = [
labelWidth: '300px',
required: true,
component: 'InputNumber',
componentProps: {
addonAfter: '元',
},
colProps: { span: 7, offset: 1 },
},
......@@ -286,7 +283,7 @@ export const Content: FormSchema[] = [
field: 'changeNumber',
label: '变更编号',
required: true,
component: 'input',
component: 'Input',
colProps: { span: 7, offset: 1 },
},
{
......@@ -383,6 +380,9 @@ export const Content: FormSchema[] = [
label: '预估签证金额:',
required: true,
component: 'InputNumber',
componentProps: {
addonAfter: '元',
},
colProps: { span: 7, offset: 1 },
},
//预估签证金额占合同金额比例
......@@ -394,7 +394,6 @@ export const Content: FormSchema[] = [
component: 'InputNumber',
colProps: { span: 7, offset: 1 },
},
{
//meeting_minutes
label: '会议纪要',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment