widget.qw 1.0.70 → 1.0.71

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.
package/build/style.css CHANGED
@@ -387,18 +387,18 @@
387
387
  color: #969799;
388
388
  margin-right: 5px;
389
389
  }
390
- [data-v-b587c824] .label {
390
+ [data-v-16be97a4] .label {
391
391
  color: #000 !important;
392
392
  }
393
- [data-v-b587c824] .van-field__control:disabled {
393
+ [data-v-16be97a4] .van-field__control:disabled {
394
394
  color: #000 !important;
395
395
  cursor: not-allowed;
396
396
  opacity: 1;
397
397
  -webkit-text-fill-color: #000;
398
- }.widget[data-v-1b4c046a] {
398
+ }.widget[data-v-8fca1c96] {
399
399
  text-align: center;
400
400
  }
401
- .widget .btn[data-v-1b4c046a] {
401
+ .widget .btn[data-v-8fca1c96] {
402
402
  position: fixed;
403
403
  bottom: 1rem;
404
404
  left: 0;
@@ -614,43 +614,43 @@
614
614
  }
615
615
  }
616
616
  }
617
- .widget[data-v-68bdd6bc] {
617
+ .widget[data-v-5f12f3e8] {
618
618
  background-color: white;
619
619
  border-radius: 8px;
620
620
  box-shadow: var(--van-dropdown-menu-shadow);
621
621
  color: 14px;
622
622
  }
623
- .widget .card-box[data-v-68bdd6bc] {
623
+ .widget .card-box[data-v-5f12f3e8] {
624
624
  padding-bottom: 8px;
625
625
  }
626
- .widget .card-box .card-header[data-v-68bdd6bc] {
626
+ .widget .card-box .card-header[data-v-5f12f3e8] {
627
627
  display: flex;
628
628
  align-items: center;
629
629
  justify-content: space-between;
630
630
  padding: 15px 10px;
631
631
  border-bottom: 1px solid #eee;
632
632
  }
633
- .widget .card-box .card-header .card-sum[data-v-68bdd6bc] {
633
+ .widget .card-box .card-header .card-sum[data-v-5f12f3e8] {
634
634
  flex: 1;
635
635
  font-size: 14px;
636
636
  text-align: left;
637
637
  }
638
- .widget .card-box .card-header .user-state[data-v-68bdd6bc] {
638
+ .widget .card-box .card-header .user-state[data-v-5f12f3e8] {
639
639
  margin-right: 1px;
640
640
  }
641
- [data-v-68bdd6bc] .van-cell__value {
641
+ [data-v-5f12f3e8] .van-cell__value {
642
642
  flex: 2 !important;
643
643
  }
644
- [data-v-68bdd6bc] .van-cell__title {
644
+ [data-v-5f12f3e8] .van-cell__title {
645
645
  font-size: 12px !important;
646
646
  color: #666 !important;
647
647
  text-align: left !important;
648
648
  }
649
- [data-v-68bdd6bc] .van-cell__value {
649
+ [data-v-5f12f3e8] .van-cell__value {
650
650
  font-size: 12px !important;
651
651
  color: #888 !important;
652
652
  }
653
- [data-v-68bdd6bc] .van-cell {
653
+ [data-v-5f12f3e8] .van-cell {
654
654
  padding: 2px 10px !important;
655
655
  }[data-v-d8d21ade] .label {
656
656
  color: #000 !important;
@@ -840,14 +840,14 @@
840
840
  }
841
841
  .widget .readonly-field[data-v-0c8e09c0] {
842
842
  margin: 4px 0;
843
- }.widget[data-v-7359377c] {
843
+ }.widget[data-v-1fa437e7] {
844
844
  background: #fff;
845
845
  box-sizing: border-box;
846
846
  height: 100%;
847
847
  text-align: left;
848
848
  font-size: 12px;
849
849
  }
850
- .option[data-v-7359377c] {
850
+ .option[data-v-1fa437e7] {
851
851
  margin: 0 8px 8px 0;
852
852
  padding: 5px 10px;
853
853
  border-radius: 6px;
@@ -857,16 +857,16 @@
857
857
  display: inline-block;
858
858
  position: relative;
859
859
  }
860
- [data-v-7359377c] .van-field__label {
860
+ [data-v-1fa437e7] .van-field__label {
861
861
  margin: auto;
862
862
  }
863
- [data-v-7359377c] .van-cell {
863
+ [data-v-1fa437e7] .van-cell {
864
864
  font-size: 12px;
865
865
  padding: 5px 5px;
866
866
  }
867
- [data-v-7359377c] .van-icon {
867
+ [data-v-1fa437e7] .van-icon {
868
868
  font-size: 12px;
869
869
  }
870
- [data-v-7359377c] .van-popup .van-cell {
870
+ [data-v-1fa437e7] .van-popup .van-cell {
871
871
  padding: 5px 25px;
872
872
  }
@@ -17586,10 +17586,10 @@ const _hoisted_5$7 = {
17586
17586
  };
17587
17587
  const _hoisted_6$6 = /* @__PURE__ */ createTextVNode(" \u53D6\u6D88 ");
17588
17588
  const _hoisted_7$6 = /* @__PURE__ */ createTextVNode(" \u786E\u5B9A ");
17589
- const _hoisted_8$4 = {
17589
+ const _hoisted_8$5 = {
17590
17590
  class: "scroll-container"
17591
17591
  };
17592
- const _hoisted_9$2 = {
17592
+ const _hoisted_9$3 = {
17593
17593
  class: "cell-content"
17594
17594
  };
17595
17595
  const _hoisted_10$2 = ["onClick"];
@@ -17891,7 +17891,7 @@ const _sfc_main$l = {
17891
17891
  clearable: "",
17892
17892
  placeholder: "\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\u641C\u7D22",
17893
17893
  class: "search-field"
17894
- }, null, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$4, [createVNode(_component_van_cell_group, null, {
17894
+ }, null, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$5, [createVNode(_component_van_cell_group, null, {
17895
17895
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(filteredDepartments), (item, index) => {
17896
17896
  return openBlock(), createBlock(_component_van_cell, {
17897
17897
  key: index,
@@ -17900,7 +17900,7 @@ const _sfc_main$l = {
17900
17900
  }, {
17901
17901
  title: withCtx(() => {
17902
17902
  var _a, _b;
17903
- return [createElementVNode("div", _hoisted_9$2, [createElementVNode("div", {
17903
+ return [createElementVNode("div", _hoisted_9$3, [createElementVNode("div", {
17904
17904
  class: normalizeClass(["circle-selector", {
17905
17905
  "selected": ((_a = tempSelectedDepartment.value) == null ? void 0 : _a.id) === item.id
17906
17906
  }]),
@@ -17948,8 +17948,8 @@ const _hoisted_6$5 = {
17948
17948
  class: "header-right"
17949
17949
  };
17950
17950
  const _hoisted_7$5 = /* @__PURE__ */ createTextVNode("\u6E05\u7A7A");
17951
- const _hoisted_8$3 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
17952
- const _hoisted_9$1 = {
17951
+ const _hoisted_8$4 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
17952
+ const _hoisted_9$2 = {
17953
17953
  key: 0,
17954
17954
  class: "select-all-container"
17955
17955
  };
@@ -18350,9 +18350,9 @@ const _sfc_main$k = {
18350
18350
  onClick: confirmSelection,
18351
18351
  class: "confirm-btn"
18352
18352
  }, {
18353
- default: withCtx(() => [_hoisted_8$3]),
18353
+ default: withCtx(() => [_hoisted_8$4]),
18354
18354
  _: 1
18355
- })])]), __props.mode === "multiple" ? (openBlock(), createElementBlock("div", _hoisted_9$1, [createVNode(_component_van_checkbox, {
18355
+ })])]), __props.mode === "multiple" ? (openBlock(), createElementBlock("div", _hoisted_9$2, [createVNode(_component_van_checkbox, {
18356
18356
  shape: "square",
18357
18357
  modelValue: isAllChecked.value,
18358
18358
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isAllChecked.value = $event),
@@ -18456,7 +18456,7 @@ const _sfc_main$k = {
18456
18456
  }
18457
18457
  };
18458
18458
  var UserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-6c4b4fc8"]]);
18459
- var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-b587c824] .label {\n color: #000 !important;\n}\n[data-v-b587c824] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18459
+ var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-16be97a4] .label {\n color: #000 !important;\n}\n[data-v-16be97a4] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18460
18460
  const _hoisted_1$d = {
18461
18461
  class: "image-box"
18462
18462
  };
@@ -18565,9 +18565,10 @@ const _sfc_main$j = {
18565
18565
  accept: "image/jpeg,image/png",
18566
18566
  afterRead: onAfterRead,
18567
18567
  disabled: unref(isDisabled),
18568
- deletable: !unref(isDisabled),
18569
- "before-delete": onBeforeDelete
18570
- }, null, 8, ["modelValue", "capture", "disabled", "deletable"])) : (openBlock(), createBlock(_component_van_uploader, {
18568
+ deletable: !unref(isReadonly) && !unref(isDisabled),
18569
+ "before-delete": onBeforeDelete,
18570
+ "show-upload": !unref(isReadonly)
18571
+ }, null, 8, ["modelValue", "capture", "disabled", "deletable", "show-upload"])) : (openBlock(), createBlock(_component_van_uploader, {
18571
18572
  key: 1,
18572
18573
  modelValue: files.value,
18573
18574
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
@@ -18575,16 +18576,17 @@ const _sfc_main$j = {
18575
18576
  accept: "image/jpeg,image/png",
18576
18577
  afterRead: onAfterRead,
18577
18578
  disabled: unref(isDisabled),
18578
- deletable: !unref(isDisabled),
18579
- "before-delete": onBeforeDelete
18580
- }, null, 8, ["modelValue", "disabled", "deletable"]))])]),
18579
+ deletable: !unref(isReadonly) && !unref(isDisabled),
18580
+ "before-delete": onBeforeDelete,
18581
+ "show-upload": !unref(isReadonly)
18582
+ }, null, 8, ["modelValue", "disabled", "deletable", "show-upload"]))])]),
18581
18583
  _: 1
18582
18584
  }, 8, ["label", "required", "rules", "placeholder"])) : createCommentVNode("", true);
18583
18585
  };
18584
18586
  }
18585
18587
  };
18586
- var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-b587c824"]]);
18587
- var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-1b4c046a] {\n text-align: center;\n}\n.widget .btn[data-v-1b4c046a] {\n position: fixed;\n bottom: 1rem;\n left: 0;\n right: 0;\n margin: auto auto;\n color: white;\n font-size: 14px;\n background: rgb(58, 136, 255);\n padding: 8px 35px;\n width: 100px;\n text-align: center;\n display: inline-block;\n border-radius: 2px;\n}")();
18588
+ var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-16be97a4"]]);
18589
+ var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-8fca1c96] {\n text-align: center;\n}\n.widget .btn[data-v-8fca1c96] {\n position: fixed;\n bottom: 1rem;\n left: 0;\n right: 0;\n margin: auto auto;\n color: white;\n font-size: 14px;\n background: rgb(58, 136, 255);\n padding: 8px 35px;\n width: 100px;\n text-align: center;\n display: inline-block;\n border-radius: 2px;\n}")();
18588
18590
  const _hoisted_1$c = {
18589
18591
  class: "image-box"
18590
18592
  };
@@ -18706,26 +18708,28 @@ const _sfc_main$i = {
18706
18708
  capture: props.capture,
18707
18709
  accept: "image/jpeg,image/png",
18708
18710
  disabled: unref(isDisabled),
18709
- deletable: !unref(isDisabled),
18711
+ deletable: !unref(isRequired) && !unref(isDisabled),
18710
18712
  afterRead: onAfterRead,
18711
- "before-delete": onBeforeDelete
18712
- }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable"])) : (openBlock(), createBlock(_component_van_uploader, {
18713
+ "before-delete": onBeforeDelete,
18714
+ "show-upload": !unref(isReadonly)
18715
+ }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable", "show-upload"])) : (openBlock(), createBlock(_component_van_uploader, {
18713
18716
  key: 1,
18714
18717
  modelValue: files.value,
18715
18718
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
18716
18719
  "max-count": props.max,
18717
18720
  accept: "image/jpeg,image/png",
18718
18721
  disabled: unref(isDisabled),
18719
- deletable: !unref(isDisabled),
18722
+ deletable: !unref(isReadonly) && !unref(isDisabled),
18720
18723
  afterRead: onAfterRead,
18721
- "before-delete": onBeforeDelete
18722
- }, null, 8, ["modelValue", "max-count", "disabled", "deletable"]))])]),
18724
+ "before-delete": onBeforeDelete,
18725
+ "show-upload": !unref(isReadonly)
18726
+ }, null, 8, ["modelValue", "max-count", "disabled", "deletable", "show-upload"]))])]),
18723
18727
  _: 1
18724
18728
  }, 8, ["label", "required", "rules", "placeholder"]);
