table-form.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <div v-if="isType === ''" class="hc-body-loading">
  3. <div v-if="isErrorShow" class="error-page">
  4. <div class="img" :style="`background-image: url(${svg403});`" />
  5. <div class="content">
  6. <h1>401</h1>
  7. <div class="desc">抱歉,身份验证异常,请重新进入</div>
  8. </div>
  9. </div>
  10. </div>
  11. <HcDataForm v-if="isType === 'data-fill'" :option="formNode" />
  12. <HcLogForm v-if="isType === 'log-fill'" :option="formNode" />
  13. </template>
  14. <script setup>
  15. import { onMounted, ref } from 'vue'
  16. import { useAppStore } from '~src/store'
  17. import { useRoute } from 'vue-router'
  18. import svg403 from '~src/assets/view/403.svg'
  19. import { isNullES } from 'js-fast-way'
  20. import { useAppLogin } from '~sto/user'
  21. import HcDataForm from './components/data-form.vue'
  22. import HcLogForm from './components/log-form.vue'
  23. //初始变量
  24. const useRoutes = useRoute()
  25. const store = useAppStore()
  26. //变量
  27. const isErrorShow = ref(false)
  28. const isType = ref('')
  29. const formNode = ref({})
  30. //渲染完成
  31. onMounted(() => {
  32. const { user, source } = useRoutes.query
  33. if (!isNullES(user)) {
  34. const userInfo = JSON.parse(decodeURIComponent(user))
  35. store.setIsSource(source)
  36. useAppLoginApi(userInfo)
  37. } else {
  38. formRender()
  39. isErrorShow.value = true
  40. postMsg('参数异常', 'error')
  41. }
  42. })
  43. //请求授权登录
  44. const useAppLoginApi = async (form) => {
  45. const { error } = await useAppLogin(form)
  46. if (error) {
  47. formRender()
  48. isErrorShow.value = true
  49. postMsg('身份验证异常', 'error')
  50. return false
  51. }
  52. //设置主题
  53. store.setTheme('light')
  54. store.setThemeVal('light')
  55. //处理其他数据
  56. setTimeout(() => {
  57. setFormType()
  58. isErrorShow.value = false
  59. }, 1000)
  60. }
  61. const formRender = () => {
  62. window?.postMessage({
  63. type: 'formRender',
  64. source: 'web',
  65. data: {},
  66. })
  67. }
  68. //弹出提示
  69. const postMsg = (title, icon) => {
  70. window?.postMessage({
  71. type: 'msg',
  72. source: 'web',
  73. data: {
  74. title: title,
  75. icon: icon,
  76. },
  77. })
  78. }
  79. //处理数据
  80. const setFormType = () => {
  81. const { type, node } = useRoutes.query
  82. if (isNullES(type)) {
  83. formRender()
  84. isErrorShow.value = true
  85. postMsg('身份验证异常', 'error')
  86. return
  87. }
  88. //处理其他数据
  89. formNode.value = node ? JSON.parse(decodeURIComponent(node)) : {}
  90. isType.value = type
  91. }
  92. </script>
  93. <style lang="scss" scoped>
  94. @import "../../styles/error/app-auth.scss";
  95. </style>
  96. <style lang="scss">
  97. html, body, #app {
  98. background-color: white;
  99. }
  100. </style>