widget.qw 1.0.69 → 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.
@@ -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-0c9127e8] .label {\n color: #000 !important;\n}\n[data-v-0c9127e8] .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
  };
@@ -18536,10 +18536,6 @@ var __async = (__this, __arguments, generator) => {
18536
18536
  modelValue.value = "";
18537
18537
  return Promise.resolve(e);
18538
18538
  };
18539
- const onPreview = (e) => {
18540
- console.log("onPreview", e);
18541
- window.open(e.url, "_blank");
18542
- };
18543
18539
  vue.watch(() => props.modelValue, (newVal, oldVal) => {
18544
18540
  if (!props.modelValue) {
18545
18541
  files.value = [];
@@ -18572,10 +18568,10 @@ var __async = (__this, __arguments, generator) => {
18572
18568
  accept: "image/jpeg,image/png",
18573
18569
  afterRead: onAfterRead,
18574
18570
  disabled: vue.unref(isDisabled),
18575
- deletable: !vue.unref(isDisabled),
18571
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18576
18572
  "before-delete": onBeforeDelete,
18577
- onClickPreview: onPreview
18578
- }, null, 8, ["modelValue", "capture", "disabled", "deletable"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18573
+ "show-upload": !vue.unref(isReadonly)
18574
+ }, null, 8, ["modelValue", "capture", "disabled", "deletable", "show-upload"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18579
18575
  key: 1,
18580
18576
  modelValue: files.value,
18581
18577
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
@@ -18583,17 +18579,17 @@ var __async = (__this, __arguments, generator) => {
18583
18579
  accept: "image/jpeg,image/png",
18584
18580
  afterRead: onAfterRead,
18585
18581
  disabled: vue.unref(isDisabled),
18586
- deletable: !vue.unref(isDisabled),
18582
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18587
18583
  "before-delete": onBeforeDelete,
18588
- onClickPreview: onPreview
18589
- }, null, 8, ["modelValue", "disabled", "deletable"]))])]),
18584
+ "show-upload": !vue.unref(isReadonly)
18585
+ }, null, 8, ["modelValue", "disabled", "deletable", "show-upload"]))])]),
18590
18586
  _: 1
18591
18587
  }, 8, ["label", "required", "rules", "placeholder"])) : vue.createCommentVNode("", true);
18592
18588
  };
18593
18589
  }
18594
18590
  };
18595
- var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-0c9127e8"]]);
18596
- var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-8a570fc4] {\n text-align: center;\n}\n.widget .btn[data-v-8a570fc4] {\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}")();
18597
18593
  const _hoisted_1$c = {
18598
18594
  class: "image-box"
18599
18595
  };
@@ -18682,10 +18678,6 @@ var __async = (__this, __arguments, generator) => {
18682
18678
  emit("update:modelValue", newUrls);
18683
18679
  return Promise.resolve(e);
18684
18680
  };
18685
- const onPreview = (e) => {
18686
- console.log("onPreview", e);
18687
- window.open(e.url, "_blank");
18688
- };
18689
18681
  vue.watch(() => props.modelValue, (newVal, oldVal) => {
18690
18682
  if (!props.modelValue || props.modelValue.length < 1) {
18691
18683
  files.value = [];
@@ -18719,29 +18711,29 @@ var __async = (__this, __arguments, generator) => {
18719
18711
  capture: props.capture,
18720
18712
  accept: "image/jpeg,image/png",
18721
18713
  disabled: vue.unref(isDisabled),
18722
- deletable: !vue.unref(isDisabled),
18714
+ deletable: !vue.unref(isRequired) && !vue.unref(isDisabled),
18723
18715
  afterRead: onAfterRead,
18724
18716
  "before-delete": onBeforeDelete,
18725
- onClickPreview: onPreview
18726
- }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18717
+ "show-upload": !vue.unref(isReadonly)
18718
+ }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable", "show-upload"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18727
18719
  key: 1,
18728
18720
  modelValue: files.value,
18729
18721
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
18730
18722
  "max-count": props.max,
18731
18723
  accept: "image/jpeg,image/png",
18732
18724
  disabled: vue.unref(isDisabled),
18733
- deletable: !vue.unref(isDisabled),
18725
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18734
18726
  afterRead: onAfterRead,
18735
18727
  "before-delete": onBeforeDelete,
18736
- onClickPreview: onPreview
18737
- }, null, 8, ["modelValue", "max-count", "disabled", "deletable"]))])]),
18728
+ "show-upload": !vue.unref(isReadonly)
18729
+ }, null, 8, ["modelValue", "max-count", "disabled", "deletable", "show-upload"]))])]),
18738
18730
  _: 1