18725
18729
  };
18726
18730
  }
18727
18731
  };
18728
- var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-1b4c046a"]]);
18732
+ var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-8fca1c96"]]);
18729
18733
  var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-7352dfa0] .label {\n color: #000 !important;\n}\n[data-v-7352dfa0] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18730
18734
  const _hoisted_1$b = {
18731
18735
  class: "image-box"
@@ -18853,7 +18857,7 @@ const _hoisted_5$5 = {
18853
18857
  };
18854
18858
  const _hoisted_6$4 = /* @__PURE__ */ createTextVNode("\u6E05\u7A7A");
18855
18859
  const _hoisted_7$4 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
18856
- const _hoisted_8$2 = {
18860
+ const _hoisted_8$3 = {
18857
18861
  class: "scroll-container"
18858
18862
  };
18859
18863
  const _sfc_main$g = {
@@ -19155,7 +19159,7 @@ const _sfc_main$g = {
19155
19159
  onClick: handleSearch
19156
19160
  }, "\u641C\u7D22")]),
19157
19161
  _: 1
19158
- }, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$2, [createVNode(_component_van_cell_group, null, {
19162
+ }, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$3, [createVNode(_component_van_cell_group, null, {
19159
19163
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(departments), (department) => {
19160
19164
  return openBlock(), createBlock(_component_van_cell, {
19161
19165
  key: department.id,
@@ -19209,7 +19213,7 @@ const _hoisted_5$4 = {
19209
19213
  };
19210
19214
  const _hoisted_6$3 = /* @__PURE__ */ createTextVNode("\u53D6\u6D88");
19211
19215
  const _hoisted_7$3 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
19212
- const _hoisted_8$1 = {
19216
+ const _hoisted_8$2 = {
19213
19217
  class: "scroll-container"
19214
19218
  };
19215
19219
  const _sfc_main$f = {
@@ -19427,7 +19431,7 @@ const _sfc_main$f = {
19427
19431
  onClick: onSearch
19428
19432
  }, "\u641C\u7D22")]),
19429
19433
  _: 1
19430
- }, 8, ["modelValue", "onClear", "onCancel"]), createElementVNode("div", _hoisted_8$1, [createVNode(_component_van_cell_group, null, {
19434
+ }, 8, ["modelValue", "onClear", "onCancel"]), createElementVNode("div", _hoisted_8$2, [createVNode(_component_van_cell_group, null, {
19431
19435
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(subDepts), (dept) => {
19432
19436
  return openBlock(), createBlock(_component_van_cell, {
19433
19437
  key: dept.id,
@@ -19786,7 +19790,7 @@ const _sfc_main$c = {
19786
19790
  }
19787
19791
  };
19788
19792
  var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-107e26c3"]]);
19789
- var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-68bdd6bc] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-68bdd6bc] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-68bdd6bc] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-68bdd6bc] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-68bdd6bc] {\n margin-right: 1px;\n}\n[data-v-68bdd6bc] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-68bdd6bc] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-68bdd6bc] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-68bdd6bc] .van-cell {\n padding: 2px 10px !important;\n}")();
19793
+ var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-5f12f3e8] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-5f12f3e8] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-5f12f3e8] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-5f12f3e8] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-5f12f3e8] {\n margin-right: 1px;\n}\n[data-v-5f12f3e8] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-5f12f3e8] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-5f12f3e8] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-5f12f3e8] .van-cell {\n padding: 2px 10px !important;\n}")();
19790
19794
  const _hoisted_1$6 = {
19791
19795
  class: "widget"
19792
19796
  };
