diff --git a/apps/web-antd/src/api/bpm/task/index.ts b/apps/web-antd/src/api/bpm/task/index.ts index 8572b7e6e..b396594f7 100644 --- a/apps/web-antd/src/api/bpm/task/index.ts +++ b/apps/web-antd/src/api/bpm/task/index.ts @@ -7,13 +7,29 @@ import { requestClient } from '#/api/request'; export namespace BpmTaskApi { /** 流程任务 */ export interface Task { - id: number; // 编号 - name: string; // 监听器名字 - type: string; // 监听器类型 - status: number; // 监听器状态 - event: string; // 监听事件 - valueType: string; // 监听器值类型 - processInstance?: BpmProcessInstanceApi.ProcessInstance; // 流程实例 + id: string; // 编号 + name: string; // 任务名字 + status: number; // 任务状态 + createTime: number; // 创建时间 + endTime: number; // 结束时间 + durationInMillis: number; // 持续时间 + reason: string; // 审批理由 + ownerUser: any; // 负责人 + assigneeUser: any; // 处理人 + taskDefinitionKey: string; // 任务定义的标识 + processInstanceId: string; // 流程实例id + processInstance: BpmProcessInstanceApi.ProcessInstance; // 流程实例 + parentTaskId: any; // 父任务id + children: any; // 子任务 + formId: any; // 表单id + formName: any; // 表单名称 + formConf: any; // 表单配置 + formFields: any; // 表单字段 + formVariables: any; // 表单变量 + buttonsSetting: any; // 按钮设置 + signEnable: any; // 签名设置 + reasonRequire: any; // 原因设置 + nodeType: any; // 节点类型 } } diff --git a/apps/web-antd/src/api/infra/file-config/index.ts b/apps/web-antd/src/api/infra/file-config/index.ts index 1a2fb7707..3b1e82e6c 100644 --- a/apps/web-antd/src/api/infra/file-config/index.ts +++ b/apps/web-antd/src/api/infra/file-config/index.ts @@ -17,6 +17,7 @@ export namespace InfraFileConfigApi { accessSecret?: string; pathStyle?: boolean; enablePublicAccess?: boolean; + region?: string; domain: string; } diff --git a/apps/web-antd/src/api/iot/product/product/index.ts b/apps/web-antd/src/api/iot/product/product/index.ts index 28b2f7b2e..bf5682d2d 100644 --- a/apps/web-antd/src/api/iot/product/product/index.ts +++ b/apps/web-antd/src/api/iot/product/product/index.ts @@ -48,6 +48,12 @@ export enum CodecTypeEnum { ALINK = 'Alink', // 阿里云 Alink 协议 } +/** IOT 产品状态枚举类 */ +export enum ProductStatusEnum { + UNPUBLISHED = 0, // 开发中 + PUBLISHED = 1, // 已发布 +} + /** 查询产品分页 */ export function getProductPage(params: PageParam) { return requestClient.get>( diff --git a/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts b/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts index e497ae204..19af95e95 100644 --- a/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts +++ b/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts @@ -21,6 +21,7 @@ export namespace MallCombinationActivityApi { limitDuration?: number; // 限制时长 combinationPrice?: number; // 拼团价格 products: CombinationProduct[]; // 商品列表 + picUrl?: any; } /** 拼团活动所需属性 */ diff --git a/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts b/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts index 82297effd..1c18c5e3b 100644 --- a/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts +++ b/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts @@ -31,6 +31,7 @@ export namespace MallSeckillActivityApi { totalStock?: number; // 秒杀总库存 seckillPrice?: number; // 秒杀价格 products?: SeckillProduct[]; // 秒杀商品列表 + picUrl?: any; } } diff --git a/apps/web-antd/src/api/system/social/client/index.ts b/apps/web-antd/src/api/system/social/client/index.ts index 181cdf86b..55978dd14 100644 --- a/apps/web-antd/src/api/system/social/client/index.ts +++ b/apps/web-antd/src/api/system/social/client/index.ts @@ -12,6 +12,7 @@ export namespace SystemSocialClientApi { clientId: string; clientSecret: string; agentId?: string; + publicKey?: string; status: number; createTime?: Date; } diff --git a/apps/web-antd/src/router/routes/modules/bpm.ts b/apps/web-antd/src/router/routes/modules/bpm.ts index 05e0e5664..bd4a7a209 100644 --- a/apps/web-antd/src/router/routes/modules/bpm.ts +++ b/apps/web-antd/src/router/routes/modules/bpm.ts @@ -9,24 +9,6 @@ const routes: RouteRecordRaw[] = [ hideInMenu: true, }, children: [ - { - path: 'task', - name: 'BpmTask', - meta: { - title: '审批中心', - icon: 'ant-design:history-outlined', - }, - children: [ - { - path: 'my', - name: 'BpmTaskMy', - component: () => import('#/views/bpm/processInstance/index.vue'), - meta: { - title: '我的流程', - }, - }, - ], - }, { path: 'process-instance/detail', component: () => import('#/views/bpm/processInstance/detail/index.vue'), diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/translate/zh.js b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/translate/zh.js index cc2a06391..4d25da7f5 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/translate/zh.js +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/translate/zh.js @@ -11,7 +11,7 @@ export default { 'Append Gateway': '追加网关', 'Append Task': '追加任务', 'Append Intermediate/Boundary Event': '追加中间抛出事件/边界事件', - + TextAnnotation: '文本注释', 'Activate the global connect tool': '激活全局连接工具', 'Append {type}': '添加 {type}', 'Add Lane above': '在上面添加道', @@ -31,10 +31,16 @@ export default { 'Create expanded SubProcess': '创建扩展子过程', 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间抛出事件/边界事件', 'Create Pool/Participant': '创建池/参与者', - 'Parallel Multi Instance': '并行多重事件', - 'Sequential Multi Instance': '时序多重事件', + 'Participant Multiplicity': '参与者多重性', + 'Empty pool/participant (removes content)': '清空池/参与者(移除内容)', + 'Empty pool/participant': '收缩池/参与者', + 'Expanded pool/participant': '展开池/参与者', + 'Parallel Multi-Instance': '并行多重事件', + 'Sequential Multi-Instance': '时序多重事件', DataObjectReference: '数据对象参考', DataStoreReference: '数据存储参考', + 'Data object reference': '数据对象引用 ', + 'Data store reference': '数据存储引用 ', Loop: '循环', 'Ad-hoc': '即席', 'Create {type}': '创建 {type}', @@ -49,6 +55,9 @@ export default { 'Call Activity': '调用活动', 'Sub-Process (collapsed)': '子流程(折叠的)', 'Sub-Process (expanded)': '子流程(展开的)', + 'Ad-hoc sub-process': '即席子流程', + 'Ad-hoc sub-process (collapsed)': '即席子流程(折叠的)', + 'Ad-hoc sub-process (expanded)': '即席子流程(展开的)', 'Start Event': '开始事件', StartEvent: '开始事件', 'Intermediate Throw Event': '中间事件', @@ -111,10 +120,10 @@ export default { 'Parallel Gateway': '并行网关', 'Inclusive Gateway': '相容网关', 'Complex Gateway': '复杂网关', - 'Event based Gateway': '事件网关', + 'Event-based Gateway': '事件网关', Transaction: '转运', - 'Sub Process': '子流程', - 'Event Sub Process': '事件子流程', + 'sub-process': '子流程', + 'Event sub-process': '事件子流程', 'Collapsed Pool': '折叠池', 'Expanded Pool': '展开池', diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/PropertiesPanel.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/PropertiesPanel.vue index 5371c88d0..112b9c902 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/PropertiesPanel.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/PropertiesPanel.vue @@ -390,8 +390,9 @@ watch(() => props.businessObject, syncFromBusinessObject, { deep: true }); + diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/custom-config/components/UserTaskCustomConfig.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/custom-config/components/UserTaskCustomConfig.vue index d7730e291..fc0fd0171 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/custom-config/components/UserTaskCustomConfig.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/custom-config/components/UserTaskCustomConfig.vue @@ -75,8 +75,14 @@ const assignEmptyUserIds = ref(); // 操作按钮 const buttonsSettingEl = ref(); -const { btnDisplayNameEdit, changeBtnDisplayName, btnDisplayNameBlurEvent } = - useButtonsSetting(); +const { btnDisplayNameEdit, changeBtnDisplayName } = useButtonsSetting(); +const btnDisplayNameBlurEvent = (index: number) => { + btnDisplayNameEdit.value[index] = false; + const buttonItem = buttonsSettingEl.value[index]; + buttonItem.displayName = + buttonItem.displayName || OPERATION_BUTTON_NAME.get(buttonItem.id)!; + updateElementExtensions(); +}; // 字段权限 const fieldsPermissionEl = ref([]); @@ -172,7 +178,7 @@ const resetCustomConfigList = () => { }); // 操作按钮 - buttonsSettingEl.value = elExtensionElements.value.values?.find( + buttonsSettingEl.value = elExtensionElements.value.values?.filter( (ex: any) => ex.$type === `${prefix}:ButtonsSetting`, ); if (buttonsSettingEl.value.length === 0) { @@ -189,7 +195,7 @@ const resetCustomConfigList = () => { // 字段权限 if (formType.value === BpmModelFormType.NORMAL) { - const fieldsPermissionList = elExtensionElements.value.values?.find( + const fieldsPermissionList = elExtensionElements.value.values?.filter( (ex: any) => ex.$type === `${prefix}:FieldsPermission`, ); fieldsPermissionEl.value = []; @@ -358,24 +364,14 @@ function useButtonsSetting() { const changeBtnDisplayName = (index: number) => { btnDisplayNameEdit.value[index] = true; }; - const btnDisplayNameBlurEvent = (index: number) => { - btnDisplayNameEdit.value[index] = false; - const buttonItem = buttonsSetting.value?.[index]; - if (buttonItem) { - buttonItem.displayName = - buttonItem.displayName || OPERATION_BUTTON_NAME.get(buttonItem.id)!; - } - }; return { buttonsSetting, btnDisplayNameEdit, changeBtnDisplayName, - btnDisplayNameBlurEvent, }; } /** 批量更新权限 */ -// TODO @lesan:这个页面,有一些 idea 红色报错,咱要不要 fix 下! const updatePermission = (type: string) => { fieldsPermissionEl.value.forEach((field: any) => { if (type === 'READ') { @@ -532,7 +528,10 @@ onMounted(async () => {
- +
diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue index 55d3f545b..e2b88ffdb 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue @@ -61,7 +61,10 @@ const bpmnInstances = () => (window as any)?.bpmnInstances; const resetListenersList = () => { bpmnElement.value = bpmnInstances().bpmnElement; - otherExtensionList.value = []; + otherExtensionList.value = + bpmnElement.value.businessObject?.extensionElements?.values?.filter( + (ex: any) => ex.$type !== `${prefix}:ExecutionListener`, + ) ?? []; // 保留非监听器类型的扩展属性,避免移除监听器时清空其他配置(如审批人等)。相关案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICMSYC bpmnElementListeners.value = bpmnElement.value.businessObject?.extensionElements?.values?.filter( (ex: any) => ex.$type === `${prefix}:ExecutionListener`, diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue index 6ab38bcf9..f0b48f642 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue @@ -1,23 +1,21 @@