cnhis-design-vue 3.1.1 → 3.1.4-beta.1

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 (216) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/env.d.ts +8 -4
  3. package/es/packages/big-table/index.d.ts +2038 -0
  4. package/es/packages/big-table/index.mjs +1 -0
  5. package/es/packages/big-table/index2.mjs +14 -0
  6. package/es/packages/big-table/src/BigTable.mjs +2 -0
  7. package/es/packages/big-table/src/BigTable.vue.d.ts +2052 -0
  8. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.mjs +2315 -0
  9. package/es/packages/big-table/src/BigTable2.mjs +4 -0
  10. package/es/packages/big-table/src/bigTableEmits.d.ts +2 -0
  11. package/es/packages/big-table/src/bigTableEmits.mjs +1 -0
  12. package/{packages/big-table/src/bigTableEmits.ts → es/packages/big-table/src/bigTableEmits2.mjs} +48 -48
  13. package/es/packages/big-table/src/bigTableProps.d.ts +194 -0
  14. package/es/packages/big-table/src/bigTableProps.mjs +1 -0
  15. package/{packages/big-table/src/bigTableProps.ts → es/packages/big-table/src/bigTableProps2.mjs} +116 -125
  16. package/es/packages/big-table/src/bigTableState.d.ts +55 -0
  17. package/es/packages/big-table/src/bigTableState.mjs +1 -0
  18. package/es/packages/big-table/src/bigTableState2.mjs +51 -0
  19. package/es/packages/big-table/src/components/NoData.mjs +2 -0
  20. package/es/packages/big-table/src/components/NoData.vue.d.ts +51 -0
  21. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.mjs +72 -0
  22. package/es/packages/big-table/src/components/NoData2.mjs +4 -0
  23. package/es/packages/big-table/src/components/SvgIcon.mjs +2 -0
  24. package/es/packages/big-table/src/components/SvgIcon.vue.d.ts +43 -0
  25. package/es/packages/big-table/src/components/SvgIcon.vue_vue_type_script_setup_true_lang.mjs +34 -0
  26. package/es/packages/big-table/src/components/SvgIcon2.mjs +4 -0
  27. package/es/packages/big-table/src/components/TextOverTooltip.mjs +2 -0
  28. package/es/packages/big-table/src/components/TextOverTooltip.vue.d.ts +560 -0
  29. package/es/packages/big-table/src/components/TextOverTooltip.vue_vue_type_script_setup_true_lang.mjs +74 -0
  30. package/es/packages/big-table/src/components/TextOverTooltip2.mjs +4 -0
  31. package/es/packages/big-table/src/components/edit-form/edit-date.d.ts +34 -0
  32. package/es/packages/big-table/src/components/edit-form/edit-date.mjs +88 -0
  33. package/es/packages/big-table/src/components/edit-form/edit-input.d.ts +43 -0
  34. package/es/packages/big-table/src/components/edit-form/edit-input.mjs +51 -0
  35. package/es/packages/big-table/src/components/edit-form/edit-select-table.d.ts +35 -0
  36. package/es/packages/big-table/src/components/edit-form/edit-select.d.ts +35 -0
  37. package/es/packages/big-table/src/components/edit-form/edit-select.mjs +89 -0
  38. package/es/packages/big-table/src/hooks/useBatchEditing.d.ts +17 -0
  39. package/es/packages/big-table/src/hooks/useBatchEditing.mjs +1 -0
  40. package/es/packages/big-table/src/hooks/useBatchEditing2.mjs +284 -0
  41. package/es/packages/big-table/src/hooks/useEdit.d.ts +171 -0
  42. package/es/packages/big-table/src/hooks/useEdit.mjs +1 -0
  43. package/es/packages/big-table/src/hooks/useEdit2.mjs +108 -0
  44. package/es/packages/big-table/src/hooks/useFormat.d.ts +29 -0
  45. package/es/packages/big-table/src/hooks/useFormat.mjs +1 -0
  46. package/{packages/big-table/src/hooks/useFormat.ts → es/packages/big-table/src/hooks/useFormat2.mjs} +480 -612
  47. package/es/packages/big-table/src/hooks/useNestTable.d.ts +8 -0
  48. package/es/packages/big-table/src/hooks/useNestTable.mjs +1 -0
  49. package/{packages/big-table/src/hooks/useNestTable.ts → es/packages/big-table/src/hooks/useNestTable2.mjs} +84 -109
  50. package/es/packages/big-table/src/hooks/useTableParse.d.ts +6 -0
  51. package/es/packages/big-table/src/hooks/useTableParse.mjs +1 -0
  52. package/es/packages/big-table/src/hooks/useTableParse2.mjs +135 -0
  53. package/es/packages/big-table/src/utils.d.ts +54 -0
  54. package/es/packages/big-table/src/utils.mjs +1 -0
  55. package/{packages/big-table/src/utils.ts → es/packages/big-table/src/utils2.mjs} +597 -705
  56. package/es/packages/big-table/style/index.css +448 -0
  57. package/{packages/big-table/src/assets/style/table-base.less → es/packages/big-table/style/index.less} +292 -10
  58. package/es/packages/button-print/index.d.ts +7373 -0
  59. package/es/packages/button-print/index.mjs +1 -0
  60. package/es/packages/button-print/index2.mjs +11 -0
  61. package/es/packages/button-print/src/ButtonPrint.mjs +2 -0
  62. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +7372 -0
  63. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.mjs +452 -0
  64. package/es/packages/button-print/src/ButtonPrint2.mjs +4 -0
  65. package/es/packages/button-print/src/components/IdentityVerification.mjs +2 -0
  66. package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +4785 -0
  67. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.mjs +126 -0
  68. package/es/packages/button-print/src/components/IdentityVerification2.mjs +4 -0
  69. package/es/packages/button-print/src/utils/print.es.min.d.ts +2 -0
  70. package/es/packages/button-print/src/utils/print.es.min.mjs +1 -0
  71. package/es/packages/button-print/src/utils/print.es.min2.mjs +2080 -0
  72. package/es/packages/button-print/style/index.css +26 -0
  73. package/es/packages/button-print/style/index.less +32 -0
  74. package/es/packages/drag-layout/index.d.ts +20061 -0
  75. package/es/packages/drag-layout/index.mjs +1 -0
  76. package/es/packages/drag-layout/index2.mjs +11 -0
  77. package/es/packages/drag-layout/src/DragFormLeftItem.mjs +2 -0
  78. package/es/packages/drag-layout/src/DragFormLeftItem.vue.d.ts +7959 -0
  79. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.mjs +122 -0
  80. package/es/packages/drag-layout/src/DragFormLeftItem2.mjs +4 -0
  81. package/es/packages/drag-layout/src/DragFormRightItem.mjs +2 -0
  82. package/es/packages/drag-layout/src/DragFormRightItem.vue.d.ts +3213 -0
  83. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.mjs +267 -0
  84. package/es/packages/drag-layout/src/DragFormRightItem2.mjs +4 -0
  85. package/es/packages/drag-layout/src/DragLayout.mjs +2 -0
  86. package/es/packages/drag-layout/src/DragLayout.vue.d.ts +20069 -0
  87. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.mjs +657 -0
  88. package/es/packages/drag-layout/src/DragLayout2.mjs +4 -0
  89. package/es/packages/drag-layout/style/index.css +175 -0
  90. package/es/packages/drag-layout/style/index.less +208 -0
  91. package/es/packages/field-set/index.d.ts +2647 -0
  92. package/es/packages/field-set/index.mjs +1 -0
  93. package/es/packages/field-set/index2.mjs +11 -0
  94. package/es/packages/field-set/src/FieldSet.mjs +2 -0
  95. package/es/packages/field-set/src/FieldSet.vue.d.ts +2599 -0
  96. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.mjs +330 -0
  97. package/es/packages/field-set/src/FieldSet2.mjs +4 -0
  98. package/es/packages/field-set/style/index.css +162 -0
  99. package/es/packages/field-set/style/index.less +172 -0
  100. package/es/packages/grid/index.d.ts +3 -0
  101. package/es/packages/grid/index.mjs +1 -0
  102. package/es/packages/grid/index2.mjs +11 -0
  103. package/es/packages/grid/src/Grid.d.ts +2 -0
  104. package/es/packages/grid/src/Grid.mjs +28 -0
  105. package/es/packages/grid/src/hooks.d.ts +1 -0
  106. package/es/packages/grid/src/hooks.mjs +1 -0
  107. package/es/packages/grid/src/hooks2.mjs +165 -0
  108. package/es/packages/grid/style/index.css +0 -0
  109. package/es/packages/grid/style/index.less +1 -0
  110. package/es/packages/index.css +1004 -0
  111. package/es/packages/index.d.ts +35622 -0
  112. package/es/packages/index.less +1205 -0
  113. package/es/packages/index.mjs +7 -0
  114. package/es/packages/index2.mjs +37 -0
  115. package/es/packages/select-person/index.d.ts +3500 -0
  116. package/es/packages/select-person/index.mjs +1 -0
  117. package/es/packages/select-person/index2.mjs +11 -0
  118. package/es/packages/select-person/src/SearchTree.mjs +2 -0
  119. package/es/packages/select-person/src/SearchTree.vue.d.ts +344 -0
  120. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.mjs +231 -0
  121. package/es/packages/select-person/src/SearchTree2.mjs +4 -0
  122. package/es/packages/select-person/src/SelectPerson.mjs +2 -0
  123. package/es/packages/select-person/src/SelectPerson.vue.d.ts +3501 -0
  124. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.mjs +892 -0
  125. package/es/packages/select-person/src/SelectPerson2.mjs +4 -0
  126. package/es/packages/select-person/src/utils/index.d.ts +12 -0
  127. package/es/packages/select-person/src/utils/index.mjs +1 -0
  128. package/{packages/select-person/src/utils/index.js → es/packages/select-person/src/utils/index2.mjs} +57 -66
  129. package/es/packages/select-person/style/index.css +193 -0
  130. package/es/packages/select-person/style/index.less +229 -0
  131. package/{packages/big-table → es}/src/assets/iconfont/iconfont.ttf +0 -0
  132. package/{packages/big-table → es}/src/assets/img/failure.png +0 -0
  133. package/{packages/big-table → es}/src/assets/img/icon-asc.png +0 -0
  134. package/{packages/big-table → es}/src/assets/img/icon-desc.png +0 -0
  135. package/{packages/big-table → es}/src/assets/img/no-permission.png +0 -0
  136. package/{packages/big-table → es}/src/assets/img/nodata.png +0 -0
  137. package/{packages/big-table → es}/src/assets/img/notfound.png +0 -0
  138. package/{packages/big-table → es}/src/assets/img/qr.png +0 -0
  139. package/{packages/big-table → es}/src/assets/img/video_default_cover.png +0 -0
  140. package/{packages/big-table → es}/src/assets/img/xb_big.png +0 -0
  141. package/{packages/big-table → es}/src/assets/img/xb_small.png +0 -0
  142. package/es/src/core/create.d.ts +1 -0
  143. package/es/src/core/create.mjs +1 -0
  144. package/es/src/core/create2.mjs +8 -0
  145. package/es/src/global/variable.d.ts +2 -0
  146. package/es/src/global/variable.mjs +1 -0
  147. package/es/src/global/variable2.mjs +4 -0
  148. package/es/src/types/index.d.ts +4 -0
  149. package/es/src/types/index.mjs +1 -0
  150. package/es/src/utils/clickoutside.d.ts +18 -0
  151. package/es/src/utils/clickoutside.mjs +1 -0
  152. package/es/src/utils/clickoutside2.mjs +48 -0
  153. package/es/src/utils/crypto.d.ts +7 -0
  154. package/es/src/utils/crypto.mjs +1 -0
  155. package/{src/utils/crypto.js → es/src/utils/crypto2.mjs} +25 -25
  156. package/es/src/utils/index.d.ts +4 -0
  157. package/es/src/utils/index.mjs +1 -0
  158. package/es/src/utils/index2.mjs +27 -0
  159. package/es/src/utils/vexutils.d.ts +5 -0
  160. package/es/src/utils/vexutils.mjs +3 -0
  161. package/es/src/utils/vexutils2.mjs +729 -0
  162. package/global.d.ts +8 -0
  163. package/package.json +54 -21
  164. package/yarn-error.log +122 -0
  165. package/es/big-table/index.css +0 -587
  166. package/es/big-table/index.js +0 -41710
  167. package/es/button-print/index.css +0 -617
  168. package/es/button-print/index.js +0 -8363
  169. package/es/drag-layout/index.css +0 -850
  170. package/es/drag-layout/index.js +0 -13104
  171. package/es/field-set/index.css +0 -1048
  172. package/es/field-set/index.js +0 -351
  173. package/es/grid/index.css +0 -1049
  174. package/es/grid/index.js +0 -30819
  175. package/es/index.css +0 -1323
  176. package/es/index.js +0 -46945
  177. package/es/select-person/index.css +0 -1323
  178. package/es/select-person/index.js +0 -13191
  179. package/packages/big-table/index.ts +0 -17
  180. package/packages/big-table/src/BigTable.vue +0 -2598
  181. package/packages/big-table/src/assets/iconfont/iconfont.less +0 -22
  182. package/packages/big-table/src/assets/style/table-global.less +0 -171
  183. package/packages/big-table/src/bigTableState.ts +0 -63
  184. package/packages/big-table/src/components/NoData.vue +0 -90
  185. package/packages/big-table/src/components/TextOverTooltip.vue +0 -110
  186. package/packages/big-table/src/components/edit-form/edit-date.vue +0 -75
  187. package/packages/big-table/src/components/edit-form/edit-input.vue +0 -39
  188. package/packages/big-table/src/components/edit-form/edit-select-table.vue +0 -133
  189. package/packages/big-table/src/components/edit-form/edit-select.vue +0 -96
  190. package/packages/big-table/src/hooks/useBatchEditing.ts +0 -574
  191. package/packages/big-table/src/hooks/useEdit.ts +0 -131
  192. package/packages/big-table/src/hooks/useTableParse.ts +0 -169
  193. package/packages/button-print/index.ts +0 -15
  194. package/packages/button-print/src/ButtonPrint.vue +0 -488
  195. package/packages/button-print/src/components/IdentityVerification.vue +0 -120
  196. package/packages/button-print/src/interfaces.ts +0 -19
  197. package/packages/button-print/src/utils/print.es.min.js +0 -1
  198. package/packages/drag-layout/index.ts +0 -15
  199. package/packages/drag-layout/src/DragFormLeftItem.vue +0 -131
  200. package/packages/drag-layout/src/DragFormRightItem.vue +0 -277
  201. package/packages/drag-layout/src/DragLayout.vue +0 -712
  202. package/packages/field-set/index.ts +0 -15
  203. package/packages/field-set/src/FieldSet.vue +0 -471
  204. package/packages/grid/index.ts +0 -20
  205. package/packages/grid/src/Grid.tsx +0 -18
  206. package/packages/grid/src/hooks.ts +0 -167
  207. package/packages/index.ts +0 -41
  208. package/packages/select-person/index.ts +0 -11
  209. package/packages/select-person/src/SelectPerson.vue +0 -1104
  210. package/packages/select-person/src/search-tree.vue +0 -326
  211. package/src/component/svg/index.vue +0 -49
  212. package/src/core/create.js +0 -5
  213. package/src/global/variable.ts +0 -2
  214. package/src/utils/clickoutside.ts +0 -80
  215. package/src/utils/vexutils.js +0 -811
  216. package/tsconfig.node.json +0 -8
