diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/record.ts b/src/api/business/subpackage/record.ts new file mode 100644 index 0000000..c3bbf1a --- /dev/null +++ b/src/api/business/subpackage/record.ts @@ -0,0 +1,14 @@ +/** + * 分包方档案接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/record.ts b/src/api/business/subpackage/record.ts new file mode 100644 index 0000000..c3bbf1a --- /dev/null +++ b/src/api/business/subpackage/record.ts @@ -0,0 +1,14 @@ +/** + * 分包方档案接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/utils/scheduleDict.ts b/src/utils/scheduleDict.ts index 09e8b6d..a579f5b 100644 --- a/src/utils/scheduleDict.ts +++ b/src/utils/scheduleDict.ts @@ -21,4 +21,8 @@ DEVICE_FIX_ACCEPTANCE = 'sbglsbjxbyysd', // 设备检修保养验收单 BUSINESS_CERT_PRINT = 'ywglzsdy', // 证书打印 BUSINESS_REPORT_ON_CREDENTIALS = 'ywglzsbg', // 证书报告 + BUSINESS_SUBPACKAGE_APPLY = 'ywglfbxmsq', // 分包项目申请 + BUSINESS_SUBPACKAGE_CHECK = 'ywglfbxmys', // 分包项目验收 + BUSINESS_SUBPACKAGE_RECORD = 'ywglfbfda', // 分包方档案 + BUSINESS_SUBPACKAGE_APPROVE = 'ywglfbfzgsp', // 分包方资格资格审批 } diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/record.ts b/src/api/business/subpackage/record.ts new file mode 100644 index 0000000..c3bbf1a --- /dev/null +++ b/src/api/business/subpackage/record.ts @@ -0,0 +1,14 @@ +/** + * 分包方档案接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/utils/scheduleDict.ts b/src/utils/scheduleDict.ts index 09e8b6d..a579f5b 100644 --- a/src/utils/scheduleDict.ts +++ b/src/utils/scheduleDict.ts @@ -21,4 +21,8 @@ DEVICE_FIX_ACCEPTANCE = 'sbglsbjxbyysd', // 设备检修保养验收单 BUSINESS_CERT_PRINT = 'ywglzsdy', // 证书打印 BUSINESS_REPORT_ON_CREDENTIALS = 'ywglzsbg', // 证书报告 + BUSINESS_SUBPACKAGE_APPLY = 'ywglfbxmsq', // 分包项目申请 + BUSINESS_SUBPACKAGE_CHECK = 'ywglfbxmys', // 分包项目验收 + BUSINESS_SUBPACKAGE_RECORD = 'ywglfbfda', // 分包方档案 + BUSINESS_SUBPACKAGE_APPROVE = 'ywglfbfzgsp', // 分包方资格资格审批 } diff --git a/src/views/business/subpackage/apply/list.vue b/src/views/business/subpackage/apply/list.vue index efe8c62..6c8c903 100644 --- a/src/views/business/subpackage/apply/list.vue +++ b/src/views/business/subpackage/apply/list.vue @@ -3,7 +3,7 @@ import type { Ref } from 'vue' import { ElLoading, ElMessage } from 'element-plus' import type { DateModelType } from 'element-plus' -import type { IListQuery } from '../subpackage-interface' +import type { IApplyList, IListQuery } from '../subpackage-interface' import { printJSON } from '@/utils/printUtils' import { exportFile } from '@/utils/exportUtils' import type { TableColumn } from '@/components/NormalTable/table_interface' @@ -11,43 +11,53 @@ import type { dictType } from '@/views/device/receive/receive' import type { IMenu } from '@/components/buttonBox/buttonBox' import ButtonBox from '@/components/buttonBox/buttonBox.vue' +import { getListPage } from '@/api/business/subpackage/apply' +import { SCHEDULE } from '@/utils/scheduleDict' const $router = useRouter() const { proxy } = getCurrentInstance() as any const TabActiveButton = 'SubpackageApplyActive' +const loadingTable = ref(false) +const timeRange = ref<[DateModelType, DateModelType]>(['', '']) +const menu = ref([]) // 审批状态按钮组合 +const active = ref('') // 查询条件 const listQuery: Ref = ref({ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, }) -const total = ref(0) -const loadingTable = ref(false) -const timeRange = ref<[DateModelType, DateModelType]>(['', '']) -const menu = ref([]) // 审批状态按钮组合 -const active = ref('') + // 表头 const columns = ref([ - { text: '分包项目编号', value: 'interchangeCode', align: 'center', width: '160px' }, - { text: '分包项目名称', value: 'customerNo', align: 'center', width: '160px' }, - { text: '申请人', value: 'customerName', align: 'center', width: '160px' }, - { text: '分包方名称', value: 'reciever', align: 'center' }, - { text: '分包原因', value: 'deliverer', align: 'center' }, - { text: '申请时间', value: 'deliverTime', align: 'center', width: '180px' }, - { text: '审批状态', value: 'deliverTime', align: 'center', width: '180px' }, + { text: '分包项目编号', value: 'projectNo', align: 'center', width: '160px' }, + { text: '分包项目名称', value: 'projectName', align: 'center', width: '160px' }, + { text: '申请人', value: 'applicantName', align: 'center', width: '160px' }, + { text: '分包方名称', value: 'outsourcerName', align: 'center' }, + { text: '分包原因', value: 'outsourceReasonName', align: 'center' }, + { text: '申请时间', value: 'createTime', align: 'center', width: '180px' }, + { text: '审批状态', value: 'applyApprovalStatusName', align: 'center', width: '180px' }, ]) const list = ref([]) +const total = ref(0) -// 搜索 -const searchList = () => { - -} +// 时间变更 +watch(timeRange, (val) => { + if (val) { + listQuery.value.applicantStartTime = `${val[0]}` + listQuery.value.applicantEndTime = `${val[1]}` + } + else { + listQuery.value.applicantStartTime = '' + listQuery.value.applicantEndTime = '' + } +}) // 清除条件 const clearList = () => { @@ -55,15 +65,45 @@ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, } + timeRange.value = ['', ''] + fetchData() } + +// 数据查询 +function fetchData(isNowPage = false) { + loadingTable.value = true + if (!isNowPage) { + // 是否显示当前页,否则跳转第一页 + listQuery.value.offset = 1 + } + // 模拟数据 + loadingTable.value = false + getListPage(listQuery.value).then((response) => { + list.value = response.data.rows + let interfaceStr = '' + for (const key in response.data.rows[0]) { + const item = response.data.rows[0][key] + interfaceStr += `${key}:${typeof (item)}\n` + } + console.log(interfaceStr) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) +} + +// 搜索 +const searchList = () => { + fetchData(true) +} + // 新建 const add = () => { @@ -85,11 +125,11 @@ } // 详情或者编辑 -const handleEdit = (row, status) => { +const handleEdit = (row: IApplyList, status: string) => { } // 取消 -const handleCancle = (row) => { +const handleCancle = (row: IApplyList) => { } // 获取字典值 @@ -118,7 +158,7 @@ onMounted(async () => { await getDict() - if (window.sessionStorage.getItem(TabActiveButton) !== 'undefined' && window.sessionStorage.getItem(TabActiveButton) !== '' && window.sessionStorage.getItem(TabActiveButton) !== null) { + if (window.sessionStorage.getItem(TabActiveButton)) { active.value = window.sessionStorage.getItem(TabActiveButton)! } else { diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/record.ts b/src/api/business/subpackage/record.ts new file mode 100644 index 0000000..c3bbf1a --- /dev/null +++ b/src/api/business/subpackage/record.ts @@ -0,0 +1,14 @@ +/** + * 分包方档案接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/utils/scheduleDict.ts b/src/utils/scheduleDict.ts index 09e8b6d..a579f5b 100644 --- a/src/utils/scheduleDict.ts +++ b/src/utils/scheduleDict.ts @@ -21,4 +21,8 @@ DEVICE_FIX_ACCEPTANCE = 'sbglsbjxbyysd', // 设备检修保养验收单 BUSINESS_CERT_PRINT = 'ywglzsdy', // 证书打印 BUSINESS_REPORT_ON_CREDENTIALS = 'ywglzsbg', // 证书报告 + BUSINESS_SUBPACKAGE_APPLY = 'ywglfbxmsq', // 分包项目申请 + BUSINESS_SUBPACKAGE_CHECK = 'ywglfbxmys', // 分包项目验收 + BUSINESS_SUBPACKAGE_RECORD = 'ywglfbfda', // 分包方档案 + BUSINESS_SUBPACKAGE_APPROVE = 'ywglfbfzgsp', // 分包方资格资格审批 } diff --git a/src/views/business/subpackage/apply/list.vue b/src/views/business/subpackage/apply/list.vue index efe8c62..6c8c903 100644 --- a/src/views/business/subpackage/apply/list.vue +++ b/src/views/business/subpackage/apply/list.vue @@ -3,7 +3,7 @@ import type { Ref } from 'vue' import { ElLoading, ElMessage } from 'element-plus' import type { DateModelType } from 'element-plus' -import type { IListQuery } from '../subpackage-interface' +import type { IApplyList, IListQuery } from '../subpackage-interface' import { printJSON } from '@/utils/printUtils' import { exportFile } from '@/utils/exportUtils' import type { TableColumn } from '@/components/NormalTable/table_interface' @@ -11,43 +11,53 @@ import type { dictType } from '@/views/device/receive/receive' import type { IMenu } from '@/components/buttonBox/buttonBox' import ButtonBox from '@/components/buttonBox/buttonBox.vue' +import { getListPage } from '@/api/business/subpackage/apply' +import { SCHEDULE } from '@/utils/scheduleDict' const $router = useRouter() const { proxy } = getCurrentInstance() as any const TabActiveButton = 'SubpackageApplyActive' +const loadingTable = ref(false) +const timeRange = ref<[DateModelType, DateModelType]>(['', '']) +const menu = ref([]) // 审批状态按钮组合 +const active = ref('') // 查询条件 const listQuery: Ref = ref({ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, }) -const total = ref(0) -const loadingTable = ref(false) -const timeRange = ref<[DateModelType, DateModelType]>(['', '']) -const menu = ref([]) // 审批状态按钮组合 -const active = ref('') + // 表头 const columns = ref([ - { text: '分包项目编号', value: 'interchangeCode', align: 'center', width: '160px' }, - { text: '分包项目名称', value: 'customerNo', align: 'center', width: '160px' }, - { text: '申请人', value: 'customerName', align: 'center', width: '160px' }, - { text: '分包方名称', value: 'reciever', align: 'center' }, - { text: '分包原因', value: 'deliverer', align: 'center' }, - { text: '申请时间', value: 'deliverTime', align: 'center', width: '180px' }, - { text: '审批状态', value: 'deliverTime', align: 'center', width: '180px' }, + { text: '分包项目编号', value: 'projectNo', align: 'center', width: '160px' }, + { text: '分包项目名称', value: 'projectName', align: 'center', width: '160px' }, + { text: '申请人', value: 'applicantName', align: 'center', width: '160px' }, + { text: '分包方名称', value: 'outsourcerName', align: 'center' }, + { text: '分包原因', value: 'outsourceReasonName', align: 'center' }, + { text: '申请时间', value: 'createTime', align: 'center', width: '180px' }, + { text: '审批状态', value: 'applyApprovalStatusName', align: 'center', width: '180px' }, ]) const list = ref([]) +const total = ref(0) -// 搜索 -const searchList = () => { - -} +// 时间变更 +watch(timeRange, (val) => { + if (val) { + listQuery.value.applicantStartTime = `${val[0]}` + listQuery.value.applicantEndTime = `${val[1]}` + } + else { + listQuery.value.applicantStartTime = '' + listQuery.value.applicantEndTime = '' + } +}) // 清除条件 const clearList = () => { @@ -55,15 +65,45 @@ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, } + timeRange.value = ['', ''] + fetchData() } + +// 数据查询 +function fetchData(isNowPage = false) { + loadingTable.value = true + if (!isNowPage) { + // 是否显示当前页,否则跳转第一页 + listQuery.value.offset = 1 + } + // 模拟数据 + loadingTable.value = false + getListPage(listQuery.value).then((response) => { + list.value = response.data.rows + let interfaceStr = '' + for (const key in response.data.rows[0]) { + const item = response.data.rows[0][key] + interfaceStr += `${key}:${typeof (item)}\n` + } + console.log(interfaceStr) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) +} + +// 搜索 +const searchList = () => { + fetchData(true) +} + // 新建 const add = () => { @@ -85,11 +125,11 @@ } // 详情或者编辑 -const handleEdit = (row, status) => { +const handleEdit = (row: IApplyList, status: string) => { } // 取消 -const handleCancle = (row) => { +const handleCancle = (row: IApplyList) => { } // 获取字典值 @@ -118,7 +158,7 @@ onMounted(async () => { await getDict() - if (window.sessionStorage.getItem(TabActiveButton) !== 'undefined' && window.sessionStorage.getItem(TabActiveButton) !== '' && window.sessionStorage.getItem(TabActiveButton) !== null) { + if (window.sessionStorage.getItem(TabActiveButton)) { active.value = window.sessionStorage.getItem(TabActiveButton)! } else { diff --git a/src/views/business/subpackage/check/list.vue b/src/views/business/subpackage/check/list.vue index 49f9c8e..d74662a 100644 --- a/src/views/business/subpackage/check/list.vue +++ b/src/views/business/subpackage/check/list.vue @@ -1,37 +1,40 @@ - + diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/record.ts b/src/api/business/subpackage/record.ts new file mode 100644 index 0000000..c3bbf1a --- /dev/null +++ b/src/api/business/subpackage/record.ts @@ -0,0 +1,14 @@ +/** + * 分包方档案接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/utils/scheduleDict.ts b/src/utils/scheduleDict.ts index 09e8b6d..a579f5b 100644 --- a/src/utils/scheduleDict.ts +++ b/src/utils/scheduleDict.ts @@ -21,4 +21,8 @@ DEVICE_FIX_ACCEPTANCE = 'sbglsbjxbyysd', // 设备检修保养验收单 BUSINESS_CERT_PRINT = 'ywglzsdy', // 证书打印 BUSINESS_REPORT_ON_CREDENTIALS = 'ywglzsbg', // 证书报告 + BUSINESS_SUBPACKAGE_APPLY = 'ywglfbxmsq', // 分包项目申请 + BUSINESS_SUBPACKAGE_CHECK = 'ywglfbxmys', // 分包项目验收 + BUSINESS_SUBPACKAGE_RECORD = 'ywglfbfda', // 分包方档案 + BUSINESS_SUBPACKAGE_APPROVE = 'ywglfbfzgsp', // 分包方资格资格审批 } diff --git a/src/views/business/subpackage/apply/list.vue b/src/views/business/subpackage/apply/list.vue index efe8c62..6c8c903 100644 --- a/src/views/business/subpackage/apply/list.vue +++ b/src/views/business/subpackage/apply/list.vue @@ -3,7 +3,7 @@ import type { Ref } from 'vue' import { ElLoading, ElMessage } from 'element-plus' import type { DateModelType } from 'element-plus' -import type { IListQuery } from '../subpackage-interface' +import type { IApplyList, IListQuery } from '../subpackage-interface' import { printJSON } from '@/utils/printUtils' import { exportFile } from '@/utils/exportUtils' import type { TableColumn } from '@/components/NormalTable/table_interface' @@ -11,43 +11,53 @@ import type { dictType } from '@/views/device/receive/receive' import type { IMenu } from '@/components/buttonBox/buttonBox' import ButtonBox from '@/components/buttonBox/buttonBox.vue' +import { getListPage } from '@/api/business/subpackage/apply' +import { SCHEDULE } from '@/utils/scheduleDict' const $router = useRouter() const { proxy } = getCurrentInstance() as any const TabActiveButton = 'SubpackageApplyActive' +const loadingTable = ref(false) +const timeRange = ref<[DateModelType, DateModelType]>(['', '']) +const menu = ref([]) // 审批状态按钮组合 +const active = ref('') // 查询条件 const listQuery: Ref = ref({ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, }) -const total = ref(0) -const loadingTable = ref(false) -const timeRange = ref<[DateModelType, DateModelType]>(['', '']) -const menu = ref([]) // 审批状态按钮组合 -const active = ref('') + // 表头 const columns = ref([ - { text: '分包项目编号', value: 'interchangeCode', align: 'center', width: '160px' }, - { text: '分包项目名称', value: 'customerNo', align: 'center', width: '160px' }, - { text: '申请人', value: 'customerName', align: 'center', width: '160px' }, - { text: '分包方名称', value: 'reciever', align: 'center' }, - { text: '分包原因', value: 'deliverer', align: 'center' }, - { text: '申请时间', value: 'deliverTime', align: 'center', width: '180px' }, - { text: '审批状态', value: 'deliverTime', align: 'center', width: '180px' }, + { text: '分包项目编号', value: 'projectNo', align: 'center', width: '160px' }, + { text: '分包项目名称', value: 'projectName', align: 'center', width: '160px' }, + { text: '申请人', value: 'applicantName', align: 'center', width: '160px' }, + { text: '分包方名称', value: 'outsourcerName', align: 'center' }, + { text: '分包原因', value: 'outsourceReasonName', align: 'center' }, + { text: '申请时间', value: 'createTime', align: 'center', width: '180px' }, + { text: '审批状态', value: 'applyApprovalStatusName', align: 'center', width: '180px' }, ]) const list = ref([]) +const total = ref(0) -// 搜索 -const searchList = () => { - -} +// 时间变更 +watch(timeRange, (val) => { + if (val) { + listQuery.value.applicantStartTime = `${val[0]}` + listQuery.value.applicantEndTime = `${val[1]}` + } + else { + listQuery.value.applicantStartTime = '' + listQuery.value.applicantEndTime = '' + } +}) // 清除条件 const clearList = () => { @@ -55,15 +65,45 @@ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, } + timeRange.value = ['', ''] + fetchData() } + +// 数据查询 +function fetchData(isNowPage = false) { + loadingTable.value = true + if (!isNowPage) { + // 是否显示当前页,否则跳转第一页 + listQuery.value.offset = 1 + } + // 模拟数据 + loadingTable.value = false + getListPage(listQuery.value).then((response) => { + list.value = response.data.rows + let interfaceStr = '' + for (const key in response.data.rows[0]) { + const item = response.data.rows[0][key] + interfaceStr += `${key}:${typeof (item)}\n` + } + console.log(interfaceStr) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) +} + +// 搜索 +const searchList = () => { + fetchData(true) +} + // 新建 const add = () => { @@ -85,11 +125,11 @@ } // 详情或者编辑 -const handleEdit = (row, status) => { +const handleEdit = (row: IApplyList, status: string) => { } // 取消 -const handleCancle = (row) => { +const handleCancle = (row: IApplyList) => { } // 获取字典值 @@ -118,7 +158,7 @@ onMounted(async () => { await getDict() - if (window.sessionStorage.getItem(TabActiveButton) !== 'undefined' && window.sessionStorage.getItem(TabActiveButton) !== '' && window.sessionStorage.getItem(TabActiveButton) !== null) { + if (window.sessionStorage.getItem(TabActiveButton)) { active.value = window.sessionStorage.getItem(TabActiveButton)! } else { diff --git a/src/views/business/subpackage/check/list.vue b/src/views/business/subpackage/check/list.vue index 49f9c8e..d74662a 100644 --- a/src/views/business/subpackage/check/list.vue +++ b/src/views/business/subpackage/check/list.vue @@ -1,37 +1,40 @@ - + diff --git a/src/views/business/subpackage/record/list.vue b/src/views/business/subpackage/record/list.vue index 6ac2d08..e190697 100644 --- a/src/views/business/subpackage/record/list.vue +++ b/src/views/business/subpackage/record/list.vue @@ -7,10 +7,6 @@ import { printJSON } from '@/utils/printUtils' import { exportFile } from '@/utils/exportUtils' import type { TableColumn } from '@/components/NormalTable/table_interface' -import { getDictByCode } from '@/api/system/dict' -import type { dictType } from '@/views/device/receive/receive' -import type { IMenu } from '@/components/buttonBox/buttonBox' -import ButtonBox from '@/components/buttonBox/buttonBox.vue' const $router = useRouter() const { proxy } = getCurrentInstance() as any // 查询条件 @@ -26,9 +22,6 @@ }) const total = ref(0) const loadingTable = ref(false) -const timeRange = ref<[DateModelType, DateModelType]>(['', '']) -const menu = ref([]) // 审批状态按钮组合 -const active = ref('') // 表头 const columns = ref([ { text: '分包项目编号', value: 'interchangeCode', align: 'center', width: '160px' }, @@ -93,16 +86,16 @@ - + - + - + - + diff --git a/src/api/business/subpackage/apply.ts b/src/api/business/subpackage/apply.ts new file mode 100644 index 0000000..612cdc5 --- /dev/null +++ b/src/api/business/subpackage/apply.ts @@ -0,0 +1,14 @@ +/** + * 分包项目申请接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/apply/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/approval.ts b/src/api/business/subpackage/approval.ts new file mode 100644 index 0000000..541b476 --- /dev/null +++ b/src/api/business/subpackage/approval.ts @@ -0,0 +1,14 @@ +/** + * 分包方资格审批接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/check.ts b/src/api/business/subpackage/check.ts new file mode 100644 index 0000000..a80c98c --- /dev/null +++ b/src/api/business/subpackage/check.ts @@ -0,0 +1,14 @@ +/** + * 分包项目验收接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourceProject/check/approval/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/api/business/subpackage/record.ts b/src/api/business/subpackage/record.ts new file mode 100644 index 0000000..c3bbf1a --- /dev/null +++ b/src/api/business/subpackage/record.ts @@ -0,0 +1,14 @@ +/** + * 分包方档案接口 + */ +import request from '../../index' +import type { IListQuery } from '@/views/business/subpackage/subpackage-interface' + +// 列表查询 +export function getListPage(data: IListQuery) { + return request({ + url: `/business/outsourcer/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} diff --git a/src/utils/scheduleDict.ts b/src/utils/scheduleDict.ts index 09e8b6d..a579f5b 100644 --- a/src/utils/scheduleDict.ts +++ b/src/utils/scheduleDict.ts @@ -21,4 +21,8 @@ DEVICE_FIX_ACCEPTANCE = 'sbglsbjxbyysd', // 设备检修保养验收单 BUSINESS_CERT_PRINT = 'ywglzsdy', // 证书打印 BUSINESS_REPORT_ON_CREDENTIALS = 'ywglzsbg', // 证书报告 + BUSINESS_SUBPACKAGE_APPLY = 'ywglfbxmsq', // 分包项目申请 + BUSINESS_SUBPACKAGE_CHECK = 'ywglfbxmys', // 分包项目验收 + BUSINESS_SUBPACKAGE_RECORD = 'ywglfbfda', // 分包方档案 + BUSINESS_SUBPACKAGE_APPROVE = 'ywglfbfzgsp', // 分包方资格资格审批 } diff --git a/src/views/business/subpackage/apply/list.vue b/src/views/business/subpackage/apply/list.vue index efe8c62..6c8c903 100644 --- a/src/views/business/subpackage/apply/list.vue +++ b/src/views/business/subpackage/apply/list.vue @@ -3,7 +3,7 @@ import type { Ref } from 'vue' import { ElLoading, ElMessage } from 'element-plus' import type { DateModelType } from 'element-plus' -import type { IListQuery } from '../subpackage-interface' +import type { IApplyList, IListQuery } from '../subpackage-interface' import { printJSON } from '@/utils/printUtils' import { exportFile } from '@/utils/exportUtils' import type { TableColumn } from '@/components/NormalTable/table_interface' @@ -11,43 +11,53 @@ import type { dictType } from '@/views/device/receive/receive' import type { IMenu } from '@/components/buttonBox/buttonBox' import ButtonBox from '@/components/buttonBox/buttonBox.vue' +import { getListPage } from '@/api/business/subpackage/apply' +import { SCHEDULE } from '@/utils/scheduleDict' const $router = useRouter() const { proxy } = getCurrentInstance() as any const TabActiveButton = 'SubpackageApplyActive' +const loadingTable = ref(false) +const timeRange = ref<[DateModelType, DateModelType]>(['', '']) +const menu = ref([]) // 审批状态按钮组合 +const active = ref('') // 查询条件 const listQuery: Ref = ref({ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, }) -const total = ref(0) -const loadingTable = ref(false) -const timeRange = ref<[DateModelType, DateModelType]>(['', '']) -const menu = ref([]) // 审批状态按钮组合 -const active = ref('') + // 表头 const columns = ref([ - { text: '分包项目编号', value: 'interchangeCode', align: 'center', width: '160px' }, - { text: '分包项目名称', value: 'customerNo', align: 'center', width: '160px' }, - { text: '申请人', value: 'customerName', align: 'center', width: '160px' }, - { text: '分包方名称', value: 'reciever', align: 'center' }, - { text: '分包原因', value: 'deliverer', align: 'center' }, - { text: '申请时间', value: 'deliverTime', align: 'center', width: '180px' }, - { text: '审批状态', value: 'deliverTime', align: 'center', width: '180px' }, + { text: '分包项目编号', value: 'projectNo', align: 'center', width: '160px' }, + { text: '分包项目名称', value: 'projectName', align: 'center', width: '160px' }, + { text: '申请人', value: 'applicantName', align: 'center', width: '160px' }, + { text: '分包方名称', value: 'outsourcerName', align: 'center' }, + { text: '分包原因', value: 'outsourceReasonName', align: 'center' }, + { text: '申请时间', value: 'createTime', align: 'center', width: '180px' }, + { text: '审批状态', value: 'applyApprovalStatusName', align: 'center', width: '180px' }, ]) const list = ref([]) +const total = ref(0) -// 搜索 -const searchList = () => { - -} +// 时间变更 +watch(timeRange, (val) => { + if (val) { + listQuery.value.applicantStartTime = `${val[0]}` + listQuery.value.applicantEndTime = `${val[1]}` + } + else { + listQuery.value.applicantStartTime = '' + listQuery.value.applicantEndTime = '' + } +}) // 清除条件 const clearList = () => { @@ -55,15 +65,45 @@ applicantEndTime: '', // 开始时间 applicantName: '', // 申请人名称 applicantStartTime: '', // 结束时间 - approvalStatus: '', // 申请状态 - formId: '', // 表单id + approvalStatus: active.value, // 申请状态 + formId: SCHEDULE.BUSINESS_SUBPACKAGE_APPLY, // 表单id outsourcerName: '', // 分包方名称 projectName: '', // 分包项目名称 projectNo: '', // 分包项目编号 offset: 1, limit: 20, } + timeRange.value = ['', ''] + fetchData() } + +// 数据查询 +function fetchData(isNowPage = false) { + loadingTable.value = true + if (!isNowPage) { + // 是否显示当前页,否则跳转第一页 + listQuery.value.offset = 1 + } + // 模拟数据 + loadingTable.value = false + getListPage(listQuery.value).then((response) => { + list.value = response.data.rows + let interfaceStr = '' + for (const key in response.data.rows[0]) { + const item = response.data.rows[0][key] + interfaceStr += `${key}:${typeof (item)}\n` + } + console.log(interfaceStr) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) +} + +// 搜索 +const searchList = () => { + fetchData(true) +} + // 新建 const add = () => { @@ -85,11 +125,11 @@ } // 详情或者编辑 -const handleEdit = (row, status) => { +const handleEdit = (row: IApplyList, status: string) => { } // 取消 -const handleCancle = (row) => { +const handleCancle = (row: IApplyList) => { } // 获取字典值 @@ -118,7 +158,7 @@ onMounted(async () => { await getDict() - if (window.sessionStorage.getItem(TabActiveButton) !== 'undefined' && window.sessionStorage.getItem(TabActiveButton) !== '' && window.sessionStorage.getItem(TabActiveButton) !== null) { + if (window.sessionStorage.getItem(TabActiveButton)) { active.value = window.sessionStorage.getItem(TabActiveButton)! } else { diff --git a/src/views/business/subpackage/check/list.vue b/src/views/business/subpackage/check/list.vue index 49f9c8e..d74662a 100644 --- a/src/views/business/subpackage/check/list.vue +++ b/src/views/business/subpackage/check/list.vue @@ -1,37 +1,40 @@ - + diff --git a/src/views/business/subpackage/record/list.vue b/src/views/business/subpackage/record/list.vue index 6ac2d08..e190697 100644 --- a/src/views/business/subpackage/record/list.vue +++ b/src/views/business/subpackage/record/list.vue @@ -7,10 +7,6 @@ import { printJSON } from '@/utils/printUtils' import { exportFile } from '@/utils/exportUtils' import type { TableColumn } from '@/components/NormalTable/table_interface' -import { getDictByCode } from '@/api/system/dict' -import type { dictType } from '@/views/device/receive/receive' -import type { IMenu } from '@/components/buttonBox/buttonBox' -import ButtonBox from '@/components/buttonBox/buttonBox.vue' const $router = useRouter() const { proxy } = getCurrentInstance() as any // 查询条件 @@ -26,9 +22,6 @@ }) const total = ref(0) const loadingTable = ref(false) -const timeRange = ref<[DateModelType, DateModelType]>(['', '']) -const menu = ref([]) // 审批状态按钮组合 -const active = ref('') // 表头 const columns = ref([ { text: '分包项目编号', value: 'interchangeCode', align: 'center', width: '160px' }, @@ -93,16 +86,16 @@ - + - + - + - + diff --git a/src/views/business/subpackage/subpackage-interface.ts b/src/views/business/subpackage/subpackage-interface.ts index 13daf09..763f9dc 100644 --- a/src/views/business/subpackage/subpackage-interface.ts +++ b/src/views/business/subpackage/subpackage-interface.ts @@ -12,6 +12,28 @@ limit: number } +// 申请列表row参数 +export interface IApplyList { + applicantName: string // 申请人名字 + applyApprovalStatus: string // 分包项目申请审批状态类型-字典code + applyApprovalStatusName: string // 分包项目申请审批状态类型-字典value + applyProcessId: string // 分包项目申请流程实例id + checkApprovalStatus: string // 分包项目验收审批状态类型-字典code + checkApprovalStatusName: string // 分包项目验收审批状态类型-字典value + checkProcessId: string // 分包项目验收流程实例id + checkTime: string // 验收时间 + checkerName: string // 验收人名字 + createTime: string // 创建时间 + decisionItem: string | number // 可选决策项(1同意驳回拒绝 2同意驳回 3同意拒绝,用于待审批列表同意/驳回/拒绝按钮展示) + id: string | number // 主键id + outsourceReason: string // 分包原因-字典code + outsourceReasonName: string // 分包原因-字典value + outsourcerName: string // 分包方名称 + projectName: string // 分包项目名称 + projectNo: string // 分包项目编号 + taskId: string // 任务id(同意、驳回等操作使用) +} +// 分包方审批查询参数 export interface IListQueryApprove { projectName: string // 分包项目名称 projectNo: string // 分包项目编号