更新立项部分页面

pull/480/head
admin 2024-04-14 16:45:40 +08:00
parent f742e12dd4
commit bd4c79faf4
8 changed files with 216 additions and 154 deletions

View File

@ -1,8 +1,8 @@
import request from '@/config/axios' import request from '@/config/axios'
// 立项申请 VO // 立项申请 VO
export interface MainVO { export interface MainVO {
id: string // id id: number // id
number: string // 编号 number: string // 编号
name: string // 项目名称 name: string // 项目名称
technicalField: string // 所属技术领域 technicalField: string // 所属技术领域
@ -27,36 +27,48 @@ export interface MainVO {
competentDeptName: string // 主管部门 competentDeptName: string // 主管部门
managerId: string // 主管工程师ID managerId: string // 主管工程师ID
managerName: string // 主管工程师 managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: string // 维护单位ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: string // 承担单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: string // 审核单位ID
state: string // 状态
creator: string // 创建人
createTime: Date // 创建时间
updater: string // 更新人
updateTime: Date // 更新时间
deleted: number // 是否删除
} }
// 立项申请 API // 立项申请 API
export const MainApi = { export const MainApi = {
// 查询立项申请分页 // 查询立项申请分页
getMainPage: async (params: any) => { getMainPage: async (params: any) => {
return await request.get({ url: `/apply/main/page`, params }) return await request.get({ url: `/apply/main/page`, params })
}, },
// 查询立项申请详情 // 查询立项申请详情
getMain: async (id: number) => { getMain: async (id: number) => {
return await request.get({ url: `/apply/main/get?id=` + id }) return await request.get({ url: `/apply/main/get?id=` + id })
}, },
// 新增立项申请 // 新增立项申请
createMain: async (data: MainVO) => { createMain: async (data: MainVO) => {
return await request.post({ url: `/apply/main/create`, data }) return await request.post({ url: `/apply/main/create`, data })
}, },
// 修改立项申请 // 修改立项申请
updateMain: async (data: MainVO) => { updateMain: async (data: MainVO) => {
return await request.put({ url: `/apply/main/update`, data }) return await request.put({ url: `/apply/main/update`, data })
}, },
// 删除立项申请 // 删除立项申请
deleteMain: async (id: number) => { deleteMain: async (id: number) => {
return await request.delete({ url: `/apply/main/delete?id=` + id }) return await request.delete({ url: `/apply/main/delete?id=` + id })
}, },
// 导出立项申请 Excel // 导出立项申请 Excel
exportMain: async (params) => { exportMain: async (params) => {
return await request.download({ url: `/apply/main/export-excel`, params }) return await request.download({ url: `/apply/main/export-excel`, params })
}, },

View File

@ -14,14 +14,7 @@
<el-input v-model="formData.name" placeholder="请输入项目名称" /> <el-input v-model="formData.name" placeholder="请输入项目名称" />
</el-form-item> </el-form-item>
<el-form-item label="所属技术领域" prop="technicalField"> <el-form-item label="所属技术领域" prop="technicalField">
<el-select v-model="formData.technicalField" placeholder="请选择所属技术领域"> <el-input v-model="formData.technicalField" placeholder="请输入所属技术领域" />
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.TECHNICAL_FIELD)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="年度" prop="year"> <el-form-item label="年度" prop="year">
<el-input v-model="formData.year" placeholder="请输入年度" /> <el-input v-model="formData.year" placeholder="请输入年度" />
@ -35,12 +28,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="endData"> <el-form-item label="结束时间" prop="endData">
<el-date-picker <el-input v-model="formData.endData" placeholder="请输入结束时间" />
v-model="formData.endData"
type="date"
value-format="x"
placeholder="选择结束时间"
/>
</el-form-item> </el-form-item>
<el-form-item label="负责人Id" prop="directorId"> <el-form-item label="负责人Id" prop="directorId">
<el-input v-model="formData.directorId" placeholder="请输入负责人Id" /> <el-input v-model="formData.directorId" placeholder="请输入负责人Id" />
@ -82,20 +70,66 @@
<el-input v-model="formData.address" placeholder="请输入通讯地址" /> <el-input v-model="formData.address" placeholder="请输入通讯地址" />
</el-form-item> </el-form-item>
<el-form-item label="主要业绩" prop="achievement"> <el-form-item label="主要业绩" prop="achievement">
<el-input v-model="formData.achievement" type="textarea" placeholder="请输入主要业绩" /> <el-input v-model="formData.achievement" placeholder="请输入主要业绩" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="主管部门ID" prop="competentDeptId"> <el-form-item label="主管部门ID" prop="competentDeptId">
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" /> <el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
</el-form-item>--> </el-form-item>
<el-form-item label="主管部门" prop="competentDeptName"> <el-form-item label="主管部门" prop="competentDeptName">
<el-input v-model="formData.competentDeptName" placeholder="请输入主管部门" /> <el-input v-model="formData.competentDeptName" placeholder="请输入主管部门" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="主管工程师ID" prop="managerId"> <el-form-item label="主管工程师ID" prop="managerId">
<el-input v-model="formData.managerId" placeholder="请输入主管工程师ID" /> <el-input v-model="formData.managerId" placeholder="请输入主管工程师ID" />
</el-form-item>--> </el-form-item>
<el-form-item label="主管工程师" prop="managerName"> <el-form-item label="主管工程师" prop="managerName">
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" /> <el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
</el-form-item> </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="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="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-item label="创建人" prop="creator">
<el-input v-model="formData.creator" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="formData.createTime"
type="date"
value-format="x"
placeholder="选择创建时间"
/>
</el-form-item>
<el-form-item label="更新人" prop="updater">
<el-input v-model="formData.updater" placeholder="请输入更新人" />
</el-form-item>
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker
v-model="formData.updateTime"
type="date"
value-format="x"
placeholder="选择更新时间"
/>
</el-form-item>
<el-form-item label="是否删除" prop="deleted">
<el-input v-model="formData.deleted" placeholder="请输入是否删除" />
</el-form-item>
</el-form> </el-form>
<!-- 子表的表单 --> <!-- 子表的表单 -->
<el-tabs v-model="subTabsName"> <el-tabs v-model="subTabsName">
@ -122,7 +156,6 @@
</Dialog> </Dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { MainApi, MainVO } from '@/api/apply/apply' import { MainApi, MainVO } from '@/api/apply/apply'
import InfoForm from './components/InfoForm.vue' import InfoForm from './components/InfoForm.vue'
import UnitsForm from './components/UnitsForm.vue' import UnitsForm from './components/UnitsForm.vue'
@ -130,7 +163,7 @@ import ParticipantForm from './components/ParticipantForm.vue'
import PlanForm from './components/PlanForm.vue' import PlanForm from './components/PlanForm.vue'
import FundsForm from './components/FundsForm.vue' import FundsForm from './components/FundsForm.vue'
/** 立项申请 表单 */ /** 立项申请 表单 */
defineOptions({ name: 'MainForm' }) defineOptions({ name: 'MainForm' })
const { t } = useI18n() // const { t } = useI18n() //
@ -166,6 +199,18 @@ const formData = ref({
competentDeptName: undefined, competentDeptName: undefined,
managerId: undefined, managerId: undefined,
managerName: undefined, managerName: undefined,
maintenanceUnitName: undefined,
maintenanceUnitId: undefined,
undertakingUnitName: undefined,
undertakingUnitId: undefined,
reviewUnitName: undefined,
reviewUnitId: undefined,
state: undefined,
creator: undefined,
createTime: undefined,
updater: undefined,
updateTime: undefined,
deleted: undefined,
}) })
const formRules = reactive({ const formRules = reactive({
}) })
@ -286,6 +331,18 @@ const resetForm = () => {
competentDeptName: undefined, competentDeptName: undefined,
managerId: undefined, managerId: undefined,
managerName: undefined, managerName: undefined,
maintenanceUnitName: undefined,
maintenanceUnitId: undefined,
undertakingUnitName: undefined,
undertakingUnitId: undefined,
reviewUnitName: undefined,
reviewUnitId: undefined,
state: undefined,
creator: undefined,
createTime: undefined,
updater: undefined,
updateTime: undefined,
deleted: undefined,
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -23,10 +23,10 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="经费科目" min-width="150"> <el-table-column label="二级科目" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.secondaryCategory`" :rules="formRules.secondaryCategory" class="mb-0px!"> <el-form-item :prop="`${$index}.secondaryCategory`" :rules="formRules.secondaryCategory" class="mb-0px!">
<el-input v-model="row.secondaryCategory" placeholder="请输入经费科目" /> <el-input v-model="row.secondaryCategory" placeholder="请输入二级科目" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -51,44 +51,6 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdBy`" :rules="formRules.createdBy" class="mb-0px!">
<el-input v-model="row.createdBy" placeholder="请输入创建人" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="创建时间" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdTime`" :rules="formRules.createdTime" class="mb-0px!">
<el-date-picker
v-model="row.createdTime"
type="date"
value-format="x"
placeholder="选择创建时间"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="更新人" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedBy`" :rules="formRules.updatedBy" class="mb-0px!">
<el-input v-model="row.updatedBy" placeholder="请输入更新人" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="更新时间" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedTime`" :rules="formRules.updatedTime" class="mb-0px!">
<el-date-picker
v-model="row.updatedTime"
type="date"
value-format="x"
placeholder="选择更新时间"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60"> <el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }"> <template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button> <el-button @click="handleDelete($index)" link></el-button>
@ -143,10 +105,6 @@ const handleAdd = () => {
amount: undefined, amount: undefined,
fiscalYear: undefined, fiscalYear: undefined,
totalAmount: undefined, totalAmount: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
} }
row.applyId = props.applyId row.applyId = props.applyId
formData.value.push(row) formData.value.push(row)

View File

@ -3,38 +3,38 @@
ref="formRef" ref="formRef"
:model="formData" :model="formData"
:rules="formRules" :rules="formRules"
label-width="150px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> >
<el-form-item label="项目目的与意义" prop="purposeSignificance"> <el-form-item label="项目目的与意义" prop="purposeSignificance">
<el-input v-model="formData.purposeSignificance" type="textarea" placeholder="请输入项目目的与意义" /> <el-input v-model="formData.purposeSignificance" placeholder="请输入项目目的与意义" />
</el-form-item> </el-form-item>
<el-form-item label="项目所属领域国内外产业、技术的现状和发展趋势" prop="currentSituation"> <el-form-item label="项目所属领域国内外产业、技术的现状和发展趋势" prop="currentSituation">
<el-input v-model="formData.currentSituation" type="textarea" placeholder="请输入项目所属领域国内外产业、技术的现状和发展趋势" /> <el-input v-model="formData.currentSituation" placeholder="请输入项目所属领域国内外产业、技术的现状和发展趋势" />
</el-form-item> </el-form-item>
<el-form-item label="项目现有工作基础" prop="workFoundation"> <el-form-item label="项目现有工作基础" prop="workFoundation">
<el-input v-model="formData.workFoundation" type="textarea" placeholder="请输入项目现有工作基础" /> <el-input v-model="formData.workFoundation" placeholder="请输入项目现有工作基础" />
</el-form-item> </el-form-item>
<el-form-item label="项目实施目标及考核指标-项目目标" prop="objectives"> <el-form-item label="项目实施目标及考核指标-项目目标" prop="objectives">
<el-input v-model="formData.objectives" type="textarea" placeholder="请输入项目实施目标及考核指标-项目目标" /> <el-input v-model="formData.objectives" placeholder="请输入项目实施目标及考核指标-项目目标" />
</el-form-item> </el-form-item>
<el-form-item label="项目实施目标及考核指标-考核指标" prop="evaluation"> <el-form-item label="项目实施目标及考核指标-考核指标" prop="evaluation">
<el-input v-model="formData.evaluation" type="textarea" placeholder="请输入项目实施目标及考核指标-考核指标" /> <el-input v-model="formData.evaluation" placeholder="请输入项目实施目标及考核指标-考核指标" />
</el-form-item> </el-form-item>
<el-form-item label="项目实施目标及考核指标-考核指标依据" prop="according"> <el-form-item label="项目实施目标及考核指标-考核指标依据" prop="according">
<el-input v-model="formData.according" type="textarea" placeholder="请输入项目实施目标及考核指标-考核指标依据" /> <el-input v-model="formData.according" placeholder="请输入项目实施目标及考核指标-考核指标依据" />
</el-form-item> </el-form-item>
<el-form-item label="主要研究开发内容-主要研究内容" prop="researchContents"> <el-form-item label="主要研究开发内容-主要研究内容" prop="researchContents">
<el-input v-model="formData.researchContents" type="textarea" placeholder="请输入主要研究开发内容-主要研究内容" /> <el-input v-model="formData.researchContents" placeholder="请输入主要研究开发内容-主要研究内容" />
</el-form-item> </el-form-item>
<el-form-item label="主要研究开发内容-技术路线" prop="roadmap"> <el-form-item label="主要研究开发内容-技术路线" prop="roadmap">
<el-input v-model="formData.roadmap" type="textarea" placeholder="请输入主要研究开发内容-技术路线" /> <el-input v-model="formData.roadmap" placeholder="请输入主要研究开发内容-技术路线" />
</el-form-item> </el-form-item>
<el-form-item label="主要研究开发内容-创新性" prop="innovation"> <el-form-item label="主要研究开发内容-创新性" prop="innovation">
<el-input v-model="formData.innovation" type="textarea" placeholder="请输入主要研究开发内容-创新性" /> <el-input v-model="formData.innovation" placeholder="请输入主要研究开发内容-创新性" />
</el-form-item> </el-form-item>
<el-form-item label="课题实施的风险分析" prop="riskAnalysis"> <el-form-item label="课题实施的风险分析" prop="riskAnalysis">
<el-input v-model="formData.riskAnalysis" type="textarea" placeholder="请输入课题实施的风险分析" /> <el-input v-model="formData.riskAnalysis" placeholder="请输入课题实施的风险分析" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -68,10 +68,6 @@ watch(
roadmap: undefined, roadmap: undefined,
innovation: undefined, innovation: undefined,
riskAnalysis: undefined, riskAnalysis: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
} }
// 2. val // 2. val
if (!val) { if (!val) {

View File

@ -81,16 +81,16 @@
</el-table-column> </el-table-column>
<el-table-column label="创建人" min-width="150"> <el-table-column label="创建人" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdBy`" :rules="formRules.createdBy" class="mb-0px!"> <el-form-item :prop="`${$index}.creator`" :rules="formRules.creator" class="mb-0px!">
<el-input v-model="row.createdBy" placeholder="请输入创建人" /> <el-input v-model="row.creator" placeholder="请输入创建人" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" min-width="150"> <el-table-column label="创建时间" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdTime`" :rules="formRules.createdTime" class="mb-0px!"> <el-form-item :prop="`${$index}.createTime`" :rules="formRules.createTime" class="mb-0px!">
<el-date-picker <el-date-picker
v-model="row.createdTime" v-model="row.createTime"
type="date" type="date"
value-format="x" value-format="x"
placeholder="选择创建时间" placeholder="选择创建时间"
@ -100,16 +100,16 @@
</el-table-column> </el-table-column>
<el-table-column label="更新人" min-width="150"> <el-table-column label="更新人" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedBy`" :rules="formRules.updatedBy" class="mb-0px!"> <el-form-item :prop="`${$index}.updater`" :rules="formRules.updater" class="mb-0px!">
<el-input v-model="row.updatedBy" placeholder="请输入更新人" /> <el-input v-model="row.updater" placeholder="请输入更新人" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" min-width="150"> <el-table-column label="更新时间" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedTime`" :rules="formRules.updatedTime" class="mb-0px!"> <el-form-item :prop="`${$index}.updateTime`" :rules="formRules.updateTime" class="mb-0px!">
<el-date-picker <el-date-picker
v-model="row.updatedTime" v-model="row.updateTime"
type="date" type="date"
value-format="x" value-format="x"
placeholder="选择更新时间" placeholder="选择更新时间"
@ -175,10 +175,10 @@ const handleAdd = () => {
deptId: undefined, deptId: undefined,
deptName: undefined, deptName: undefined,
orderNo: undefined, orderNo: undefined,
createdBy: undefined, creator: undefined,
createdTime: undefined, createTime: undefined,
updatedBy: undefined, updater: undefined,
updatedTime: undefined, updateTime: undefined,
} }
row.applyId = props.applyId row.applyId = props.applyId
formData.value.push(row) formData.value.push(row)

