kouxiangtang 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/{AttachmentUploader-CWLoKoKO.js → AttachmentUploader-BdDkTump.js} +10 -10
  2. package/dist/{AttachmentUploader-CWLoKoKO.js.map → AttachmentUploader-BdDkTump.js.map} +1 -1
  3. package/dist/{ImageUploader-BPCSl-Ij.js → ImageUploader-CHkIpPtj.js} +8 -8
  4. package/dist/{ImageUploader-BPCSl-Ij.js.map → ImageUploader-CHkIpPtj.js.map} +1 -1
  5. package/dist/{ImagesUploader-CX234qgB.js → ImagesUploader-p9a3bu1Q.js} +2 -2
  6. package/dist/{ImagesUploader-CX234qgB.js.map → ImagesUploader-p9a3bu1Q.js.map} +1 -1
  7. package/dist/{RichTextEditor-BDGc1wPT.js → RichTextEditor-DJYZD9vY.js} +2 -2
  8. package/dist/RichTextEditor-DJYZD9vY.js.map +1 -0
  9. package/dist/{color-Dy_WcVKE.js → color-DbNhHNpt.js} +81 -81
  10. package/dist/{color-Dy_WcVKE.js.map → color-DbNhHNpt.js.map} +1 -1
  11. package/dist/{config-CTx2tfCI.js → config-B1iWoDgQ.js} +3 -3
  12. package/dist/{config-CTx2tfCI.js.map → config-B1iWoDgQ.js.map} +1 -1
  13. package/dist/{config-BhyI_tQf.js → config-BDG6ljUO.js} +2 -2
  14. package/dist/{config-BhyI_tQf.js.map → config-BDG6ljUO.js.map} +1 -1
  15. package/dist/{config-Dr-5teuG.js → config-BUyzXYu7.js} +3 -3
  16. package/dist/{config-Dr-5teuG.js.map → config-BUyzXYu7.js.map} +1 -1
  17. package/dist/{config-BC-Ld-zA.js → config-BbXDjdqk.js} +18 -13
  18. package/dist/{config-BC-Ld-zA.js.map → config-BbXDjdqk.js.map} +1 -1
  19. package/dist/{config-CNyStefo.js → config-BeivkfGi.js} +16 -11
  20. package/dist/{config-CNyStefo.js.map → config-BeivkfGi.js.map} +1 -1
  21. package/dist/{config-siOyGs2I.js → config-BmOWXJKs.js} +14 -9
  22. package/dist/config-BmOWXJKs.js.map +1 -0
  23. package/dist/{config-Bmjz4vdR.js → config-C5CioVqt.js} +45 -38
  24. package/dist/config-C5CioVqt.js.map +1 -0
  25. package/dist/{config-BeHPbbQz.js → config-C7y05luV.js} +2 -2
  26. package/dist/{config-BeHPbbQz.js.map → config-C7y05luV.js.map} +1 -1
  27. package/dist/{config-RrvqfU89.js → config-ClsjosNk.js} +2 -2
  28. package/dist/{config-RrvqfU89.js.map → config-ClsjosNk.js.map} +1 -1
  29. package/dist/{config-HAzXnrOe.js → config-CsDCisYj.js} +11 -6
  30. package/dist/{config-HAzXnrOe.js.map → config-CsDCisYj.js.map} +1 -1
  31. package/dist/{config-CYk9YSf5.js → config-CzMS2zhn.js} +48 -40
  32. package/dist/config-CzMS2zhn.js.map +1 -0
  33. package/dist/{config-BHuFyLph.js → config-DTVPd1QF.js} +2 -2
  34. package/dist/{config-BHuFyLph.js.map → config-DTVPd1QF.js.map} +1 -1
  35. package/dist/{config-DTiBkJJz.js → config-DuvmS9LR.js} +3 -3
  36. package/dist/{config-DTiBkJJz.js.map → config-DuvmS9LR.js.map} +1 -1
  37. package/dist/{config-yR53DOJ7.js → config-SWYlqm92.js} +2 -2
  38. package/dist/{config-yR53DOJ7.js.map → config-SWYlqm92.js.map} +1 -1
  39. package/dist/{config-DW7Z8H75.js → config-Xu4Cnivk.js} +2 -2
  40. package/dist/{config-DW7Z8H75.js.map → config-Xu4Cnivk.js.map} +1 -1
  41. package/dist/{config-Do1AGSTp.js → config-trKFYrjO.js} +2 -2
  42. package/dist/{config-Do1AGSTp.js.map → config-trKFYrjO.js.map} +1 -1
  43. package/dist/{index-BwzGvDow.js → index-BX1xTWzJ.js} +1217 -1205
  44. package/dist/index-BX1xTWzJ.js.map +1 -0
  45. package/dist/kouxiangtang.js +10 -10
  46. package/dist/kouxiangtang.umd.cjs +8 -8
  47. package/dist/kouxiangtang.umd.cjs.map +1 -1
  48. package/dist/style.css +2 -2
  49. package/package.json +1 -1
  50. package/dist/RichTextEditor-BDGc1wPT.js.map +0 -1
  51. package/dist/config-Bmjz4vdR.js.map +0 -1
  52. package/dist/config-CYk9YSf5.js.map +0 -1
  53. package/dist/config-siOyGs2I.js.map +0 -1
  54. package/dist/index-BwzGvDow.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { _ as D, s as V, g as F, l as O, E as $, b as I, B as Q } from "./index-BwzGvDow.js";
2
- import { computed as j, ref as b, watch as g, resolveComponent as L, openBlock as r, createElementBlock as N, createBlock as p, unref as _, withCtx as R, createVNode as P, createTextVNode as S, toDisplayString as x, reactive as C, Fragment as q, renderList as U } from "vue";
1
+ import { _ as B, s as V, g as D, l as O, E as $, b as I, c as Q, B as j } from "./index-BX1xTWzJ.js";
2
+ import { computed as L, ref as b, watch as g, resolveComponent as P, openBlock as i, createElementBlock as N, createBlock as p, unref as _, withCtx as R, createVNode as S, createTextVNode as q, toDisplayString as x, reactive as C, Fragment as U, renderList as W } from "vue";
3
3
  import { ElIcon as z, ElSelect as A, ElOption as G } from "element-plus";
4
4
  import { useRoute as E } from "vue-router";
5
5
  const H = { key: 3 }, J = {
@@ -13,30 +13,30 @@ const H = { key: 3 }, J = {
13
13
  }
14
14
  },
