pull/480/head
liting 2024-06-13 19:40:04 +08:00
parent 8ac3f8280f
commit 286cc500a0
4 changed files with 431 additions and 257 deletions

View File

@ -1,103 +1,121 @@
import request from '@/config/axios'
// 验收 VO
export interface MainVO {
id: number // 主键Id
contractId: number // 合同Id
projectCode: string // 任务书编号
projectName: string // 任务书名称
projectLeader: string // 项目负责人
projectLeaderId: number // 项目负责人ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: number // 承担单位ID
beginDate: Date // 开始时间
endDate: Date // 结束时间
accYear: string // 验收年度
accDate: Date // 验收时间
competentDeptId: number // 主管部门ID
competentDeptName: string // 主管部门
managerId: number // 主管工程师ID
managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: number // 维护单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: number // 审核单位ID
accMode: string // 验收形式
accResult: string // 验收结果
state: string // 状态
}
// 验收 API
export const MainApi = {
// 查询验收分页
getMainPage: async (params: any) => {
return await request.get({ url: `/acceptance/main/page`, params })
},
// 查询验收详情
getMain: async (id: number) => {
return await request.get({ url: `/acceptance/main/get?id=` + id })
},
// 新增验收
createMain: async (data: MainVO) => {
return await request.post({ url: `/acceptance/main/create`, data })
},
// 修改验收
updateMain: async (data: MainVO) => {
return await request.put({ url: `/acceptance/main/update`, data })
},
// 删除验收
deleteMain: async (id: number) => {
return await request.delete({ url: `/acceptance/main/delete?id=` + id })
},
// 导出验收 Excel
exportMain: async (params) => {
return await request.download({ url: `/acceptance/main/export-excel`, params })
},
// ==================== 子表(验收详细) ====================
// 获得验收详细
getInfoByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收项目目标) ====================
// 获得验收项目目标列表
getTargetListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/target/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收考核指标) ====================
// 获得验收考核指标列表
getCheckListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/check/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收项目论文成果) ====================
// 获得验收项目论文成果列表
getPublicationsListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/publications/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收其他成果) ====================
// 获得验收其他成果列表
getAchieListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/achie/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收经费-新) ====================
// 获得验收经费-新列表
getFundsListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/funds/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
}
import request from '@/config/axios'
// 验收 VO
export interface MainVO {
id: number // 主键Id
contractId: number // 合同Id
projectCode: string // 任务书编号
projectName: string // 任务书名称
projectLeader: string // 项目负责人
projectLeaderId: number // 项目负责人ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: number // 承担单位ID
beginDate: Date // 开始时间
endDate: Date // 结束时间
accYear: string // 验收年度
accDate: Date // 验收时间
competentDeptId: number // 主管部门ID
competentDeptName: string // 主管部门
managerId: number // 主管工程师ID
managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: number // 维护单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: number // 审核单位ID
accMode: string // 验收形式
accResult: string // 验收结果
state: string // 状态
}
// 验收 API
export const MainApi = {
// 查询验收分页
getMainPage: async (params: any) => {
return await request.get({ url: `/acceptance/main/page`, params })
},
// 查询验收详情
getMain: async (id: number) => {
return await request.get({ url: `/acceptance/main/get?id=` + id })
},
// 新增验收
createMain: async (data: MainVO) => {
return await request.post({ url: `/acceptance/main/create`, data })
},
// 修改验收
updateMain: async (data: MainVO) => {
return await request.put({ url: `/acceptance/main/update`, data })
},
// 删除验收
deleteMain: async (id: number) => {
return await request.delete({ url: `/acceptance/main/delete?id=` + id })
},
// 导出验收 Excel
exportMain: async (params) => {
return await request.download({ url: `/acceptance/main/export-excel`, params })
},
// 导入立项
getListPage: async (params) => {
return await request.get({ url: `/acceptance/main/contractPage`, params })
},
generateAcceptance: async (params: any) => {
return await request.post({ url: `/acceptance/main/generateAcceptance`, params })
},
//审核
auditAcceptance: async (data: MainVO) => {
return await request.post({ url: `/acceptance/main/auditAcceptance`, data })
},
//提报
presentingAcceptance: async (params: any) => {
return await request.post({ url: `/acceptance/main/presentingAcceptance`, params })
},
getAuditList: async (params) => {
return await request.get({ url: `/contract/main/getAuditList`, params })
},
// ==================== 子表(验收详细) ====================
// 获得验收详细
getInfoByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收项目目标) ====================
// 获得验收项目目标列表
getTargetListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/target/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收考核指标) ====================
// 获得验收考核指标列表
getCheckListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/check/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收项目论文成果) ====================
// 获得验收项目论文成果列表
getPublicationsListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/publications/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收其他成果) ====================
// 获得验收其他成果列表
getAchieListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/achie/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
// ==================== 子表(验收经费-新) ====================
// 获得验收经费-新列表
getFundsListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/funds/list-by-acceptance-id?acceptanceId=` + acceptanceId })
},
}

View File

@ -1,103 +1,109 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="合同Id" prop="contractId">
<el-input v-model="formData.contractId" placeholder="请输入合同Id" />
</el-form-item>
<el-form-item label="任务书编号" prop="projectCode">
<el-input v-model="formData.projectCode" placeholder="请输入任务书编号" />
</el-form-item>
<el-form-item label="任务书名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入任务书名称" />
</el-form-item>
<el-form-item label="项目负责人" prop="projectLeader">
<el-input v-model="formData.projectLeader" placeholder="请输入项目负责人" />
</el-form-item>
<el-form-item label="项目负责人ID" prop="projectLeaderId">
<el-input v-model="formData.projectLeaderId" placeholder="请输入项目负责人ID" />
</el-form-item>
<el-form-item label="承担单位名称" prop="undertakingUnitName">
<el-input v-model="formData.undertakingUnitName" placeholder="请输入承担单位名称" />
</el-form-item>
<el-form-item label="承担单位ID" prop="undertakingUnitId">
<el-input v-model="formData.undertakingUnitId" placeholder="请输入承担单位ID" />
</el-form-item>
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker
v-model="formData.beginDate"
type="date"
value-format="x"
placeholder="选择开始时间"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endDate">
<el-date-picker
v-model="formData.endDate"
type="date"
value-format="x"
placeholder="选择结束时间"
/>
</el-form-item>
<el-form-item label="验收年度" prop="accYear">
<el-input v-model="formData.accYear" placeholder="请输入验收年度" />
</el-form-item>
<el-form-item label="验收时间" prop="accDate">
<el-date-picker
v-model="formData.accDate"
type="date"
value-format="x"
placeholder="选择验收时间"
/>
</el-form-item>
<el-form-item label="主管部门ID" prop="competentDeptId">
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
</el-form-item>
<el-form-item label="主管部门" prop="competentDeptName">
<el-input v-model="formData.competentDeptName" placeholder="请输入主管部门" />
</el-form-item>
<el-form-item label="主管工程师ID" prop="managerId">
<el-input v-model="formData.managerId" placeholder="请输入主管工程师ID" />
</el-form-item>
<el-form-item label="主管工程师" prop="managerName">
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
</el-form-item>
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
<el-input v-model="formData.maintenanceUnitName" placeholder="请输入维护单位名称" />
</el-form-item>
<el-form-item label="维护单位ID" prop="maintenanceUnitId">
<el-input v-model="formData.maintenanceUnitId" placeholder="请输入维护单位ID" />
</el-form-item>
<el-form-item label="审核单位名称" prop="reviewUnitName">
<el-input v-model="formData.reviewUnitName" placeholder="请输入审核单位名称" />
</el-form-item>
<el-form-item label="审核单位ID" prop="reviewUnitId">
<el-input v-model="formData.reviewUnitId" placeholder="请输入审核单位ID" />
</el-form-item>
<el-form-item label="验收形式" prop="accMode">
<el-select v-model="formData.accMode" placeholder="请选择验收形式">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.ACC_MODE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="验收结果" prop="accResult">
<el-input v-model="formData.accResult" placeholder="请输入验收结果" />
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input v-model="formData.state" placeholder="请输入状态" />
</el-form-item>
</el-form>
<!-- 子表的表单 -->
<el-tabs v-model="subTabsName">
<el-tab-pane label="验收详细" name="basic">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
<!-- <el-form-item label="合同Id" prop="contractId">
<el-input v-model="formData.contractId" placeholder="请输入合同Id" />
</el-form-item> -->
<el-row>
<el-col :span="12">
<el-form-item label="任务书编号" prop="projectCode">
<el-input v-model="formData.projectCode" placeholder="请输入任务书编号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任务书名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入任务书名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目负责人" prop="projectLeader">
<el-input v-model="formData.projectLeader" placeholder="请输入项目负责人" />
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-form-item label="项目负责人ID" prop="projectLeaderId">
<el-input v-model="formData.projectLeaderId" placeholder="请输入项目负责人ID" />
</el-form-item> -->
<el-form-item label="承担单位名称" prop="undertakingUnitName">
<el-input v-model="formData.undertakingUnitName" placeholder="请输入承担单位名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-form-item label="承担单位ID" prop="undertakingUnitId">
<el-input v-model="formData.undertakingUnitId" placeholder="请输入承担单位ID" />
</el-form-item> -->
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker v-model="formData.beginDate" type="date" value-format="x" placeholder="选择开始时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束时间" prop="endDate">
<el-date-picker v-model="formData.endDate" type="date" value-format="x" placeholder="选择结束时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="验收年度" prop="accYear">
<el-input v-model="formData.accYear" placeholder="请输入验收年度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="验收时间" prop="accDate">
<el-date-picker v-model="formData.accDate" type="date" value-format="x" placeholder="选择验收时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-form-item label="主管部门ID" prop="competentDeptId">
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
</el-form-item> -->
<el-form-item label="主管部门" prop="competentDeptName">
<el-input v-model="formData.competentDeptName" placeholder="请输入主管部门" />
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-form-item label="主管工程师ID" prop="managerId">
<el-input v-model="formData.managerId" placeholder="请输入主管工程师ID" />
</el-form-item> -->
<el-form-item label="主管工程师" prop="managerName">
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
<el-input v-model="formData.maintenanceUnitName" placeholder="请输入维护单位名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核单位名称" prop="reviewUnitName">
<el-input v-model="formData.reviewUnitName" placeholder="请输入审核单位名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="验收形式" prop="accMode">
<el-select v-model="formData.accMode" placeholder="请选择验收形式">
<el-option v-for="dict in getStrDictOptions(DICT_TYPE.ACC_MODE)" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="验收结果" prop="accResult">
<el-input v-model="formData.accResult" placeholder="请输入验收结果" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态" prop="state">
<el-input v-model="formData.state" placeholder="请输入状态" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="验收详细" name="info">
<InfoForm ref="infoFormRef" :acceptance-id="formData.id" />
</el-tab-pane>
@ -132,7 +138,9 @@ import CheckForm from './components/CheckForm.vue'
import PublicationsForm from './components/PublicationsForm.vue'
import AchieForm from './components/AchieForm.vue'
import FundsForm from './components/FundsForm.vue'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
const { wsCache } = useCache()
const user = wsCache.get(CACHE_KEY.USER).user
/** 验收 表单 */
defineOptions({ name: 'MainForm' })
@ -148,8 +156,8 @@ const formData = ref({
contractId: undefined,
projectCode: undefined,
projectName: undefined,
projectLeader: undefined,
projectLeaderId: undefined,
projectLeader: user.nickname,
projectLeaderId: user.id,
undertakingUnitName: undefined,
undertakingUnitId: undefined,
beginDate: undefined,
@ -173,7 +181,7 @@ const formRules = reactive({
const formRef = ref() // Ref
/** 子表的表单 */
const subTabsName = ref('info')
const subTabsName = ref('basic')
const infoFormRef = ref()
const targetFormRef = ref()
const checkFormRef = ref()
@ -274,8 +282,8 @@ const resetForm = () => {
contractId: undefined,
projectCode: undefined,
projectName: undefined,
projectLeader: undefined,
projectLeaderId: undefined,
projectLeader: user.nickname,
projectLeaderId: user.id,
undertakingUnitName: undefined,
undertakingUnitId: undefined,
beginDate: undefined,

View File

@ -6,9 +6,9 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="100px"
>
<el-form-item label="合同Id" prop="contractId">
<!-- <el-form-item label="合同Id" prop="contractId">
<el-input
v-model="queryParams.contractId"
placeholder="请输入合同Id"
@ -16,7 +16,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="任务书编号" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
@ -44,7 +44,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="项目负责人ID" prop="projectLeaderId">
<!-- <el-form-item label="项目负责人ID" prop="projectLeaderId">
<el-input
v-model="queryParams.projectLeaderId"
placeholder="请输入项目负责人ID"
@ -52,7 +52,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="承担单位名称" prop="undertakingUnitName">
<el-input
v-model="queryParams.undertakingUnitName"
@ -62,7 +62,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="承担单位ID" prop="undertakingUnitId">
<!-- <el-form-item label="承担单位ID" prop="undertakingUnitId">
<el-input
v-model="queryParams.undertakingUnitId"
placeholder="请输入承担单位ID"
@ -70,7 +70,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker
v-model="queryParams.beginDate"
@ -113,7 +113,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管部门ID" prop="competentDeptId">
<!-- <el-form-item label="主管部门ID" prop="competentDeptId">
<el-input
v-model="queryParams.competentDeptId"
placeholder="请输入主管部门ID"
@ -121,7 +121,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="主管部门" prop="competentDeptName">
<el-input
v-model="queryParams.competentDeptName"
@ -131,7 +131,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管工程师ID" prop="managerId">
<!-- <el-form-item label="主管工程师ID" prop="managerId">
<el-input
v-model="queryParams.managerId"
placeholder="请输入主管工程师ID"
@ -139,7 +139,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="主管工程师" prop="managerName">
<el-input
v-model="queryParams.managerName"
@ -158,7 +158,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="维护单位ID" prop="maintenanceUnitId">
<!-- <el-form-item label="维护单位ID" prop="maintenanceUnitId">
<el-input
v-model="queryParams.maintenanceUnitId"
placeholder="请输入维护单位ID"
@ -166,7 +166,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="审核单位名称" prop="reviewUnitName">
<el-input
v-model="queryParams.reviewUnitName"
@ -176,7 +176,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="审核单位ID" prop="reviewUnitId">
<!-- <el-form-item label="审核单位ID" prop="reviewUnitId">
<el-input
v-model="queryParams.reviewUnitId"
placeholder="请输入审核单位ID"
@ -184,7 +184,7 @@
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="验收形式" prop="accMode">
<el-select
v-model="queryParams.accMode"
@ -221,6 +221,9 @@
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button type="primary" plain @click="handleInsert">
<Icon icon="ep:upload" class="mr-5px" /> 导入立项
</el-button>
<el-button
type="primary"
plain
@ -245,14 +248,14 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="主键Id" align="center" prop="id" />
<el-table-column label="合同Id" align="center" prop="contractId" />
<!-- <el-table-column label="主键Id" align="center" prop="id" />
<el-table-column label="合同Id" align="center" prop="contractId" /> -->
<el-table-column label="任务书编号" align="center" prop="projectCode" />
<el-table-column label="任务书名称" align="center" prop="projectName" />
<el-table-column label="项目负责人" align="center" prop="projectLeader" />
<el-table-column label="项目负责人ID" align="center" prop="projectLeaderId" />
<!-- <el-table-column label="项目负责人ID" align="center" prop="projectLeaderId" /> -->
<el-table-column label="承担单位名称" align="center" prop="undertakingUnitName" />
<el-table-column label="承担单位ID" align="center" prop="undertakingUnitId" />
<!-- <el-table-column label="承担单位ID" align="center" prop="undertakingUnitId" /> -->
<el-table-column
label="开始时间"
align="center"
@ -275,14 +278,14 @@
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="主管部门ID" align="center" prop="competentDeptId" />
<!-- <el-table-column label="主管部门ID" align="center" prop="competentDeptId" /> -->
<el-table-column label="主管部门" align="center" prop="competentDeptName" />
<el-table-column label="主管工程师ID" align="center" prop="managerId" />
<!-- <el-table-column label="主管工程师ID" align="center" prop="managerId" /> -->
<el-table-column label="主管工程师" align="center" prop="managerName" />
<el-table-column label="维护单位名称" align="center" prop="maintenanceUnitName" />
<el-table-column label="维护单位ID" align="center" prop="maintenanceUnitId" />
<!-- <el-table-column label="维护单位ID" align="center" prop="maintenanceUnitId" /> -->
<el-table-column label="审核单位名称" align="center" prop="reviewUnitName" />
<el-table-column label="审核单位ID" align="center" prop="reviewUnitId" />
<!-- <el-table-column label="审核单位ID" align="center" prop="reviewUnitId" /> -->
<el-table-column label="验收形式" align="center" prop="accMode">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ACC_MODE" :value="scope.row.accMode" />
@ -292,21 +295,23 @@
<el-table-column label="状态" align="center" prop="state" />
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['acceptance:main:update']"
>
编辑
<template v-if="scope.row.state == '1'">
<el-button link type="primary" @click="openForm('update', scope.row.id)"
v-hasPermi="['contract:main:update']">
编辑
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['contract:main:delete']">
删除
</el-button>
<el-button link type="primary" @click="handlePresenting(scope.row.id)">
提报
</el-button>
</template>
<el-button link type="primary" @click="handleauditContract(scope.row.id)" v-if="scope.row.state == '2'">
审核
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['acceptance:main:delete']"
>
删除
<el-button link type="primary" @click="handleRecord(scope.row.id)" v-if="scope.row.state == '2'">
审核记录
</el-button>
</template>
</el-table-column>
@ -319,7 +324,70 @@
@pagination="getList"
/>
</ContentWrap>
<!-- 导入立项 -->
<Dialog title="导入立项" v-model="dialogVisible">
<ContentWrap>
<el-table v-loading="loading1" :data="list1" :stripe="true" :show-overflow-tooltip="true" highlight-current-row>
<el-table-column align="center" width="65">
<template #default="scope">
<el-checkbox :label="scope.row.id" v-model="currentRowValue" @change="handleCurrentChange(scope.row)">
&nbsp;
</el-checkbox>
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column label="项目负责人" align="center" prop="projectLeader" />
<el-table-column label="所属技术领域" align="center" prop="technicalField" />
<el-table-column label="年度" align="center" prop="year" />
</el-table>
<Pagination :total="total1" v-model:page="queryParams1.pageNo" v-model:limit="queryParams1.pageSize"
@pagination="getList1" />
</ContentWrap>
<template #footer>
<el-button :disabled="!currentRow" type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
<Dialog title="审核" v-model="dialogVisible1">
<ContentWrap>
<el-form label-width="80px" :model="formData" class="m-t-8px" :rules="formRules">
<el-form-item label="" prop="status">
<el-radio-group v-model="formData.status">
<el-radio label="1">审核通过</el-radio>
<el-radio label="0">审核不通过</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="审核意见" prop="comment" v-if="formData.status == '0'">
<el-input type="textarea" v-model="formData.comment" resize="vertical" :autosize="{ minRows: 2, maxRows: 4 }" />
</el-form-item>
</el-form>
</ContentWrap>
<template #footer>
<el-button type="primary" @click="submitForm1"> </el-button>
<el-button @click="dialogVisible1 = false"> </el-button>
</template>
</Dialog>
<Dialog title="审核记录" v-model="dialogVisible2">
<ContentWrap>
<el-timeline>
<el-timeline-item :timestamp="formatDate(log.createTime)" placement="top" v-for="(log, index) in logList"
:key="index">
<el-card>
<div>{{ log.creatorName }}</div>
<p>{{ log.comment }}</p>
<el-tag class="mr-10px" type="danger" v-if="log.status == '0'"></el-tag>
<el-tag class="mr-10px" type="success" v-if="log.status == '1'"></el-tag>
</el-card>
</el-timeline-item>
</el-timeline>
<div v-if="logList.length == 0"> </div>
</ContentWrap>
</Dialog>
<!-- 表单弹窗添加/修改 -->
<MainForm ref="formRef" @success="getList" />
</template>
@ -330,16 +398,22 @@ import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { MainApi, MainVO } from '@/api/acceptance/acceptance'
import MainForm from './MainForm.vue'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { formatDate } from '@/utils/formatTime'
/** 验收 列表 */
defineOptions({ name: 'AcceptanceMain' })
const dialogVisible = ref(false) //
const dialogVisible1 = ref(false) //
const dialogVisible2 = ref(false) //
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const loading1 = ref(true) //
const list = ref<MainVO[]>([]) //
const logList = ref([]) //
const list1 = ref<MainVO[]>([]) //
const total = ref(0) //
const total1 = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
@ -380,7 +454,9 @@ const getList = async () => {
loading.value = false
}
}
const formRules = reactive({
comment: [{ required: true, message: '审核意见不能为空', trigger: 'blur' }],
})
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
@ -398,7 +474,31 @@ const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
//
const handleInsert = async () => {
currentRowValue.value = undefined
dialogVisible.value = true
getList1()
}
const queryParams1 = reactive({
pageNo: 1,
pageSize: 10,
projectName: undefined,
projectLeader: undefined,
projectCode: undefined,
technicalField: undefined,
year: undefined,
})
const { wsCache } = useCache()
const user = wsCache.get(CACHE_KEY.USER).user
const formData = ref({
itemId: undefined,
moduleId: "5",
creatorName: user.nickname,
status: '1',
comment: '',
})
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
@ -411,7 +511,66 @@ const handleDelete = async (id: number) => {
await getList()
} catch {}
}
const handlePresenting = async (id: number) => {
try {
var par = { id: id }
await MainApi.presentingAcceptance(par)
await getList()
} catch { }
}
//
const handleauditContract = async (id: number) => {
formData.value.itemId = id;
dialogVisible1.value = true
}
const handleRecord = async (id: number) => {
dialogVisible2.value = true
try {
const data = await MainApi.getAuditList({ id: id })
logList.value = data
} finally {
loading.value = false
}
}
const getList1 = async () => {
loading1.value = true
try {
const data = await MainApi.getListPage(queryParams1)
list1.value = data.list
total1.value = data.total
} finally {
loading1.value = false
}
}
/** 选中行 */
const currentRowValue = ref(undefined) // value
const currentRow = ref(undefined) //
const handleCurrentChange = (row) => {
currentRow.value = row.id
}
const submitForm = async () => {
try {
await MainApi.generateAcceptance({ id: currentRow.value })
message.success("提报成功")
} finally {
//
currentRow.value = undefined
currentRowValue.value = undefined
dialogVisible.value = false
}
}
const submitForm1 = async () => {
try {
await MainApi.auditAcceptance(formData.value as unknown as MainVO)
message.success("审核成功")
} finally {
//
currentRow.value = undefined
currentRowValue.value = undefined
dialogVisible.value = false
}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {

View File

@ -200,17 +200,6 @@ const queryParams = reactive({
technicalField: undefined,
year: undefined,
})
/** 获得 userType 颜色 */
const getUserTypeColor = (type: any) => {
switch (type) {
case '1':
return '#67C23A'
case '0':
return '#E6A23C'
}
return '#409EFF'
}
const queryParams1 = reactive({
pageNo: 1,
pageSize: 10,