View File

@ -21,25 +21,25 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="实施内容" min-width="200"> <el-table-column label="实施内容" min-width="400">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.implContent`" :rules="formRules.implContent" class="mb-0px!"> <el-form-item :prop="`${$index}.implContent`" :rules="formRules.implContent" class="mb-0px!">
<el-input v-model="row.implContent" type="textarea" placeholder="请输入实施内容" /> <Editor v-model="row.implContent" height="150px" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" min-width="150"> <el-table-column label="创建人" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdBy`" :rules="formRules.createdBy" class="mb-0px!"> <el-form-item :prop="`${$index}.creator`" :rules="formRules.creator" class="mb-0px!">
<el-input v-model="row.createdBy" placeholder="请输入创建人" /> <el-input v-model="row.creator" placeholder="请输入创建人" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" min-width="150"> <el-table-column label="创建时间" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdTime`" :rules="formRules.createdTime" class="mb-0px!"> <el-form-item :prop="`${$index}.createTime`" :rules="formRules.createTime" class="mb-0px!">
<el-date-picker <el-date-picker
v-model="row.createdTime" v-model="row.createTime"
type="date" type="date"
value-format="x" value-format="x"
placeholder="选择创建时间" placeholder="选择创建时间"
@ -49,16 +49,16 @@
</el-table-column> </el-table-column>
<el-table-column label="更新人" min-width="150"> <el-table-column label="更新人" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedBy`" :rules="formRules.updatedBy" class="mb-0px!"> <el-form-item :prop="`${$index}.updater`" :rules="formRules.updater" class="mb-0px!">
<el-input v-model="row.updatedBy" placeholder="请输入更新人" /> <el-input v-model="row.updater" placeholder="请输入更新人" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" min-width="150"> <el-table-column label="更新时间" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedTime`" :rules="formRules.updatedTime" class="mb-0px!"> <el-form-item :prop="`${$index}.updateTime`" :rules="formRules.updateTime" class="mb-0px!">
<el-date-picker <el-date-picker
v-model="row.updatedTime" v-model="row.updateTime"
type="date" type="date"
value-format="x" value-format="x"
placeholder="选择更新时间" placeholder="选择更新时间"
@ -116,10 +116,10 @@ const handleAdd = () => {
applyId: undefined, applyId: undefined,
implDate: undefined, implDate: undefined,
implContent: undefined, implContent: undefined,
createdBy: undefined, creator: undefined,
createdTime: undefined, createTime: undefined,
updatedBy: undefined, updater: undefined,
updatedTime: undefined, updateTime: undefined,
} }
row.applyId = props.applyId row.applyId = props.applyId
formData.value.push(row) formData.value.push(row)

