Browse Source

chore: RollBackTask

master
wangxiang 2 years ago
parent
commit
9807b99820
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 2
      src/components/Form/src/components/ApiSelect.vue
  2. 2
      src/views/workflow/task/TaskForm.vue
  3. 84
      src/views/workflow/task/popups/RollBackTaskModal.vue

2
src/components/Form/src/components/ApiSelect.vue

@ -44,7 +44,7 @@
value: [Array, Object, String, Number], value: [Array, Object, String, Number],
numberToString: propTypes.bool, numberToString: propTypes.bool,
api: { api: {
type: Function as PropType<(...args: Recordable[]) => Promise<Recordable>>, type: Function as PropType<(...args: any[]) => Promise<Recordable>>,
default: null, default: null,
}, },
// api params // api params

2
src/views/workflow/task/TaskForm.vue

@ -154,6 +154,7 @@
@ccEmit="handleCCEmit" @ccEmit="handleCCEmit"
@assignEmit="handleAssignEmit" @assignEmit="handleAssignEmit"
/> />
<RollBackTaskModal @register="registerRollBackTask" @success="handleRollBackTask"/>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -189,6 +190,7 @@
import { ApiSelect } from '/@/components/Form'; import { ApiSelect } from '/@/components/Form';
import { listUser } from '/@/api/platform/system/controller/user'; import { listUser } from '/@/api/platform/system/controller/user';
import { ActivityCommentInfo } from '/@/api/platform/workflow/entity/activityCommentInfo'; import { ActivityCommentInfo } from '/@/api/platform/workflow/entity/activityCommentInfo';
import RollBackTaskModal from './popups/RollBackTaskModal.vue';
/** 类型规范统一声明定义区域 */ /** 类型规范统一声明定义区域 */
interface WindowState { interface WindowState {

84
src/views/workflow/task/popups/RollBackTaskModal.vue

@ -0,0 +1,84 @@
<template>
<BasicModal
v-bind="$attrs"
title="退回任务"
minHeight="100px"
@ok="handleSubmit"
@register="registerModal"
>
<Form :model="modelRef" :rules="rulesRef">
<FormItem name="rollBackTaskDefKey"
:wrapperCol="{ style: { padding:'8px' } }"
v-bind="validateInfos.rollBackTaskDefKey"
>
<ApiSelect v-model:value="modelRef.rollBackTaskDefKey"
:api="rollBackTaskList"
:params="{ taskId: modelRef.taskId }"
labelField="taskName"
valueField="taskDefKey"
/>
</FormItem>
</Form>
</BasicModal>
</template>
<script lang="ts" setup>
/**
* 提供模板规范代码参考,请尽量保证编写代码风格跟模板规范代码一致
* 采用ant-design-vue原生组件编写表单,采用 setup 写法
* Copyright © 2023-2023 <a href="https://godolphinx.org">海豚生态开源社区</a> All rights reserved.
* author wangxiang4
*/
import { reactive } from 'vue';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
import { Form } from 'ant-design-vue';
import { useMessage } from '/@/hooks/web/useMessage';
import { rollBackTaskList } from '/@/api/platform/workflow/controller/task';
import { ApiSelect } from '/@/components/Form';
interface WindowState {
taskId: string;
rollBackTaskDefKey: string;
}
const { createMessage } = useMessage();
const emit = defineEmits(['success', 'register']);
const FormItem = Form.Item;
const useForm = Form.useForm;
const modelRef = reactive<WindowState>({
taskId: '',
rollBackTaskDefKey: '',
});
const rulesRef = reactive<Recordable>({
rollBackTaskDefKey: [
{
required: true,
whitespace: true,
message: '请选择驳回节点!',
}
]
});
const { resetFields, clearValidate, validate, validateInfos } = useForm(modelRef, rulesRef);
const [registerModal, { setModalProps, closeModal }] = useModalInner( (data: BoxPayload) => {
resetFields();
clearValidate();
modelRef.taskId = data.taskId;
const props: Partial<ModalProps> = { confirmLoading: false };
setModalProps(props);
});
/** 处理模态框提交 */
async function handleSubmit() {
try {
//
await validate();
//
setModalProps({ confirmLoading: true });
closeModal();
emit('success', modelRef.rollBackTaskDefKey);
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
Loading…
Cancel
Save