15
15
  setup(d) {
16
- const t = E(), e = d, m = e.field.belongsTo, h = t.meta.side, l = e.row[e.field.code], i = j(() => ({
16
+ const t = E(), e = d, m = e.field.belongsTo, h = t.meta.side, l = e.row[e.field.code], n = L(() => ({
17
17
  path: `/${h}/${m}/${l}`,
18
18
  query: { ...V(t), ...e.field.rowQuery(e.row) }
19
- })), s = b(!0), u = b(!1), n = b("");
19
+ })), r = b(!0), u = b(!1), s = b("");
20
20
  let c = null;
21
- const v = F(h, m).then((o) => (c = o.formatName, Promise.resolve(o.rest)));
21
+ const v = D(h, m).then((o) => (c = o.formatName, Promise.resolve(o.rest)));
22
22
  function a(o) {
23
23
  return e.field.isRouter(e.row, V(t));
24
24
  }
25
- function T() {
25
+ function F() {
26
26
  v.then((o) => {
27
- s.value = !0;
27
+ r.value = !0;
28
28
  const f = e.row[e.field.code], y = e.row[I(`${m}-name`)];
29
29
  if (!f) {
30
- w(!1), s.value = !1;
30
+ w(!1), r.value = !1;
31
31
  return;
32
32
  }
33
33
  if (f && y) {
34
- w({ id: f, name: y }), s.value = !1;
34
+ w({ id: f, name: y }), r.value = !1;
35
35
  return;
36
36
  }
37
- const B = { id: f };
38
- o.getOne(B).then((k) => {
39
- w(k.data), s.value = !1;
37
+ const T = { id: f };
38
+ o.getOne(T).then((k) => {
39
+ w(k.data), r.value = !1;
40
40
  }).catch((k) => {
41
41
  console.log(k);
42
42
  });
@@ -44,44 +44,52 @@ const H = { key: 3 }, J = {
44
44
  }
45
45
  function w(o) {
46
46
  if (u.value = !1, e.field.showName) {
47
- n.value = o[e.field.showName];
47
+ Q(
48
+ e.field.domain,
49
+ e.field.code,
50
+ "showName 即将废弃,请使用 formatter"
51
+ ), s.value = o[e.field.showName];
52
+ return;
53
+ }
54
+ if (e.field.formatter) {
55
+ s.value = e.field.formatter(o);
48
56
  return;
49
57
  }
50
58
  if (o.id && o.name) {
51
- n.value = o.name;
59
+ s.value = o.name;
52
60
  return;
53
61
  }
54
62
  if (!o) {
55
63
  u.value = !0;
56
64
  return;
57
65
  }
58
- n.value = c(o);
66
+ s.value = c(o);
59
67
  }
60
- return g(() => e.row, T, { immediate: !0 }), (o, f) => {
61
- const y = L("RouterLink");
62
- return r(), N("span", null, [
63
- s.value ? (r(), p(_(z), {
68
+ return g(() => e.row, F, { immediate: !0 }), (o, f) => {
69
+ const y = P("RouterLink");
70
+ return i(), N("span", null, [
71
+ r.value ? (i(), p(_(z), {
64
72
  key: 0,
65
73
  class: "loading"
66
74
  }, {
67
75
  default: R(() => [
68
- P(_(O))
76
+ S(_(O))
69
77
  ]),
70
78
  _: 1
71
- })) : u.value ? (r(), p($, { key: 1 })) : a(d.row) ? (r(), p(y, {
79
+ })) : u.value ? (i(), p($, { key: 1 })) : a(d.row) ? (i(), p(y, {
72
80
  key: 2,
73
81
  class: "bld-link mono-data",
74
- to: i.value
82
+ to: n.value
75
83
  }, {
76
84
  default: R(() => [
77
- S(x(n.value), 1)
85
+ q(x(s.value), 1)
78
86
  ]),
79
87
  _: 1
80
- }, 8, ["to"])) : (r(), N("div", H, x(n.value), 1))
88
+ }, 8, ["to"])) : (i(), N("div", H, x(s.value), 1))
81
89
  ]);
82
90
  };
83
91
  }
84
- }, K = /* @__PURE__ */ D(J, [["__scopeId", "data-v-b9d815c9"]]), M = {
92
+ }, K = /* @__PURE__ */ B(J, [["__scopeId", "data-v-fb849d3e"]]), M = {
85
93
  __name: "FieldEditor",
86
94
  props: {
87
95
  modelValue: Number,
@@ -91,32 +99,32 @@ const H = { key: 3 }, J = {
91
99
  },
92
100
  emits: ["update:modelValue"],
93
101
  setup(d, { emit: t }) {
94
- const e = E(), m = V(e), h = t, l = d, i = C({ value: l.modelValue }), s = b([]);
102
+ const e = E(), m = V(e), h = t, l = d, n = C({ value: l.modelValue }), r = b([]);
95
103
  async function u(c) {
96
- s.value = await l.field.options(
104
+ r.value = await l.field.options(
97
105
  l.formData,
98
106
  m,
99
107
  c
100
108
  );
101
109
  }
102
- function n() {
103
- h("update:modelValue", i.value);
110
+ function s() {
111
+ h("update:modelValue", n.value);
104
112
  }
105
113
  return g(
106
114
  () => l.modelValue,
107
115
  () => {
108
- i.value = l.modelValue;
116
+ n.value = l.modelValue;
109
117
  },
110
118
  { immediate: !0 }
111
119
  ), g(
112
120
  () => l.modelValue,
113
121
  () => {
114
- i.value = l.modelValue;
122
+ n.value = l.modelValue;
115
123
  },
116
124
  { immediate: !0 }
117
- ), u(), (c, v) => (r(), p(_(A), {
118
- modelValue: i.value,
119
- "onUpdate:modelValue": v[0] || (v[0] = (a) => i.value = a),
125
+ ), u(), (c, v) => (i(), p(_(A), {
126
+ modelValue: n.value,
127
+ "onUpdate:modelValue": v[0] || (v[0] = (a) => n.value = a),
120
128
  style: { width: "100%" },
121
129
  filterable: "",
122
130
  "reserve-keyword": "",
@@ -128,10 +136,10 @@ const H = { key: 3 }, J = {
128
136
  placeholder: "",
129
137
  remote: "",
130
138
  "remote-method": u,
131
- onChange: n
139
+ onChange: s
132
140
  }, {
133
141
  default: R(() => [
134
- (r(!0), N(q, null, U(s.value, (a) => (r(), p(_(G), {
142
+ (i(!0), N(U, null, W(r.value, (a) => (i(), p(_(G), {
135
143
  key: a.code,
136
144
  label: a.name,
137
145
  value: a.code,
@@ -143,10 +151,10 @@ const H = { key: 3 }, J = {
143
151
  }, 8, ["modelValue", "multiple", "disabled"]));
144
152
  }
145
153
  };
146
- class ee extends Q {
154
+ class te extends j {
147
155
  constructor(t, e) {
148
156
  super(t, e), this.belongsTo = t.belongsTo, this.formChange = t.formChange || (() => {
149
- }), this.isRouter = this.isRouter(t), this.options = t.options || (() => [{ code: 0, name: "未实现" }]), this.display = K, this.editor = M, this.showName = t.showName || "", this.rowQuery = t.rowQuery || (() => ({})), this.checkValidProperties(t);
157
+ }), this.isRouter = this.isRouter(t), this.options = t.options || (() => [{ code: 0, name: "未实现" }]), this.display = K, this.editor = M, this.showName = t.showName, this.formatter = t.formatter, this.rowQuery = t.rowQuery || (() => ({})), this.checkValidProperties(t);
150
158
  }
151
159
  isRouter(t) {
152
160
  const e = t.isRouter;
@@ -160,6 +168,6 @@ class ee extends Q {
160
168
  }
161
169
  }
162
170
  export {
163
- ee as default
171
+ te as default
164
172
  };
165
- //# sourceMappingURL=config-CYk9YSf5.js.map
173
+ //# sourceMappingURL=config-CzMS2zhn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-CzMS2zhn.js","sources":["../src/framework/field/belongs-to/FieldDisplay.vue","../src/framework/field/belongs-to/FieldEditor.vue","../src/framework/field/belongs-to/config.js"],"sourcesContent":["<template>\n <span>\n <el-icon v-if=\"loading\" class=\"loading\"><Loading /></el-icon>\n <EmptyTip v-else-if=\"isEmpty\" />\n <RouterLink\n v-else-if=\"isRouter(row)\"\n class=\"bld-link mono-data\"\n :to=\"routeTo\"\n >\n {{ displayName }}\n </RouterLink>\n <div v-else>{{ displayName }}</div>\n </span>\n</template>\n\n<script setup>\nimport { ElIcon } from \"element-plus\";\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { useRoute } from \"vue-router\";\nimport { snakeToCamel } from \"../../utils/str\";\nimport { Loading } from \"@element-plus/icons-vue\";\nimport { getDomainConfig } from \"../../config-loader\";\nimport { computed, ref, watch } from \"vue\";\nimport { setupRouteQuery } from \"../../utils/route-query.js\";\nimport { domainFieldWarning } from \"../../utils/deprecator\";\n\nconst route = useRoute();\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst domain = props.field.belongsTo;\nconst side = route.meta.side;\nconst domainId = props.row[props.field.code];\n\nconst routeTo = computed(() => {\n return {\n path: `/${side}/${domain}/${domainId}`,\n query: { ...setupRouteQuery(route), ...props.field.rowQuery(props.row) },\n };\n});\nconst loading = ref(true);\nconst isEmpty = ref(false);\nconst displayName = ref(\"\");\nlet formatNameFunc = null;\nconst restPromise = getDomainConfig(side, domain).then((config) => {\n formatNameFunc = config.formatName;\n return Promise.resolve(config.rest);\n});\n\nfunction isRouter(isRouter) {\n return props.field.isRouter(props.row, setupRouteQuery(route));\n}\n\nfunction getItem() {\n restPromise.then((restApi) => {\n loading.value = true;\n\n const domainId = props.row[props.field.code];\n const domainName = props.row[snakeToCamel(`${domain}-name`)];\n\n if (!domainId) {\n setDisplayName(false);\n loading.value = false;\n return;\n }\n\n if (domainId && domainName) {\n setDisplayName({ id: domainId, name: domainName });\n loading.value = false;\n return;\n }\n\n const item = { id: domainId };\n restApi\n .getOne(item)\n .then((data) => {\n setDisplayName(data.data);\n loading.value = false;\n })\n .catch((e) => {\n console.log(e);\n });\n });\n}\n\nfunction setDisplayName(data) {\n isEmpty.value = false;\n if (props.field.showName) {\n domainFieldWarning(\n props.field.domain,\n props.field.code,\n \"showName 即将废弃,请使用 formatter\",\n );\n displayName.value = data[props.field.showName];\n return;\n }\n\n if (props.field.formatter) {\n displayName.value = props.field.formatter(data);\n return;\n }\n\n if (data.id && data.name) {\n displayName.value = data.name;\n return;\n }\n\n if (!data) {\n isEmpty.value = true;\n return;\n }\n\n displayName.value = formatNameFunc(data);\n}\n\nwatch(() => props.row, getItem, { immediate: true });\n</script>\n\n<style scoped lang=\"scss\">\n.loading {\n animation: rotating 2s linear infinite;\n}\n</style>\n","<template>\n <el-select\n v-model=\"_form.value\"\n style=\"width: 100%\"\n filterable\n reserve-keyword\n remote-show-suffix\n clearable\n fit-input-width\n :multiple=\"props.field.multiple\"\n :disabled=\"props.disabled\"\n placeholder=\"\"\n remote\n :remote-method=\"remoteSearch\"\n @change=\"change\"\n >\n <template v-for=\"option in options\" :key=\"option.code\">\n <el-option\n :label=\"option.name\"\n :value=\"option.code\"\n :title=\"option.name\"\n :disabled=\"option.disabled\"\n />\n </template>\n </el-select>\n</template>\n\n<script setup>\nimport { ElSelect, ElOption } from \"element-plus\";\nimport { reactive, watch, ref } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { setupRouteQuery } from \"../../utils/route-query\";\n\nconst route = useRoute();\nconst routeQuery = setupRouteQuery(route);\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Number,\n field: Object,\n disabled: Boolean,\n formData: Object,\n});\nconst _form = reactive({ value: props.modelValue });\nconst options = ref([]);\n\nasync function remoteSearch(keyword) {\n options.value = await props.field.options(\n props.formData,\n routeQuery,\n keyword,\n );\n}\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n\nremoteSearch();\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nclass BelongsToFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.belongsTo = rawConfig.belongsTo;\n this.formChange = rawConfig.formChange || (() => {});\n this.isRouter = this.isRouter(rawConfig);\n this.options = rawConfig.options || (() => [{ code: 0, name: \"未实现\" }]);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.showName = rawConfig.showName;\n this.formatter = rawConfig.formatter;\n this.rowQuery = rawConfig.rowQuery || (() => ({}));\n this.checkValidProperties(rawConfig);\n }\n\n isRouter(rawConfig) {\n const raw = rawConfig.isRouter;\n\n if (typeof raw == \"boolean\") {\n return () => raw;\n }\n\n if (typeof raw == \"function\") {\n return raw;\n }\n\n if (typeof raw == \"undefined\") {\n return () => true;\n }\n\n throw new Exception(`invalid isRouter : ${raw}`);\n }\n}\n\nexport default BelongsToFieldConfig;\n"],"names":["route","useRoute","props","__props","domain","side","domainId","routeTo","computed","setupRouteQuery","loading","ref","isEmpty","displayName","formatNameFunc","restPromise","getDomainConfig","config","isRouter","getItem","restApi","domainName","snakeToCamel","setDisplayName","item","data","e","domainFieldWarning","watch","routeQuery","emit","__emit","_form","reactive","options","remoteSearch","keyword","change","BelongsToFieldConfig","BaseFieldConfig","rawConfig","FieldDisplay","FieldEditor","raw"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { E as m, B as f } from "./index-BwzGvDow.js";
1
+ import { E as m, B as f } from "./index-BX1xTWzJ.js";
2
2
  import { ref as u, openBlock as s, createElementBlock as d, toDisplayString as h, createBlock as p, createTextVNode as v, reactive as _, watch as y, unref as V } from "vue";
3
3
  import { ElCascader as B } from "element-plus";
4
4
  const k = { key: 0 }, E = {
@@ -57,4 +57,4 @@ class j extends f {
57
57
  export {
58
58
  j as default
59
59
  };
60
- //# sourceMappingURL=config-BHuFyLph.js.map
60
+ //# sourceMappingURL=config-DTVPd1QF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-BHuFyLph.js","sources":["../src/framework/field/cascader/FieldDisplay.vue","../src/framework/field/cascader/FieldEditor.vue","../src/framework/field/cascader/config.js"],"sourcesContent":["<template>\n <div>\n <span v-if=\"!isEmpty\">\n {{ formattedValue }}\n </span>\n <EmptyTip v-else />\n edit\n </div>\n</template>\n\n<script setup>\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\nconst value = props.row[props.field.code];\n\nif (value === undefined || value === null) {\n isEmpty.value = true;\n} else if (`${value}`.trim() === \"\") {\n isEmpty.value = true;\n} else {\n formattedValue.value = value;\n isEmpty.value = false;\n}\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-cascader\n v-model=\"_form.value\"\n :props=\"props.field.props\"\n clearable\n style=\"width: 100%\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElCascader } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Array,\n field: Object,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nclass CascaderFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.props = rawConfig.props || (() => {});\n this.formChange = rawConfig.formChange || (() => {});\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.multiple = this.defaultBy(rawConfig.multiple, false);\n\n this.checkValidProperties(rawConfig);\n }\n}\n\nexport default CascaderFieldConfig;\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","CascaderFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAcA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK,GAC1BE,IAAQL,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,WAA2BK,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BH,EAAQ,QAAQ,MAIhBE,EAAe,QAAQC,GACvBH,EAAQ,QAAQ;;;;;;;;;;;;;;AClBlB,UAAMI,IAAOC,GACPP,IAAQC,GAKRO,IAAQC,EAAS,EAAE,OAAOT,EAAM,WAAY,CAAA;AAElD,aAASU,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAQ,EAAM,QAAQR,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;AC5BA,MAAMY,UAA4BC,EAAgB;AAAA,EAChD,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,QAAQD,EAAU,UAAU,MAAM;AAAA,IAAE,IACzC,KAAK,aAAaA,EAAU,eAAe,MAAM;AAAA,IAAE,IACnD,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,WAAW,KAAK,UAAUH,EAAU,UAAU,EAAK,GAExD,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-DTVPd1QF.js","sources":["../src/framework/field/cascader/FieldDisplay.vue","../src/framework/field/cascader/FieldEditor.vue","../src/framework/field/cascader/config.js"],"sourcesContent":["<template>\n <div>\n <span v-if=\"!isEmpty\">\n {{ formattedValue }}\n </span>\n <EmptyTip v-else />\n edit\n </div>\n</template>\n\n<script setup>\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\nconst value = props.row[props.field.code];\n\nif (value === undefined || value === null) {\n isEmpty.value = true;\n} else if (`${value}`.trim() === \"\") {\n isEmpty.value = true;\n} else {\n formattedValue.value = value;\n isEmpty.value = false;\n}\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-cascader\n v-model=\"_form.value\"\n :props=\"props.field.props\"\n clearable\n style=\"width: 100%\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElCascader } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Array,\n field: Object,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nclass CascaderFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.props = rawConfig.props || (() => {});\n this.formChange = rawConfig.formChange || (() => {});\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.multiple = this.defaultBy(rawConfig.multiple, false);\n\n this.checkValidProperties(rawConfig);\n }\n}\n\nexport default CascaderFieldConfig;\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","CascaderFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAcA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK,GAC1BE,IAAQL,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,WAA2BK,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BH,EAAQ,QAAQ,MAIhBE,EAAe,QAAQC,GACvBH,EAAQ,QAAQ;;;;;;;;;;;;;;AClBlB,UAAMI,IAAOC,GACPP,IAAQC,GAKRO,IAAQC,EAAS,EAAE,OAAOT,EAAM,WAAY,CAAA;AAElD,aAASU,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAQ,EAAM,QAAQR,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;AC5BA,MAAMY,UAA4BC,EAAgB;AAAA,EAChD,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,QAAQD,EAAU,UAAU,MAAM;AAAA,IAAE,IACzC,KAAK,aAAaA,EAAU,eAAe,MAAM;AAAA,IAAE,IACnD,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,WAAW,KAAK,UAAUH,EAAU,UAAU,EAAK,GAExD,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AACH;"}
@@ -1,7 +1,7 @@
1
- import { _ as x, E as k, s as E, B as S } from "./index-BwzGvDow.js";
1
+ import { _ as x, E as k, s as E, B as S } from "./index-BX1xTWzJ.js";
2
2
  import { ref as m, watch as b, openBlock as u, createElementBlock as f, Fragment as _, renderList as g, createBlock as p, unref as v, withCtx as V, createElementVNode as w, normalizeStyle as B, toDisplayString as $, reactive as F } from "vue";
3
3
  import { ElTooltip as O, ElSelect as C, ElOption as D } from "element-plus";
4
- import { c as j } from "./color-Dy_WcVKE.js";
4
+ import { c as j } from "./color-DbNhHNpt.js";
5
5
  import { useRoute as T } from "vue-router";
6
6
  const N = {
7
7
  key: 0,
@@ -124,4 +124,4 @@ class U extends S {
124
124
  export {
125
125
  U as default
126
126
  };
127
- //# sourceMappingURL=config-DTiBkJJz.js.map
127
+ //# sourceMappingURL=config-DuvmS9LR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-DTiBkJJz.js","sources":["../src/framework/field/select/FieldDisplay.vue","../src/framework/field/select/FieldEditor.vue","../src/framework/field/select/config.js"],"sourcesContent":["<script setup>\nimport { ElTooltip } from \"element-plus\";\nimport color from \"../../utils/color\";\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref, watch } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst invalidTip = ref(\"...\");\nconst found = ref(false);\nconst items = ref([]);\n\nasync function getSelectName() {\n const val = props.row[props.field.code];\n const label = props.field.label;\n if (val === undefined || val === null) {\n invalidTip.value = \"<无>\";\n found.value = false;\n return;\n }\n\n const options = await props.field.options();\n if (!options) {\n invalidTip.value = `<未知: ${val}>`;\n found.value = false;\n return;\n }\n\n let selectedOptions = [];\n if (props.field.multiple) {\n selectedOptions = options.filter((item) => val.includes(item.code));\n } else {\n selectedOptions = options.filter((item) => val === item.code);\n }\n\n if (selectedOptions.length === 0) {\n invalidTip.value = `<未找到: ${val}>`;\n found.value = false;\n return;\n }\n\n items.value = selectedOptions.map((item) => ({\n bgColor: color.strToHexColor(`${item.code}-${item.name}`),\n code: item.code,\n name: item.name,\n }));\n\n found.value = true;\n}\n\nwatch(() => props.row, getSelectName, { immediate: true });\n</script>\n\n<template>\n <template v-if=\"found\">\n <div class=\"select-fields\">\n <el-tooltip\n v-for=\"item in items\"\n :content=\"`${item.code}`\"\n placement=\"top\"\n >\n <span class=\"select-field found\" :style=\"`background: ${item.bgColor}`\">\n {{ item.name }}\n </span>\n </el-tooltip>\n </div>\n </template>\n <EmptyTip v-else :text=\"invalidTip\" />\n</template>\n\n<style scoped lang=\"scss\">\n.select-fields {\n display: inline-block;\n}\n\n.select-field {\n font-size: 12px;\n padding: 4px 6px;\n border-radius: 4px;\n}\n\n.found {\n color: #fff;\n}\n</style>\n","<template>\n <el-select\n v-model=\"_form.value\"\n style=\"width: 100%\"\n filterable\n reserve-keyword\n remote-show-suffix\n clearable\n fit-input-width\n :multiple=\"props.field.multiple\"\n :disabled=\"props.disabled\"\n placeholder=\"\"\n remote\n :remote-method=\"remoteSearch\"\n @change=\"change\"\n >\n <template v-for=\"option in options\" :key=\"option.code\">\n <el-option\n :label=\"option.name\"\n :value=\"option.code\"\n :title=\"option.name\"\n :disabled=\"option.disabled\"\n />\n </template>\n </el-select>\n</template>\n\n<script setup>\nimport { ElSelect, ElOption } from \"element-plus\";\nimport { reactive, watch, ref } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { setupRouteQuery } from \"../../utils/route-query\";\n\nconst route = useRoute();\nconst routeQuery = setupRouteQuery(route);\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: [String, Number, Array],\n field: Object,\n type: String,\n disabled: Boolean,\n formData: Object,\n});\nconst _form = reactive({ value: props.modelValue });\nconst options = ref([]);\n\nasync function remoteSearch(keyword) {\n options.value = await props.field.options(\n props.formData,\n routeQuery,\n keyword,\n );\n}\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\nremoteSearch();\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nclass SelectFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.options = rawConfig.options || (() => [{ code: 0, name: \"未实现\" }]);\n this.formChange = rawConfig.formChange || (() => {});\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.multiple = this.defaultBy(rawConfig.multiple, false);\n\n this.checkValidProperties(rawConfig);\n }\n}\n\nexport default SelectFieldConfig;\n"],"names":["props","__props","invalidTip","ref","found","items","getSelectName","val","options","selectedOptions","item","color","watch","route","useRoute","routeQuery","setupRouteQuery","emit","__emit","_form","reactive","remoteSearch","keyword","change","SelectFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GAQRC,IAAaC,EAAI,KAAK,GACtBC,IAAQD,EAAI,EAAK,GACjBE,IAAQF,EAAI,CAAA,CAAE;AAEpB,mBAAeG,IAAgB;AAC7B,YAAMC,IAAMP,EAAM,IAAIA,EAAM,MAAM,IAAI;AAEtC,UADcA,EAAM,MAAM,OACDO,KAAQ,MAAM;AACrC,QAAAL,EAAW,QAAQ,OACnBE,EAAM,QAAQ;AACd;AAAA,MACD;AAED,YAAMI,IAAU,MAAMR,EAAM,MAAM,QAAO;AACzC,UAAI,CAACQ,GAAS;AACZ,QAAAN,EAAW,QAAQ,QAAQK,CAAG,KAC9BH,EAAM,QAAQ;AACd;AAAA,MACD;AAED,UAAIK,IAAkB,CAAA;AAOtB,UANIT,EAAM,MAAM,WACdS,IAAkBD,EAAQ,OAAO,CAACE,MAASH,EAAI,SAASG,EAAK,IAAI,CAAC,IAElED,IAAkBD,EAAQ,OAAO,CAACE,MAASH,MAAQG,EAAK,IAAI,GAG1DD,EAAgB,WAAW,GAAG;AAChC,QAAAP,EAAW,QAAQ,SAASK,CAAG,KAC/BH,EAAM,QAAQ;AACd;AAAA,MACD;AAED,MAAAC,EAAM,QAAQI,EAAgB,IAAI,CAACC,OAAU;AAAA,QAC3C,SAASC,EAAM,cAAc,GAAGD,EAAK,IAAI,IAAIA,EAAK,IAAI,EAAE;AAAA,QACxD,MAAMA,EAAK;AAAA,QACX,MAAMA,EAAK;AAAA,MACZ,EAAC,GAEFN,EAAM,QAAQ;AAAA,IAChB;AAEA,WAAAQ,EAAM,MAAMZ,EAAM,KAAKM,GAAe,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBzD,UAAMO,IAAQC,EAAQ,GAChBC,IAAaC,EAAgBH,CAAK,GAClCI,IAAOC,GACPlB,IAAQC,GAORkB,IAAQC,EAAS,EAAE,OAAOpB,EAAM,WAAY,CAAA,GAC5CQ,IAAUL,EAAI,CAAA,CAAE;AAEtB,mBAAekB,EAAaC,GAAS;AACnC,MAAAd,EAAQ,QAAQ,MAAMR,EAAM,MAAM;AAAA,QAChCA,EAAM;AAAA,QACNe;AAAA,QACAO;AAAA,MACJ;AAAA,IACA;AAEA,aAASC,IAAS;AAChB,MAAAN,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAP;AAAA,MACE,MAAMZ,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAmB,EAAM,QAAQnB,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB,GACAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DA,MAAMG,UAA0BC,EAAgB;AAAA,EAC9C,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUD,EAAU,YAAY,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAK,CAAE,IACpE,KAAK,aAAaA,EAAU,eAAe,MAAM;AAAA,IAAE,IACnD,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,WAAW,KAAK,UAAUH,EAAU,UAAU,EAAK,GAExD,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-DuvmS9LR.js","sources":["../src/framework/field/select/FieldDisplay.vue","../src/framework/field/select/FieldEditor.vue","../src/framework/field/select/config.js"],"sourcesContent":["<script setup>\nimport { ElTooltip } from \"element-plus\";\nimport color from \"../../utils/color\";\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref, watch } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst invalidTip = ref(\"...\");\nconst found = ref(false);\nconst items = ref([]);\n\nasync function getSelectName() {\n const val = props.row[props.field.code];\n const label = props.field.label;\n if (val === undefined || val === null) {\n invalidTip.value = \"<无>\";\n found.value = false;\n return;\n }\n\n const options = await props.field.options();\n if (!options) {\n invalidTip.value = `<未知: ${val}>`;\n found.value = false;\n return;\n }\n\n let selectedOptions = [];\n if (props.field.multiple) {\n selectedOptions = options.filter((item) => val.includes(item.code));\n } else {\n selectedOptions = options.filter((item) => val === item.code);\n }\n\n if (selectedOptions.length === 0) {\n invalidTip.value = `<未找到: ${val}>`;\n found.value = false;\n return;\n }\n\n items.value = selectedOptions.map((item) => ({\n bgColor: color.strToHexColor(`${item.code}-${item.name}`),\n code: item.code,\n name: item.name,\n }));\n\n found.value = true;\n}\n\nwatch(() => props.row, getSelectName, { immediate: true });\n</script>\n\n<template>\n <template v-if=\"found\">\n <div class=\"select-fields\">\n <el-tooltip\n v-for=\"item in items\"\n :content=\"`${item.code}`\"\n placement=\"top\"\n >\n <span class=\"select-field found\" :style=\"`background: ${item.bgColor}`\">\n {{ item.name }}\n </span>\n </el-tooltip>\n </div>\n </template>\n <EmptyTip v-else :text=\"invalidTip\" />\n</template>\n\n<style scoped lang=\"scss\">\n.select-fields {\n display: inline-block;\n}\n\n.select-field {\n font-size: 12px;\n padding: 4px 6px;\n border-radius: 4px;\n}\n\n.found {\n color: #fff;\n}\n</style>\n","<template>\n <el-select\n v-model=\"_form.value\"\n style=\"width: 100%\"\n filterable\n reserve-keyword\n remote-show-suffix\n clearable\n fit-input-width\n :multiple=\"props.field.multiple\"\n :disabled=\"props.disabled\"\n placeholder=\"\"\n remote\n :remote-method=\"remoteSearch\"\n @change=\"change\"\n >\n <template v-for=\"option in options\" :key=\"option.code\">\n <el-option\n :label=\"option.name\"\n :value=\"option.code\"\n :title=\"option.name\"\n :disabled=\"option.disabled\"\n />\n </template>\n </el-select>\n</template>\n\n<script setup>\nimport { ElSelect, ElOption } from \"element-plus\";\nimport { reactive, watch, ref } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { setupRouteQuery } from \"../../utils/route-query\";\n\nconst route = useRoute();\nconst routeQuery = setupRouteQuery(route);\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: [String, Number, Array],\n field: Object,\n type: String,\n disabled: Boolean,\n formData: Object,\n});\nconst _form = reactive({ value: props.modelValue });\nconst options = ref([]);\n\nasync function remoteSearch(keyword) {\n options.value = await props.field.options(\n props.formData,\n routeQuery,\n keyword,\n );\n}\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\nremoteSearch();\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nclass SelectFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.options = rawConfig.options || (() => [{ code: 0, name: \"未实现\" }]);\n this.formChange = rawConfig.formChange || (() => {});\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.multiple = this.defaultBy(rawConfig.multiple, false);\n\n this.checkValidProperties(rawConfig);\n }\n}\n\nexport default SelectFieldConfig;\n"],"names":["props","__props","invalidTip","ref","found","items","getSelectName","val","options","selectedOptions","item","color","watch","route","useRoute","routeQuery","setupRouteQuery","emit","__emit","_form","reactive","remoteSearch","keyword","change","SelectFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GAQRC,IAAaC,EAAI,KAAK,GACtBC,IAAQD,EAAI,EAAK,GACjBE,IAAQF,EAAI,CAAA,CAAE;AAEpB,mBAAeG,IAAgB;AAC7B,YAAMC,IAAMP,EAAM,IAAIA,EAAM,MAAM,IAAI;AAEtC,UADcA,EAAM,MAAM,OACDO,KAAQ,MAAM;AACrC,QAAAL,EAAW,QAAQ,OACnBE,EAAM,QAAQ;AACd;AAAA,MACD;AAED,YAAMI,IAAU,MAAMR,EAAM,MAAM,QAAO;AACzC,UAAI,CAACQ,GAAS;AACZ,QAAAN,EAAW,QAAQ,QAAQK,CAAG,KAC9BH,EAAM,QAAQ;AACd;AAAA,MACD;AAED,UAAIK,IAAkB,CAAA;AAOtB,UANIT,EAAM,MAAM,WACdS,IAAkBD,EAAQ,OAAO,CAACE,MAASH,EAAI,SAASG,EAAK,IAAI,CAAC,IAElED,IAAkBD,EAAQ,OAAO,CAACE,MAASH,MAAQG,EAAK,IAAI,GAG1DD,EAAgB,WAAW,GAAG;AAChC,QAAAP,EAAW,QAAQ,SAASK,CAAG,KAC/BH,EAAM,QAAQ;AACd;AAAA,MACD;AAED,MAAAC,EAAM,QAAQI,EAAgB,IAAI,CAACC,OAAU;AAAA,QAC3C,SAASC,EAAM,cAAc,GAAGD,EAAK,IAAI,IAAIA,EAAK,IAAI,EAAE;AAAA,QACxD,MAAMA,EAAK;AAAA,QACX,MAAMA,EAAK;AAAA,MACZ,EAAC,GAEFN,EAAM,QAAQ;AAAA,IAChB;AAEA,WAAAQ,EAAM,MAAMZ,EAAM,KAAKM,GAAe,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBzD,UAAMO,IAAQC,EAAQ,GAChBC,IAAaC,EAAgBH,CAAK,GAClCI,IAAOC,GACPlB,IAAQC,GAORkB,IAAQC,EAAS,EAAE,OAAOpB,EAAM,WAAY,CAAA,GAC5CQ,IAAUL,EAAI,CAAA,CAAE;AAEtB,mBAAekB,EAAaC,GAAS;AACnC,MAAAd,EAAQ,QAAQ,MAAMR,EAAM,MAAM;AAAA,QAChCA,EAAM;AAAA,QACNe;AAAA,QACAO;AAAA,MACJ;AAAA,IACA;AAEA,aAASC,IAAS;AAChB,MAAAN,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAP;AAAA,MACE,MAAMZ,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAmB,EAAM,QAAQnB,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB,GACAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DA,MAAMG,UAA0BC,EAAgB;AAAA,EAC9C,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUD,EAAU,YAAY,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAK,CAAE,IACpE,KAAK,aAAaA,EAAU,eAAe,MAAM;AAAA,IAAE,IACnD,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,WAAW,KAAK,UAAUH,EAAU,UAAU,EAAK,GAExD,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AACH;"}
@@ -1,4 +1,4 @@
1
- import { E as c, B as p } from "./index-BwzGvDow.js";
1
+ import { E as c, B as p } from "./index-BX1xTWzJ.js";
2
2
  import { ref as r, openBlock as i, createElementBlock as f, toDisplayString as h, createBlock as u, reactive as v, watch as _, unref as y } from "vue";
3
3
  import { ElDatePicker as V } from "element-plus";
4
4
  const D = { key: 0 }, Y = {
@@ -56,4 +56,4 @@ class H extends p {
56
56
  export {
57
57
  H as default
58
58
  };
59
- //# sourceMappingURL=config-yR53DOJ7.js.map
59
+ //# sourceMappingURL=config-SWYlqm92.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-yR53DOJ7.js","sources":["../src/framework/field/datetime/FieldDisplay.vue","../src/framework/field/datetime/FieldEditor.vue","../src/framework/field/datetime/config.js"],"sourcesContent":["<script setup>\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\nconst value = props.row[props.field.code];\n\nif (value === undefined || value === null) {\n isEmpty.value = true;\n} else if (`${value}`.trim() === \"\") {\n isEmpty.value = true;\n} else {\n formattedValue.value = value;\n isEmpty.value = false;\n}\n</script>\n\n<template>\n <span v-if=\"!isEmpty\">\n {{ formattedValue }}\n </span>\n <EmptyTip v-else />\n</template>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-date-picker\n v-model=\"_form.value\"\n :disabled=\"props.disabled\"\n type=\"datetime\"\n format=\"YYYY-MM-DD HH:mm:ss\"\n value-format=\"YYYY-MM-DD HH:mm:ss\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElDatePicker } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: String,\n field: Object,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class DatetimeFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.width = this.computeWidth(rawConfig);\n\n this.checkValidProperties(rawConfig);\n }\n\n computeWidth(rawConfig) {\n if (rawConfig.width) {\n return rawConfig.width;\n }\n\n return 200;\n }\n}\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","DatetimeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK,GAC1BE,IAAQL,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,WAA2BK,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BH,EAAQ,QAAQ,MAIhBE,EAAe,QAAQC,GACvBH,EAAQ,QAAQ;;;;;;;;;;;ACPlB,UAAMI,IAAOC,GACPP,IAAQC,GAKRO,IAAQC,EAAS,EAAE,OAAOT,EAAM,WAAY,CAAA;AAElD,aAASU,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAQ,EAAM,QAAQR,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;AC7Be,MAAMY,UAA4BC,EAAgB;AAAA,EAC/D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GACd,KAAK,QAAQ,KAAK,aAAaH,CAAS,GAExC,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AAAA,EAED,aAAaA,GAAW;AACtB,WAAIA,EAAU,QACLA,EAAU,QAGZ;AAAA,EACR;AACH;"}
1
+ {"version":3,"file":"config-SWYlqm92.js","sources":["../src/framework/field/datetime/FieldDisplay.vue","../src/framework/field/datetime/FieldEditor.vue","../src/framework/field/datetime/config.js"],"sourcesContent":["<script setup>\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\nconst value = props.row[props.field.code];\n\nif (value === undefined || value === null) {\n isEmpty.value = true;\n} else if (`${value}`.trim() === \"\") {\n isEmpty.value = true;\n} else {\n formattedValue.value = value;\n isEmpty.value = false;\n}\n</script>\n\n<template>\n <span v-if=\"!isEmpty\">\n {{ formattedValue }}\n </span>\n <EmptyTip v-else />\n</template>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-date-picker\n v-model=\"_form.value\"\n :disabled=\"props.disabled\"\n type=\"datetime\"\n format=\"YYYY-MM-DD HH:mm:ss\"\n value-format=\"YYYY-MM-DD HH:mm:ss\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElDatePicker } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: String,\n field: Object,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class DatetimeFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.width = this.computeWidth(rawConfig);\n\n this.checkValidProperties(rawConfig);\n }\n\n computeWidth(rawConfig) {\n if (rawConfig.width) {\n return rawConfig.width;\n }\n\n return 200;\n }\n}\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","DatetimeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK,GAC1BE,IAAQL,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,WAA2BK,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BH,EAAQ,QAAQ,MAIhBE,EAAe,QAAQC,GACvBH,EAAQ,QAAQ;;;;;;;;;;;ACPlB,UAAMI,IAAOC,GACPP,IAAQC,GAKRO,IAAQC,EAAS,EAAE,OAAOT,EAAM,WAAY,CAAA;AAElD,aAASU,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAQ,EAAM,QAAQR,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;AC7Be,MAAMY,UAA4BC,EAAgB;AAAA,EAC/D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GACd,KAAK,QAAQ,KAAK,aAAaH,CAAS,GAExC,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AAAA,EAED,aAAaA,GAAW;AACtB,WAAIA,EAAU,QACLA,EAAU,QAGZ;AAAA,EACR;AACH;"}
@@ -1,4 +1,4 @@
1
- import { E as p, B as m } from "./index-BwzGvDow.js";
1
+ import { E as p, B as m } from "./index-BX1xTWzJ.js";
2
2
  import { ref as u, openBlock as i, createElementBlock as f, toDisplayString as y, createBlock as n, reactive as v, watch as _, unref as V } from "vue";
3
3
  import { ElInput as b } from "element-plus";
4
4
  const h = { key: 0 }, E = {
@@ -53,4 +53,4 @@ class O extends m {
53
53
  export {
54
54
  O as default
55
55
  };
56
- //# sourceMappingURL=config-DW7Z8H75.js.map
56
+ //# sourceMappingURL=config-Xu4Cnivk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-DW7Z8H75.js","sources":["../src/framework/field/string/FieldDisplay.vue","../src/framework/field/string/FieldEditor.vue","../src/framework/field/string/config.js"],"sourcesContent":["<template>\n <span v-if=\"!isEmpty\"> {{ formattedValue }} </span>\n <EmptyTip v-else />\n</template>\n\n<script setup>\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\nconst value = props.row[props.field.code];\n\nif (value === undefined || value === null) {\n isEmpty.value = true;\n} else if (`${value}`.trim() === \"\") {\n isEmpty.value = true;\n} else {\n formattedValue.value = value;\n isEmpty.value = false;\n}\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-input\n v-model=\"_form.value\"\n :type=\"props.type\"\n clearable\n :disabled=\"props.disabled\"\n @input=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElInput } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: [Object, String, Number],\n field: Object,\n type: String,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class StringFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","StringFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK,GAC1BE,IAAQL,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,WAA2BK,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BH,EAAQ,QAAQ,MAIhBE,EAAe,QAAQC,GACvBH,EAAQ,QAAQ;;;;;;;;;;;;ACblB,UAAMI,IAAOC,GACPP,IAAQC,GAMRO,IAAQC,EAAS,EAAE,OAAOT,EAAM,WAAY,CAAA;AAElD,aAASU,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAQ,EAAM,QAAQR,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;AC7Be,MAAMY,UAA0BC,EAAgB;AAAA,EAC7D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-Xu4Cnivk.js","sources":["../src/framework/field/string/FieldDisplay.vue","../src/framework/field/string/FieldEditor.vue","../src/framework/field/string/config.js"],"sourcesContent":["<template>\n <span v-if=\"!isEmpty\"> {{ formattedValue }} </span>\n <EmptyTip v-else />\n</template>\n\n<script setup>\nimport EmptyTip from \"../../component/EmptyTip.vue\";\nimport { ref } from \"vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\nconst isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\nconst value = props.row[props.field.code];\n\nif (value === undefined || value === null) {\n isEmpty.value = true;\n} else if (`${value}`.trim() === \"\") {\n isEmpty.value = true;\n} else {\n formattedValue.value = value;\n isEmpty.value = false;\n}\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-input\n v-model=\"_form.value\"\n :type=\"props.type\"\n clearable\n :disabled=\"props.disabled\"\n @input=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElInput } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: [Object, String, Number],\n field: Object,\n type: String,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class StringFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","StringFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK,GAC1BE,IAAQL,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,WAA2BK,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BH,EAAQ,QAAQ,MAIhBE,EAAe,QAAQC,GACvBH,EAAQ,QAAQ;;;;;;;;;;;;ACblB,UAAMI,IAAOC,GACPP,IAAQC,GAMRO,IAAQC,EAAS,EAAE,OAAOT,EAAM,WAAY,CAAA;AAElD,aAASU,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAQ,EAAM,QAAQR,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;AC7Be,MAAMY,UAA0BC,EAAgB;AAAA,EAC7D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AACH;"}
@@ -1,4 +1,4 @@
1
- import { c as f, e as _, q as h, B as V } from "./index-BwzGvDow.js";
1
+ import { e as f, f as _, q as h, B as V } from "./index-BX1xTWzJ.js";
2
2
  import { computed as y, openBlock as s, createElementBlock as v, createBlock as i, unref as l, withCtx as c, createVNode as u, reactive as b, watch as B } from "vue";
3
3
  import { ElIcon as r, ElSwitch as k } from "element-plus";
4
4
  import "./el-switch-l0sNRNKZ.js";
@@ -80,4 +80,4 @@ class D extends V {
80
80
  export {
81
81
  D as default
82
82
  };
83
- //# sourceMappingURL=config-Do1AGSTp.js.map
83
+ //# sourceMappingURL=config-trKFYrjO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-Do1AGSTp.js","sources":["../src/framework/field/boolean/FieldDisplay.vue","../src/framework/field/boolean/FieldEditor.vue","../src/framework/field/boolean/config.js"],"sourcesContent":["<template>\n <span style=\"display: flex; align-items: center\">\n <el-icon v-if=\"value == true\" color=\"#529b2e\" :size=\"20\">\n <SuccessFilled />\n </el-icon>\n <el-icon v-else-if=\"value == false\" color=\"#F56C6C\" :size=\"20\">\n <CircleCloseFilled />\n </el-icon>\n <el-icon v-else color=\"#73767a\" :size=\"20\">\n <QuestionFilled />\n </el-icon>\n </span>\n</template>\n\n<script setup>\nimport { ElIcon } from \"element-plus\";\nimport { computed } from \"vue\";\nimport {\n SuccessFilled,\n CircleCloseFilled,\n QuestionFilled,\n} from \"@element-plus/icons-vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\n\nconst value = computed(() => {\n return props.row[props.field.code];\n});\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-switch\n v-model=\"_form.value\"\n :disabled=\"props.disabled\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElSwitch } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Boolean,\n field: Object,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class BooleanFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.default = rawConfig.default || false;\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["props","__props","value","computed","emit","__emit","_form","reactive","change","watch","BooleanFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;;AAuBA,UAAMA,IAAQC,GASRC,IAAQC,EAAS,MACdH,EAAM,IAAIA,EAAM,MAAM,IAAI,CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBD,UAAMI,IAAOC,GACPL,IAAQC,GAKRK,IAAQC,EAAS,EAAE,OAAOP,EAAM,WAAY,CAAA;AAElD,aAASQ,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMT,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAM,EAAM,QAAQN,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;AC1Be,MAAMU,UAA2BC,EAAgB;AAAA,EAC9D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUD,EAAU,WAAW,IACpC,KAAK,UAAUE,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-trKFYrjO.js","sources":["../src/framework/field/boolean/FieldDisplay.vue","../src/framework/field/boolean/FieldEditor.vue","../src/framework/field/boolean/config.js"],"sourcesContent":["<template>\n <span style=\"display: flex; align-items: center\">\n <el-icon v-if=\"value == true\" color=\"#529b2e\" :size=\"20\">\n <SuccessFilled />\n </el-icon>\n <el-icon v-else-if=\"value == false\" color=\"#F56C6C\" :size=\"20\">\n <CircleCloseFilled />\n </el-icon>\n <el-icon v-else color=\"#73767a\" :size=\"20\">\n <QuestionFilled />\n </el-icon>\n </span>\n</template>\n\n<script setup>\nimport { ElIcon } from \"element-plus\";\nimport { computed } from \"vue\";\nimport {\n SuccessFilled,\n CircleCloseFilled,\n QuestionFilled,\n} from \"@element-plus/icons-vue\";\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\n\nconst value = computed(() => {\n return props.row[props.field.code];\n});\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <el-switch\n v-model=\"_form.value\"\n :disabled=\"props.disabled\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElSwitch } from \"element-plus\";\nimport { reactive, watch } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Boolean,\n field: Object,\n disabled: Boolean,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction change() {\n emit(\"update:modelValue\", _form.value);\n}\n\nwatch(\n () => props.modelValue,\n () => {\n _form.value = props.modelValue;\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\"></style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class BooleanFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.default = rawConfig.default || false;\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["props","__props","value","computed","emit","__emit","_form","reactive","change","watch","BooleanFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;;AAuBA,UAAMA,IAAQC,GASRC,IAAQC,EAAS,MACdH,EAAM,IAAIA,EAAM,MAAM,IAAI,CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBD,UAAMI,IAAOC,GACPL,IAAQC,GAKRK,IAAQC,EAAS,EAAE,OAAOP,EAAM,WAAY,CAAA;AAElD,aAASQ,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAG;AAAA,MACE,MAAMT,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAM,EAAM,QAAQN,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;AC1Be,MAAMU,UAA2BC,EAAgB;AAAA,EAC9D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUD,EAAU,WAAW,IACpC,KAAK,UAAUE,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AACH;"}