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 +1 @@
1
- {"version":3,"file":"config-Dr-5teuG.js","sources":["../src/framework/field/tree-select/FieldDisplay.vue","../src/framework/field/tree-select/FieldEditor.vue","../src/framework/field/tree-select/config.js"],"sourcesContent":["<script setup>\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 = `<未知: ${label}>`;\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-tree-select\n v-model=\"_form.value\"\n style=\"width: 100%\"\n :data=\"options\"\n :props=\"defaultTreeSelectProps\"\n node-key=\"id\"\n :multiple=\"props.field.multiple\"\n :render-after-expand=\"false\"\n show-checkbox\n check-on-click-node\n :expand-on-click-node=\"false\"\n default-expand-all\n highlight-current\n :disabled=\"props.field.disabled\"\n :check-strictly=\"true\"\n remote\n filterable\n :remote-method=\"remoteSearch\"\n @check=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElTreeSelect } 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([]);\nconst defaultTreeSelectProps = {\n label: \"name\",\n children: \"children\",\n value: \"id\",\n};\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 TreeFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.options = rawConfig.options || (() => []);\n this.formChange = rawConfig.formChange || (() => {});\n this.multiple = this.defaultBy(rawConfig.multiple, false);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n\n this.checkValidProperties(rawConfig);\n }\n}\n\nexport default TreeFieldConfig;\n"],"names":["props","__props","invalidTip","ref","found","items","getSelectName","val","label","options","selectedOptions","item","color","watch","route","useRoute","routeQuery","setupRouteQuery","emit","__emit","_form","reactive","defaultTreeSelectProps","remoteSearch","keyword","change","TreeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,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,GAChCQ,IAAQR,EAAM,MAAM;AAC1B,UAAyBO,KAAQ,MAAM;AACrC,QAAAL,EAAW,QAAQ,OACnBE,EAAM,QAAQ;AACd;AAAA,MACD;AAED,YAAMK,IAAU,MAAMT,EAAM,MAAM,QAAO;AACzC,UAAI,CAACS,GAAS;AACZ,QAAAP,EAAW,QAAQ,QAAQM,CAAK,KAChCJ,EAAM,QAAQ;AACd;AAAA,MACD;AAED,UAAIM,IAAkB,CAAA;AAOtB,UANIV,EAAM,MAAM,WACdU,IAAkBD,EAAQ,OAAO,CAACE,MAASJ,EAAI,SAASI,EAAK,IAAI,CAAC,IAElED,IAAkBD,EAAQ,OAAO,CAACE,MAASJ,MAAQI,EAAK,IAAI,GAG1DD,EAAgB,WAAW,GAAG;AAChC,QAAAR,EAAW,QAAQ,SAASK,CAAG,KAC/BH,EAAM,QAAQ;AACd;AAAA,MACD;AAED,MAAAC,EAAM,QAAQK,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,GAEFP,EAAM,QAAQ;AAAA,IAChB;AAEA,WAAAS,EAAM,MAAMb,EAAM,KAAKM,GAAe,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BzD,UAAMQ,IAAQC,EAAQ,GAChBC,IAAaC,EAAgBH,CAAK,GAClCI,IAAOC,GACPnB,IAAQC,GAMRmB,IAAQC,EAAS,EAAE,OAAOrB,EAAM,WAAY,CAAA,GAC5CS,IAAUN,EAAI,CAAA,CAAE,GAChBmB,IAAyB;AAAA,MAC7B,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAEA,mBAAeC,EAAaC,GAAS;AACnC,MAAAf,EAAQ,QAAQ,MAAMT,EAAM,MAAM;AAAA,QAChCA,EAAM;AAAA,QACNgB;AAAA,QACAQ;AAAA,MACJ;AAAA,IACA;AAEA,aAASC,IAAS;AAChB,MAAAP,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAP;AAAA,MACE,MAAMb,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAoB,EAAM,QAAQpB,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB,GACAuB;;;;;;;;;;;;;;;;;;;;;;;AC7DA,MAAMG,UAAwBC,EAAgB;AAAA,EAC5C,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUD,EAAU,YAAY,MAAM,CAAE,IAC7C,KAAK,aAAaA,EAAU,eAAe,MAAM;AAAA,IAAE,IACnD,KAAK,WAAW,KAAK,UAAUA,EAAU,UAAU,EAAK,GACxD,KAAK,UAAUE,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-BUyzXYu7.js","sources":["../src/framework/field/tree-select/FieldDisplay.vue","../src/framework/field/tree-select/FieldEditor.vue","../src/framework/field/tree-select/config.js"],"sourcesContent":["<script setup>\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 = `<未知: ${label}>`;\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-tree-select\n v-model=\"_form.value\"\n style=\"width: 100%\"\n :data=\"options\"\n :props=\"defaultTreeSelectProps\"\n node-key=\"id\"\n :multiple=\"props.field.multiple\"\n :render-after-expand=\"false\"\n show-checkbox\n check-on-click-node\n :expand-on-click-node=\"false\"\n default-expand-all\n highlight-current\n :disabled=\"props.field.disabled\"\n :check-strictly=\"true\"\n remote\n filterable\n :remote-method=\"remoteSearch\"\n @check=\"change\"\n />\n</template>\n\n<script setup>\nimport { ElTreeSelect } 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([]);\nconst defaultTreeSelectProps = {\n label: \"name\",\n children: \"children\",\n value: \"id\",\n};\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 TreeFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.options = rawConfig.options || (() => []);\n this.formChange = rawConfig.formChange || (() => {});\n this.multiple = this.defaultBy(rawConfig.multiple, false);\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n\n this.checkValidProperties(rawConfig);\n }\n}\n\nexport default TreeFieldConfig;\n"],"names":["props","__props","invalidTip","ref","found","items","getSelectName","val","label","options","selectedOptions","item","color","watch","route","useRoute","routeQuery","setupRouteQuery","emit","__emit","_form","reactive","defaultTreeSelectProps","remoteSearch","keyword","change","TreeFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,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,GAChCQ,IAAQR,EAAM,MAAM;AAC1B,UAAyBO,KAAQ,MAAM;AACrC,QAAAL,EAAW,QAAQ,OACnBE,EAAM,QAAQ;AACd;AAAA,MACD;AAED,YAAMK,IAAU,MAAMT,EAAM,MAAM,QAAO;AACzC,UAAI,CAACS,GAAS;AACZ,QAAAP,EAAW,QAAQ,QAAQM,CAAK,KAChCJ,EAAM,QAAQ;AACd;AAAA,MACD;AAED,UAAIM,IAAkB,CAAA;AAOtB,UANIV,EAAM,MAAM,WACdU,IAAkBD,EAAQ,OAAO,CAACE,MAASJ,EAAI,SAASI,EAAK,IAAI,CAAC,IAElED,IAAkBD,EAAQ,OAAO,CAACE,MAASJ,MAAQI,EAAK,IAAI,GAG1DD,EAAgB,WAAW,GAAG;AAChC,QAAAR,EAAW,QAAQ,SAASK,CAAG,KAC/BH,EAAM,QAAQ;AACd;AAAA,MACD;AAED,MAAAC,EAAM,QAAQK,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,GAEFP,EAAM,QAAQ;AAAA,IAChB;AAEA,WAAAS,EAAM,MAAMb,EAAM,KAAKM,GAAe,EAAE,WAAW,GAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BzD,UAAMQ,IAAQC,EAAQ,GAChBC,IAAaC,EAAgBH,CAAK,GAClCI,IAAOC,GACPnB,IAAQC,GAMRmB,IAAQC,EAAS,EAAE,OAAOrB,EAAM,WAAY,CAAA,GAC5CS,IAAUN,EAAI,CAAA,CAAE,GAChBmB,IAAyB;AAAA,MAC7B,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAEA,mBAAeC,EAAaC,GAAS;AACnC,MAAAf,EAAQ,QAAQ,MAAMT,EAAM,MAAM;AAAA,QAChCA,EAAM;AAAA,QACNgB;AAAA,QACAQ;AAAA,MACJ;AAAA,IACA;AAEA,aAASC,IAAS;AAChB,MAAAP,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAP;AAAA,MACE,MAAMb,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAoB,EAAM,QAAQpB,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB,GACAuB;;;;;;;;;;;;;;;;;;;;;;;AC7DA,MAAMG,UAAwBC,EAAgB;AAAA,EAC5C,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUD,EAAU,YAAY,MAAM,CAAE,IAC7C,KAAK,aAAaA,EAAU,eAAe,MAAM;AAAA,IAAE,IACnD,KAAK,WAAW,KAAK,UAAUA,EAAU,UAAU,EAAK,GACxD,KAAK,UAAUE,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AACH;"}
@@ -1,7 +1,7 @@
1
- import { _, E as f, B as h, f as v } from "./index-BwzGvDow.js";
2
- import { ref as a, watch as y, openBlock as o, createBlock as p, unref as d, withCtx as n, createElementBlock as u, Fragment as g, renderList as w, createVNode as b, createElementVNode as i, toDisplayString as k, pushScopeId as x, popScopeId as B } from "vue";
3
- import { ElSpace as E, ElImage as I } from "element-plus";
4
- const F = (t) => (x("data-v-4cb2ce7b"), t = t(), B(), t), S = {
1
+ import { _, E as f, B as h, h as v } from "./index-BX1xTWzJ.js";
2
+ import { ref as a, watch as y, openBlock as o, createBlock as d, unref as p, withCtx as n, createElementBlock as u, Fragment as g, renderList as w, createVNode as b, createElementVNode as i, toDisplayString as I, pushScopeId as k, popScopeId as x } from "vue";
3
+ import { ElSpace as B, ElImage as E } from "element-plus";
4
+ const F = (t) => (k("data-v-4cb2ce7b"), t = t(), x(), t), S = {
5
5
  class: "image-card",
6
6
  style: { "margin-bottom": "20px" }
7
7
  }, D = { class: "loading-error" }, V = /* @__PURE__ */ F(() => /* @__PURE__ */ i("div", null, "图片加载失败", -1)), j = {
@@ -23,13 +23,13 @@ const F = (t) => (x("data-v-4cb2ce7b"), t = t(), B(), t), S = {
23
23
  c && (s.value = c.map((l) => l.url), r.value = s.value[0]);
24
24
  },
25
25
  { immediate: !0 }
26
- ), (c, l) => e.row[e.field.code].length > 0 ? (o(), p(d(E), {
26
+ ), (c, l) => e.row[e.field.code].length > 0 ? (o(), d(p(B), {
27
27
  key: 0,
28
28
  wrap: ""
29
29
  }, {
30
30
  default: n(() => [
31
31
  (o(!0), u(g, null, w(e.row[e.field.code], (m) => (o(), u("div", S, [
32
- b(d(I), {
32
+ b(p(E), {
33
33
  src: m.url,
34
34
  fit: "contain",
35
35
  "preview-src-list": s.value,
@@ -38,7 +38,7 @@ const F = (t) => (x("data-v-4cb2ce7b"), t = t(), B(), t), S = {
38
38
  error: n(() => [
39
39
  i("div", D, [
40
40
  V,
41
- i("div", null, k(r.value), 1)
41
+ i("div", null, I(r.value), 1)
42
42
  ])
43
43
  ]),
44
44
  _: 2
@@ -46,15 +46,20 @@ const F = (t) => (x("data-v-4cb2ce7b"), t = t(), B(), t), S = {
46
46
  ]))), 256))
47
47
  ]),
48
48
  _: 1
49
- })) : (o(), p(f, { key: 1 }));
49
+ })) : (o(), d(f, { key: 1 }));
50
50
  }
51
- }, N = /* @__PURE__ */ _(j, [["__scopeId", "data-v-4cb2ce7b"]]);
52
- class T extends h {
51
+ }, L = /* @__PURE__ */ _(j, [["__scopeId", "data-v-4cb2ce7b"]]);
52
+ class P extends h {
53
53
  constructor(e, r) {
54
- super(e, r), this.props = e.props, this.display = N, this.editor = v, this.converter = this.defaultBy(e.converter, (s) => s), this.checkValidProperties(e);
54
+ super(e, r), this.props = e.props, this.display = L, this.editor = v, this.converter = this.defaultBy(e.converter, (s) => s), this.checkValidProperties(e);
55
+ }
56
+ defaultConfig() {
57
+ return {
58
+ showInList: !1
59
+ };
55
60
  }
56
61
  }
57
62
  export {
58
- T as default
63
+ P as default
59
64
  };
60
- //# sourceMappingURL=config-BC-Ld-zA.js.map
65
+ //# sourceMappingURL=config-BbXDjdqk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-BC-Ld-zA.js","sources":["../src/framework/field/images/FieldDisplay.vue","../src/framework/field/images/config.js"],"sourcesContent":["<script setup>\nimport { ElSpace, ElImage } from \"element-plus\";\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});\n\nconst url = ref(null);\nconst urls = ref([]);\n\nwatch(\n () => props.row,\n () => {\n const images = props.row[props.field.code];\n if (images) {\n urls.value = images.map((item) => item.url);\n url.value = urls.value[0];\n }\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <el-space v-if=\"props.row[props.field.code].length > 0\" wrap>\n <div\n v-for=\"image in props.row[props.field.code]\"\n class=\"image-card\"\n style=\"margin-bottom: 20px\"\n >\n <el-image\n :src=\"image.url\"\n fit=\"contain\"\n :preview-src-list=\"urls\"\n class=\"image\"\n >\n <template #error>\n <div class=\"loading-error\">\n <div>图片加载失败</div>\n <div>{{ url }}</div>\n </div>\n </template>\n </el-image>\n </div>\n </el-space>\n <EmptyTip v-else />\n</template>\n\n<style scoped lang=\"scss\">\n.image-card {\n width: 200px;\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #eee;\n border: 1px solid #ddd;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.image {\n width: 100%;\n height: 100%;\n}\n\n.loading-error {\n width: 100%;\n height: 100%;\n min-height: 50px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n</style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class ImagesFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.props = rawConfig.props;\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.converter = this.defaultBy(rawConfig.converter, (raw) => raw);\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["props","__props","url","ref","urls","watch","images","item","ImagesFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor","raw"],"mappings":";;;;;;;;;;;;;;;;;AAKA,UAAMA,IAAQC,GASRC,IAAMC,EAAI,IAAI,GACdC,IAAOD,EAAI,CAAA,CAAE;AAEnB,WAAAE;AAAA,MACE,MAAML,EAAM;AAAA,MACZ,MAAM;AACJ,cAAMM,IAASN,EAAM,IAAIA,EAAM,MAAM,IAAI;AACzC,QAAIM,MACFF,EAAK,QAAQE,EAAO,IAAI,CAACC,MAASA,EAAK,GAAG,GAC1CL,EAAI,QAAQE,EAAK,MAAM,CAAC;AAAA,MAE3B;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBe,MAAMI,UAA0BC,EAAgB;AAAA,EAC7D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,QAAQD,EAAU,OACvB,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,YAAY,KAAK,UAAUH,EAAU,WAAW,CAACI,MAAQA,CAAG,GAEjE,KAAK,qBAAqBJ,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-BbXDjdqk.js","sources":["../src/framework/field/images/FieldDisplay.vue","../src/framework/field/images/config.js"],"sourcesContent":["<script setup>\nimport { ElSpace, ElImage } from \"element-plus\";\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});\n\nconst url = ref(null);\nconst urls = ref([]);\n\nwatch(\n () => props.row,\n () => {\n const images = props.row[props.field.code];\n if (images) {\n urls.value = images.map((item) => item.url);\n url.value = urls.value[0];\n }\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <el-space v-if=\"props.row[props.field.code].length > 0\" wrap>\n <div\n v-for=\"image in props.row[props.field.code]\"\n class=\"image-card\"\n style=\"margin-bottom: 20px\"\n >\n <el-image\n :src=\"image.url\"\n fit=\"contain\"\n :preview-src-list=\"urls\"\n class=\"image\"\n >\n <template #error>\n <div class=\"loading-error\">\n <div>图片加载失败</div>\n <div>{{ url }}</div>\n </div>\n </template>\n </el-image>\n </div>\n </el-space>\n <EmptyTip v-else />\n</template>\n\n<style scoped lang=\"scss\">\n.image-card {\n width: 200px;\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #eee;\n border: 1px solid #ddd;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.image {\n width: 100%;\n height: 100%;\n}\n\n.loading-error {\n width: 100%;\n height: 100%;\n min-height: 50px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n</style>\n","import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\nimport FieldEditor from \"./FieldEditor.vue\";\n\nexport default class ImagesFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.props = rawConfig.props;\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.converter = this.defaultBy(rawConfig.converter, (raw) => raw);\n\n this.checkValidProperties(rawConfig);\n }\n\n defaultConfig() {\n return {\n showInList: false,\n };\n }\n}\n"],"names":["props","__props","url","ref","urls","watch","images","item","ImagesFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor","raw"],"mappings":";;;;;;;;;;;;;;;;;AAKA,UAAMA,IAAQC,GASRC,IAAMC,EAAI,IAAI,GACdC,IAAOD,EAAI,CAAA,CAAE;AAEnB,WAAAE;AAAA,MACE,MAAML,EAAM;AAAA,MACZ,MAAM;AACJ,cAAMM,IAASN,EAAM,IAAIA,EAAM,MAAM,IAAI;AACzC,QAAIM,MACFF,EAAK,QAAQE,EAAO,IAAI,CAACC,MAASA,EAAK,GAAG,GAC1CL,EAAI,QAAQE,EAAK,MAAM,CAAC;AAAA,MAE3B;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBe,MAAMI,UAA0BC,EAAgB;AAAA,EAC7D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,QAAQD,EAAU,OACvB,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,YAAY,KAAK,UAAUH,EAAU,WAAW,CAACI,MAAQA,CAAG,GAEjE,KAAK,qBAAqBJ,CAAS;AAAA,EACpC;AAAA,EAED,gBAAgB;AACd,WAAO;AAAA,MACL,YAAY;AAAA,IAClB;AAAA,EACG;AACH;"}
@@ -1,5 +1,5 @@
1
- import { E as p, B as m } from "./index-BwzGvDow.js";
2
- import { ref as u, openBlock as s, createElementBlock as f, toDisplayString as v, createBlock as d, reactive as _, watch as y, unref as V } from "vue";
1
+ import { E as p, B as m } from "./index-BX1xTWzJ.js";
2
+ import { ref as n, openBlock as s, createElementBlock as f, toDisplayString as v, createBlock as u, reactive as _, watch as y, unref as V } from "vue";
3
3
  import { ElInput as b } from "element-plus";
4
4
  const h = { key: 0 }, E = {
5
5
  __name: "FieldDisplay",
@@ -12,10 +12,10 @@ const h = { key: 0 }, E = {
12
12
  }
13
13
  },
14
14
  setup(o) {
15
- const l = o, t = u(!1), a = u("..."), e = l.row[l.field.code];
16
- return e == null || `${e}`.trim() === "" ? t.value = !0 : (a.value = e, t.value = !1), (i, n) => t.value ? (s(), d(p, { key: 1 })) : (s(), f("span", h, v(a.value), 1));
15
+ const l = o, t = n(!1), a = n("..."), e = l.row[l.field.code];
16
+ return e == null || `${e}`.trim() === "" ? t.value = !0 : (a.value = e, t.value = !1), (i, d) => t.value ? (s(), u(p, { key: 1 })) : (s(), f("span", h, v(a.value), 1));
17
17
  }
18
- }, k = E, x = {
18
+ }, g = E, k = {
19
19
  __name: "FieldEditor",
20
20
  props: {
21
21
  modelValue: String,
@@ -35,7 +35,7 @@ const h = { key: 0 }, E = {
35
35
  e.value = a.modelValue;
36
36
  },
37
37
  { immediate: !0 }
38
- ), (n, r) => (s(), d(V(b), {
38
+ ), (d, r) => (s(), u(V(b), {
39
39
  modelValue: e.value,
40
40
  "onUpdate:modelValue": r[0] || (r[0] = (c) => e.value = c),
41
41
  type: "textarea",
@@ -45,13 +45,18 @@ const h = { key: 0 }, E = {
45
45
  onInput: i
46
46
  }, null, 8, ["modelValue", "disabled"]));
47
47
  }
48
- }, B = x;
49
- class w extends m {
48
+ }, x = k;
49
+ class j extends m {
50
50
  constructor(l, t) {
51
- super(l, t), this.display = k, this.editor = B, this.checkValidProperties(l);
51
+ super(l, t), this.display = g, this.editor = x, this.checkValidProperties(l);
52
+ }
53
+ defaultConfig() {
54
+ return {
55
+ showInList: !1
56
+ };
52
57
  }
53
58
  }
54
59
  export {
55
- w as default
60
+ j as default
56
61
  };
57
- //# sourceMappingURL=config-CNyStefo.js.map
62
+ //# sourceMappingURL=config-BeivkfGi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-CNyStefo.js","sources":["../src/framework/field/text/FieldDisplay.vue","../src/framework/field/text/FieldEditor.vue","../src/framework/field/text/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-input\n v-model=\"_form.value\"\n type=\"textarea\"\n rows=\"5\"\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: String,\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 TextFieldConfig 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","TextFieldConfig","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,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;;;;;;;;;;;AC9Be,MAAMY,UAAwBC,EAAgB;AAAA,EAC3D,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-BeivkfGi.js","sources":["../src/framework/field/text/FieldDisplay.vue","../src/framework/field/text/FieldEditor.vue","../src/framework/field/text/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-input\n v-model=\"_form.value\"\n type=\"textarea\"\n rows=\"5\"\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: String,\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 TextFieldConfig 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 defaultConfig() {\n return {\n showInList: false,\n };\n }\n}\n"],"names":["props","__props","isEmpty","ref","formattedValue","value","emit","__emit","_form","reactive","change","watch","TextFieldConfig","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,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;;;;;;;;;;;AC9Be,MAAMY,UAAwBC,EAAgB;AAAA,EAC3D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AAAA,EAED,gBAAgB;AACd,WAAO;AAAA,MACL,YAAY;AAAA,IAClB;AAAA,EACG;AACH;"}
@@ -1,5 +1,5 @@
1
- import { _ as l, B as a } from "./index-BwzGvDow.js";
2
- import { openBlock as r, createElementBlock as c, createElementVNode as p, defineAsyncComponent as u, reactive as _, watch as m, createVNode as f, unref as h } from "vue";
1
+ import { _ as c, B as a } from "./index-BX1xTWzJ.js";
2
+ import { openBlock as r, createElementBlock as l, createElementVNode as p, defineAsyncComponent as u, reactive as _, watch as m, createVNode as f, unref as h } from "vue";
3
3
  const v = { class: "editor-field" }, y = ["innerHTML"], V = {
4
4
  __name: "FieldDisplay",
5
5
  props: {
@@ -12,14 +12,14 @@ const v = { class: "editor-field" }, y = ["innerHTML"], V = {
12
12
  },
13
13
  setup(t) {
14
14
  const e = t;
15
- return (o, n) => (r(), c("div", v, [
15
+ return (o, n) => (r(), l("div", v, [
16
16
  p("div", {
17
17
  class: "content",
18
18
  innerHTML: e.row[e.field.code]
19
19
  }, null, 8, y)
20
20
  ]));
21
21
  }
22
- }, x = /* @__PURE__ */ l(V, [["__scopeId", "data-v-b1931177"]]), E = { style: { width: "100%" } }, F = {
22
+ }, x = /* @__PURE__ */ c(V, [["__scopeId", "data-v-02b50564"]]), E = { style: { width: "100%" } }, F = {
23
23
  __name: "FieldEditor",
24
24
  props: {
25
25
  modelValue: String,
@@ -28,13 +28,13 @@ const v = { class: "editor-field" }, y = ["innerHTML"], V = {
28
28
  },
29
29
  emits: ["update:modelValue"],
30
30
  setup(t, { emit: e }) {
31
- const o = u(() => import("./RichTextEditor-BDGc1wPT.js")), n = e, s = _({ value: t.modelValue });
31
+ const o = u(() => import("./RichTextEditor-DJYZD9vY.js")), n = e, s = _({ value: t.modelValue });
32
32
  return m(
33
33
  () => s.value,
34
34
  () => {
35
35
  n("update:modelValue", s.value);
36
36
  }
37
- ), (j, i) => (r(), c("div", E, [
37
+ ), (w, i) => (r(), l("div", E, [
38
38
  f(h(o), {
39
39
  content: s.value,
40
40
  "onUpdate:content": i[0] || (i[0] = (d) => s.value = d)
@@ -42,12 +42,17 @@ const v = { class: "editor-field" }, y = ["innerHTML"], V = {
42
42
  ]));
43
43
  }
44
44
  }, b = F;
45
- class O extends a {
45
+ class k extends a {
46
46
  constructor(e, o) {
47
47
  super(e, o), this.display = x, this.editor = b, this.checkValidProperties(e);
48
48
  }
49
+ defaultConfig() {
50
+ return {
51
+ showInList: !1
52
+ };
53
+ }
49
54
  }
50
55
  export {
51
- O as default
56
+ k as default
52
57
  };
53
- //# sourceMappingURL=config-siOyGs2I.js.map
58
+ //# sourceMappingURL=config-BmOWXJKs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-BmOWXJKs.js","sources":["../src/framework/field/rich-text/FieldDisplay.vue","../src/framework/field/rich-text/FieldEditor.vue","../src/framework/field/rich-text/config.js"],"sourcesContent":["<script setup>\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\n</script>\n\n<template>\n <div class=\"editor-field\">\n <div class=\"content\" v-html=\"props.row[props.field.code]\" />\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.editor-field {\n width: 100%;\n background: #999;\n padding: 20px 0;\n\n .content {\n max-width: 500px;\n padding: 20px;\n margin: 0 auto;\n background: white;\n\n :deep(img) {\n width: 100%;\n max-width: 100%;\n }\n }\n}\n</style>\n","<template>\n <div style=\"width: 100%\">\n <RichTextEditor v-model:content=\"_form.value\" />\n </div>\n</template>\n\n<script setup>\nimport { reactive, watch, defineAsyncComponent } from \"vue\";\n\nconst RichTextEditor = defineAsyncComponent(() => {\n return import(\"./RichTextEditor.vue\");\n});\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\nwatch(\n () => _form.value,\n () => {\n emit(\"update:modelValue\", _form.value);\n },\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 EditorFieldConfig 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 defaultConfig() {\n return {\n showInList: false,\n };\n }\n}\n"],"names":["props","__props","RichTextEditor","defineAsyncComponent","emit","__emit","_form","reactive","watch","EditorFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;AACA,UAAMA,IAAQC;;;;;;;;;;;;;;;;;ACQd,UAAMC,IAAiBC,EAAqB,MACnC,OAAO,8BAAsB,CACrC,GAEKC,IAAOC,GAMPC,IAAQC,EAAS,EAAE,OALXN,EAKwB,WAAY,CAAA;AAElD,WAAAO;AAAA,MACE,MAAMF,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAF,EAAK,qBAAqBE,EAAM,KAAK;AAAA,MACtC;AAAA,IACH;;;;;;;;ACtBe,MAAMG,UAA0BC,EAAgB;AAAA,EAC7D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AAAA,EAED,gBAAgB;AACd,WAAO;AAAA,MACL,YAAY;AAAA,IAClB;AAAA,EACG;AACH;"}
@@ -1,7 +1,7 @@
1
- import { _ as b, d as k, a as E, v as O, B as F } from "./index-BwzGvDow.js";
2
- import { ref as V, watch as j, openBlock as u, createElementBlock as v, Fragment as C, renderList as B, createElementVNode as h, createVNode as d, unref as i, withCtx as f, toDisplayString as x, createBlock as w, createCommentVNode as A, defineAsyncComponent as N, reactive as T } from "vue";
3
- import { ElIcon as g, ElLink as D } from "element-plus";
4
- const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type" }, R = {
1
+ import { _ as x, d as k, a as E, v as O, E as C, B as F } from "./index-BX1xTWzJ.js";
2
+ import { ref as V, watch as j, openBlock as u, createElementBlock as f, Fragment as B, renderList as T, createElementVNode as h, createVNode as c, unref as i, withCtx as _, toDisplayString as b, createBlock as w, createCommentVNode as A, defineAsyncComponent as I, reactive as L } from "vue";
3
+ import { ElIcon as y, ElLink as N } from "element-plus";
4
+ const D = { key: 0 }, P = { class: "file-name" }, R = { class: "name" }, U = { class: "file-type" }, $ = { key: 1 }, z = {
5
5
  __name: "FieldDisplay",
6
6
  props: {
7
7
  field: {
@@ -19,7 +19,7 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
19
19
  o.type == "application/x-rar-compressed" ? n.href = e.url : n.href = URL.createObjectURL(o), n.download = e.name, document.body.appendChild(n), n.click();
20
20
  });
21
21
  }
22
- function c(e) {
22
+ function d(e) {
23
23
  return ["jpg", "jpeg", "png", "gif", "webp", "bmp", "pdf"].includes(e);
24
24
  }
25
25
  return j(
@@ -30,43 +30,43 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
30
30
  return {
31
31
  ...e,
32
32
  fileType: o,
33
- isPreview: c(o)
33
+ isPreview: d(o)
34
34
  };
35
35
  });
36
36
  },
37
37
  { immediate: !0 }
38
- ), (e, o) => (u(), v("div", null, [
39
- (u(!0), v(C, null, B(l.value, (n) => (u(), v("div", null, [
40
- h("div", I, [
41
- d(i(g), { color: "#73767a" }, {
42
- default: f(() => [
43
- d(i(k))
38
+ ), (e, o) => l.value.length > 0 ? (u(), f("div", D, [
39
+ (u(!0), f(B, null, T(l.value, (n) => (u(), f("div", null, [
40
+ h("div", P, [
41
+ c(i(y), { color: "#73767a" }, {
42
+ default: _(() => [
43
+ c(i(k))
44
44
  ]),
45
45
  _: 1
46
46
  }),
47
- h("span", L, x(n.name), 1),
48
- h("span", P, "." + x(n.fileType), 1),
49
- d(i(g), {
47
+ h("span", R, b(n.name), 1),
48
+ h("span", U, "." + b(n.fileType), 1),
49
+ c(i(y), {
50
50
  color: "#409eff",
51
51
  size: "16",
52
- onClick: (y) => m(n)
52
+ onClick: (g) => m(n)
53
53
  }, {
54
- default: f(() => [
55
- d(i(E))
54
+ default: _(() => [
55
+ c(i(E))
56
56
  ]),
57
57
  _: 2
58
58
  }, 1032, ["onClick"]),
59
- n.isPreview ? (u(), w(i(D), {
59
+ n.isPreview ? (u(), w(i(N), {
60
60
  key: 0,
61
61
  type: "primary",
62
62
  href: n.url,
63
63
  target: "_blank",
64
64
  underline: !1
65
65
  }, {
66
- default: f(() => [
67
- d(i(g), { size: "16" }, {
68
- default: f(() => [
69
- d(i(O))
66
+ default: _(() => [
67
+ c(i(y), { size: "16" }, {
68
+ default: _(() => [
69
+ c(i(O))
70
70
  ]),
71
71
  _: 1
72
72
  })
@@ -75,9 +75,11 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
75
75
  }, 1032, ["href"])) : A("", !0)
76
76
  ])
77
77
  ]))), 256))
78
+ ])) : (u(), f("div", $, [
79
+ c(C)
78
80
  ]));
79
81
  }
80
- }, U = /* @__PURE__ */ b(R, [["__scopeId", "data-v-86f01549"]]), $ = {
82
+ }, M = /* @__PURE__ */ x(z, [["__scopeId", "data-v-196b9bff"]]), S = {
81
83
  __name: "FieldEditor",
82
84
  props: {
83
85
  modelValue: Array,
@@ -88,7 +90,7 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
88
90
  },
89
91
  emits: ["update:modelValue"],
90
92
  setup(p, { emit: a }) {
91
- const l = N(() => import("./AttachmentUploader-CWLoKoKO.js")), m = a, c = p, e = T({ value: c.modelValue });
93
+ const l = I(() => import("./AttachmentUploader-BdDkTump.js")), m = a, d = p, e = L({ value: d.modelValue });
92
94
  function o(s) {
93
95
  e.value = e.value ? [...e.value, s] : [s];
94
96
  }
@@ -96,8 +98,8 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
96
98
  const t = e.value.findIndex((r) => r.id === s.id);
97
99
  e.value.splice(t, 1);
98
100
  }
99
- async function y(s) {
100
- const t = c.domainConfig.rest;
101
+ async function g(s) {
102
+ const t = d.domainConfig.rest;
101
103
  if (!/^[\u4e00-\u9fa5\w-_]+$/.test(s.name)) {
102
104
  ElMessage({
103
105
  message: "请勿输入特殊字符!",
@@ -112,7 +114,7 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
112
114
  });
113
115
  });
114
116
  }
115
- function _(s, t) {
117
+ function v(s, t) {
116
118
  if (t == "success") {
117
119
  o(s), m("update:modelValue", e.value);
118
120
  return;
@@ -122,25 +124,30 @@ const I = { class: "file-name" }, L = { class: "name" }, P = { class: "file-type
122
124
  return;
123
125
  }
124
126
  if (t == "change") {
125
- y(s);
127
+ g(s);
126
128
  return;
127
129
  }
128
130
  }
129
131
  return (s, t) => (u(), w(i(l), {
130
132
  pics: e.value,
131
- props: c.field.props ? c.field.props : {},
132
- onOnSuccess: t[0] || (t[0] = (r) => _(r, "success")),
133
- onOnRemove: t[1] || (t[1] = (r) => _(r, "remove")),
134
- onOnChange: t[2] || (t[2] = (r) => _(r, "change"))
133
+ props: d.field.props ? d.field.props : {},
134
+ onOnSuccess: t[0] || (t[0] = (r) => v(r, "success")),
135
+ onOnRemove: t[1] || (t[1] = (r) => v(r, "remove")),
136
+ onOnChange: t[2] || (t[2] = (r) => v(r, "change"))
135
137
  }, null, 8, ["pics", "props"]));
136
138
  }
137
- }, z = $;
138
- class G extends F {
139
+ }, q = S;
140
+ class K extends F {
139
141
  constructor(a, l) {
140
- super(a, l), this.attachmentType = a.attachmentType, this.props = a.props, this.display = U, this.editor = z, this.checkValidProperties(a);
142
+ super(a, l), this.attachmentType = a.attachmentType, this.props = a.props, this.display = M, this.editor = q, this.checkValidProperties(a);
143
+ }
144
+ defaultConfig() {
145
+ return {
146
+ showInList: !1
147
+ };
141
148
  }
142
149
  }
143
150
  export {
144
- G as default
151
+ K as default
145
152
  };
146
- //# sourceMappingURL=config-Bmjz4vdR.js.map
153
+ //# sourceMappingURL=config-C5CioVqt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-C5CioVqt.js","sources":["../src/framework/field/attachment/FieldDisplay.vue","../src/framework/field/attachment/FieldEditor.vue","../src/framework/field/attachment/config.js"],"sourcesContent":["<template>\n <div v-if=\"attachments.length > 0\">\n <div v-for=\"file in attachments\">\n <div class=\"file-name\">\n <el-icon color=\"#73767a\">\n <Document />\n </el-icon>\n <span class=\"name\">{{ file.name }}</span>\n <span class=\"file-type\">.{{ file.fileType }}</span>\n <el-icon color=\"#409eff\" size=\"16\" @click=\"download(file)\">\n <Download />\n </el-icon>\n <el-link\n v-if=\"file.isPreview\"\n type=\"primary\"\n :href=\"file.url\"\n target=\"_blank\"\n :underline=\"false\"\n >\n <el-icon size=\"16\">\n <View />\n </el-icon>\n </el-link>\n </div>\n </div>\n </div>\n <div v-else>\n <EmptyTip />\n </div>\n</template>\n\n<script setup>\nimport { ElIcon, ElLink } from \"element-plus\";\nimport { Document, Download, View } from \"@element-plus/icons-vue\";\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 attachments = ref([]);\n\nfunction download(file) {\n fetch(file.url)\n .then((res) => res.blob())\n .then((blob) => {\n const link = document.createElement(\"a\");\n if (blob.type == \"application/x-rar-compressed\") {\n link.href = file.url;\n } else {\n link.href = URL.createObjectURL(blob);\n }\n link.download = file.name;\n document.body.appendChild(link);\n link.click();\n });\n}\n\nfunction isPreview(fileType) {\n const imageExtensions = [\"jpg\", \"jpeg\", \"png\", \"gif\", \"webp\", \"bmp\", \"pdf\"];\n return imageExtensions.includes(fileType);\n}\n\nwatch(\n () => props.row,\n () => {\n attachments.value = props.row[props.field.code].map((item) => {\n const fileType = item.url.substring(item.url.lastIndexOf(\".\") + 1);\n return {\n ...item,\n fileType: fileType,\n isPreview: isPreview(fileType),\n };\n });\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"scss\">\n.file-name {\n display: flex;\n align-items: center;\n margin: 10px 0 5px 0;\n .file-type {\n height: 22px;\n line-height: 22px;\n margin-right: 5px;\n background: #eeeeee;\n border-radius: 4px;\n font-size: 12px;\n padding: 0 4px;\n }\n .name {\n margin: 0 5px;\n }\n}\n:deep(.el-icon) {\n margin: 0 5px;\n cursor: pointer;\n}\n</style>\n","<template>\n <AttachmentUploader\n :pics=\"_form.value\"\n :props=\"props.field.props ? props.field.props : {}\"\n @on-success=\"(file) => change(file, 'success')\"\n @on-remove=\"(file) => change(file, 'remove')\"\n @on-change=\"(file) => change(file, 'change')\"\n />\n</template>\n\n<script setup>\nimport { reactive, defineAsyncComponent } from \"vue\";\n\nconst AttachmentUploader = defineAsyncComponent(() => {\n return import(\"./AttachmentUploader.vue\");\n});\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Array,\n field: Object,\n domainConfig: Object,\n disabled: Boolean,\n formData: Object,\n});\nconst _form = reactive({ value: props.modelValue });\n\nfunction add(attachment) {\n _form.value = _form.value ? [..._form.value, attachment] : [attachment];\n}\n\nfunction remove(attachment) {\n const index = _form.value.findIndex((item) => item.id === attachment.id);\n _form.value.splice(index, 1);\n}\n\nasync function updateFileName(attachment) {\n const restApi = props.domainConfig.rest;\n const regex = /^[\\u4e00-\\u9fa5\\w-_]+$/;\n\n if (!regex.test(attachment.name)) {\n ElMessage({\n message: \"请勿输入特殊字符!\",\n type: \"warning\",\n });\n return;\n }\n\n await restApi.updateFilesName(attachment).then(() => {\n ElMessage({\n message: \"附件名称已修改!\",\n type: \"success\",\n });\n });\n}\n\nfunction change(image, type) {\n if (type == \"success\") {\n add(image);\n emit(\"update:modelValue\", _form.value);\n return;\n }\n\n if (type == \"remove\") {\n remove(image);\n emit(\"update:modelValue\", _form.value);\n return;\n }\n\n if (type == \"change\") {\n updateFileName(image);\n return;\n }\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 AttachmentFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.attachmentType = rawConfig.attachmentType;\n this.props = rawConfig.props;\n this.display = FieldDisplay;\n this.editor = FieldEditor;\n this.checkValidProperties(rawConfig);\n }\n\n defaultConfig() {\n return {\n showInList: false,\n };\n }\n}\n"],"names":["props","__props","attachments","ref","download","file","res","blob","link","isPreview","fileType","watch","item","AttachmentUploader","defineAsyncComponent","emit","__emit","_form","reactive","add","attachment","remove","index","updateFileName","restApi","change","image","type","AttachmentFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;;AAqCA,UAAMA,IAAQC,GAQRC,IAAcC,EAAI,CAAA,CAAE;AAE1B,aAASC,EAASC,GAAM;AACtB,YAAMA,EAAK,GAAG,EACX,KAAK,CAACC,MAAQA,EAAI,KAAI,CAAE,EACxB,KAAK,CAACC,MAAS;AACd,cAAMC,IAAO,SAAS,cAAc,GAAG;AACvC,QAAID,EAAK,QAAQ,iCACfC,EAAK,OAAOH,EAAK,MAEjBG,EAAK,OAAO,IAAI,gBAAgBD,CAAI,GAEtCC,EAAK,WAAWH,EAAK,MACrB,SAAS,KAAK,YAAYG,CAAI,GAC9BA,EAAK,MAAK;AAAA,MAChB,CAAK;AAAA,IACL;AAEA,aAASC,EAAUC,GAAU;AAE3B,aADwB,CAAC,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAK,EACnD,SAASA,CAAQ;AAAA,IAC1C;AAEA,WAAAC;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAE,EAAY,QAAQF,EAAM,IAAIA,EAAM,MAAM,IAAI,EAAE,IAAI,CAACY,MAAS;AAC5D,gBAAMF,IAAWE,EAAK,IAAI,UAAUA,EAAK,IAAI,YAAY,GAAG,IAAI,CAAC;AACjE,iBAAO;AAAA,YACL,GAAGA;AAAA,YACH,UAAUF;AAAA,YACV,WAAWD,EAAUC,CAAQ;AAAA,UACrC;AAAA,QACA,CAAK;AAAA,MACF;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEA,UAAMG,IAAqBC,EAAqB,MACvC,OAAO,kCAA0B,CACzC,GAEKC,IAAOC,GACPhB,IAAQC,GAORgB,IAAQC,EAAS,EAAE,OAAOlB,EAAM,WAAY,CAAA;AAElD,aAASmB,EAAIC,GAAY;AACvB,MAAAH,EAAM,QAAQA,EAAM,QAAQ,CAAC,GAAGA,EAAM,OAAOG,CAAU,IAAI,CAACA,CAAU;AAAA,IACxE;AAEA,aAASC,EAAOD,GAAY;AAC1B,YAAME,IAAQL,EAAM,MAAM,UAAU,CAACL,MAASA,EAAK,OAAOQ,EAAW,EAAE;AACvE,MAAAH,EAAM,MAAM,OAAOK,GAAO,CAAC;AAAA,IAC7B;AAEA,mBAAeC,EAAeH,GAAY;AACxC,YAAMI,IAAUxB,EAAM,aAAa;AAGnC,UAAI,CAFU,yBAEH,KAAKoB,EAAW,IAAI,GAAG;AAChC,kBAAU;AAAA,UACR,SAAS;AAAA,UACT,MAAM;AAAA,QACZ,CAAK;AACD;AAAA,MACD;AAED,YAAMI,EAAQ,gBAAgBJ,CAAU,EAAE,KAAK,MAAM;AACnD,kBAAU;AAAA,UACR,SAAS;AAAA,UACT,MAAM;AAAA,QACZ,CAAK;AAAA,MACL,CAAG;AAAA,IACH;AAEA,aAASK,EAAOC,GAAOC,GAAM;AAC3B,UAAIA,KAAQ,WAAW;AACrB,QAAAR,EAAIO,CAAK,GACTX,EAAK,qBAAqBE,EAAM,KAAK;AACrC;AAAA,MACD;AAED,UAAIU,KAAQ,UAAU;AACpB,QAAAN,EAAOK,CAAK,GACZX,EAAK,qBAAqBE,EAAM,KAAK;AACrC;AAAA,MACD;AAED,UAAIU,KAAQ,UAAU;AACpB,QAAAJ,EAAeG,CAAK;AACpB;AAAA,MACD;AAAA,IACH;;;;;;;;;;ACrEe,MAAME,UAA8BC,EAAgB;AAAA,EACjE,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,iBAAiBD,EAAU,gBAChC,KAAK,QAAQA,EAAU,OACvB,KAAK,UAAUE,GACf,KAAK,SAASC,GACd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AAAA,EAED,gBAAgB;AACd,WAAO;AAAA,MACL,YAAY;AAAA,IAClB;AAAA,EACG;AACH;"}
@@ -1,4 +1,4 @@
1
- import { B as o } from "./index-BwzGvDow.js";
1
+ import { B as o } from "./index-BX1xTWzJ.js";
2
2
  class p extends o {
3
3
  constructor(e, t) {
4
4
  super(e, t), this.component = e.component, this.display = e.component, this.editor = e.component, this.checkValidProperties(e);
@@ -7,4 +7,4 @@ class p extends o {
7
7
  export {
8
8
  p as default
9
9
  };
10
- //# sourceMappingURL=config-BeHPbbQz.js.map
10
+ //# sourceMappingURL=config-C7y05luV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-BeHPbbQz.js","sources":["../src/framework/field/component/config.js"],"sourcesContent":["import BaseFieldConfig from \"../base-field-config\";\n\nexport default class ComponentFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.component = rawConfig.component;\n this.display = rawConfig.component;\n this.editor = rawConfig.component;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["ComponentFieldConfig","BaseFieldConfig","rawConfig","domain"],"mappings":";AAEe,MAAMA,UAA6BC,EAAgB;AAAA,EAChE,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,YAAYD,EAAU,WAC3B,KAAK,UAAUA,EAAU,WACzB,KAAK,SAASA,EAAU,WAExB,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-C7y05luV.js","sources":["../src/framework/field/component/config.js"],"sourcesContent":["import BaseFieldConfig from \"../base-field-config\";\n\nexport default class ComponentFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.component = rawConfig.component;\n this.display = rawConfig.component;\n this.editor = rawConfig.component;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["ComponentFieldConfig","BaseFieldConfig","rawConfig","domain"],"mappings":";AAEe,MAAMA,UAA6BC,EAAgB;AAAA,EAChE,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,YAAYD,EAAU,WAC3B,KAAK,UAAUA,EAAU,WACzB,KAAK,SAASA,EAAU,WAExB,KAAK,qBAAqBA,CAAS;AAAA,EACpC;AACH;"}
@@ -1,4 +1,4 @@
1
- import { B as t, F as i } from "./index-BwzGvDow.js";
1
+ import { B as t, F as i } from "./index-BX1xTWzJ.js";
2
2
  class o extends t {
3
3
  constructor(e, s) {
4
4
  super(e, s), this.editable = () => !1, this.isRouter = typeof e.isRouter > "u" ? !0 : e.isRouter, this.rowQuery = e.rowQuery || (() => ({})), this.display = i, this.fixed = !0, this.checkValidProperties(e);
@@ -7,4 +7,4 @@ class o extends t {
7
7
  export {
8
8
  o as default
9
9
  };
10
- //# sourceMappingURL=config-RrvqfU89.js.map
10
+ //# sourceMappingURL=config-ClsjosNk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-RrvqfU89.js","sources":["../src/framework/field/row-id/config.js"],"sourcesContent":["import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\n\nexport default class RowIdFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.editable = () => false;\n this.isRouter =\n typeof rawConfig.isRouter === \"undefined\" ? true : rawConfig.isRouter;\n this.rowQuery = rawConfig.rowQuery || (() => ({}));\n this.display = FieldDisplay;\n this.fixed = true;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["RowIdFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay"],"mappings":";AAGe,MAAMA,UAAyBC,EAAgB;AAAA,EAC5D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,WAAW,MAAM,IACtB,KAAK,WACH,OAAOD,EAAU,WAAa,MAAc,KAAOA,EAAU,UAC/D,KAAK,WAAWA,EAAU,aAAa,OAAO,CAAA,KAC9C,KAAK,UAAUE,GACf,KAAK,QAAQ,IAEb,KAAK,qBAAqBF,CAAS;AAAA,EACpC;AACH;"}
1
+ {"version":3,"file":"config-ClsjosNk.js","sources":["../src/framework/field/row-id/config.js"],"sourcesContent":["import BaseFieldConfig from \"../base-field-config\";\nimport FieldDisplay from \"./FieldDisplay.vue\";\n\nexport default class RowIdFieldConfig extends BaseFieldConfig {\n constructor(rawConfig, domain) {\n super(rawConfig, domain);\n this.editable = () => false;\n this.isRouter =\n typeof rawConfig.isRouter === \"undefined\" ? true : rawConfig.isRouter;\n this.rowQuery = rawConfig.rowQuery || (() => ({}));\n this.display = FieldDisplay;\n this.fixed = true;\n\n this.checkValidProperties(rawConfig);\n }\n}\n"],"names":["RowIdFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay"],"mappings":";AAGe,MAAMA,UAAyBC,EAAgB;AAAA,EAC5D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,WAAW,MAAM,IACtB,KAAK,WACH,OAAOD,EAAU,WAAa,MAAc,KAAOA,EAAU,UAC/D,KAAK,WAAWA,EAAU,aAAa,OAAO,CAAA,KAC9C,KAAK,UAAUE,GACf,KAAK,QAAQ,IAEb,KAAK,qBAAqBF,CAAS;AAAA,EACpC;AACH;"}
@@ -1,6 +1,6 @@
1
- import { E as V, B as y } from "./index-BwzGvDow.js";
1
+ import { E as V, B as y } from "./index-BX1xTWzJ.js";
2
2
  import { defineAsyncComponent as c, ref as m, watch as p, openBlock as i, createBlock as u, unref as f, reactive as b } from "vue";
3
- const _ = {
3
+ const h = {
4
4
  __name: "FieldDisplay",
5
5
  props: {
6
6
  field: {
@@ -30,7 +30,7 @@ const _ = {
30
30
  "read-only": !0
31
31
  }, null, 8, ["modelValue"])) : (i(), u(V, { key: 1 }));
32
32
  }
33
- }, h = _, x = {
33
+ }, _ = h, g = {
34
34
  __name: "FieldEditor",
35
35
  props: {
36
36
  modelValue: Object,
@@ -59,13 +59,18 @@ const _ = {
59
59
  onChange: r
60
60
  }, null, 8, ["modelValue"]));
61
61
  }
62
- }, g = x;
62
+ }, x = g;
63
63
  class k extends y {
64
64
  constructor(o, t) {
65
- super(o, t), this.display = h, this.editor = g, this.checkValidProperties(o);
65
+ super(o, t), this.display = _, this.editor = x, this.checkValidProperties(o);
66
+ }
67
+ defaultConfig() {
68
+ return {
69
+ showInList: !1
70
+ };
66
71
  }
67
72
  }
68
73
  export {
69
74
  k as default
70
75
  };
71
- //# sourceMappingURL=config-HAzXnrOe.js.map
76
+ //# sourceMappingURL=config-CsDCisYj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-HAzXnrOe.js","sources":["../src/framework/field/json/FieldDisplay.vue","../src/framework/field/json/FieldEditor.vue","../src/framework/field/json/config.js"],"sourcesContent":["<script setup>\nimport { defineAsyncComponent, ref, watch } from \"vue\";\nimport EmptyTip from \"../../component/EmptyTip.vue\";\n\nconst JsonEditorVue = defineAsyncComponent(() => {\n return import(\"json-editor-vue\");\n});\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\n\nconst valid = ref(false);\nconst formattedValue = ref(\"加载中...\");\n\nwatch(\n () => props.row,\n () => {\n valid.value = false;\n const value = props.row[props.field.code];\n if (value === undefined || value === null) {\n return;\n }\n\n if (`${value}`.trim() === \"\") {\n return;\n }\n\n valid.value = true;\n formattedValue.value = value;\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <JsonEditorVue\n v-if=\"valid\"\n v-model=\"formattedValue\"\n mode=\"text\"\n :main-menu-bar=\"false\"\n :navigation-bar=\"false\"\n :read-only=\"true\"\n />\n <EmptyTip v-else />\n</template>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <JsonEditorVue\n v-model=\"_form.value\"\n style=\"width: 100%; height: 300px\"\n mode=\"text\"\n :main-menu-bar=\"false\"\n :navigation-bar=\"false\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { reactive, watch, defineAsyncComponent } from \"vue\";\n\nconst JsonEditorVue = defineAsyncComponent(() => {\n return import(\"json-editor-vue\");\n});\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Object,\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 JsonFieldConfig 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":["JsonEditorVue","defineAsyncComponent","props","__props","valid","ref","formattedValue","watch","value","emit","__emit","_form","reactive","change","JsonFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;AAIA,UAAMA,IAAgBC,EAAqB,MAClC,OAAO,iBAAiB,CAChC,GAEKC,IAAQC,GASRC,IAAQC,EAAI,EAAK,GACjBC,IAAiBD,EAAI,QAAQ;AAEnC,WAAAE;AAAA,MACE,MAAML,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAE,EAAM,QAAQ;AACd,cAAMI,IAAQN,EAAM,IAAIA,EAAM,MAAM,IAAI;AACxC,QAA2BM,KAAU,QAIjC,GAAGA,CAAK,GAAG,KAAI,MAAO,OAI1BJ,EAAM,QAAQ,IACdE,EAAe,QAAQE;AAAA,MACxB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;;;;;;;;;ACvBA,UAAMR,IAAgBC,EAAqB,MAClC,OAAO,iBAAiB,CAChC,GAEKQ,IAAOC,GACPR,IAAQC,GAKRQ,IAAQC,EAAS,EAAE,OAAOV,EAAM,WAAY,CAAA;AAElD,aAASW,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAJ;AAAA,MACE,MAAML,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAS,EAAM,QAAQT,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;AChCe,MAAMY,UAAwBC,EAAgB;AAAA,EAC3D,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-CsDCisYj.js","sources":["../src/framework/field/json/FieldDisplay.vue","../src/framework/field/json/FieldEditor.vue","../src/framework/field/json/config.js"],"sourcesContent":["<script setup>\nimport { defineAsyncComponent, ref, watch } from \"vue\";\nimport EmptyTip from \"../../component/EmptyTip.vue\";\n\nconst JsonEditorVue = defineAsyncComponent(() => {\n return import(\"json-editor-vue\");\n});\n\nconst props = defineProps({\n field: {\n type: Object,\n },\n row: {\n type: Object,\n },\n});\n\nconst valid = ref(false);\nconst formattedValue = ref(\"加载中...\");\n\nwatch(\n () => props.row,\n () => {\n valid.value = false;\n const value = props.row[props.field.code];\n if (value === undefined || value === null) {\n return;\n }\n\n if (`${value}`.trim() === \"\") {\n return;\n }\n\n valid.value = true;\n formattedValue.value = value;\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <JsonEditorVue\n v-if=\"valid\"\n v-model=\"formattedValue\"\n mode=\"text\"\n :main-menu-bar=\"false\"\n :navigation-bar=\"false\"\n :read-only=\"true\"\n />\n <EmptyTip v-else />\n</template>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <JsonEditorVue\n v-model=\"_form.value\"\n style=\"width: 100%; height: 300px\"\n mode=\"text\"\n :main-menu-bar=\"false\"\n :navigation-bar=\"false\"\n @change=\"change\"\n />\n</template>\n\n<script setup>\nimport { reactive, watch, defineAsyncComponent } from \"vue\";\n\nconst JsonEditorVue = defineAsyncComponent(() => {\n return import(\"json-editor-vue\");\n});\n\nconst emit = defineEmits([\"update:modelValue\"]);\nconst props = defineProps({\n modelValue: Object,\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 JsonFieldConfig 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 defaultConfig() {\n return {\n showInList: false,\n };\n }\n}\n"],"names":["JsonEditorVue","defineAsyncComponent","props","__props","valid","ref","formattedValue","watch","value","emit","__emit","_form","reactive","change","JsonFieldConfig","BaseFieldConfig","rawConfig","domain","FieldDisplay","FieldEditor"],"mappings":";;;;;;;;;;;;;AAIA,UAAMA,IAAgBC,EAAqB,MAClC,OAAO,iBAAiB,CAChC,GAEKC,IAAQC,GASRC,IAAQC,EAAI,EAAK,GACjBC,IAAiBD,EAAI,QAAQ;AAEnC,WAAAE;AAAA,MACE,MAAML,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAE,EAAM,QAAQ;AACd,cAAMI,IAAQN,EAAM,IAAIA,EAAM,MAAM,IAAI;AACxC,QAA2BM,KAAU,QAIjC,GAAGA,CAAK,GAAG,KAAI,MAAO,OAI1BJ,EAAM,QAAQ,IACdE,EAAe,QAAQE;AAAA,MACxB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;;;;;;;;;ACvBA,UAAMR,IAAgBC,EAAqB,MAClC,OAAO,iBAAiB,CAChC,GAEKQ,IAAOC,GACPR,IAAQC,GAKRQ,IAAQC,EAAS,EAAE,OAAOV,EAAM,WAAY,CAAA;AAElD,aAASW,IAAS;AAChB,MAAAJ,EAAK,qBAAqBE,EAAM,KAAK;AAAA,IACvC;AAEA,WAAAJ;AAAA,MACE,MAAML,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAS,EAAM,QAAQT,EAAM;AAAA,MACrB;AAAA,MACD,EAAE,WAAW,GAAM;AAAA,IACrB;;;;;;;;;;;AChCe,MAAMY,UAAwBC,EAAgB;AAAA,EAC3D,YAAYC,GAAWC,GAAQ;AAC7B,UAAMD,GAAWC,CAAM,GACvB,KAAK,UAAUC,GACf,KAAK,SAASC,GAEd,KAAK,qBAAqBH,CAAS;AAAA,EACpC;AAAA,EAED,gBAAgB;AACd,WAAO;AAAA,MACL,YAAY;AAAA,IAClB;AAAA,EACG;AACH;"}