eoss-ui 0.8.24 → 0.8.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/lib/button-group.js +2 -2
  2. package/lib/calendar.js +2 -2
  3. package/lib/calogin.js +3 -2
  4. package/lib/card.js +2 -2
  5. package/lib/checkbox-group.js +3 -2
  6. package/lib/clients.js +2 -2
  7. package/lib/dialog.js +2 -2
  8. package/lib/enable-drag.js +2 -2
  9. package/lib/enterprise.js +2 -2
  10. package/lib/eoss-ui.common.js +603 -151
  11. package/lib/error-page.js +2 -2
  12. package/lib/flow-list.js +96 -96
  13. package/lib/flow.js +37 -37
  14. package/lib/form.js +566 -105
  15. package/lib/index.js +1 -1
  16. package/lib/layout.js +2 -2
  17. package/lib/login.js +3 -2
  18. package/lib/main.js +5 -5
  19. package/lib/theme-chalk/form.css +1 -1
  20. package/lib/theme-chalk/index.css +1 -1
  21. package/lib/theme-chalk/login.css +1 -1
  22. package/lib/upload.js +3 -2
  23. package/package.json +1 -1
  24. package/packages/button-group/src/main.vue +346 -346
  25. package/packages/calogin/src/main.vue +412 -412
  26. package/packages/clients/src/main.vue +151 -151
  27. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  28. package/packages/flow/src/component/FileList.vue +97 -97
  29. package/packages/flow/src/component/SendMsg.vue +242 -242
  30. package/packages/flow/src/component/SortFlow.vue +110 -110
  31. package/packages/flow/src/form.vue +123 -123
  32. package/packages/flow/src/main.vue +1 -1
  33. package/packages/flow/src/table.vue +58 -58
  34. package/packages/flow-list/src/main.vue +2337 -2337
  35. package/packages/form/src/1.json +17 -0
  36. package/packages/form/src/form-tab-item-render.vue +145 -0
  37. package/packages/form/src/main.vue +46 -0
  38. package/packages/form/src/table.vue +1512 -1512
  39. package/packages/icon/src/main.vue +104 -104
  40. package/packages/login/src/resetPassword.vue +557 -557
  41. package/packages/main/src/public/online.vue +89 -89
  42. package/packages/main/src/public/search.vue +464 -464
  43. package/packages/main/src/public/settings.vue +273 -273
  44. package/packages/main/src/simplicity/apps.vue +388 -388
  45. package/packages/main/src/simplicity/avatar.vue +82 -82
  46. package/packages/main/src/simplicity/handler.vue +158 -158
  47. package/packages/main/src/simplicity/menu-list.vue +135 -135
  48. package/packages/main/src/simplicity/message.vue +293 -293
  49. package/packages/main/src/simplicity/notice.vue +222 -222
  50. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  51. package/packages/main/src/simplicity/user.vue +259 -259
  52. package/packages/main/src/simplicityTop/apps.vue +388 -388
  53. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  54. package/packages/main/src/simplicityTop/handler.vue +215 -215
  55. package/packages/main/src/simplicityTop/lists.vue +84 -84
  56. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  57. package/packages/main/src/simplicityTop/message.vue +293 -293
  58. package/packages/main/src/simplicityTop/notice.vue +222 -222
  59. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  60. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  61. package/packages/main/src/simplicityTop/user.vue +259 -259
  62. package/packages/nav/src/main.vue +351 -351
  63. package/packages/selector/src/main.vue +761 -761
  64. package/packages/selector-panel/src/main.vue +1036 -1036
  65. package/packages/selector-panel/src/selection.vue +174 -174
  66. package/packages/switch/src/main.vue +170 -170
  67. package/packages/theme-chalk/lib/form.css +1 -1
  68. package/packages/theme-chalk/lib/index.css +1 -1
  69. package/packages/theme-chalk/lib/login.css +1 -1
  70. package/packages/theme-chalk/src/data-table.scss +297 -297
  71. package/packages/theme-chalk/src/flow-list.scss +55 -55
  72. package/packages/theme-chalk/src/form.scss +504 -501
  73. package/packages/theme-chalk/src/handler.scss +148 -148
  74. package/packages/theme-chalk/src/icon.scss +3452 -3452
  75. package/packages/theme-chalk/src/login.scss +1006 -1006
  76. package/packages/theme-chalk/src/main.scss +664 -664
  77. package/packages/theme-chalk/src/menu.scss +224 -224
  78. package/packages/theme-chalk/src/selector.scss +114 -114
  79. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  80. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  81. package/packages/theme-chalk/src/upload.scss +172 -172
  82. package/packages/tips/src/main.vue +141 -141
  83. package/packages/wujie/src/main.vue +146 -146
  84. package/src/index.js +163 -163
  85. package/src/utils/rules.js +18 -18
  86. package/packages/.DS_Store +0 -0
  87. package/packages/calogin/.DS_Store +0 -0
  88. package/packages/date-picker/.DS_Store +0 -0
  89. package/packages/date-picker/src/.DS_Store +0 -0
  90. package/packages/dialog/.DS_Store +0 -0
  91. package/packages/flow/.DS_Store +0 -0
  92. package/packages/flow/src/.DS_Store +0 -0
  93. package/packages/flow-list/.DS_Store +0 -0
  94. package/packages/form/.DS_Store +0 -0
  95. package/packages/icon/.DS_Store +0 -0
  96. package/packages/login/.DS_Store +0 -0
  97. package/packages/main/.DS_Store +0 -0
  98. package/packages/main/src/.DS_Store +0 -0
  99. package/packages/menu/.DS_Store +0 -0
  100. package/packages/select/.DS_Store +0 -0
  101. package/packages/selector/.DS_Store +0 -0
  102. package/packages/selector-panel/.DS_Store +0 -0
  103. package/packages/theme-chalk/src/.DS_Store +0 -0
  104. package/packages/upload/.DS_Store +0 -0
  105. package/src/.DS_Store +0 -0
  106. package/src/utils/.DS_Store +0 -0
