styleguide-root.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import zhCN from 'ant-design-vue/es/locale-provider/zh_CN'
  2. import store from '@/common/store'
  3. import { loginPromise } from './styleguide'
  4. import SdWebflowPanel from '@/webflow/sd-webflow-panel.vue'
  5. import flowService from '@/webflow/flow-service'
  6. export default (previewComponent) => {
  7. return {
  8. store,
  9. components: {
  10. previewComponentWait: function(resolve, reject) {
  11. // 等待登录成功,vuex信息都已经获取后再渲染组件
  12. loginPromise.finally(() => {
  13. let component = previewComponent
  14. resolve({
  15. render(createElement) {
  16. return (
  17. <a-config-provider locale={zhCN}>
  18. <component />
  19. </a-config-provider>
  20. )
  21. },
  22. created() {
  23. if (previewComponent.isFlowFormExample) {
  24. // 如果是流程样例,注册写死的表单ID,并用SdWebflowPanel显示
  25. flowService.addFlowForm(
  26. 'vue:doc/flowFormExample' + previewComponent._scopeId,
  27. previewComponent
  28. )
  29. // 把当前实例的id传递到route param
  30. const createdOri = SdWebflowPanel.created
  31. component = {
  32. ...SdWebflowPanel,
  33. created() {
  34. this.$route = {
  35. fullPath: '/sd-webflow/pages/draft/404',
  36. hash: '',
  37. params: {
  38. type: 'pages',
  39. mode: 'draft',
  40. id: '404',
  41. scopeId: previewComponent._scopeId,
  42. },
  43. path: '/sd-webflow/pages/draft/404',
  44. query: {},
  45. }
  46. createdOri.apply(this)
  47. },
  48. }
  49. }
  50. },
  51. })
  52. })
  53. },
  54. },
  55. render(createElement) {
  56. return <previewComponentWait />
  57. },
  58. }
  59. }