Commit 1082cea9 authored by ccc2wdd's avatar ccc2wdd

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

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