@@ -19910,13 +19914,13 @@ const _sfc_main$b = {
19910
19914
  border: false,
19911
19915
  key: i
19912
19916
  }, null, 8, ["title", "value"]);
19913
- }), 128))]),
19914
- _: 1
19917
+ }), 128)), renderSlot(_ctx.$slots, "foot", {}, void 0, true)]),
19918
+ _: 3
19915
19919
  })]);
19916
19920
  };
19917
19921
  }
19918
19922
  };
19919
- var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-68bdd6bc"]]);
19923
+ var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-5f12f3e8"]]);
19920
19924
  const _sfc_main$a = {
19921
19925
  __name: "YearDropdown",
19922
19926
  props: {
@@ -20449,10 +20453,10 @@ const _hoisted_5$1 = {
20449
20453
  };
20450
20454
  const _hoisted_6$1 = /* @__PURE__ */ createTextVNode("\u53D6\u6D88");
20451
20455
  const _hoisted_7$1 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
20452
- const _hoisted_8 = {
20456
+ const _hoisted_8$1 = {
20453
20457
  class: "scroll-container"
20454
20458
  };
20455
- const _hoisted_9 = {
20459
+ const _hoisted_9$1 = {
20456
20460
  class: "cell-content"
20457
20461
  };
20458
20462
  const _hoisted_10 = ["onClick"];
@@ -20667,12 +20671,12 @@ const _sfc_main$3 = {
20667
20671
  onClick: onSearch
20668
20672
  }, "\u641C\u7D22")]),
20669
20673
  _: 1
20670
- }, 8, ["modelValue", "placeholder"]), createElementVNode("div", _hoisted_8, [createVNode(_component_van_cell_group, null, {
20674
+ }, 8, ["modelValue", "placeholder"]), createElementVNode("div", _hoisted_8$1, [createVNode(_component_van_cell_group, null, {
20671
20675
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(optionNodes), (item, i) => {
20672
20676
  return openBlock(), createBlock(_component_van_cell, {
20673
20677
  key: i
20674
20678
  }, createSlots({
20675
- title: withCtx(() => [createElementVNode("div", _hoisted_9, [item.canCheck ? (openBlock(), createElementBlock("div", {
20679
+ title: withCtx(() => [createElementVNode("div", _hoisted_9$1, [item.canCheck ? (openBlock(), createElementBlock("div", {
20676
20680
  key: 0,
20677
20681
  class: "circle-selector",
20678
20682
  onClick: withModifiers(($event) => onToggle(item), ["stop"])
@@ -20980,7 +20984,7 @@ const _sfc_main$1 = {
20980
20984
  }
20981
20985
  };
20982
20986
  var SingleApiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-0c8e09c0"]]);
20983
- var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-7359377c] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-7359377c] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-7359377c] .van-field__label {\n margin: auto;\n}\n[data-v-7359377c] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-7359377c] .van-icon {\n font-size: 12px;\n}\n[data-v-7359377c] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
20987
+ var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-1fa437e7] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-1fa437e7] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-1fa437e7] .van-field__label {\n margin: auto;\n}\n[data-v-1fa437e7] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-1fa437e7] .van-icon {\n font-size: 12px;\n}\n[data-v-1fa437e7] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
20984
20988
  const _hoisted_1 = {
20985
20989
  class: "widget-box"
20986
20990
  };
@@ -20997,13 +21001,19 @@ const _hoisted_3 = {
20997
21001
  }
20998
21002
  };
20999
21003
  const _hoisted_4 = {
21004
+ key: 0
21005
+ };
21006
+ const _hoisted_5 = {
21007
+ key: 1
21008
+ };
21009
+ const _hoisted_6 = {
21000
21010
  style: {
21001
21011
  "display": "flex",
21002
21012
  "flex-direction": "column",
21003
21013
  "cursor": "pointer"
21004
21014
  }
21005
21015
  };
21006
- const _hoisted_5 = {
21016
+ const _hoisted_7 = {
21007
21017
  style: {
21008
21018
  "margin": "16px",
21009
21019
  "display": "flex",
@@ -21011,8 +21021,8 @@ const _hoisted_5 = {
21011
21021
  "justify-content": "center"
21012
21022
  }
21013
21023
  };
21014
- const _hoisted_6 = /* @__PURE__ */ createTextVNode("\u4FDD\u5B58");
21015
- const _hoisted_7 = /* @__PURE__ */ createTextVNode("\u53D6\u6D88");
21024
+ const _hoisted_8 = /* @__PURE__ */ createTextVNode("\u4FDD\u5B58");
21025
+ const _hoisted_9 = /* @__PURE__ */ createTextVNode("\u53D6\u6D88");
21016
21026
  const _sfc_main = {
21017
21027
  __name: "ObjsEditor",
21018
21028
  props: {
@@ -21107,7 +21117,9 @@ const _sfc_main = {
21107
21117
  var _a, _b, _c, _d;
21108
21118
  console.log("key2value", key, item[key], item);
21109
21119
  let v = item[key];
21110
- if (Array.isArray(v)) {
21120
+ if (props.schema[key].type === "Images") {
21121
+ return (v || []).join(",");
21122
+ } else if (Array.isArray(v)) {
21111
21123
  let formatValues = v.map((e) => {
21112
21124
  let kvs = Object.keys(e).map((k) => {
21113
21125
  var _a2, _b2, _c2, _d2;
@@ -21214,8 +21226,12 @@ const _sfc_main = {
21214
21226
  "padding": "2px 2px",
21215
21227
  "font-size": "12px"
21216
21228
  }
21217
- }, toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1);
21218
- }), 128))]), createElementVNode("div", _hoisted_4, [props.schema.auth != "readonly" && props.auth != "readonly" && props.auth != "disabled" ? (openBlock(), createBlock(_component_van_icon, {
21229
+ }, [props.schema[k].type != "Images" ? (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1)) : (openBlock(), createElementBlock("div", _hoisted_5, [createVNode(ImagesPicker, {
21230
+ modelValue: item[k],
21231
+ "onUpdate:modelValue": ($event) => item[k] = $event,
21232
+ readonly: ""
21233
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])]))]);
21234
+ }), 128))]), createElementVNode("div", _hoisted_6, [props.schema.auth != "readonly" && props.auth != "readonly" && props.auth != "disabled" ? (openBlock(), createBlock(_component_van_icon, {
21219
21235
  key: 0,
21220
21236
  name: "edit",
21221
21237
  onClick: withModifiers(($event) => onEdit(index), ["stop"])
@@ -21266,9 +21282,13 @@ const _sfc_main = {
21266
21282
  modelValue: data2.inputValue[key],
21267
21283
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21268
21284
  placeholder: "\u9009\u62E9\u65F6\u95F4"
21269
- }, null, 8, ["modelValue", "onUpdate:modelValue"])) : createCommentVNode("", true), ((_f = (_e = props.schema[key]) == null ? void 0 : _e.schema) == null ? void 0 : _f.options) ? (openBlock(), createBlock(DataSelector, {
21285
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])) : createCommentVNode("", true), props.schema[key].type == "Images" ? (openBlock(), createBlock(ImagesPicker, {
21270
21286
  key: 4,
21271
21287
  modelValue: data2.inputValue[key],
21288
+ "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event
21289
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])) : createCommentVNode("", true), ((_f = (_e = props.schema[key]) == null ? void 0 : _e.schema) == null ? void 0 : _f.options) ? (openBlock(), createBlock(DataSelector, {
21290
+ key: 5,
21291
+ modelValue: data2.inputValue[key],
21272
21292
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21273
21293
  options: (_h = (_g = props.schema[key]) == null ? void 0 : _g.schema) == null ? void 0 : _h.options,
21274
21294
  placeholder: `\u8BF7\u8F93\u5165${key2name(key)}`,
@@ -21278,7 +21298,7 @@ const _sfc_main = {
21278
21298
  },
21279
21299
  onSelect: ($event) => onChangeOption(key)
21280
21300
  }, null, 8, ["modelValue", "onUpdate:modelValue", "options", "placeholder", "columnsFieldNames", "onSelect"])) : createCommentVNode("", true), props.schema[key].type == "Array" && props.schema[key].auth != "gone" ? (openBlock(), createBlock(_component_ObjsEditor, {
21281
- key: 5,
21301
+ key: 6,
21282
21302
  modelValue: data2.inputValue[key],
21283
21303
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21284
21304
  schema: props.schema[key].schema
@@ -21286,19 +21306,19 @@ const _sfc_main = {
21286
21306
  }),
21287
21307
  _: 2
21288
21308
  }, 1032, ["label", "required", "disabled"])), [[vShow, props.schema[key].auth != "gone"]]);
21289
- }), 128)), createElementVNode("div", _hoisted_5, [data2.isShowInput ? (openBlock(), createBlock(_component_van_button, {
21309
+ }), 128)), createElementVNode("div", _hoisted_7, [data2.isShowInput ? (openBlock(), createBlock(_component_van_button, {
21290
21310
  key: 0,
21291
21311
  onClick: onInputConfirm,
21292
21312
  size: "mini"
21293
21313
  }, {
21294
- default: withCtx(() => [_hoisted_6]),
21314
+ default: withCtx(() => [_hoisted_8]),
21295
21315
  _: 1
21296
21316
  })) : createCommentVNode("", true), data2.isShowInput ? (openBlock(), createBlock(_component_van_button, {
21297
21317
  key: 1,
21298
21318
  onClick: onInputCancel,
21299
21319
  size: "mini"
21300
21320
  }, {
21301
- default: withCtx(() => [_hoisted_7]),
21321
+ default: withCtx(() => [_hoisted_9]),
21302
21322
  _: 1
21303
21323
  })) : createCommentVNode("", true)])]),
21304
21324
  _: 1
@@ -21313,7 +21333,7 @@ const _sfc_main = {
21313
21333
  };
21314
21334
  }
21315
21335
  };
21316
- var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7359377c"]]);
21336
+ var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1fa437e7"]]);
21317
21337
  const secret_notify = () => {
21318
21338
  showNotify({ type: "danger", message: "\u4E25\u683C\u6267\u884C\u4FE1\u606F\u4FDD\u5BC6\u8981\u6C42\uFF0C\u5207\u5B9E\u9632\u8303\u4F01\u4E1A\u6CC4\u5BC6\u98CE\u9669", duration: 3e3 });
21319
21339
  };
@@ -17589,10 +17589,10 @@ var __async = (__this, __arguments, generator) => {
17589
17589
  };
17590
17590
  const _hoisted_6$6 = /* @__PURE__ */ vue.createTextVNode(" \u53D6\u6D88 ");
17591
17591
  const _hoisted_7$6 = /* @__PURE__ */ vue.createTextVNode(" \u786E\u5B9A ");
17592
- const _hoisted_8$4 = {
17592
+ const _hoisted_8$5 = {
17593
17593
  class: "scroll-container"
17594
17594
  };
17595
- const _hoisted_9$2 = {
17595
+ const _hoisted_9$3 = {
17596
17596
  class: "cell-content"
17597
17597
  };
17598
17598
  const _hoisted_10$2 = ["onClick"];
@@ -17894,7 +17894,7 @@ var __async = (__this, __arguments, generator) => {
17894
17894
  clearable: "",
17895
17895
  placeholder: "\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\u641C\u7D22",
17896
17896
  class: "search-field"
17897
- }, null, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$4, [vue.createVNode(_component_van_cell_group, null, {
17897
+ }, null, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$5, [vue.createVNode(_component_van_cell_group, null, {
17898
17898
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(filteredDepartments), (item, index) => {
17899
17899
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
17900
17900
  key: index,
@@ -17903,7 +17903,7 @@ var __async = (__this, __arguments, generator) => {
17903
17903
  }, {
17904
17904
  title: vue.withCtx(() => {
17905
17905
  var _a, _b;
17906
- return [vue.createElementVNode("div", _hoisted_9$2, [vue.createElementVNode("div", {
17906
+ return [vue.createElementVNode("div", _hoisted_9$3, [vue.createElementVNode("div", {
17907
17907
  class: vue.normalizeClass(["circle-selector", {
17908
17908
  "selected": ((_a = tempSelectedDepartment.value) == null ? void 0 : _a.id) === item.id
17909
17909
  }]),
@@ -17951,8 +17951,8 @@ var __async = (__this, __arguments, generator) => {
17951
17951
  class: "header-right"
17952
17952
  };
17953
17953
  const _hoisted_7$5 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
17954
- const _hoisted_8$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
17955
- const _hoisted_9$1 = {
17954
+ const _hoisted_8$4 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
17955
+ const _hoisted_9$2 = {
17956
17956
  key: 0,
17957
17957
  class: "select-all-container"
17958
17958
  };
@@ -18353,9 +18353,9 @@ var __async = (__this, __arguments, generator) => {
18353
18353
  onClick: confirmSelection,
18354
18354
  class: "confirm-btn"
18355
18355
  }, {
18356
- default: vue.withCtx(() => [_hoisted_8$3]),
18356
+ default: vue.withCtx(() => [_hoisted_8$4]),
18357
18357
  _: 1
18358
- })])]), __props.mode === "multiple" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$1, [vue.createVNode(_component_van_checkbox, {
18358
+ })])]), __props.mode === "multiple" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$2, [vue.createVNode(_component_van_checkbox, {
18359
18359
  shape: "square",
18360
18360
  modelValue: isAllChecked.value,
18361
18361
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isAllChecked.value = $event),
@@ -18459,7 +18459,7 @@ var __async = (__this, __arguments, generator) => {
18459
18459
  }
18460
18460
  };
18461
18461
  var UserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-6c4b4fc8"]]);
18462
- var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-b587c824] .label {\n color: #000 !important;\n}\n[data-v-b587c824] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18462
+ var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-16be97a4] .label {\n color: #000 !important;\n}\n[data-v-16be97a4] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18463
18463
  const _hoisted_1$d = {
18464
18464
  class: "image-box"
18465
18465
  };
@@ -18568,9 +18568,10 @@ var __async = (__this, __arguments, generator) => {
18568
18568
  accept: "image/jpeg,image/png",
18569
18569
  afterRead: onAfterRead,
18570
18570
  disabled: vue.unref(isDisabled),
18571
- deletable: !vue.unref(isDisabled),
18572
- "before-delete": onBeforeDelete
18573
- }, null, 8, ["modelValue", "capture", "disabled", "deletable"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18571
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18572
+ "before-delete": onBeforeDelete,
18573
+ "show-upload": !vue.unref(isReadonly)
18574
+ }, null, 8, ["modelValue", "capture", "disabled", "deletable", "show-upload"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18574
18575
  key: 1,
18575
18576
  modelValue: files.value,
18576
18577
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
@@ -18578,16 +18579,17 @@ var __async = (__this, __arguments, generator) => {
18578
18579
  accept: "image/jpeg,image/png",
18579
18580
  afterRead: onAfterRead,
18580
18581
  disabled: vue.unref(isDisabled),
18581
- deletable: !vue.unref(isDisabled),
18582
- "before-delete": onBeforeDelete
18583
- }, null, 8, ["modelValue", "disabled", "deletable"]))])]),
18582
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18583
+ "before-delete": onBeforeDelete,
18584
+ "show-upload": !vue.unref(isReadonly)
18585
+ }, null, 8, ["modelValue", "disabled", "deletable", "show-upload"]))])]),
18584
18586
  _: 1
18585
18587
  }, 8, ["label", "required", "rules", "placeholder"])) : vue.createCommentVNode("", true);
18586
18588
  };
18587
18589
  }
18588
18590
  };
18589
- var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-b587c824"]]);
18590
- var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-1b4c046a] {\n text-align: center;\n}\n.widget .btn[data-v-1b4c046a] {\n position: fixed;\n bottom: 1rem;\n left: 0;\n right: 0;\n margin: auto auto;\n color: white;\n font-size: 14px;\n background: rgb(58, 136, 255);\n padding: 8px 35px;\n width: 100px;\n text-align: center;\n display: inline-block;\n border-radius: 2px;\n}")();
18591
+ var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-16be97a4"]]);
18592
+ var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-8fca1c96] {\n text-align: center;\n}\n.widget .btn[data-v-8fca1c96] {\n position: fixed;\n bottom: 1rem;\n left: 0;\n right: 0;\n margin: auto auto;\n color: white;\n font-size: 14px;\n background: rgb(58, 136, 255);\n padding: 8px 35px;\n width: 100px;\n text-align: center;\n display: inline-block;\n border-radius: 2px;\n}")();
18591
18593
  const _hoisted_1$c = {
18592
18594
  class: "image-box"
18593
18595
  };
@@ -18709,26 +18711,28 @@ var __async = (__this, __arguments, generator) => {
18709
18711
  capture: props.capture,
18710
18712
  accept: "image/jpeg,image/png",
18711
18713
  disabled: vue.unref(isDisabled),
18712
- deletable: !vue.unref(isDisabled),
18714
+ deletable: !vue.unref(isRequired) && !vue.unref(isDisabled),
18713
18715
  afterRead: onAfterRead,
18714
- "before-delete": onBeforeDelete
18715
- }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18716
+ "before-delete": onBeforeDelete,
18717
+ "show-upload": !vue.unref(isReadonly)
18718
+ }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable", "show-upload"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18716
18719
  key: 1,
18717
18720
  modelValue: files.value,
18718
18721
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
18719
18722
  "max-count": props.max,
18720
18723
  accept: "image/jpeg,image/png",
18721
18724
  disabled: vue.unref(isDisabled),
18722
- deletable: !vue.unref(isDisabled),
18725
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18723
18726
  afterRead: onAfterRead,
18724
- "before-delete": onBeforeDelete
18725
- }, null, 8, ["modelValue", "max-count", "disabled", "deletable"]))])]),
18727
+ "before-delete": onBeforeDelete,
18728
+ "show-upload": !vue.unref(isReadonly)
18729
+ }, null, 8, ["modelValue", "max-count", "disabled", "deletable", "show-upload"]))])]),
18726
18730
  _: 1
