修改执行、变更、知识产权、公共实验室

pull/480/head
admin 2024-06-13 07:13:48 +08:00
parent 076b39f7eb
commit 8ac3f8280f
12 changed files with 361 additions and 638 deletions

View File

@ -1,61 +1,61 @@
import request from '@/config/axios'
// 变更申请 VO
export interface MainVO {
id: number // 主键Id
contractId: number // 任务书Id
projectName: string // 项目名称
projectLeader: string // 项目负责人
projectLeaderId: string // 项目负责人Id
projectCode: string // 项目编号
bfChange: string // 变更前
afChange: string // 变更后
detailReasons: string // 详细原因及具体举措
year: string // 变更年度
chengeType: string // 变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他
competentDeptId: string // 主管部门ID
competentDeptName: string // 主管部门
managerId: string // 主管工程师ID
managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: string // 维护单位ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: string // 承担单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: string // 审核单位ID
state: string // 状态
revision: number // 乐观锁
}
// 变更申请 API
export const MainApi = {
// 查询变更申请分页
getMainPage: async (params: any) => {
return await request.get({ url: `/change/main/page`, params })
},
// 查询变更申请详情
getMain: async (id: number) => {
return await request.get({ url: `/change/main/get?id=` + id })
},
// 新增变更申请
createMain: async (data: MainVO) => {
return await request.post({ url: `/change/main/create`, data })
},
// 修改变更申请
updateMain: async (data: MainVO) => {
return await request.put({ url: `/change/main/update`, data })
},
// 删除变更申请
deleteMain: async (id: number) => {
return await request.delete({ url: `/change/main/delete?id=` + id })
},
// 导出变更申请 Excel
exportMain: async (params) => {
return await request.download({ url: `/change/main/export-excel`, params })
},
}
import request from '@/config/axios'
// 变更申请 VO
export interface MainVO {
id: number // 主键Id
contractId: number // 任务书Id
projectName: string // 项目名称
projectLeader: string // 项目负责人
projectLeaderId: string // 项目负责人Id
projectCode: string // 项目编号
bfChange: string // 变更前
afChange: string // 变更后
detailReasons: string // 详细原因及具体举措
year: string // 变更年度
changeType: [] // 变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他
competentDeptId: string // 主管部门ID
competentDeptName: string // 主管部门
managerId: string // 主管工程师ID
managerName: string // 主管工程师
maintenanceUnitName: string // 维护单位名称
maintenanceUnitId: string // 维护单位ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: string // 承担单位ID
reviewUnitName: string // 审核单位名称
reviewUnitId: string // 审核单位ID
state: string // 状态
}
// 变更申请 API
export const MainApi = {
// 查询变更申请分页
getMainPage: async (params: any) => {
return await request.get({ url: `/change/main/page`, params })
},
// 查询变更申请详情
getMain: async (id: number) => {
return await request.get({ url: `/change/main/get?id=` + id })
},
// 新增变更申请
createMain: async (data: MainVO) => {
return await request.post({ url: `/change/main/create`, data })
},
// 修改变更申请
updateMain: async (data: MainVO) => {
return await request.put({ url: `/change/main/update`, data })
},
// 删除变更申请
deleteMain: async (id: number) => {
return await request.delete({ url: `/change/main/delete?id=` + id })
},
// 导出变更申请 Excel
exportMain: async (params) => {
return await request.download({ url: `/change/main/export-excel`, params })
},
}

View File

