index.vue.vm 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <script lang="ts" setup>
  2. import { reactive, onMounted, toRefs} from 'vue';
  3. import { useMessage } from '@jnpf/hooks';
  4. import { usePopup } from '@jnpf/ui/popup';
  5. import FlowParser from '#/views/workFlow/components/FlowParser.vue';
  6. import { getFlowStartFormId } from '#/api/workFlow/template';
  7. import { useTabs } from '@vben/hooks';
  8. import { useRouter } from 'vue-router';
  9. interface State {
  10. flowId: string;
  11. }
  12. const { closeCurrentTab } = useTabs();
  13. const router = useRouter();
  14. const { createMessage } = useMessage();
  15. const [registerFlowParser, { openPopup: openFlowParser }] = usePopup();
  16. const state = reactive<State>({
  17. flowId: '',//请在此处填写流程模板id
  18. });
  19. function init() {
  20. const data = {
  21. id: '',
  22. flowId: state.flowId,
  23. opType: '-1',
  24. hideCancelBtn: true,
  25. hideSaveBtn: true,
  26. };
  27. openFlowParser(true, data);
  28. }
  29. #if(${context.isFlow})
  30. function getFlowId(){
  31. if(!state.flowId){
  32. createMessage.error('流程模板的flowId未填写')
  33. closeCurrentTab();
  34. router.replace('/404');
  35. return
  36. }
  37. getFlowStartFormId(state.flowId).then(res => {
  38. init()
  39. }).catch(() => {
  40. closeCurrentTab();
  41. router.replace('/404');
  42. });
  43. }
  44. #end
  45. onMounted(() => {
  46. #if(${context.isFlow})
  47. getFlowId()
  48. #else
  49. init();
  50. #end
  51. });
  52. </script>
  53. <template>
  54. <div class="jnpf-content-wrapper bg-white">
  55. <FlowParser @register="registerFlowParser" @reload="init()" />
  56. </div>
  57. </template>