18727
18731
  }, 8, ["label", "required", "rules", "placeholder"]);
18728
18732
  };
18729
18733
  }
18730
18734
  };
18731
- var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-1b4c046a"]]);
18735
+ var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-8fca1c96"]]);
18732
18736
  var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-7352dfa0] .label {\n color: #000 !important;\n}\n[data-v-7352dfa0] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18733
18737
  const _hoisted_1$b = {
18734
18738
  class: "image-box"
@@ -18856,7 +18860,7 @@ var __async = (__this, __arguments, generator) => {
18856
18860
  };
18857
18861
  const _hoisted_6$4 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
18858
18862
  const _hoisted_7$4 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
18859
- const _hoisted_8$2 = {
18863
+ const _hoisted_8$3 = {
18860
18864
  class: "scroll-container"
18861
18865
  };
18862
18866
  const _sfc_main$g = {
@@ -19158,7 +19162,7 @@ var __async = (__this, __arguments, generator) => {
19158
19162
  onClick: handleSearch
19159
19163
  }, "\u641C\u7D22")]),
19160
19164
  _: 1
19161
- }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$2, [vue.createVNode(_component_van_cell_group, null, {
19165
+ }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$3, [vue.createVNode(_component_van_cell_group, null, {
19162
19166
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(departments), (department) => {
19163
19167
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19164
19168
  key: department.id,
@@ -19212,7 +19216,7 @@ var __async = (__this, __arguments, generator) => {
19212
19216
  };
19213
19217
  const _hoisted_6$3 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
19214
19218
  const _hoisted_7$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
19215
- const _hoisted_8$1 = {
19219
+ const _hoisted_8$2 = {
19216
19220
  class: "scroll-container"
19217
19221
  };
19218
19222
  const _sfc_main$f = {
@@ -19430,7 +19434,7 @@ var __async = (__this, __arguments, generator) => {
19430
19434
  onClick: onSearch
19431
19435
  }, "\u641C\u7D22")]),
19432
19436
  _: 1
19433
- }, 8, ["modelValue", "onClear", "onCancel"]), vue.createElementVNode("div", _hoisted_8$1, [vue.createVNode(_component_van_cell_group, null, {
19437
+ }, 8, ["modelValue", "onClear", "onCancel"]), vue.createElementVNode("div", _hoisted_8$2, [vue.createVNode(_component_van_cell_group, null, {
19434
19438
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(subDepts), (dept) => {
19435
19439
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19436
19440
  key: dept.id,
@@ -19789,7 +19793,7 @@ var __async = (__this, __arguments, generator) => {
19789
19793
  }
19790
19794
  };
19791
19795
  var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-107e26c3"]]);
19792
- var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-68bdd6bc] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-68bdd6bc] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-68bdd6bc] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-68bdd6bc] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-68bdd6bc] {\n margin-right: 1px;\n}\n[data-v-68bdd6bc] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-68bdd6bc] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-68bdd6bc] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-68bdd6bc] .van-cell {\n padding: 2px 10px !important;\n}")();
19796
+ var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-5f12f3e8] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-5f12f3e8] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-5f12f3e8] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-5f12f3e8] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-5f12f3e8] {\n margin-right: 1px;\n}\n[data-v-5f12f3e8] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-5f12f3e8] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-5f12f3e8] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-5f12f3e8] .van-cell {\n padding: 2px 10px !important;\n}")();
19793
19797
  const _hoisted_1$6 = {
19794
19798
  class: "widget"
19795
19799
  };