@ -1,50 +1,50 @@
import request from '@/config/axios'
// 公共实验室信 VO
export interface VO {
id: number // 主键ID
userName: string // 用户姓名
userContact: string // 用户联系方式
reservationDate: string // 预约日期
reservationTime: Date // 预约时间
labName: string // 实验室名称
joinPeople: string // 参与人员
equipment: string // 实验内容及设备
reservationNotes: string // 备注
deptId: number // 单位ID
deptName: string // 单位名称
revision: number // 乐观锁
}
// 公共实验室信 API
export const Api = {
// 查询公共实验室信分页
getPage: async (params: any) => {
return await request.get({ url: `/publicLab//page`, params })
},
// 查询公共实验室信详情
get: async (id: number) => {
return await request.get({ url: `/publicLab//get?id=` + id })
},
// 新增公共实验室信
create: async (data: VO) => {
return await request.post({ url: `/publicLab//create`, data })
},
// 修改公共实验室信
update: async (data: VO) => {
return await request.put({ url: `/publicLab//update`, data })
},
// 删除公共实验室信
delete: async (id: number) => {
return await request.delete({ url: `/publicLab//delete?id=` + id })
},
// 导出公共实验室信 Excel
export: async (params) => {
return await request.download({ url: `/publicLab//export-excel`, params })
},
}
import request from '@/config/axios'
// 公共实验室信 VO
export interface VO {
id: number // 主键ID
userName: string // 用户姓名
userContact: string // 用户联系方式
reservationDate: string // 预约日期
reservationTime: Date // 预约时间
labName: string // 实验室名称
joinPeople: string // 参与人员
equipment: string // 实验内容及设备
reservationNotes: string // 备注
deptId: number // 单位ID
deptName: string // 单位名称
revision: number // 乐观锁
}
// 公共实验室信 API
export const Api = {
// 查询公共实验室信分页
getPage: async (params: any) => {
return await request.get({ url: '/publicLab/page', params })
},
// 查询公共实验室信详情
get: async (id: number) => {
return await request.get({ url: '/publicLab/get?id=' + id })
},
// 新增公共实验室信
create: async (data: VO) => {
return await request.post({ url: '/publicLab/create', data })
},
// 修改公共实验室信
update: async (data: VO) => {
return await request.put({ url: '/publicLab/update', data })
},
// 删除公共实验室信
delete: async (id: number) => {
return await request.delete({ url: '/publicLab/delete?id=' + id })
},
// 导出公共实验室信 Excel
export: async (params) => {
return await request.download({ url: '/publicLab/export-excel', params })
},
}

View File

