Merge branch 'master' of https://gitee.com/mtrain/yudao-ui-admin-vue3
commit
3c81c91fec
|
|
@ -1,67 +1,70 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 验收主 VO
|
||||
export interface MainVO {
|
||||
id: string // id
|
||||
contractId: string // 合同主键ID
|
||||
code: string // 课题编号
|
||||
year: string // 年度
|
||||
name: string // 课题名称
|
||||
beginDate: string // 开始时间
|
||||
endData: string // 结束时间
|
||||
competentDeptId: string // 主管部门ID
|
||||
competentDeptName: string // 主管部门
|
||||
managerId: string // 主管工程师ID
|
||||
managerName: string // 主管工程师
|
||||
createdBy: string // 创建人
|
||||
createdTime: Date // 创建时间
|
||||
updatedBy: string // 更新人
|
||||
updatedTime: Date // 更新时间
|
||||
}
|
||||
|
||||
// 验收主 API
|
||||
export const MainApi = {
|
||||
// 查询验收主分页
|
||||
getMainPage: async (params: any) => {
|
||||
return await request.get({ url: `/acceptance/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询验收主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/acceptance/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增验收主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/acceptance/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改验收主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/acceptance/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除验收主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/acceptance/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出验收主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/acceptance/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(验收详细信息) ====================
|
||||
|
||||
// 获得验收详细信息
|
||||
getInfoByAcceptanceId: async (acceptanceId) => {
|
||||
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId })
|
||||
},
|
||||
|
||||
// ==================== 子表(验收经费) ====================
|
||||
|
||||
// 获得验收经费列表
|
||||
getFundsListByAcceptanceId: async (acceptanceId) => {
|
||||
return await request.get({ url: `/acceptance/main/funds/list-by-acceptance-id?acceptanceId=` + acceptanceId })
|
||||
},
|
||||
}
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 验收主 VO
|
||||
export interface MainVO {
|
||||
id: number // id
|
||||
contractId: string // 合同主键ID
|
||||
code: string // 课题编号
|
||||
year: string // 年度
|
||||
name: string // 课题名称
|
||||
beginDate: string // 开始时间
|
||||
endDate: string // 结束时间
|
||||
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: `/acceptance/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询验收主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/acceptance/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增验收主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/acceptance/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改验收主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/acceptance/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除验收主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/acceptance/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出验收主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/acceptance/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(验收经费) ====================
|
||||
|
||||
// 获得验收经费列表
|
||||
getFundsListByAcceptanceId: async (acceptanceId) => {
|
||||
return await request.get({ url: `/acceptance/main/funds/list-by-acceptance-id?acceptanceId=` + acceptanceId })
|
||||
},
|
||||
|
||||
// ==================== 子表(验收详细信息) ====================
|
||||
|
||||
// 获得验收详细信息
|
||||
getInfoByAcceptanceId: async (acceptanceId) => {
|
||||
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,9 +108,9 @@ export const MainApi = {
|
|||
return await request.get({ url: `/apply/main/funds/list-by-apply-id?applyId=` + applyId })
|
||||
},
|
||||
getRecordList: async (params: any) => {
|
||||
return await request.get({ url: `/apply/main/aduit/records?itmeId=` + params })
|
||||
return await request.get({ url: `/apply/main/audit/records?itemId=` + params })
|
||||
},
|
||||
saveRecordList: async (data: any) => {
|
||||
return await request.post({ url: `/apply/main/aduit`, data })
|
||||
return await request.post({ url: `/apply/main/audit`, data })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,70 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 验收主 VO
|
||||
export interface MainVO {
|
||||
id: number // id
|
||||
contractId: string // 合同主键ID
|
||||
code: string // 课题编号
|
||||
year: string // 年度
|
||||
name: string // 课题名称
|
||||
beginDate: string // 开始时间
|
||||
endDate: string // 结束时间
|
||||
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: `/acceptance/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询验收主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/acceptance/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增验收主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/acceptance/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改验收主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/acceptance/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除验收主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/acceptance/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出验收主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/acceptance/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(验收经费) ====================
|
||||
|
||||
// 获得验收经费列表
|
||||
getFundsListByAcceptanceId: async (acceptanceId) => {
|
||||
return await request.get({ url: `/acceptance/main/funds/list-by-acceptance-id?acceptanceId=` + acceptanceId })
|
||||
},
|
||||
|
||||
// ==================== 子表(验收详细信息) ====================
|
||||
|
||||
// 获得验收详细信息
|
||||
getInfoByAcceptanceId: async (acceptanceId) => {
|
||||
return await request.get({ url: `/acceptance/main/info/get-by-acceptance-id?acceptanceId=` + acceptanceId })
|
||||
},
|
||||
}
|
||||
|
|
@ -1,50 +1,53 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 变更主 VO
|
||||
export interface MainVO {
|
||||
id: string // id
|
||||
contractId: string // 合同ID
|
||||
changeType: string // 变更类型
|
||||
changeContent: string // 变更内容
|
||||
competentDeptId: string // 主管部门ID
|
||||
competentDeptName: string // 主管部门
|
||||
managerId: string // 主管工程师ID
|
||||
managerName: string // 主管工程师
|
||||
createdBy: string // 创建人
|
||||
createdTime: Date // 创建时间
|
||||
updatedBy: string // 更新人
|
||||
updatedTime: Date // 更新时间
|
||||
}
|
||||
|
||||
// 变更主 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
|
||||
changeType: string // 变更类型
|
||||
changeContent: string // 变更内容
|
||||
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 })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,107 +1,107 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 合同(任务书)信息主 VO
|
||||
export interface MainVO {
|
||||
id: string // id
|
||||
code: string // 合同编号
|
||||
name: string // 任务名称
|
||||
technicalField: string // 所属技术领域
|
||||
planId: string // 计划类型Id
|
||||
planName: string // 计划类型名称
|
||||
year: string // 年度
|
||||
beginDate: string // 开始时间
|
||||
endData: string // 结束时间
|
||||
directorId: string // 负责人Id
|
||||
director: string // 负责人姓名
|
||||
gender: string // 负责人性别
|
||||
age: string // 年龄
|
||||
education: string // 学历
|
||||
major: string // 所学专业
|
||||
engagMajor: string // 从事专业
|
||||
position: string // 职务(职称)
|
||||
phoneNo: string // 电话
|
||||
email: string // 邮箱
|
||||
fax: string // 传真
|
||||
postalCode: string // 邮编
|
||||
address: string // 通讯地址
|
||||
achievement: string // 主要业绩
|
||||
competentDeptId: string // 主管部门ID
|
||||
competentDeptName: string // 主管部门
|
||||
managerId: string // 主管工程师ID
|
||||
managerName: string // 主管工程师
|
||||
}
|
||||
|
||||
// 合同(任务书)信息主 API
|
||||
export const MainApi = {
|
||||
// 查询合同(任务书)信息主分页
|
||||
getMainPage: async (params: any) => {
|
||||
return await request.get({ url: `/contract/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询合同(任务书)信息主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/contract/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增合同(任务书)信息主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/contract/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改合同(任务书)信息主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/contract/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除合同(任务书)信息主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/contract/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出合同(任务书)信息主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/contract/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同预期主要成果形式、知识产权归属) ====================
|
||||
|
||||
// 获得合同预期主要成果形式、知识产权归属列表
|
||||
getAchieListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/achie/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同经费) ====================
|
||||
|
||||
// 获得合同经费列表
|
||||
getFundsListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/funds/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同详细信息) ====================
|
||||
|
||||
// 获得合同详细信息
|
||||
getInfoByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/info/get-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同主要参加人员) ====================
|
||||
|
||||
// 获得合同主要参加人员列表
|
||||
getParticipantListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/participant/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同实施计划) ====================
|
||||
|
||||
// 获得合同实施计划列表
|
||||
getPlanListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/plan/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同单位信息) ====================
|
||||
|
||||
// 获得合同单位信息列表
|
||||
getUnitsListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/units/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
}
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 合同(任务书)信息主 VO
|
||||
export interface MainVO {
|
||||
id: number // id
|
||||
code: string // 合同编号
|
||||
name: string // 任务名称
|
||||
technicalField: string // 所属技术领域
|
||||
planId: string // 计划类型Id
|
||||
planName: string // 计划类型名称
|
||||
year: string // 年度
|
||||
beginDate: string // 开始时间
|
||||
endDate: string // 结束时间
|
||||
directorId: string // 负责人Id
|
||||
director: string // 负责人姓名
|
||||
gender: string // 负责人性别
|
||||
age: string // 年龄
|
||||
education: string // 学历
|
||||
major: string // 所学专业
|
||||
engagMajor: string // 从事专业
|
||||
position: string // 职务(职称)
|
||||
phoneNo: string // 电话
|
||||
email: string // 邮箱
|
||||
fax: string // 传真
|
||||
postalCode: string // 邮编
|
||||
address: string // 通讯地址
|
||||
achievement: string // 主要业绩
|
||||
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: `/contract/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询合同(任务书)信息主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/contract/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增合同(任务书)信息主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/contract/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改合同(任务书)信息主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/contract/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除合同(任务书)信息主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/contract/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出合同(任务书)信息主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/contract/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同经费) ====================
|
||||
|
||||
// 获得合同经费列表
|
||||
getFundsListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/funds/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同详细信息) ====================
|
||||
|
||||
// 获得合同详细信息
|
||||
getInfoByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/info/get-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同主要参加人员) ====================
|
||||
|
||||
// 获得合同主要参加人员列表
|
||||
getParticipantListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/participant/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同实施计划) ====================
|
||||
|
||||
// 获得合同实施计划列表
|
||||
getPlanListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/plan/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
|
||||
// ==================== 子表(合同单位信息) ====================
|
||||
|
||||
// 获得合同单位信息列表
|
||||
getUnitsListByContractId: async (contractId) => {
|
||||
return await request.get({ url: `/contract/main/units/list-by-contract-id?contractId=` + contractId })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,59 +1,59 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 专利信息 VO
|
||||
export interface MainVO {
|
||||
id: string // id
|
||||
contractId: string // 合同id
|
||||
contractCode: string // 合同编号
|
||||
name: string // 专利名称
|
||||
number: string // 专利号
|
||||
inventorName: string // 发明人姓名
|
||||
filingDate: string // 申请日期
|
||||
publicationDate: string // 公开日期
|
||||
grantDate: string // 授权日期
|
||||
patentType: string // 专利类型(如发明、实用新型、外观设计等)
|
||||
patenteeName: string // 专利权人姓名或公司名称
|
||||
relatedTechArea: string // 相关技术领域
|
||||
technicalEffect: string // 技术效果
|
||||
legalStatus: string // 法律状态(如审查中、已授权、无效等)
|
||||
}
|
||||
|
||||
// 专利信息 API
|
||||
export const MainApi = {
|
||||
// 查询专利信息分页
|
||||
getMainPage: async (params: any) => {
|
||||
return await request.get({ url: `/patents/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询专利信息详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/patents/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增专利信息
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/patents/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改专利信息
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/patents/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除专利信息
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/patents/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出专利信息 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/patents/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(专利信息) ====================
|
||||
|
||||
// 获得专利信息列表
|
||||
getInfoListByPatentsId: async (patentsId) => {
|
||||
return await request.get({ url: `/patents/main/info/list-by-patents-id?patentsId=` + patentsId })
|
||||
},
|
||||
}
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 专利信息 VO
|
||||
export interface MainVO {
|
||||
id: number // id
|
||||
contractId: number // 合同id
|
||||
contractCode: string // 合同编号
|
||||
name: string // 专利名称
|
||||
number: string // 专利号
|
||||
inventorName: string // 发明人姓名
|
||||
filingDate: string // 申请日期
|
||||
publicationDate: string // 公开日期
|
||||
grantDate: string // 授权日期
|
||||
patentType: string // 专利类型(如发明、实用新型、外观设计等)
|
||||
patenteeName: string // 专利权人姓名或公司名称
|
||||
relatedTechArea: string // 相关技术领域
|
||||
technicalEffect: string // 技术效果
|
||||
legalStatus: string // 法律状态(如审查中、已授权、无效等)
|
||||
}
|
||||
|
||||
// 专利信息 API
|
||||
export const MainApi = {
|
||||
// 查询专利信息分页
|
||||
getMainPage: async (params: any) => {
|
||||
return await request.get({ url: `/patents/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询专利信息详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/patents/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增专利信息
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/patents/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改专利信息
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/patents/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除专利信息
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/patents/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出专利信息 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/patents/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(专利信息) ====================
|
||||
|
||||
// 获得专利信息列表
|
||||
getInfoListByPatentsId: async (patentsId) => {
|
||||
return await request.get({ url: `/patents/main/info/list-by-patents-id?patentsId=` + patentsId })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,60 +1,63 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 执行主 VO
|
||||
export interface MainVO {
|
||||
id: string // id
|
||||
contractId: string // 合同主键Id
|
||||
contractCode: string // 合同编号
|
||||
section: string // 执行区段
|
||||
progress: string // 进展情况(正常,拖延,停顿)
|
||||
directorId: string // 负责人Id
|
||||
director: string // 负责人姓名
|
||||
competentDeptId: string // 主管部门ID
|
||||
competentDeptName: string // 主管部门
|
||||
managerId: string // 主管工程师ID
|
||||
managerName: string // 主管工程师
|
||||
createdBy: string // 创建人
|
||||
createdTime: Date // 创建时间
|
||||
updatedBy: string // 更新人
|
||||
updatedTime: Date // 更新时间
|
||||
}
|
||||
|
||||
// 执行主 API
|
||||
export const MainApi = {
|
||||
// 查询执行主分页
|
||||
getMainPage: async (params: any) => {
|
||||
return await request.get({ url: `/process/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询执行主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/process/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增执行主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/process/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改执行主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/process/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除执行主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/process/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出执行主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/process/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(执行详细信息) ====================
|
||||
|
||||
// 获得执行详细信息
|
||||
getInfoByProcessId: async (processId) => {
|
||||
return await request.get({ url: `/process/main/info/get-by-process-id?processId=` + processId })
|
||||
},
|
||||
}
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 执行主 VO
|
||||
export interface MainVO {
|
||||
id: number // id
|
||||
contractId: number // 合同主键Id
|
||||
contractCode: string // 合同编号
|
||||
section: string // 执行区段
|
||||
progress: string // 进展情况(正常,拖延,停顿)
|
||||
directorId: string // 负责人Id
|
||||
director: string // 负责人姓名
|
||||
competentDeptId: string // 主管部门ID
|
||||
competentDeptName: string // 主管部门
|
||||
managerId: string // 主管工程师ID
|
||||
managerName: string // 主管工程师
|
||||
}
|
||||
|
||||
// 执行主 API
|
||||
export const MainApi = {
|
||||
// 查询执行主分页
|
||||
getMainPage: async (params: any) => {
|
||||
return await request.get({ url: `/process/main/page`, params })
|
||||
},
|
||||
|
||||
// 查询执行主详情
|
||||
getMain: async (id: number) => {
|
||||
return await request.get({ url: `/process/main/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增执行主
|
||||
createMain: async (data: MainVO) => {
|
||||
return await request.post({ url: `/process/main/create`, data })
|
||||
},
|
||||
|
||||
// 修改执行主
|
||||
updateMain: async (data: MainVO) => {
|
||||
return await request.put({ url: `/process/main/update`, data })
|
||||
},
|
||||
|
||||
// 删除执行主
|
||||
deleteMain: async (id: number) => {
|
||||
return await request.delete({ url: `/process/main/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出执行主 Excel
|
||||
exportMain: async (params) => {
|
||||
return await request.download({ url: `/process/main/export-excel`, params })
|
||||
},
|
||||
|
||||
// ==================== 子表(执行经费情况) ====================
|
||||
|
||||
// 获得执行经费情况列表
|
||||
getFundsListByProcessId: async (processId) => {
|
||||
return await request.get({ url: `/process/main/funds/list-by-process-id?processId=` + processId })
|
||||
},
|
||||
|
||||
// ==================== 子表(执行详细信息) ====================
|
||||
|
||||
// 获得执行详细信息
|
||||
getInfoByProcessId: async (processId) => {
|
||||
return await request.get({ url: `/process/main/info/get-by-process-id?processId=` + processId })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,49 +1,49 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 公共实验室信 VO
|
||||
export interface LabInfoVO {
|
||||
id: string // id
|
||||
userName: string // 用户姓名
|
||||
userContact: string // 用户联系方式
|
||||
reservationDate: string // 预约日期
|
||||
labName: string // 实验室名称
|
||||
reservationDuration: string // 预约时长(小时)
|
||||
status: string // 预约状态(如待审核、已确认、已拒绝等)
|
||||
reviewerId: string // 审核人ID
|
||||
reviewerName: string // 审核人姓名
|
||||
reviewComments: string // 审核意见(如有)
|
||||
reservationNotes: string // 预约备注(如有)
|
||||
}
|
||||
|
||||
// 公共实验室信 API
|
||||
export const LabInfoApi = {
|
||||
// 查询公共实验室信分页
|
||||
getLabInfoPage: async (params: any) => {
|
||||
return await request.get({ url: `/publicLab/lab-info/page`, params })
|
||||
},
|
||||
|
||||
// 查询公共实验室信详情
|
||||
getLabInfo: async (id: number) => {
|
||||
return await request.get({ url: `/publicLab/lab-info/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增公共实验室信
|
||||
createLabInfo: async (data: LabInfoVO) => {
|
||||
return await request.post({ url: `/publicLab/lab-info/create`, data })
|
||||
},
|
||||
|
||||
// 修改公共实验室信
|
||||
updateLabInfo: async (data: LabInfoVO) => {
|
||||
return await request.put({ url: `/publicLab/lab-info/update`, data })
|
||||
},
|
||||
|
||||
// 删除公共实验室信
|
||||
deleteLabInfo: async (id: number) => {
|
||||
return await request.delete({ url: `/publicLab/lab-info/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出公共实验室信 Excel
|
||||
exportLabInfo: async (params) => {
|
||||
return await request.download({ url: `/publicLab/lab-info/export-excel`, params })
|
||||
},
|
||||
}
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 公共实验室信 VO
|
||||
export interface LabInfoVO {
|
||||
id: number // id
|
||||
userName: string // 用户姓名
|
||||
userContact: string // 用户联系方式
|
||||
reservationDate: string // 预约日期
|
||||
labName: string // 实验室名称
|
||||
reservationDuration: string // 预约时长(小时)
|
||||
status: string // 预约状态(如待审核、已确认、已拒绝等)
|
||||
reviewerId: string // 审核人ID
|
||||
reviewerName: string // 审核人姓名
|
||||
reviewComments: string // 审核意见(如有)
|
||||
reservationNotes: string // 预约备注(如有)
|
||||
}
|
||||
|
||||
// 公共实验室信 API
|
||||
export const LabInfoApi = {
|
||||
// 查询公共实验室信分页
|
||||
getLabInfoPage: async (params: any) => {
|
||||
return await request.get({ url: `/publicLab/lab-info/page`, params })
|
||||
},
|
||||
|
||||
// 查询公共实验室信详情
|
||||
getLabInfo: async (id: number) => {
|
||||
return await request.get({ url: `/publicLab/lab-info/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增公共实验室信
|
||||
createLabInfo: async (data: LabInfoVO) => {
|
||||
return await request.post({ url: `/publicLab/lab-info/create`, data })
|
||||
},
|
||||
|
||||
// 修改公共实验室信
|
||||
updateLabInfo: async (data: LabInfoVO) => {
|
||||
return await request.put({ url: `/publicLab/lab-info/update`, data })
|
||||
},
|
||||
|
||||
// 删除公共实验室信
|
||||
deleteLabInfo: async (id: number) => {
|
||||
return await request.delete({ url: `/publicLab/lab-info/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出公共实验室信 Excel
|
||||
exportLabInfo: async (params) => {
|
||||
return await request.download({ url: `/publicLab/lab-info/export-excel`, params })
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,6 @@ const title = computed(() => appStore.getTitle)
|
|||
:class="prefixCls"
|
||||
class="h-[var(--app-footer-height)] bg-[var(--app-content-bg-color)] text-center leading-[var(--app-footer-height)] text-[var(--el-text-color-placeholder)] dark:bg-[var(--el-bg-color)]"
|
||||
>
|
||||
<span class="text-14px">Copyright ©2022-{{ title }}</span>
|
||||
<span class="text-14px">Copyright ©2024-{{ title }}</span>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
<!-- 右边的登录界面 -->
|
||||
<Transition appear enter-active-class="animate__animated animate__bounceInRight">
|
||||
<div
|
||||
class="m-auto h-full w-[100%] flex items-center at-2xl:max-w-500px at-lg:max-w-500px at-md:max-w-500px at-xl:max-w-500px"
|
||||
class="fm-auto h-full w-[100%] flex items-center at-2xl:max-w-500px at-lg:max-w-500px at-md:max-w-500px at-xl:max-w-500px"
|
||||
>
|
||||
<!-- 账号登录 -->
|
||||
<LoginForm class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ const loginData = reactive({
|
|||
captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE !== 'false',
|
||||
tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE !== 'false',
|
||||
loginForm: {
|
||||
tenantName: '芋道源码',
|
||||
tenantName: '金隅集团',
|
||||
username: 'admin',
|
||||
password: 'admin123',
|
||||
captchaVerification: '',
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@
|
|||
placeholder="选择开始时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束时间" prop="endData">
|
||||
<el-form-item label="结束时间" prop="endDate">
|
||||
<el-date-picker
|
||||
v-model="formData.endData"
|
||||
v-model="formData.endDate"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择结束时间"
|
||||
|
|
@ -47,37 +47,36 @@
|
|||
<el-form-item label="主管工程师" prop="managerName">
|
||||
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createdBy">
|
||||
<el-input v-model="formData.createdBy" placeholder="请输入创建人" />
|
||||
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
|
||||
<el-input v-model="formData.maintenanceUnitName" placeholder="请输入维护单位名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createdTime">
|
||||
<el-date-picker
|
||||
v-model="formData.createdTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择创建时间"
|
||||
/>
|
||||
<el-form-item label="维护单位ID" prop="maintenanceUnitId">
|
||||
<el-input v-model="formData.maintenanceUnitId" placeholder="请输入维护单位ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人" prop="updatedBy">
|
||||
<el-input v-model="formData.updatedBy" placeholder="请输入更新人" />
|
||||
<el-form-item label="承担单位名称" prop="undertakingUnitName">
|
||||
<el-input v-model="formData.undertakingUnitName" placeholder="请输入承担单位名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updatedTime">
|
||||
<el-date-picker
|
||||
v-model="formData.updatedTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择更新时间"
|
||||
/>
|
||||
<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>
|
||||
<!-- 子表的表单 -->
|
||||
<el-tabs v-model="subTabsName">
|
||||
<el-tab-pane label="验收详细信息" name="info">
|
||||
<InfoForm ref="infoFormRef" :acceptance-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="验收经费" name="funds">
|
||||
<FundsForm ref="fundsFormRef" :acceptance-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="验收详细信息" name="info">
|
||||
<InfoForm ref="infoFormRef" :acceptance-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<template #footer>
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
||||
|
|
@ -87,8 +86,8 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { MainApi, MainVO } from '@/api/acceptance/acceptance'
|
||||
import InfoForm from './components/InfoForm.vue'
|
||||
import FundsForm from './components/FundsForm.vue'
|
||||
import InfoForm from './components/InfoForm.vue'
|
||||
|
||||
/** 验收主 表单 */
|
||||
defineOptions({ name: 'MainForm' })
|
||||
|
|
@ -107,24 +106,27 @@ const formData = ref({
|
|||
year: undefined,
|
||||
name: undefined,
|
||||
beginDate: undefined,
|
||||
endData: undefined,
|
||||
endDate: undefined,
|
||||
competentDeptId: undefined,
|
||||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
maintenanceUnitId: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
undertakingUnitId: undefined,
|
||||
reviewUnitName: undefined,
|
||||
reviewUnitId: undefined,
|
||||
state: undefined,
|
||||
})
|
||||
const formRules = reactive({
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
/** 子表的表单 */
|
||||
const subTabsName = ref('info')
|
||||
const infoFormRef = ref()
|
||||
const subTabsName = ref('funds')
|
||||
const fundsFormRef = ref()
|
||||
const infoFormRef = ref()
|
||||
|
||||
/** 打开弹窗 */
|
||||
const open = async (type: string, id?: number) => {
|
||||
|
|
@ -150,25 +152,25 @@ const submitForm = async () => {
|
|||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
// 校验子表单
|
||||
try {
|
||||
await infoFormRef.value.validate()
|
||||
} catch (e) {
|
||||
subTabsName.value = 'info'
|
||||
return
|
||||
}
|
||||
try {
|
||||
await fundsFormRef.value.validate()
|
||||
} catch (e) {
|
||||
subTabsName.value = 'funds'
|
||||
return
|
||||
}
|
||||
try {
|
||||
await infoFormRef.value.validate()
|
||||
} catch (e) {
|
||||
subTabsName.value = 'info'
|
||||
return
|
||||
}
|
||||
// 提交请求
|
||||
formLoading.value = true
|
||||
try {
|
||||
const data = formData.value as unknown as MainVO
|
||||
// 拼接子表的数据
|
||||
data.info = infoFormRef.value.getData()
|
||||
data.fundss = fundsFormRef.value.getData()
|
||||
data.info = infoFormRef.value.getData()
|
||||
if (formType.value === 'create') {
|
||||
await MainApi.createMain(data)
|
||||
message.success(t('common.createSuccess'))
|
||||
|
|
@ -193,16 +195,19 @@ const resetForm = () => {
|
|||
year: undefined,
|
||||
name: undefined,
|
||||
beginDate: undefined,
|
||||
endData: undefined,
|
||||
endDate: undefined,
|
||||
competentDeptId: undefined,
|
||||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
maintenanceUnitId: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
undertakingUnitId: undefined,
|
||||
reviewUnitName: undefined,
|
||||
reviewUnitId: undefined,
|
||||
state: undefined,
|
||||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -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,6 +51,13 @@
|
|||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位Id" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.unitId`" :rules="formRules.unitId" class="mb-0px!">
|
||||
<el-input v-model="row.unitId" placeholder="请输入单位Id" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位名称" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.unitName`" :rules="formRules.unitName" class="mb-0px!">
|
||||
|
|
@ -112,6 +119,7 @@ const handleAdd = () => {
|
|||
amount: undefined,
|
||||
fiscalYear: undefined,
|
||||
totalAmount: undefined,
|
||||
unitId: undefined,
|
||||
unitName: undefined,
|
||||
}
|
||||
row.acceptanceId = props.acceptanceId
|
||||
|
|
@ -134,4 +142,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,120 +0,0 @@
|
|||
<template>
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@click="openForm('create')"
|
||||
v-hasPermi="['acceptance:main:create']"
|
||||
>
|
||||
<Icon icon="ep:plus" class="mr-5px" /> 新增
|
||||
</el-button>
|
||||
<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="secondaryCategory" />
|
||||
<el-table-column label="经费金额" align="center" prop="amount" />
|
||||
<el-table-column label="经费年度" align="center" prop="fiscalYear" />
|
||||
<el-table-column label="总金额" align="center" prop="totalAmount" />
|
||||
<el-table-column label="单位名称" align="center" prop="unitName" />
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
@click="openForm('update', scope.row.id)"
|
||||
v-hasPermi="['acceptance:main:update']"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="danger"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
v-hasPermi="['acceptance: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"
|
||||
/>
|
||||
</ContentWrap>
|
||||
<!-- 表单弹窗:添加/修改 -->
|
||||
<FundsForm ref="formRef" @success="getList" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { MainApi } from '@/api/acceptance/acceptance'
|
||||
import FundsForm from './FundsForm.vue'
|
||||
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
|
||||
const props = defineProps<{
|
||||
acceptanceId: undefined // 验收ID(主表的关联字段)
|
||||
}>()
|
||||
const loading = ref(false) // 列表的加载中
|
||||
const list = ref([]) // 列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
acceptanceId: undefined
|
||||
})
|
||||
|
||||
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
||||
watch(
|
||||
() => props.acceptanceId,
|
||||
(val) => {
|
||||
queryParams.acceptanceId = val
|
||||
handleQuery()
|
||||
},
|
||||
{ immediate: false }
|
||||
)
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await MainApi.getFundsPage(queryParams)
|
||||
list.value = data.list
|
||||
total.value = data.total
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNo = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 添加/修改操作 */
|
||||
const formRef = ref()
|
||||
const openForm = (type: string, id?: number) => {
|
||||
if (!props.acceptanceId) {
|
||||
message.error('请选择一个验收主')
|
||||
return
|
||||
}
|
||||
formRef.value.open(type, id, props.acceptanceId)
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (id: number) => {
|
||||
try {
|
||||
// 删除的二次确认
|
||||
await message.delConfirm()
|
||||
// 发起删除
|
||||
await MainApi.deleteFunds(id)
|
||||
message.success(t('common.delSuccess'))
|
||||
// 刷新列表
|
||||
await getList()
|
||||
} catch {}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
<template>
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@click="openForm('create')"
|
||||
v-hasPermi="['acceptance:main:create']"
|
||||
>
|
||||
<Icon icon="ep:plus" class="mr-5px" /> 新增
|
||||
</el-button>
|
||||
<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="researchTarget" />
|
||||
<el-table-column label="主要研究工作" align="center" prop="mainWork" />
|
||||
<el-table-column label="经济、社会与环境效益" align="center" prop="economicBenefits" />
|
||||
<el-table-column label="产业化情况" align="center" prop="industrialize" />
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
@click="openForm('update', scope.row.id)"
|
||||
v-hasPermi="['acceptance:main:update']"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="danger"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
v-hasPermi="['acceptance: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"
|
||||
/>
|
||||
</ContentWrap>
|
||||
<!-- 表单弹窗:添加/修改 -->
|
||||
<InfoForm ref="formRef" @success="getList" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { MainApi } from '@/api/acceptance/acceptance'
|
||||
import InfoForm from './InfoForm.vue'
|
||||
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
|
||||
const props = defineProps<{
|
||||
acceptanceId: undefined // 验收ID(主表的关联字段)
|
||||
}>()
|
||||
const loading = ref(false) // 列表的加载中
|
||||
const list = ref([]) // 列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
acceptanceId: undefined
|
||||
})
|
||||
|
||||
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
||||
watch(
|
||||
() => props.acceptanceId,
|
||||
(val) => {
|
||||
queryParams.acceptanceId = val
|
||||
handleQuery()
|
||||
},
|
||||
{ immediate: false }
|
||||
)
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await MainApi.getInfoPage(queryParams)
|
||||
list.value = data.list
|
||||
total.value = data.total
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNo = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 添加/修改操作 */
|
||||
const formRef = ref()
|
||||
const openForm = (type: string, id?: number) => {
|
||||
if (!props.acceptanceId) {
|
||||
message.error('请选择一个验收主')
|
||||
return
|
||||
}
|
||||
formRef.value.open(type, id, props.acceptanceId)
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (id: number) => {
|
||||
try {
|
||||
// 删除的二次确认
|
||||
await message.delConfirm()
|
||||
// 发起删除
|
||||
await MainApi.deleteInfo(id)
|
||||
message.success(t('common.delSuccess'))
|
||||
// 刷新列表
|
||||
await getList()
|
||||
} catch {}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -35,40 +35,10 @@
|
|||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始时间" prop="beginDate">
|
||||
<el-date-picker
|
||||
v-model="queryParams.beginDate"
|
||||
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="endData">
|
||||
<el-date-picker
|
||||
v-model="queryParams.endData"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="date"
|
||||
placeholder="选择结束时间"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="主管部门" prop="competentDeptName">
|
||||
<el-form-item label="状态" prop="state">
|
||||
<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="请输入主管工程师"
|
||||
v-model="queryParams.state"
|
||||
placeholder="请输入状态"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
|
|
@ -102,14 +72,17 @@
|
|||
<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="code" />
|
||||
<el-table-column label="年度" align="center" prop="year" />
|
||||
<el-table-column label="课题名称" align="center" prop="name" />
|
||||
<el-table-column label="开始时间" align="center" prop="beginDate" />
|
||||
<el-table-column label="结束时间" align="center" prop="endData" />
|
||||
<el-table-column label="结束时间" align="center" prop="endDate" />
|
||||
<el-table-column label="主管部门" align="center" prop="competentDeptName" />
|
||||
<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">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
|
|
@ -164,11 +137,7 @@ const queryParams = reactive({
|
|||
code: undefined,
|
||||
year: undefined,
|
||||
name: undefined,
|
||||
beginDate: [],
|
||||
endData: undefined,
|
||||
endData: [],
|
||||
competentDeptName: undefined,
|
||||
managerName: undefined,
|
||||
state: undefined,
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
|
|
@ -235,4 +204,4 @@ const handleExport = async () => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,22 +1,38 @@
|
|||
<template>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
v-loading="formLoading"
|
||||
label-width="0px"
|
||||
:inline-message="true"
|
||||
>
|
||||
<el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="0px"
|
||||
:inline-message="true">
|
||||
<fieldset v-for="(item, index) in formData" :key="index">
|
||||
<el-row :gutter="20">
|
||||
<el-col :xs="24" :sm="12" :md="8" :lg="6">
|
||||
<el-form-item :rules="formRules.fiscalYear" label="经费年度">
|
||||
<el-date-picker v-model="item.fiscalYear" value-format="YYYY-MM-DD" type="date" placeholder="选择经费年度"
|
||||
clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8" :lg="6">
|
||||
<el-form-item :rules="formRules.amount" label="经费金额">
|
||||
<el-date-picker v-model="item.amount" value-format="YYYY-MM-DD" type="date" placeholder="请输入经费金额"
|
||||
clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8" :lg="6">
|
||||
<el-form-item :rules="formRules.amount" label="经费金额">
|
||||
<el-date-picker v-model="item.amount" value-format="YYYY-MM-DD" type="date" placeholder="请输入经费金额"
|
||||
clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</fieldset>
|
||||
<el-table :data="formData" class="-mt-10px">
|
||||
<el-table-column label="序号" type="index" width="100" />
|
||||
<el-table-column v-for="(item,index) in cloumnList" :key="index" :label="item.title" >
|
||||
<template #default="{ row}">
|
||||
<el-form-item class="mb-0px!">
|
||||
<el-input v-model="row[item.key]" :placeholder="'请输入'+row[item.key]"/>
|
||||
<el-table-column v-for="(item, index) in cloumnList" :key="index" :label="item.title">
|
||||
<template #default="{ row }">
|
||||
<el-form-item class="mb-0px!">
|
||||
<el-input v-model="row[item.key]" :placeholder="'请输入' + row[item.key]" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="经费来源ID" min-width="150">
|
||||
<el-table-column label="经费来源ID" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.sourceId`" :rules="formRules.sourceId" class="mb-0px!">
|
||||
<el-input v-model="row.sourceId" placeholder="请输入经费来源ID" />
|
||||
|
|
@ -117,13 +133,13 @@ const handleAdd = () => {
|
|||
formData.value.push(row)
|
||||
}
|
||||
//列表
|
||||
const cloumnList =ref(
|
||||
const cloumnList = ref(
|
||||
[{
|
||||
"key":"secondaryCategory",
|
||||
"title":'科目'
|
||||
},{
|
||||
"key":"2024",
|
||||
"title":'2024年'
|
||||
"key": "secondaryCategory",
|
||||
"title": '科目'
|
||||
}, {
|
||||
"key": "2024",
|
||||
"title": '2024年'
|
||||
}]
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,12 @@
|
|||
<el-form-item label="审核意见:" prop="comment" :rules="{ required: true, trigger: ['blur', 'change'] }">
|
||||
<el-input v-model="listenerFieldForm.comment" clearable type="textarea" :rows="6" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审核状态:">
|
||||
<el-radio-group v-model="listenerFieldForm.status">
|
||||
<el-radio-button label="1">通过</el-radio-button>
|
||||
<el-radio-button label="0">不通过</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button size="small" @click="Visible = false">取 消</el-button>
|
||||
|
|
@ -116,15 +121,20 @@
|
|||
</template>
|
||||
</el-dialog>
|
||||
<!-- 审核记录 -->
|
||||
<el-dialog title="审核" v-model="Visible1" width="600px" append-to-body destroy-on-close>
|
||||
<el-table :data="listRecord" :stripe="true" :show-overflow-tooltip="true">
|
||||
<!-- <el-table-column label="id" align="center" prop="id" /> -->
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="审核人名称" align="center" prop="creatorName" />
|
||||
<el-table-column label="审核意见" align="center" prop="comment" />
|
||||
<el-table-column label="审核状态" align="center" prop="status" />
|
||||
<el-table-column label="审核时间" align="center" prop="createTime" />
|
||||
</el-table>
|
||||
<el-dialog title="审核记录" v-model="Visible1" width="600px" append-to-body destroy-on-close>
|
||||
<el-timeline style="max-width: 600px">
|
||||
<el-timeline-item :timestamp="item.createTime" placement="top" v-for="(item,index) in listRecord" :key="index">
|
||||
<el-card>
|
||||
<div class="flex items-center justify-between ">
|
||||
<h4>{{item.creatorName}}</h4>
|
||||
<span style="color:#409eff" v-if="item.status==1">通过</span>
|
||||
<span v-else style="color: #f00000">不通过</span>
|
||||
</div>
|
||||
<p>{{item.comment}}</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
|
||||
</el-timeline>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
|
|
@ -143,7 +153,7 @@ const Visible1 = ref(false) // 监听器 显示状态
|
|||
const listenerFieldForm = ref<any>({}) // 监听器 注入字段 详情表单
|
||||
const loading = ref(true) // 列表的加载中
|
||||
const list = ref<MainVO[]>([]) // 列表的数据
|
||||
const listRecord = ref<MainVO[]>([]) // 审核列表的数据
|
||||
const listRecord = ref([]) // 审核列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
|
|
@ -234,9 +244,9 @@ const saveListenerFiled = async () => {
|
|||
if (!validateStatus) return // 验证不通过直接返回
|
||||
try {
|
||||
var param ={
|
||||
itmeId: listid.value,
|
||||
status:'',
|
||||
comment:''
|
||||
itemId: listid.value,
|
||||
status:listenerFieldForm.value.status,
|
||||
comment:listenerFieldForm.value.comment
|
||||
}
|
||||
await MainApi.saveRecordList(param)
|
||||
Visible.value = false
|
||||
|
|
@ -248,8 +258,9 @@ const saveListenerFiled = async () => {
|
|||
const aduitRecord = async (id?: number) => {
|
||||
try {
|
||||
const data = await MainApi.getRecordList(id)
|
||||
Visible1.value = true
|
||||
listRecord.value = data.list
|
||||
listRecord.value = data
|
||||
Visible1.value = true
|
||||
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
|
@ -258,4 +269,14 @@ const aduitRecord = async (id?: number) => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
<style>
|
||||
.el-timeline-item__content .el-card__body{
|
||||
padding:10px;
|
||||
}
|
||||
.el-timeline-item__content .el-card__body h4{
|
||||
line-height: 30px;
|
||||
margin: 0;
|
||||
padding:0
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="变更内容" prop="changeContent">
|
||||
<el-input v-model="formData.changeContent" type="textarea" placeholder="请输入变更内容" />
|
||||
<Editor v-model="formData.changeContent" height="150px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="主管部门ID" prop="competentDeptId">
|
||||
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
|
||||
|
|
@ -30,27 +30,26 @@
|
|||
<el-form-item label="主管工程师" prop="managerName">
|
||||
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createdBy">
|
||||
<el-input v-model="formData.createdBy" placeholder="请输入创建人" />
|
||||
<el-form-item label="维护单位名称" prop="maintenanceUnitName">
|
||||
<el-input v-model="formData.maintenanceUnitName" placeholder="请输入维护单位名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createdTime">
|
||||
<el-date-picker
|
||||
v-model="formData.createdTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择创建时间"
|
||||
/>
|
||||
<el-form-item label="维护单位ID" prop="maintenanceUnitId">
|
||||
<el-input v-model="formData.maintenanceUnitId" placeholder="请输入维护单位ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人" prop="updatedBy">
|
||||
<el-input v-model="formData.updatedBy" placeholder="请输入更新人" />
|
||||
<el-form-item label="承担单位名称" prop="undertakingUnitName">
|
||||
<el-input v-model="formData.undertakingUnitName" placeholder="请输入承担单位名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updatedTime">
|
||||
<el-date-picker
|
||||
v-model="formData.updatedTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择更新时间"
|
||||
/>
|
||||
<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>
|
||||
<template #footer>
|
||||
|
|
@ -81,10 +80,13 @@ const formData = ref({
|
|||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
maintenanceUnitId: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
undertakingUnitId: undefined,
|
||||
reviewUnitName: undefined,
|
||||
reviewUnitId: undefined,
|
||||
state: undefined,
|
||||
})
|
||||
const formRules = reactive({
|
||||
})
|
||||
|
|
@ -143,11 +145,14 @@ const resetForm = () => {
|
|||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
maintenanceUnitId: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
undertakingUnitId: undefined,
|
||||
reviewUnitName: undefined,
|
||||
reviewUnitId: undefined,
|
||||
state: undefined,
|
||||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,15 @@
|
|||
:inline="true"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="合同ID" prop="contractId">
|
||||
<el-input
|
||||
v-model="queryParams.contractId"
|
||||
placeholder="请输入合同ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="变更类型" prop="changeType">
|
||||
<el-select
|
||||
v-model="queryParams.changeType"
|
||||
|
|
@ -36,6 +45,42 @@
|
|||
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>
|
||||
|
|
@ -66,11 +111,12 @@
|
|||
<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="changeType" />
|
||||
<el-table-column label="变更内容" align="center" prop="changeContent" />
|
||||
<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="承担单位名称" 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">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
|
|
@ -122,9 +168,14 @@ const total = ref(0) // 列表的总页数
|
|||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
contractId: undefined,
|
||||
changeType: undefined,
|
||||
competentDeptName: undefined,
|
||||
managerName: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
reviewUnitName: undefined,
|
||||
state: undefined,
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
|
|
@ -191,4 +242,4 @@ const handleExport = async () => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@
|
|||
placeholder="选择开始时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束时间" prop="endData">
|
||||
<el-form-item label="结束时间" prop="endDate">
|
||||
<el-date-picker
|
||||
v-model="formData.endData"
|
||||
v-model="formData.endDate"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择结束时间"
|
||||
|
|
@ -68,13 +68,34 @@
|
|||
<el-input v-model="formData.age" placeholder="请输入年龄" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学历" prop="education">
|
||||
<el-input v-model="formData.education" placeholder="请输入学历" />
|
||||
<el-select v-model="formData.education" placeholder="请选择学历">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.EDUCATION)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所学专业" prop="major">
|
||||
<el-input v-model="formData.major" placeholder="请输入所学专业" />
|
||||
<el-select v-model="formData.major" placeholder="请选择所学专业">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.MAJOR)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="从事专业" prop="engagMajor">
|
||||
<el-input v-model="formData.engagMajor" placeholder="请输入从事专业" />
|
||||
<el-select v-model="formData.engagMajor" placeholder="请选择从事专业">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.MAJOR)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="职务(职称)" prop="position">
|
||||
<el-input v-model="formData.position" placeholder="请输入职务(职称)" />
|
||||
|
|
@ -92,10 +113,10 @@
|
|||
<el-input v-model="formData.postalCode" placeholder="请输入邮编" />
|
||||
</el-form-item>
|
||||
<el-form-item label="通讯地址" prop="address">
|
||||
<el-input v-model="formData.address" placeholder="请输入通讯地址" />
|
||||
<el-input v-model="formData.address" type="textarea" placeholder="请输入通讯地址" />
|
||||
</el-form-item>
|
||||
<el-form-item label="主要业绩" prop="achievement">
|
||||
<el-input v-model="formData.achievement" placeholder="请输入主要业绩" />
|
||||
<el-input v-model="formData.achievement" type="textarea" placeholder="请输入主要业绩" />
|
||||
</el-form-item>
|
||||
<el-form-item label="主管部门ID" prop="competentDeptId">
|
||||
<el-input v-model="formData.competentDeptId" placeholder="请输入主管部门ID" />
|
||||
|
|
@ -109,12 +130,30 @@
|
|||
<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>
|
||||
<!-- 子表的表单 -->
|
||||
<el-tabs v-model="subTabsName">
|
||||
<el-tab-pane label="合同预期主要成果形式、知识产权归属" name="achie">
|
||||
<AchieForm ref="achieFormRef" :contract-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="合同经费" name="funds">
|
||||
<FundsForm ref="fundsFormRef" :contract-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
|
|
@ -140,7 +179,6 @@
|
|||
<script setup lang="ts">
|
||||
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import { MainApi, MainVO } from '@/api/contract/contract'
|
||||
import AchieForm from './components/AchieForm.vue'
|
||||
import FundsForm from './components/FundsForm.vue'
|
||||
import InfoForm from './components/InfoForm.vue'
|
||||
import ParticipantForm from './components/ParticipantForm.vue'
|
||||
|
|
@ -166,7 +204,7 @@ const formData = ref({
|
|||
planName: undefined,
|
||||
year: undefined,
|
||||
beginDate: undefined,
|
||||
endData: undefined,
|
||||
endDate: undefined,
|
||||
directorId: undefined,
|
||||
director: undefined,
|
||||
gender: undefined,
|
||||
|
|
@ -185,14 +223,20 @@ const formData = ref({
|
|||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
maintenanceUnitId: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
undertakingUnitId: undefined,
|
||||
reviewUnitName: undefined,
|
||||
reviewUnitId: undefined,
|
||||
state: undefined,
|
||||
})
|
||||
const formRules = reactive({
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
/** 子表的表单 */
|
||||
const subTabsName = ref('achie')
|
||||
const achieFormRef = ref()
|
||||
const subTabsName = ref('funds')
|
||||
const fundsFormRef = ref()
|
||||
const infoFormRef = ref()
|
||||
const participantFormRef = ref()
|
||||
|
|
@ -223,12 +267,6 @@ const submitForm = async () => {
|
|||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
// 校验子表单
|
||||
try {
|
||||
await achieFormRef.value.validate()
|
||||
} catch (e) {
|
||||
subTabsName.value = 'achie'
|
||||
return
|
||||
}
|
||||
try {
|
||||
await fundsFormRef.value.validate()
|
||||
} catch (e) {
|
||||
|
|
@ -264,7 +302,6 @@ const submitForm = async () => {
|
|||
try {
|
||||
const data = formData.value as unknown as MainVO
|
||||
// 拼接子表的数据
|
||||
data.achies = achieFormRef.value.getData()
|
||||
data.fundss = fundsFormRef.value.getData()
|
||||
data.info = infoFormRef.value.getData()
|
||||
data.participants = participantFormRef.value.getData()
|
||||
|
|
@ -296,7 +333,7 @@ const resetForm = () => {
|
|||
planName: undefined,
|
||||
year: undefined,
|
||||
beginDate: undefined,
|
||||
endData: undefined,
|
||||
endDate: undefined,
|
||||
directorId: undefined,
|
||||
director: undefined,
|
||||
gender: undefined,
|
||||
|
|
@ -315,7 +352,14 @@ const resetForm = () => {
|
|||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
maintenanceUnitName: undefined,
|
||||
maintenanceUnitId: undefined,
|
||||
undertakingUnitName: undefined,
|
||||
undertakingUnitId: undefined,
|
||||
reviewUnitName: undefined,
|
||||
reviewUnitId: undefined,
|
||||
state: undefined,
|
||||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -65,51 +65,6 @@
|
|||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="乐观锁" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.revision`" :rules="formRules.revision" class="mb-0px!">
|
||||
<el-input v-model="row.revision" 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>
|
||||
</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>
|
||||
|
|
@ -166,11 +121,6 @@ const handleAdd = () => {
|
|||
totalAmount: undefined,
|
||||
unitId: undefined,
|
||||
unitName: undefined,
|
||||
revision: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
}
|
||||
row.contractId = props.contractId
|
||||
formData.value.push(row)
|
||||
|
|
@ -192,4 +142,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,14 @@
|
|||
<el-input v-model="formData.purposeSignificance" type="textarea" placeholder="请输入项目目的与意义" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目所属领域国内外产业、技术的现状和发展趋势" prop="currentSituation">
|
||||
<el-input v-model="formData.currentSituation" type="textarea" placeholder="请输入项目所属领域国内外产业、技术的现状和发展趋势" />
|
||||
<el-select v-model="formData.currentSituation" placeholder="请选择项目所属领域国内外产业、技术的现状和发展趋势">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.TECHNICAL_FIELD)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目现有工作基础" prop="workFoundation">
|
||||
<el-input v-model="formData.workFoundation" type="textarea" placeholder="请输入项目现有工作基础" />
|
||||
|
|
@ -39,6 +46,7 @@
|
|||
</el-form>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import { MainApi } from '@/api/contract/contract'
|
||||
|
||||
const props = defineProps<{
|
||||
|
|
@ -98,4 +106,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -33,21 +33,37 @@
|
|||
<el-table-column label="学历" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.education`" :rules="formRules.education" class="mb-0px!">
|
||||
<el-input v-model="row.education" placeholder="请输入学历" />
|
||||
<el-select v-model="row.education" placeholder="请选择学历">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.EDUCATION)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="职务(职称)" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.position`" :rules="formRules.position" class="mb-0px!">
|
||||
<el-input v-model="row.position" placeholder="请输入职务(职称)" />
|
||||
<el-select v-model="row.position" placeholder="请选择职务(职称)">
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="从事专业" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.engagingProfession`" :rules="formRules.engagingProfession" class="mb-0px!">
|
||||
<el-input v-model="row.engagingProfession" placeholder="请输入从事专业" />
|
||||
<el-select v-model="row.engagingProfession" placeholder="请选择从事专业">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.MAJOR)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -79,51 +95,6 @@
|
|||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="乐观锁" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.revision`" :rules="formRules.revision" class="mb-0px!">
|
||||
<el-input v-model="row.revision" 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>
|
||||
</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>
|
||||
|
|
@ -136,6 +107,7 @@
|
|||
</el-row>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import { MainApi } from '@/api/contract/contract'
|
||||
|
||||
const props = defineProps<{
|
||||
|
|
@ -182,11 +154,6 @@ const handleAdd = () => {
|
|||
deptId: undefined,
|
||||
deptName: undefined,
|
||||
orderNo: undefined,
|
||||
revision: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
}
|
||||
row.contractId = props.contractId
|
||||
formData.value.push(row)
|
||||
|
|
@ -208,4 +175,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -21,55 +21,10 @@
|
|||
</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="请输入实施内容" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="乐观锁" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.revision`" :rules="formRules.revision" class="mb-0px!">
|
||||
<el-input v-model="row.revision" 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>
|
||||
</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="选择更新时间"
|
||||
/>
|
||||
<Editor v-model="row.implContent" height="150px" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -123,11 +78,6 @@ const handleAdd = () => {
|
|||
contractId: undefined,
|
||||
implDate: undefined,
|
||||
implContent: undefined,
|
||||
revision: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
}
|
||||
row.contractId = props.contractId
|
||||
formData.value.push(row)
|
||||
|
|
@ -149,4 +99,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -100,51 +100,6 @@
|
|||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="乐观锁" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.revision`" :rules="formRules.revision" class="mb-0px!">
|
||||
<el-input v-model="row.revision" 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>
|
||||
</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>
|
||||
|
|
@ -206,11 +161,6 @@ const handleAdd = () => {
|
|||
address: undefined,
|
||||
sign: undefined,
|
||||
orderNo: undefined,
|
||||
revision: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
}
|
||||
row.contractId = props.contractId
|
||||
formData.value.push(row)
|
||||
|
|
@ -232,4 +182,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -92,6 +92,42 @@
|
|||
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>
|
||||
|
|
@ -119,6 +155,7 @@
|
|||
<!-- 列表 -->
|
||||
<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="code" />
|
||||
<el-table-column label="任务名称" align="center" prop="name" />
|
||||
<el-table-column label="所属技术领域" align="center" prop="technicalField">
|
||||
|
|
@ -126,6 +163,7 @@
|
|||
<dict-tag :type="DICT_TYPE.TECHNICAL_FIELD" :value="scope.row.technicalField" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计划类型Id" align="center" prop="planId" />
|
||||
<el-table-column label="计划类型名称" align="center" prop="planName">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.PLAN_ID" :value="scope.row.planName" />
|
||||
|
|
@ -133,11 +171,48 @@
|
|||
</el-table-column>
|
||||
<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="endDate" />
|
||||
<el-table-column label="负责人Id" align="center" prop="directorId" />
|
||||
<el-table-column label="负责人姓名" align="center" prop="director" />
|
||||
<el-table-column label="负责人性别" align="center" prop="gender" />
|
||||
<el-table-column label="年龄" align="center" prop="age" />
|
||||
<el-table-column label="学历" align="center" prop="education">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.EDUCATION" :value="scope.row.education" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所学专业" align="center" prop="major">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.MAJOR" :value="scope.row.major" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="从事专业" align="center" prop="engagMajor">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.MAJOR" :value="scope.row.engagMajor" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="职务(职称)" align="center" prop="position" />
|
||||
<el-table-column label="电话" align="center" prop="phoneNo" />
|
||||
<el-table-column label="邮箱" align="center" prop="email" />
|
||||
<el-table-column label="传真" align="center" prop="fax" />
|
||||
<el-table-column label="邮编" align="center" prop="postalCode" />
|
||||
<el-table-column label="通讯地址" align="center" prop="address" />
|
||||
<el-table-column label="主要业绩" align="center" prop="achievement" />
|
||||
<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="承担单位名称" 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"
|
||||
prop="createTime"
|
||||
:formatter="dateFormatter"
|
||||
width="180px"
|
||||
/>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
|
|
@ -174,6 +249,7 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import { dateFormatter } from '@/utils/formatTime'
|
||||
import download from '@/utils/download'
|
||||
import { MainApi, MainVO } from '@/api/contract/contract'
|
||||
import MainForm from './MainForm.vue'
|
||||
|
|
@ -198,6 +274,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) // 导出的加载中
|
||||
|
|
@ -264,4 +344,4 @@ const handleExport = async () => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,12 @@
|
|||
</el-form-item>
|
||||
<el-form-item label="专利类型(如发明、实用新型、外观设计等)" prop="patentType">
|
||||
<el-select v-model="formData.patentType" placeholder="请选择专利类型(如发明、实用新型、外观设计等)">
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
<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">
|
||||
|
|
@ -79,6 +84,7 @@
|
|||
</Dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import { MainApi, MainVO } from '@/api/patents/patents'
|
||||
import InfoForm from './components/InfoForm.vue'
|
||||
|
||||
|
|
@ -187,4 +193,4 @@ const resetForm = () => {
|
|||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -8,15 +8,6 @@
|
|||
:inline="true"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="合同编号" prop="contractCode">
|
||||
<el-input
|
||||
v-model="queryParams.contractCode"
|
||||
placeholder="请输入合同编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="专利名称" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
|
|
@ -35,25 +26,30 @@
|
|||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发明人姓名" prop="inventorName">
|
||||
<el-form-item label="专利类型(如发明、实用新型、外观设计等)" prop="patentType">
|
||||
<el-select
|
||||
v-model="queryParams.patentType"
|
||||
placeholder="请选择专利类型(如发明、实用新型、外观设计等)"
|
||||
clearable
|
||||
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-form-item label="专利权人姓名或公司名称" prop="patenteeName">
|
||||
<el-input
|
||||
v-model="queryParams.inventorName"
|
||||
placeholder="请输入发明人姓名"
|
||||
v-model="queryParams.patenteeName"
|
||||
placeholder="请输入专利权人姓名或公司名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="法律状态(如审查中、已授权、无效等)" prop="legalStatus">
|
||||
<el-select
|
||||
v-model="queryParams.legalStatus"
|
||||
placeholder="请选择法律状态(如审查中、已授权、无效等)"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
>
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</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>
|
||||
|
|
@ -82,6 +78,7 @@
|
|||
<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" />
|
||||
|
|
@ -89,7 +86,11 @@
|
|||
<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 label="专利类型(如发明、实用新型、外观设计等)" align="center" prop="patentType">
|
||||
<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="patenteeName" />
|
||||
<el-table-column label="相关技术领域" align="center" prop="relatedTechArea" />
|
||||
<el-table-column label="技术效果" align="center" prop="technicalEffect" />
|
||||
|
|
@ -129,6 +130,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import download from '@/utils/download'
|
||||
import { MainApi, MainVO } from '@/api/patents/patents'
|
||||
import MainForm from './MainForm.vue'
|
||||
|
|
@ -145,11 +147,10 @@ const total = ref(0) // 列表的总页数
|
|||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
contractCode: undefined,
|
||||
name: undefined,
|
||||
number: undefined,
|
||||
inventorName: undefined,
|
||||
legalStatus: undefined,
|
||||
patentType: undefined,
|
||||
patenteeName: undefined,
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
|
|
@ -216,4 +217,4 @@ const handleExport = async () => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@
|
|||
<el-input v-model="formData.section" placeholder="请输入执行区段" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进展情况(正常,拖延,停顿)" prop="progress">
|
||||
<el-input v-model="formData.progress" placeholder="请输入进展情况(正常,拖延,停顿)" />
|
||||
<el-select v-model="formData.progress" placeholder="请选择进展情况(正常,拖延,停顿)">
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人Id" prop="directorId">
|
||||
<el-input v-model="formData.directorId" placeholder="请输入负责人Id" />
|
||||
|
|
@ -37,31 +39,12 @@
|
|||
<el-form-item label="主管工程师" prop="managerName">
|
||||
<el-input v-model="formData.managerName" placeholder="请输入主管工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createdBy">
|
||||
<el-input v-model="formData.createdBy" placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createdTime">
|
||||
<el-date-picker
|
||||
v-model="formData.createdTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择创建时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人" prop="updatedBy">
|
||||
<el-input v-model="formData.updatedBy" placeholder="请输入更新人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updatedTime">
|
||||
<el-date-picker
|
||||
v-model="formData.updatedTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择更新时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 子表的表单 -->
|
||||
<el-tabs v-model="subTabsName">
|
||||
<el-tab-pane label="执行经费情况" name="funds">
|
||||
<FundsForm ref="fundsFormRef" :process-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="执行详细信息" name="info">
|
||||
<InfoForm ref="infoFormRef" :process-id="formData.id" />
|
||||
</el-tab-pane>
|
||||
|
|
@ -74,6 +57,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { MainApi, MainVO } from '@/api/process/process'
|
||||
import FundsForm from './components/FundsForm.vue'
|
||||
import InfoForm from './components/InfoForm.vue'
|
||||
|
||||
/** 执行主 表单 */
|
||||
|
|
@ -98,17 +82,14 @@ const formData = ref({
|
|||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
})
|
||||
const formRules = reactive({
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
/** 子表的表单 */
|
||||
const subTabsName = ref('info')
|
||||
const subTabsName = ref('funds')
|
||||
const fundsFormRef = ref()
|
||||
const infoFormRef = ref()
|
||||
|
||||
/** 打开弹窗 */
|
||||
|
|
@ -135,6 +116,12 @@ const submitForm = async () => {
|
|||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
// 校验子表单
|
||||
try {
|
||||
await fundsFormRef.value.validate()
|
||||
} catch (e) {
|
||||
subTabsName.value = 'funds'
|
||||
return
|
||||
}
|
||||
try {
|
||||
await infoFormRef.value.validate()
|
||||
} catch (e) {
|
||||
|
|
@ -146,6 +133,7 @@ const submitForm = async () => {
|
|||
try {
|
||||
const data = formData.value as unknown as MainVO
|
||||
// 拼接子表的数据
|
||||
data.fundss = fundsFormRef.value.getData()
|
||||
data.info = infoFormRef.value.getData()
|
||||
if (formType.value === 'create') {
|
||||
await MainApi.createMain(data)
|
||||
|
|
@ -176,11 +164,7 @@ const resetForm = () => {
|
|||
competentDeptName: undefined,
|
||||
managerId: undefined,
|
||||
managerName: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,153 @@
|
|||
<template>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
v-loading="formLoading"
|
||||
label-width="0px"
|
||||
:inline-message="true"
|
||||
>
|
||||
<el-table :data="formData" class="-mt-10px">
|
||||
<el-table-column label="序号" type="index" width="100" />
|
||||
<el-table-column label="合同ID" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.contractId`" :rules="formRules.contractId" class="mb-0px!">
|
||||
<el-input v-model="row.contractId" placeholder="请输入合同ID" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="经费来源ID" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.sourceId`" :rules="formRules.sourceId" class="mb-0px!">
|
||||
<el-input v-model="row.sourceId" placeholder="请输入经费来源ID" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支出类型ID" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.expenseId`" :rules="formRules.expenseId" class="mb-0px!">
|
||||
<el-input v-model="row.expenseId" placeholder="请输入支出类型ID" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="经费金额" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.amount`" :rules="formRules.amount" class="mb-0px!">
|
||||
<el-input v-model="row.amount" placeholder="请输入经费金额" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="经费年度" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.fiscalYear`" :rules="formRules.fiscalYear" class="mb-0px!">
|
||||
<el-input v-model="row.fiscalYear" placeholder="请输入经费年度" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总金额" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.totalAmount`" :rules="formRules.totalAmount" class="mb-0px!">
|
||||
<el-input v-model="row.totalAmount" placeholder="请输入总金额" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位Id" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.unitId`" :rules="formRules.unitId" class="mb-0px!">
|
||||
<el-input v-model="row.unitId" placeholder="请输入单位Id" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位名称" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.unitName`" :rules="formRules.unitName" class="mb-0px!">
|
||||
<el-input v-model="row.unitName" 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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form>
|
||||
<el-row justify="center" class="mt-3">
|
||||
<el-button @click="handleAdd" round>+ 添加执行经费情况</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { MainApi } from '@/api/process/process'
|
||||
|
||||
const props = defineProps<{
|
||||
processId: undefined // 执行ID(主表的关联字段)
|
||||
}>()
|
||||
const formLoading = ref(false) // 表单的加载中
|
||||
const formData = ref([])
|
||||
const formRules = reactive({
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
||||
watch(
|
||||
() => props.processId,
|
||||
async (val) => {
|
||||
// 1. 重置表单
|
||||
formData.value = []
|
||||
// 2. val 非空,则加载数据
|
||||
if (!val) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
formLoading.value = true
|
||||
formData.value = await MainApi.getFundsListByProcessId(val)
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
const row = {
|
||||
id: undefined,
|
||||
contractId: undefined,
|
||||
processId: undefined,
|
||||
sourceId: undefined,
|
||||
expenseId: undefined,
|
||||
secondaryCategory: undefined,
|
||||
amount: undefined,
|
||||
fiscalYear: undefined,
|
||||
totalAmount: undefined,
|
||||
unitId: undefined,
|
||||
unitName: undefined,
|
||||
}
|
||||
row.processId = props.processId
|
||||
formData.value.push(row)
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = (index) => {
|
||||
formData.value.splice(index, 1)
|
||||
}
|
||||
|
||||
/** 表单校验 */
|
||||
const validate = () => {
|
||||
return formRef.value.validate()
|
||||
}
|
||||
|
||||
/** 表单值 */
|
||||
const getData = () => {
|
||||
return formData.value
|
||||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
|
|
@ -15,28 +15,6 @@
|
|||
<el-form-item label="项目执行情况工作过程的描述、遇到的问题、采取的措施和方法" prop="describe">
|
||||
<el-input v-model="formData.describe" type="textarea" placeholder="请输入项目执行情况工作过程的描述、遇到的问题、采取的措施和方法" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createdBy">
|
||||
<el-input v-model="formData.createdBy" placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createdTime">
|
||||
<el-date-picker
|
||||
v-model="formData.createdTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择创建时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人" prop="updatedBy">
|
||||
<el-input v-model="formData.updatedBy" placeholder="请输入更新人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updatedTime">
|
||||
<el-date-picker
|
||||
v-model="formData.updatedTime"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择更新时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
|
|
@ -62,10 +40,6 @@ watch(
|
|||
mainWork: undefined,
|
||||
injectWork: undefined,
|
||||
describe: undefined,
|
||||
createdBy: undefined,
|
||||
createdTime: undefined,
|
||||
updatedBy: undefined,
|
||||
updatedTime: undefined,
|
||||
}
|
||||
// 2. val 非空,则加载数据
|
||||
if (!val) {
|
||||
|
|
@ -96,4 +70,4 @@ const getData = () => {
|
|||
}
|
||||
|
||||
defineExpose({ validate, getData })
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,15 @@
|
|||
:inline="true"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="合同主键Id" prop="contractId">
|
||||
<el-input
|
||||
v-model="queryParams.contractId"
|
||||
placeholder="请输入合同主键Id"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="合同编号" prop="contractCode">
|
||||
<el-input
|
||||
v-model="queryParams.contractCode"
|
||||
|
|
@ -26,6 +35,16 @@
|
|||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="进展情况(正常,拖延,停顿)" prop="progress">
|
||||
<el-select
|
||||
v-model="queryParams.progress"
|
||||
placeholder="请选择进展情况(正常,拖延,停顿)"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
>
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人姓名" prop="director">
|
||||
<el-input
|
||||
v-model="queryParams.director"
|
||||
|
|
@ -81,7 +100,6 @@
|
|||
<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="section" />
|
||||
<el-table-column label="进展情况(正常,拖延,停顿)" align="center" prop="progress" />
|
||||
|
|
@ -139,8 +157,10 @@ const total = ref(0) // 列表的总页数
|
|||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
contractId: undefined,
|
||||
contractCode: undefined,
|
||||
section: undefined,
|
||||
progress: undefined,
|
||||
director: undefined,
|
||||
competentDeptName: undefined,
|
||||
managerName: undefined,
|
||||
|
|
@ -210,4 +230,4 @@ const handleExport = async () => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -37,6 +37,15 @@
|
|||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="预约时长(小时)" prop="reservationDuration">
|
||||
<el-input
|
||||
v-model="queryParams.reservationDuration"
|
||||
placeholder="请输入预约时长(小时)"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="预约状态(如待审核、已确认、已拒绝等)" prop="status">
|
||||
<el-select
|
||||
v-model="queryParams.status"
|
||||
|
|
@ -138,6 +147,7 @@ const queryParams = reactive({
|
|||
userName: undefined,
|
||||
reservationDate: [],
|
||||
labName: undefined,
|
||||
reservationDuration: undefined,
|
||||
status: undefined,
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
|
|
@ -205,4 +215,4 @@ const handleExport = async () => {
|
|||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<doc-alert title="用户体系" url="https://doc.iocoder.cn/user-center/" />
|
||||
<!-- <doc-alert title="用户体系" url="https://doc.iocoder.cn/user-center/" />
|
||||
<doc-alert title="三方登陆" url="https://doc.iocoder.cn/social-user/" />
|
||||
<doc-alert title="Excel 导入导出" url="https://doc.iocoder.cn/excel-import-and-export/" />
|
||||
<doc-alert title="Excel 导入导出" url="https://doc.iocoder.cn/excel-import-and-export/" />-->
|
||||
|
||||
<el-row :gutter="20">
|
||||
<!-- 左侧部门树 -->
|
||||
|
|
|
|||
Loading…
Reference in New Issue