pull/480/head
lizilong 2024-06-11 21:16:58 +08:00
commit f72f8e6cb5
3 changed files with 198 additions and 140 deletions

View File

@ -1,63 +1,71 @@
import request from '@/config/axios'
// 立项 VO
export interface MainVO {
id: number // 主键id
projectName: string // 项目名称
year: string // 立项年度
undertakingUnitName: string // 牵头单位
undertakingUnitId: number // 牵头单位ID
mainUnits: string // 主要完成单位
coopUnits: string // 合作单位
briefObjectives: string // 项目简介—项目目标
briefContents: string // 项目简介—研究内容
briefInnovate: string // 项目简介—创新点
briefAchievement: string // 项目简介—科技及产业化成果
briefBenefit: string // 项目简介—经济、社会效益
developmentCycle: string // 研发周期
totalFee: string // 总经费
applyFee: string // 拨款
sefeFee: string // 自筹
competentDeptId: number // 主管部门ID
competentDeptName: string // 主管部门
managerId: number // 主管工程师ID
managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: number // 维护单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: number // 审核单位ID
state: string // 审核状态
}
// 立项 API
export const MainApi = {
// 查询立项分页
getMainPage: async (params: any) => {
return await request.get({ url: `/apply/main/page`, params })
},
// 查询立项详情
getMain: async (id: number) => {
return await request.get({ url: `/apply/main/get?id=` + id })
},
// 新增立项
createMain: async (data: MainVO) => {
return await request.post({ url: `/apply/main/create`, data })
},
// 修改立项
updateMain: async (data: MainVO) => {
return await request.put({ url: `/apply/main/update`, data })
},
// 删除立项
deleteMain: async (id: number) => {
return await request.delete({ url: `/apply/main/delete?id=` + id })
},
// 导出立项 Excel
exportMain: async (params) => {
return await request.download({ url: `/apply/main/export-excel`, params })
},
}
import request from '@/config/axios'
import {params} from "vite-plugin-top-level-await";
// 立项 VO
export interface MainVO {
id: number // 主键id
projectName: string // 项目名称
projectLeader: String // 负责人
projectLeaderId: number // 负责人Id
year: string // 立项年度
undertakingUnitName: string // 牵头单位
undertakingUnitId: number // 牵头单位ID
mainUnits: string // 主要完成单位
coopUnits: string // 合作单位
briefObjectives: string // 项目简介—项目目标
briefContents: string // 项目简介—研究内容
briefInnovate: string // 项目简介—创新点
briefAchievement: string // 项目简介—科技及产业化成果
briefBenefit: string // 项目简介—经济、社会效益
developmentCycle: string // 研发周期
totalFee: string // 总经费
applyFee: string // 拨款
sefeFee: string // 自筹
competentDeptId: number // 主管部门ID
competentDeptName: string // 主管部门
managerId: number // 主管工程师ID
managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: number // 维护单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: number // 审核单位ID
state: string // 审核状态
}
// 立项 API
export const MainApi = {
// 查询立项分页
getMainPage: async (params: any) => {
return await request.get({ url: `/apply/main/page`, params })
},
// 查询立项详情
getMain: async (id: number) => {
return await request.get({ url: `/apply/main/get?id=` + id })
},
// 新增立项
createMain: async (data: MainVO) => {
return await request.post({ url: `/apply/main/create`, data })
},
// 修改立项
updateMain: async (data: MainVO) => {
return await request.put({ url: `/apply/main/update`, data })
},
// 删除立项
deleteMain: async (id: number) => {
return await request.delete({ url: `/apply/main/delete?id=` + id })
},
// 导出立项 Excel
exportMain: async (params) => {
return await request.download({ url: `/apply/main/export-excel`, params })
},
generateDoc: async (id: number)=>{
return await request.download({ url: `/apply/main/generate-doc?id=` + id })
}
}

View File

