修改样式

pull/480/head
liting 2024-04-14 17:14:55 +08:00
commit dec04e7417
8 changed files with 247 additions and 271 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

@ -9,6 +9,7 @@
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading"> <el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="编号" prop="number"> <el-form-item label="编号" prop="number">
<el-input v-model="formData.number" placeholder="请输入编号" /> <el-input v-model="formData.number" placeholder="请输入编号" />
</el-form-item> </el-form-item>
@ -16,111 +17,142 @@
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="项目名称" prop="name"> <el-form-item label="项目名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入项目名称" /> <el-input v-model="formData.name" placeholder="请输入项目名称" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<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" </el-form-item></el-col>
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<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="请输入年度" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="开始时间" prop="beginDate"> <el-form-item label="开始时间" prop="beginDate">
<el-date-picker v-model="formData.beginDate" type="date" value-format="x" placeholder="选择开始时间" /> <el-date-picker v-model="formData.beginDate" type="date" value-format="x" placeholder="选择开始时间" style="width:100%"/>
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="结束时间" prop="endData"> <el-form-item label="结束时间" prop="endData">
<el-date-picker v-model="formData.endData" type="date" value-format="x" placeholder="选择结束时间" /> <el-date-picker v-model="formData.endData" type="date" value-format="x" placeholder="请输入结束时间" style="width:100%"/>
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<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" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="负责人姓名" prop="director"> <el-form-item label="负责人姓名" prop="director">
<el-input v-model="formData.director" placeholder="请输入负责人姓名" /> <el-input v-model="formData.director" placeholder="请输入负责人姓名" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="负责人性别" prop="gender"> <el-form-item label="负责人性别" prop="gender">
<el-input v-model="formData.gender" placeholder="请输入负责人性别" /> <el-input v-model="formData.gender" placeholder="请输入负责人性别" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="年龄" prop="age"> <el-form-item label="年龄" prop="age">
<el-input v-model="formData.age" placeholder="请输入年龄" /> <el-input v-model="formData.age" placeholder="请输入年龄" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="学历" prop="education"> <el-form-item label="学历" prop="education">
<el-input v-model="formData.education" placeholder="请输入学历" /> <el-input v-model="formData.education" placeholder="请输入学历" />
</el-form-item> </el-form-item></el-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="所学专业" prop="major"> <el-form-item label="所学专业" prop="major">
<el-input v-model="formData.major" placeholder="请输入所学专业" /> <el-input v-model="formData.major" placeholder="请输入所学专业" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="从事专业" prop="engagMajor"> <el-form-item label="从事专业" prop="engagMajor">
<el-input v-model="formData.engagMajor" placeholder="请输入从事专业" /> <el-input v-model="formData.engagMajor" placeholder="请输入从事专业" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="职务(职称)" prop="position"> <el-form-item label="职务(职称)" prop="position">
<el-input v-model="formData.position" placeholder="请输入职务(职称)" /> <el-input v-model="formData.position" placeholder="请输入职务(职称)" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="电话" prop="phoneNo"> <el-form-item label="电话" prop="phoneNo">
<el-input v-model="formData.phoneNo" placeholder="请输入电话" /> <el-input v-model="formData.phoneNo" placeholder="请输入电话" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="邮箱" prop="email"> <el-form-item label="邮箱" prop="email">
<el-input v-model="formData.email" placeholder="请输入邮箱" /> <el-input v-model="formData.email" placeholder="请输入邮箱" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="传真" prop="fax"> <el-form-item label="传真" prop="fax">
<el-input v-model="formData.fax" placeholder="请输入传真" /> <el-input v-model="formData.fax" placeholder="请输入传真" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="邮编" prop="postalCode"> <el-form-item label="邮编" prop="postalCode">
<el-input v-model="formData.postalCode" placeholder="请输入邮编" /> <el-input v-model="formData.postalCode" placeholder="请输入邮编" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="通讯地址" prop="address"> <el-form-item label="通讯地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入通讯地址" /> <el-input v-model="formData.address" placeholder="请输入通讯地址" />
</el-form-item> </el-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<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-col> </el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<!-- <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-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<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-col>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12"> <el-col :xs="24" :sm="24" :md="24" :lg="12">
<!-- <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-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<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-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
<el-input v-model="formData.maintenanceUnitName" placeholder="请输入维护单位名称" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="维护单位ID" prop="maintenanceUnitId">
<el-input v-model="formData.maintenanceUnitId" placeholder="请输入维护单位ID" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="承担单位名称" prop="undertakingUnitName">
<el-input v-model="formData.undertakingUnitName" placeholder="请输入承担单位名称" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="承担单位ID" prop="undertakingUnitId">
<el-input v-model="formData.undertakingUnitId" placeholder="请输入承担单位ID" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="审核单位名称" prop="reviewUnitName">
<el-input v-model="formData.reviewUnitName" placeholder="请输入审核单位名称" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="审核单位ID" prop="reviewUnitId">
<el-input v-model="formData.reviewUnitId" placeholder="请输入审核单位ID" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="状态" prop="state">
<el-input v-model="formData.state" placeholder="请输入状态" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="创建人" prop="creator">
<el-input v-model="formData.creator" placeholder="请输入创建人" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="创建时间" prop="createTime">
<el-date-picker v-model="formData.createTime" type="date" value-format="x" placeholder="选择创建时间" style="width:100%"/>
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="更新人" prop="updater">
<el-input v-model="formData.updater" placeholder="请输入更新人" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker v-model="formData.updateTime" type="date" value-format="x" placeholder="选择更新时间" style="width:100%"/>
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="是否删除" prop="deleted">
<el-input v-model="formData.deleted" placeholder="请输入是否删除" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -150,7 +182,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'
@ -158,7 +189,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() //
@ -194,6 +225,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({
}) })
@ -314,6 +357,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

