From a67bc629e575c760e6c2ba798bed4a7989b587fc Mon Sep 17 00:00:00 2001 From: yaoyn Date: Mon, 4 Nov 2024 10:39:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=94=A8=E7=9A=84=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=20=E6=B5=81=E7=A8=8B=E5=9B=BE=E4=B8=AD?= =?UTF-8?q?=E5=8F=AF=E6=9F=A5=E7=9C=8B=E5=BD=93=E5=89=8D=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E4=BA=BA=20=E9=A6=96=E9=A1=B5=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=85=8D=E7=BD=AE=E9=A1=B9=E4=B8=AD=E7=9A=84=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E5=9C=B0=E5=9D=80=20=E5=88=97=E8=A1=A8=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=BB=98=E8=AE=A4=E5=B7=A6=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 15 +- src/api/system/comment/index.ts | 110 +++++ src/api/system/comment/model/CommentModel.ts | 84 ++++ src/components/Comment/index.ts | 4 + src/components/Comment/src/Comment.vue | 158 +++++++ .../CreateCodeStep/src/ViewDesignStep.vue | 4 +- .../componentProperty/PropertyOption.vue | 2 +- src/model/workflow/bpmnConfig.ts | 2 + src/views/secondDev/approveFlowPage.vue | 2 +- src/views/secondDev/createFlow.vue | 6 + src/views/sys/login/LoginForm.vue | 4 +- .../comment/components/CommentModal.vue | 110 +++++ src/views/system/comment/components/Form.vue | 175 ++++++++ src/views/system/comment/components/config.ts | 361 +++++++++++++++ .../comment/components/workflowPermission.ts | 107 +++++ src/views/system/comment/index.vue | 419 ++++++++++++++++++ src/views/system/systemConfig/index.vue | 2 +- src/views/system/systemNotice/index.vue | 4 +- .../components/flow/ProcessInformation.vue | 5 + src/views/workflow/task/hooks/userTaskItem.ts | 5 + 20 files changed, 1566 insertions(+), 13 deletions(-) create mode 100644 src/api/system/comment/index.ts create mode 100644 src/api/system/comment/model/CommentModel.ts create mode 100644 src/components/Comment/index.ts create mode 100644 src/components/Comment/src/Comment.vue create mode 100644 src/views/system/comment/components/CommentModal.vue create mode 100644 src/views/system/comment/components/Form.vue create mode 100644 src/views/system/comment/components/config.ts create mode 100644 src/views/system/comment/components/workflowPermission.ts create mode 100644 src/views/system/comment/index.vue diff --git a/index.html b/index.html index de54b36..2c423b6 100644 --- a/index.html +++ b/index.html @@ -7,13 +7,19 @@ + - + + + diff --git a/src/components/CreateCodeStep/src/ViewDesignStep.vue b/src/components/CreateCodeStep/src/ViewDesignStep.vue index 2d6265d..b2c95ad 100644 --- a/src/components/CreateCodeStep/src/ViewDesignStep.vue +++ b/src/components/CreateCodeStep/src/ViewDesignStep.vue @@ -922,7 +922,7 @@ columnName: component.value, label: component.label, columnWidth: '100', - alignType: '', + alignType: 'left', autoWidth: true, isTotal: false, isFilter: false, @@ -1084,7 +1084,7 @@ label: '', columnName: '', columnWidth: '100', - alignType: '', + alignType: 'left', autoWidth: true, isTotal: false, isFilter: false, diff --git a/src/components/Designer/src/components/componentProperty/PropertyOption.vue b/src/components/Designer/src/components/componentProperty/PropertyOption.vue index 13de643..abf94c4 100644 --- a/src/components/Designer/src/components/componentProperty/PropertyOption.vue +++ b/src/components/Designer/src/components/componentProperty/PropertyOption.vue @@ -1363,7 +1363,7 @@ title: o.title, dataIndex: o.dataIndex, children: [], - align: 'center' + align: 'left' }; if (obj) { obj.push(com); diff --git a/src/model/workflow/bpmnConfig.ts b/src/model/workflow/bpmnConfig.ts index 04915fb..ea278a0 100644 --- a/src/model/workflow/bpmnConfig.ts +++ b/src/model/workflow/bpmnConfig.ts @@ -50,6 +50,7 @@ export interface FormInfoItem { formType: FormType; } export interface FlowInfo { + currentTaskAssigneeNames: string; isCountersign: boolean; isAddOrSubSign: boolean; schemaInfo: { @@ -97,6 +98,7 @@ export interface TaskApproveOpinion { } export interface BpmnFlowForm { // schemaId: string; + currentTaskAssignee: string; item: BpmnFlowFormItem; xml: string; formInfos: Array; diff --git a/src/views/secondDev/approveFlowPage.vue b/src/views/secondDev/approveFlowPage.vue index d14a540..c4f116c 100644 --- a/src/views/secondDev/approveFlowPage.vue +++ b/src/views/secondDev/approveFlowPage.vue @@ -52,7 +52,7 @@ - + diff --git a/src/views/secondDev/createFlow.vue b/src/views/secondDev/createFlow.vue index db1f5b3..44b9cd7 100644 --- a/src/views/secondDev/createFlow.vue +++ b/src/views/secondDev/createFlow.vue @@ -224,6 +224,12 @@ async function approvalCreate() { const params = await getApproveParams(); const nextNodes = await postGetNextTaskMaybeArrival(params); + if(nextNodes.length==0){ + message.error('流程没有可以选择的下一节点'); + loading.value = false; + data.submitLoading = false; + return; + } opinionDlg.value.toggleDialog({ action: 'agree', nextNodes, diff --git a/src/views/sys/login/LoginForm.vue b/src/views/sys/login/LoginForm.vue index eec158d..e4c0f9c 100644 --- a/src/views/sys/login/LoginForm.vue +++ b/src/views/sys/login/LoginForm.vue @@ -156,8 +156,8 @@ const authorizeUrl = ref(''); const formData = reactive({ - account: 'admin', - password: '123456', + account: '', + password: '', tenantCode: 'system', }); diff --git a/src/views/system/comment/components/CommentModal.vue b/src/views/system/comment/components/CommentModal.vue new file mode 100644 index 0000000..168dd47 --- /dev/null +++ b/src/views/system/comment/components/CommentModal.vue @@ -0,0 +1,110 @@ + + \ No newline at end of file diff --git a/src/views/system/comment/components/Form.vue b/src/views/system/comment/components/Form.vue new file mode 100644 index 0000000..d16371e --- /dev/null +++ b/src/views/system/comment/components/Form.vue @@ -0,0 +1,175 @@ + + \ No newline at end of file diff --git a/src/views/system/comment/components/config.ts b/src/views/system/comment/components/config.ts new file mode 100644 index 0000000..656eb2a --- /dev/null +++ b/src/views/system/comment/components/config.ts @@ -0,0 +1,361 @@ +import { FormProps, FormSchema } from '/@/components/Form'; +import { BasicColumn } from '/@/components/Table'; +import { uploadApi } from '/@/api/sys/upload'; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'businessCode', + label: '评论对象编码', + component: 'Input', + }, + { + field: 'businessId', + label: '评论对象ID', + component: 'Input', + }, + { + field: 'content', + label: '评论内容', + component: 'Input', + }, + { + field: 'createUserId', + label: '评论人', + component: 'User', + componentProps: { + suffix: 'ant-design:setting-outlined', + placeholder: '请选择', + }, + }, + + { + field: 'createDate', + label: '评论时间', + component: 'RangePicker', + componentProps: { + showTime: true, + style: { width: '100%' }, + getPopupContainer: () => document.body, + }, + }, +]; + +export const columns: BasicColumn[] = [ + { + dataIndex: 'businessCode', + title: '评论对象编码', + componentType: 'input', + align: 'left', + + width: 100, + + sorter: true, + }, + + { + dataIndex: 'businessId', + title: '评论对象ID', + componentType: 'input', + align: 'left', + + width: 100, + + sorter: true, + }, + + { + dataIndex: 'content', + title: '评论内容', + componentType: 'textarea', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'createUserId', + title: '评论人', + componentType: 'info', + align: 'left', + + width: 100, + + sorter: true, + }, + + { + dataIndex: 'createDate', + title: '评论时间', + componentType: 'info', + align: 'left', + + width: 155, + + sorter: true, + }, +]; +//表单事件 +export const formEventConfigs = { + 0: [ + { + type: 'circle', + color: '#2774ff', + text: '开始节点', + icon: '#icon-kaishi', + bgcColor: '#D8E5FF', + isUserDefined: false, + }, + { + color: '#F6AB01', + icon: '#icon-chushihua', + text: '初始化表单', + bgcColor: '#f9f5ea', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 1: [ + { + color: '#B36EDB', + icon: '#icon-shujufenxi', + text: '获取表单数据', + detail: '(新增无此操作)', + bgcColor: '#F8F2FC', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 2: [ + { + color: '#F8625C', + icon: '#icon-jiazai', + text: '加载表单', + bgcColor: '#FFF1F1', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 3: [ + { + color: '#6C6AE0', + icon: '#icon-jsontijiao', + text: '提交表单', + bgcColor: '#F5F4FF', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 4: [ + { + type: 'circle', + color: '#F8625C', + text: '结束节点', + icon: '#icon-jieshuzhiliao', + bgcColor: '#FFD6D6', + isLast: true, + isUserDefined: false, + }, + ], +}; +export const formProps: FormProps = { + labelCol: { span: 3, offset: 0 }, + labelAlign: 'right', + layout: 'horizontal', + size: 'default', + schemas: [ + { + key: '12e79f0dec5844aaa838379519fb6f53', + field: '', + label: '标题', + type: 'title', + component: 'Title', + colProps: { span: 24 }, + defaultValue: '评论', + componentProps: { + defaultValue: '评论', + color: '', + align: 'left', + fontSize: 18, + isShow: true, + style: {}, + }, + }, + { + key: '8cdb900d6f1e43da9b9bf9eff0dc6676', + field: 'businessCode', + label: '评论对象编码', + type: 'input', + component: 'Input', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: true, + respNewRow: false, + placeholder: '请输入评论对象编码', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: true, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + style: { width: '100%' }, + }, + }, + { + key: '8467356e88b1493da72c18031759dff6', + field: 'businessId', + label: '评论对象ID', + type: 'input', + component: 'Input', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入评论对象ID', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: true, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + style: { width: '100%' }, + }, + }, + { + key: '89b3809558b24be4b227c5fac140efb1', + field: 'content', + label: '评论内容', + type: 'textarea', + component: 'InputTextArea', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: true, + respNewRow: true, + placeholder: '请输入评论内容', + maxlength: null, + rows: 4, + autoSize: true, + showCount: true, + disabled: false, + showLabel: true, + allowClear: false, + required: true, + isShow: true, + rules: [], + events: {}, + style: { width: '100%' }, + }, + }, + { + key: '218eb20ead9d44288d41411a2addf8b4', + field: 'attachs', + label: '附件', + type: 'upload', + component: 'Upload', + colProps: { span: 24 }, + componentProps: { + api: uploadApi, + labelWidthMode: 'fix', + labelFixWidth: 120, + span: '', + defaultValue: [], + accept: '', + maxNumber: 5, + maxSize: 5, + showLabel: true, + multiple: true, + disabled: false, + required: false, + isShow: true, + events: {}, + listType: 'text', + }, + }, + { + key: 'af68831756f44504906f8ede2f968ff4', + field: 'createUserId', + label: '评论人', + type: 'info', + component: 'Info', + colProps: { span: 24 }, + componentProps: { + span: '', + width: '100%', + placeholder: '', + infoType: 0, + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: true, + respNewRow: false, + loadAgain: false, + showLabel: true, + disabled: true, + isShow: true, + respBreakLine: true, + style: { width: '100%' }, + }, + }, + { + key: 'fc322d37de464b51a16a09290a19219c', + field: 'createDate', + label: '评论时间', + type: 'info', + component: 'Info', + colProps: { span: 24 }, + componentProps: { + span: '', + width: '100%', + placeholder: '', + infoType: 2, + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: true, + respNewRow: false, + loadAgain: false, + showLabel: true, + disabled: true, + isShow: true, + style: { width: '100%' }, + }, + }, + ], + showActionButtonGroup: false, + buttonLocation: 'center', + actionColOptions: { span: 24 }, + showResetButton: false, + showSubmitButton: false, + hiddenComponent: [], +}; \ No newline at end of file diff --git a/src/views/system/comment/components/workflowPermission.ts b/src/views/system/comment/components/workflowPermission.ts new file mode 100644 index 0000000..f25982d --- /dev/null +++ b/src/views/system/comment/components/workflowPermission.ts @@ -0,0 +1,107 @@ +export const permissionList = [ + { + required: false, + view: true, + edit: false, + disabled: true, + isSaveTable: false, + tableName: '', + fieldName: '标题', + fieldId: '', + isSubTable: false, + showChildren: true, + type: 'title', + key: '12e79f0dec5844aaa838379519fb6f53', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '评论对象编码', + fieldId: 'businessCode', + isSubTable: false, + showChildren: true, + type: 'input', + key: '8cdb900d6f1e43da9b9bf9eff0dc6676', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '评论对象ID', + fieldId: 'businessId', + isSubTable: false, + showChildren: true, + type: 'input', + key: '8467356e88b1493da72c18031759dff6', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '评论内容', + fieldId: 'content', + isSubTable: false, + showChildren: true, + type: 'textarea', + key: '89b3809558b24be4b227c5fac140efb1', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '附件', + fieldId: 'attachs', + isSubTable: false, + showChildren: true, + type: 'upload', + key: '218eb20ead9d44288d41411a2addf8b4', + children: [], + }, + { + required: false, + view: true, + edit: false, + disabled: true, + isSaveTable: false, + tableName: '', + fieldName: '评论人', + fieldId: 'createUserId', + isSubTable: false, + showChildren: true, + type: 'info', + key: 'af68831756f44504906f8ede2f968ff4', + children: [], + }, + { + required: false, + view: true, + edit: false, + disabled: true, + isSaveTable: false, + tableName: '', + fieldName: '评论时间', + fieldId: 'createDate', + isSubTable: false, + showChildren: true, + type: 'info', + key: 'fc322d37de464b51a16a09290a19219c', + children: [], + }, +]; \ No newline at end of file diff --git a/src/views/system/comment/index.vue b/src/views/system/comment/index.vue new file mode 100644 index 0000000..82fc873 --- /dev/null +++ b/src/views/system/comment/index.vue @@ -0,0 +1,419 @@ + + + diff --git a/src/views/system/systemConfig/index.vue b/src/views/system/systemConfig/index.vue index 7d7ec31..1e3a066 100644 --- a/src/views/system/systemConfig/index.vue +++ b/src/views/system/systemConfig/index.vue @@ -87,7 +87,7 @@ //展示在列表内的按钮 const actionButtons = ref(['view', 'edit', 'copyData', 'delete', 'startwork','flowRecord']); const buttonConfigs = computed(()=>{ - const list = [{"name":"新增","code":"add","icon":"ant-design:plus-outlined","isDefault":true,"isUse":true},{"name":"编辑","code":"edit","icon":"ant-design:form-outlined","isDefault":true,"isUse":true},{"name":"刷新","code":"refresh","icon":"ant-design:reload-outlined","isDefault":true,"isUse":true},{"name":"查看","code":"view","icon":"ant-design:eye-outlined","isDefault":true,"isUse":true},{"name":"批量删除","code":"batchdelete","icon":"ant-design:delete-outlined","isDefault":true,"isUse":true},{"name":"复制数据","code":"copyData","icon":"ant-design:copy-outlined","isDefault":true,"isUse":true},{"name":"快速导入","code":"import","icon":"ant-design:import-outlined","isDefault":true,"isUse":true},{"name":"快速导出","code":"export","icon":"ant-design:export-outlined","isDefault":true,"isUse":true},{"name":"删除","code":"delete","icon":"ant-design:delete-outlined","isDefault":true,"isUse":true}] + const list = [{"name":"新增","type":"primary","code":"add","icon":"ant-design:plus-outlined","isDefault":true,"isUse":true},{"name":"编辑","code":"edit","icon":"ant-design:form-outlined","isDefault":true,"isUse":true},{"name":"刷新","code":"refresh","icon":"ant-design:reload-outlined","isDefault":true,"isUse":true},{"name":"查看","code":"view","icon":"ant-design:eye-outlined","isDefault":true,"isUse":true},{"name":"批量删除","code":"batchdelete","icon":"ant-design:delete-outlined","isDefault":true,"isUse":true},{"name":"复制数据","code":"copyData","icon":"ant-design:copy-outlined","isDefault":true,"isUse":true},{"name":"快速导入","code":"import","icon":"ant-design:import-outlined","isDefault":true,"isUse":true},{"name":"快速导出","code":"export","icon":"ant-design:export-outlined","isDefault":true,"isUse":true},{"name":"删除","code":"delete","icon":"ant-design:delete-outlined","isDefault":true,"isUse":true}] return filterButtonAuth(list); }) diff --git a/src/views/system/systemNotice/index.vue b/src/views/system/systemNotice/index.vue index cc1b6e6..c1a5438 100644 --- a/src/views/system/systemNotice/index.vue +++ b/src/views/system/systemNotice/index.vue @@ -87,7 +87,7 @@ //展示在列表内的按钮 const actionButtons = ref(['view', 'edit', 'copyData', 'delete', 'startwork','flowRecord']); const buttonConfigs = computed(()=>{ - const list = [{"isUse":true,"name":"新增","code":"add","icon":"ant-design:plus-outlined","isDefault":true,"type":"primary"},{"isUse":true,"name":"编辑","code":"edit","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"刷新","code":"refresh","icon":"ant-design:reload-outlined","isDefault":true},{"isUse":true,"name":"查看","code":"view","icon":"ant-design:eye-outlined","isDefault":true},{"isUse":true,"name":"复制数据","code":"copyData","icon":"ant-design:copy-outlined","isDefault":true},{"isUse":true,"name":"删除","code":"delete","icon":"ant-design:delete-outlined","isDefault":true}] + const list = [{"isUse":true,"name":"新增","type":"primary","code":"add","icon":"ant-design:plus-outlined","isDefault":true},{"isUse":true,"name":"编辑","code":"edit","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"刷新","code":"refresh","icon":"ant-design:reload-outlined","isDefault":true},{"isUse":true,"name":"查看","code":"view","icon":"ant-design:eye-outlined","isDefault":true},{"isUse":true,"name":"复制数据","code":"copyData","icon":"ant-design:copy-outlined","isDefault":true},{"isUse":true,"name":"删除","code":"delete","icon":"ant-design:delete-outlined","isDefault":true}] return filterButtonAuth(list); }) @@ -352,4 +352,4 @@ .hide{ display: none !important; } - \ No newline at end of file + diff --git a/src/views/workflow/task/components/flow/ProcessInformation.vue b/src/views/workflow/task/components/flow/ProcessInformation.vue index 43c30dc..eff7ae3 100644 --- a/src/views/workflow/task/components/flow/ProcessInformation.vue +++ b/src/views/workflow/task/components/flow/ProcessInformation.vue @@ -1,4 +1,7 @@