@@ -1,22 +0,0 @@
1
- /*
2
- @font-face {
3
- font-family: "iconfont";
4
- src: url('iconfont.ttf?t=1631151904509') format('truetype');
5
- }*/
6
-
7
- .iconfont {
8
- font-family: "iconfont" !important;
9
- font-size: 16px;
10
- font-style: normal;
11
- -webkit-font-smoothing: antialiased;
12
- -moz-osx-font-smoothing: grayscale;
13
- }
14
-
15
- .icon-a-xitongtubiaotianjia:before {
16
- content: "\e9c3";
17
- }
18
-
19
- .icon-a-xitongtubiaozhediejian:before {
20
- content: "\e9c4";
21
- }
22
-
@@ -1,171 +0,0 @@
1
- @import '../iconfont/iconfont.less';
2
-
3
- .big-table-filter-wrap {
4
- position: fixed;
5
- z-index: 99998;
6
- transform: translateX(-2%);
7
- margin-top: -6px;
8
-
9
- min-width: 280px;
10
- border-radius: 4px;
11
- background-color: #fff;
12
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
13
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
14
-
15
- display: flex;
16
- flex-wrap: wrap;
17
- flex-direction: column;
18
- overflow: hidden;
19
- transition: width 2s;
20
-
21
- .sort-list {
22
- margin-top: 6px;
23
- }
24
-
25
- .sort-item {
26
- line-height: 32px;
27
- padding: 0 13px;
28
- display: flex;
29
- align-items: center;
30
-
31
- &:hover,
32
- &.active {
33
- background: #f2f2f2;
34
- }
35
- }
36
-
37
- .sort-icon {
38
- width: 16px;
39
- height: 16px;
40
- background-size: contain;
41
- display: inline-block;
42
- }
43
-
44
- /*
45
- .sort-icon-asc {
46
- background-image: url('../img/icon-asc.png');
47
- }
48
- */
49
-
50
- .sort-text {
51
- margin-left: 11px;
52
- font-size: 14px;
53
- line-height: 32px;
54
- color: rgba(0, 0, 0, 0.8);
55
- }
56
-
57
- /*
58
- .sort-icon-desc {
59
- background-image: url('../img/icon-desc.png');
60
- }
61
- */
62
-
63
- .filter-header {
64
- padding: 0 13px;
65
- cursor: initial;
66
- }
67
-
68
- .filter-header-icon {
69
- border-top-color: #333;
70
- border-right-color: #333;
71
- }
72
-
73
- .filter-header-text {
74
- margin-left: 11px;
75
- }
76
-
77
- .check-search-wrap {
78
- padding: 8px 0;
79
- width: 100%;
80
- background: #f7f7f7;
81
- display: flex;
82
- justify-content: center;
83
- }
84
-
85
- .check-seach-input {
86
- line-height: 32px;
87
- }
88
-
89
- .checkbox-box {
90
- padding-right: 3px;
91
- width: 100%;
92
- }
93
-
94
- .checkbox-wrap {
95
- padding-left: 13px;
96
- padding-right: 3px;
97
- background: #fff;
98
- display: flex;
99
- flex-direction: column;
100
- overflow-y: auto;
101
-
102
- &::-webkit-scrollbar {
103
- width: 4px;
104
- height: 4px;
105
- }
106
-
107
- &::-webkit-scrollbar-thumb {
108
- background-color: #d5d5d5;
109
- border-radius: 4px;
110
- }
111
-
112
- &::-webkit-scrollbar-track {
113
- background-color: #fff;
114
- border-radius: 4px;
115
- }
116
-
117
- &::-webkit-scrollbar-corner {
118
- background-color: #000;
119
- border-radius: 4px;
120
- width: 4px;
121
- }
122
- }
123
-
124
- .checkbox-wrap--search {
125
- padding-right: 10px;
126
- }
127
-
128
- .checkbox-btn-wrap {
129
- display: flex;
130
- padding: 9px 10px 19px 14px;
131
-
132
- .checkbox-btn {
133
- width: 56px;
134
- padding: 0;
135
- }
136
-
137
- .checkbox-btn+.checkbox-btn {
138
- margin-left: 8px;
139
- }
140
-
141
- .checkbox-btn-status {
142
- .checkbox-btn {
143
- border: 0;
144
- border-radius: 0;
145
- width: initial;
146
- margin: 0 13px;
147
- position: relative;
148
-
149
- &:hover::after {
150
- display: block;
151
- content: '';
152
- position: absolute;
153
- bottom: 5px;
154
- width: 100%;
155
- height: 1px;
156
- background-color: #5585f5;
157
- }
158
- }
159
- }
160
- }
161
-
162
- .arrows-icon {
163
- position: absolute;
164
- bottom: -1px;
165
- right: -1px;
166
- font-size: 15px;
167
- cursor: nw-resize;
168
- width: 25px;
169
- height: 20px;
170
- }
171
- }
@@ -1,63 +0,0 @@
1
- const bigTableState = {
2
- curAbleCheckedLen: 0, // 当前页能够多选的选项个数
3
- showButtonTop: 0,
4
- // hasOnlyIcon: false,
5
- isTree: 0, // 0非数表 1全加载数表 2懒加载数表 3分组表
6
- isShowEmpty: false,
7
- /* 全选相关 */
8
- currentPageSelectedLength: 0,
9
- visibleCheckAllWrap: false,
10
- visibleCheckAllWrapMore: false,
11
- // 已勾选的表格row数据
12
- checkedRows: [],
13
- // 存储所有当前可筛选的表头
14
- filterFields: {},
15
- /* 树状已选 */
16
- visibleTreeCheck: false,
17
- treeTableLength: 0,
18
- checkWidth: {
19
- "table-simple": "30",
20
- "table-classics": "24",
21
- },
22
- lastPageIndex: 1,
23
- selectType: "",
24
- levelLazyLoadSetting: null, // 数表懒加载配置
25
- openOnly: 0, // 手风琴模式
26
- filterWidth: 280, // 筛选框宽度
27
- filterHeight: 120, // 筛选框高度
28
- startX: 0, // 起始距离
29
- distance: 0, // 移动距离
30
- mask: "", // 拖拽遮罩层
31
- groupText: [], // 分组统计 text
32
-
33
- /* 行内编辑相关 */
34
- currentClickBtnInfo: null,
35
- /* */
36
-
37
- columnLen: 0, // column 长度
38
- hasRefresh: false, // 当前列表是否有新的更新
39
- isExpand: 0, // isTree == 1 是否全部展开
40
- btnIcons: {
41
- // 按钮icon 映射
42
- copy: "copy",
43
- pencil: "edit",
44
- delete: "delete",
45
- add: "plus-circle",
46
- download: "download",
47
- label: "tag",
48
- queding: "check",
49
- del: "close",
50
- },
51
- tableHeight: "100%",
52
- //来自batchEditting
53
- cacheUniqueKey: {},
54
- theUniqueKeyListObj: {},
55
- // batchFieldList: [],
56
- editColumnMap: {},
57
- fieldLength: 0,
58
- originFormatList: [],
59
- isSaveForm: false,
60
- editConfig: { trigger: 'manual', mode: 'cell', autoClear: false, showIcon: false }
61
- };
62
-
63
- export default bigTableState;
@@ -1,90 +0,0 @@
1
- <template>
2
- <div class="no-data-tip NoData-page">
3
- <img v-if="showImg" :src="imgStr" alt="" />
4
- <p>{{ noDataTip }}</p>
5
- <span v-if="handleDesc">{{ handleDesc }}</span>
6
- </div>
7
- </template>
8
- <script lang="ts" setup>
9
- import { computed } from "vue";
10
-
11
- import noData from "../assets/img/nodata.png";
12
- import noPermission from "../assets/img/no-permission.png";
13
- import failure from "../assets/img/failure.png";
14
- import notfound from "../assets/img/notfound.png";
15
-
16
- const imgStr = computed(() => {
17
- let str = null;
18
- switch (props.noDataImg) {
19
- case "no-permission":
20
- str = noPermission;
21
- break;
22
- case "failure":
23
- str = failure;
24
- break;
25
- case "nodata":
26
- str = noData;
27
- break;
28
- default:
29
- str = notfound;
30
- break;
31
- }
32
- return str;
33
- });
34
-
35
- const props = defineProps({
36
- noDataTip: {
37
- type: String,
38
- default: "暂无数据",
39
- },
40
- noDataImg: {
41
- type: String,
42
- default: "nodata",
43
- },
44
- showImg: {
45
- type: Boolean,
46
- default: true,
47
- },
48
- });
49
- const handleDesc = computed(() => {
50
- let res = "";
51
- switch (props.noDataImg) {
52
- case "no-permission":
53
- res = "请联系管理员";
54
- break;
55
- case "failure":
56
- res = "请稍后再试";
57
- break;
58
- default:
59
- break;
60
- }
61
- return res;
62
- });
63
- </script>
64
- <style lang="less" scoped>
65
- .no-data-tip {
66
- display: flex;
67
- flex-direction: column;
68
- justify-content: center;
69
- align-items: center;
70
- width: 100%;
71
- height: 100%;
72
- color: #333333;
73
- font-size: 22px;
74
- > img {
75
- max-width: 70%;
76
- width: 260px;
77
- }
78
- > p {
79
- margin-top: 12px;
80
- margin-bottom: 0;
81
- font-size: 16px;
82
- color: rgba(0, 0, 0, 0.8);
83
- }
84
- > span {
85
- font-size: 14px;
86
- color: rgba(0, 0, 0, 0.4);
87
- margin-top: 6px;
88
- }
89
- }
90
- </style>
@@ -1,110 +0,0 @@
1
- <script lang="ts">
2
- export default {
3
- name: "TextOverTooltip"
4
- }
5
- </script>
6
-
7
- <script setup lang="ts">
8
- import { ref, computed } from 'vue'
9
- import { NTooltip } from 'naive-ui'
10
- import vexutils from '@/utils/vexutils.js';
11
-
12
- const props = withDefaults(defineProps<{
13
- content?: string | number
14
- className?: string
15
- refName?: string
16
- effect?: string
17
- placement?: 'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end'
18
- tooltipTitle?: string | number
19
- isAlias?: boolean
20
- }>(), {
21
- effect: 'dark',
22
- placement: 'top',
23
- tooltipTitle: ''
24
- })
25
-
26
- let isDisabledTooltip = ref(false) // 是否需要禁止提示
27
-
28
- const curContent = computed(() => {
29
- let res = props.tooltipTitle || props.content || "";
30
- if (vexutils.isNumber(res)) {
31
- return res.toString();
32
- }
33
- return res;
34
- })
35
-
36
- const $refName: any = ref(null)
37
- // 移入事件: 判断内容的宽度contentWidth是否大于父级的宽度
38
- const onMouseOver = (str: any) => {
39
- if (props.isAlias) {
40
- isDisabledTooltip.value = true;
41
- return;
42
- }
43
- let parentWidth = $refName.value.parentNode.offsetWidth;
44
- let contentWidth = $refName.value.offsetWidth;
45
- // 判断是否禁用tooltip功能
46
- isDisabledTooltip.value = contentWidth > parentWidth;
47
- }
48
- const onMouseOut = () => {
49
- isDisabledTooltip.value = false;
50
- }
51
-
52
- </script>
53
-
54
- <template>
55
- <div class="text-over-tooltip-components">
56
- <NTooltip
57
- :effect="effect"
58
- :show="isDisabledTooltip"
59
- :placement="placement"
60
- >
61
- <template #trigger>
62
- <div
63
- class="ellipsis"
64
- :class="className"
65
- @mouseover="onMouseOver(refName)"
66
- @mouseout="onMouseOut"
67
- >
68
- <i :ref="el => { if (el) $refName = el }">
69
- <slot></slot>
70
- <i>{{ content }}</i>
71
- </i>
72
- </div>
73
- </template>
74
- {{curContent}}
75
- </NTooltip>
76
- </div>
77
- </template>
78
-
79
- <style lang="less" scoped>
80
- .text-over-tooltip-components {
81
- display: inline-block;
82
- max-width: 98%;
83
- /* 文字超出宽度显示省略号 单行 */
84
- .ellipsis {
85
- font-size: 14px;
86
- color: #35393c;
87
- overflow: hidden;
88
- text-overflow: ellipsis;
89
- white-space: nowrap;
90
- i {
91
- font-style: normal;
92
- word-break: keep-all;
93
- white-space: nowrap;
94
- }
95
- }
96
- /* 自定义样式 */
97
- .fs20 {
98
- font-size: 20px;
99
- font-weight: 600;
100
- color: green;
101
- line-height: 22px;
102
- }
103
- .fs12 {
104
- font-size: 12px;
105
- font-weight: 400;
106
- color: orange;
107
- line-height: 14px;
108
- }
109
- }
110
- </style>
@@ -1,75 +0,0 @@
1
- <script lang="tsx">
2
- import { defineComponent, ref, reactive, resolveComponent } from 'vue'
3
- import { NDatePicker } from 'naive-ui'
4
-
5
- export default defineComponent({
6
- name: 'EditDate',
7
- inheritAttrs: false,
8
- components: {
9
- NDatePicker
10
- },
11
- props: {
12
- col: {
13
- type: Object,
14
- default: () => ({})
15
- },
16
- row: {
17
- type: Object,
18
- default: () => ({})
19
- },
20
- index: {
21
- type: [Number, Object],
22
- default: 0
23
- }
24
- },
25
- emits: ['formChange'],
26
- setup (props, { attrs, slots, emit }) {
27
- const onConfirm = (value: any) => {
28
- emit('formChange', { value, row: props.row, column: props.col, index: props.index })
29
- }
30
- const { isStartDate = false, isEndDate = false, connectField } = props.col
31
- const setDateDisabled = (cur: number, date: number) => {
32
- if (isStartDate && connectField) {
33
- return cur > date
34
- }
35
- if(isEndDate && connectField) {
36
- return cur < date
37
- }
38
- return false
39
- }
40
- const isDateDisabled = (ts: number) => {
41
- return setDateDisabled(ts, new Date(props.row[connectField]).getTime())
42
- }
43
- const isTimeDisabled = (ts: number) => {
44
- const date = new Date(props.row[connectField] || ts)
45
- const h = date.getHours()
46
- const m = date.getMinutes()
47
- const s = date.getSeconds()
48
- return {
49
- isHourDisabled: (hour: number) => {
50
- return setDateDisabled(hour, h)
51
- },
52
- isMinuteDisabled: (minute: number) => {
53
- return setDateDisabled(minute, m)
54
- },
55
- isSecondDisabled: (second: number) => {
56
- return setDateDisabled(second, s)
57
- }
58
- }
59
- }
60
- const config: any = {
61
- type: props.col.type || 'datetime',
62
- clearable: props.col.clearable || true,
63
- disabled: props.col.disabled || false,
64
- valueFormat: props.col.valueFormat || 'yyyy-MM-dd HH:mm:ss',
65
- to: false,
66
- isDateDisabled: props.col.isDateDisabled || isDateDisabled
67
- }
68
- if (config.type.includes('time')) {
69
- config.isTimeDisabled = props.col.isTimeDisabled || isTimeDisabled
70
- }
71
- return () => <NDatePicker {...attrs} {...config} onUpdateFormattedValue={onConfirm} />
72
- }
73
- })
74
- </script>
75
- <style lang="less" scoped></style>
@@ -1,39 +0,0 @@
1
- <script lang="tsx">
2
- import { defineComponent, ref, reactive, resolveComponent } from 'vue'
3
- import { NInput, NInputNumber } from 'naive-ui'
4
-
5
- export default defineComponent({
6
- name: 'EditInput',
7
- inheritAttrs: false,
8
- components: {
9
- NInput,
10
- NInputNumber
11
- },
12
- props: {
13
- type: {
14
- type: String,
15
- default: 'input'
16
- },
17
- col: {
18
- type: Object,
19
- default: () => ({})
20
- },
21
- row: {
22
- type: Object,
23
- default: () => ({})
24
- },
25
- index: {
26
- type: [Number, Object],
27
- default: 0
28
- }
29
- },
30
- emits: ['formChange'],
31
- setup (props, { attrs, slots, emit }) {
32
- const onUpdateValue = (value: number | string | null) => {
33
- emit('formChange', { value, row: props.row, column: props.col, index: props.index })
34
- }
35
- return () => props.type === 'input' ? <NInput {...attrs} onUpdateValue={onUpdateValue } /> : <NInputNumber {...attrs} onUpdateValue={onUpdateValue} />
36
- }
37
- })
38
- </script>
39
- <style lang="less" scoped></style>
@@ -1,133 +0,0 @@
1
- <script lang="tsx">
2
- import { defineComponent, ref, reactive } from 'vue'
3
- import { NSelect, NPagination, NEmpty, NSpin, NSpace } from 'naive-ui'
4
- import CGrid from '~/grid'
5
- import vexutils from '@/utils/vexutils.js'
6
-
7
- export default defineComponent({
8
- name: 'EditSelectTable',
9
- inheritAttrs: false,
10
- components: {
11
- NSelect,
12
- CGrid,
13
- NPagination,
14
- NEmpty,
15
- NSpin,
16
- NSpace
17
- },
18
- props: {
19
- row: {
20
- type: Object,
21
- default: {}
22
- },
23
- col: {
24
- type: Object,
25
- default: {}
26
- },
27
- value: {
28
- type: String,
29
- default: ''
30
- }
31
- },
32
- emits: ['update:value', 'clickSelectTable'],
33
- setup (props, { attrs, slots, emit }) {
34
- const state = reactive({
35
- value: props.value,
36
- row: JSON.parse(JSON.stringify(props.row)),
37
- page: 1,
38
- pageCount: 0,
39
- keyword: '',
40
- data: [],
41
- columns: JSON.parse(JSON.stringify(props.col.tableColumn)),
42
- loading: false,
43
- show: true
44
- })
45
-
46
- const selectTableFocus = () => {
47
- state.show = true
48
- state.page = 1
49
- state.keyword = ''
50
- state.pageCount = 0
51
- querySelectTableList()
52
- }
53
- const querySelectTableList = async () => {
54
- state.loading = true
55
- const obj = {
56
- page: state.page,
57
- keyword: state.keyword
58
- }
59
- const { data, pageCount } = await props.col.querySelectTableList(obj)
60
- state.data = data
61
- state.pageCount = pageCount
62
- state.loading = false
63
- }
64
- let selectTableSearch = (value: string) => {
65
- state.keyword = value
66
- querySelectTableList()
67
- }
68
- selectTableSearch = vexutils.debounce(selectTableSearch, 800)
69
- // 初始化搜索
70
- selectTableSearch('')
71
- const getSelectTableGrid = () => {
72
- const config = {
73
- border: 'outer',
74
- resizable: true,
75
- autoResize: true,
76
- showOverflow: true,
77
- showHeaderOverflow: true,
78
- highlightHoverRow: true,
79
- highlightCurrentRow: true,
80
- maxHeight: (props.col.tableHeight || 200),
81
- align: 'center',
82
- columns: state.columns,
83
- data: state.data
84
- }
85
- return <CGrid {...config} onCellClick={(data: any) => onCellClick(data)}>{{
86
- empty: () => <NEmpty description="无数据" />
87
- }}</CGrid>
88
- }
89
- const onCellClick = (data: any) => {
90
- const { row } = data
91
- // emit('update:value', data.row?.[props.col.columnName])
92
- emit('clickSelectTable', row)
93
- state.show = false
94
- }
95
- const getPagination = () => {
96
- const pagination = () => {
97
- return <NPagination
98
- v-model={[state.page, 'page']}
99
- pageCount={state.pageCount}
100
- onUpdatePage={(page: number) => querySelectTableList()}
101
- />
102
- }
103
- return <NSpace justify="space-between" align="center" style="margin-top: 5px">{{
104
- default: () => [`共${state.pageCount}条`, pagination()]
105
- }}</NSpace>
106
- }
107
-
108
- return () => [
109
- <NSelect
110
- class="form-select-table"
111
- placeholder='请选择'
112
- options={[]}
113
- consistentMenuWidth={false}
114
- clearable
115
- filterable
116
- to={false}
117
- show={state.show}
118
- loading={state.loading}
119
- onFocus={selectTableFocus}
120
- onBlur={() => state.show = false}
121
- onSearch={selectTableSearch}
122
- >{{
123
- action: () => state.loading ? <NSpace justify="center">{{ default: () => <NSpin class="spin" size="small" /> }}</NSpace> : [getSelectTableGrid(), state.pageCount ? getPagination() : null]
124
- }}</NSelect>
125
- ]
126
- }
127
- })
128
- </script>
129
- <style lang="less" scoped>
130
- .spin {
131
- margin: 80px auto;
132
- }
133
- </style>