wui-components-v2 1.1.65 → 1.1.67

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 (38) hide show
  1. package/components/action-popup/action-popup.vue +4 -4
  2. package/components/add-address-page/add-address-page.vue +20 -20
  3. package/components/card-botom-buttons/card-botom-buttons.vue +58 -35
  4. package/components/custom-select-picker/custom-select-picker.vue +19 -27
  5. package/components/demo-block/demo-block.vue +2 -5
  6. package/components/detail-popup/detail-popup.vue +12 -5
  7. package/components/evaluation-page/evaluation-page.vue +192 -0
  8. package/components/fold-card/fold-card.vue +25 -5
  9. package/components/form-control/form-control.vue +289 -43
  10. package/components/label-value/label-value.vue +1 -1
  11. package/components/list-top-buttons/list-top-buttons.vue +1 -1
  12. package/components/login-form/login-form.vue +31 -26
  13. package/components/mulselect-picker/mulselect-picker.vue +10 -12
  14. package/components/privacy-popup/privacy-popup.vue +13 -0
  15. package/components/product-card/product-card.vue +95 -21
  16. package/components/search/search.vue +23 -22
  17. package/components/tree-select/components/index.vue +1 -1
  18. package/components/wui-edit-page/wui-edit-page-copy.vue +1 -1
  19. package/components/wui-edit-page/wui-edit-page.vue +2 -2
  20. package/components/wui-login/wui-login.vue +3 -3
  21. package/components/wui-login1/wui-login.vue +4 -4
  22. package/components/wui-menus1/components/navbar.vue +1 -1
  23. package/components/wui-menus1/components/quick-panel.vue +3 -3
  24. package/components/wui-menus1/components/section-menus.vue +4 -4
  25. package/components/wui-menus1/wui-menus-top.vue +1 -1
  26. package/components/wui-menus1/wui-menus-top1.vue +1 -1
  27. package/components/wui-menus1/wui-menus.vue +3 -3
  28. package/components/wui-notify-info/wui-notify-info.vue +65 -35
  29. package/components/wui-select-list/wui-select-list.vue +1 -1
  30. package/components/wui-select-popup/wui-select-popup.vue +27 -17
  31. package/components/wui-system-settings/wui-system-settings.vue +31 -24
  32. package/components/wui-tabbar/wui-tabbar.vue +14 -5
  33. package/components/wui-tree-page/components/tree-item.vue +51 -30
  34. package/components/wui-user/wui-user.vue +68 -57
  35. package/index.ts +5 -3
  36. package/package.json +1 -1
  37. package/store/manualThemeStore.ts +7 -7
  38. package/styles/dark-mode.scss +424 -0