View File

@ -100,18 +100,25 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="租户号" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.tenantId`" :rules="formRules.tenantId" class="mb-0px!">
<el-input v-model="row.tenantId" placeholder="请输入租户号" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="创建人" min-width="150"> <el-table-column label="创建人" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdBy`" :rules="formRules.createdBy" class="mb-0px!"> <el-form-item :prop="`${$index}.creator`" :rules="formRules.creator" class="mb-0px!">
<el-input v-model="row.createdBy" placeholder="请输入创建人" /> <el-input v-model="row.creator" placeholder="请输入创建人" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" min-width="150"> <el-table-column label="创建时间" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.createdTime`" :rules="formRules.createdTime" class="mb-0px!"> <el-form-item :prop="`${$index}.createTime`" :rules="formRules.createTime" class="mb-0px!">
<el-date-picker <el-date-picker
v-model="row.createdTime" v-model="row.createTime"
type="date" type="date"
value-format="x" value-format="x"
placeholder="选择创建时间" placeholder="选择创建时间"
@ -121,16 +128,16 @@
</el-table-column> </el-table-column>
<el-table-column label="更新人" min-width="150"> <el-table-column label="更新人" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedBy`" :rules="formRules.updatedBy" class="mb-0px!"> <el-form-item :prop="`${$index}.updater`" :rules="formRules.updater" class="mb-0px!">
<el-input v-model="row.updatedBy" placeholder="请输入更新人" /> <el-input v-model="row.updater" placeholder="请输入更新人" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" min-width="150"> <el-table-column label="更新时间" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updatedTime`" :rules="formRules.updatedTime" class="mb-0px!"> <el-form-item :prop="`${$index}.updateTime`" :rules="formRules.updateTime" class="mb-0px!">
<el-date-picker <el-date-picker
v-model="row.updatedTime" v-model="row.updateTime"
type="date" type="date"
value-format="x" value-format="x"
placeholder="选择更新时间" placeholder="选择更新时间"
@ -199,10 +206,11 @@ const handleAdd = () => {
address: undefined, address: undefined,
sign: undefined, sign: undefined,
orderNo: undefined, orderNo: undefined,
createdBy: undefined, tenantId: undefined,
createdTime: undefined, creator: undefined,
updatedBy: undefined, createTime: undefined,
updatedTime: undefined, updater: undefined,
updateTime: undefined,
} }
row.applyId = props.applyId row.applyId = props.applyId
formData.value.push(row) formData.value.push(row)

