kouxiangtang 0.0.63 → 0.0.64

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 (52) hide show
  1. package/dist/{AttachmentUploader-HtGhQmut.js → AttachmentUploader-kzQruMSH.js} +2 -2
  2. package/dist/{AttachmentUploader-HtGhQmut.js.map → AttachmentUploader-kzQruMSH.js.map} +1 -1
  3. package/dist/{ImageUploader-T6rcKq2x.js → ImageUploader-BMiNdspq.js} +2 -2
  4. package/dist/{ImageUploader-T6rcKq2x.js.map → ImageUploader-BMiNdspq.js.map} +1 -1
  5. package/dist/{ImagesUploader-ClEWvBsv.js → ImagesUploader-CUBE8SvO.js} +2 -2
  6. package/dist/{ImagesUploader-ClEWvBsv.js.map → ImagesUploader-CUBE8SvO.js.map} +1 -1
  7. package/dist/{RichTextEditor-DLrZyyY3.js → RichTextEditor-DIPn4ENW.js} +2 -2
  8. package/dist/{RichTextEditor-DLrZyyY3.js.map → RichTextEditor-DIPn4ENW.js.map} +1 -1
  9. package/dist/{config-CfOzChZ2.js → config-B1i45G9L.js} +2 -2
  10. package/dist/{config-CfOzChZ2.js.map → config-B1i45G9L.js.map} +1 -1
  11. package/dist/{config-CMa6I3wn.js → config-BNHP4fvX.js} +2 -2
  12. package/dist/{config-CMa6I3wn.js.map → config-BNHP4fvX.js.map} +1 -1
  13. package/dist/{config-cbNeD124.js → config-BUkSf0r3.js} +3 -3
  14. package/dist/{config-cbNeD124.js.map → config-BUkSf0r3.js.map} +1 -1
  15. package/dist/{config-CnkxfvjK.js → config-BXmlmBsT.js} +2 -2
  16. package/dist/{config-CnkxfvjK.js.map → config-BXmlmBsT.js.map} +1 -1
  17. package/dist/{config-CRr4FIHY.js → config-B_lEXZzv.js} +2 -2
  18. package/dist/{config-CRr4FIHY.js.map → config-B_lEXZzv.js.map} +1 -1
  19. package/dist/{config-v_AKmpy6.js → config-CG-LT1Xy.js} +2 -2
  20. package/dist/{config-v_AKmpy6.js.map → config-CG-LT1Xy.js.map} +1 -1
  21. package/dist/{config-iPFV9Zp_.js → config-CH79v_zM.js} +2 -2
  22. package/dist/{config-iPFV9Zp_.js.map → config-CH79v_zM.js.map} +1 -1
  23. package/dist/{config-DWW_n1Oe.js → config-CKv2Uxxb.js} +3 -3
  24. package/dist/{config-DWW_n1Oe.js.map → config-CKv2Uxxb.js.map} +1 -1
  25. package/dist/{config-DsorZkPf.js → config-CVpGRPmD.js} +2 -2
  26. package/dist/{config-DsorZkPf.js.map → config-CVpGRPmD.js.map} +1 -1
  27. package/dist/{config-CSCVN9KL.js → config-Cj7oX7IK.js} +2 -2
  28. package/dist/{config-CSCVN9KL.js.map → config-Cj7oX7IK.js.map} +1 -1
  29. package/dist/{config-CoisimRu.js → config-D2ko1gRC.js} +2 -2
  30. package/dist/{config-CoisimRu.js.map → config-D2ko1gRC.js.map} +1 -1
  31. package/dist/{config-wDO1FUrn.js → config-DA57mqKB.js} +2 -2
  32. package/dist/{config-wDO1FUrn.js.map → config-DA57mqKB.js.map} +1 -1
  33. package/dist/{config-Ct757L6U.js → config-DW9z-fXJ.js} +2 -2
  34. package/dist/{config-Ct757L6U.js.map → config-DW9z-fXJ.js.map} +1 -1
  35. package/dist/{config-DQXHeiEO.js → config-DcpGtjWd.js} +3 -3
  36. package/dist/{config-DQXHeiEO.js.map → config-DcpGtjWd.js.map} +1 -1
  37. package/dist/{config-DwHXizCB.js → config-Dl_l1K9j.js} +2 -2
  38. package/dist/{config-DwHXizCB.js.map → config-Dl_l1K9j.js.map} +1 -1
  39. package/dist/{config-DDbPr2ku.js → config-DnNhGxWV.js} +2 -2
  40. package/dist/{config-DDbPr2ku.js.map → config-DnNhGxWV.js.map} +1 -1
  41. package/dist/{config-4k3W5kgY.js → config-DxzDYHTM.js} +2 -2
  42. package/dist/{config-4k3W5kgY.js.map → config-DxzDYHTM.js.map} +1 -1
  43. package/dist/{config-Cin4DGBy.js → config-NZqMpFYi.js} +2 -2
  44. package/dist/{config-Cin4DGBy.js.map → config-NZqMpFYi.js.map} +1 -1
  45. package/dist/{index-HxSkRe2a.js → index-D5disLyf.js} +740 -732
  46. package/dist/index-D5disLyf.js.map +1 -0
  47. package/dist/kouxiangtang.js +1 -1
  48. package/dist/kouxiangtang.umd.cjs +8 -8
  49. package/dist/kouxiangtang.umd.cjs.map +1 -1
  50. package/dist/style.css +1 -1
  51. package/package.json +1 -1
  52. package/dist/index-HxSkRe2a.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { _ as B, s as b, g as D, l as O, E as $, b as I, c as Q, B as j } from "./index-HxSkRe2a.js";