18739
18731
  }, 8, ["label", "required", "rules", "placeholder"]);
18740
18732
  };
18741
18733
  }
18742
18734
  };
18743
- var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-8a570fc4"]]);
18744
- var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-a0846250] .label {\n color: #000 !important;\n}\n[data-v-a0846250] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18735
+ var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-8fca1c96"]]);
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}")();
18745
18737
  const _hoisted_1$b = {
18746
18738
  class: "image-box"
18747
18739
  };
@@ -18810,10 +18802,6 @@ var __async = (__this, __arguments, generator) => {
18810
18802
  modelValue.value = "";
18811
18803
  return Promise.resolve(e);
18812
18804
  };
18813
- const onPreview = (e) => {
18814
- console.log("onPreview", e);
18815
- window.open(e.url, "_blank");
18816
- };
18817
18805
  vue.watch(() => props.modelValue, (newVal, oldVal) => {
18818
18806
  if (!props.modelValue) {
18819
18807
  files.value = [];
@@ -18846,15 +18834,14 @@ var __async = (__this, __arguments, generator) => {
18846
18834
  accept: props.accept,
18847
18835
  "upload-icon": "plus",
18848
18836
  deletable: !vue.unref(isDisabled),
18849
- "before-delete": onBeforeDelete,
18850
- onClickPreview: onPreview
18837
+ "before-delete": onBeforeDelete
18851
18838
  }, null, 8, ["modelValue", "disabled", "accept", "deletable"])])]),
18852
18839
  _: 1
18853
18840
  }, 8, ["label", "required", "rules", "placeholder"])) : vue.createCommentVNode("", true);
18854
18841
  };
18855
18842
  }
18856
18843
  };
18857
- var FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-a0846250"]]);
18844
+ var FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-7352dfa0"]]);
18858
18845
  var SingleUserSelector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-a489ca4c] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.department-selector[data-v-a489ca4c] {\r\n padding: 10px;\n}\n.search-buttons[data-v-a489ca4c] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-a489ca4c] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-a489ca4c] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-a489ca4c] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.picker-header[data-v-a489ca4c] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-a489ca4c] {\r\n flex: 1;\r\n font-size: 14px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-a489ca4c] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-a489ca4c] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-a489ca4c] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\r\n")();
18859
18846
  const _hoisted_1$a = {
18860
18847
  class: "department-selector"
@@ -18873,7 +18860,7 @@ var __async = (__this, __arguments, generator) => {
18873
18860
  };
18874
18861
  const _hoisted_6$4 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
18875
18862
  const _hoisted_7$4 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
18876
- const _hoisted_8$2 = {
18863
+ const _hoisted_8$3 = {
18877
18864
  class: "scroll-container"
18878
18865
  };
18879
18866
  const _sfc_main$g = {
@@ -19175,7 +19162,7 @@ var __async = (__this, __arguments, generator) => {
19175
19162
  onClick: handleSearch
19176
19163
  }, "\u641C\u7D22")]),
19177
19164
  _: 1
19178
- }, 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, {
19179
19166
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(departments), (department) => {
19180
19167
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19181
19168
  key: department.id,
@@ -19229,7 +19216,7 @@ var __async = (__this, __arguments, generator) => {
19229
19216
  };
19230
19217
  const _hoisted_6$3 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
19231
19218
  const _hoisted_7$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
19232
- const _hoisted_8$1 = {
19219
+ const _hoisted_8$2 = {
19233
19220
  class: "scroll-container"
19234
19221
  };
19235
19222
  const _sfc_main$f = {
@@ -19447,7 +19434,7 @@ var __async = (__this, __arguments, generator) => {
19447
19434
  onClick: onSearch
19448
19435
  }, "\u641C\u7D22")]),
19449
19436
  _: 1
19450
- }, 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, {
19451
19438
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(subDepts), (dept) => {
19452
19439
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19453
19440
  key: dept.id,
@@ -19806,7 +19793,7 @@ var __async = (__this, __arguments, generator) => {
19806
19793
  }
19807
19794
  };
19808
19795
  var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-107e26c3"]]);
19809
- 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}")();
19810
19797
  const _hoisted_1$6 = {
19811
19798
  class: "widget"
19812
19799
  };