@@ -69,16 +69,26 @@ function initFormData() {
69
69
  const models: { [key: string]: any } = {}
70
70
  props.fieldGroup?.fields.forEach((item: Fields) => {
71
71
  // 树、多选
72
- if (ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'tree-entity-select' || ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'multiselect') {
73
- return (models[item.sourceId] = (props.entity && props.entity[item.sourceId]?.split(',')) || item.transDefaultValue || [])
72
+ if (
73
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'tree-entity-select' ||
74
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'multiselect'
75
+ ) {
76
+ return (models[item.sourceId] =
77
+ (props.entity && props.entity[item.sourceId]?.split(',')) || item.transDefaultValue || [])
74
78
  }
75
79
 
76
80
  if (ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relselect') {
77
- return (models[item.sourceId] = (props.entity && props.entity[item.sourceId]?.split('@,@')) || (item.transDefaultValue && item.transDefaultValue?.split('@,@')) || [])
81
+ return (models[item.sourceId] =
82
+ (props.entity && props.entity[item.sourceId]?.split('@,@')) ||
83
+ (item.transDefaultValue && item.transDefaultValue?.split('@,@')) ||
84
+ [])
78
85
  }
79
86
 
80
87
  // 文件
81
- if (ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'file' || ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relfile') {
88
+ if (
89
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'file' ||
90
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relfile'
91
+ ) {
82
92
  if (props.entity && typeof props.entity[item.sourceId] === 'object') {
83
93
  return (models[item.sourceId] = [props.entity[item.sourceId]])
84
94
  }
@@ -99,8 +109,14 @@ function initFormData() {
99
109
  }
100
110
 
101
111
  // 时间
102
- if (ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'datetime' || ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date') {
103
- return (models[item.sourceId] = (props.entity && dayjs(props.entity[item.sourceId]).valueOf()) || (item.transDefaultValue && dayjs(item.transDefaultValue).valueOf()) || null)
112
+ if (
113
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'datetime' ||
114
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date'
115
+ ) {
116
+ return (models[item.sourceId] =
117
+ (props.entity && dayjs(props.entity[item.sourceId]).valueOf()) ||
118
+ (item.transDefaultValue && dayjs(item.transDefaultValue).valueOf()) ||
119
+ null)
104
120
  }
105
121
 
106
122
  // 评分
@@ -241,7 +257,10 @@ function submit() {
241
257
  if (item.sourceId === key) {
242
258
  if (ControlTypeSupportor.getControlType(item) === 'file') {
243
259
  data[key] = toRaw(model.value[key][0])
244
- } else if (ControlTypeSupportor.getControlType(item) === 'relselect' || ControlTypeSupportor.getControlType(item) === 'tree-entity-select') {
260
+ } else if (
261
+ ControlTypeSupportor.getControlType(item) === 'relselect' ||
262
+ ControlTypeSupportor.getControlType(item) === 'tree-entity-select'
263
+ ) {
245
264
  if (Array.isArray(model.value[key])) {
246
265
  data[key] = model.value[key].join('@,@')
247
266
  } else {
@@ -278,47 +297,185 @@ defineExpose({
278
297
  <addAddressPage v-if="props?.smartPaste" v-model="model" :group="props.fieldGroup" />
279
298
  <view v-for="item in fields" :key="item.sourceId">
280
299
  <view v-show="!item.title?.includes('y') && !item.hidden">
281
- <wd-form-item v-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'text'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
282
- <wd-input v-model="model[item.sourceId]" :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :placeholder="`请输入${item.title}`" :class="{ 'disabled-input': item.disabled || item.rowEditType === 'readonly' }" />
300
+ <wd-form-item
301
+ v-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'text'"
302
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
303
+ :prop="item.sourceId"
304
+ :title="item.title"
305
+ >
306
+ <wd-input
307
+ v-model="model[item.sourceId]"
308
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
309
+ :clearable="!item.disabled"
310
+ :placeholder="`请输入${item.title}`"
311
+ :class="{ 'disabled-input': item.disabled || item.rowEditType === 'readonly' }"
312
+ />
283
313
  </wd-form-item>
284
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'decimal'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
285
- <wd-input v-model="model[item.sourceId]" type="number" :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :placeholder="`请输入${item.title}`" />
314
+ <wd-form-item
315
+ v-else-if="
316
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'decimal'
317
+ "
318
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
319
+ :prop="item.sourceId"
320
+ :title="item.title"
321
+ >
322
+ <wd-input
323
+ v-model="model[item.sourceId]"
324
+ type="number"
325
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
326
+ :clearable="!item.disabled"
327
+ :placeholder="`请输入${item.title}`"
328
+ />
286
329
  </wd-form-item>
287
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'password'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
288
- <wd-input v-model="model[item.sourceId]" show-password :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :placeholder="`请输入${item.title}`" />
330
+ <wd-form-item
331
+ v-else-if="
332
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'password'
333
+ "
334
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
335
+ :prop="item.sourceId"
336
+ :title="item.title"
337
+ >
338
+ <wd-input
339
+ v-model="model[item.sourceId]"
340
+ show-password
341
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
342
+ :clearable="!item.disabled"
343
+ :placeholder="`请输入${item.title}`"
344
+ />
289
345
  </wd-form-item>
290
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'textarea'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
291
- <wd-textarea v-model="model[item.sourceId]" :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :placeholder="`请输入${item.title}`" auto-height />
346
+ <wd-form-item
347
+ v-else-if="
348
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'textarea'
349
+ "
350
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
351
+ :prop="item.sourceId"
352
+ :title="item.title"
353
+ >
354
+ <wd-textarea
355
+ v-model="model[item.sourceId]"
356
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
357
+ :clearable="!item.disabled"
358
+ :placeholder="`请输入${item.title}`"
359
+ auto-height
360
+ />
292
361
  </wd-form-item>
293
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'select'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title" :style="{ display: item.title?.includes('y') ? 'none' : null }">
294
- <customSelectPicker v-model="model[item.sourceId]" :placeholder="`请选择${item.title}`" :columns="enumColumn && formatSelectColumns(enumColumn[item.mstrucId])" type="radio" />
362
+ <wd-form-item
363
+ v-else-if="
364
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'select'
365
+ "
366
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
367
+ :prop="item.sourceId"
368
+ :title="item.title"
369
+ :style="{ display: item.title?.includes('y') ? 'none' : null }"
370
+ >
371
+ <customSelectPicker
372
+ v-model="model[item.sourceId]"
373
+ :placeholder="`请选择${item.title}`"
374
+ :columns="enumColumn && formatSelectColumns(enumColumn[item.mstrucId])"
375
+ type="radio"
376
+ />
295
377
  </wd-form-item>
296
378
  <wd-form-item
297
- v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relselect-extdis'"
379
+ v-else-if="
380
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) ===
381
+ 'relselect-extdis'
382
+ "
298
383
  :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
299
384
  :prop="item.sourceId"
300
385
  :title="item.title"
301
386
  :style="{ display: item.title?.includes('y') ? 'none' : null }"
302
387
  >
303
- <userChoose v-model="model[item.sourceId]" :placeholder="`请选择${item.title}`" :source-id="item.sourceId" :title="item.title" :add-event="addEvent" :ext-control-type="item.extControlType" />
388
+ <userChoose
389
+ v-model="model[item.sourceId]"
390
+ :placeholder="`请选择${item.title}`"
391
+ :source-id="item.sourceId"
392
+ :title="item.title"
393
+ :add-event="addEvent"
394
+ :ext-control-type="item.extControlType"
395
+ />
304
396
  </wd-form-item>
305
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'multiselect'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
306
- <customSelectPicker v-model="model[item.sourceId]" :placeholder="`请选择${item.title}`" :columns="enumColumn && formatSelectColumns(enumColumn[item.mstrucId])" type="checkbox" />
397
+ <wd-form-item
398
+ v-else-if="
399
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'multiselect'
400
+ "
401
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
402
+ :prop="item.sourceId"
403
+ :title="item.title"
404
+ >
405
+ <customSelectPicker
406
+ v-model="model[item.sourceId]"
407
+ :placeholder="`请选择${item.title}`"
408
+ :columns="enumColumn && formatSelectColumns(enumColumn[item.mstrucId])"
409
+ type="checkbox"
410
+ />
307
411
  </wd-form-item>
308
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
309
- <customDatePicker v-model="model[item.sourceId]" type="date" :clearable="!item.disabled" :placeholder="`请选择${item.title}`" />
412
+ <wd-form-item
413
+ v-else-if="
414
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date'
415
+ "
416
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
417
+ :prop="item.sourceId"
418
+ :title="item.title"
419
+ >
420
+ <customDatePicker
421
+ v-model="model[item.sourceId]"
422
+ type="date"
423
+ :clearable="!item.disabled"
424
+ :placeholder="`请选择${item.title}`"
425
+ />
310
426
  </wd-form-item>
311
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'datetime'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
312
- <customDatePicker v-model="model[item.sourceId]" type="datetime" :clearable="!item.disabled" :placeholder="`请选择${item.title}`" />
427
+ <wd-form-item
428
+ v-else-if="
429
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'datetime'
430
+ "
431
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
432
+ :prop="item.sourceId"
433
+ :title="item.title"
434
+ >
435
+ <customDatePicker
436
+ v-model="model[item.sourceId]"
437
+ type="datetime"
438
+ :clearable="!item.disabled"
439
+ :placeholder="`请选择${item.title}`"
440
+ />
313
441
  </wd-form-item>
314
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'time'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
315
- <customDatePicker v-model="model[item.sourceId]" type="time" use-second :clearable="!item.disabled" :placeholder="`请选择${item.title}`" />
442
+ <wd-form-item
443
+ v-else-if="
444
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'time'
445
+ "
446
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
447
+ :prop="item.sourceId"
448
+ :title="item.title"
449
+ >
450
+ <customDatePicker
451
+ v-model="model[item.sourceId]"
452
+ type="time"
453
+ use-second
454
+ :clearable="!item.disabled"
455
+ :placeholder="`请选择${item.title}`"
456
+ />
316
457
  </wd-form-item>
317
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date-YY'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
318
- <customDatePicker v-model="model[item.sourceId]" type="year" use-second :clearable="!item.disabled" :placeholder="`请选择${item.title}`" />
458
+ <wd-form-item
459
+ v-else-if="
460
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date-YY'
461
+ "
462
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
463
+ :prop="item.sourceId"
464
+ :title="item.title"
465
+ >
466
+ <customDatePicker
467
+ v-model="model[item.sourceId]"
468
+ type="year"
469
+ use-second
470
+ :clearable="!item.disabled"
471
+ :placeholder="`请选择${item.title}`"
472
+ />
319
473
  </wd-form-item>
320
474
  <wd-form-item
321
- v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'file' || ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relfile'"
475
+ v-else-if="
476
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'file' ||
477
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relfile'
478
+ "
322
479
  :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
323
480
  :prop="item.sourceId"
324
481
  :title="item.title"
@@ -346,41 +503,122 @@ defineExpose({
346
503
  />
347
504
  </wd-form-item>
348
505
  <wd-form-item
349
- v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relselect'"
506
+ v-else-if="
507
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relselect'
508
+ "
350
509
  :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
351
510
  :prop="item.sourceId"
352
511
  :title="item.title"
353
512
  :style="{ display: item.title?.includes('y') ? 'none' : null }"
354
513
  >
355
- <WuiSelectPopup v-model="model[item.sourceId]" :source-id="item.sourceId" :title="item.title" :ext-control-type="Number(item.max) === 1 ? 'relselect' : 'ss'" :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :default-select-first="!!item.defaultSelectFirst" />
514
+ <WuiSelectPopup
515
+ v-model="model[item.sourceId]"
516
+ :source-id="item.sourceId"
517
+ :title="item.title"
518
+ :ext-control-type="Number(item.max) === 1 ? 'relselect' : 'ss'"
519
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
520
+ :clearable="!item.disabled"
521
+ :default-select-first="!!item.defaultSelectFirst"
522
+ />
356
523
  </wd-form-item>
357
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'relselectvalue'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
358
- <WuiSelectPopup v-model="model[item.sourceId]" :source-id="item.sourceId" :title="item.title" :ext-control-type="item.extControlType" :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :default-select-first="!!item.defaultSelectFirst" />
524
+ <wd-form-item
525
+ v-else-if="
526
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) ===
527
+ 'relselectvalue'
528
+ "
529
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
530
+ :prop="item.sourceId"
531
+ :title="item.title"
532
+ >
533
+ <WuiSelectPopup
534
+ v-model="model[item.sourceId]"
535
+ :source-id="item.sourceId"
536
+ :title="item.title"
537
+ :ext-control-type="item.extControlType"
538
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
539
+ :clearable="!item.disabled"
540
+ :default-select-first="!!item.defaultSelectFirst"
541
+ />
359
542
  </wd-form-item>
360
543
  <wd-form-item
361
- v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'tree-entity-select' || ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'table-entity-select'"
544
+ v-else-if="
545
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) ===
546
+ 'tree-entity-select' ||
547
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) ===
548
+ 'table-entity-select'
549
+ "
362
550
  :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
363
551
  :prop="item.sourceId"
364
552
  :title="item.title"
365
553
  >
366
- <WuiSelectPopup v-model="model[item.sourceId]" :source-id="item.sourceId" :title="item.title" :ext-control-type="Number(item.max) === 1 ? 'relselect' : 'ss'" :readonly="item.disabled || item.rowEditType === 'readonly'" :clearable="!item.disabled" :default-select-first="!!item.defaultSelectFirst" fold-card-model="complex" />
554
+ <WuiSelectPopup
555
+ v-model="model[item.sourceId]"
556
+ :source-id="item.sourceId"
557
+ :title="item.title"
558
+ :ext-control-type="Number(item.max) === 1 ? 'relselect' : 'ss'"
559
+ :readonly="item.disabled || item.rowEditType === 'readonly'"
560
+ :clearable="!item.disabled"
561
+ :default-select-first="!!item.defaultSelectFirst"
562
+ fold-card-model="complex"
563
+ />
367
564
  </wd-form-item>
368
565
  <!-- done -->
369
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'int'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
566
+ <wd-form-item
567
+ v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'int'"
568
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
569
+ :prop="item.sourceId"
570
+ :title="item.title"
571
+ >
370
572
  <view style="text-align: left">
371
- <wd-input-number v-model="model[item.sourceId]" :disabled="item.disabled || item.rowEditType === 'readonly'" :min="Number(item.min || 0)" :max="Number(item.max || Infinity)" />
573
+ <wd-input-number
574
+ v-model="model[item.sourceId]"
575
+ :disabled="item.disabled || item.rowEditType === 'readonly'"
576
+ :min="Number(item.min || 0)"
577
+ :max="Number(item.max || Infinity)"
578
+ />
372
579
  </view>
373
580
  </wd-form-item>
374
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'QRCode'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
581
+ <wd-form-item
582
+ v-else-if="
583
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'QRCode'
584
+ "
585
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
586
+ :prop="item.sourceId"
587
+ :title="item.title"
588
+ >
375
589
  <scanInput v-model="model[item.sourceId]" :disabled="item.disabled || item.rowEditType === 'readonly'" />
376
590
  </wd-form-item>
377
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'progress'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
378
- <wd-rate v-model="model[item.sourceId]" :disabled="item.disabled || item.rowEditType === 'readonly'" />
591
+ <wd-form-item
592
+ v-else-if="
593
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'progress'
594
+ "
595
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
596
+ :prop="item.sourceId"
597
+ :title="item.title"
598
+ >
599
+ <wd-rate
600
+ allow-half
601
+ v-model="model[item.sourceId]"
602
+ :disabled="item.disabled || item.rowEditType === 'readonly'"
603
+ />
379
604
  </wd-form-item>
380
605
  <!-- done -->
381
- <wd-form-item v-else-if="ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'yes-no-switch'" :class="{ 'no-border-top': fields.indexOf(item) === 0 }" :prop="item.sourceId" :title="item.title">
606
+ <wd-form-item
607
+ v-else-if="
608
+ ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'yes-no-switch'
609
+ "
610
+ :class="{ 'no-border-top': fields.indexOf(item) === 0 }"
611
+ :prop="item.sourceId"
612
+ :title="item.title"
613
+ >
382
614
  <view style="text-align: left">
383
- <wd-switch v-model="model[item.sourceId]" size="16" :disabled="item.disabled || item.rowEditType === 'readonly'" active-value="是" inactive-value="否" />
615
+ <wd-switch
616
+ v-model="model[item.sourceId]"
617
+ size="16"
618
+ :disabled="item.disabled || item.rowEditType === 'readonly'"
619
+ active-value="是"
620
+ inactive-value="否"
621
+ />
384
622
  </view>
385
623
  </wd-form-item>
386
624
  </view>
@@ -412,4 +650,12 @@ defineExpose({
412
650
  :deep(.disabled-input) {
413
651
  background-color: #e8e8e8 !important;
414
652
  }
653
+
654
+ /* 暗黑模式适配 */
655
+ :global(.wot-theme-dark) .custom-from-style :deep(.wd-form-item) {
656
+ border-top-color: #3d3d3d;
657
+ }
658
+ :global(.wot-theme-dark) ::deep(.disabled-input) {
659
+ background-color: #2f2f2f !important;
660
+ }
415
661
  </style>
@@ -30,7 +30,7 @@ function openVideo(uitem: any) {
30
30
  function isControlType(item: Columns): string {
31
31
  return ControlTypeSupportor.getControlType(
32
32
  { ...item, hidden: false, disabled: false, defaultValue: '', transDefaultValue: '', required: false },
33
- props.data.fieldMap[item.sourceId]
33
+ props.data.fieldMap?.[item.sourceId] || ''
34
34
  )
35
35
  }
36
36
  </script>
@@ -13,7 +13,7 @@ function gotoAddPage() {
13
13
  </script>
14
14
 
15
15
  <template>
16
- <view class="flex justify-end gap-1 py-2 px-2 .light:bg-white">
16
+ <view class="flex justify-end gap-1 py-2 px-2 bg-white dark:bg-[var(--wot-dark-background)]">
17
17
  <wd-button class="flex-1" v-if="buttons.includes('dtmplAdd')" type="primary" @click="gotoAddPage" icon="plus">{{ props.config?.editBtnTitle || '新增' }}</wd-button>
18
18
  </view>
19
19
  </template>
@@ -57,8 +57,7 @@ function handleSubmit() {
57
57
  uni.setStorageSync('USER_NAME', model.name)
58
58
  uni.setStorageSync('USER_PASSWORD', model.password)
59
59
  uni.setStorageSync('REMEMBER', model.remember)
60
- }
61
- else {
60
+ } else {
62
61
  // 删除账号密码
63
62
  uni.removeStorageSync('USER_NAME')
64
63
  uni.removeStorageSync('USER_PASSWORD')
@@ -70,16 +69,13 @@ function handleSubmit() {
70
69
  setTabbarItemActive('index')
71
70
  toast.success({ msg: '登录成功!' })
72
71
  }
73
- }
74
- else {
72
+ } else {
75
73
  toast.error({ msg: res.message })
76
74
  }
77
- }
78
- catch (error: any) {
75
+ } catch (error: any) {
79
76
  console.log(error, 'error')
80
77
  }
81
- }
82
- else {
78
+ } else {
83
79
  toast.error({ msg: '请填写登录信息' })
84
80
  console.log(errors, 'errors')
85
81
  }
@@ -96,25 +92,34 @@ function handleSubmit() {
96
92
  <view class="bg-white pa-3 dark:bg-[var(--wot-dark-background2)]">
97
93
  <!-- //账号登录 -->
98
94
  <wd-form ref="form" :model="model">
99
- <wd-cell-group border>
100
- <wd-input
101
- v-model="model.name" label="用户名" label-width="100px" prop="name" clearable placeholder="请输入用户名"
102
- :rules="[{ required: true, message: '请填写用户名' }]"
103
- />
104
- <wd-input
105
- v-model="model.password" label="密码" label-width="100px" prop="password" clearable show-password
106
- placeholder="请输入密码" :rules="[{ required: true, message: '请填写密码' }]"
107
- />
108
- <view class="p-4 pb-0 pt-0">
109
- <wd-checkbox v-model="model.remember" shape="square">
110
- 记住密码
111
- </wd-checkbox>
112
- </view>
113
- </wd-cell-group>
95
+ <view class="rounded-2 overflow-hidden">
96
+ <wd-cell-group border>
97
+ <wd-input
98
+ v-model="model.name"
99
+ label="用户名"
100
+ label-width="100px"
101
+ prop="name"
102
+ clearable
103
+ placeholder="请输入用户名"
104
+ :rules="[{ required: true, message: '请填写用户名' }]"
105
+ />
106
+ <wd-input
107
+ v-model="model.password"
108
+ label="密码"
109
+ label-width="100px"
110
+ prop="password"
111
+ clearable
112
+ show-password
113
+ placeholder="请输入密码"
114
+ :rules="[{ required: true, message: '请填写密码' }]"
115
+ />
116
+ <view class="p-4 pb-0 pt-0">
117
+ <wd-checkbox v-model="model.remember" shape="square">记住密码</wd-checkbox>
118
+ </view>
119
+ </wd-cell-group>
120
+ </view>
114
121
  <view class="p-4">
115
- <wd-button block :loading="subloading" :round="false" @click="handleSubmit">
116
- 登录
117
- </wd-button>
122
+ <wd-button block :loading="subloading" :round="false" @click="handleSubmit">登录</wd-button>
118
123
  </view>
119
124
  </wd-form>
120
125
  </view>
@@ -9,13 +9,13 @@ defineOptions({
9
9
  })
10
10
 
11
11
  const props = defineProps<{
12
- extControlType: string// 选择模式,例如:单选:relselect、多选
12
+ extControlType: string // 选择模式,例如:单选:relselect、多选
13
13
  sourceId: string
14
14
  title?: string
15
15
  modelValue: string | Array<string>
16
16
  readonly: boolean
17
17
  clearable: boolean
18
- foldCardModel?: FoldCardModel// 折叠面板模式
18
+ foldCardModel?: FoldCardModel // 折叠面板模式
19
19
  }>()
20
20
  const emits = defineEmits<{
21
21
  (e: 'update:modelValue', value: string | string[]): void
@@ -32,9 +32,10 @@ const router = useRouter()
32
32
  const SELECTEVENT = generateHighResolutionID()
33
33
  const SENDSELECTEVENT = generateHighResolutionID()
34
34
  function gotoSlect() {
35
- if (props.readonly)
36
- return
37
- router.push(`/pages/select-list/index?sourceId=${props.sourceId}&title=${props.title}&selectEvent=${SELECTEVENT}&sendSelectEvent=${SENDSELECTEVENT}&extControlType=${props.extControlType}&foldCardModel=${props.foldCardModel}`)
35
+ if (props.readonly) return
36
+ router.push(
37
+ `/pages/select-list/index?sourceId=${props.sourceId}&title=${props.title}&selectEvent=${SELECTEVENT}&sendSelectEvent=${SENDSELECTEVENT}&extControlType=${props.extControlType}&foldCardModel=${props.foldCardModel}`
38
+ )
38
39
  // 发送数据给选择页面,延迟发送防止页面不刷新
39
40
  setTimeout(() => {
40
41
  uni.$emit(SENDSELECTEVENT, toRaw(selectData.value))
@@ -53,8 +54,7 @@ function clearSelect() {
53
54
  if (props.extControlType === 'relselect') {
54
55
  selectData.value = ''
55
56
  emits('update:modelValue', '')
56
- }
57
- else {
57
+ } else {
58
58
  selectData.value = []
59
59
  emits('update:modelValue', [])
60
60
  }
@@ -68,9 +68,7 @@ function clearSelect() {
68
68
  <text v-if="selectformatData">
69
69
  {{ selectformatData }}
70
70
  </text>
71
- <text v-else class="text-gray-400">
72
- 请选择{{ title }}
73
- </text>
71
+ <text v-else class="text-gray-400">请选择{{ title }}</text>
74
72
  </view>
75
73
  <view class="h-3px w-17px" />
76
74
  </view>
@@ -82,7 +80,7 @@ function clearSelect() {
82
80
  </template>
83
81
 
84
82
  <style scoped>
85
- :deep(.wd-tag__close){
86
- line-height:0.6
83
+ :deep(.wd-tag__close) {
84
+ line-height: 0.6;
87
85
  }
88
86
  </style>
@@ -175,4 +175,17 @@ export default {
175
175
  }
176
176
  }
177
177
  }
178
+
179
+ /* 暗黑模式适配 */
180
+ :global(.wot-theme-dark) {
181
+ .wd-privacy-popup {
182
+ &__header {
183
+ color: var(--wot-dark-color2, #e0e0e0);
184
+ }
185
+
186
+ &__container {
187
+ color: var(--wot-dark-color3, #a0a0a0);
188
+ }
189
+ }
190
+ }
178
191
  </style>