mp_objInfo.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  6. <title></title>
  7. <script src="/js/mp_base/base.js"></script>
  8. <style>
  9. #app {
  10. background: #f5f5f5;
  11. min-height: 100vh;
  12. display: flex;
  13. flex-direction: column;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div id="app" v-cloak>
  19. <!-- 使用 ss-sub-tab 组件 -->
  20. <ss-sub-tab
  21. v-if="tabList.length > 0"
  22. :tab-list="tabList"
  23. :base-params="baseParams"
  24. @tab-change="handleTabChange"
  25. />
  26. </div>
  27. <script>
  28. // 等待SS框架加载完成
  29. window.SS.ready(function () {
  30. // 使用SS框架的方式创建Vue实例
  31. window.SS.dom.initializeFormApp({
  32. el: '#app',
  33. data() {
  34. return {
  35. pageParams: {},
  36. loading: false,
  37. tabList: [], // tabTag接口返回的Tab列表
  38. baseParams: {} // 基础参数(传递给子页面)
  39. }
  40. },
  41. mounted() {
  42. // 获取URL参数
  43. this.pageParams = this.getUrlParams()
  44. console.log('🔗 mp_objInfo页面接收到参数:', this.pageParams)
  45. // 设置基础参数(会传递给所有子页面)
  46. this.baseParams = {
  47. ssObjName: this.pageParams.ssObjName || '',
  48. ssObjId: this.pageParams.ssObjId || '',
  49. sqid: this.pageParams.sqid || '',
  50. shid: this.pageParams.shid || '',
  51. bdlbm: this.pageParams.bdlbm || '',
  52. dataType: this.pageParams.dataType || '',
  53. encode_shid: this.pageParams.encode_shid || ''
  54. }
  55. // 只调用tabTag接口获取Tab列表
  56. if (this.pageParams.ssObjName && this.pageParams.ssObjId) {
  57. this.loadTag()
  58. }
  59. },
  60. methods: {
  61. // 获取URL参数
  62. getUrlParams() {
  63. const params = {}
  64. const urlSearchParams = new URLSearchParams(window.location.search)
  65. for (const [key, value] of urlSearchParams) {
  66. params[key] = decodeURIComponent(value)
  67. }
  68. return params
  69. },
  70. // 加载Tab列表
  71. async loadTag() {
  72. this.loading = true
  73. try {
  74. console.log('📋 调用tabTag服务获取Tab列表...')
  75. const { ssObjName, ssObjId, sqid, shid, bdlbm, dataType, encode_shid } = this.baseParams
  76. const tagResponse = await request.post(
  77. `/service?ssServ=tabTag&ssDest=data&name=baseInfo,child&ssObjName=${ssObjName}&ssObjId=${ssObjId}&sqid=${sqid}&shid=${shid}&bdlbm=${bdlbm}&dataType=${dataType}&encode_shid=${encode_shid}`,
  78. { loading: false, formData: true }
  79. )
  80. // 保存Tab列表
  81. if (tagResponse && tagResponse.data && tagResponse.data.tabList) {
  82. this.tabList = tagResponse.data.tabList
  83. console.log('✅ 获取到Tab列表:', this.tabList)
  84. } else {
  85. console.warn('⚠️ tabTag响应中没有tabList字段')
  86. }
  87. } catch (error) {
  88. console.error('❌ 加载Tab数据失败:', error)
  89. } finally {
  90. this.loading = false
  91. }
  92. },
  93. // Tab切换事件处理
  94. handleTabChange({ index, tab }) {
  95. console.log('📑 切换到Tab:', index, tab.desc || tab.title)
  96. }
  97. }
  98. })
  99. })
  100. </script>
  101. </body>