@@ -19930,13 +19917,13 @@ var __async = (__this, __arguments, generator) => {
19930
19917
  border: false,
19931
19918
  key: i
19932
19919
  }, null, 8, ["title", "value"]);
19933
- }), 128))]),
19934
- _: 1
19920
+ }), 128)), vue.renderSlot(_ctx.$slots, "foot", {}, void 0, true)]),
19921
+ _: 3
19935
19922
  })]);
19936
19923
  };
19937
19924
  }
19938
19925
  };
19939
- 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"]]);
19940
19927
  const _sfc_main$a = {
19941
19928
  __name: "YearDropdown",
19942
19929
  props: {
@@ -20469,10 +20456,10 @@ var __async = (__this, __arguments, generator) => {
20469
20456
  };
20470
20457
  const _hoisted_6$1 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
20471
20458
  const _hoisted_7$1 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
20472
- const _hoisted_8 = {
20459
+ const _hoisted_8$1 = {
20473
20460
  class: "scroll-container"
20474
20461
  };
20475
- const _hoisted_9 = {
20462
+ const _hoisted_9$1 = {
20476
20463
  class: "cell-content"
20477
20464
  };
20478
20465
  const _hoisted_10 = ["onClick"];
@@ -20687,12 +20674,12 @@ var __async = (__this, __arguments, generator) => {
20687
20674
  onClick: onSearch
20688
20675
  }, "\u641C\u7D22")]),
20689
20676
  _: 1
20690
- }, 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, {
20691
20678
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(optionNodes), (item, i) => {
20692
20679
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
20693
20680
  key: i
20694
20681
  }, vue.createSlots({
20695
- 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", {
20696
20683
  key: 0,
20697
20684
  class: "circle-selector",
20698
20685
  onClick: vue.withModifiers(($event) => onToggle(item), ["stop"])
@@ -21000,7 +20987,7 @@ var __async = (__this, __arguments, generator) => {
21000
20987
  }
21001
20988
  };
21002
20989
  var SingleApiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-0c8e09c0"]]);
21003
- 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}")();
21004
20991
  const _hoisted_1 = {
21005
20992
  class: "widget-box"
21006
20993
  };
@@ -21017,13 +21004,19 @@ var __async = (__this, __arguments, generator) => {
21017
21004
  }
21018
21005
  };
21019
21006
  const _hoisted_4 = {
21007
+ key: 0
21008
+ };
21009
+ const _hoisted_5 = {
21010
+ key: 1
21011
+ };
21012
+ const _hoisted_6 = {
21020
21013
  style: {
21021
21014
  "display": "flex",
21022
21015
  "flex-direction": "column",
21023
21016
  "cursor": "pointer"
21024
21017
  }
21025
21018
  };
21026
- const _hoisted_5 = {
21019
+ const _hoisted_7 = {
21027
21020
  style: {
21028
21021
  "margin": "16px",
21029
21022
  "display": "flex",
@@ -21031,8 +21024,8 @@ var __async = (__this, __arguments, generator) => {
21031
21024
  "justify-content": "center"
21032
21025
  }
21033
21026
  };
21034
- const _hoisted_6 = /* @__PURE__ */ vue.createTextVNode("\u4FDD\u5B58");
21035
- 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");
21036
21029
  const _sfc_main = {
21037
21030
  __name: "ObjsEditor",
21038
21031
  props: {
@@ -21127,7 +21120,9 @@ var __async = (__this, __arguments, generator) => {
21127
21120
  var _a, _b, _c, _d;
21128
21121
  console.log("key2value", key, item[key], item);
21129
21122
  let v = item[key];
21130
- if (Array.isArray(v)) {
21123
+ if (props.schema[key].type === "Images") {
21124
+ return (v || []).join(",");
21125
+ } else if (Array.isArray(v)) {
21131
21126
  let formatValues = v.map((e) => {
21132
21127
  let kvs = Object.keys(e).map((k) => {
21133
21128
  var _a2, _b2, _c2, _d2;
@@ -21234,8 +21229,12 @@ var __async = (__this, __arguments, generator) => {
21234
21229
  "padding": "2px 2px",
21235
21230
  "font-size": "12px"
21236
21231
  }
21237
- }, vue.toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1);
21238
- }), 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, {
21239
21238
  key: 0,
21240
21239
  name: "edit",
21241
21240
  onClick: vue.withModifiers(($event) => onEdit(index), ["stop"])
@@ -21286,9 +21285,13 @@ var __async = (__this, __arguments, generator) => {
21286
21285
  modelValue: data2.inputValue[key],
21287
21286
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21288
21287
  placeholder: "\u9009\u62E9\u65F6\u95F4"
21289
- }, 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, {
21290
21289
  key: 4,
21291
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],
21292
21295
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21293
21296
  options: (_h = (_g = props.schema[key]) == null ? void 0 : _g.schema) == null ? void 0 : _h.options,
21294
21297
  placeholder: `\u8BF7\u8F93\u5165${key2name(key)}`,
@@ -21298,7 +21301,7 @@ var __async = (__this, __arguments, generator) => {
21298
21301
  },
21299
21302
  onSelect: ($event) => onChangeOption(key)
21300
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, {
21301
- key: 5,
21304
+ key: 6,
21302
21305
  modelValue: data2.inputValue[key],
21303
21306
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21304
21307
  schema: props.schema[key].schema
@@ -21306,19 +21309,19 @@ var __async = (__this, __arguments, generator) => {
21306
21309
  }),
21307
21310
  _: 2
21308
21311
  }, 1032, ["label", "required", "disabled"])), [[vue.vShow, props.schema[key].auth != "gone"]]);
21309
- }), 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, {
21310
21313
  key: 0,
21311
21314
  onClick: onInputConfirm,
21312
21315
  size: "mini"
21313
21316
  }, {
21314
- default: vue.withCtx(() => [_hoisted_6]),
21317
+ default: vue.withCtx(() => [_hoisted_8]),
21315
21318
  _: 1
21316
21319
  })) : vue.createCommentVNode("", true), data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21317
