diff --git a/src/views/gh/improvementProposal/ImprovementProposal.api.ts b/src/views/gh/improvementProposal/ImprovementProposal.api.ts new file mode 100644 index 0000000..33bfb6b --- /dev/null +++ b/src/views/gh/improvementProposal/ImprovementProposal.api.ts @@ -0,0 +1,87 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/improvementproposal/improvementProposal/list', + save='/improvementproposal/improvementProposal/add', + edit='/improvementproposal/improvementProposal/edit', + deleteOne = '/improvementproposal/improvementProposal/delete', + deleteBatch = '/improvementproposal/improvementProposal/deleteBatch', + importExcel = '/improvementproposal/improvementProposal/importExcel', + exportXls = '/improvementproposal/improvementProposal/exportXls', + queryDataById = '/improvementproposal/improvementProposal/queryById', + improvementDeptScoreList = '/improvementproposal/improvementProposal/queryImprovementDeptScoreByMainId', + improvementInstituteVoteList = '/improvementproposal/improvementProposal/queryImprovementInstituteVoteByMainId', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 查询子表数据 + * @param params + */ +export const queryImprovementDeptScoreListByMainId = (id) => defHttp.get({url: Api.improvementDeptScoreList, params:{ id }}); +/** + * 查询子表数据 + * @param params + */ +export const queryImprovementInstituteVoteListByMainId = (id) => defHttp.get({url: Api.improvementInstituteVoteList, params:{ id }}); + +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} + +/** +* 根据id查询数据 +* @param params +*/ +export const queryDataById = (id) => defHttp.get({url: Api.queryDataById, params:{ id }}); + diff --git a/src/views/gh/improvementProposal/ImprovementProposal.data.ts b/src/views/gh/improvementProposal/ImprovementProposal.data.ts new file mode 100644 index 0000000..bc60e6b --- /dev/null +++ b/src/views/gh/improvementProposal/ImprovementProposal.data.ts @@ -0,0 +1,318 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import {JVxeTypes,JVxeColumn} from '/@/components/jeecg/JVxeTable/types' +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '提案编号', + align:"center", + dataIndex: 'proposalNo' + }, + { + title: '提案名称', + align:"center", + dataIndex: 'proposalName' + }, + { + title: '提出日期', + align:"center", + dataIndex: 'proposalDate', + customRender:({text}) =>{ + text = !text ? "" : (text.length > 10 ? text.substr(0,10) : text); + return text; + }, + }, + { + title: '提案部门ID', + align:"center", + dataIndex: 'proposalDeptId' + }, + { + title: '提案部门名称', + align:"center", + dataIndex: 'proposalDeptName' + }, + { + title: '申请人ID', + align:"center", + dataIndex: 'applicantId' + }, + { + title: '申请人姓名', + align:"center", + dataIndex: 'applicantName' + }, + { + title: '团队名称', + align:"center", + dataIndex: 'teamName' + }, + { + title: '提案类别', + align:"center", + dataIndex: 'proposalCategory' + }, + { + title: '问题描述', + align:"center", + dataIndex: 'problemDesc' + }, + { + title: '改善方法及措施', + align:"center", + dataIndex: 'improvementMethod' + }, + { + title: '最终奖项', + align:"center", + dataIndex: 'finalAward' + }, + { + title: '业务展示状态', + align:"center", + dataIndex: 'bpmStatus' + }, +]; + +//子表表格配置 +export const improvementDeptScoreColumns: JVxeColumn[] = [ + { + title: '改善提案主表ID', + key: 'mainId', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '流程任务ID', + key: 'processTaskId', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '评委ID', + key: 'scorerId', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '评委姓名', + key: 'scorerName', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '评分状态:pending/completed', + key: 'scoreStatus', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '改善效果得分', + key: 'effectScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '可推广度得分', + key: 'promotionScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '独创性得分', + key: 'originalityScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '努力度得分', + key: 'effortScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '加权总分', + key: 'totalScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '评分意见', + key: 'scoreOpinion', + type: JVxeTypes.textarea, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '评分时间', + key: 'scoreTime', + type: JVxeTypes.datetime, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + ] +export const improvementInstituteVoteColumns: JVxeColumn[] = [ + { + title: '改善提案主表ID', + key: 'mainId', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '流程任务ID', + key: 'processTaskId', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '投票人ID', + key: 'voterId', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '投票人姓名', + key: 'voterName', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '投票状态:pending/voted', + key: 'voteStatus', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + validateRules: [ + { required: true, message: '${title}不能为空' }, + ], + }, + { + title: '投票结果:agree/disagree', + key: 'voteResult', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '投票意见', + key: 'voteOpinion', + type: JVxeTypes.textarea, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '投票时间', + key: 'voteTime', + type: JVxeTypes.datetime, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + ] + +// 高级查询数据 +export const superQuerySchema = { + proposalNo: {title: '提案编号',order: 0,view: 'text', type: 'string',}, + proposalName: {title: '提案名称',order: 1,view: 'text', type: 'string',}, + proposalDate: {title: '提出日期',order: 2,view: 'date', type: 'string',}, + proposalDeptId: {title: '提案部门ID',order: 3,view: 'text', type: 'string',}, + proposalDeptName: {title: '提案部门名称',order: 4,view: 'text', type: 'string',}, + applicantId: {title: '申请人ID',order: 5,view: 'text', type: 'string',}, + applicantName: {title: '申请人姓名',order: 6,view: 'text', type: 'string',}, + teamName: {title: '团队名称',order: 7,view: 'text', type: 'string',}, + proposalCategory: {title: '提案类别',order: 8,view: 'text', type: 'string',}, + problemDesc: {title: '问题描述',order: 9,view: 'textarea', type: 'string',}, + improvementMethod: {title: '改善方法及措施',order: 10,view: 'textarea', type: 'string',}, + finalAward: {title: '最终奖项',order: 14,view: 'text', type: 'string',}, + bpmStatus: {title: '业务展示状态',order: 15,view: 'text', type: 'string',}, + //子表高级查询 + improvementDeptScore: { + title: '部门评议评分表', + view: 'table', + fields: { + mainId: {title: '改善提案主表ID',order: 0,view: 'text', type: 'string',}, + processTaskId: {title: '流程任务ID',order: 1,view: 'text', type: 'string',}, + scorerId: {title: '评委ID',order: 2,view: 'text', type: 'string',}, + scorerName: {title: '评委姓名',order: 3,view: 'text', type: 'string',}, + scoreStatus: {title: '评分状态:pending/completed',order: 4,view: 'text', type: 'string',}, + effectScore: {title: '改善效果得分',order: 5,view: 'number', type: 'number',}, + promotionScore: {title: '可推广度得分',order: 6,view: 'number', type: 'number',}, + originalityScore: {title: '独创性得分',order: 7,view: 'number', type: 'number',}, + effortScore: {title: '努力度得分',order: 8,view: 'number', type: 'number',}, + totalScore: {title: '加权总分',order: 9,view: 'number', type: 'number',}, + scoreOpinion: {title: '评分意见',order: 10,view: 'textarea', type: 'string',}, + scoreTime: {title: '评分时间',order: 11,view: 'datetime', type: 'string',}, + } + }, + improvementInstituteVote: { + title: '所级评议投票表', + view: 'table', + fields: { + mainId: {title: '改善提案主表ID',order: 0,view: 'text', type: 'string',}, + processTaskId: {title: '流程任务ID',order: 1,view: 'text', type: 'string',}, + voterId: {title: '投票人ID',order: 2,view: 'text', type: 'string',}, + voterName: {title: '投票人姓名',order: 3,view: 'text', type: 'string',}, + voteStatus: {title: '投票状态:pending/voted',order: 4,view: 'text', type: 'string',}, + voteResult: {title: '投票结果:agree/disagree',order: 5,view: 'text', type: 'string',}, + voteOpinion: {title: '投票意见',order: 6,view: 'textarea', type: 'string',}, + voteTime: {title: '投票时间',order: 7,view: 'datetime', type: 'string',}, + } + }, +}; diff --git a/src/views/gh/improvementProposal/ImprovementProposalList.vue b/src/views/gh/improvementProposal/ImprovementProposalList.vue new file mode 100644 index 0000000..18fc112 --- /dev/null +++ b/src/views/gh/improvementProposal/ImprovementProposalList.vue @@ -0,0 +1,303 @@ + + + + \ No newline at end of file diff --git a/src/views/gh/improvementProposal/components/ImprovementProposalForm.vue b/src/views/gh/improvementProposal/components/ImprovementProposalForm.vue new file mode 100644 index 0000000..2cb90f4 --- /dev/null +++ b/src/views/gh/improvementProposal/components/ImprovementProposalForm.vue @@ -0,0 +1,356 @@ + + + + diff --git a/src/views/gh/improvementProposal/components/ImprovementProposalModal.vue b/src/views/gh/improvementProposal/components/ImprovementProposalModal.vue new file mode 100644 index 0000000..1e17de2 --- /dev/null +++ b/src/views/gh/improvementProposal/components/ImprovementProposalModal.vue @@ -0,0 +1,67 @@ + + + + \ No newline at end of file