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' import request from '@/config/axios'
// 验收 VO // 验收 VO
export interface MainVO { export interface MainVO {
id: number // 主键Id id: number // 主键Id
contractId: number // 合同Id contractId: number // 合同Id
projectCode: string // 任务书编号 projectCode: string // 任务书编号
projectName: string // 任务书名称 projectName: string // 任务书名称
projectLeader: string // 项目负责人 projectLeader: string // 项目负责人
projectLeaderId: number // 项目负责人ID projectLeaderId: number // 项目负责人ID
undertakingUnitName: string // 承担单位名称 undertakingUnitName: string // 承担单位名称
undertakingUnitId: number // 承担单位ID undertakingUnitId: number // 承担单位ID
beginDate: Date // 开始时间 beginDate: Date // 开始时间
endDate: Date // 结束时间 endDate: Date // 结束时间
accYear: string // 验收年度 accYear: string // 验收年度
accDate: Date // 验收时间 accDate: Date // 验收时间
competentDeptId: number // 主管部门ID competentDeptId: number // 主管部门ID
competentDeptName: string // 主管部门 competentDeptName: string // 主管部门
managerId: number // 主管工程师ID managerId: number // 主管工程师ID
managerName: string // 主管工程师 managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称 maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: number // 维护单位ID maintenanceUnitId: number // 维护单位ID
reviewUnitName: string // 审核单位名称 reviewUnitName: string // 审核单位名称
reviewUnitId: number // 审核单位ID reviewUnitId: number // 审核单位ID
accMode: string // 验收形式 accMode: string // 验收形式
accResult: string // 验收结果 accResult: string // 验收结果
state: string // 状态 state: string // 状态
} }
// 验收 API // 验收 API
export const MainApi = { export const MainApi = {
// 查询验收分页 // 查询验收分页
getMainPage: async (params: any) => { getMainPage: async (params: any) => {
return await request.get({ url: `/acceptance/main/page`, params }) return await request.get({ url: `/acceptance/main/page`, params })
}, },
// 查询验收详情 // 查询验收详情
getMain: async (id: number) => { getMain: async (id: number) => {
return await request.get({ url: `/acceptance/main/get?id=` + id }) return await request.get({ url: `/acceptance/main/get?id=` + id })
}, },
// 新增验收 // 新增验收
createMain: async (data: MainVO) => { createMain: async (data: MainVO) => {
return await request.post({ url: `/acceptance/main/create`, data }) return await request.post({ url: `/acceptance/main/create`, data })
}, },
// 修改验收 // 修改验收
updateMain: async (data: MainVO) => { updateMain: async (data: MainVO) => {
return await request.put({ url: `/acceptance/main/update`, data }) return await request.put({ url: `/acceptance/main/update`, data })
}, },
// 删除验收 // 删除验收
deleteMain: async (id: number) => { deleteMain: async (id: number) => {
return await request.delete({ url: `/acceptance/main/delete?id=` + id }) return await request.delete({ url: `/acceptance/main/delete?id=` + id })
}, },
// 导出验收 Excel // 导出验收 Excel
exportMain: async (params) => { exportMain: async (params) => {
return await request.download({ url: `/acceptance/main/export-excel`, params }) return await request.download({ url: `/acceptance/main/export-excel`, params })
}, },
// 导入立项
// ==================== 子表(验收详细) ==================== getListPage: async (params) => {
return await request.get({ url: `/acceptance/main/contractPage`, params })
// 获得验收详细 },
getInfoByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId }) 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 })
getTargetListByAcceptanceId: async (acceptanceId) => { },
return await request.get({ url: `/acceptance/main/target/list-by-acceptance-id?acceptanceId=` + acceptanceId }) //提报
}, 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 })
getCheckListByAcceptanceId: async (acceptanceId) => { },
return await request.get({ url: `/acceptance/main/check/list-by-acceptance-id?acceptanceId=` + acceptanceId }) // ==================== 子表(验收详细) ====================
},
// 获得验收详细
// ==================== 子表(验收项目论文成果) ==================== getInfoByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId })
// 获得验收项目论文成果列表 },
getPublicationsListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/publications/list-by-acceptance-id?acceptanceId=` + acceptanceId }) // ==================== 子表(验收项目目标) ====================
},
// 获得验收项目目标列表
// ==================== 子表(验收其他成果) ==================== getTargetListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/target/list-by-acceptance-id?acceptanceId=` + acceptanceId })
// 获得验收其他成果列表 },
getAchieListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/achie/list-by-acceptance-id?acceptanceId=` + acceptanceId }) // ==================== 子表(验收考核指标) ====================
},
// 获得验收考核指标列表
// ==================== 子表(验收经费-新) ==================== getCheckListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/check/list-by-acceptance-id?acceptanceId=` + acceptanceId })
// 获得验收经费-新列表 },
getFundsListByAcceptanceId: async (acceptanceId) => {
return await request.get({ url: `/acceptance/main/funds/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> <template>
<Dialog :title="dialogTitle" v-model="dialogVisible"> <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-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"> <el-tab-pane label="验收详细" name="info">
<InfoForm ref="infoFormRef" :acceptance-id="formData.id" /> <InfoForm ref="infoFormRef" :acceptance-id="formData.id" />
</el-tab-pane> </el-tab-pane>
@ -132,7 +138,9 @@ import CheckForm from './components/CheckForm.vue'
import PublicationsForm from './components/PublicationsForm.vue' import PublicationsForm from './components/PublicationsForm.vue'
import AchieForm from './components/AchieForm.vue' import AchieForm from './components/AchieForm.vue'
import FundsForm from './components/FundsForm.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' }) defineOptions({ name: 'MainForm' })
@ -148,8 +156,8 @@ const formData = ref({
contractId: undefined, contractId: undefined,
projectCode: undefined, projectCode: undefined,
projectName: undefined, projectName: undefined,
projectLeader: undefined, projectLeader: user.nickname,
projectLeaderId: undefined, projectLeaderId: user.id,
undertakingUnitName: undefined, undertakingUnitName: undefined,
undertakingUnitId: undefined, undertakingUnitId: undefined,
beginDate: undefined, beginDate: undefined,
@ -173,7 +181,7 @@ const formRules = reactive({
const formRef = ref() // Ref const formRef = ref() // Ref
/** 子表的表单 */ /** 子表的表单 */
const subTabsName = ref('info') const subTabsName = ref('basic')
const infoFormRef = ref() const infoFormRef = ref()
const targetFormRef = ref() const targetFormRef = ref()
const checkFormRef = ref() const checkFormRef = ref()
@ -274,8 +282,8 @@ const resetForm = () => {
contractId: undefined, contractId: undefined,
projectCode: undefined, projectCode: undefined,
projectName: undefined, projectName: undefined,
projectLeader: undefined, projectLeader: user.nickname,
projectLeaderId: undefined, projectLeaderId: user.id,
undertakingUnitName: undefined, undertakingUnitName: undefined,
undertakingUnitId: undefined, undertakingUnitId: undefined,
beginDate: undefined, beginDate: undefined,

View File

@ -6,9 +6,9 @@
:model="queryParams" :model="queryParams"
ref="queryFormRef" ref="queryFormRef"
:inline="true" :inline="true"
label-width="68px" label-width="100px"
> >
<el-form-item label="合同Id" prop="contractId"> <!-- <el-form-item label="合同Id" prop="contractId">
<el-input <el-input
v-model="queryParams.contractId" v-model="queryParams.contractId"
placeholder="请输入合同Id" placeholder="请输入合同Id"
@ -16,7 +16,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="任务书编号" prop="projectCode"> <el-form-item label="任务书编号" prop="projectCode">
<el-input <el-input
v-model="queryParams.projectCode" v-model="queryParams.projectCode"
@ -44,7 +44,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="项目负责人ID" prop="projectLeaderId"> <!-- <el-form-item label="项目负责人ID" prop="projectLeaderId">
<el-input <el-input
v-model="queryParams.projectLeaderId" v-model="queryParams.projectLeaderId"
placeholder="请输入项目负责人ID" placeholder="请输入项目负责人ID"
@ -52,7 +52,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="承担单位名称" prop="undertakingUnitName"> <el-form-item label="承担单位名称" prop="undertakingUnitName">
<el-input <el-input
v-model="queryParams.undertakingUnitName" v-model="queryParams.undertakingUnitName"
@ -62,7 +62,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="承担单位ID" prop="undertakingUnitId"> <!-- <el-form-item label="承担单位ID" prop="undertakingUnitId">
<el-input <el-input
v-model="queryParams.undertakingUnitId" v-model="queryParams.undertakingUnitId"
placeholder="请输入承担单位ID" placeholder="请输入承担单位ID"
@ -70,7 +70,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="开始时间" prop="beginDate"> <el-form-item label="开始时间" prop="beginDate">
<el-date-picker <el-date-picker
v-model="queryParams.beginDate" v-model="queryParams.beginDate"
@ -113,7 +113,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="主管部门ID" prop="competentDeptId"> <!-- <el-form-item label="主管部门ID" prop="competentDeptId">
<el-input <el-input
v-model="queryParams.competentDeptId" v-model="queryParams.competentDeptId"
placeholder="请输入主管部门ID" placeholder="请输入主管部门ID"
@ -121,7 +121,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="主管部门" prop="competentDeptName"> <el-form-item label="主管部门" prop="competentDeptName">
<el-input <el-input
v-model="queryParams.competentDeptName" v-model="queryParams.competentDeptName"
@ -131,7 +131,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="主管工程师ID" prop="managerId"> <!-- <el-form-item label="主管工程师ID" prop="managerId">
<el-input <el-input
v-model="queryParams.managerId" v-model="queryParams.managerId"
placeholder="请输入主管工程师ID" placeholder="请输入主管工程师ID"
@ -139,7 +139,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="主管工程师" prop="managerName"> <el-form-item label="主管工程师" prop="managerName">
<el-input <el-input
v-model="queryParams.managerName" v-model="queryParams.managerName"
@ -158,7 +158,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="维护单位ID" prop="maintenanceUnitId"> <!-- <el-form-item label="维护单位ID" prop="maintenanceUnitId">
<el-input <el-input
v-model="queryParams.maintenanceUnitId" v-model="queryParams.maintenanceUnitId"
placeholder="请输入维护单位ID" placeholder="请输入维护单位ID"
@ -166,7 +166,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="审核单位名称" prop="reviewUnitName"> <el-form-item label="审核单位名称" prop="reviewUnitName">
<el-input <el-input
v-model="queryParams.reviewUnitName" v-model="queryParams.reviewUnitName"
@ -176,7 +176,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="审核单位ID" prop="reviewUnitId"> <!-- <el-form-item label="审核单位ID" prop="reviewUnitId">
<el-input <el-input
v-model="queryParams.reviewUnitId" v-model="queryParams.reviewUnitId"
placeholder="请输入审核单位ID" placeholder="请输入审核单位ID"
@ -184,7 +184,7 @@
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="验收形式" prop="accMode"> <el-form-item label="验收形式" prop="accMode">
<el-select <el-select
v-model="queryParams.accMode" v-model="queryParams.accMode"
@ -221,6 +221,9 @@
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <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 @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 <el-button
type="primary" type="primary"
plain plain
@ -245,14 +248,14 @@
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <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="id" />
<el-table-column label="合同Id" align="center" prop="contractId" /> <el-table-column label="合同Id" align="center" prop="contractId" /> -->
<el-table-column label="任务书编号" align="center" prop="projectCode" /> <el-table-column label="任务书编号" align="center" prop="projectCode" />
<el-table-column label="任务书名称" align="center" prop="projectName" /> <el-table-column label="任务书名称" align="center" prop="projectName" />
<el-table-column label="项目负责人" align="center" prop="projectLeader" /> <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="承担单位名称" 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 <el-table-column
label="开始时间" label="开始时间"
align="center" align="center"
@ -275,14 +278,14 @@
:formatter="dateFormatter" :formatter="dateFormatter"
width="180px" 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="主管部门" 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="managerName" />
<el-table-column label="维护单位名称" align="center" prop="maintenanceUnitName" /> <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="审核单位名称" 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"> <el-table-column label="验收形式" align="center" prop="accMode">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.ACC_MODE" :value="scope.row.accMode" /> <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" prop="state" />
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button <template v-if="scope.row.state == '1'">
link <el-button link type="primary" @click="openForm('update', scope.row.id)"
type="primary" v-hasPermi="['contract:main:update']">
@click="openForm('update', scope.row.id)" 编辑
v-hasPermi="['acceptance: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>
<el-button <el-button link type="primary" @click="handleRecord(scope.row.id)" v-if="scope.row.state == '2'">
link 审核记录
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['acceptance:main:delete']"
>
删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -319,7 +324,70 @@
@pagination="getList" @pagination="getList"
/> />
</ContentWrap> </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" /> <MainForm ref="formRef" @success="getList" />
</template> </template>
@ -330,16 +398,22 @@ import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { MainApi, MainVO } from '@/api/acceptance/acceptance' import { MainApi, MainVO } from '@/api/acceptance/acceptance'
import MainForm from './MainForm.vue' import MainForm from './MainForm.vue'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { formatDate } from '@/utils/formatTime'
/** 验收 列表 */ /** 验收 列表 */
defineOptions({ name: 'AcceptanceMain' }) defineOptions({ name: 'AcceptanceMain' })
const dialogVisible = ref(false) //
const dialogVisible1 = ref(false) //
const dialogVisible2 = ref(false) //
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // const { t } = useI18n() //
const loading = ref(true) // const loading = ref(true) //
const loading1 = ref(true) //
const list = ref<MainVO[]>([]) // const list = ref<MainVO[]>([]) //
const logList = ref([]) //
const list1 = ref<MainVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const total1 = ref(0) //
const queryParams = reactive({ const queryParams = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
@ -380,7 +454,9 @@ const getList = async () => {
loading.value = false loading.value = false
} }
} }
const formRules = reactive({
comment: [{ required: true, message: '审核意见不能为空', trigger: 'blur' }],
})
/** 搜索按钮操作 */ /** 搜索按钮操作 */
const handleQuery = () => { const handleQuery = () => {
queryParams.pageNo = 1 queryParams.pageNo = 1
@ -398,7 +474,31 @@ const formRef = ref()
const openForm = (type: string, id?: number) => { const openForm = (type: string, id?: number) => {
formRef.value.open(type, id) 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) => { const handleDelete = async (id: number) => {
try { try {
@ -411,7 +511,66 @@ const handleDelete = async (id: number) => {
await getList() await getList()
} catch {} } 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 () => { const handleExport = async () => {
try { try {

View File

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