21320
  key: 1,
21318
21321
  onClick: onInputCancel,
21319
21322
  size: "mini"
21320
21323
  }, {
21321
- default: vue.withCtx(() => [_hoisted_7]),
21324
+ default: vue.withCtx(() => [_hoisted_9]),
21322
21325
  _: 1
21323
21326
  })) : vue.createCommentVNode("", true)])]),
21324
21327
  _: 1
@@ -21333,7 +21336,7 @@ var __async = (__this, __arguments, generator) => {
21333
21336
  };
21334
21337
  }
21335
21338
  };
21336
- var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7359377c"]]);
21339
+ var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1fa437e7"]]);
21337
21340
  const secret_notify = () => {
21338
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 });
21339
21342
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "widget.qw",
3
3
  "private": false,
4
- "version": "1.0.69",
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>
@@ -4,8 +4,7 @@
4
4
  <template #input>
5
5
  <div class="image-box">
6
6
  <van-uploader v-model="files" :max-count="1" :afterRead="onAfterRead" :disabled="isDisabled"
7
- :accept="props.accept" upload-icon="plus" :deletable="!isDisabled" :before-delete="onBeforeDelete"
8
- @click-preview="onPreview" />
7
+ :accept="props.accept" upload-icon="plus" :deletable="!isDisabled" :before-delete="onBeforeDelete" />
9
8
  </div>
10
9
  </template>
11
10
  </van-field>
@@ -78,11 +77,6 @@ const onBeforeDelete = (e) => {
78
77
  return Promise.resolve(e)
79
78
  }
80
79
 
81
- const onPreview = (e) => {
82
- console.log('onPreview', e)
83
- window.open(e.url, "_blank");
84
- }
85
-
86
80
  watch(() => props.modelValue,
87
81
  (newVal, oldVal) => {
88
82
  if (!props.modelValue) {
@@ -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,12 +5,12 @@
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"
9
- @click-preview="onPreview" />
8
+ :deletable="!isReadonly && !isDisabled" :before-delete="onBeforeDelete" :show-upload="!isReadonly"
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"
13
- @click-preview="onPreview" />
11
+ :afterRead="onAfterRead" :disabled="isDisabled" :deletable="!isReadonly && !isDisabled"
12
+ :before-delete="onBeforeDelete" :show-upload="!isReadonly"
13
+ />
14
14
  </div>
15
15
  </template>
16
16
  </van-field>
@@ -93,11 +93,6 @@ const onBeforeDelete = (e) => {
93
93
  return Promise.resolve(e)
94
94
  }
95
95
 
96
- const onPreview = (e) => {
97
- console.log('onPreview', e)
98
- window.open(e.url, "_blank");
99
- }
100
-
101
96
  watch(() => props.modelValue,
102
97
  (newVal, oldVal) => {
103
98
  if (!props.modelValue) {