@ -1,36 +1,36 @@
<template> <template>
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="180px" v-loading="formLoading"> <el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-position="top">
<fieldset> <fieldset>
<legend>项目信息</legend> <legend>项目信息</legend>
<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="请输入项目目的与意义" type="textarea" />
</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="请输入项目所属领域国内外产业、技术的现状和发展趋势" type="textarea" />
</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="请输入项目现有工作基础" type="textarea" />
</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="请输入项目实施目标及考核指标-项目目标" type="textarea" />
</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="请输入项目实施目标及考核指标-考核指标" type="textarea" />
</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="请输入项目实施目标及考核指标-考核指标依据" type="textarea" />
</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="请输入主要研究开发内容-主要研究内容" type="textarea" />
</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="请输入主要研究开发内容-技术路线" type="textarea" />
</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="请输入主要研究开发内容-创新性" type="textarea" />
</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="请输入课题实施的风险分析" type="textarea" />
</el-form-item> </el-form-item>
</fieldset> </fieldset>
</el-form> </el-form>
@ -65,10 +65,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

@ -1,100 +1,60 @@
<template> <template>
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="100px">
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="100px"
>
<el-form-item label="编号" prop="number"> <el-form-item label="编号" prop="number">
<el-input <el-input v-model="queryParams.number" placeholder="请输入编号" clearable @keyup.enter="handleQuery"
v-model="queryParams.number" class="!w-240px" />
placeholder="请输入编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> </el-form-item>
<el-form-item label="项目名称" prop="name"> <el-form-item label="项目名称" prop="name">
<el-input <el-input v-model="queryParams.name" placeholder="请输入项目名称" clearable @keyup.enter="handleQuery"
v-model="queryParams.name" class="!w-240px" />
placeholder="请输入项目名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</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" placeholder="请输入所属技术领域" clearable @keyup.enter="handleQuery"
v-model="queryParams.technicalField" class="!w-240px" />
placeholder="请选择所属技术领域"
clearable
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 v-model="queryParams.year" placeholder="请输入年度" clearable @keyup.enter="handleQuery" class="!w-240px" />
v-model="queryParams.year"
placeholder="请输入年度"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> </el-form-item>
<el-form-item label="负责人姓名" prop="director"> <el-form-item label="负责人姓名" prop="director">
<el-input <el-input v-model="queryParams.director" placeholder="请输入负责人姓名" clearable @keyup.enter="handleQuery"
v-model="queryParams.director" class="!w-240px" />
placeholder="请输入负责人姓名"
clearable
@keyup.enter="handleQuery"
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" placeholder="请输入主管部门" clearable @keyup.enter="handleQuery"
v-model="queryParams.competentDeptName" class="!w-240px" />
placeholder="请输入主管部门"
clearable
@keyup.enter="handleQuery"
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" placeholder="请输入主管工程师" clearable @keyup.enter="handleQuery"
v-model="queryParams.managerName" class="!w-240px" />
placeholder="请输入主管工程师" </el-form-item>
clearable <el-form-item label="维护单位名称" prop="maintenanceUnitName">
@keyup.enter="handleQuery" <el-input v-model="queryParams.maintenanceUnitName" placeholder="请输入维护单位名称" clearable @keyup.enter="handleQuery"
class="!w-240px" 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-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery">
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <Icon icon="ep:search" class="mr-5px" /> 搜索
<el-button </el-button>
type="primary" <el-button @click="resetQuery">
plain <Icon icon="ep:refresh" class="mr-5px" /> 重置
@click="openForm('create')" </el-button>
v-hasPermi="['apply:main:create']" <el-button type="primary" plain @click="openForm('create')" v-hasPermi="['apply:main:create']">
>
<Icon icon="ep:plus" class="mr-5px" /> 新增 <Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button> </el-button>
<el-button <el-button type="success" plain @click="handleExport" :loading="exportLoading" v-hasPermi="['apply:main:export']">
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['apply:main:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出 <Icon icon="ep:download" class="mr-5px" /> 导出
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -104,49 +64,33 @@
<!-- 列表 --> <!-- 列表 -->
<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" width="150px"/> <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" fixed="right"> <el-table-column label="操作" align="center" fixed="right">
<template #default="scope"> <template #default="scope">
<el-button <el-button link type="primary" @click="openForm('update', scope.row.id)" v-hasPermi="['apply:main:update']">
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['apply:main:update']"
>
编辑 编辑
</el-button> </el-button>
<el-button <el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['apply:main:delete']">
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['apply:main:delete']"
>
删除 删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<Pagination <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
:total="total" @pagination="getList" />
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap> </ContentWrap>
<!-- 表单弹窗添加/修改 --> <!-- 表单弹窗添加/修改 -->
@ -154,12 +98,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 +121,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) //
@ -222,7 +169,7 @@ const handleDelete = async (id: number) => {
message.success(t('common.delSuccess')) message.success(t('common.delSuccess'))
// //
await getList() await getList()
} catch {} } catch { }
} }
/** 导出按钮操作 */ /** 导出按钮操作 */
@ -233,7 +180,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