lw-cdp-ui 1.2.48 → 1.2.49

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 (88) hide show
  1. package/package.json +1 -1
  2. package/dist/assets/images/empty.jpg +0 -0
  3. package/dist/assets/images/login.svg +0 -558
  4. package/dist/assets/images/logo.jpg +0 -0
  5. package/dist/assets/images/logo.svg +0 -78
  6. package/dist/assets/images/logo1.svg +0 -86
  7. package/dist/assets/images/register.svg +0 -351
  8. package/dist/components/lwCronSelect/index.vue +0 -218
  9. package/dist/components/lwFlow/components/lfControl.vue +0 -126
  10. package/dist/components/lwFlow/components/lfNodePanel.vue +0 -98
  11. package/dist/components/lwFlow/config/dagre.js +0 -279
  12. package/dist/components/lwFlow/config/nodesList.js +0 -243
  13. package/dist/components/lwFlow/index.vue +0 -781
  14. package/dist/components/lwFlow/nodeEdit/audienceReceive.vue +0 -262
  15. package/dist/components/lwFlow/nodeEdit/basicSettings.vue +0 -88
  16. package/dist/components/lwFlow/nodeEdit/eventReceive.vue +0 -145
  17. package/dist/components/lwFlow/nodeEdit/index.vue +0 -306
  18. package/dist/components/lwFlow/nodeEdit/sms.vue +0 -107
  19. package/dist/components/lwFlow/nodeEdit/styleSettings.vue +0 -236
  20. package/dist/components/lwFlow/nodes/basisEnd.js +0 -56
  21. package/dist/components/lwFlow/nodes/basisStart.js +0 -56
  22. package/dist/components/lwFlow/nodes/custom.js +0 -129
  23. package/dist/components/lwFlow/nodes/et2lTable.js +0 -132
  24. package/dist/components/lwFlow/nodesData/datas/audienceReceive.js +0 -137
  25. package/dist/components/lwFlow/nodesData/datas/base.js +0 -190
  26. package/dist/components/lwFlow/nodesData/datas/collap.js +0 -95
  27. package/dist/components/lwFlow/nodesData/datas/eventReceive.js +0 -106
  28. package/dist/components/lwFlow/nodesData/datas/expand.js +0 -85
  29. package/dist/components/lwFlow/nodesData/datas/filter.js +0 -85
  30. package/dist/components/lwFlow/nodesData/datas/joiner.js +0 -96
  31. package/dist/components/lwFlow/nodesData/datas/mapper.js +0 -111
  32. package/dist/components/lwFlow/nodesData/datas/reduce.js +0 -69
  33. package/dist/components/lwFlow/nodesData/datas/sms.js +0 -69
  34. package/dist/components/lwFlow/nodesData/datas/source.js +0 -142
  35. package/dist/components/lwFlow/nodesData/datas/target.js +0 -95
  36. package/dist/components/lwFlow/nodesData/datas/timer.js +0 -180
  37. package/dist/components/lwFlow/nodesData/index.js +0 -41
  38. package/dist/components/lwForm/index.vue +0 -631
  39. package/dist/components/lwFormJson/JsonItem.vue +0 -302
  40. package/dist/components/lwFormJson/StatsConfig.vue +0 -544
  41. package/dist/components/lwFormJson/TreeItem.vue +0 -149
  42. package/dist/components/lwFormJson/index.vue +0 -362
  43. package/dist/components/lwFormJson/menuList.js +0 -324
  44. package/dist/components/lwFormMini/FormItem.vue +0 -466
  45. package/dist/components/lwFormMini/ViewItem.vue +0 -391
  46. package/dist/components/lwFormMini/index.vue +0 -421
  47. package/dist/components/lwFormMini/textToPassword.vue +0 -61
  48. package/dist/components/lwFormView/index.vue +0 -390
  49. package/dist/components/lwFormView/textToPassword.vue +0 -59
  50. package/dist/components/lwIconSelect/iconSelect.js +0 -289
  51. package/dist/components/lwIconSelect/index.vue +0 -142
  52. package/dist/components/lwLayout/components/NavMenu.vue +0 -36
  53. package/dist/components/lwLayout/components/aside.vue +0 -295
  54. package/dist/components/lwLayout/components/bu.vue +0 -88
  55. package/dist/components/lwLayout/components/iframeView.vue +0 -57
  56. package/dist/components/lwLayout/components/lang.vue +0 -77
  57. package/dist/components/lwLayout/components/setting.vue +0 -102
  58. package/dist/components/lwLayout/components/sideM.vue +0 -135
  59. package/dist/components/lwLayout/components/tags.vue +0 -388
  60. package/dist/components/lwLayout/components/topbar.vue +0 -69
  61. package/dist/components/lwLayout/components/userbar.vue +0 -214
  62. package/dist/components/lwLayout/index.vue +0 -469
  63. package/dist/components/lwLogin/index.vue +0 -511
  64. package/dist/components/lwLogin/locale/en-us.js +0 -37
  65. package/dist/components/lwLogin/locale/zh-cn.js +0 -37
  66. package/dist/components/lwSearch/date/date.vue +0 -113
  67. package/dist/components/lwSearch/dateRange/dateRange.vue +0 -118
  68. package/dist/components/lwSearch/dates/dates.vue +0 -366
  69. package/dist/components/lwSearch/index.vue +0 -628
  70. package/dist/components/lwSearch/input/input.vue +0 -55
  71. package/dist/components/lwSearch/locale/en-us.js +0 -15
  72. package/dist/components/lwSearch/locale/zh-cn.js +0 -15
  73. package/dist/components/lwSearch/select/select.vue +0 -58
  74. package/dist/components/lwSvgIcon/index.vue +0 -29
  75. package/dist/components/lwTable/index.js +0 -286
  76. package/dist/components/lwTable/index.scss +0 -238
  77. package/dist/components/lwTable/index.vue +0 -346
  78. package/dist/components/lwTable/locale/en-US.js +0 -26
  79. package/dist/components/lwTable/locale/zh-CN.js +0 -26
  80. package/dist/components/lwTable/useFullscreen.js +0 -73
  81. package/dist/components/lwTableForm/index.vue +0 -662
  82. package/dist/components/lwTableSelect/index.vue +0 -266
  83. package/dist/components/lwTableSelect/tableSelect.js +0 -23
  84. package/dist/components/lwUpload/index.vue +0 -564
  85. package/dist/lw-cdp-ui.esm.js +0 -19906
  86. package/dist/lw-cdp-ui.umd.js +0 -22
  87. package/dist/style.css +0 -1
  88. package/dist/vite.svg +0 -1