@@ -0,0 +1,17 @@
1
+
2
+ {
3
+ "type": "tabs",
4
+ "tabType": "line",
5
+ "contents": [
6
+ {
7
+ "title": "境外国有资产-境外机构主题表",
8
+ "name": "block_3a3",
9
+ "contents": []
10
+ },
11
+ {
12
+ "title": "境外国有资产-境外机构经营信息主题表",
13
+ "name": "block_a96",
14
+ "contents": []
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,145 @@
1
+ <template>
2
+ <el-tabs v-model="activeName" class="es-form-tabs" v-bind="$attrs">
3
+ <el-tab-pane
4
+ v-for="(tab, index) in items"
5
+ :key="tab.name || index"
6
+ :label="tab.title"
7
+ :name="tab.name"
8
+ >
9
+ <!-- 核心:在每个 tab-pane 内部,遍历并渲染该 tab 的 contents -->
10
+ <template v-for="(item, subIndex) in tab.contents">
11
+ <div
12
+ v-if="item.type === 'caption' && !item.hide"
13
+ :key="'caption-' + subIndex"
14
+ class="es-form-item-caption"
15
+ >
16
+ {{ item.text }}
17
+ </div>
18
+ <el-form-item
19
+ v-else-if="!item.hide"
20
+ :key="item.name || subIndex"
21
+ :label-width="getItemLabelWidth(item)"
22
+ :prop="item.name"
23
+ :rules="getRules ? getRules(item) : []"
24
+ :style="getStyle ? getStyle(item) : {}"
25
+ >
26
+ <es-label
27
+ slot="label"
28
+ v-if="shouldShowLabel(item)"
29
+ v-bind="getLabel ? getLabel(item.label) : {}"
30
+ ></es-label>
31
+ <es-data-table
32
+ v-if="item.type == 'table'"
33
+ :data="models[item.name]"
34
+ :full="item.height != undefined || item.height != null"
35
+ v-bind="
36
+ handleExclAttribute({
37
+ data: item,
38
+ attrs: ['value', 'events']
39
+ })
40
+ "
41
+ v-on="item.events"
42
+ :readonly="item.readonly !== undefined ? item.readonly : readonly"
43
+ @blur="
44
+ (val, data) => {
45
+ handleBlur(item, val, data);
46
+ }
47
+ "
48
+ @focus="
49
+ (val, data) => {
50
+ handleFocus(item, val, data);
51
+ }
52
+ "
53
+ @edit="
54
+ (val, data) => {
55
+ handleChange(item, val, data);
56
+ }
57
+ "
58
+ @btnClick="handleClick"
59
+ @dataChange="handleDataChange"
60
+ >
61
+ </es-data-table>
62
+ <!-- 动态渲染具体组件 -->
63
+ <component
64
+ v-else
65
+ :is="getComponentName(item.type)"
66
+ v-bind="
67
+ handleExclAttribute
68
+ ? handleExclAttribute({
69
+ data: item,
70
+ attrs: ['value', 'events']
71
+ })
72
+ : {}
73
+ "
74
+ v-on="item.events"
75
+ v-model="models[item.name]"
76
+ :readonly="item.readonly !== undefined ? item.readonly : readonly"
77
+ @change="(val) => $emit('change', item, val)"
78
+ />
79
+ </el-form-item>
80
+ </template>
81
+ </el-tab-pane>
82
+ </el-tabs>
83
+ </template>
84
+
85
+ <script>
86
+ export default {
87
+ name: 'FormTabItemRender',
88
+ inheritAttrs: false, // 允许将 el-tabs 的属性透传
89
+ props: {
90
+ // 这里的 items 对应 JSON 中的 contents 数组,即 Tab Pane 列表
91
+ items: { type: Array, default: () => [] },
92
+ models: { type: Object, default: () => ({}) },
93
+ readonly: Boolean,
94
+ showLabel: Boolean,
95
+ labelWidth: String,
96
+ hides: { type: Array, default: () => [] },
97
+ // 工具方法
98
+ handleExclAttribute: Function,
99
+ getLabel: Function,
100
+ getRules: Function,
101
+ handleBlur: Function,
102
+ handleFocus: Function,
103
+ handleChange: Function,
104
+ handleClick: Function,
105
+ handleDataChange: Function,
106
+ getStyle: Function
107
+ },
108
+ data() {
109
+ return {
110
+ activeName: ''
111
+ };
112
+ },
113
+ mounted() {
114
+ console.log('this.items', this.items);
115
+ this.activeName = this.items[0].name;
116
+ console.log('active', this.activeName);
117
+ },
118
+ methods: {
119
+ getComponentName(type) {
120
+ const map = {
121
+ input: 'es-input',
122
+ select: 'es-select',
123
+ number: 'es-input-number',
124
+ radio: 'es-radio-group',
125
+ checkbox: 'es-checkbox-group',
126
+ date: 'es-date-picker',
127
+ table: 'es-data-table',
128
+ textarea: 'es-input' // 假设 textarea 也是 es-input 带 type="textarea"
129
+ };
130
+ return map[type] || 'es-input';
131
+ },
132
+ shouldShowLabel(item) {
133
+ return (
134
+ item.showLabel !== false &&
135
+ item.label &&
136
+ !item.labelHide &&
137
+ this.showLabel
138
+ );
139
+ },
140
+ getItemLabelWidth(item) {
141
+ return this.shouldShowLabel(item) ? this.labelWidth : '0';
142
+ }
143
+ }
144
+ };
145
+ </script>
@@ -744,6 +744,27 @@
744
744
  "
745
745
  v-on="item.events"
746
746
  ></component>
747
+ <form-item-renderer
748
+ v-else-if="item.type === 'tabs'"
749
+ :items="item"
750
+ :models="models"
751
+ :readonly="readonly"
752
+ :show-label="showLabel"
753
+ :label-width="labelWidth"
754
+ :hides="hides"
755
+ :handle-excl-attribute="handleExclAttribute"
756
+ :get-label="getLabel"
757
+ :get-rules="getRules"
758
+ :get-style="getStyle"
759
+ :handle-blur="handleBlur"
760
+ :handle-focus="handleFocus"
761
+ :handle-change="handleChange"
762
+ :handle-click="handleClick"
763
+ :handle-data-change="handleDataChange"
764
+ @change="handleChange"
765
+ @blur="handleBlur"
766
+ @focus="handleFocus"
767
+ />
747
768
  <es-input
748
769
  v-else
749
770
  v-bind="
@@ -1050,6 +1071,7 @@
1050
1071
  "
1051
1072
  v-on="inline.events"
1052
1073
  ></component>
1074
+
1053
1075
  <es-input
1054
1076
  v-else
1055
1077
  v-bind="
@@ -1335,6 +1357,7 @@
1335
1357
  "
1336
1358
  v-on="inline.events"
1337
1359
  ></component>
1360
+
1338
1361
  <es-input
1339
1362
  v-else
1340
1363
  v-bind="
@@ -1841,6 +1864,27 @@
1841
1864
  "
1842
1865
  v-on="item.events"
1843
1866
  ></component>
1867
+ <form-item-renderer
1868
+ v-else-if="item.type === 'tabs'"
1869
+ :items="item.contents"
1870
+ :models="models"
1871
+ :readonly="readonly"
1872
+ :show-label="showLabel"
1873
+ :label-width="labelWidth"
1874
+ :hides="hides"
1875
+ :handle-excl-attribute="handleExclAttribute"
1876
+ :get-label="getLabel"
1877
+ :get-rules="getRules"
1878
+ :get-style="getStyle"
1879
+ :handle-blur="handleBlur"
1880
+ :handle-focus="handleFocus"
1881
+ :handle-change="handleChange"
1882
+ :handle-click="handleClick"
1883
+ :handle-data-change="handleDataChange"
1884
+ @change="handleChange"
1885
+ @blur="handleBlur"
1886
+ @focus="handleFocus"
1887
+ />
1844
1888
  <es-input
1845
1889
  v-else
1846
1890
  v-bind="
@@ -2466,6 +2510,7 @@ import { debounce } from 'throttle-debounce';
2466
2510
  import util from 'eoss-ui/src/utils/util';
2467
2511
  import rules from 'eoss-ui/src/utils/rules.js';
2468
2512
  const pageView = util.getParams('pageView');
2513
+ import FormItemRenderer from './form-tab-item-render.vue';
2469
2514
  export default {
2470
2515
  name: 'EsForm',
2471
2516
  inheritAttrs: false,
@@ -2488,6 +2533,7 @@ export default {
2488
2533
  default: ''
2489
2534
  }
2490
2535
  },
2536
+ components: { FormItemRenderer },
2491
2537
  props: {
2492
2538
  viewCode: {
2493
2539
  type: String,