View File

@ -6,7 +6,7 @@
:model="queryParams" :model="queryParams"
ref="queryFormRef" ref="queryFormRef"
:inline="true" :inline="true"
label-width="100px" label-width="68px"
> >
<el-form-item label="编号" prop="number"> <el-form-item label="编号" prop="number">
<el-input <el-input
@ -27,19 +27,13 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="所属技术领域" prop="technicalField"> <el-form-item label="所属技术领域" prop="technicalField">
<el-select <el-input
v-model="queryParams.technicalField" v-model="queryParams.technicalField"
placeholder="请选择所属技术领域" placeholder="请输入所属技术领域"
clearable clearable
@keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
> />
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.TECHNICAL_FIELD)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="年度" prop="year"> <el-form-item label="年度" prop="year">
<el-input <el-input
@ -77,6 +71,42 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
<el-input
v-model="queryParams.maintenanceUnitName"
placeholder="请输入维护单位名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="承担单位名称" prop="undertakingUnitName">
<el-input
v-model="queryParams.undertakingUnitName"
placeholder="请输入承担单位名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="审核单位名称" prop="reviewUnitName">
<el-input
v-model="queryParams.reviewUnitName"
placeholder="请输入审核单位名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入状态"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<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>
@ -104,21 +134,19 @@
<!-- 列表 --> <!-- 列表 -->
<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="编号" align="center" prop="number" /> <el-table-column label="编号" align="center" prop="number" />
<el-table-column label="项目名称" align="center" prop="name" width="300px"/> <el-table-column label="项目名称" align="center" prop="name" />
<el-table-column label="所属技术领域" align="center" prop="technicalField" width="200px"> <el-table-column label="所属技术领域" align="center" prop="technicalField" />
<template #default="scope">
<dict-tag :type="DICT_TYPE.TECHNICAL_FIELD" :value="scope.row.technicalField" />
</template>
</el-table-column>
<el-table-column label="年度" align="center" prop="year" /> <el-table-column label="年度" align="center" prop="year" />
<el-table-column label="开始时间" align="center" prop="beginDate" /> <el-table-column label="负责人姓名" align="center" prop="director" />
<el-table-column label="结束时间" align="center" prop="endData" />
<el-table-column label="负责人" align="center" prop="director" />
<el-table-column label="电话" align="center" prop="phoneNo" /> <el-table-column label="电话" align="center" prop="phoneNo" />
<el-table-column label="邮箱" align="center" prop="email" />
<el-table-column label="主管部门" align="center" prop="competentDeptName" /> <el-table-column label="主管部门" align="center" prop="competentDeptName" />
<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="undertakingUnitName" />
<el-table-column label="审核单位名称" align="center" prop="reviewUnitName" />
<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 <el-button
@ -154,12 +182,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import download from '@/utils/download' import download from '@/utils/download'
import { MainApi, MainVO } from '@/api/apply/apply' import { MainApi, MainVO } from '@/api/apply/apply'
import MainForm from './MainForm.vue' import MainForm from './MainForm.vue'
/** 立项申请 列表 */ /** 立项申请 列表 */
defineOptions({ name: 'ApplyMain' }) defineOptions({ name: 'ApplyMain' })
const message = useMessage() // const message = useMessage() //
@ -178,6 +205,10 @@ const queryParams = reactive({
director: undefined, director: undefined,
competentDeptName: undefined, competentDeptName: undefined,
managerName: undefined, managerName: undefined,
maintenanceUnitName: undefined,
undertakingUnitName: undefined,
reviewUnitName: undefined,
state: undefined,
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //
@ -233,7 +264,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await MainApi.exportMain(queryParams) const data = await MainApi.exportMain(queryParams)
download.excel(data, '立项申请.xls') download.excel(data, '立项申请.xls')
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false