xm-linkopen-handler.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { router } from '@/common/router-ready'
  2. import flowService from '@/webflow/flow-service'
  3. export default function({ button, eventScript, context }) {
  4. return new Promise((resolve) => {
  5. // 新窗口打开
  6. const isNewWindow = eventScript.newWindow === '1'
  7. const url = eventScript.targetLink
  8. const appModuleId = eventScript.appModuleId
  9. const formListId = eventScript.formListId
  10. // 获取设置的默认值
  11. const { fieldInfos } = context
  12. const id = fieldInfos.find((f) => f.name === 'id')?.value
  13. const groupId = fieldInfos.find((f) => f.name === 'subProjectId')?.value
  14. const query = {}
  15. if (appModuleId && appModuleId !== '') {
  16. this.$set(query, 'moduleId', appModuleId)
  17. }
  18. if (formListId && formListId !== '') {
  19. this.$set(query, 'formListId', formListId)
  20. }
  21. this.$set(query, 'projectId', id)
  22. if (groupId && groupId !== '') {
  23. this.$set(query, 'subProjectId', groupId)
  24. }
  25. const oRoute = router.resolve({
  26. path: url,
  27. query: {
  28. ...query,
  29. },
  30. })
  31. if (isNewWindow) {
  32. window.open(oRoute.href, '_blank')
  33. } else {
  34. router.push(oRoute.route.fullPath)
  35. }
  36. resolve()
  37. })
  38. }