@@ -19913,13 +19917,13 @@ var __async = (__this, __arguments, generator) => {
19913
19917
  border: false,
19914
19918
  key: i
19915
19919
  }, null, 8, ["title", "value"]);
19916
- }), 128))]),
19917
- _: 1
19920
+ }), 128)), vue.renderSlot(_ctx.$slots, "foot", {}, void 0, true)]),
19921
+ _: 3
19918
19922
  })]);
19919
19923
  };
19920
19924
  }
19921
19925
  };
19922
- var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-68bdd6bc"]]);
19926
+ var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-5f12f3e8"]]);
19923
19927
  const _sfc_main$a = {
19924
19928
  __name: "YearDropdown",
19925
19929
  props: {
@@ -20452,10 +20456,10 @@ var __async = (__this, __arguments, generator) => {
20452
20456
  };
20453
20457
  const _hoisted_6$1 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
20454
20458
  const _hoisted_7$1 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
20455
- const _hoisted_8 = {
20459
+ const _hoisted_8$1 = {
20456
20460
  class: "scroll-container"
20457
20461
  };
20458
- const _hoisted_9 = {
20462
+ const _hoisted_9$1 = {
20459
20463
  class: "cell-content"
20460
20464
  };
20461
20465
  const _hoisted_10 = ["onClick"];
@@ -20670,12 +20674,12 @@ var __async = (__this, __arguments, generator) => {
20670
20674
  onClick: onSearch
20671
20675
  }, "\u641C\u7D22")]),
20672
20676
  _: 1
20673
- }, 8, ["modelValue", "placeholder"]), vue.createElementVNode("div", _hoisted_8, [vue.createVNode(_component_van_cell_group, null, {
20677
+ }, 8, ["modelValue", "placeholder"]), vue.createElementVNode("div", _hoisted_8$1, [vue.createVNode(_component_van_cell_group, null, {
20674
20678
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(optionNodes), (item, i) => {
20675
20679
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
20676
20680
  key: i
20677
20681
  }, vue.createSlots({
20678
- title: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_9, [item.canCheck ? (vue.openBlock(), vue.createElementBlock("div", {
20682
+ title: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_9$1, [item.canCheck ? (vue.openBlock(), vue.createElementBlock("div", {
20679
20683
  key: 0,
20680
20684
  class: "circle-selector",
20681
20685
  onClick: vue.withModifiers(($event) => onToggle(item), ["stop"])
@@ -20983,7 +20987,7 @@ var __async = (__this, __arguments, generator) => {
20983
20987
  }
20984
20988
  };
20985
20989
  var SingleApiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-0c8e09c0"]]);
20986
- var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-7359377c] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-7359377c] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-7359377c] .van-field__label {\n margin: auto;\n}\n[data-v-7359377c] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-7359377c] .van-icon {\n font-size: 12px;\n}\n[data-v-7359377c] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
20990
+ var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-1fa437e7] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-1fa437e7] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-1fa437e7] .van-field__label {\n margin: auto;\n}\n[data-v-1fa437e7] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-1fa437e7] .van-icon {\n font-size: 12px;\n}\n[data-v-1fa437e7] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
20987
20991
  const _hoisted_1 = {
20988
20992
  class: "widget-box"
20989
20993
  };
@@ -21000,13 +21004,19 @@ var __async = (__this, __arguments, generator) => {
21000
21004
  }
21001
21005
  };
21002
21006
  const _hoisted_4 = {
21007
+ key: 0
21008
+ };
21009
+ const _hoisted_5 = {
21010
+ key: 1
21011
+ };
21012
+ const _hoisted_6 = {
21003
21013
  style: {
21004
21014
  "display": "flex",
21005
21015
  "flex-direction": "column",
21006
21016
  "cursor": "pointer"
21007
21017
  }
21008
21018
  };
21009
- const _hoisted_5 = {
21019
+ const _hoisted_7 = {
21010
21020
  style: {
21011
21021
  "margin": "16px",
21012
21022
  "display": "flex",
@@ -21014,8 +21024,8 @@ var __async = (__this, __arguments, generator) => {
21014
21024
  "justify-content": "center"
21015
21025
  }
21016
21026
  };
21017
- const _hoisted_6 = /* @__PURE__ */ vue.createTextVNode("\u4FDD\u5B58");
21018
- const _hoisted_7 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
21027
+ const _hoisted_8 = /* @__PURE__ */ vue.createTextVNode("\u4FDD\u5B58");
21028
+ const _hoisted_9 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
21019
21029
  const _sfc_main = {
21020
21030
  __name: "ObjsEditor",
21021
21031
  props: {
@@ -21110,7 +21120,9 @@ var __async = (__this, __arguments, generator) => {
21110
21120
  var _a, _b, _c, _d;
21111
21121
  console.log("key2value", key, item[key], item);
21112
21122
  let v = item[key];
21113
- if (Array.isArray(v)) {
21123
+ if (props.schema[key].type === "Images") {
21124
+ return (v || []).join(",");
21125
+ } else if (Array.isArray(v)) {
21114
21126
  let formatValues = v.map((e) => {
21115
21127
  let kvs = Object.keys(e).map((k) => {
21116
21128
  var _a2, _b2, _c2, _d2;
@@ -21217,8 +21229,12 @@ var __async = (__this, __arguments, generator) => {
21217
21229
  "padding": "2px 2px",
21218
21230
  "font-size": "12px"
21219
21231
  }
21220
- }, vue.toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1);
21221
- }), 128))]), vue.createElementVNode("div", _hoisted_4, [props.schema.auth != "readonly" && props.auth != "readonly" && props.auth != "disabled" ? (vue.openBlock(), vue.createBlock(_component_van_icon, {
21232
+ }, [props.schema[k].type != "Images" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, vue.toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [vue.createVNode(ImagesPicker, {
21233
+ modelValue: item[k],
21234
+ "onUpdate:modelValue": ($event) => item[k] = $event,
21235
+ readonly: ""
21236
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])]))]);
21237
+ }), 128))]), vue.createElementVNode("div", _hoisted_6, [props.schema.auth != "readonly" && props.auth != "readonly" && props.auth != "disabled" ? (vue.openBlock(), vue.createBlock(_component_van_icon, {
21222
21238
  key: 0,
21223
21239
  name: "edit",
21224
21240
  onClick: vue.withModifiers(($event) => onEdit(index), ["stop"])
@@ -21269,9 +21285,13 @@ var __async = (__this, __arguments, generator) => {
21269
21285
  modelValue: data2.inputValue[key],
21270
21286
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21271
21287
  placeholder: "\u9009\u62E9\u65F6\u95F4"
21272
- }, null, 8, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true), ((_f = (_e = props.schema[key]) == null ? void 0 : _e.schema) == null ? void 0 : _f.options) ? (vue.openBlock(), vue.createBlock(DataSelector, {
21288
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true), props.schema[key].type == "Images" ? (vue.openBlock(), vue.createBlock(ImagesPicker, {
21273
21289
  key: 4,
21274
21290
  modelValue: data2.inputValue[key],
21291
+ "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event
21292
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true), ((_f = (_e = props.schema[key]) == null ? void 0 : _e.schema) == null ? void 0 : _f.options) ? (vue.openBlock(), vue.createBlock(DataSelector, {
21293
+ key: 5,
21294
+ modelValue: data2.inputValue[key],
21275
21295
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21276
21296
  options: (_h = (_g = props.schema[key]) == null ? void 0 : _g.schema) == null ? void 0 : _h.options,
21277
21297
  placeholder: `\u8BF7\u8F93\u5165${key2name(key)}`,
@@ -21281,7 +21301,7 @@ var __async = (__this, __arguments, generator) => {
21281
21301
  },
21282
21302
  onSelect: ($event) => onChangeOption(key)
21283
21303
  }, null, 8, ["modelValue", "onUpdate:modelValue", "options", "placeholder", "columnsFieldNames", "onSelect"])) : vue.createCommentVNode("", true), props.schema[key].type == "Array" && props.schema[key].auth != "gone" ? (vue.openBlock(), vue.createBlock(_component_ObjsEditor, {
21284
- key: 5,
21304
+ key: 6,
21285
21305
  modelValue: data2.inputValue[key],
21286
21306
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21287
21307
  schema: props.schema[key].schema
@@ -21289,19 +21309,19 @@ var __async = (__this, __arguments, generator) => {
21289
21309
  }),
21290
21310
  _: 2
21291
21311
  }, 1032, ["label", "required", "disabled"])), [[vue.vShow, props.schema[key].auth != "gone"]]);
21292
- }), 128)), vue.createElementVNode("div", _hoisted_5, [data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21312
+ }), 128)), vue.createElementVNode("div", _hoisted_7, [data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21293
21313
  key: 0,
21294
21314
  onClick: onInputConfirm,
21295
21315
  size: "mini"
21296
21316
  }, {
21297
- default: vue.withCtx(() => [_hoisted_6]),
21317
+ default: vue.withCtx(() => [_hoisted_8]),
21298
21318
  _: 1
21299
21319
  })) : vue.createCommentVNode("", true), data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21300
21320
  key: 1,
21301
21321
  onClick: onInputCancel,
21302
21322
  size: "mini"
21303
21323
  }, {
21304
- default: vue.withCtx(() => [_hoisted_7]),
21324
+ default: vue.withCtx(() => [_hoisted_9]),
21305
21325
  _: 1
21306
21326
  })) : vue.createCommentVNode("", true)])]),
