cnhis-design-vue 0.3.3-beta → 0.3.6-beta

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 (81) hide show
  1. package/env.d.ts +2 -0
  2. package/es/big-table/index.css +1 -0
  3. package/es/big-table/index.js +116 -74
  4. package/es/button-print/index.css +1 -0
  5. package/es/drag-layout/index.css +2 -1
  6. package/es/drag-layout/index.js +33 -58
  7. package/es/grid/index.css +2 -1
  8. package/es/grid/index.js +2 -3
  9. package/es/index.css +2 -1
  10. package/es/index.js +152 -135
  11. package/package.json +5 -2
  12. package/packages/big-table/index.ts +17 -0
  13. package/packages/big-table/src/BigTable.vue +2511 -0
  14. package/packages/big-table/src/assets/iconfont/iconfont.less +21 -0
  15. package/packages/big-table/src/assets/iconfont/iconfont.ttf +0 -0
  16. package/packages/big-table/src/assets/img/failure.png +0 -0
  17. package/packages/big-table/src/assets/img/icon-asc.png +0 -0
  18. package/packages/big-table/src/assets/img/icon-desc.png +0 -0
  19. package/packages/big-table/src/assets/img/no-permission.png +0 -0
  20. package/packages/big-table/src/assets/img/nodata.png +0 -0
  21. package/packages/big-table/src/assets/img/notfound.png +0 -0
  22. package/packages/big-table/src/assets/img/qr.png +0 -0
  23. package/packages/big-table/src/assets/img/video_default_cover.png +0 -0
  24. package/packages/big-table/src/assets/img/xb_big.png +0 -0
  25. package/packages/big-table/src/assets/img/xb_small.png +0 -0
  26. package/packages/big-table/src/assets/style/table-base.less +275 -0
  27. package/packages/big-table/src/assets/style/table-global.less +167 -0
  28. package/packages/big-table/src/bigTableEmits.ts +46 -0
  29. package/packages/big-table/src/bigTableProps.ts +125 -0
  30. package/packages/big-table/src/bigTableState.ts +62 -0
  31. package/packages/big-table/src/components/NoData.vue +90 -0
  32. package/packages/big-table/src/components/SvgIcon.vue +49 -0
  33. package/packages/big-table/src/components/TextOverTooltip.vue +110 -0
  34. package/packages/big-table/src/components/edit-form/EditForm.vue +426 -0
  35. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +66 -0
  36. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +60 -0
  37. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +38 -0
  38. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +89 -0
  39. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +38 -0
  40. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +63 -0
  41. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +69 -0
  42. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +51 -0
  43. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +60 -0
  44. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +34 -0
  45. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +42 -0
  46. package/packages/big-table/src/components/edit-form/edit-component/editFormProps.ts +91 -0
  47. package/packages/big-table/src/components/edit-form/edit-component/register-com.ts +18 -0
  48. package/packages/big-table/src/components/edit-form/hooks/useConfigData.ts +79 -0
  49. package/packages/big-table/src/components/edit-form/hooks/useDateType.ts +184 -0
  50. package/packages/big-table/src/components/edit-form/hooks/useFormCommon.ts +373 -0
  51. package/packages/big-table/src/components/edit-form/hooks/useItemDefault.ts +638 -0
  52. package/packages/big-table/src/components/edit-form/hooks/useSearch.ts +910 -0
  53. package/packages/big-table/src/components/edit-form/hooks/useValidateRules.ts +387 -0
  54. package/packages/big-table/src/components/edit-form/interface.ts +53 -0
  55. package/packages/big-table/src/components/edit-form/types.ts +3 -0
  56. package/packages/big-table/src/components/edit-form/utils.ts +247 -0
  57. package/packages/big-table/src/hooks/useBatchEditing.ts +574 -0
  58. package/packages/big-table/src/hooks/useFormat.ts +612 -0
  59. package/packages/big-table/src/hooks/useNestTable.ts +109 -0
  60. package/packages/big-table/src/hooks/useTableParse.ts +169 -0
  61. package/packages/big-table/src/utils.ts +705 -0
  62. package/packages/button-print/index.ts +15 -0
  63. package/packages/button-print/src/ButtonPrint.vue +697 -0
  64. package/packages/button-print/src/components/IdentityVerification.vue +149 -0
  65. package/packages/button-print/src/interfaces.ts +19 -0
  66. package/packages/button-print/src/utils/crypto.js +25 -0
  67. package/packages/button-print/src/utils/print.es.min.js +1 -0
  68. package/packages/drag-layout/index.ts +15 -0
  69. package/packages/drag-layout/src/DragFormLeftItem.vue +131 -0
  70. package/packages/drag-layout/src/DragFormRightItem.vue +277 -0
  71. package/packages/drag-layout/src/DragLayout.vue +712 -0
  72. package/packages/grid/index.ts +17 -0
  73. package/packages/grid/src/Grid.tsx +22 -0
  74. package/packages/grid/src/hooks.ts +168 -0
  75. package/packages/index.ts +36 -0
  76. package/src/component/svg/index.vue +49 -0
  77. package/src/core/create.ts +5 -0
  78. package/src/global/variable.ts +2 -0
  79. package/src/utils/clickoutside.ts +80 -0
  80. package/src/utils/crypto.js +25 -0
  81. package/src/utils/vexutils.ts +811 -0