@ -4,81 +4,106 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
label-width="150px"
v-loading="formLoading"
>
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="立项年度" prop="year">
<el-input v-model="formData.year" placeholder="请输入立项年度" />
</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="mainUnits">
<el-input v-model="formData.mainUnits" placeholder="请输入主要完成单位" />
</el-form-item>
<el-form-item label="合作单位" prop="coopUnits">
<el-input v-model="formData.coopUnits" placeholder="请输入合作单位" />
</el-form-item>
<el-form-item label="项目简介—项目目标" prop="briefObjectives">
<el-row :gutter="20">
<el-col :span="24" >
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="立项年度" prop="year">
<el-date-picker v-model="formData.year" type="year" placeholder="请选择立项年度"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="牵头单位" prop="undertakingUnitName">
<el-input v-model="formData.undertakingUnitName" placeholder="请输入牵头单位" />
</el-form-item>
</el-col>
<el-col :span="6" v-if="false">
<el-form-item label="牵头单位ID" prop="undertakingUnitId" >
<el-input v-model="formData.undertakingUnitId" placeholder="请输入牵头单位ID" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="主要完成单位" prop="mainUnits">
<el-input v-model="formData.mainUnits" placeholder="请输入主要完成单位" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="合作单位" prop="coopUnits">
<el-input v-model="formData.coopUnits" placeholder="请输入合作单位" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="研发周期" prop="developmentCycle">
<el-input v-model="formData.developmentCycle" placeholder="请输入研发周期" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="总经费(万元)" prop="totalFee">
<el-input v-model="formData.totalFee" placeholder="请输入总经费" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="拨款(万元)" prop="applyFee">
<el-input v-model="formData.applyFee" placeholder="请输入拨款" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="自筹(万元)" prop="sefeFee">
<el-input v-model="formData.sefeFee" placeholder="请输入自筹" />
</el-form-item>
</el-col>
<!-- <el-col >
<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="state">
<el-input v-model="formData.state" placeholder="请输入审核状态" />
</el-form-item>
</el-col>-->
</el-row>
<el-form-item label="项目目标" prop="briefObjectives">
<Editor v-model="formData.briefObjectives" height="150px" />
</el-form-item>
<el-form-item label="项目简介—研究内容" prop="briefContents">
<el-form-item label="研究内容" prop="briefContents">
<Editor v-model="formData.briefContents" height="150px" />
</el-form-item>
<el-form-item label="项目简介—创新点" prop="briefInnovate">
<el-form-item label="创新点" prop="briefInnovate">
<Editor v-model="formData.briefInnovate" height="150px" />
</el-form-item>
<el-form-item label="项目简介—科技及产业化成果" prop="briefAchievement">
<el-form-item label="科技及产业化成果" prop="briefAchievement">
<Editor v-model="formData.briefAchievement" height="150px" />
</el-form-item>
<el-form-item label="项目简介—经济、社会效益" prop="briefBenefit">
<el-form-item label="经济、社会效益" prop="briefBenefit">
<Editor v-model="formData.briefBenefit" height="150px" />
</el-form-item>
<el-form-item label="研发周期" prop="developmentCycle">
<el-input v-model="formData.developmentCycle" placeholder="请输入研发周期" />
</el-form-item>
<el-form-item label="总经费" prop="totalFee">
<el-input v-model="formData.totalFee" placeholder="请输入总经费" />
</el-form-item>
<el-form-item label="拨款" prop="applyFee">
<el-input v-model="formData.applyFee" placeholder="请输入拨款" />
</el-form-item>
<el-form-item label="自筹" prop="sefeFee">
<el-input v-model="formData.sefeFee" 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="state">
<el-input v-model="formData.state" placeholder="请输入审核状态" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>

View File

@ -70,20 +70,21 @@
<!-- 列表 -->
<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="项目名称" align="center" prop="projectName" />
<el-table-column label="立项年度" align="center" prop="year" />
<el-table-column label="牵头单位" align="center" prop="undertakingUnitName" />
<el-table-column label="牵头单位ID" align="center" prop="undertakingUnitId" />
<el-table-column label="主要完成单位" align="center" prop="mainUnits" />
<el-table-column label="合作单位" align="center" prop="coopUnits" />
<el-table v-loading="loading" :data="list" :stripe="true" style="width: 100%" :show-overflow-tooltip="true">
<!-- <el-table-column label="主键id" align="center" prop="id" v-if="false"/>--><!-- <el-table-column label="主键id" align="center" prop="id" v-if="false"/>-->
<el-table-column type="selection" width="30"/>
<el-table-column label="序号" align="center" width="80" type="index"/>
<el-table-column label="项目名称" align="center" width="200" prop="projectName" />
<el-table-column label="立项年度" align="center" prop="year" />
<el-table-column label="牵头单位" align="center" width="200" prop="undertakingUnitName" />
<el-table-column label="主要完成单位" align="center" width="200" prop="mainUnits" />
<el-table-column label="合作单位" align="center" width="200" prop="coopUnits" />
<el-table-column label="研发周期" align="center" prop="developmentCycle" />
<el-table-column label="总经费" align="center" prop="totalFee" />
<el-table-column label="拨款" align="center" prop="applyFee" />
<el-table-column label="自筹" align="center" prop="sefeFee" />
<el-table-column label="审核状态" align="center" prop="state" />
<el-table-column label="操作" align="center">
<el-table-column label="总经费(万元)" align="center" width="120" prop="totalFee" />
<el-table-column label="拨款(万元)" align="center" width="100" prop="applyFee" />
<el-table-column label="自筹(万元)" align="center" width="100" prop="sefeFee" />
<el-table-column label="审核状态" align="center" width="120" prop="state" />
<el-table-column label="操作" width="200" fixed="right" align="center">
<template #default="scope">
<el-button
link
@ -93,6 +94,14 @@
>
编辑
</el-button>
<el-button
link
type="primary"
@click="generateDoc(scope.row.id,scope.row.projectName)"
v-hasPermi="['apply:main:update']"
>
成文
</el-button>
<el-button
link
type="danger"
@ -172,6 +181,22 @@ const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 成文按钮操作 */
const generateDoc = async (id: number,projectName:string) =>{
//todo
try{
//
// exportLoading.value = true
const filename = projectName +'.docx'
const data = await MainApi.generateDoc(id)
download.word(data, filename)
} catch {
} finally {
// exportLoading.value = false
}
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
@ -204,4 +229,4 @@ const handleExport = async () => {
onMounted(() => {
getList()
})
</script>
</script>