Commit 97a08c8a authored by 小费同学阿's avatar 小费同学阿 💬

Merge remote-tracking branch 'origin/develop' into develop

parents 334b147e 3f847dc5
import { ProjectParams, ProjectListGetResultModel, ProjectModel } from '@/api/project/model/projectModel'; import {
ProjectParams,
ProjectListGetResultModel,
ProjectModel,
} from '@/api/project/model/projectModel';
import { defHttp } from '@/utils/http/axios'; import { defHttp } from '@/utils/http/axios';
enum Api { enum Api {
//分页查询变更记录 //分页查询变更记录
GetList = '/pro/change-visa/page', GetList = '/pro/change-visa/page',
//根据id查询详情 changeSignatureGetList = 'pro/reportCenter/change-visa/list',
GetDetail = '/pro/change-visa/find-byid', //根据id查询详情
//新增 GetDetail = '/pro/change-visa/find-byid',
Add = '/pro/change-visa/add', //新增
//修改 Add = '/pro/change-visa/add',
Update = '/pro/change-visa/update', //修改
//删除 一个、 Update = '/pro/change-visa/update',
DeleteOne = '/pro/change-visa/del-id', //删除 一个、
// http://58.223.177.48:8088/pro/change-visa/del-id DeleteOne = '/pro/change-visa/del-id',
// http://58.223.177.48:8088/pro/change-visa/del-id
//审核 //审核
Audit = '/pro/change-visa/byId-examine', Audit = '/pro/change-visa/byId-examine',
//http://58.223.177.48:8088/pro/change-visa/byId-examine //http://58.223.177.48:8088/pro/change-visa/byId-examine
//批量删除 //批量删除
DeleteList = '/pro/change-visa/delete-id', DeleteList = '/pro/change-visa/delete-id',
// 判断季度选是否已存在 // 判断季度选是否已存在
CheckQuarter = '/pro/change-visa/is-change', CheckQuarter = '/pro/change-visa/is-change',
} }
export const getSettlementManageList = (params?: ProjectParams) => export const getSettlementManageList = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.GetList, data: params }); defHttp.post<ProjectModel>({ url: Api.GetList, data: params });
export const getChangeSignatureList = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.changeSignatureGetList, data: params });
// 根据id 查询详情 // 根据id 查询详情
export const getItem = (params?: any) => export const getItem = (params?: any) =>
defHttp.get<ProjectModel>({ defHttp.get<ProjectModel>({
url: Api.GetDetail, url: Api.GetDetail,
params, params,
}); });
/** /**
* @description: 新增 * @description: 新增
*/ */
export const addItem = (params?: any) => export const addItem = (params?: any) =>
defHttp.post<ProjectModel>({ defHttp.post<ProjectModel>({
url: Api.Add, url: Api.Add,
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
}, },
}); });
/** /**
* @description: 修改 * @description: 修改
*/ */
export const updateItem = (params?: any) => { export const updateItem = (params?: any) => {
return defHttp.put<ProjectModel>({ return defHttp.put<ProjectModel>({
url: Api.Update, url: Api.Update,
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
}, },
}); });
}; };
//审核接口 //审核接口
export const auditItem = (params?: any) => export const auditItem = (params?: any) =>
defHttp.get<ProjectModel>( defHttp.get<ProjectModel>({
{ url: Api.Audit,
url: Api.Audit, params,
params, });
});
/** /**
* 批量删除 * 批量删除
*/ */
export const deleteList = (params?: any) => export const deleteList = (params?: any) =>
defHttp.delete<ProjectModel>( defHttp.delete<ProjectModel>({
{ url: Api.DeleteList,
url: Api.DeleteList, params,
params, });
});
/** /**
* 删除一个 * 删除一个
*/ */
export const deleteOne = (params?: any) => export const deleteOne = (params?: any) =>
defHttp.delete<ProjectModel>( defHttp.delete<ProjectModel>({
{ url: Api.DeleteOne,
url: Api.DeleteOne, params,
params, });
});
export const checkQuarter = (params?: any) => export const checkQuarter = (params?: any) =>
defHttp.get<ProjectModel>( defHttp.get<ProjectModel>({
{ url: Api.CheckQuarter,
url: Api.CheckQuarter, params,
params, });
});
...@@ -3,6 +3,7 @@ import { ProjectModel, ProjectParams } from '@/api/project/model/projectModel'; ...@@ -3,6 +3,7 @@ import { ProjectModel, ProjectParams } from '@/api/project/model/projectModel';
enum Api { enum Api {
GetList = '/pro/educationTraining/page', GetList = '/pro/educationTraining/page',
safetyEducationGetList = '/pro/educationTraining/page',
UpdateProject = '/pro/educationTraining/update', UpdateProject = '/pro/educationTraining/update',
DeleteProject = '/pro/educationTraining/del', DeleteProject = '/pro/educationTraining/del',
GetUserList = '/pro/sys/sysUser', GetUserList = '/pro/sys/sysUser',
...@@ -11,6 +12,9 @@ enum Api { ...@@ -11,6 +12,9 @@ enum Api {
export const getListByPage = (params?: ProjectParams) => export const getListByPage = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.GetList, data: params }); defHttp.post<ProjectModel>({ url: Api.GetList, data: params });
export const safetyEducationGetListByPage = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.safetyEducationGetList, data: params });
export const addItem = (params?: any) => export const addItem = (params?: any) =>
defHttp.post<ProjectModel>({ url: Api.UpdateProject, data: params }); defHttp.post<ProjectModel>({ url: Api.UpdateProject, data: params });
......
...@@ -3,6 +3,7 @@ import { ProjectModel, ProjectParams } from '@/api/project/model/projectModel'; ...@@ -3,6 +3,7 @@ import { ProjectModel, ProjectParams } from '@/api/project/model/projectModel';
enum Api { enum Api {
GetList = '/pro/dangerManagement/page', GetList = '/pro/dangerManagement/page',
potentialSafetyGetList = '/pro/dangerManagement/page',
UpdateProject = '/pro/dangerManagement/update', UpdateProject = '/pro/dangerManagement/update',
DeleteProject = '/pro/dangerManagement/del', DeleteProject = '/pro/dangerManagement/del',
} }
...@@ -10,6 +11,8 @@ enum Api { ...@@ -10,6 +11,8 @@ enum Api {
export const getListByPage = (params?: ProjectParams) => export const getListByPage = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.GetList, data: params }); defHttp.post<ProjectModel>({ url: Api.GetList, data: params });
export const potentialSafetyGetListByPage = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.potentialSafetyGetList, data: params });
export const addItem = (params?: any) => export const addItem = (params?: any) =>
defHttp.post<ProjectModel>({ url: Api.UpdateProject, data: params }); defHttp.post<ProjectModel>({ url: Api.UpdateProject, data: params });
......
...@@ -6,6 +6,8 @@ import { defHttp } from '@/utils/http/axios'; ...@@ -6,6 +6,8 @@ import { defHttp } from '@/utils/http/axios';
enum Api { enum Api {
//查询list //查询list
GetList = '/pro/reportCenter/settlement/list', GetList = '/pro/reportCenter/settlement/list',
//结算管理查询List集合
GetListPage = '/pro/settlement/page',
//新增接口 //新增接口
Add = '/pro/settlement/add', Add = '/pro/settlement/add',
//根据id查询详情 //根据id查询详情
...@@ -22,11 +24,13 @@ enum Api { ...@@ -22,11 +24,13 @@ enum Api {
getDepartmentList = '/pro/sys/sysDept', getDepartmentList = '/pro/sys/sysDept',
// 查询季度是否已经存在 // 查询季度是否已经存在
isSettlement = '/pro/settlement/is-settlement', isSettlement = '/pro/settlement/is-settlement',
} }
export const getSettlementManageList = (params?: ProjectParams) => export const getSettlementManageList = (params?: ProjectParams) =>
defHttp.post<ProjectParams>({ url: Api.GetList, data: params }); defHttp.post<ProjectParams>({ url: Api.GetList, data: params });
export const getListByPage = (params?: ProjectParams) =>
defHttp.post<ProjectParams>({ url: Api.GetListPage, data: params });
export const addItems = (params?: any) => export const addItems = (params?: any) =>
defHttp.post<ProjectModel>({ defHttp.post<ProjectModel>({
url: Api.Add, url: Api.Add,
...@@ -46,9 +50,10 @@ export const getItem = (params?: any) => ...@@ -46,9 +50,10 @@ export const getItem = (params?: any) =>
* 修改 * 修改
*/ */
export const updateItem = (params?: any) => export const updateItem = (params?: any) =>
defHttp.put<ProjectModel>({ defHttp.put<ProjectModel>(
{
url: Api.update, url: Api.update,
data: params.management, data: params,
headers: { headers: {
'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
}, },
......
...@@ -321,14 +321,14 @@ export const Content: FormSchema[] = [ ...@@ -321,14 +321,14 @@ export const Content: FormSchema[] = [
field: 'responsibleParty', field: 'responsibleParty',
label: '责任方', label: '责任方',
required: true, required: true,
component: 'input', component: 'Input',
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
{ {
field: 'changeContent', field: 'changeContent',
label: ' 变更内容:', label: ' 变更内容:',
required: true, required: true,
component: 'input', component: 'Input',
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
//预估变更金额 //预估变更金额
...@@ -345,7 +345,7 @@ export const Content: FormSchema[] = [ ...@@ -345,7 +345,7 @@ export const Content: FormSchema[] = [
label: '预估变更金额占合同金额比例:', label: '预估变更金额占合同金额比例:',
labelWidth:"300px", labelWidth:"300px",
required: true, required: true,
component: 'input', component: 'Input',
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
//签证编号: //签证编号:
...@@ -353,7 +353,7 @@ export const Content: FormSchema[] = [ ...@@ -353,7 +353,7 @@ export const Content: FormSchema[] = [
field: 'visaNumber', field: 'visaNumber',
label: '签证编号:', label: '签证编号:',
required: true, required: true,
component: 'input', component: 'Input',
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
//签证类型: //签证类型:
...@@ -361,7 +361,7 @@ export const Content: FormSchema[] = [ ...@@ -361,7 +361,7 @@ export const Content: FormSchema[] = [
field: 'visaType', field: 'visaType',
label: '签证类型:', label: '签证类型:',
required: true, required: true,
component: 'input', component: 'Input',
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
......
...@@ -53,13 +53,12 @@ ...@@ -53,13 +53,12 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { BasicTable, useTable, TableAction } from '@/components/Table';
import {useModal} from "@/components/Modal"; import {useModal} from "@/components/Modal";
import yearModal from '@/components/yearModal/yearModal.vue'; import yearModal from '@/components/yearModal/yearModal.vue';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const { push } = useRouter(); const { push } = useRouter();
const [register, { openModal: openModal,closeModal:closeModal }] = useModal(); const [register, { openModal: openModal,closeModal:closeModal }] = useModal();
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getSettlementManageList,auditItem,deleteList,checkQuarter} from '@/api/changeSignatrue/changeSignatrue'; import { getSettlementManageList,auditItem,deleteList,checkQuarter} from '@/api/changeSignatrue/changeSignatrue';
import { import {
columns, columns,
......
<template> <template>
<BasicTable @register="registerTable"> <div>
<template #bodyCell="{ column, record, index }"> <BasicTable @register="registerTable">
<template v-if="column.key === 'serialNumber'"> <template #bodyCell="{ column, record, index }">
{{ index + 1 }} <template v-if="column.key === 'serialNumber'">
</template> {{ index + 1 }}
<template v-if="column.key === 'tenderYear'"> </template>
{{ record.tenderYear + '年' + record.biddingQuarter + '季度' }} <template v-if="column.key === 'tenderYear'">
</template> {{ record.tenderYear + '年' + record.biddingQuarter + '季度' }}
<template v-if="column.key === 'action'"> </template>
<TableAction <template v-if="column.key === 'action'">
:actions="[ <TableAction
{ :actions="[
label: '查看详情', {
onClick: handleDetail.bind(null, record, 1), label: '查看详情',
ifShow: (_action) => { onClick: handleDetail.bind(null, record, true),
return record.completionResult == '1';
}, },
}, ]"
]" />
/> </template>
</template> </template>
</template> </BasicTable>
</BasicTable> <change-signature-drawer @register="registerDrawer" @success="handleSuccess" />
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { changeSignatureColumns, searchFormSchema } from './data'; import { changeSignatureColumns, searchFormSchema } from './data';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getSettlementManageList } from '@/api/changeSignatrue/changeSignatrue'; import { getChangeSignatureList } from '@/api/changeSignatrue/changeSignatrue';
import { inject } from 'vue'; import { inject } from 'vue';
import { router } from '@/router'; import { router } from '@/router';
import { Tag } from 'ant-design-vue'; import { Tag } from 'ant-design-vue';
import { useDrawer } from '@/components/Drawer';
import ChangeSignatureDrawer from '@/views/project/tabs/drawer/changeSignatureDrawer.vue';
const [registerDrawer, { openDrawer }] = useDrawer();
let detailId = inject('detailId'); let detailId = inject('detailId');
console.log('detailId', detailId); console.log('detailId', detailId);
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getSettlementManageList, api: getChangeSignatureList,
columns: changeSignatureColumns, columns: changeSignatureColumns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
...@@ -54,13 +59,11 @@ ...@@ -54,13 +59,11 @@
fixed: undefined, fixed: undefined,
}, },
}); });
function handleDetail(record: Recordable, disabled: number) { async function handleDetail(record: Recordable, disabled: boolean) {
router.push({ openDrawer(true, {
path: '/changeSignature/edit', record,
query: { isUpdate: true,
id: record.id, disabled,
disabled: String(disabled),
},
}); });
} }
</script> </script>
...@@ -908,7 +908,7 @@ export const settlementManagementColumns = [ ...@@ -908,7 +908,7 @@ export const settlementManagementColumns = [
}, },
{ {
title: '立项投资额(万元)', title: '立项投资额(万元)',
dataIndex: 'uniqueProjectCount', dataIndex: 'projectInvestment',
width: 140, width: 140,
}, },
{ {
...@@ -918,7 +918,7 @@ export const settlementManagementColumns = [ ...@@ -918,7 +918,7 @@ export const settlementManagementColumns = [
}, },
{ {
title: '招标方式', title: '招标方式',
dataIndex: 'updateBy', dataIndex: 'biddingMethod',
width: 140, width: 140,
}, },
{ {
...@@ -978,7 +978,7 @@ export const settlementManagementColumns = [ ...@@ -978,7 +978,7 @@ export const settlementManagementColumns = [
}, },
{ {
title: '结算审定金额(元)', title: '结算审定金额(元)',
dataIndex: 'auditTime', dataIndex: 'sumOfMoney',
width: 140, width: 140,
}, },
{ {
...@@ -993,7 +993,7 @@ export const settlementManagementColumns = [ ...@@ -993,7 +993,7 @@ export const settlementManagementColumns = [
}, },
{ {
title: '备注', title: '备注',
dataIndex: 'auditTime', dataIndex: 'remark',
width: 140, width: 140,
}, },
]; ];
...@@ -1005,63 +1005,58 @@ export const changeSignatureColumns = [ ...@@ -1005,63 +1005,58 @@ export const changeSignatureColumns = [
width: 200, width: 200,
}, },
{ {
title: '项目数量', title: '项合同名称',
dataIndex: 'uniqueProjectCount', dataIndex: 'contractName',
width: 180,
},
{
title: '合同名称',
dataIndex: 'companyName',
width: 180, width: 180,
}, },
{ {
title: '合同金额', title: '合同金额',
dataIndex: 'updateBy', dataIndex: 'contractAmount',
width: 180, width: 180,
}, },
{ {
title: '合同累计签证、变更金额(含本次)(元)', title: '合同累计签证、变更金额(含本次)(元)',
dataIndex: 'updateTime', dataIndex: 'changeAmount',
width: 180, width: 180,
}, },
{ {
title: '累计变更签证金额占合同金额比例', title: '累计变更签证金额占合同金额比例',
dataIndex: 'status', dataIndex: 'amountRatio',
width: 180, width: 180,
}, },
{ {
title: '变更编号', title: '变更编号',
dataIndex: 'auditor', dataIndex: 'changeNumber',
width: 180, width: 180,
}, },
{ {
title: '变更类型', title: '变更类型',
dataIndex: 'auditTime', dataIndex: 'changeType',
width: 180, width: 180,
}, },
{ {
title: '责任方', title: '责任方',
dataIndex: 'auditTime', dataIndex: 'responsibleParty',
width: 180, width: 180,
}, },
{ {
title: '变更内容', title: '变更内容',
dataIndex: 'auditTime', dataIndex: 'changeContent',
width: 180, width: 180,
}, },
{ {
title: '预估变更金额(元)', title: '预估变更金额(元)',
dataIndex: 'auditTime', dataIndex: 'visaAmount',
width: 180, width: 180,
}, },
{ {
title: '预估变更金额占合同金额比例', title: '预估变更金额占合同金额比例',
dataIndex: 'auditTime', dataIndex: 'contractValueRatio',
width: 180, width: 180,
}, },
{ {
title: '签证编号', title: '签证编号',
dataIndex: 'auditTime', dataIndex: 'visaNumber',
width: 180, width: 180,
}, },
]; ];
...@@ -1113,6 +1108,11 @@ export const potentialSafetyColumns = [ ...@@ -1113,6 +1108,11 @@ export const potentialSafetyColumns = [
}, },
]; ];
export const safetyEducationColumns = [ export const safetyEducationColumns = [
{
title: '序号',
dataIndex: 'serialNumber',
width: 100,
},
{ {
title: '填报周期', title: '填报周期',
dataIndex: 'fillingPeriod', dataIndex: 'fillingPeriod',
......
<template>
<BasicDrawer
v-bind="$attrs"
@register="registerDrawer"
showFooter
:title="getTitle"
width="700px"
@ok="handleSubmit"
>
<BasicForm ref="formElRef" @register="registerForm" />
</BasicDrawer>
</template>
<script lang="ts" setup>
import { onMounted, ref, unref } from 'vue';
import { BasicForm, useForm, FormActionType } from '@/components/Form';
import { changeSignatureDrawer } from '../drawer/drawerData';
import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
const isUpdate = ref(true);
const formElRef = ref<Nullable<FormActionType>>(null);
const [registerForm, { resetFields, setFieldsValue }] = useForm({
labelWidth: 90,
baseColProps: { span: 24 },
schemas: changeSignatureDrawer,
showActionButtonGroup: false,
});
onMounted(async () => {});
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
resetFields();
setDrawerProps({ confirmLoading: false });
if (data.disabled == true) {
getTitle.value = '查看变更签证管理';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: true,
});
}
if (unref(isUpdate)) {
setFieldsValue({
...data.record,
});
}
});
const getTitle = ref('');
async function handleSubmit() {
closeDrawer();
}
</script>
import { FormSchema } from '@/components/Table';
//结算管理详情抽屉
export const settlementDrawer: FormSchema[] = [
{
label: '填报周期',
field: 'yearQuarter',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '立项投资额(万元)',
field: 'projectInvestment',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '资金来源',
field: 'fundingSource',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '招标方式',
field: 'biddingMethod',
labelWidth: '140px',
required: true,
component: 'Select',
componentProps: {
options: [
{
label: '建委招标',
value: '1',
},
{
label: '平台招标',
value: '2',
},
{
label: '邀标比选',
value: '3',
},
{
label: '直接委托',
value: '4',
},
{
label: '评分定离',
value: '5',
},
],
},
},
{
label: '合同类型',
field: 'contracYpe',
labelWidth: '140px',
required: true,
component: 'Select',
componentProps: {
options: [
{
label: '施工',
value: '1',
},
{
label: '监理',
value: '2',
},
{
label: '设计',
value: '3',
},
{
label: '图审',
value: '4',
},
],
},
},
{
label: '合同名称',
field: 'contractName',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '甲方单位名称',
field: 'firstPartyName',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '乙方单位名称',
field: 'secondPartyName',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '合同形式',
field: 'formOfContract',
labelWidth: '140px',
required: true,
component: 'Select',
componentProps: {
options: [
{
label: '固定总价',
value: '1',
},
{
label: '固定单价',
value: '2',
},
{
label: '费率',
value: '3',
},
{
label: '其他',
value: '4',
},
],
},
},
{
label: '合同签订时间',
field: 'contractSigningTime',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '竣工时间',
field: 'closingTime',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '结算完成时间',
field: 'closingTimeDatetime',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '合同金额(元)',
field: 'contractAmount',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '签证、变更金额(元)',
field: 'submittedForSettlement',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '结算报送金额(元)',
field: 'superContractScale',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '结算审定金额(元)',
field: 'sumOfMoney',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '结算审核金额超合同额比例',
field: 'proportionContractAmount',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '会议纪要',
field: 'meetingMinutes',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '备注',
field: 'remark',
labelWidth: '140px',
required: true,
component: 'Input',
},
];
//变更签证管理详情抽屉
export const changeSignatureDrawer: FormSchema[] = [
{
label: '填报周期',
field: 'yearQuarter',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '项合同名称',
field: 'contractName',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '合同金额',
field: 'contractAmount',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '合同累计签证、变更金额(含本次)(元)',
field: 'changeAmount',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '累计变更签证金额占合同金额比例',
field: 'amountRatio',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '变更编号',
field: 'changeNumber',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '变更类型',
field: 'changeType',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '责任方',
field: 'responsibleParty',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '变更内容',
field: 'changeContent',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '预估变更金额(元)',
field: 'visaAmount',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '预估变更金额占合同金额比例',
field: 'contractValueRatio',
labelWidth: '280px',
required: true,
component: 'Input',
},
{
label: '签证编号',
field: 'visaNumber',
labelWidth: '280px',
required: true,
component: 'Input',
},
];
//安全隐患管理详情抽屉
export const potentialSafetyDrawer: FormSchema[] = [
{
label: '填报周期',
field: 'fillingPeriod',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '隐患描述',
field: 'describe',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '隐患级别',
field: 'level',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '计划费用(万元)',
field: 'planCost',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '实际费用(万元)',
field: 'actualCost',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '计划时间',
field: 'planTime',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '实际时间',
field: 'actualTime',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '隐患治理后的评估情况',
field: 'assessmentSituation',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '责任人',
field: 'responsiblePerson',
labelWidth: '140px',
required: true,
component: 'Input',
},
];
//安全教育管理详情抽屉
export const safetyEducationDrawer: FormSchema[] = [
{
label: '填报周期',
field: 'fillingPeriod',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '培训时间',
field: 'trainingTime',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '培训主题',
field: 'trainingTheme',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '培训类型',
field: 'trainingType',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '培训形式',
field: 'trainingFormat',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '计划会议',
field: 'trainingMeet',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '培训人员',
field: 'trainers',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '学识(合计)',
field: 'knowledge',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '人数',
field: 'numberOfPeople',
labelWidth: '140px',
required: true,
component: 'Input',
},
{
label: '备注',
field: 'remark',
labelWidth: '140px',
required: true,
component: 'Input',
},
];
<template>
<BasicDrawer
v-bind="$attrs"
@register="registerDrawer"
showFooter
:title="getTitle"
width="700px"
@ok="handleSubmit"
>
<BasicForm ref="formElRef" @register="registerForm" />
</BasicDrawer>
</template>
<script lang="ts" setup>
import { onMounted, ref, unref } from 'vue';
import { BasicForm, useForm, FormActionType } from '@/components/Form';
import { potentialSafetyDrawer } from '../drawer/drawerData';
import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
const isUpdate = ref(true);
const formElRef = ref<Nullable<FormActionType>>(null);
const [registerForm, { resetFields, setFieldsValue }] = useForm({
labelWidth: 90,
baseColProps: { span: 24 },
schemas: potentialSafetyDrawer,
showActionButtonGroup: false,
});
onMounted(async () => {});
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
resetFields();
setDrawerProps({ confirmLoading: false });
if (data.disabled == true) {
getTitle.value = '查看变更签证管理';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: true,
});
}
if (unref(isUpdate)) {
setFieldsValue({
...data.record,
});
}
});
const getTitle = ref('');
async function handleSubmit() {
closeDrawer();
}
</script>
<template>
<BasicDrawer
v-bind="$attrs"
@register="registerDrawer"
showFooter
:title="getTitle"
width="700px"
@ok="handleSubmit"
>
<BasicForm ref="formElRef" @register="registerForm" />
</BasicDrawer>
</template>
<script lang="ts" setup>
import { onMounted, ref, unref } from 'vue';
import { BasicForm, useForm, FormActionType } from '@/components/Form';
import { safetyEducationDrawer } from '../drawer/drawerData';
import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
const isUpdate = ref(true);
const formElRef = ref<Nullable<FormActionType>>(null);
const [registerForm, { resetFields, setFieldsValue }] = useForm({
labelWidth: 90,
baseColProps: { span: 24 },
schemas: safetyEducationDrawer,
showActionButtonGroup: false,
});
onMounted(async () => {});
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
resetFields();
setDrawerProps({ confirmLoading: false });
if (data.disabled == true) {
getTitle.value = '查看结算管理';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: true,
});
}
if (unref(isUpdate)) {
setFieldsValue({
...data.record,
});
}
});
const getTitle = ref('');
async function handleSubmit() {
closeDrawer();
}
</script>
<template>
<BasicDrawer
v-bind="$attrs"
@register="registerDrawer"
showFooter
:title="getTitle"
width="700px"
@ok="handleSubmit"
>
<BasicForm ref="formElRef" @register="registerForm" />
</BasicDrawer>
</template>
<script lang="ts" setup>
import { onMounted, ref, unref } from 'vue';
import { BasicForm, useForm, FormActionType } from '@/components/Form';
import { settlementDrawer } from '../drawer/drawerData';
import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
const isUpdate = ref(true);
const formElRef = ref<Nullable<FormActionType>>(null);
const [registerForm, { resetFields, setFieldsValue }] = useForm({
labelWidth: 90,
baseColProps: { span: 24 },
schemas: settlementDrawer,
showActionButtonGroup: false,
});
onMounted(async () => {});
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
resetFields();
setDrawerProps({ confirmLoading: false });
if (data.disabled == true) {
getTitle.value = '查看结算管理';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: true,
});
}
if (unref(isUpdate)) {
setFieldsValue({
...data.record,
});
}
});
const getTitle = ref('');
async function handleSubmit() {
closeDrawer();
}
</script>
<template> <template>
<BasicTable @register="registerTable"> <div>
<template #bodyCell="{ column, record, index }"> <BasicTable @register="registerTable">
<template v-if="column.key === 'serialNumber'"> <template #bodyCell="{ column, record, index }">
{{ index + 1 }} <template v-if="column.key === 'serialNumber'">
</template> {{ index + 1 }}
<template v-if="column.key === 'tenderYear'"> </template>
{{ record.tenderYear + '年' + record.biddingQuarter + '季度' }} <template v-if="column.key === 'tenderYear'">
</template> {{ record.tenderYear + '年' + record.biddingQuarter + '季度' }}
<template v-if="column.key === 'action'"> </template>
<TableAction <template v-if="column.key === 'action'">
:actions="[ <TableAction
{ :actions="[
label: '查看详情', {
onClick: handleDetail.bind(null, record, 1), label: '查看详情',
ifShow: (_action) => { onClick: handleDetail.bind(null, record, true),
return record.completionResult == '1';
}, },
}, ]"
]" />
/> </template>
</template> </template>
</template> </BasicTable>
</BasicTable> <potential-safety-drawer @register="registerDrawer" @success="handleSuccess" />
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { useDrawer } from '@/components/Drawer';
import {potentialSafetyDrawer} from "@/views/project/tabs/drawer/drawerData";
import { potentialSafetyColumns, searchFormSchema } from './data'; import { potentialSafetyColumns, searchFormSchema } from './data';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getListByPage } from '@/api/project/saftyManage'; import { potentialSafetyGetListByPage } from '@/api/project/saftyManage';
import { inject } from 'vue'; import { inject } from 'vue';
import { router } from '@/router'; import { router } from '@/router';
import { Tag } from 'ant-design-vue'; import { Tag } from 'ant-design-vue';
import PotentialSafetyDrawer from "@/views/project/tabs/drawer/potentialSafetyDrawer.vue";
let detailId = inject('detailId'); let detailId = inject('detailId');
console.log('detailId', detailId); console.log('detailId', detailId);
const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getListByPage, api: potentialSafetyGetListByPage,
columns: potentialSafetyColumns, columns: potentialSafetyColumns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
...@@ -54,13 +59,11 @@ ...@@ -54,13 +59,11 @@
fixed: undefined, fixed: undefined,
}, },
}); });
function handleDetail(record: Recordable, disabled: number) { async function handleDetail(record: Recordable, disabled: boolean) {
router.push({ openDrawer(true, {
path: '/potentialSafety/edit', record,
query: { isUpdate: true,
id: record.id, disabled,
disabled: String(disabled),
},
}); });
} }
</script> </script>
<template> <template>
<BasicTable @register="registerTable"> <div>
<template #bodyCell="{ column, record, index }"> <BasicTable @register="registerTable">
<template v-if="column.key === 'serialNumber'"> <template #bodyCell="{ column, record, index }">
{{ index + 1 }} <template v-if="column.key === 'serialNumber'">
</template> {{ index + 1 }}
<template v-if="column.key === 'tenderYear'"> </template>
{{ record.tenderYear + '年' + record.biddingQuarter + '季度' }} <template v-if="column.key === 'tenderYear'">
</template> {{ record.tenderYear + '年' + record.biddingQuarter + '季度' }}
<template v-if="column.key === 'action'"> </template>
<TableAction <template v-if="column.key === 'action'">
:actions="[ <TableAction
:actions="[
{ {
label: '查看详情', label: '查看详情',
onClick: handleDetail.bind(null, record, 1), onClick: handleDetail.bind(null, record, 1),
ifShow: (_action) => {
return record.completionResult == '1';
},
}, },
]" ]"
/> />
</template>
</template> </template>
</template> </BasicTable>
</BasicTable> <safety-education-drawer @register="registerDrawer" @success="handleSuccess"></safety-education-drawer>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {useDrawer} from "@/components/Drawer";
import { safetyEducationColumns, searchFormSchema } from './data'; import { safetyEducationColumns, searchFormSchema } from './data';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getListByPage } from '@/api/project/safetyEducation'; import { safetyEducationGetListByPage} from '@/api/project/safetyEducation';
import { inject } from 'vue'; import { inject } from 'vue';
import { router } from '@/router'; import { router } from '@/router';
import { Tag } from 'ant-design-vue'; import { Tag } from 'ant-design-vue';
import SafetyEducationDrawer from "@/views/project/tabs/drawer/safetyEducationDrawer.vue";
let detailId = inject('detailId'); let detailId = inject('detailId');
console.log('detailId', detailId); console.log('detailId', detailId);
const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getListByPage, api: safetyEducationGetListByPage,
columns: safetyEducationColumns, columns: safetyEducationColumns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
...@@ -54,13 +57,11 @@ ...@@ -54,13 +57,11 @@
fixed: undefined, fixed: undefined,
}, },
}); });
function handleDetail(record: Recordable, disabled: number) { async function handleDetail(record: Recordable, disabled: boolean) {
router.push({ openDrawer(true, {
path: '/safetyEducation/edit', record,
query: { isUpdate: true,
id: record.id, disabled,
disabled: String(disabled),
},
}); });
} }
</script> </script>
<!--结算管理--> <!--结算管理-->
<template> <template>
<div>
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record, index }">
<template v-if="column.key === 'serialNumber'"> <template v-if="column.key === 'serialNumber'">
...@@ -13,18 +14,19 @@ ...@@ -13,18 +14,19 @@
:actions="[ :actions="[
{ {
label: '查看详情', label: '查看详情',
onClick: handleDetail.bind(null, record, 1), onClick: handleDetail.bind(null, record, true),
ifShow: (_action) => {
return record.completionResult == '1';
},
}, },
]" ]"
/> />
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<settlement-drawer @register="registerDrawer" @success="handleSuccess"></settlement-drawer>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {useDrawer} from "@/components/Drawer";
import SettlementDrawer from "@/views/project/tabs/drawer/settlementDrawer.vue";
import { settlementManagementColumns, searchFormSchema } from './data'; import { settlementManagementColumns, searchFormSchema } from './data';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getSettlementManageList } from '@/api/project/settlementManage'; import { getSettlementManageList } from '@/api/project/settlementManage';
...@@ -33,6 +35,7 @@ ...@@ -33,6 +35,7 @@
import { Tag } from 'ant-design-vue'; import { Tag } from 'ant-design-vue';
let detailId = inject('detailId'); let detailId = inject('detailId');
console.log('detailId', detailId); console.log('detailId', detailId);
const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getSettlementManageList, api: getSettlementManageList,
columns: settlementManagementColumns, columns: settlementManagementColumns,
...@@ -55,13 +58,11 @@ ...@@ -55,13 +58,11 @@
fixed: undefined, fixed: undefined,
}, },
}); });
function handleDetail(record: Recordable, disabled: number) { async function handleDetail(record: Recordable, disabled: boolean) {
router.push({ openDrawer(true, {
path: '/settlementManagement/edit', record,
query: { isUpdate: true,
id: record.id, disabled,
disabled: String(disabled),
},
}); });
} }
</script> </script>
...@@ -61,7 +61,7 @@ const { push } = useRouter(); ...@@ -61,7 +61,7 @@ const { push } = useRouter();
import {useRouter} from "vue-router"; import {useRouter} from "vue-router";
import {onMounted}from "vue" import {onMounted}from "vue"
const [register, { openModal: openModal,closeModal:closeModal }] = useModal(); const [register, { openModal: openModal,closeModal:closeModal }] = useModal();
import {getSettlementManageList, auditItem,deleteLis,getDepartmentList,isSettlement} from '@/api/project/settlementManage'; import {getListByPage, auditItem,deleteLis,getDepartmentList,isSettlement} from '@/api/project/settlementManage';
import { columns, searchFormSchema } from './data'; import { columns, searchFormSchema } from './data';
import { useDrawer } from '@/components/Drawer'; import { useDrawer } from '@/components/Drawer';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
...@@ -70,7 +70,7 @@ import {useMessage} from "@/hooks/web/useMessage"; ...@@ -70,7 +70,7 @@ import {useMessage} from "@/hooks/web/useMessage";
defineOptions({ name: 'SettlementManagement' }); defineOptions({ name: 'SettlementManagement' });
const [registerDrawer, { openDrawer }] = useDrawer(); const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getSettlementManageList, api: getListByPage,
columns, columns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
type="text" type="text"
preIcon="ant-design:delete-outlined" preIcon="ant-design:delete-outlined"
danger danger
@click="deleteItem(index)" @click="deleteItem(index,item)"
> >
</a-button> </a-button>
</template> </template>
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
addItems, addItems,
getItem, getItem,
updateItem, updateItem,
deleteOne,
auditItem, auditItem,
} from '@/api/project/settlementManage'; } from '@/api/project/settlementManage';
import { EditModel } from '@/api/project/model/settlementManageModel'; import { EditModel } from '@/api/project/model/settlementManageModel';
...@@ -62,6 +61,8 @@ ...@@ -62,6 +61,8 @@
const disabled = ref(false); const disabled = ref(false);
//审核状态 //审核状态
const statusResult = ref(null); const statusResult = ref(null);
//删除的id集合
const deleteId = ref([]);
//页面传递过来了的id //页面传递过来了的id
const routeId = ref(null); const routeId = ref(null);
onMounted(async () => { onMounted(async () => {
...@@ -179,16 +180,10 @@ ...@@ -179,16 +180,10 @@
}); });
}); });
} }
function deleteItem(index: any) { function deleteItem(index: any,item:object) {
tabsFormSchema.splice(index, 1); deleteId.value.push(formData.value.management[index].id)
if (formData.value && formData.value.management && formData.value.management[index]) {
console.log(formData.value.management[index].id);
deleteOne(formData.value.management[index].id);
} else {
console.log('Invalid index or data not found');
}
// await deleteItem(formData.value.management[index].id)
formData.value.management.splice(index, 1); formData.value.management.splice(index, 1);
tabsFormSchema.splice(index, 1);
} }
async function handleAdd() { async function handleAdd() {
openDrawer(true, { openDrawer(true, {
...@@ -204,16 +199,21 @@ ...@@ -204,16 +199,21 @@
let item = tabsFormSchema[i]; let item = tabsFormSchema[i];
const { validate, getFieldsValue } = item.Form[1]; const { validate, getFieldsValue } = item.Form[1];
const data = await validate(); const data = await validate();
let res = getFieldsValue(); let res = getFieldsValue();
formData.value.management[i] = deepMerge(formData.value.management[i], res); formData.value.management[i] = deepMerge(formData.value.management[i], res);
} }
let res; let res;
if (isUpdate.value) { if (isUpdate.value) {
console.log(formData.value, '数据查看'); console.log(formData.value.management, '数据查看');
} }
if (routeId.value) { if (routeId.value) {
res = await updateItem(unref(formData)); console.log(unref(formData), '数据查看')
console.log(deleteId.value);
const requestDate={
ids:deleteId.value,
management:unref(formData).management
}
res = await updateItem(requestDate);
} else { } else {
res = await addItems(unref(formData)); res = await addItems(unref(formData));
} }
......
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