diff --git a/src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue b/src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue index 1125377..60b93fc 100644 --- a/src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue +++ b/src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue @@ -3,8 +3,10 @@ - + + + + \ No newline at end of file diff --git a/src/views/ProcessApprovalSubPage/contractApproval.vue b/src/views/ProcessApprovalSubPage/contractApproval.vue new file mode 100644 index 0000000..e81e52e --- /dev/null +++ b/src/views/ProcessApprovalSubPage/contractApproval.vue @@ -0,0 +1,151 @@ + + + \ No newline at end of file diff --git a/src/views/projectLib/projectContract/index.vue b/src/views/projectLib/projectContract/index.vue index b3fb377..2d6d5ec 100644 --- a/src/views/projectLib/projectContract/index.vue +++ b/src/views/projectLib/projectContract/index.vue @@ -11,13 +11,18 @@ 新增项目合同 - + - + + + + @@ -27,15 +32,16 @@ //ts语法 import { ref } from "vue" import { ActionItem, BasicTable, TableAction, useTable } from '@/components/Table'; -import { useModal } from '@/components/Modal'; +import { useModal } from '@/components/Modal'; import { PageWrapper } from '@/components/Page'; +import { BasicModal } from '@/components/Modal'; import projectContract from "./projectContract.vue" -import DetailTable from './DetailTable.vue' +import DetailTable from '@/views/projectLib/projectContract/DetailTable.vue' import { huzhouContractinfoPageList, deleteContractinfo, getContractProjectPageList } from './projectContract.api'; import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api'; -import { columns, searchFormSchema } from '../projectInfo/projectInfo.data'; - +import { searchFormSchema } from '../projectInfo/projectInfo.data'; +import { contractTablecolumns } from './projectContract.data'; import ProjectinfoComponent from '@/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue' const [registerSubmitprojectContract, { openModal: openModalprojectContract, closeModal: closeModalprojectContract }] = useModal(); @@ -43,10 +49,11 @@ const [registerProjectinfo, { openModal: openModalProjectinfo, closeModal: close const [registerDetailTable, { openModal: openModalDetailTable }] = useModal(); let projectid = ref() +let isModify = ref(false) const [registerTable, { reload }] = useTable({ title: '合同信息', api: huzhouContractinfoPageList, - columns: columns, + columns: contractTablecolumns, useSearchForm: true, rowKey: "id", showIndexColumn: false, @@ -69,28 +76,28 @@ function getTableAction(record): ActionItem[] { { label: '详情', ifShow: () => { - return isShowByRoles("projectContact") && (record.children == null || record.projectId != null) + return record.children == null || record.projectId != null }, onClick: handledetail.bind(null, record), }, { label: '修改', ifShow: () => { - return isShowByRoles("projectContact") && (record.children == null || record.projectId != null) + return isShowByRoles("projectContact") && (record.children == null || record.projectId != null) && record.contractStatus == "2" }, onClick: handleModify.bind(null, record), }, - { - label: '删除', - ifShow: () => { - return isShowByRoles("projectContact") && (record.children == null || record.projectId != null) - }, - popConfirm: { - title: '确定删除吗?', - confirm: handleDelete.bind(null, record), - }, - } + // { + // label: '删除', + // ifShow: () => { + // return isShowByRoles("projectContact") && (record.children == null || record.projectId != null) + // }, + // popConfirm: { + // title: '确定删除吗?', + // confirm: handleDelete.bind(null, record), + // }, + // } ]; } @@ -102,7 +109,9 @@ function handledetail(record) { */ function handleModify(record) { console.log(record, projectid.value) - openModalprojectContract(true, { projectid: record.id, isModify: true }) + projectid.value = record.id + isModify.value = true + openModalprojectContract() } /** @@ -110,7 +119,9 @@ function handleModify(record) { */ function openModalProjectr(value) { console.log("proidproid", value) - openModalprojectContract(true, { projectid: value.id }) + projectid.value = value.id + isModify.value = false + openModalprojectContract() } async function handleDelete(record) { await deleteContractinfo({ projectId: record.id }) @@ -123,7 +134,7 @@ function closeModel() { reload() } function handleAddcontract(record) { - openModalProjectinfo(true,{ title:"新增项目合同" ,api:getContractProjectPageList}) + openModalProjectinfo(true, { title: "新增项目合同", api: getContractProjectPageList }) } diff --git a/src/views/projectLib/projectContract/projectContract.api.ts b/src/views/projectLib/projectContract/projectContract.api.ts index 61a1a3c..f6d5f6b 100644 --- a/src/views/projectLib/projectContract/projectContract.api.ts +++ b/src/views/projectLib/projectContract/projectContract.api.ts @@ -11,6 +11,7 @@ export enum Api { getContractProjectPageList="/huzhouContractinfo/getContractProjectPageList", isExitTaskNameInPlanInfo="/huzhouContractinfo/isExitTaskNameInPlanInfo", getTaskNameTypeDict="/huzhouPlan/getTaskNameTypeDict", + approvalContractinfo="/huzhouContractinfo/approvalContractinfo", } export const huzhouContractinfoPageList = (params) => defHttp.get({ url: Api.huzhouContractinfoPageList, params }) @@ -23,6 +24,7 @@ export const isExistContractinfo = (params) => defHttp.get({ url: Api.isExistCon export const getContractinfoListById = (params) => defHttp.get({ url: Api.getContractinfoListById, params }) export const addContractinfo = (params?) =>defHttp.post({ url: Api.addContractinfo,headers:{ "Content-Type": "multipart/form-data" }, params }) +export const approvalContractinfo = (params?) =>defHttp.post({ url: Api.approvalContractinfo,headers:{ "Content-Type": "multipart/form-data" }, params }) export const modifyContractinfo = (params?) =>defHttp.post({ url: Api.modifyContractinfo,headers:{ "Content-Type": "multipart/form-data" }, params }) diff --git a/src/views/projectLib/projectContract/projectContract.data.ts b/src/views/projectLib/projectContract/projectContract.data.ts index 0f86fe6..3d5053f 100644 --- a/src/views/projectLib/projectContract/projectContract.data.ts +++ b/src/views/projectLib/projectContract/projectContract.data.ts @@ -1,10 +1,60 @@ import { FormSchema } from '@/components/Form'; import { BasicColumn } from '@/components/Table'; -import { getTaskNameTypeDict } from "./projectContract.api" +import { isExitTaskNameInPlanInfo } from "./projectContract.api" import { message } from "ant-design-vue" import dayjs from 'dayjs'; import { currentUser } from '@/api/auth/sysUserPersonal'; +export const contractTablecolumns: BasicColumn[] = [ + { + title: '项目编号', + width: 150, + dataIndex: 'id', + ifShow: false, + }, + { + title: '项目名称', + dataIndex: 'projectName', + width: 300, + resizable: true, + align:'left', + slots: { customRender: 'projectName' }, + }, + { + title: '行政区划', + dataIndex: 'adminDivision', + resizable: true + }, + { + title: '责任单位', + dataIndex: 'dutyWorkplace', + resizable: true + }, + { + title: '单位属性', + dataIndex: 'workplaceProperties', + resizable: true + }, + { + title: '改革所属项目', + dataIndex: 'reformName', + format: 'dict|reformTasks', + resizable: true + }, + { + title: '上级指导处室', + dataIndex: 'superLeader', + format: 'dict|superLeader', + resizable: true + }, + { + title: '合同状态', + dataIndex: 'contractStatus', + format: 'dict|taskStatus', + filters: 'dict|taskStatus', + resizable: true + }, +]; export const contractShowcolumns: BasicColumn[] = [ { @@ -249,49 +299,44 @@ export const contractformSchemas: FormSchema[] = [ componentProps: { options: [{label:"首付支付",value:"首付支付"}], }, - // componentProps: ({ formModel, formActionType }) => { - // console.log("formModel111122323:", formModel); - // return { - // api:() => getTaskNameTypeDict({ projectid:formModel.id}), - // }; - // }, - // dynamicRules: ({ values }) => { - // console.log('values:', values);//表单所有值 - // //需要return - // return [ - // { - // //默认开启表单检验 - // required: true, - // // value 当前手机号输入的值 - // validator: (formSchemas, value) => { - // console.log("______", formSchemas, value); - // //需要return 一个Promise对象 - // return new Promise((resolve, reject) => { - // isExitTaskNameInPlanInfo({ projectid: values.id, taskName: value }).then - // (res => { - // if (!res) { - // console.log("当前项目的计划中没有这个阶段"); - // reject("当前项目的计划中没有这个阶段"); - // } - // Object.keys(values).forEach(key => { - // //判断是否taskName字段的名称是否重复 - // if (key != formSchemas.field && key.includes("taskName")) { - // if (values[key] == value) { - // reject("属性值重复"); - // } - // } - // }) - // if (!value) { - // reject(`此项不能未空`); - // } else { - // resolve(); - // } - // }) - // }); - // }, - // }, - // ]; - // }, + + dynamicRules: ({ values }) => { + console.log('values:', values);//表单所有值 + //需要return + return [ + { + //默认开启表单检验 + required: true, + // value 当前手机号输入的值 + validator: (formSchemas, value) => { + console.log("______", formSchemas, value); + //需要return 一个Promise对象 + return new Promise((resolve, reject) => { + isExitTaskNameInPlanInfo({ projectid: values.id, taskName: value }).then + (res => { + if (!res) { + console.log("当前项目的计划中没有这个阶段"); + reject("当前项目的计划中没有这个阶段"); + } + Object.keys(values).forEach(key => { + //判断是否taskName字段的名称是否重复 + if (key != formSchemas.field && key.includes("taskName")) { + if (values[key] == value) { + reject("属性值重复"); + } + } + }) + if (!value) { + reject(`此项不能未空`); + } else { + resolve(); + } + }) + }); + }, + }, + ]; + }, required: true, colProps: { span: 6,}, helpMessage: '需与项目计划的阶段名称所匹配', diff --git a/src/views/projectLib/projectContract/projectContract.vue b/src/views/projectLib/projectContract/projectContract.vue index a71e8af..493b313 100644 --- a/src/views/projectLib/projectContract/projectContract.vue +++ b/src/views/projectLib/projectContract/projectContract.vue @@ -1,21 +1,22 @@