@@ -1,390 +0,0 @@
1
- <template>
2
- <el-skeleton v-if="renderLoading || Object.keys(form).length == 0"
3
- animated />
4
- <el-row :gutter="0"
5
- v-else>
6
- <template v-for="(item, index) in config.formItems">
7
- <template v-if="!hideHandle(item)">
8
- <template v-if="item.component == 'divider'">
9
- <el-col :span="item.span || 24"
10
- :class="{ topPadding: index !== 0 }">
11
- <div class="top-title-body">
12
- <span class="lw-form-view-title-name">{{ item.label }}</span>
13
- <slot :name="item?.options?.component"></slot>
14
- </div>
15
- </el-col>
16
- </template>
17
- <el-col v-else
18
- :span="item.span">
19
- <div class="span-item"
20
- :class="[config.labelPosition]">
21
- <span v-if="item.label"
22
- :style="{ minWidth: config.labelWidth }"
23
- class="title-item">
24
- {{ item.label }}
25
- <el-tooltip v-if="item.tips"
26
- :content="item.tips">
27
- <el-icon><el-icon-question-filled /></el-icon>
28
- </el-tooltip>:
29
- </span>
30
- <!-- input -->
31
- <template
32
- v-if="item.component == 'input' || item.component == 'number'">
33
- <template v-if="item?.options?.name">
34
- <textToPassword v-model="form[item.name][item?.options.name]"
35
- :width="config.labelWidth"
36
- :password="item?.options?.password" />
37
- </template>
38
- <template v-else>
39
- <textToPassword v-model="form[item.name]"
40
- :password="item?.options?.password" />
41
- </template>
42
- </template>
43
- <!-- upload -->
44
- <template v-else-if="item.component == 'upload'">
45
- <el-col v-for="(_item, _index) in item?.options.items"
46
- :key="_index">
47
- <template v-if="item.name">
48
- <el-image style="width: 100px; height: 100px"
49
- :src="form[item.name][_item.name]"
50
- :fit="contain" />
51
- </template>
52
- <template v-else>
53
- <el-image style="width: 100px; height: 100px"
54
- :src="form[_item.name]"
55
- :fit="contain" />
56
- </template>
57
-
58
- </el-col>
59
- </template>
60
- <!-- checkbox -->
61
- <template v-else-if="item.component == 'checkbox'">
62
- <template v-if="item.name">
63
- {{ form[item.name][_item.name] }}
64
- </template>
65
- <template v-else>
66
- {{ form[_item.name] }}
67
- </template>
68
- </template>
69
- <!-- checkboxGroup -->
70
- <template v-else-if="item.component == 'checkboxGroup'">
71
- {{ form[item.name] }}
72
- </template>
73
- <!-- switch -->
74
- <template v-else-if="item.component == 'switch'">
75
- <template v-if="item?.options?.name">
76
- {{ form[item.name][item?.options.name] ? item?.options.true || '是' : item?.options.false || '否' }}
77
- </template>
78
- <template v-else>
79
- {{ form[item.name] ? item?.options.true || '是' : item?.options.false || '否' }}
80
- </template>
81
- </template>
82
- <!-- select -->
83
- <template
84
- v-else-if="item.component == 'select' || item.component == 'radio'">
85
- <template v-if="item?.options?.name">
86
- {{ getKeyToLabel(form[item.name][item?.options.name], item?.options.items) }}
87
- </template>
88
- <template v-else>
89
- {{ getKeyToLabel(form[item.name], item?.options.items) }}
90
- </template>
91
- </template>
92
- <!-- cascader -->
93
- <template v-else-if="item.component == 'cascader'">
94
- <template v-if="item?.options?.name">
95
- <el-cascader v-model="form[item.name][item?.options.name]"
96
- :options="item?.options.items"
97
- clearable></el-cascader>
98
- </template>
99
- <template v-else>
100
- <el-cascader v-model="form[item.name]"
101
- :options="item?.options.items"
102
- clearable></el-cascader>
103
- </template>
104
- </template>
105
- <!-- date -->
106
- <template v-else-if="item.component == 'date'">
107
- <template v-if="item?.options?.name">
108
- {{ dayjs(form[item.name][item?.options.name]).format(item?.options.valueFormat || 'YYYY-MM-DD HH:mm:ss')
109
- }}
110
-
111
- </template>
112
- <template v-else>
113
- {{ dayjs(form[item.name]).format(item?.options.valueFormat || 'YYYY-MM-DD HH:mm:ss') }}
114
- </template>
115
-
116
- </template>
117
- <!-- color -->
118
- <template v-else-if="item.component == 'color'">
119
- <template v-if="item?.options?.name">
120
- <el-color-picker disabled
121
- v-model="form[item.name][item?.options.name]" />
122
- </template>
123
- <template v-else>
124
- <el-color-picker disabled
125
- v-model="form[item.name]" />
126
- </template>
127
-
128
- </template>
129
- <!-- rate -->
130
- <template v-else-if="item.component == 'rate'">
131
- <template v-if="item?.options?.name">
132
- <el-rate disabled
133
- v-model="form[item.name][item?.options.name]"></el-rate>
134
- </template>
135
- <template v-else>
136
- <el-rate disabled
137
- v-model="form[item.name]"></el-rate>
138
- </template>
139
- </template>
140
- <!-- slider -->
141
- <template v-else-if="item.component == 'slider'">
142
- <template v-if="item?.options?.name">
143
- <el-slider disabled
144
- v-model="form[item.name][item?.options.name]"
145
- :marks="item?.options.marks"></el-slider>
146
- </template>
147
- <template v-else>
148
- <el-slider disabled
149
- v-model="form[item.name]"
150
- :marks="item?.options.marks"></el-slider>
151
- </template>
152
-
153
- </template>
154
-
155
- <!-- tags -->
156
- <template v-else-if="item.component == 'tags'">
157
- <div class="tags-list">
158
- <template v-if="item?.options?.name">
159
- <el-tag v-for="tag in form[item.name][item?.options?.name]"
160
- :key="tag">
161
- {{ tag }}
162
- </el-tag>
163
-
164
- </template>
165
- <template v-else>
166
- <el-tag v-for="tag in form[item.name]"
167
- :key="tag">
168
- {{ tag }}
169
- </el-tag>
170
- </template>
171
-
172
- </div>
173
- </template>
174
-
175
- <!-- 没有组件是component值 就是插槽名称 -->
176
- <template v-else>
177
- <slot :name="item.component">
178
- <el-tag type="danger">
179
- [{{ item.component }}]
180
- 没有这个默认组件也未自定义插槽内容</el-tag>
181
- </slot>
182
- </template>
183
- <div v-if="item.message"
184
- class="el-form-item-msg">{{ item.message }}</div>
185
- </div>
186
- </el-col>
187
- </template>
188
- </template>
189
-
190
- </el-row>
191
- </template>
192
-
193
- <script>
194
- import lwUpload from '../lwUpload'
195
- import textToPassword from './textToPassword'
196
- import dayjs from 'dayjs'
197
- export default {
198
- components: {
199
- lwUpload,
200
- textToPassword
201
- },
202
- props: {
203
- modelValue: { type: Object, default: () => { } },
204
- config: { type: Object, default: () => { } },
205
- loading: { type: Boolean, default: false },
206
- isView: { type: Boolean, default: false },
207
- },
208
- data() {
209
- return {
210
- form: {},
211
- tagValue: '',
212
- tagVisible: false,
213
- renderLoading: false
214
- }
215
- },
216
- watch: {
217
- modelValue() {
218
- if (this.hasConfig) {
219
- this.deepMerge(this.form, JSON.parse(JSON.stringify(this.modelValue)))
220
- }
221
- },
222
- config() {
223
- this.render()
224
- },
225
- form: {
226
- handler(val) {
227
- this.$emit("update:modelValue", val)
228
- },
229
- deep: true
230
- }
231
- },
232
- computed: {
233
- hasConfig() {
234
- return Object.keys(this.config).length > 0
235
- },
236
- hasValue() {
237
- return Object.keys(this.modelValue).length > 0
238
- },
239
-
240
- },
241
- mounted() {
242
- if (this.hasConfig) {
243
- this.render()
244
- }
245
- },
246
- methods: {
247
- //构建form对象
248
- render() {
249
- this.form = {}
250
- this.config.formItems.forEach((item) => {
251
- if (item.component == 'checkbox' || item.component == 'upload') {
252
- if (item.name) {
253
- const value = {}
254
- item?.options.items.forEach((option) => {
255
- value[option.name] = option.value
256
- })
257
- this.form[item.name] = value
258
- } else if (item?.options?.items) {
259
- item?.options.items.forEach((option) => {
260
- this.form[option.name] = option.value
261
- })
262
- }
263
- } else {
264
- if (item?.options?.name) {
265
- if (!this.form[item.name]) {
266
- this.form[item.name] = {}
267
- }
268
- this.form[item.name][item?.options?.name] = item.value
269
- } else if (item.name) {
270
- this.form[item.name] = item.value
271
- }
272
-
273
- }
274
- })
275
-
276
- if (this.hasValue) {
277
- this.form = this.deepMerge(this.form, this.modelValue)
278
- }
279
- },
280
- //合并深结构对象
281
- deepMerge(obj1, obj2) {
282
- for (let key in obj2) {
283
- if (obj2.hasOwnProperty(key)) {
284
- // 确保 obj1[key] 和 obj2[key] 不是 null 或 undefined
285
- const isObj1Valid = obj1[key] !== null && obj1[key] !== undefined;
286
- const isObj2Valid = obj2[key] !== null && obj2[key] !== undefined;
287
-
288
- if (
289
- isObj1Valid &&
290
- typeof obj1[key] === "object" &&
291
- !Array.isArray(obj1[key]) &&
292
- isObj2Valid &&
293
- typeof obj2[key] === "object" &&
294
- !Array.isArray(obj2[key])
295
- ) {
296
- obj1[key] = this.deepMerge(obj1[key], obj2[key]);
297
- } else {
298
-
299
- if (isObj2Valid) {
300
- obj1[key] = obj2[key];
301
- } else if (!isObj2Valid) {
302
- delete obj1[key];
303
- }
304
- }
305
- }
306
- }
307
- return obj1;
308
- },
309
- //处理动态隐藏
310
- hideHandle(item) {
311
- if (typeof item.hideHandle === 'string') {
312
- const func = new Function('form', `return ${item?.hideHandle.replace(/\$/g, "form")}`);
313
- return func(this.form);
314
- } else if (typeof item.hideHandle === 'boolean') {
315
- return item.hideHandle
316
- }
317
- return false
318
- },
319
- // 处理动态必填
320
- rulesHandle(item) {
321
- if (item.requiredHandle) {
322
- try {
323
- const requiredHandleFunc = new Function("form", `return ${item.requiredHandle.replace(/\$/g, "form")}`);
324
- const exp = requiredHandleFunc(this.form);
325
-
326
- const requiredRule = item.rules.find(t => 'required' in t);
327
- if (requiredRule) {
328
- requiredRule.required = exp;
329
- }
330
- } catch (error) {
331
- console.error("Error requiredHandle function:", error);
332
- }
333
- }
334
- return item.rules;
335
- },
336
- // key to label
337
- getKeyToLabel(val, items = []) {
338
- let item = items.find(item => { return item.value == val })
339
- return item?.label || '--'
340
- },
341
- dayjs: dayjs
342
- }
343
- }
344
- </script>
345
- <style lang="scss" scoped>
346
- .topPadding {
347
- border-top: 2px solid #f7f8fa;
348
- margin-top: 30px;
349
- padding-top: 30px;
350
- }
351
-
352
- .top-title-body {
353
- display: flex;
354
- justify-content: space-between;
355
- align-items: center;
356
- width: 100%;
357
- height: 30px;
358
- margin-bottom: 5px;
359
- .lw-form-view-title-name {
360
- font-size: 18px;
361
- font-weight: bold;
362
- }
363
- }
364
-
365
- .span-item {
366
- display: inline-flex;
367
- align-items: flex-start;
368
- gap: 10px;
369
- flex-wrap: wrap;
370
- margin-bottom: 10px;
371
- line-height: 24px;
372
- font-size: 14px;
373
- width: 100%;
374
-
375
- &.top {
376
- flex-direction: column;
377
- }
378
-
379
- &.right {
380
- .title-item {
381
- text-align: right;
382
- }
383
- }
384
-
385
- .title-item {
386
- color: #7c7c7c;
387
- display: inline-block;
388
- }
389
- }
390
- </style>
@@ -1,59 +0,0 @@
1
- <template>
2
- <span class="item-text"
3
- :style="{width: textWidth}">
4
- <!-- 根据加密状态显示加密或解密后的文本 -->
5
- <span>{{ isEncrypted ? encryptedText : modelValue }}</span>
6
- <!-- 切换加密/解密按钮 -->
7
- <el-button v-if="password"
8
- link
9
- type="primary"
10
- icon="el-icon-view"
11
- @click="toggleEncryption"></el-button>
12
- </span>
13
- </template>
14
-
15
- <script>
16
- export default {
17
- props: {
18
- modelValue: { type: String, default: '' }, // 传入的字符串
19
- width: { type: String, default: '' },
20
- password: { type: Boolean, default: false }, // 是否需要加密显示
21
- },
22
- data() {
23
- return {
24
- isEncrypted: this.password, // 根据传入的 password 值初始化加密状态
25
- };
26
- },
27
- computed: {
28
- encryptedText() {
29
- // 将输入字符串加密成 *,长度与原字符串相同
30
- return "*".repeat(this.modelValue.length);
31
- },
32
- textWidth() {
33
- return this?.width ? `calc(100% - ${this.width} - 10px)` : "";
34
- }
35
- },
36
- methods: {
37
- toggleEncryption() {
38
- // 切换加密和解密状态
39
- this.isEncrypted = !this.isEncrypted;
40
- // 如果是解密状态,可以更新父组件的值
41
- if (!this.isEncrypted) {
42
- this.$emit('update:modelValue', this.modelValue);
43
- }
44
- },
45
- },
46
- };
47
- </script>
48
- <style lang="scss" scoped>
49
- .item-text {
50
- display: inline-flex;
51
- gap: 10px;
52
- align-items: center;
53
- span {
54
- word-wrap: break-word;
55
- word-break: break-all;
56
- white-space: normal;
57
- }
58
- }
59
- </style>