@@ -0,0 +1,277 @@
1
+ <template>
2
+ <div class="DragFormRightItem">
3
+ <div
4
+ v-if="element.html_type === 'COMBINATION'"
5
+ class="combination-item"
6
+ :class="{
7
+ 'is-edit-class': element.is_edit == 0 ? true : element.mid_is_edit == 0
8
+ }"
9
+ >
10
+ <div>
11
+ <span v-if="element.is_null == 0" class="red">*</span>
12
+ {{ element.name }}
13
+ <div class="form-btn">
14
+ <template v-if="element.html_type != 'TEXT'">
15
+ <NButton
16
+ v-if="element.is_edit == 1 && !isLineType(element.html_type)"
17
+ dashed
18
+ size="small"
19
+ @click="handlechangIs_edit(element)"
20
+ >{{ `${element.mid_is_edit == 1 ? "不可编辑" : "启用编辑"}` }}</NButton
21
+ >
22
+ <NButton
23
+ v-if="element.is_drag == 1 && !isLineType(element.html_type)"
24
+ dashed
25
+ size="small"
26
+ @click="handlechangNull(element)"
27
+ >必填</NButton
28
+ >
29
+ <NButton
30
+ dashed
31
+ size="small"
32
+ v-show="element.html_type != 'LINE_BREAKS'"
33
+ @click="handleEdit(element, index, 'edit')"
34
+ >修改</NButton
35
+ >
36
+ </template>
37
+ <NButton
38
+ v-if="
39
+ (element.is_drag == 1 || isLineType(element.html_type)) &&
40
+ element.is_system_fields != 0
41
+ "
42
+ dashed
43
+ size="small"
44
+ @click="handleDelete(element, index)"
45
+ >移除</NButton>
46
+ </div>
47
+ </div>
48
+ <draggable
49
+ v-model="element.children"
50
+ itemKey="val_key"
51
+ :group="element.val_key"
52
+ :animation="300"
53
+ >
54
+ <template #item="eleChild">
55
+ <div
56
+ :style="{
57
+ width: `${(element.elem_width || 12) * 2 / 24 * 100}%`,
58
+ display: element.elem_width && element.elem_width < 12 ? 'inline-block': 'block'
59
+ }"
60
+ >
61
+ <DragFormRightItem :element="eleChild.element" :index="eleChild.index" @handleEdit="handleEdit" @handleDelete="handleDelete" />
62
+ </div>
63
+ </template>
64
+ </draggable>
65
+ </div>
66
+ <div
67
+ v-else
68
+ :class="{
69
+ 'right-content': true,
70
+ 'blue-border': element.extraField,
71
+ 'is-edit-class': element.is_edit == 0 ? true : element.mid_is_edit == 0
72
+ }"
73
+ >
74
+ <div :class="{ 'item-opacity': element.is_show == 0 }">
75
+ <span v-if="element.is_null == 0" class="red">*</span>
76
+ {{ element.name }}
77
+ </div>
78
+ <div class="form-btn">
79
+ <template v-if="element.html_type != 'TEXT'">
80
+ <NButton
81
+ v-if="element.is_edit == 1 && !isLineType(element.html_type)"
82
+ dashed
83
+ size="small"
84
+ @click="handlechangIs_edit(element)"
85
+ >{{ `${element.mid_is_edit == 1 ? "不可编辑" : "启用编辑"}` }}</NButton
86
+ >
87
+ <NButton
88
+ v-if="element.is_drag == 1 && !isLineType(element.html_type)"
89
+ dashed
90
+ size="small"
91
+ @click="handlechangNull(element)"
92
+ >必填</NButton
93
+ >
94
+ <NSelect
95
+ style="width: 50px"
96
+ size="small"
97
+ :options="widthOptions"
98
+ v-model:value="element.elem_width"
99
+ :to="false"
100
+ >
101
+ </NSelect>
102
+ </template>
103
+
104
+ <NPopover trigger="click" :delay="300" placement="left-end">
105
+ <div>
106
+ <NButton
107
+ dashed
108
+ size="small"
109
+ v-show="!['LINE_BREAKS'].includes(element.html_type)"
110
+ @click="handleEdit(element, index, 'edit')"
111
+ >修改</NButton
112
+ >
113
+ <NButton
114
+ v-if="
115
+ (element.is_drag == 1 || isLineType(element.html_type)) &&
116
+ element.is_system_fields != 0
117
+ "
118
+ dashed
119
+ size="small"
120
+ @click="handleDelete(element, index)"
121
+ >移除</NButton>
122
+ </div>
123
+ <template #trigger>
124
+ <NIcon :component="EllipsisVerticalSharp" />
125
+ </template>
126
+ </NPopover>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </template>
131
+ <script lang="ts">
132
+ export default {
133
+ name: "DragFormRightItem"
134
+ }
135
+ </script>
136
+ <script setup lang="ts">
137
+ import { ref, computed, watch, onMounted } from 'vue'
138
+ import draggable from "vuedraggable";
139
+ import { NGridItem, NPopover, NButton, NSelect, NIcon } from 'naive-ui'
140
+ import { EllipsisVerticalSharp } from "@vicons/ionicons5";
141
+
142
+ const props = withDefaults(defineProps<{
143
+ fields?: any
144
+ element: any
145
+ index: number
146
+ }>(), {})
147
+
148
+ let showFields: any = ref([])
149
+ let isFocus = ref(false)
150
+ const widthOptions: any = [
151
+ {
152
+ label: "整行",
153
+ value: '12',
154
+ },
155
+ {
156
+ label: "半行",
157
+ value: '6',
158
+ },
159
+ {
160
+ label: '5/6',
161
+ value: '10',
162
+ },
163
+ {
164
+ label: '2/3',
165
+ value: '8',
166
+ },
167
+ {
168
+ label: '1/3',
169
+ value: '4',
170
+ },
171
+ {
172
+ label: '3/4',
173
+ value: '9',
174
+ },
175
+ {
176
+ label: '1/4',
177
+ value: '3',
178
+ },
179
+ {
180
+ label: '1/6',
181
+ value: '2',
182
+ }
183
+ ]
184
+
185
+ const emit = defineEmits(['handleEdit', 'handleDelete'])
186
+
187
+ const lineTypeList = computed(() => ["LINEBAR", "LINE_BREAKS"])
188
+
189
+ const handlechangIs_edit = (data: any) => {
190
+ data.mid_is_edit = data.mid_is_edit == 1 ? 0 : 1;
191
+ }
192
+ const handlechangNull = (data: any) => {
193
+ data.is_null = data.is_null == 1 ? 0 : 1;
194
+ }
195
+ const handleEdit = (data: any, i: any, type: any) => {
196
+ emit("handleEdit", data, i, type);
197
+ }
198
+ const handleDelete = (data: any, i?: number) => {
199
+ emit("handleDelete", data, i);
200
+ }
201
+ /** line 类型 */
202
+ const isLineType = (t: any) => {
203
+ return lineTypeList.value.includes(t);
204
+ }
205
+
206
+ watch(() => props.fields,
207
+ (val: any) => {
208
+ if (!val) return;
209
+ showFields.value = val;
210
+ },
211
+ { immediate: true, deep: true }
212
+ )
213
+
214
+ </script>
215
+ <style lang="less" scoped>
216
+ .DragFormRightItem {
217
+ position: relative;
218
+ .is-edit-class {
219
+ background-color: #f5f5f5 !important;
220
+ border-color: #d9d9d9 !important;
221
+ }
222
+ .combination-item {
223
+ padding: 0px 8px 8px;
224
+ > div {
225
+ line-height: 35px;
226
+ &:hover > .form-btn {
227
+ display: flex;
228
+ }
229
+ }
230
+ }
231
+ .form-btn {
232
+ display: none;
233
+ align-items: center;
234
+ position: absolute;
235
+ top: -1px;
236
+ right: 0px;
237
+ height: 100%;
238
+ white-space: nowrap;
239
+ .quick-reply {
240
+ display: inline-block;
241
+ border: 1px dashed rgb(205, 197, 211);
242
+ font-size: 12px;
243
+ height: 22px;
244
+ line-height: 1.499;
245
+ }
246
+ &:deep(.n-input),
247
+ &:deep(.n-select) {
248
+ margin-left: 5px;
249
+ }
250
+ &:deep(.n-select) {
251
+ top: -3px;
252
+ }
253
+ }
254
+ .right-content {
255
+ border: 1px dashed rgb(205, 197, 211);
256
+ background: #fdfdfd;
257
+ height: 35px;
258
+ line-height: 35px;
259
+ padding: 0 10px;
260
+ position: relative;
261
+ margin-bottom: 10px;
262
+ cursor: pointer;
263
+ &:hover .form-btn {
264
+ display: flex;
265
+ }
266
+ }
267
+ .blue-border {
268
+ border: 1px solid #5585f5 !important;
269
+ }
270
+ .item-opacity {
271
+ opacity: 0.5;
272
+ }
273
+ .red {
274
+ color: red;
275
+ }
276
+ }
277
+ </style>