1
+ import { _ as B, s as b, g as D, l as O, E as $, b as I, c as Q, B as j } from "./index-D5disLyf.js";
2
2
  import { computed as L, ref as _, watch as g, resolveComponent as P, openBlock as s, createElementBlock as N, createBlock as p, unref as w, 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";
@@ -170,4 +170,4 @@ class te extends j {
170
170
  export {
171
171
  te as default
172
172
  };
173
- //# sourceMappingURL=config-DDbPr2ku.js.map
173
+ //# sourceMappingURL=config-DnNhGxWV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-DDbPr2ku.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 (\n props.field.isRouter(props.row, setupRouteQuery(route)) &&\n !setupRouteQuery(route)[props.field.code]\n );\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
+ {"version":3,"file":"config-DnNhGxWV.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 (\n props.field.isRouter(props.row, setupRouteQuery(route)) &&\n !setupRouteQuery(route)[props.field.code]\n );\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 p, B as f } from "./index-HxSkRe2a.js";
1
+ import { E as p, B as f } from "./index-D5disLyf.js";
2
2
  import { ref as d, watch as u, openBlock as r, createElementBlock as h, toDisplayString as v, createBlock as m, reactive as _, unref as y } from "vue";
3
3
  import { ElTimePicker as V } from "element-plus";
4
4
  const b = { key: 0 }, k = {
@@ -59,4 +59,4 @@ class T extends f {
59
59
  export {
60
60
  T as default
61
61
  };
62
- //# sourceMappingURL=config-4k3W5kgY.js.map
62
+ //# sourceMappingURL=config-DxzDYHTM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-4k3W5kgY.js","sources":["../src/framework/field/time/FieldDisplay.vue","../src/framework/field/time/FieldEditor.vue","../src/framework/field/time/config.js"],"sourcesContent":["<script setup>\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 isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\n\nasync function getTime() {\n const value = props.row[props.field.code];\n\n if (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}\n\nwatch(() => props.row, getTime, { immediate: true });\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-time-picker\n v-model=\"_form.value\"\n :disabled=\"props.disabled\"\n :format=\"props.field.format\"\n :value-format=\"props.field.format\"\n @change=\"change\"\n >\n </el-time-picker>\n</template>\n\n<script setup>\nimport { ElTimePicker } 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 TimeFieldConfig 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","getTime","value","watch","emit","__emit","_form","reactive","change","TimeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK;AAEhC,mBAAeE,IAAU;AACvB,YAAMC,IAAQN,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,MAA2BM,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BJ,EAAQ,QAAQ,MAIhBE,EAAe,QAAQE,GACvBJ,EAAQ,QAAQ;AAAA,IAEpB;AAEA,WAAAK,EAAM,MAAMP,EAAM,KAAKK,GAAS,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;ACbnD,UAAMG,IAAOC,GACPT,IAAQC,GAKRS,IAAQC,EAAS,EAAE,OAAOX,EAAM,WAAY,CAAA;AAElD,aAASY,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAH;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAU,EAAM,QAAQV,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;AC7Be,MAAMa,UAAwBC,EAAgB;AAAA,EAC3D,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-DxzDYHTM.js","sources":["../src/framework/field/time/FieldDisplay.vue","../src/framework/field/time/FieldEditor.vue","../src/framework/field/time/config.js"],"sourcesContent":["<script setup>\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 isEmpty = ref(false);\nconst formattedValue = ref(\"...\");\n\nasync function getTime() {\n const value = props.row[props.field.code];\n\n if (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}\n\nwatch(() => props.row, getTime, { immediate: true });\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-time-picker\n v-model=\"_form.value\"\n :disabled=\"props.disabled\"\n :format=\"props.field.format\"\n :value-format=\"props.field.format\"\n @change=\"change\"\n >\n </el-time-picker>\n</template>\n\n<script setup>\nimport { ElTimePicker } 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 TimeFieldConfig 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","getTime","value","watch","emit","__emit","_form","reactive","change","TimeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK;AAEhC,mBAAeE,IAAU;AACvB,YAAMC,IAAQN,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,MAA2BM,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BJ,EAAQ,QAAQ,MAIhBE,EAAe,QAAQE,GACvBJ,EAAQ,QAAQ;AAAA,IAEpB;AAEA,WAAAK,EAAM,MAAMP,EAAM,KAAKK,GAAS,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;ACbnD,UAAMG,IAAOC,GACPT,IAAQC,GAKRS,IAAQC,EAAS,EAAE,OAAOX,EAAM,WAAY,CAAA;AAElD,aAASY,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAH;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAU,EAAM,QAAQV,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;AC7Be,MAAMa,UAAwBC,EAAgB;AAAA,EAC3D,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 f } from "./index-HxSkRe2a.js";
1
+ import { E as p, B as f } from "./index-D5disLyf.js";
2
2
  import { ref as r, watch as u, openBlock as s, createElementBlock as h, toDisplayString as v, createBlock as m, reactive as _, unref as y } from "vue";
3
3
  import { ElDatePicker as V } from "element-plus";
4
4
  const D = { key: 0 }, Y = {
@@ -60,4 +60,4 @@ class w extends f {
60
60
  export {
61
61
  w as default
62
62
  };
63
- //# sourceMappingURL=config-Cin4DGBy.js.map
63
+ //# sourceMappingURL=config-NZqMpFYi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-Cin4DGBy.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, watch } 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(\"...\");\n\nasync function getTime() {\n const value = props.row[props.field.code];\n\n if (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}\n\nwatch(() => props.row, getTime, { immediate: true });\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","getTime","value","watch","emit","__emit","_form","reactive","change","DatetimeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK;AAEhC,mBAAeE,IAAU;AACvB,YAAMC,IAAQN,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,MAA2BM,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BJ,EAAQ,QAAQ,MAIhBE,EAAe,QAAQE,GACvBJ,EAAQ,QAAQ;AAAA,IAEpB;AAEA,WAAAK,EAAM,MAAMP,EAAM,KAAKK,GAAS,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;ACbnD,UAAMG,IAAOC,GACPT,IAAQC,GAKRS,IAAQC,EAAS,EAAE,OAAOX,EAAM,WAAY,CAAA;AAElD,aAASY,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAH;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAU,EAAM,QAAQV,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;AC7Be,MAAMa,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-NZqMpFYi.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, watch } 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(\"...\");\n\nasync function getTime() {\n const value = props.row[props.field.code];\n\n if (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}\n\nwatch(() => props.row, getTime, { immediate: true });\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","getTime","value","watch","emit","__emit","_form","reactive","change","DatetimeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAQRC,IAAUC,EAAI,EAAK,GACnBC,IAAiBD,EAAI,KAAK;AAEhC,mBAAeE,IAAU;AACvB,YAAMC,IAAQN,EAAM,IAAIA,EAAM,MAAM,IAAI;AAExC,MAA2BM,KAAU,QAE1B,GAAGA,CAAK,GAAG,KAAI,MAAO,KAD/BJ,EAAQ,QAAQ,MAIhBE,EAAe,QAAQE,GACvBJ,EAAQ,QAAQ;AAAA,IAEpB;AAEA,WAAAK,EAAM,MAAMP,EAAM,KAAKK,GAAS,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;ACbnD,UAAMG,IAAOC,GACPT,IAAQC,GAKRS,IAAQC,EAAS,EAAE,OAAOX,EAAM,WAAY,CAAA;AAElD,aAASY,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAH;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAU,EAAM,QAAQV,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;AC7Be,MAAMa,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;"}