@ -131,7 +131,9 @@ export enum DICT_TYPE {
TECHNICAL_FIELD = "technical_field",
APPLY_UNIT_TYPE = "apply_unit_type", //立项-单位类型
DEVIATION = 'deviation',//执行-完成情况
CHANGE_TYPE = 'change_type',
CHANGE_TYPE = 'change_type', //变更-变更类型
PATENT_TYPE = 'patent_type',//知识产权-专利类型
LEGAL_STATUS = 'legal_status',//知识产权-法律状态
// ========== INFRA 模块 ==========
INFRA_BOOLEAN_STRING = 'infra_boolean_string',

View File

@ -7,79 +7,69 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="任务书Id" prop="contractId">
<el-form-item label="任务书Id" prop="contractId" v-if="false">
<el-input v-model="formData.contractId" placeholder="请输入任务书Id" />
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目负责人" prop="projectLeader">
<el-input v-model="formData.projectLeader" placeholder="请输入项目负责人" />
</el-form-item>
<el-form-item label="项目负责人Id" prop="projectLeaderId">
<el-input v-model="formData.projectLeaderId" placeholder="请输入项目负责人Id" />
</el-form-item>
<el-form-item label="项目编号" prop="projectCode">
<el-input v-model="formData.projectCode" placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="变更前" prop="bfChange">
<el-input v-model="formData.bfChange" type="textarea" placeholder="请输入变更前" />
</el-form-item>
<el-form-item label="变更后" prop="afChange">
<el-input v-model="formData.afChange" type="textarea" placeholder="请输入变更后" />
</el-form-item>
<el-form-item label="详细原因及具体举措" prop="detailReasons">
<el-input v-model="formData.detailReasons" type="textarea" placeholder="请输入详细原因及具体举措" />
</el-form-item>
<el-form-item label="变更年度" prop="year">
<el-input v-model="formData.year" placeholder="请输入变更年度" />
</el-form-item>
<el-form-item label="变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他" prop="chengeType">
<el-select v-model="formData.chengeType" placeholder="请选择变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CHENGE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="主管部门ID" prop="competentDeptId">
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
</el-form-item>
<el-form-item label="主管部门" prop="competentDeptName">
<el-input v-model="formData.competentDeptName" placeholder="请输入主管部门" />
</el-form-item>
<el-form-item label="主管工程师ID" prop="managerId">
<el-input v-model="formData.managerId" placeholder="请输入主管工程师ID" />
</el-form-item>
<el-form-item label="主管工程师" prop="managerName">
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
</el-form-item>
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
<el-input v-model="formData.maintenanceUnitName" placeholder="请输入维护单位名称" />
</el-form-item>
<el-form-item label="维护单位ID" prop="maintenanceUnitId">
<el-input v-model="formData.maintenanceUnitId" placeholder="请输入维护单位ID" />
</el-form-item>
<el-form-item label="承担单位名称" prop="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="revision">
<el-input v-model="formData.revision" placeholder="请输入乐观锁" />
</el-form-item>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编号" prop="projectCode">
<el-input v-model="formData.projectCode" placeholder="请输入项目编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目负责人" prop="projectLeader">
<el-input v-model="formData.projectLeader" placeholder="请输入项目负责人" />
</el-form-item>
</el-col>
<el-form-item label="项目负责人Id" prop="projectLeaderId" v-if="false">
<el-input v-model="formData.projectLeaderId" placeholder="请输入项目负责人Id" />
</el-form-item>
<el-col :span="8">
<el-form-item label="牵头单位" prop="undertakingUnitName">
<el-input v-model="formData.undertakingUnitName" placeholder="请输入牵头单位名称" />
</el-form-item>
</el-col>
<el-form-item label="牵头单位ID" prop="undertakingUnitId" v-if="false">
<el-input v-model="formData.undertakingUnitId" placeholder="请输入牵头单位ID" />
</el-form-item>
<el-col :span="12">
<el-form-item label="变更前" prop="bfChange">
<el-input v-model="formData.bfChange" type="textarea" :autosize="{minRows:8, maxRows:10}" placeholder="请输入变更前的内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="变更后" prop="afChange">
<el-input v-model="formData.afChange" type="textarea" :autosize="{minRows:8, maxRows:10}" placeholder="请输入变更后的内容" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="详细原因及具体举措" prop="detailReasons">
<el-input v-model="formData.detailReasons" type="textarea" :autosize="{minRows:4, maxRows:8}" placeholder="请输入详细原因及具体举措" />
</el-form-item>
</el-col>
<el-form-item label="变更类型" prop="changeType">
<!-- <el-select v-model="formData.chengeType" placeholder="请选择变更类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CHENGE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>-->
<el-checkbox-group v-model="formData.chengeType" placeholder="请选择变更类型">
<el-checkbox
v-for="dict in getStrDictOptions(DICT_TYPE.CHANGE_TYPE)"
:label="dict.label"
:key="dict.value"
/>
</el-checkbox-group>
</el-form-item>
</el-row>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
@ -201,4 +191,4 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
</script>
</script>

View File

@ -8,13 +8,13 @@
:inline="true"
label-width="68px"
>
<el-form-item label="任务书Id" prop="contractId">
<el-form-item label="项目编号" prop="projectCode">
<el-input
v-model="queryParams.contractId"
placeholder="请输入任务书Id"
v-model="queryParams.projectCode"
placeholder="请输入项目编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
class="!w-150px"
/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
@ -26,7 +26,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="项目负责人" prop="projectLeader">
<el-form-item label="项目负责人" prop="projectLeader" label-width="90">
<el-input
v-model="queryParams.projectLeader"
placeholder="请输入项目负责人"
@ -35,167 +35,33 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="项目负责人Id" prop="projectLeaderId">
<el-input
v-model="queryParams.projectLeaderId"
placeholder="请输入项目负责人Id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="项目编号" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
placeholder="请输入项目编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="变更年度" prop="year">
<el-input
<el-date-picker
v-model="queryParams.year"
placeholder="请输入变更年度"
placeholder="请选择变更年度"
type="year"
value-format="YYYY"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
class="!w-150px"
/>
</el-form-item>
<el-form-item label="变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他" prop="chengeType">
<!-- <el-form-item label="变更类型" prop="changeType">
<el-select
v-model="queryParams.chengeType"
placeholder="请选择变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他"
v-model="queryParams.changeType"
placeholder="请选择变更类型"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CHENGE_TYPE)"
v-for="dict in getStrDictOptions(DICT_TYPE.CHANGE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="主管部门ID" prop="competentDeptId">
<el-input
v-model="queryParams.competentDeptId"
placeholder="请输入主管部门ID"
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-form-item>
<el-form-item label="主管工程师ID" prop="managerId">
<el-input
v-model="queryParams.managerId"
placeholder="请输入主管工程师ID"
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-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="维护单位ID" prop="maintenanceUnitId">
<el-input
v-model="queryParams.maintenanceUnitId"
placeholder="请输入维护单位ID"
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="承担单位ID" prop="undertakingUnitId">
<el-input
v-model="queryParams.undertakingUnitId"
placeholder="请输入承担单位ID"
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="审核单位ID" prop="reviewUnitId">
<el-input
v-model="queryParams.reviewUnitId"
placeholder="请输入审核单位ID"
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 label="乐观锁" prop="revision">
<el-input
v-model="queryParams.revision"
placeholder="请输入乐观锁"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
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="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@ -223,33 +89,32 @@
<!-- 列表 -->
<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="任务书Id" align="center" prop="contractId" />
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column label="项目负责人" align="center" prop="projectLeader" />
<el-table-column label="项目负责人Id" align="center" prop="projectLeaderId" />
<el-table-column label="项目编号" align="center" prop="projectCode" />
<el-table-column label="变更前" align="center" prop="bfChange" />
<el-table-column label="变更后" align="center" prop="afChange" />
<el-table-column label="详细原因及具体举措" align="center" prop="detailReasons" />
<el-table-column label="变更年度" align="center" prop="year" />
<el-table-column label="变更类型;1:延长期限2:调整经费3:调整负责人4:调整设备5:其他" align="center" prop="chengeType">
<!-- <el-table-column label="主键Id" align="center" prop="id" />
<el-table-column label="任务书Id" align="center" prop="contractId" />-->
<el-table-column type="selection" width="30"/>
<el-table-column label="序号" align="center" width="80" type="index"/>
<el-table-column label="项目编号" align="center" width="100" prop="projectCode" />
<el-table-column label="项目名称" align="center" width="240" prop="projectName" />
<el-table-column label="项目负责人" align="center" width="100" prop="projectLeader" />
<el-table-column label="牵头单位" align="center" width="200" prop="undertakingUnitName" />
<!-- <el-table-column label="项目负责人Id" align="center" prop="projectLeaderId" />-->
<el-table-column label="变更年度" align="center" width="100" prop="year" />
<el-table-column label="变更类型" align="center" width="150" prop="changeType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CHENGE_TYPE" :value="scope.row.chengeType" />
<dict-tag :type="DICT_TYPE.CHANGE_TYPE" :value="scope.row.changeType" />
</template>
</el-table-column>
<el-table-column label="主管部门ID" align="center" prop="competentDeptId" />
<el-table-column label="主管部门" align="center" prop="competentDeptName" />
<el-table-column label="主管工程师ID" align="center" prop="managerId" />
<el-table-column label="主管工程师" align="center" prop="managerName" />
<el-table-column label="维护单位名称" align="center" prop="maintenanceUnitName" />
<el-table-column label="维护单位ID" align="center" prop="maintenanceUnitId" />
<el-table-column label="承担单位名称" align="center" prop="undertakingUnitName" />
<el-table-column label="承担单位ID" align="center" prop="undertakingUnitId" />
<el-table-column label="审核单位名称" align="center" prop="reviewUnitName" />
<el-table-column label="审核单位ID" align="center" prop="reviewUnitId" />
<el-table-column label="状态" align="center" prop="state" />
<el-table-column label="乐观锁" align="center" prop="revision" />
<!-- <el-table-column label="主管部门ID" align="center" prop="competentDeptId" />-->
<el-table-column label="主管部门" align="center" width="150" prop="competentDeptName" />
<!-- <el-table-column label="主管工程师ID" align="center" prop="managerId" />-->
<el-table-column label="主管工程师" align="center" width="150" prop="managerName" />
<!-- <el-table-column label="维护单位名称" align="center" prop="maintenanceUnitName" />
<el-table-column label="维护单位ID" align="center" prop="maintenanceUnitId" />-->
<!-- <el-table-column label="牵头单位ID" align="center" prop="undertakingUnitId" />-->
<el-table-column label="审核单位" align="center" width="150" prop="reviewUnitName" />
<!-- <el-table-column label="审核单位ID" align="center" prop="reviewUnitId" />-->
<el-table-column label="状态" align="center" width="100" prop="state" />
<el-table-column
label="创建时间"
align="center"
@ -257,7 +122,7 @@
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<el-table-column label="操作" align="center" fixed="right" width="150">
<template #default="scope">
<el-button
link
@ -319,7 +184,7 @@ const queryParams = reactive({
afChange: undefined,
detailReasons: undefined,
year: undefined,
chengeType: undefined,
changeType: undefined,
competentDeptId: undefined,
competentDeptName: undefined,
managerId: undefined,
@ -399,4 +264,4 @@ const handleExport = async () => {
onMounted(() => {
getList()
})
</script>
</script>

View File

@ -1,9 +1,5 @@
<template>
<doc-alert title="定时任务" url="https://doc.iocoder.cn/job/" />
<doc-alert title="异步任务" url="https://doc.iocoder.cn/async-task/" />
<doc-alert title="消息队列" url="https://doc.iocoder.cn/message-queue/" />
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"

View File

@ -7,79 +7,104 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="合同id" prop="contractId">
<el-input v-model="formData.contractId" placeholder="请输入合同id" />
</el-form-item>
<el-form-item label="合同编号" prop="contractCode">
<el-input v-model="formData.contractCode" placeholder="请输入合同编号" />
</el-form-item>
<el-form-item label="专利名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入专利名称" />
</el-form-item>
<el-form-item label="专利号" prop="number">
<el-input v-model="formData.number" placeholder="请输入专利号" />
</el-form-item>
<el-form-item label="发明人姓名" prop="inventorName">
<el-input v-model="formData.inventorName" placeholder="请输入发明人姓名" />
</el-form-item>
<el-form-item label="申请日期" prop="filingDate">
<el-date-picker
v-model="formData.filingDate"
type="date"
value-format="x"
placeholder="选择申请日期"
/>
</el-form-item>
<el-form-item label="公开日期" prop="publicationDate">
<el-date-picker
v-model="formData.publicationDate"
type="date"
value-format="x"
placeholder="选择公开日期"
/>
</el-form-item>
<el-form-item label="授权日期" prop="grantDate">
<el-date-picker
v-model="formData.grantDate"
type="date"
value-format="x"
placeholder="选择授权日期"
/>
</el-form-item>
<el-form-item label="专利类型(如发明、实用新型、外观设计等)" prop="patentType">
<el-select v-model="formData.patentType" placeholder="请选择专利类型(如发明、实用新型、外观设计等)">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PATENT_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="专利权人姓名或公司名称" prop="patenteeName">
<el-input v-model="formData.patenteeName" placeholder="请输入专利权人姓名或公司名称" />
</el-form-item>
<el-form-item label="相关技术领域" prop="relatedTechArea">
<el-input v-model="formData.relatedTechArea" placeholder="请输入相关技术领域" />
</el-form-item>
<el-form-item label="技术效果" prop="technicalEffect">
<el-input v-model="formData.technicalEffect" placeholder="请输入技术效果" />
</el-form-item>
<el-form-item label="法律状态(如审查中、已授权、无效等)" prop="legalStatus">
<el-radio-group v-model="formData.legalStatus">
<el-radio
v-for="dict in getStrDictOptions(DICT_TYPE.LEGAL_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-row gutter="20">
<el-form-item label="合同id" prop="contractId" v-if="false">
<el-input v-model="formData.contractId" placeholder="请输入合同id" />
</el-form-item>
<el-col :span="6">
<el-form-item label="专利名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入专利名称" class="!w-240px" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="专利号" prop="number">
<el-input v-model="formData.number" placeholder="请输入专利号" class="!w-240px" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="专利类型" prop="patentType">
<el-select v-model="formData.patentType" placeholder="请选择专利类型" class="!w-240px">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PATENT_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="关联合同编号" prop="contractCode">
<el-input v-model="formData.contractCode" placeholder="请输入关联的合同编号" class="!w-240px" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="申请日" prop="filingDate">
<el-date-picker
v-model="formData.filingDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择申请日"
class="!w-240px"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="公开日" prop="publicationDate">
<el-date-picker
v-model="formData.publicationDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择公开日"
class="!w-240px"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="授权日" prop="grantDate">
<el-date-picker
v-model="formData.grantDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择授权日"
class="!w-240px"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="相关技术领域" prop="relatedTechArea">
<el-input v-model="formData.relatedTechArea" placeholder="请输入相关技术领域" class="!w-240px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专利权人" prop="patenteeName">
<el-input v-model="formData.patenteeName" placeholder="请输入专利权人姓名或公司名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法律状态" prop="legalStatus">
<el-radio-group v-model="formData.legalStatus">
<el-radio
v-for="dict in getStrDictOptions(DICT_TYPE.LEGAL_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="技术效果" prop="technicalEffect">
<el-input v-model="formData.technicalEffect" type="textarea" :autosize="{minRows:4,maxRows:8}" placeholder="请输入技术效果" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 子表的表单 -->
<el-tabs v-model="subTabsName">
<el-tab-pane label="专利信息" name="info">
<el-tab-pane label="发明人信息" name="info">
<InfoForm ref="infoFormRef" :patents-id="formData.id" />
</el-tab-pane>
</el-tabs>
@ -121,8 +146,8 @@ const formData = ref({
legalStatus: undefined,
})
const formRules = reactive({
contractId: [{ required: true, message: '合同id不能为空', trigger: 'blur' }],
contractCode: [{ required: true, message: '合同编号不能为空', trigger: 'blur' }],
name: [{ required: true, message: '专利名称不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
@ -201,4 +226,4 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
</script>
</script>

View File

@ -9,6 +9,13 @@
>
<el-table :data="formData" class="-mt-10px">
<el-table-column label="序号" type="index" width="100" />
<el-table-column label="排序号" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.number`" :rules="formRules.number" class="mb-0px!">
<el-input v-model="row.number" placeholder="请输入排序号" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="发明人姓名" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.inventorName`" :rules="formRules.inventorName" class="mb-0px!">
@ -23,13 +30,7 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="排序号" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.number`" :rules="formRules.number" class="mb-0px!">
<el-input v-model="row.number" placeholder="请输入排序号" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="所在单位" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.deptName`" :rules="formRules.deptName" class="mb-0px!">
@ -37,13 +38,6 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="更新人" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.updated`" :rules="formRules.updated" class="mb-0px!">
<el-input v-model="row.updated" 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>
@ -123,4 +117,4 @@ const getData = () => {
}
defineExpose({ validate, getData })
</script>
</script>

View File

@ -35,43 +35,12 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="申请日期" prop="filingDate">
<el-date-picker
v-model="queryParams.filingDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="公开日期" prop="publicationDate">
<el-date-picker
v-model="queryParams.publicationDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="授权日期" prop="grantDate">
<el-date-picker
v-model="queryParams.grantDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="专利类型(如发明、实用新型、外观设计等)" prop="patentType">
<el-form-item label="专利类型" prop="patentType">
<el-select
v-model="queryParams.patentType"
placeholder="请选择专利类型(如发明、实用新型、外观设计等"
placeholder="请选择专利类型)"
clearable
class="!w-240px"
>
@ -83,10 +52,10 @@
/>
</el-select>
</el-form-item>
<el-form-item label="法律状态(如审查中、已授权、无效等)" prop="legalStatus">
<el-form-item label="法律状态" prop="legalStatus">
<el-select
v-model="queryParams.legalStatus"
placeholder="请选择法律状态(如审查中、已授权、无效等)"
placeholder="请选择法律状态"
clearable
class="!w-240px"
>
@ -98,17 +67,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
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>
@ -136,23 +95,22 @@
<!-- 列表 -->
<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="合同id" align="center" prop="contractId" />
<el-table-column label="合同编号" align="center" prop="contractCode" />
<el-table-column label="专利名称" align="center" prop="name" />
<el-table-column label="专利号" align="center" prop="number" />
<el-table-column label="发明人姓名" align="center" prop="inventorName" />
<el-table-column label="申请日期" align="center" prop="filingDate" />
<el-table-column label="公开日" align="center" prop="publicationDate" />
<el-table-column label="授权日" align="center" prop="grantDate" />
<el-table-column label="专利类型(如发明、实用新型、外观设计等)" align="center" prop="patentType">
<el-table-column type="selection" width="30"/>
<el-table-column label="序号" align="center" width="80" type="index"/>
<el-table-column label="专利号" align="center" prop="number" width="150" />
<el-table-column label="专利名称" align="center" prop="name" width="240"/>
<el-table-column label="关联项目编号" align="center" prop="contractCode" width="150" />
<el-table-column label="关联项目名称" align="center" prop="projectName" width="200" />
<el-table-column label="专利权人" align="center" prop="patenteeName" width="180"/>
<el-table-column label="公开日" align="center" prop="publicationDate" width="150"/>
<el-table-column label="授权日" align="center" prop="grantDate" width="150"/>
<el-table-column label="专利类型" align="center" prop="patentType" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.PATENT_TYPE" :value="scope.row.patentType" />
</template>
</el-table-column>
<el-table-column label="相关技术领域" align="center" prop="relatedTechArea" />
<el-table-column label="技术效果" align="center" prop="technicalEffect" />
<el-table-column label="法律状态(如审查中、已授权、无效等)" align="center" prop="legalStatus">
<el-table-column label="相关技术领域" align="center" prop="relatedTechArea" width="150" />
<el-table-column label="法律状态" align="center" prop="legalStatus" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.LEGAL_STATUS" :value="scope.row.legalStatus" />
</template>
@ -164,7 +122,7 @@
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<el-table-column label="操作" align="center" fixed="right" width="150">
<template #default="scope">
<el-button
link
@ -292,4 +250,4 @@ const handleExport = async () => {
onMounted(() => {
getList()
})
</script>
</script>

View File

@ -144,7 +144,7 @@ const formRef = ref() // 表单 Ref
const handleSelectChange = (newValue) => {
if(newValue == 0){
formData.value.reason =undefined
formData.value.reason =''
formRules.reason[0].required= false
}else{
formRules.reason[0].required= true

View File

@ -41,15 +41,6 @@
<el-form-item label="备注" prop="reservationNotes">
<el-input v-model="formData.reservationNotes" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="单位ID" prop="deptId">
<el-input v-model="formData.deptId" placeholder="请输入单位ID" />
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input v-model="formData.deptName" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input v-model="formData.revision" placeholder="请输入乐观锁" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
@ -148,4 +139,4 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
</script>
</script>

View File

@ -6,26 +6,8 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="100px"
>
<el-form-item label="用户姓名" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户姓名"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="用户联系方式" prop="userContact">
<el-input
v-model="queryParams.userContact"
placeholder="请输入用户联系方式"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="预约日期" prop="reservationDate">
<el-date-picker
v-model="queryParams.reservationDate"
@ -37,17 +19,6 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="预约时间" prop="reservationTime">
<el-date-picker
v-model="queryParams.reservationTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="实验室名称" prop="labName">
<el-input
v-model="queryParams.labName"
@ -57,71 +28,6 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="参与人员" prop="joinPeople">
<el-input
v-model="queryParams.joinPeople"
placeholder="请输入参与人员"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="实验内容及设备" prop="equipment">
<el-input
v-model="queryParams.equipment"
placeholder="请输入实验内容及设备"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="备注" prop="reservationNotes">
<el-input
v-model="queryParams.reservationNotes"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="单位ID" prop="deptId">
<el-input
v-model="queryParams.deptId"
placeholder="请输入单位ID"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input
v-model="queryParams.revision"
placeholder="请输入乐观锁"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
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>
@ -149,32 +55,28 @@
<!-- 列表 -->
<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="userName" />
<el-table-column label="用户联系方式" align="center" prop="userContact" />
<el-table-column label="预约日期" align="center" prop="reservationDate" />
<el-table-column label="序号" align="center" width="80" type="index"/>
<el-table-column label="实验室名称" align="center" prop="labName" width="200"/>
<el-table-column label="实验内容及设备" align="center" prop="equipment" width="200"/>
<el-table-column label="预约日期" align="center" prop="reservationDate" width="150" />
<el-table-column
label="预约时间"
align="center"
prop="reservationTime"
:formatter="dateFormatter"
width="180px"
width="180"
/>
<el-table-column label="实验室名称" align="center" prop="labName" />
<el-table-column label="参与人员" align="center" prop="joinPeople" />
<el-table-column label="实验内容及设备" align="center" prop="equipment" />
<el-table-column label="备注" align="center" prop="reservationNotes" />
<el-table-column label="单位ID" align="center" prop="deptId" />
<el-table-column label="单位名称" align="center" prop="deptName" />
<el-table-column label="乐观锁" align="center" prop="revision" />
<el-table-column label="用户姓名" align="center" prop="userName" width="150" />
<el-table-column label="用户联系方式" align="center" prop="userContact" width="150" />
<el-table-column label="单位名称" align="center" prop="deptName" width="200"/>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
width="180"
/>
<el-table-column label="操作" align="center">
<el-table-column label="操作" align="center" fixed="right">
<template #default="scope">
<el-button
link
@ -304,4 +206,4 @@ const handleExport = async () => {
onMounted(() => {
getList()
})
</script>
</script>