修改样式

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'
// 立项申请 VO
// 立项申请 VO
export interface MainVO {
id: string // id
id: number // id
number: string // 编号
name: string // 项目名称
technicalField: string // 所属技术领域
@ -27,36 +27,48 @@ export interface MainVO {
competentDeptName: string // 主管部门
managerId: string // 主管工程师ID
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 = {
// 查询立项申请分页
// 查询立项申请分页
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
// 导出立项申请 Excel
exportMain: async (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-row :gutter="20">
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="编号" prop="number">
<el-input v-model="formData.number" placeholder="请输入编号" />
</el-form-item>
@ -16,111 +17,142 @@
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="项目名称" prop="name">
<el-input v-model="formData.name" 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="所属技术领域" prop="technicalField">
<el-select 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-col>
<el-input v-model="formData.technicalField" placeholder="请输入所属技术领域" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="年度" prop="year">
<el-input v-model="formData.year" 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="开始时间" prop="beginDate">
<el-date-picker v-model="formData.beginDate" type="date" value-format="x" placeholder="选择开始时间" />
</el-form-item>
</el-col>
<el-date-picker v-model="formData.beginDate" 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="endData">
<el-date-picker v-model="formData.endData" type="date" value-format="x" placeholder="选择结束时间" />
</el-form-item>
</el-col>
<el-date-picker v-model="formData.endData" 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="负责人Id" prop="directorId">
<el-input v-model="formData.directorId" placeholder="请输入负责人Id" />
</el-form-item>
</el-col>
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="负责人姓名" prop="director">
<el-input v-model="formData.director" 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="负责人性别" prop="gender">
<el-input v-model="formData.gender" 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="年龄" prop="age">
<el-input v-model="formData.age" 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="学历" prop="education">
<el-input v-model="formData.education" 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="所学专业" prop="major">
<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-form-item label="从事专业" prop="engagMajor">
<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-form-item label="职务(职称)" prop="position">
<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-form-item label="电话" prop="phoneNo">
<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-form-item label="邮箱" prop="email">
<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-form-item label="传真" prop="fax">
<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-form-item label="邮编" prop="postalCode">
<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-form-item label="通讯地址" prop="address">
<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-form-item label="主要业绩" prop="achievement">
<el-input v-model="formData.achievement" type="textarea" placeholder="请输入主要业绩" />
</el-form-item> </el-col>
<!-- <el-form-item label="主管部门ID" prop="competentDeptId">
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
</el-form-item>-->
<el-input v-model="formData.achievement" placeholder="请输入主要业绩" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="主管部门ID" prop="competentDeptId">
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="12">
<el-form-item label="主管部门" prop="competentDeptName">
<el-input v-model="formData.competentDeptName" 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="managerId">
<el-input v-model="formData.managerId" placeholder="请输入主管工程师ID" />
</el-form-item></el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="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 :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-col>
</el-row>
@ -150,7 +182,6 @@
</Dialog>
</template>
<script setup lang="ts">
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { MainApi, MainVO } from '@/api/apply/apply'
import InfoForm from './components/InfoForm.vue'
import UnitsForm from './components/UnitsForm.vue'
@ -158,7 +189,7 @@ import ParticipantForm from './components/ParticipantForm.vue'
import PlanForm from './components/PlanForm.vue'
import FundsForm from './components/FundsForm.vue'
/** 立项申请 表单 */
/** 立项申请 表单 */
defineOptions({ name: 'MainForm' })
const { t } = useI18n() //
@ -194,6 +225,18 @@ const formData = ref({
competentDeptName: undefined,
managerId: 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({
})
@ -314,7 +357,19 @@ const resetForm = () => {
competentDeptName: undefined,
managerId: 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()
}
</script>
</script>

View File

@ -23,10 +23,10 @@
</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 }">
<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>
</template>
</el-table-column>
@ -51,44 +51,6 @@
</el-form-item>
</template>
</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">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>
@ -143,10 +105,6 @@ const handleAdd = () => {
amount: undefined,
fiscalYear: undefined,
totalAmount: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
}
row.applyId = props.applyId
formData.value.push(row)

View File

@ -1,36 +1,36 @@
<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>
<legend>项目信息</legend>
<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 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 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 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 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 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 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 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 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 label="课题实施的风险分析" prop="riskAnalysis">
<el-input v-model="formData.riskAnalysis" type="textarea" placeholder="请输入课题实施的风险分析" />
<el-input v-model="formData.riskAnalysis" placeholder="请输入课题实施的风险分析" type="textarea" />
</el-form-item>
</fieldset>
</el-form>
@ -65,10 +65,6 @@ watch(
roadmap: undefined,
innovation: undefined,
riskAnalysis: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
}
// 2. val
if (!val) {
@ -99,4 +95,4 @@ const getData = () => {
}
defineExpose({ validate, getData })
</script>
</script>

View File

@ -81,16 +81,16 @@
</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 :prop="`${$index}.creator`" :rules="formRules.creator" class="mb-0px!">
<el-input v-model="row.creator" 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-form-item :prop="`${$index}.createTime`" :rules="formRules.createTime" class="mb-0px!">
<el-date-picker
v-model="row.createdTime"
v-model="row.createTime"
type="date"
value-format="x"
placeholder="选择创建时间"
@ -100,16 +100,16 @@
</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 :prop="`${$index}.updater`" :rules="formRules.updater" class="mb-0px!">
<el-input v-model="row.updater" 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-form-item :prop="`${$index}.updateTime`" :rules="formRules.updateTime" class="mb-0px!">
<el-date-picker
v-model="row.updatedTime"
v-model="row.updateTime"
type="date"
value-format="x"
placeholder="选择更新时间"
@ -175,10 +175,10 @@ const handleAdd = () => {
deptId: undefined,
deptName: undefined,
orderNo: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
creator: undefined,
createTime: undefined,
updater: undefined,
updateTime: undefined,
}
row.applyId = props.applyId
formData.value.push(row)

View File

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

View File

@ -100,18 +100,25 @@
</el-form-item>
</template>
</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">
<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 :prop="`${$index}.creator`" :rules="formRules.creator" class="mb-0px!">
<el-input v-model="row.creator" 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-form-item :prop="`${$index}.createTime`" :rules="formRules.createTime" class="mb-0px!">
<el-date-picker
v-model="row.createdTime"
v-model="row.createTime"
type="date"
value-format="x"
placeholder="选择创建时间"
@ -121,16 +128,16 @@
</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 :prop="`${$index}.updater`" :rules="formRules.updater" class="mb-0px!">
<el-input v-model="row.updater" 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-form-item :prop="`${$index}.updateTime`" :rules="formRules.updateTime" class="mb-0px!">
<el-date-picker
v-model="row.updatedTime"
v-model="row.updateTime"
type="date"
value-format="x"
placeholder="选择更新时间"
@ -199,10 +206,11 @@ const handleAdd = () => {
address: undefined,
sign: undefined,
orderNo: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
tenantId: undefined,
creator: undefined,
createTime: undefined,
updater: undefined,
updateTime: undefined,
}
row.applyId = props.applyId
formData.value.push(row)

View File

@ -1,100 +1,60 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="100px"
>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="100px">
<el-form-item label="编号" prop="number">
<el-input
v-model="queryParams.number"
placeholder="请输入编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
<el-input v-model="queryParams.number" placeholder="请输入编号" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="项目名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入项目名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
<el-input v-model="queryParams.name" placeholder="请输入项目名称" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="所属技术领域" prop="technicalField">
<el-select
v-model="queryParams.technicalField"
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-input v-model="queryParams.technicalField" placeholder="请输入所属技术领域" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="年度" prop="year">
<el-input
v-model="queryParams.year"
placeholder="请输入年度"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
<el-input v-model="queryParams.year" placeholder="请输入年度" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item label="负责人姓名" prop="director">
<el-input
v-model="queryParams.director"
placeholder="请输入负责人姓名"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
<el-input v-model="queryParams.director" placeholder="请输入负责人姓名" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="主管部门" prop="competentDeptName">
<el-input
v-model="queryParams.competentDeptName"
placeholder="请输入主管部门"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
<el-input v-model="queryParams.competentDeptName" placeholder="请输入主管部门" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="主管工程师" prop="managerName">
<el-input
v-model="queryParams.managerName"
placeholder="请输入主管工程师"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
<el-input v-model="queryParams.managerName" placeholder="请输入主管工程师" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</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-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['apply:main:create']"
>
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['apply:main:create']">
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['apply:main:export']"
>
<el-button type="success" plain @click="handleExport" :loading="exportLoading" v-hasPermi="['apply:main:export']">
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
@ -104,49 +64,33 @@
<!-- 列表 -->
<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="number" />
<el-table-column label="项目名称" align="center" prop="name" width="300px"/>
<el-table-column label="所属技术领域" align="center" prop="technicalField" width="200px">
<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="name" />
<el-table-column label="所属技术领域" align="center" prop="technicalField" />
<el-table-column label="年度" align="center" prop="year" />
<el-table-column label="开始时间" align="center" prop="beginDate" />
<el-table-column label="结束时间" align="center" prop="endData" />
<el-table-column label="负责人" align="center" prop="director" />
<el-table-column label="负责人姓名" align="center" prop="director" />
<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="managerName" width="150px"/>
<el-table-column label="操作" align="center" fixed="right">
<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">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['apply:main:update']"
>
<el-button link type="primary" @click="openForm('update', scope.row.id)" v-hasPermi="['apply:main:update']">
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['apply:main:delete']"
>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['apply:main:delete']">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
@ -154,12 +98,11 @@
</template>
<script setup lang="ts">
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import download from '@/utils/download'
import { MainApi, MainVO } from '@/api/apply/apply'
import MainForm from './MainForm.vue'
/** 立项申请 列表 */
/** 立项申请 列表 */
defineOptions({ name: 'ApplyMain' })
const message = useMessage() //
@ -178,6 +121,10 @@ const queryParams = reactive({
director: undefined,
competentDeptName: undefined,
managerName: undefined,
maintenanceUnitName: undefined,
undertakingUnitName: undefined,
reviewUnitName: undefined,
state: undefined,
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
@ -222,7 +169,7 @@ const handleDelete = async (id: number) => {
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
} catch { }
}
/** 导出按钮操作 */
@ -233,7 +180,7 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await MainApi.exportMain(queryParams)
download.excel(data, '立项申请.xls')
download.excel(data, '立项申请.xls')
} catch {
} finally {
exportLoading.value = false
@ -244,4 +191,4 @@ const handleExport = async () => {
onMounted(() => {
getList()
})
</script>
</script>