21307
21327
  _: 1
@@ -21316,7 +21336,7 @@ var __async = (__this, __arguments, generator) => {
21316
21336
  };
21317
21337
  }
21318
21338
  };
21319
- var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7359377c"]]);
21339
+ var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1fa437e7"]]);
21320
21340
  const secret_notify = () => {
21321
21341
  showNotify({ type: "danger", message: "\u4E25\u683C\u6267\u884C\u4FE1\u606F\u4FDD\u5BC6\u8981\u6C42\uFF0C\u5207\u5B9E\u9632\u8303\u4F01\u4E1A\u6CC4\u5BC6\u98CE\u9669", duration: 3e3 });
21322
21342
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "widget.qw",
3
3
  "private": false,
4
- "version": "1.0.70",
4
+ "version": "1.0.71",
5
5
  "description": "marqstree Vue3组件库",
6
6
  "main": "build/widget.qw.es.js",
7
7
  "keywords": [
@@ -8,13 +8,17 @@
8
8
  </div>
9
9
  <van-tag class="user-state" size="large" :color="userState2color(props.userState)">{{
10
10
  userState2title(props.userState)
11
- }}</van-tag>
12
- <van-tag class="process-state" mark plain size="large" :color="processState2color(props.processState)">{{
13
- processState2title(props.processState)
11
+ }}</van-tag>
12
+ <van-tag class="process-state" mark plain size="large"
13
+ :color="processState2color(props.processState)">{{
14
+ processState2title(props.processState)
14
15
  }}</van-tag>
15
16
  </div>
16
17
 
17
- <van-cell :title="item.title" :value="item.value" :border="false" v-for="(item,i) in props.fields" :key="i"/>
18
+ <van-cell :title="item.title" :value="item.value" :border="false" v-for="(item, i) in props.fields"
19
+ :key="i" />
20
+
21
+ <slot name="foot"></slot>
18
22
  </van-cell-group>
19
23
  </div>
20
24
  </template>
@@ -25,29 +29,29 @@ import util from '@/util'
25
29
 
26
30
  const props = defineProps({
27
31
  // 单据类型
28
- category:{
29
- type:String,
30
- default:''
32
+ category: {
33
+ type: String,
34
+ default: ''
31
35
  },
32
36
  // 单号
33
- no:{
34
- type:String,
35
- default:''
37
+ no: {
38
+ type: String,
39
+ default: ''
36
40
  },
37
41
  // 流程状态
38
- processState:{
39
- type:String,
40
- default:''
42
+ processState: {
43
+ type: String,
44
+ default: ''
41
45
  },
42
46
  // 用户状态
43
- userState:{
44
- type:String,
45
- default:''
47
+ userState: {
48
+ type: String,
49
+ default: ''
46
50
  },
47
51
  // 摘要字段
48
- fields:{
49
- type:Array,
50
- default:[]
52
+ fields: {
53
+ type: Array,
54
+ default: []
51
55
  }
52
56
  })
53
57
  const data = reactive({
@@ -95,7 +99,7 @@ const userState2color = (state) => {
95
99
  }
96
100
  }
97
101
 
98
- const userState2title = (state)=>{
102
+ const userState2title = (state) => {
99
103
  if (state == 'unstart') {
100
104
  return '未启动'
101
105
  } else if (state == 'started') {
@@ -119,38 +123,43 @@ const userState2title = (state)=>{
119
123
 
120
124
  .card-box {
121
125
  padding-bottom: 8px;
126
+
122
127
  .card-header {
123
128
  display: flex;
124
129
  align-items: center;
125
130
  justify-content: space-between;
126
131
  padding: 15px 10px;
127
132
  border-bottom: 1px solid #eee;
128
- .card-sum{
129
- flex:1;
133
+
134
+ .card-sum {
135
+ flex: 1;
130
136
  font-size: 14px;
131
137
  text-align: left;
132
138
  }
133
- .user-state{
139
+
140
+ .user-state {
134
141
  margin-right: 1px;
135
142
  }
136
143
  }
137
144
  }
138
145
  }
139
146
 
140
- :deep(.van-cell__value){
141
- flex:2 !important;
147
+ :deep(.van-cell__value) {
148
+ flex: 2 !important;
142
149
  }
143
150
 
144
- :deep(.van-cell__title){
151
+ :deep(.van-cell__title) {
145
152
  font-size: 12px !important;
146
153
  color: #666 !important;
147
154
  text-align: left !important;
148
155
  }
149
- :deep(.van-cell__value){
156
+
157
+ :deep(.van-cell__value) {
150
158
  font-size: 12px !important;
151
159
  color: #888 !important;
152
160
  }
153
- :deep(.van-cell){
161
+
162
+ :deep(.van-cell) {
154
163
  padding: 2px 10px !important;
155
164
  }
156
165
  </style>
@@ -8,7 +8,12 @@
8
8
  <van-icon name="arrow-left" @click.stop="onForward(index)" />
9
9
  <div style="padding: 5px 5px;">
10
10
  <div v-for="(k, j) in visiableKeys" :key="j" style="padding:2px 2px;font-size: 12px;">
11
- {{ `${key2name(k)}:${key2value(k, item)}` }}
11
+ <div v-if="props.schema[k].type != 'Images'">
12
+ {{ `${key2name(k)}:${key2value(k, item)}` }}
13
+ </div>
14
+ <div v-else>
15
+ <ImagesPicker v-model="item[k]" readonly/>
16
+ </div>
12
17
  </div>
13
18
  </div>
14
19
 
@@ -45,6 +50,9 @@
45
50
  <DatetimePicker v-if="props.schema[key].type == 'Datetime'"
46
51
  v-model="data.inputValue[key]" placeholder="选择时间" />
47
52
 
53
+ <ImagesPicker v-if="props.schema[key].type == 'Images'"
54
+ v-model="data.inputValue[key]" />
55
+
48
56
  <DateSelector v-if="props.schema[key]?.schema?.options" v-model="data.inputValue[key]"
49
57
  :options="props.schema[key]?.schema?.options" :placeholder="`请输入${key2name(key)}`"
50
58
  :columnsFieldNames="{
@@ -77,6 +85,7 @@ import { useVModel } from '@vueuse/core'
77
85
  import util from '@/util'
78
86
  import DatetimePicker from './DatetimePicker/index.vue'
79
87
  import DateSelector from './data_selector.vue'
88
+ import ImagesPicker from './images_picker.vue'
80
89
 
81
90
  const props = defineProps({
82
91
  modelValue: {
@@ -176,7 +185,10 @@ const key2value = (key, item) => {
176
185
  console.log('key2value', key, item[key], item)
177
186
 
178
187
  let v = item[key]
179
- if (Array.isArray(v)) {
188
+ if (props.schema[key].type === 'Images') {
189
+ return (v || []).join(',')
190
+ }
191
+ else if (Array.isArray(v)) {
180
192
  let formatValues = v.map(e => {
181
193
  let kvs = Object.keys(e).map(k => {
182
194
  console.log(props.schema[key])
@@ -5,11 +5,11 @@
5
5
  <div class="image-box">
6
6
  <van-uploader v-if="props.capture" v-model="files" :max-count="1" :capture="props.capture"
7
7
  accept="image/jpeg,image/png" :afterRead="onAfterRead" :disabled="isDisabled"
8
- :deletable="!isDisabled" :before-delete="onBeforeDelete"
8
+ :deletable="!isReadonly && !isDisabled" :before-delete="onBeforeDelete" :show-upload="!isReadonly"
9
9
  />
10
10
  <van-uploader v-else v-model="files" :max-count="1" accept="image/jpeg,image/png"
11
- :afterRead="onAfterRead" :disabled="isDisabled" :deletable="!isDisabled"
12
- :before-delete="onBeforeDelete"
11
+ :afterRead="onAfterRead" :disabled="isDisabled" :deletable="!isReadonly && !isDisabled"
12
+ :before-delete="onBeforeDelete" :show-upload="!isReadonly"
13
13
  />
14
14
  </div>
15
15
  </template>
@@ -4,11 +4,11 @@
4
4
  <template #input>
5
5
  <div class="image-box">
6
6
  <van-uploader v-if="props.capture" v-model="files" :max-count="props.max" :capture="props.capture"
7
- accept="image/jpeg,image/png" :disabled="isDisabled" :deletable="!isDisabled"
8
- :afterRead="onAfterRead" :before-delete="onBeforeDelete" />
7
+ accept="image/jpeg,image/png" :disabled="isDisabled" :deletable="!isRequired && !isDisabled"
8
+ :afterRead="onAfterRead" :before-delete="onBeforeDelete" :show-upload="!isReadonly"/>
9
9
  <van-uploader v-else v-model="files" :max-count="props.max" accept="image/jpeg,image/png"
10
- :disabled="isDisabled" :deletable="!isDisabled" :afterRead="onAfterRead"
11
- :before-delete="onBeforeDelete" />
10
+ :disabled="isDisabled" :deletable="!isReadonly && !isDisabled" :afterRead="onAfterRead"
11
+ :before-delete="onBeforeDelete" :show-upload="!isReadonly"/>
12
12
  </div>
13
13
  </template>
14
14
  </van-field>
package/src/env.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- /// <reference types="vite/client" />
2
-
3
- declare module '*.vue' {
4
- import type { DefineComponent } from 'vue'
5
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6
- const component: DefineComponent<{}, {}, any>
7
- export default component
8
- }
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module '*.vue' {
4
+ import type { DefineComponent } from 'vue'
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6
+ const component: DefineComponent<{}, {}, any>
7
+ export default component
8
+ }
@@ -1,11 +1,14 @@
1
1
  <template>
2
2
  <div class="page">
3
- <widget-qw-bill-card
4
- :category="data.category"
5
- :no="data.no"
6
- :userState="data.loginUserState"
7
- :processState="data.processState"
8
- :fields="data.fields" />
3
+ <widget-qw-bill-card :category="data.category" :no="data.no" :userState="data.loginUserState"
4
+ :processState="data.processState" :fields="data.fields">
5
+
6
+ <template #foot>
7
+ <div style="text-align: right;">
8
+ <van-button type="warning" size="small">警告按钮</van-button>
9
+ </div>
10
+ </template>
11
+ </widget-qw-bill-card>
9
12
  </div>
10
13
  </template>
11
14
 
@@ -13,21 +16,21 @@
13
16
  import { onMounted, reactive, watch } from "vue";
14
17
 
15
18
  const data = reactive({
16
- category:'作业单',
19
+ category: '作业单',
17
20
  no: '123',
18
- loginUserState:'pass',
21
+ loginUserState: 'pass',
19
22
  processState: 'finish_pass',
20
- fields:[{
23
+ fields: [{
21
24
  title: '字段1',
22
25
  value: '一号门与二号门之间前花园1',
23
- },{
26
+ }, {
24
27
  title: '字段2',
25
28
  value: '一号门与二号门之间前花园2',
26
29
  }]
27
30
  })
28
31
 
29
- watch(()=>data.codes,(newVal,oldVal)=>{
30
- console.log(newVal,oldVal)
32
+ watch(() => data.codes, (newVal, oldVal) => {
33
+ console.log(newVal, oldVal)
31
34
  })
32
35
  </script>
33
36
 
@@ -8,8 +8,8 @@
8
8
  import { onMounted, reactive, watch } from "vue";
9
9
 
10
10
  const data = reactive({
11
- auth:'require',
12
- urls: ''
11
+ auth:'readonly',
12
+ urls: ['http://www.zjpsjdsb.online/static//HrMi9Q2J.png']
13
13
  })
14
14
 
15
15
  watch(()=>data.url,(newVal,oldVal)=>{
@@ -53,6 +53,12 @@ const data = reactive({
53
53
  default: 1,
54
54
  auth: 'required',
55
55
  },
56
+ images: {
57
+ label: '图片',
58
+ type: 'Images',
59
+ default: [],
60
+ auth: 'required',
61
+ },
56
62
  materials: {
57
63
  label: '材料表',
58
64
  type: 'Array',
package/tsconfig.json CHANGED
@@ -1,19 +1,19 @@
1
- {
2
- "compilerOptions": {
3
- "target": "esnext",
4
- "useDefineForClassFields": true,
5
- "module": "esnext",
6
- "moduleResolution": "node",
7
- "strict": true,
8
- "jsx": "preserve",
9
- "sourceMap": true,
10
- "resolveJsonModule": true,
11
- "isolatedModules": true,
12
- "esModuleInterop": true,
13
- "lib": ["esnext", "dom"],
14
- "skipLibCheck": true,
15
- "allowJs": true,
16
- },
17
- "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
18
- "references": [{ "path": "./tsconfig.node.json" }]
19
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "esnext",
4
+ "useDefineForClassFields": true,
5
+ "module": "esnext",
6
+ "moduleResolution": "node",
7
+ "strict": true,
8
+ "jsx": "preserve",
9
+ "sourceMap": true,
10
+ "resolveJsonModule": true,
11
+ "isolatedModules": true,
12
+ "esModuleInterop": true,
13
+ "lib": ["esnext", "dom"],
14
+ "skipLibCheck": true,
15
+ "allowJs": true,
16
+ },
17
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
18
+ "references": [{ "path": "./tsconfig.node.json" }]
19
+ }
@@ -1,8 +1,8 @@
1
- {
2
- "compilerOptions": {
3
- "composite": true,
4
- "module": "esnext",
5
- "moduleResolution": "node"
6
- },
7
- "include": ["vite.config.ts"]
8
- }
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "esnext",
5
+ "moduleResolution": "node"
6
+ },
7
+ "include": ["vite.config.ts"]
8
+ }