@qxs-bns/components 0.0.30 → 0.0.31

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 (87) hide show
  1. package/es/package.json.mjs +1 -1
  2. package/es/src/make-installer.mjs.map +1 -1
  3. package/es/src/photo-crop-tool/src/composables.mjs.map +1 -1
  4. package/lib/package.json.cjs +1 -1
  5. package/lib/src/make-installer.cjs.map +1 -1
  6. package/lib/src/photo-crop-tool/src/composables.cjs.map +1 -1
  7. package/package.json +1 -1
  8. package/types/_virtual/_plugin-vue_export-helper.d.ts +1 -0
  9. package/types/index.d.ts +1 -0
  10. package/types/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.d.ts +1 -0
  11. package/types/package.json.d.ts +1 -0
  12. package/types/src/components.d.ts +1 -0
  13. package/types/src/data-chart/index.d.ts +1 -0
  14. package/types/src/data-chart/src/components/area.vue.d.ts +1 -0
  15. package/types/src/data-chart/src/components/area.vue.d2.ts +1 -0
  16. package/types/src/data-chart/src/components/area.vue.d3.ts +1 -0
  17. package/types/src/data-chart/src/components/bar.vue.d.ts +1 -0
  18. package/types/src/data-chart/src/components/bar.vue.d2.ts +1 -0
  19. package/types/src/data-chart/src/components/card.vue.d.ts +1 -0
  20. package/types/src/data-chart/src/components/card.vue.d2.ts +1 -0
  21. package/types/src/data-chart/src/components/card.vue.d3.ts +1 -0
  22. package/types/src/data-chart/src/components/empty.svg.d.ts +1 -0
  23. package/types/src/data-chart/src/components/empty.vue.d.ts +1 -0
  24. package/types/src/data-chart/src/components/empty.vue.d2.ts +1 -0
  25. package/types/src/data-chart/src/components/funnel.vue.d.ts +1 -0
  26. package/types/src/data-chart/src/components/funnel.vue.d2.ts +1 -0
  27. package/types/src/data-chart/src/components/line.vue.d.ts +1 -0
  28. package/types/src/data-chart/src/components/line.vue.d2.ts +1 -0
  29. package/types/src/data-chart/src/components/line.vue.d3.ts +1 -0
  30. package/types/src/data-chart/src/components/pie.vue.d.ts +1 -0
  31. package/types/src/data-chart/src/components/pie.vue.d2.ts +1 -0
  32. package/types/src/data-chart/src/components/radar.vue.d.ts +1 -0
  33. package/types/src/data-chart/src/components/radar.vue.d2.ts +1 -0
  34. package/types/src/data-chart/src/components/scatter-simple.vue.d.ts +1 -0
  35. package/types/src/data-chart/src/components/scatter-simple.vue.d2.ts +1 -0
  36. package/types/src/data-chart/src/components/scatter.vue.d.ts +1 -0
  37. package/types/src/data-chart/src/components/scatter.vue.d2.ts +1 -0
  38. package/types/src/data-chart/src/components/table.vue.d.ts +1 -0
  39. package/types/src/data-chart/src/components/table.vue.d2.ts +1 -0
  40. package/types/src/data-chart/src/data-chart.vue.d.ts +1 -0
  41. package/types/src/data-chart/src/data-chart.vue.d2.ts +1 -0
  42. package/types/src/data-chart/src/utils/config.d.ts +1 -0
  43. package/types/src/data-chart/src/utils/injectionKeys.d.ts +1 -0
  44. package/types/src/data-chart/src/utils/useCharts.d.ts +1 -0
  45. package/types/src/defaults.d.ts +1 -0
  46. package/types/src/file-upload/index.d.ts +1 -0
  47. package/types/src/file-upload/src/file-upload.vue.d.ts +1 -0
  48. package/types/src/file-upload/src/file-upload.vue.d2.ts +1 -0
  49. package/types/src/fixed-action-bar/index.d.ts +1 -0
  50. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +1 -0
  51. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d2.ts +1 -0
  52. package/types/src/image-upload/index.d.ts +1 -0
  53. package/types/src/image-upload/src/image-upload.vue.d.ts +1 -0
  54. package/types/src/image-upload/src/image-upload.vue.d2.ts +1 -0
  55. package/types/src/make-installer.d.ts +1 -0
  56. package/types/src/photo-crop-tool/index.d.ts +1 -0
  57. package/types/src/photo-crop-tool/src/composables.d.ts +1 -0
  58. package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +1 -0
  59. package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d2.ts +1 -0
  60. package/types/src/subject-action/index.d.ts +1 -0
  61. package/types/src/subject-action/src/subject-action.vue.d.ts +1 -0
  62. package/types/src/subject-action/src/subject-action.vue.d2.ts +1 -0
  63. package/types/src/subject-layout/index.d.ts +1 -0
  64. package/types/src/subject-layout/src/subject-layout.vue.d.ts +1 -0
  65. package/types/src/subject-layout/src/subject-layout.vue.d2.ts +1 -0
  66. package/types/src/subject-list/index.d.ts +1 -0
  67. package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +1 -0
  68. package/types/src/subject-list/src/components/SubjectPageEnd.vue.d2.ts +1 -0
  69. package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts +1 -0
  70. package/types/src/subject-list/src/components/SubjectRichText.vue.d2.ts +1 -0
  71. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts +1 -0
  72. package/types/src/subject-list/src/components/subject-blank-fill.vue.d2.ts +1 -0
  73. package/types/src/subject-list/src/components/subject-scale.vue.d.ts +1 -0
  74. package/types/src/subject-list/src/components/subject-scale.vue.d2.ts +1 -0
  75. package/types/src/subject-list/src/components/subject-single.vue.d.ts +1 -0
  76. package/types/src/subject-list/src/components/subject-single.vue.d2.ts +1 -0
  77. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts +1 -0
  78. package/types/src/subject-list/src/components/subject-text-fill.vue.d2.ts +1 -0
  79. package/types/src/subject-list/src/subject-list.vue.d.ts +1 -0
  80. package/types/src/subject-list/src/subject-list.vue.d2.ts +1 -0
  81. package/types/src/subject-type/index.d.ts +1 -0
  82. package/types/src/subject-type/src/subject-type.vue.d.ts +1 -0
  83. package/types/src/subject-type/src/subject-type.vue.d2.ts +1 -0
  84. package/types/src/tiny-mce-editor/index.d.ts +1 -0
  85. package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts +1 -0
  86. package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d2.ts +1 -0
  87. package/types/src/withInstall.d.ts +1 -0
@@ -1,2 +1,2 @@
1
- var r="0.0.30";export{r as version};
1
+ var r="0.0.31";export{r as version};
2
2
  //# sourceMappingURL=package.json.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.mjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue-demi'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["makeInstaller","components","version","install","app","n","use"],"mappings":"8CAGA,SAASA,EAAcC,GASd,MAAA,CACLC,UACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACVG,EAAAE,IAAIL,EAAWI,GACrB,EAOJ"}
1
+ {"version":3,"file":"make-installer.mjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["makeInstaller","components","version","install","app","n","use"],"mappings":"8CAGA,SAASA,EAAcC,GASd,MAAA,CACLC,UACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACVG,EAAAE,IAAIL,EAAWI,GACrB,EAOJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"composables.mjs","sources":["../../../../../../packages/components/src/photo-crop-tool/src/composables.ts"],"sourcesContent":["// useCanvas.ts\nimport type { Ref } from 'vue-demi'\nimport { ref } from 'vue-demi'\n\nexport function useCanvas(canvasElement: HTMLCanvasElement) {\n const context: Ref<CanvasRenderingContext2D | null> = ref(null)\n\n if (canvasElement) {\n context.value = canvasElement.getContext('2d')\n }\n\n const clearCanvas = () => {\n if (context.value) {\n context.value.clearRect(0, 0, canvasElement.width, canvasElement.height)\n }\n }\n\n const drawColor = (x: number, y: number, width: number, height: number, color: string) => {\n if (context.value) {\n context.value.fillStyle = color\n context.value.fillRect(x, y, width, height)\n }\n }\n\n const drawImage = (image: HTMLImageElement, x: number, y: number, width: number, height: number) => {\n context.value!.drawImage(image, x, y, width, height)\n }\n\n const cropCanvas = (x: number, y: number, width: number, height: number): Promise<File | null> => {\n return new Promise((resolve) => {\n if (context.value) {\n const croppedCanvas = document.createElement('canvas')\n croppedCanvas.width = width\n croppedCanvas.height = height\n const croppedContext = croppedCanvas.getContext('2d')\n if (croppedContext) {\n croppedContext.drawImage(canvasElement, x, y, width, height, 0, 0, width, height)\n croppedCanvas.toBlob((blob) => {\n if (blob) {\n const file = new File([blob], 'cropped_image.png', { type: 'image/png' })\n resolve(file)\n }\n else {\n resolve(null)\n }\n }, 'image/png')\n }\n else {\n resolve(null)\n }\n }\n else {\n resolve(null)\n }\n })\n }\n\n return {\n clearCanvas,\n drawColor,\n drawImage,\n cropCanvas,\n }\n}\n"],"names":["useCanvas","canvasElement","context","ref","value","getContext","clearCanvas","clearRect","width","height","drawColor","x","y","color","fillStyle","fillRect","drawImage","image","cropCanvas","Promise","resolve","croppedCanvas","document","createElement","croppedContext","toBlob","blob","file","File","type"],"mappings":"0BAIO,SAASA,EAAUC,GAClB,MAAAC,EAAgDC,EAAI,MAEtDF,IACMC,EAAAE,MAAQH,EAAcI,WAAW,OAiDpC,MAAA,CACLC,YA/CkBA,KACdJ,EAAQE,OACVF,EAAQE,MAAMG,UAAU,EAAG,EAAGN,EAAcO,MAAOP,EAAcQ,OACnE,EA6CAC,UA1CgBA,CAACC,EAAWC,EAAWJ,EAAeC,EAAgBI,KAClEX,EAAQE,QACVF,EAAQE,MAAMU,UAAYD,EAC1BX,EAAQE,MAAMW,SAASJ,EAAGC,EAAGJ,EAAOC,GACtC,EAuCAO,UApCgBA,CAACC,EAAyBN,EAAWC,EAAWJ,EAAeC,KAC/EP,EAAQE,MAAOY,UAAUC,EAAON,EAAGC,EAAGJ,EAAOC,EAAM,EAoCnDS,WAjCiBA,CAACP,EAAWC,EAAWJ,EAAeC,IAChD,IAAIU,SAASC,IAClB,GAAIlB,EAAQE,MAAO,CACX,MAAAiB,EAAgBC,SAASC,cAAc,UAC7CF,EAAcb,MAAQA,EACtBa,EAAcZ,OAASA,EACjB,MAAAe,EAAiBH,EAAchB,WAAW,MAC5CmB,GACaA,EAAAR,UAAUf,EAAeU,EAAGC,EAAGJ,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,GAC5DY,EAAAI,QAAQC,IACpB,GAAIA,EAAM,CACF,MAAAC,EAAO,IAAIC,KAAK,CAACF,GAAO,oBAAqB,CAAEG,KAAM,cAC3DT,EAAQO,EACV,MAEEP,EAAQ,KACV,GACC,cAGHA,EAAQ,KAEZ,MAEEA,EAAQ,KACV,IAUN"}
1
+ {"version":3,"file":"composables.mjs","sources":["../../../../../../packages/components/src/photo-crop-tool/src/composables.ts"],"sourcesContent":["// useCanvas.ts\nimport type { Ref } from 'vue'\n\nexport function useCanvas(canvasElement: HTMLCanvasElement) {\n const context: Ref<CanvasRenderingContext2D | null> = ref(null)\n\n if (canvasElement) {\n context.value = canvasElement.getContext('2d')\n }\n\n const clearCanvas = () => {\n if (context.value) {\n context.value.clearRect(0, 0, canvasElement.width, canvasElement.height)\n }\n }\n\n const drawColor = (x: number, y: number, width: number, height: number, color: string) => {\n if (context.value) {\n context.value.fillStyle = color\n context.value.fillRect(x, y, width, height)\n }\n }\n\n const drawImage = (image: HTMLImageElement, x: number, y: number, width: number, height: number) => {\n context.value!.drawImage(image, x, y, width, height)\n }\n\n const cropCanvas = (x: number, y: number, width: number, height: number): Promise<File | null> => {\n return new Promise((resolve) => {\n if (context.value) {\n const croppedCanvas = document.createElement('canvas')\n croppedCanvas.width = width\n croppedCanvas.height = height\n const croppedContext = croppedCanvas.getContext('2d')\n if (croppedContext) {\n croppedContext.drawImage(canvasElement, x, y, width, height, 0, 0, width, height)\n croppedCanvas.toBlob((blob) => {\n if (blob) {\n const file = new File([blob], 'cropped_image.png', { type: 'image/png' })\n resolve(file)\n }\n else {\n resolve(null)\n }\n }, 'image/png')\n }\n else {\n resolve(null)\n }\n }\n else {\n resolve(null)\n }\n })\n }\n\n return {\n clearCanvas,\n drawColor,\n drawImage,\n cropCanvas,\n }\n}\n"],"names":["useCanvas","canvasElement","context","ref","value","getContext","clearCanvas","clearRect","width","height","drawColor","x","y","color","fillStyle","fillRect","drawImage","image","cropCanvas","Promise","resolve","croppedCanvas","document","createElement","croppedContext","toBlob","blob","file","File","type"],"mappings":"0BAGO,SAASA,EAAUC,GAClB,MAAAC,EAAgDC,EAAI,MAEtDF,IACMC,EAAAE,MAAQH,EAAcI,WAAW,OAiDpC,MAAA,CACLC,YA/CkBA,KACdJ,EAAQE,OACVF,EAAQE,MAAMG,UAAU,EAAG,EAAGN,EAAcO,MAAOP,EAAcQ,OACnE,EA6CAC,UA1CgBA,CAACC,EAAWC,EAAWJ,EAAeC,EAAgBI,KAClEX,EAAQE,QACVF,EAAQE,MAAMU,UAAYD,EAC1BX,EAAQE,MAAMW,SAASJ,EAAGC,EAAGJ,EAAOC,GACtC,EAuCAO,UApCgBA,CAACC,EAAyBN,EAAWC,EAAWJ,EAAeC,KAC/EP,EAAQE,MAAOY,UAAUC,EAAON,EAAGC,EAAGJ,EAAOC,EAAM,EAoCnDS,WAjCiBA,CAACP,EAAWC,EAAWJ,EAAeC,IAChD,IAAIU,SAASC,IAClB,GAAIlB,EAAQE,MAAO,CACX,MAAAiB,EAAgBC,SAASC,cAAc,UAC7CF,EAAcb,MAAQA,EACtBa,EAAcZ,OAASA,EACjB,MAAAe,EAAiBH,EAAchB,WAAW,MAC5CmB,GACaA,EAAAR,UAAUf,EAAeU,EAAGC,EAAGJ,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,GAC5DY,EAAAI,QAAQC,IACpB,GAAIA,EAAM,CACF,MAAAC,EAAO,IAAIC,KAAK,CAACF,GAAO,oBAAqB,CAAEG,KAAM,cAC3DT,EAAQO,EACV,MAEEP,EAAQ,KACV,GACC,cAGHA,EAAQ,KAEZ,MAEEA,EAAQ,KACV,IAUN"}
@@ -1,2 +1,2 @@
1
- "use strict";exports.version="0.0.30";
1
+ "use strict";exports.version="0.0.31";
2
2
  //# sourceMappingURL=package.json.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.cjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue-demi'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["components","version","install","app","n","use"],"mappings":"wEAGA,SAAuBA,GASd,MAAA,SACLC,EAAAA,QACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACVG,EAAAE,IAAIL,EAAWI,GACrB,EAOJ"}
1
+ {"version":3,"file":"make-installer.cjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["components","version","install","app","n","use"],"mappings":"wEAGA,SAAuBA,GASd,MAAA,SACLC,EAAAA,QACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACVG,EAAAE,IAAIL,EAAWI,GACrB,EAOJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"composables.cjs","sources":["../../../../../../packages/components/src/photo-crop-tool/src/composables.ts"],"sourcesContent":["// useCanvas.ts\nimport type { Ref } from 'vue-demi'\nimport { ref } from 'vue-demi'\n\nexport function useCanvas(canvasElement: HTMLCanvasElement) {\n const context: Ref<CanvasRenderingContext2D | null> = ref(null)\n\n if (canvasElement) {\n context.value = canvasElement.getContext('2d')\n }\n\n const clearCanvas = () => {\n if (context.value) {\n context.value.clearRect(0, 0, canvasElement.width, canvasElement.height)\n }\n }\n\n const drawColor = (x: number, y: number, width: number, height: number, color: string) => {\n if (context.value) {\n context.value.fillStyle = color\n context.value.fillRect(x, y, width, height)\n }\n }\n\n const drawImage = (image: HTMLImageElement, x: number, y: number, width: number, height: number) => {\n context.value!.drawImage(image, x, y, width, height)\n }\n\n const cropCanvas = (x: number, y: number, width: number, height: number): Promise<File | null> => {\n return new Promise((resolve) => {\n if (context.value) {\n const croppedCanvas = document.createElement('canvas')\n croppedCanvas.width = width\n croppedCanvas.height = height\n const croppedContext = croppedCanvas.getContext('2d')\n if (croppedContext) {\n croppedContext.drawImage(canvasElement, x, y, width, height, 0, 0, width, height)\n croppedCanvas.toBlob((blob) => {\n if (blob) {\n const file = new File([blob], 'cropped_image.png', { type: 'image/png' })\n resolve(file)\n }\n else {\n resolve(null)\n }\n }, 'image/png')\n }\n else {\n resolve(null)\n }\n }\n else {\n resolve(null)\n }\n })\n }\n\n return {\n clearCanvas,\n drawColor,\n drawImage,\n cropCanvas,\n }\n}\n"],"names":["canvasElement","context","ref","value","getContext","clearCanvas","clearRect","width","height","drawColor","x","y","color","fillStyle","fillRect","drawImage","image","cropCanvas","Promise","resolve","croppedCanvas","document","createElement","croppedContext","toBlob","blob","file","File","type"],"mappings":"oDAIO,SAAmBA,GAClB,MAAAC,EAAgDC,MAAI,MAoDnD,OAlDHF,IACMC,EAAAE,MAAQH,EAAcI,WAAW,OAiDpC,CACLC,YA/CkBA,KACdJ,EAAQE,OACVF,EAAQE,MAAMG,UAAU,EAAG,EAAGN,EAAcO,MAAOP,EAAcQ,OACnE,EA6CAC,UA1CgBA,CAACC,EAAWC,EAAWJ,EAAeC,EAAgBI,KAClEX,EAAQE,QACVF,EAAQE,MAAMU,UAAYD,EAC1BX,EAAQE,MAAMW,SAASJ,EAAGC,EAAGJ,EAAOC,GACtC,EAuCAO,UApCgBA,CAACC,EAAyBN,EAAWC,EAAWJ,EAAeC,KAC/EP,EAAQE,MAAOY,UAAUC,EAAON,EAAGC,EAAGJ,EAAOC,EAAM,EAoCnDS,WAjCiBA,CAACP,EAAWC,EAAWJ,EAAeC,IAChD,IAAIU,SAASC,IAClB,GAAIlB,EAAQE,MAAO,CACX,MAAAiB,EAAgBC,SAASC,cAAc,UAC7CF,EAAcb,MAAQA,EACtBa,EAAcZ,OAASA,EACjB,MAAAe,EAAiBH,EAAchB,WAAW,MAC5CmB,GACaA,EAAAR,UAAUf,EAAeU,EAAGC,EAAGJ,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,GAC5DY,EAAAI,QAAQC,IACpB,GAAIA,EAAM,CACF,MAAAC,EAAO,IAAIC,KAAK,CAACF,GAAO,oBAAqB,CAAEG,KAAM,cAC3DT,EAAQO,EACV,MAEEP,EAAQ,KACV,GACC,cAGHA,EAAQ,KAEZ,MAEEA,EAAQ,KACV,IAUN"}
1
+ {"version":3,"file":"composables.cjs","sources":["../../../../../../packages/components/src/photo-crop-tool/src/composables.ts"],"sourcesContent":["// useCanvas.ts\nimport type { Ref } from 'vue'\n\nexport function useCanvas(canvasElement: HTMLCanvasElement) {\n const context: Ref<CanvasRenderingContext2D | null> = ref(null)\n\n if (canvasElement) {\n context.value = canvasElement.getContext('2d')\n }\n\n const clearCanvas = () => {\n if (context.value) {\n context.value.clearRect(0, 0, canvasElement.width, canvasElement.height)\n }\n }\n\n const drawColor = (x: number, y: number, width: number, height: number, color: string) => {\n if (context.value) {\n context.value.fillStyle = color\n context.value.fillRect(x, y, width, height)\n }\n }\n\n const drawImage = (image: HTMLImageElement, x: number, y: number, width: number, height: number) => {\n context.value!.drawImage(image, x, y, width, height)\n }\n\n const cropCanvas = (x: number, y: number, width: number, height: number): Promise<File | null> => {\n return new Promise((resolve) => {\n if (context.value) {\n const croppedCanvas = document.createElement('canvas')\n croppedCanvas.width = width\n croppedCanvas.height = height\n const croppedContext = croppedCanvas.getContext('2d')\n if (croppedContext) {\n croppedContext.drawImage(canvasElement, x, y, width, height, 0, 0, width, height)\n croppedCanvas.toBlob((blob) => {\n if (blob) {\n const file = new File([blob], 'cropped_image.png', { type: 'image/png' })\n resolve(file)\n }\n else {\n resolve(null)\n }\n }, 'image/png')\n }\n else {\n resolve(null)\n }\n }\n else {\n resolve(null)\n }\n })\n }\n\n return {\n clearCanvas,\n drawColor,\n drawImage,\n cropCanvas,\n }\n}\n"],"names":["canvasElement","context","ref","value","getContext","clearCanvas","clearRect","width","height","drawColor","x","y","color","fillStyle","fillRect","drawImage","image","cropCanvas","Promise","resolve","croppedCanvas","document","createElement","croppedContext","toBlob","blob","file","File","type"],"mappings":"oDAGO,SAAmBA,GAClB,MAAAC,EAAgDC,MAAI,MAoDnD,OAlDHF,IACMC,EAAAE,MAAQH,EAAcI,WAAW,OAiDpC,CACLC,YA/CkBA,KACdJ,EAAQE,OACVF,EAAQE,MAAMG,UAAU,EAAG,EAAGN,EAAcO,MAAOP,EAAcQ,OACnE,EA6CAC,UA1CgBA,CAACC,EAAWC,EAAWJ,EAAeC,EAAgBI,KAClEX,EAAQE,QACVF,EAAQE,MAAMU,UAAYD,EAC1BX,EAAQE,MAAMW,SAASJ,EAAGC,EAAGJ,EAAOC,GACtC,EAuCAO,UApCgBA,CAACC,EAAyBN,EAAWC,EAAWJ,EAAeC,KAC/EP,EAAQE,MAAOY,UAAUC,EAAON,EAAGC,EAAGJ,EAAOC,EAAM,EAoCnDS,WAjCiBA,CAACP,EAAWC,EAAWJ,EAAeC,IAChD,IAAIU,SAASC,IAClB,GAAIlB,EAAQE,MAAO,CACX,MAAAiB,EAAgBC,SAASC,cAAc,UAC7CF,EAAcb,MAAQA,EACtBa,EAAcZ,OAASA,EACjB,MAAAe,EAAiBH,EAAchB,WAAW,MAC5CmB,GACaA,EAAAR,UAAUf,EAAeU,EAAGC,EAAGJ,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,GAC5DY,EAAAI,QAAQC,IACpB,GAAIA,EAAM,CACF,MAAAC,EAAO,IAAIC,KAAK,CAACF,GAAO,oBAAqB,CAAEG,KAAM,cAC3DT,EAAQO,EACV,MAEEP,EAAQ,KACV,GACC,cAGHA,EAAQ,KAEZ,MAEEA,EAAQ,KACV,IAUN"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qxs-bns/components",
3
3
  "type": "module",
4
- "version": "0.0.30",
4
+ "version": "0.0.31",
5
5
  "description": "Vue 3 Component Library",
6
6
  "license": "MIT",
7
7
  "homepage": "https://trry-hub.github.io/qxs-bns/",
@@ -0,0 +1 @@
1
+ var t=(t,o)=>{const r=t.__vccOpts||t;for(const[t,c]of o)r[t]=c;return r};export{t as default};
@@ -0,0 +1 @@
1
+ import t from"./src/defaults.d.ts";export{QxsDataChart}from"./src/data-chart/index.d.ts";export{QxsFileUpload}from"./src/file-upload/index.d.ts";export{QxsFixedActionBar}from"./src/fixed-action-bar/index.d.ts";export{QxsImageUpload}from"./src/image-upload/index.d.ts";export{QxsPhotoCropTool}from"./src/photo-crop-tool/index.d.ts";export{QxsSubjectAction}from"./src/subject-action/index.d.ts";export{QxsSubjectLayout}from"./src/subject-layout/index.d.ts";export{QxsSubjectList}from"./src/subject-list/index.d.ts";export{QxsSubjectType}from"./src/subject-type/index.d.ts";export{QxsTinyMceEditor}from"./src/tiny-mce-editor/index.d.ts";const o=t.install,e=t.version;export{t as default,o as install,e as version};
@@ -0,0 +1 @@
1
+ function e(e,t){void 0===t&&(t={});var d=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===d&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}export{e as default};
@@ -0,0 +1 @@
1
+ var r="0.0.31";export{r as version};
@@ -0,0 +1 @@
1
+ export{QxsDataChart}from"./data-chart/index.d.ts";export{QxsFileUpload}from"./file-upload/index.d.ts";export{QxsFixedActionBar}from"./fixed-action-bar/index.d.ts";export{QxsImageUpload}from"./image-upload/index.d.ts";export{QxsPhotoCropTool}from"./photo-crop-tool/index.d.ts";export{QxsSubjectAction}from"./subject-action/index.d.ts";export{QxsSubjectLayout}from"./subject-layout/index.d.ts";export{QxsSubjectList}from"./subject-list/index.d.ts";export{QxsSubjectType}from"./subject-type/index.d.ts";export{QxsTinyMceEditor}from"./tiny-mce-editor/index.d.ts";
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import r from"./src/data-chart.vue.d.ts";const a=t(r);export{a as QxsDataChart,a as default};
@@ -0,0 +1 @@
1
+ import r from"./area.vue.d2.ts";import"./area.vue.d3.ts";import e from"../../../../_virtual/_plugin-vue_export-helper.d.ts";var t=e(r,[["__scopeId","data-v-51660d7b"]]);export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,inject as a,ref as t,computed as r,createElementBlock as n,openBlock as s,createCommentVNode as o,createElementVNode as c}from"vue";import*as i from"echarts";import{getGeoJsonData as l}from"../utils/config.d.ts";import{InjectionChartMerge as u}from"../utils/injectionKeys.d.ts";import{useCharts as m}from"../utils/useCharts.d.ts";const p={class:"data-chart-area-wrap"};var d=e({name:"DataChartArea",__name:"area",props:{chartOptions:{type:null,required:!0},chartData:{type:Object,required:!1,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})}},setup(e){const d=a(u,(e=>e),!0);let h="中国";const f=t({features:[],type:"FeatureCollection"}),D=t(null);let v=null;const y=r((()=>{const{xGroupByDesc:a,groupByDesc:t,colDesc:r,modelName:n,data:s}=e.chartData,o=[];r.forEach((e=>{s.forEach((a=>{o.push(Number(a[e]))}))}));const c={title:{text:n},tooltip:{formatter(e){let a=`${e.name}<br/>`;return c.series?.forEach((t=>{t.data?.forEach((r=>{r.name===e.name&&(a+=`${t.name}:${r.value}</br>`)})),a.includes(t.name)||(a+=`${t.name}:-</br>`)})),a}},visualMap:{min:Math.min(...o,0),max:Math.max(...o,0)},series:r?.map((e=>{const r=[],n=t.find((e=>e.colDesc===("中国"===h?"医院所在省":"医院所在市"))),o={};s.map((t=>{const r=t[("中国"===h?a?.colDesc||"":n?.colDesc)||""],s=f.value.features?.find((({properties:{name:e}})=>e?.includes(r)));return{name:s?.properties?.name||"",value:Number(t[e])}})).forEach((e=>{o[e.name]?o[e.name]=o[e.name]+e.value:o[e.name]=e.value}));for(const e in o)r.push({name:e,value:o[e]});return{name:e,type:"map",map:h,data:r}}))};return d(c,e.chartOptions)}));async function g(e="中国"){if(v&&!v.isDisposed()){v.showLoading();try{const a=await l({adcode:e});if(!a)return void v.hideLoading();f.value=a,h=e;const t=i.registerMap(e,a);return v.hideLoading(),t}catch(e){console.log(e),v.hideLoading()}}}return m({chartDOM:D,chartOptions:y,chartData:r((()=>e.chartData)),initAfter:async function(){await g(),v&&!v.isDisposed()&&(v.getZr()?.on("click",(e=>{e.target||"中国"===h||g("中国")})),v.on("click",(a=>{const t=e.chartData.groupByDesc?.some((e=>"医院所在市"===e.colDesc));"中国"===h&&t&&g(a.name).then((()=>{v&&!v.isDisposed()&&v.setOption(y.value)}))})))},callback:e=>{v=e}}),(e,a)=>(s(),n("div",p,[o(' <el-select\n v-if="isShowSelect"\n v-model="adcode"\n class="city-select"\n size="small"\n @change="selectChina"\n >\n <el-option\n v-for="item in selectList"\n :key="item.value"\n :label="item.label"\n :value="item.value"\n />\n </el-select> '),c("div",{ref_key:"dataChartArea",ref:D,class:"data-chart-area"},null,512)]))}});export{d as default};
@@ -0,0 +1 @@
1
+ import a from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.d.ts";var t="/* unplugin-vue-components disabled */\n.data-chart-area-wrap[data-v-51660d7b] {\n position: relative;\n}\n.data-chart-area-wrap .city-select[data-v-51660d7b] {\n position: absolute;\n top: 10px;\n right: 100px;\n z-index: 1;\n width: 120px;\n}\n.data-chart-area-wrap .data-chart-area[data-v-51660d7b] {\n height: 100%;\n}";a(t);export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,inject as a,ref as t,computed as s,createElementBlock as r,openBlock as o}from"vue";import{uniq as c}from"lodash-es";import{InjectionChartMerge as l}from"../utils/injectionKeys.d.ts";import{useCharts as i}from"../utils/useCharts.d.ts";var p=e({name:"DataChartBar",__name:"bar",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},subShowType:{type:String,required:!0,default:"bar-simple"},chartOptions:{type:null,required:!0}},setup(e){const p=a(l,(e=>e),!0),u=t(null),n=s((()=>{const{colDesc:a,xGroupByDesc:t,groupByDesc:s,data:r=[],modelName:o}=e.chartData,l=Array.from(new Set(r.map((e=>e[t.colDesc||""]))))||[],i=s.find((e=>!e.xAxis))||{groupByValues:[],colDesc:""};i.groupByValues=c(r.map((e=>i.colDesc?String(e[i.colDesc]):""))),t&&t.groupByValues&&(t.groupByValues=c(r.map((e=>t.colDesc?String(e[t.colDesc]):""))));const u={title:{text:o},xAxis:{name:"",type:"category",axisLabel:{interval:0,formatter:e=>e.length>5?`${e.substring(0,5)}...`:e},data:l},yAxis:{type:"value"},legend:{data:[]},dataZoom:[{type:"inside",disabled:l.length<15}]};if(1===s.length)u.series=a.map((e=>({name:e,data:r.map((a=>a[e])),type:"bar",emphasis:{focus:"series"},label:{show:!0,position:"inside"}}))),u.legend.data=a;else if(2===s.length){const e=a.map((e=>i.groupByValues?.map((a=>{const s={name:`${a||"/"}-${e}`,type:"bar",stack:e,emphasis:{focus:"series"},data:[],label:{show:!0,position:"inside"}};return s.data=(t.groupByValues||[]).map((e=>{let o=null;return r.forEach((r=>{i.colDesc&&r[i.colDesc]===a&&t.colDesc&&r[t.colDesc]===e&&s.stack&&(o=r[s.stack]??null)})),o||""})).filter((e=>""!==e)),s}))||[])).flat();u.series=e,delete u.legend}function n(e,a,t,s){Array.isArray(e)?e.forEach((e=>{e&&(e.type=a,"category"===a&&(e.data=t||[],e.name=s||""))})):e&&(e.type=a,"category"===a&&(e.data=t||[],e.name=s||""))}switch(e.subShowType){case"bar-simple":case"default":n(u.xAxis,"category",l,t.colDesc||""),n(u.yAxis,"value");break;case"bar-y-category":n(u.xAxis,"value"),n(u.yAxis,"category",l,t.colDesc||"")}return p(u,e.chartOptions)}));return i({chartDOM:u,chartOptions:n,chartData:s((()=>e.chartData))}),(e,a)=>(o(),r("div",{ref_key:"dataChartBar",ref:u,class:"data-chart-bar"},null,512))}});export{p as default};
@@ -0,0 +1 @@
1
+ import r from"./bar.vue.d.ts";export{r as default};
@@ -0,0 +1 @@
1
+ import r from"./card.vue.d2.ts";import"./card.vue.d3.ts";import t from"../../../../_virtual/_plugin-vue_export-helper.d.ts";var e=t(r,[["__scopeId","data-v-1c14c088"]]);export{e as default};
@@ -0,0 +1 @@
1
+ import{ElScrollbar as a}from"element-plus/es";import{defineComponent as t,createElementBlock as c,openBlock as e,createCommentVNode as l,withDirectives as r,toDisplayString as s,createBlock as d,withCtx as n,createElementVNode as o,normalizeClass as i,Fragment as D,renderList as h,createTextVNode as u,vShow as m,createVNode as p}from"vue";import y from"./empty.vue.d.ts";const v={class:"data-chart-card"},g={key:0,class:"title"},f=["title"],k={class:"context"},x={class:"suffix-icon"},B={key:2,class:"data-chart-card-wrap"},N=["title"],_={class:"context"};var C=t({name:"DataChartCard",__name:"card",props:{chartData:{type:Object,default:()=>({colDesc:[],xGroupByDesc:[],data:[],modelName:""})}},setup(t){const C=t;function G(a){const t=C.chartData.xGroupByDesc?.colDesc||"";return t?t+a[t]:""}return(C,$)=>{const b=a;return e(),c("div",v,[t.chartData.groupByDesc.length?(e(),c("p",g,s(t.chartData.modelName),1)):l("v-if",!0),t.chartData.groupByDesc.length?r((e(),d(b,{key:1},{default:n((()=>[o("div",{class:i({"data-chart-card-grid-layout":t.chartData.groupByDesc.length})},[(e(!0),c(D,null,h(t.chartData.data,((a,l)=>(e(),c("div",{key:l,class:"card-item"},[o("div",{class:"card-title",title:G(a)},s(G(a)),9,f),o("div",k,[(e(!0),c(D,null,h(t.chartData.colDesc,((l,r)=>(e(),c("span",{key:l},[u(s(`${l}: `||"-"),1),o("strong",null,s(a[l]||"-"),1),u(" "+s(r===t.chartData.colDesc.length-1?"":","),1)])))),128))]),o("div",x,s(l+1),1)])))),128))],2)])),_:1},512)),[[m,t.chartData.data.length]]):(e(),c("div",B,[(e(!0),c(D,null,h(t.chartData.data,((a,r)=>(e(),c("div",{key:r,class:"card-item"},[o("div",{class:"card-title",title:t.chartData.modelName},s(t.chartData.modelName),9,N),o("div",_,[(e(!0),c(D,null,h(t.chartData.colDesc,((r,d)=>(e(),c("span",{key:r},[a?(e(),c(D,{key:0},[u(s(`${r}: `||"-"),1),o("strong",null,s(a[r]||"-"),1),u(" "+s(d===t.chartData.colDesc.length-1?"":","),1)],64)):l("v-if",!0)])))),128))])])))),128))])),r(p(y,null,null,512),[[m,!t.chartData.data.length]])])}}});export{C as default};
@@ -0,0 +1 @@
1
+ import a from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.d.ts";var t='/* unplugin-vue-components disabled */\n.data-chart-card[data-v-1c14c088] {\n display: flex;\n flex-direction: column;\n}\n.data-chart-card .title[data-v-1c14c088] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 5px;\n margin-top: 2px;\n margin-bottom: 7px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: bolder;\n color: #464646;\n}\n.data-chart-card .data-chart-card-grid-layout[data-v-1c14c088] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 10px;\n width: calc(100% - 3px);\n}\n.data-chart-card .data-chart-card-wrap[data-v-1c14c088] {\n height: 100% !important;\n}\n.data-chart-card .data-chart-card-wrap .card-item[data-v-1c14c088] {\n width: 100% !important;\n}\n.data-chart-card .card-item[data-v-1c14c088] {\n position: relative;\n background-image: url("./data-chart-card-bg-left.svg"), url("./data-chart-card-bg-right.svg");\n background-repeat: no-repeat;\n background-position: left top, right top;\n background-size: contain, contain;\n border: 2px solid #2196f3;\n border-radius: 6px;\n}\n.data-chart-card .card-item .suffix-icon[data-v-1c14c088] {\n position: absolute;\n right: 1px;\n bottom: calc(25% - 14px);\n width: 20px;\n font-size: 20px;\n font-weight: bold;\n color: #fff;\n text-align: center;\n}\n.data-chart-card .card-item .card-title[data-v-1c14c088] {\n padding-left: 15px;\n margin-top: 10px;\n margin-bottom: 5px;\n overflow: hidden;\n font-size: 16px;\n font-weight: bold;\n color: #2196f3;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-chart-card .card-item .context[data-v-1c14c088] {\n padding: 0 30px 10px 20px;\n font-size: 14px;\n color: #464646;\n}';a(t);export{t as default};
@@ -0,0 +1 @@
1
+ var t="data:image/svg+xml,%3Csvg%20width%3D%2264%22%20height%3D%2241%22%20viewBox%3D%220%200%2064%2041%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%20%3Cg%20transform%3D%22translate%280%201%29%22%20fill%3D%22none%22%20fillRule%3D%22evenodd%22%3E%20%20%20%20%20%20%20%20%20%20%3Cpath%20%20%20%20%20%20%20%20d%3D%22M25%2024h14M25%2028h14M25%2032h14%22%20%20%20%20%20%20%20%20stroke%3D%22%23E8E8E8%22%20%20%20%20%20%20%20%20strokeLinecap%3D%22round%22%20%20%20%20%20%20%20%20strokeWidth%3D%221.5%22%20%20%20%20%20%20%2F%3E%20%20%20%20%3C%2Fg%3E%20%20%3C%2Fg%3E%3C%2Fsvg%3E";export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,createElementBlock as t,openBlock as i,normalizeClass as r,unref as s,createElementVNode as p,normalizeStyle as a,toDisplayString as m}from"vue";import o from"./empty.svg.d.ts";import{useNamespace as d}from"@qxs-bns/hooks";const n={class:"empty-content"},c=["src","alt"],l={class:"empty-description"};var u=e({name:"Empty",__name:"empty",props:{image:{type:String,required:!1,default:()=>o},description:{type:String,required:!1,default:"暂无数据"},imageSize:{type:Object,required:!1,default:()=>({width:"200px",height:"80px"})}},setup(e){const o=d("data-chart");return(e,d)=>(i(),t("div",{class:r([s(o).e("empty")])},[p("div",n,[p("img",{style:a(e.imageSize),src:e.image,alt:e.description},null,12,c),p("span",l,m(e.description),1)])],2))}});export{u as default};
@@ -0,0 +1 @@
1
+ import t from"./empty.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,inject as a,computed as r,createElementBlock as l,openBlock as s}from"vue";import{InjectionChartMerge as n}from"../utils/injectionKeys.d.ts";import{useCharts as o}from"../utils/useCharts.d.ts";var c=e({name:"DataChartFunnel",__name:"funnel",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},chartOptions:{type:null,required:!0}},setup(e){const c=t(),i=a(n,(e=>e),!0),u=r((()=>{const{colDesc:t,xGroupByDesc:a,modelName:r,data:l}=e.chartData,s={title:{text:r},legend:{},series:t.map((e=>({name:e,type:"funnel",left:"10%",width:"80%",label:{formatter:"{c}"},labelLine:{show:!1},itemStyle:{opacity:.7},emphasis:{label:{position:"inside",formatter:`{b}${e}: {c}`}},data:l.map((t=>({name:t[a?.colDesc||""],value:t[e]})))})))};return 1!==t.length&&(s.legend.data=t),i(s,e.chartOptions)}));return o({chartDOM:c,chartOptions:u,chartData:r((()=>e.chartData))}),(e,t)=>(s(),l("div",{ref_key:"dataChartFunnel",ref:c,class:"data-chart-funnel"},null,512))}});export{c as default};
@@ -0,0 +1 @@
1
+ import e from"./funnel.vue.d.ts";export{e as default};
@@ -0,0 +1 @@
1
+ import e from"./line.vue.d2.ts";import"./line.vue.d3.ts";import t from"../../../../_virtual/_plugin-vue_export-helper.d.ts";var r=t(e,[["__scopeId","data-v-397864aa"]]);export{r as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as a,inject as t,computed as s,createElementBlock as r,openBlock as c}from"vue";import{InjectionChartMerge as n}from"../utils/injectionKeys.d.ts";import{useCharts as i}from"../utils/useCharts.d.ts";var l=e({name:"DataChartLine",__name:"line",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},subShowType:{type:String,required:!0,default:"line-simple"},chartOptions:{type:null,required:!0}},setup(e){const l=a(),o=t(n,(e=>e),!0),p=15,d="Total";const u=s((()=>{const{colDesc:a,xGroupByDesc:t,groupByDesc:s,data:r,modelName:c}=e.chartData,n=Array.from(new Set(r?.map((e=>e[t?.colDesc||""]))))||[],i=s?.find((e=>!e.xAxis)),l={title:{text:c},legend:{data:[]},xAxis:{name:t?.colDesc||"",data:n},dataZoom:[{type:"inside",disabled:n.length<p}]};if(1===s?.length)l.series=a.map((e=>({name:e,type:"line",data:r.map((a=>a[e]))}))),l.legend.data=a;else if(2===s?.length){const e=[...new Set(r.map((e=>String(e[i?.colDesc||""]))))];l.legend.data=e,l.series=e.map((e=>function(e,a,t,s,r,c){const n=[];return a.forEach((a=>{const i=t.find((t=>t[s?.colDesc]===a&&t[r?.colDesc]===e));i?n.push(i[c[0]]):n.push(0)})),{name:e,type:"line",stack:d,areaStyle:{},data:n}}(e,n,r,t,i,a)))}return l.series=l.series?.map((a=>{const t={...a};switch(e.subShowType){case"line-simple":default:delete t.areaStyle;break;case"area-basic":t.areaStyle={}}return t})),o(l,e.chartOptions)}));return i({chartDOM:l,chartOptions:u,chartData:s((()=>e.chartData))}),(e,a)=>(c(),r("div",{ref_key:"dataChartLine",ref:l,class:"data-chart-line"},null,512))}});export{l as default};
@@ -0,0 +1 @@
1
+ import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.d.ts";var t="/* unplugin-vue-components disabled */\n.data-chart-line[data-v-397864aa] {\n width: 100%;\n height: 100%;\n}";e(t);export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,inject as t,ref as r,computed as a,createElementBlock as o,openBlock as s}from"vue";import{orderBy as c,cloneDeep as i}from"lodash-es";import{InjectionChartMerge as l}from"../utils/injectionKeys.d.ts";import{useCharts as n}from"../utils/useCharts.d.ts";var u=e({name:"DataChartPie",__name:"pie",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},subShowType:{type:String,required:!0,default:"pie-simple"},chartOptions:{type:null,required:!0}},setup(e){const u=t(l,(e=>e),!0),p=r(null),h=a((()=>{const{colDesc:t,xGroupByDesc:r,data:a,modelName:o}=e.chartData,s=t.length,l={title:{text:o},series:t.map(((t,o)=>{const l={name:t,type:"pie",center:["50%","50%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}},label:{formatter:"{b}:{c}({d}%)",rich:{b:{color:"#4C5058",fontSize:14,fontWeight:"bold",lineHeight:33}}}};let n=5;const u=c(i(a),[t],["desc"]),p=u.reduce(((e,r)=>e+Number(r[t])),0);if(a.length>n)for(;n<9;){const e=u.slice(0,n);if(e.reduce(((e,r)=>e+Number(r[t])),0)/p>.9||8===n){const o=u.slice(n,u.length-1);l.data=a.map((a=>{let o={};return e.forEach((e=>{JSON.stringify(e)===JSON.stringify(a)&&(o={name:r?.colDesc?a[r.colDesc]:"",value:a[t]})})),o})).filter((e=>e)),l.data.push({name:"其它",value:o.reduce(((e,r)=>e+Number(r[t])),0)});break}n++}else l.data=a.map((e=>({name:r?.colDesc?e[r.colDesc]:"",value:Number(e[t])})));if(1===s?l.center=["50%","60%"]:2===s?0===o?(l.right="40%",l.left="",l.center=["40%","60%"]):(l.right="",l.left="40%",l.center=["60%","60%"]):3===s?0===o?(l.right="40%",l.bottom="50%",l.top="",l.left="",l.center=["40%","78%"]):1===o?(l.right="",l.bottom="50%",l.top="",l.left="40%",l.center=["60%","78%"]):(l.right="40%",l.bottom="",l.top="50%",l.left="",l.center=["40%","60%"]):4===s&&(0===o?(l.right="40%",l.bottom="50%",l.top="",l.left="",l.center=["40%","78%"]):1===o?(l.right="",l.bottom="50%",l.top="",l.left="40%",l.center=["60%","78%"]):2===o?(l.right="40%",l.bottom="",l.top="50%",l.left="",l.center=["40%","60%"]):(l.right="",l.bottom="",l.top="50%",l.left="40%",l.center=["60%","60%"])),"pie-borderRadius"===e.subShowType)l.radius=["50%","70%"];else l.radius="50%";return l}))};return u(l,e.chartOptions)}));return n({chartDOM:p,chartOptions:h,chartData:a((()=>e.chartData))}),(e,t)=>(s(),o("div",{ref_key:"dataChartPie",ref:p,class:"data-chart-pie"},null,512))}});export{u as default};
@@ -0,0 +1 @@
1
+ import e from"./pie.vue.d.ts";export{e as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as a,ref as r,inject as e,computed as t,createElementBlock as o,openBlock as s}from"vue";import{uniq as u}from"lodash-es";import{InjectionChartMerge as c}from"../utils/injectionKeys.d.ts";import{useCharts as l}from"../utils/useCharts.d.ts";var p=a({name:"DataChartRadar",__name:"radar",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},chartOptions:{type:null,required:!0}},setup(a){const p=r(),m=e(c,(a=>a),!0),i=t((()=>{const{colDesc:r,xGroupByDesc:e,modelName:t,data:o}=a.chartData;e?.groupByValues&&(e.groupByValues=[]),e.groupByValues=u(o.map((a=>a[e.colDesc||""])).filter((a=>a)));const s={title:{text:t},radar:{indicator:e?.groupByValues?.map((a=>({name:a,max:Math.max(...o.map((a=>Number(a[r[0]]))))})))||[]},series:[{name:e?.colDesc,type:"radar",tooltip:{trigger:"item"},data:r.map((a=>({name:a,value:e?.groupByValues?.map((r=>o.map((t=>r===t[e.colDesc||""]?t[a]:null)).filter((a=>a)).reduce(((a,r)=>Number(a||0)+Number(r||0)),0)))})))}]};return m(s,a.chartOptions)}));return l({chartDOM:p,chartOptions:i,chartData:t((()=>a.chartData))}),(a,r)=>(s(),o("div",{ref_key:"dataChartRadar",ref:p,class:"data-chart-radar"},null,512))}});export{p as default};
@@ -0,0 +1 @@
1
+ import r from"./radar.vue.d.ts";export{r as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,inject as a,computed as r,createElementBlock as s,openBlock as c}from"vue";import{InjectionChartMerge as o}from"../utils/injectionKeys.d.ts";import{useCharts as l}from"../utils/useCharts.d.ts";var p=e({name:"DataChartScatterSimple",__name:"scatter-simple",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},chartOptions:{type:null,required:!0}},setup(e){const p=t(),i=a(o,(e=>e),!0),m=r((()=>{const{colDesc:t,xGroupByDesc:a,modelName:r,data:s}=e.chartData,c={title:{text:r},tooltip:{formatter:e=>e.value.length>1?`${e.seriesName} :<br/>${e.value[0]} ${e.value[1]} `:`${e.seriesName} :<br/>${e.name} : ${e.value} `},series:t.map((e=>({symbolSize:20,name:e,data:s.map((t=>[t[e],t[a?.colDesc||""]])),type:"scatter"})))};return i(c,e.chartOptions)}));return l({chartDOM:p,chartOptions:m,chartData:r((()=>e.chartData))}),(e,t)=>(c(),s("div",{ref_key:"dataChartScatterSimple",ref:p,class:"data-chart-scatter-simple"},null,512))}});export{p as default};
@@ -0,0 +1 @@
1
+ import t from"./scatter-simple.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as t,ref as a,inject as e,computed as r,createElementBlock as s,openBlock as c}from"vue";import{InjectionChartMerge as o}from"../utils/injectionKeys.d.ts";import{useCharts as i}from"../utils/useCharts.d.ts";var p=t({name:"DataChartScatter",__name:"scatter",props:{chartData:{type:Object,required:!0,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},chartOptions:{type:null,required:!0}},setup(t){const p=a(),u=e(o,(t=>t),!0),l=r((()=>u({xAxis:{},yAxis:{},series:[{symbolSize:20,data:[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82],[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]],type:"scatter"}]},t.chartOptions)));return i({chartDOM:p,chartOptions:l,chartData:r((()=>t.chartData))}),(t,a)=>(c(),s("div",{ref_key:"dataChartScatter",ref:p,class:"data-chart-scatter"},null,512))}});export{p as default};
@@ -0,0 +1 @@
1
+ import t from"./scatter.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{ElTable as t,ElTableColumn as e}from"element-plus/es";import{defineComponent as a,computed as o,createElementBlock as r,openBlock as l,normalizeClass as c,unref as s,createCommentVNode as p,createVNode as n,createElementVNode as i,toDisplayString as m,withCtx as d,Fragment as h,renderList as u,createBlock as D,createTextVNode as f}from"vue";import b from"./empty.vue.d.ts";import{useNamespace as y}from"@qxs-bns/hooks";const w={key:0,class:"title"};var g=a({name:"DataChartTable",__name:"table",props:{chartData:{type:Object,default:()=>({colDesc:[],xGroupByDesc:[],data:[],modelName:""})}},setup(a){const g=a,v=y("data-chart"),x=o((()=>g.chartData.groupByDesc.find((t=>!t.xAxis))));function $(t){if(!t)return 100;const e=14*t.length+20+30;return e<100?100:e}return(o,y)=>{const g=e,_=t;return l(),r("div",{class:c([s(v).e("data-chart-table")])},[a.chartData.modelName?(l(),r("p",w,[i("span",null,m(a.chartData.modelName),1)])):p("v-if",!0),n(_,{class:"customize-table data-chart-table-content",data:a.chartData.data,stripe:"",height:"100%"},{empty:d((()=>[n(b)])),default:d((()=>[(l(!0),r(h,null,u(a.chartData.groupByDesc,((t,e)=>(l(),D(g,{key:`${t.colDesc}${t.groupByDesc}${e}`,align:"center","show-overflow-tooltip":"",sortable:"","min-width":`${$(t.colDesc)}px`,prop:t.colDesc||""},{header:d((()=>[f(m(t.colDesc),1)])),default:d((e=>[f(m((s(x)&&(s(x).colDesc,t.colDesc),e.row[t.colDesc||""]||"--")),1)])),_:2},1032,["min-width","prop"])))),128)),(l(!0),r(h,null,u(a.chartData.colDesc,((t,e)=>(l(),D(g,{key:t+e,align:"center","min-width":`${$(t)}px`,label:t,"show-overflow-tooltip":"",sortable:"",prop:t},{header:d((()=>[f(m(t),1)])),_:2},1032,["min-width","label","prop"])))),128))])),_:1},8,["data"])],2)}}});export{g as default};
@@ -0,0 +1 @@
1
+ import t from"./table.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,computed as t,provide as o,createBlock as r,openBlock as s,resolveDynamicComponent as a,unref as p,normalizeClass as n}from"vue";import{JsonToExcel as c}from"@qxs-bns/utils";import{cloneDeep as i,merge as m}from"lodash-es";import{defaultChartOption as u}from"./utils/config.d.ts";import{InjectionChartMerge as d}from"./utils/injectionKeys.d.ts";import{useDataToExcelJson as l}from"./utils/useCharts.d.ts";import{useNamespace as f}from"@qxs-bns/hooks";import h from"./components/table.vue.d.ts";import y from"./components/bar.vue.d.ts";import b from"./components/line.vue.d.ts";import g from"./components/pie.vue.d.ts";import v from"./components/radar.vue.d.ts";import w from"./components/scatter.vue.d.ts";import x from"./components/funnel.vue.d.ts";import D from"./components/area.vue.d.ts";import S from"./components/card.vue.d.ts";import q from"./components/scatter-simple.vue.d.ts";var T=e({name:"QxsDataChart",__name:"data-chart",props:{modelName:{type:String,required:!1,default:""},showTypeName:{type:String,required:!1,default:"table"},subShowType:{type:String,required:!1},data:{type:Object,required:!1,default:()=>({data:[],desc:{colDesc:[],showDesc:{showType:0,chartOptions:"{}",jsCodeSnippet:""},groupByDesc:[]}})},chartOptions:{type:null,required:!1,default:()=>({})},jsCodeSnippet:{type:String,required:!1,default:""}},setup(e,{expose:T}){const N=f("data-chart"),j={table:h,bar:y,line:b,pie:g,radar:v,scatter:w,funnel:x,area:D,card:S,"scatter-simple":q},B=t((()=>i(u[e.showTypeName]))),C=t((()=>{const{desc:{colDesc:t=[],groupByDesc:o=[]}={},data:r=[]}=e.data;let s=[],a=null;s=o?.map((e=>(e.xAxis&&(a=e),e)));const p=a?r.filter((e=>e&&e[a.colDesc])):r;return{colDesc:t,modelName:e.modelName,subShowType:e.subShowType,xGroupByDesc:a||{groupByDesc:null,groupByValues:null,colDesc:null,xAxis:!1},groupByDesc:s,data:p}}));return T({exportExal:function(){if(0===e.data.data.length)return void console.log("暂无数据");const t=l(e.data);c(e.modelName,t)}}),o(d,(function(t,o){let r=m({},B.value,t,o)||{};if(e.jsCodeSnippet)try{r=new Function("config",`"use strict"; ${e.jsCodeSnippet}; return config;`)(r)}catch(e){console.error("代码执行失败:",e)}return r})),(e,t)=>(s(),r(a(j[e.showTypeName]),{class:n([p(N).e("wrapper")]),"sub-show-type":e.subShowType,"chart-data":p(C),"chart-options":e.chartOptions},null,8,["class","sub-show-type","chart-data","chart-options"]))}});export{T as default};
@@ -0,0 +1 @@
1
+ import t from"./data-chart.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{merge as e}from"lodash-es";const t={data:[{showTypeName:"table",label:"表格",coverImg:"table.png",disabled:()=>!1,subTypeList:[],showType:0,baseConfig:{}},{showTypeName:"line",label:"折线图",coverImg:"line-stack.png",showType:1,subTypeList:[{value:"line-simple",icon:"line-smooth",tooltipContent:"折线图"},{value:"area-basic",icon:"chart-line-area",tooltipContent:"折线面积图"}],baseConfig:{tooltip:{confine:!1,trigger:"axis",axisPointer:{type:"line"}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"},grid:{left:"0",bottom:"10px",containLabel:!0},xAxis:{type:"category",boundaryGap:!1},yAxis:{type:"value"},dataZoom:[{type:"inside"}]},disabled:(e,t)=>{const o=t?.length;return!(o>=1&&o<2)}},{showTypeName:"bar",label:"柱状图",coverImg:"bar-tick-align.png",showType:2,baseConfig:{legend:{type:"scroll",top:"25px"},tooltip:{confine:!1,trigger:"axis",axisPointer:{type:"shadow"}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},grid:{left:"0",bottom:"20px",containLabel:!0},xAxis:{axisLabel:{showMaxLabel:!0},axisTick:{alignWithLabel:!0}},yAxis:{},dataZoom:[{type:"inside"}]},subTypeList:[{value:"bar-simple",icon:"bar-simple",tooltipContent:"垂直条形图"},{value:"bar-y-category",icon:"bar-y-category",tooltipContent:"水平条形图"}],disabled:(e,t)=>{const o=t?.length;return!(o>=1)}},{showTypeName:"pie",label:"饼图",coverImg:"pie-simple.png",showType:4,subTypeList:[{value:"pie-simple",icon:"pie-simple",tooltipContent:"饼图"},{value:"pie-borderRadius",icon:"pie-borderRadius",tooltipContent:"环形图"}],baseConfig:{tooltip:{confine:!0,formatter:"{a}<br>{b}: {c}({d}%)",trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"}},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a<=4&&o>0&&o<=1)}},{showTypeName:"area",label:"地图",coverImg:"area.png",showType:5,subTypeList:[],baseConfig:{tooltip:{confine:!0,trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},visualMap:{text:["高","低"],realtime:!1,calculable:!0,inRange:{color:["lightskyblue","yellow","orangered"]}}},disabled:(e,t)=>{const o=t?.length,a=t?.some((e=>{let{colDesc:t}=e;return t.includes("省")||t.includes("市")}));return!(a&&o>0)}},{showTypeName:"funnel",label:"漏斗图",coverImg:"funnel.png",showType:6,subTypeList:[],baseConfig:{tooltip:{confine:!0,trigger:"item",formatter:"{a} <br/>{b} : {c}"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:20}},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a<=5&&o>0&&o<=1)}},{showTypeName:"card",label:"卡片",coverImg:"card.png",showType:9,subTypeList:[],baseConfig:{},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a>0&&o<=1)}},{showTypeName:"radar",label:"雷达图",coverImg:"radar.png",showType:10,subTypeList:[],baseConfig:{legend:{type:"scroll",orient:"vertical",left:"left",top:"25px"},tooltip:{confine:!0,trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},radar:{center:["50%","55%"]}},disabled:(e,t)=>{const o=t?.length;return 1!==o||1!==e.length}},{showTypeName:"scatter-simple",label:"散点图",coverImg:"",showType:11,subTypeList:[],disabled:()=>!1,baseConfig:{grid:{left:"0",bottom:"10px",containLabel:!0},tooltip:{showDelay:0,axisPointer:{show:!0,type:"cross",lineStyle:{type:"dashed",width:1}}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"},xAxis:{splitLine:{lineStyle:{type:"dashed"}}},yAxis:{splitLine:{lineStyle:{type:"dashed"}}}}}]};function o(t,o){const a={};return t.forEach((t=>{a[t.showTypeName]=e(t.baseConfig,o)})),a}const a=o(t.data,{backgroundColor:"transparent",title:{textStyle:{fontSize:14,lineHeight:16}}});function s(e){return new Promise((t=>{const o={showbiz:!1,extensions:"all",...e};import("@amap/amap-jsapi-loader").then((e=>{let{default:t}=e;return t.load({key:"2e820fac2a528b016a4cb95bb463e69e",version:"1.4.15",plugins:["AMap.DistrictSearch"],AMapUI:{version:"1.1",plugins:["geo/DistrictExplorer"]}})})).then((a=>{new a.DistrictSearch(o).search(e.adcode,((e,o)=>{AMapUI.loadUI(["geo/DistrictExplorer"],(e=>{(new e).loadAreaNode(o.districtList[0].adcode,((e,o)=>{if(e)return void console.error(e);const a={features:[],type:"FeatureCollection"};a.features=o.getSubFeatures(),t(a)}))}))}))})).catch((e=>{console.error("Failed to load map:",e),t({features:[],type:"FeatureCollection"})}))}))}export{a as defaultChartOption,s as getGeoJsonData,t as iconList,o as setDefaultChartOption};
@@ -0,0 +1 @@
1
+ const e=Symbol("merge");export{e as InjectionChartMerge};
@@ -0,0 +1 @@
1
+ import*as e from"echarts";import t from"../components/empty.svg.d.ts";import{ref as o,onMounted as i,onUnmounted as a}from"vue";import{useMouseInElement as n,watchDebounced as l,useElementSize as r}from"@vueuse/core";function s(r){let{chartDOM:s,chartData:u,chartOptions:d,mountedBefore:v,initAfter:f,callback:p}=r,m=null;const g=o(!1),h=window.devicePixelRatio||1;function x(){m&&!m.isDisposed()&&(m.dispose(),m=null)}function y(){if(m&&g.value&&s.value){m.showLoading();try{m.isDisposed()&&(m=e.init(s.value,null,{devicePixelRatio:h,renderer:"svg"})),m.setOption(...arguments)}catch(t){console.log("error: ",t),x(),s.value&&(m=e.init(s.value,null,{devicePixelRatio:h,renderer:"svg"}),D("配置项错误"))}finally{m?.hideLoading()}}}const{isOutside:w}=n(s);function D(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"暂无数据";y({title:[{text:u.value?.modelName,...d.value.title},{subtext:e,top:"center",left:"center",text:" {a|}",itemGap:-20,textStyle:{align:"center",rich:{a:{color:"#000",fontSize:"16",height:80,width:160,backgroundColor:{image:t}}}},subtextStyle:{fontSize:16}}]},{notMerge:!0,replaceMerge:["xAxis","yAxis","series"],lazyUpdate:!1})}return l(w,(e=>{var t;"boolean"==typeof e&&(t=!e,m?.isDisposed()||m?.setOption({toolbox:{show:t}}))}),{debounce:200}),i((async()=>{v&&await v(),s.value&&(x(),m=e.init(s.value,null,{devicePixelRatio:h,renderer:"svg"}),p&&p(m),f&&await f(),c(m,s),g.value=!0,u.value?.data?.length?y(d.value,{}):D())})),a((()=>{m&&(m.getZr()?.off("mousemove"),m.getZr()?.off("mouseout"),x())})),{myChart:m}}function c(e,t){const{width:o,height:i}=r(t);l([o,i],(()=>{e&&e.resize()}))}function u(e){const{desc:{colDesc:t=[],groupByDesc:o=[]}={},data:i=[]}=e,a=[...o.map((e=>e.colDesc)),...t].filter((e=>e)),n=i.map((e=>a.map((t=>e[t]||""))));return[a,...n]}export{s as useCharts,u as useDataToExcelJson,c as useResize};
@@ -0,0 +1 @@
1
+ import*as t from"./components.d.ts";import{makeInstaller as o}from"./make-installer.d.ts";var r=o(t);export{r as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import o from"./src/file-upload.vue.d.ts";const r=t(o);export{r as QxsFileUpload,r as default};
@@ -0,0 +1 @@
1
+ import{ElUpload as e,ElIcon as t,ElAlert as i,ElMessage as l}from"element-plus/es";import{defineComponent as a,computed as r,createBlock as s,openBlock as o,normalizeClass as n,unref as u,withCtx as d,createElementVNode as p,createVNode as c,createTextVNode as m,createElementBlock as f,createCommentVNode as y}from"vue";import{UploadFilled as q}from"@element-plus/icons-vue";import{useNamespace as v}from"@qxs-bns/hooks";const x={class:"slot"},_={key:0,class:"el-upload__tip"},b={style:{display:"inline-block"}};var h=a({name:"QxsFileUpload",__name:"file-upload",props:{action:{type:String,required:!0},headers:{type:null,required:!1},data:{type:null,required:!1},name:{type:String,required:!1,default:"file"},size:{type:Number,required:!1,default:20},max:{type:Number,required:!1,default:3},accept:{type:String,required:!1,default:"zip,rar"},files:{type:Array,required:!1,default:()=>[]},notip:{type:Boolean,required:!1,default:!1},ext:{type:Array,required:!1}},emits:["onSuccess"],setup(a,{emit:h}){const z=h,g=v("file-upload"),S=r((()=>a.accept.split(","))),$=e=>{const t=e.name.split(".").at(-1)??"",i=S.value.includes(t),r=e.size/1024/1024<a.size;return i||l.error(`上传文件只支持 ${S.value.join(" / ")} 格式!`),r||l.error(`上传文件大小不能超过 ${a.size}MB!`),i&&r},k=()=>{l.warning("文件上传超过限制")},B=(e,t,i)=>{z("onSuccess",e,t,i)};return(l,a)=>{const r=t,v=i,h=e;return o(),s(h,{headers:l.headers,action:l.action,data:l.data,name:l.name,"before-upload":$,"on-exceed":k,"on-success":B,"file-list":l.files,limit:l.max,drag:"",class:n(u(g).e("control"))},{tip:d((()=>[l.notip?y("v-if",!0):(o(),f("div",_,[p("div",b,[c(v,{title:`上传文件支持 ${u(S).join(" / ")} 格式,单个文件大小不超过 ${l.size}MB,且文件数量不超过 ${l.max} 个`,type:"info","show-icon":"",closable:!1},null,8,["title"])])]))])),default:d((()=>[p("div",x,[c(r,{class:"el-icon--upload"},{default:d((()=>[c(u(q))])),_:1}),a[0]||(a[0]=p("div",{class:"el-upload__text"},[m("将文件拖到此处,或"),p("em",null,"点击上传")],-1))])])),_:1},8,["headers","action","data","name","file-list","limit","class"])}}});export{h as default};
@@ -0,0 +1 @@
1
+ import e from"./file-upload.vue.d.ts";export{e as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import o from"./src/fixed-action-bar.vue.d.ts";const r=t(o);export{r as QxsFixedActionBar,r as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,computed as a,onMounted as n,onUnmounted as i,createElementBlock as o,openBlock as r,normalizeStyle as l,unref as d,createElementVNode as s,normalizeClass as c,renderSlot as p}from"vue";import{useNamespace as u}from"@qxs-bns/hooks";import{getDeviceType as h}from"@qxs-bns/utils";import{debounce as g}from"lodash-es";var m=e({name:"QxsFixedActionBar",props:{padding:{type:Number,default:8},className:{type:String,default:""}},setup(e){const m=e,v=u("fixed-action-bar"),f=t(!1),x=t(null),w=t(null),b=t({width:0,height:0}),y=t(0),F=t(0),R={resize:null,parent:null},$=(e,t,a)=>{const n=new ResizeObserver((e=>{e.forEach((e=>requestAnimationFrame((()=>t(e)))))}));return n.observe(e,a),n},E=()=>{if(!x.value||!w.value)return;R.resize=$(x.value,(e=>{const t=(e=>{const t=getComputedStyle(e);return{x:parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),y:parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}})(e.target);b.value={width:e.contentRect.width+t.x,height:e.contentRect.height+t.y}}),{box:"border-box"});const e=w.value.parentElement;e&&(R.parent=$(e,(()=>{const t=e.getBoundingClientRect();y.value=t.width,F.value=t.left})))},k=g((()=>{const{scrollY:e}=window,{clientHeight:t,scrollHeight:a}=document.documentElement;f.value=Math.ceil(e+t)>=a}),100),z=a((()=>f.value?"":v.is("shadow"))),B=a((()=>"Android"===h()?Math.max(m.padding,20):m.padding)),q=a((()=>({width:`${y.value}px`,left:`${F.value}px`,...v.cssVarBlock({"actionbar-padding":`${m.padding}px`,"actionbar-padding-bottom":`${B.value}px`})})));return n((()=>{E(),window.addEventListener("scroll",k,{passive:!0})})),i((()=>{R.resize?.disconnect(),R.parent?.disconnect(),window.removeEventListener("scroll",k)})),(t,a)=>(r(),o("div",{ref_key:"placeholderRef",ref:w,style:l({width:"100%",height:`${d(b).height}px`})},[s("div",{ref_key:"actionbar",ref:x,style:l(d(q)),class:c([d(v).e("actionbar"),d(z),e.className]),"data-fixed-calc-width":""},[p(t.$slots,"default")],6)],4))}});export{m as default};
@@ -0,0 +1 @@
1
+ import t from"./fixed-action-bar.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import o from"./src/image-upload.vue.d.ts";const r=t(o);export{r as QxsImageUpload,r as default};
@@ -0,0 +1 @@
1
+ import{ElUpload as e,ElImage as t,ElIcon as i,ElProgress as r,ElImageViewer as l,ElMessage as s}from"element-plus/es";import{defineComponent as a,ref as p,computed as u,createElementBlock as o,openBlock as d,normalizeClass as n,unref as c,createVNode as h,createCommentVNode as g,createBlock as m,withCtx as f,withDirectives as y,normalizeStyle as v,createElementVNode as w,toDisplayString as x,withModifiers as $,vShow as b}from"vue";import{Plus as q,ZoomIn as k,Delete as _}from"@element-plus/icons-vue";import{useNamespace as S}from"@qxs-bns/hooks";const V={key:1,class:"image"},U={class:"mask"},j={class:"actions"},z={key:0,class:"el-upload__tip-text"},B={style:{display:"inline-block"}};var C=a({name:"QxsImageUpload",__name:"image-upload",props:{action:{type:String,required:!0},headers:{type:null,required:!1},data:{type:null,required:!1},name:{type:String,required:!1,default:"file"},url:{type:String,required:!1,default:""},size:{type:Number,required:!1,default:20},width:{type:Number,required:!1,default:160},accept:{type:String,required:!1,default:"image/jpeg,image/jpg,image/png,image/gif"},height:{type:Number,required:!1,default:90},placeholder:{type:String,required:!1,default:"点击上传图片"},notip:{type:Boolean,required:!1,default:!1},tipText:{type:String,required:!1},beforeUpload:{type:null,required:!1}},emits:["update:url","onSuccess"],setup(a,{emit:C}){const M=a,N=C,L=S("image-upload"),R=p({imageViewerVisible:!1,progress:{preview:"",percent:0}}),T=u((()=>M.accept.split(",").map((e=>e.split("/").pop()))));function I(){R.value.imageViewerVisible=!0}function O(){R.value.imageViewerVisible=!1}function Q(){N("update:url","")}const A=e=>{const t=e.name.split(".").at(-1)??"",i=T.value.includes(t),r=e.size/1024/1024<M.size;return i?r?R.value.progress.preview=URL.createObjectURL(e):s.error(`上传图片大小不能超过 ${M.size}MB!`):s.error(`上传图片只支持${T.value.join(" / ")}格式!`),i&&r&&(!M.beforeUpload||M.beforeUpload(e))},D=e=>{R.value.progress.percent=~~e.percent},E=(...e)=>{R.value.progress.preview="",R.value.progress.percent=0,N("onSuccess",...e)};return(s,a)=>{const p=i,u=t,S=r,C=e,M=l;return d(),o("div",{class:n(c(L).e("upload-container"))},[h(C,{"show-file-list":!1,headers:s.headers,action:s.action,data:s.data,name:s.name,"before-upload":A,"on-progress":D,"on-success":E,drag:"",accept:s.accept,class:n(c(L).e("image-upload"))},{default:f((()=>[""===s.url?(d(),m(u,{key:0,src:""===s.url?s.placeholder:s.url,style:v(`width:${s.width}px;height:${s.height}px;`),fit:"fill"},{error:f((()=>[w("div",{class:"image-slot",style:v(`width:${s.width}px;height:${s.height}px;`)},[h(p,null,{default:f((()=>[h(c(q))])),_:1}),w("p",null,x(s.placeholder),1)],4)])),_:1},8,["src","style"])):(d(),o("div",V,[h(u,{src:s.url,style:v(`width:${s.width}px;height:${s.height}px;`),fit:"fill"},null,8,["src","style"]),w("div",U,[w("div",j,[w("span",{title:"预览",onClick:$(I,["stop"])},[h(p,null,{default:f((()=>[h(c(k))])),_:1})]),w("span",{title:"移除",onClick:$(Q,["stop"])},[h(p,null,{default:f((()=>[h(c(_))])),_:1})])])])])),y(w("div",{class:"progress",style:v(`width:${s.width}px;height:${s.height}px;`)},[h(u,{src:c(R).progress.preview,style:v(`width:${s.width}px;height:${s.height}px;`),fit:"fill"},null,8,["src","style"]),h(S,{type:"circle",width:.8*Math.min(s.width,s.height),percentage:c(R).progress.percent},null,8,["width","percentage"])],4),[[b,""===s.url&&c(R).progress.percent]])])),_:1},8,["headers","action","data","name","accept","class"]),s.notip?g("v-if",!0):(d(),o("div",z,[w("div",B,x(s.tipText||`上传图片支持 ${c(T).join(" / ")} 格式,且图片大小不超过 ${s.size}MB,建议图片尺寸为 ${s.width}*${s.height}`),1)])),c(R).imageViewerVisible?(d(),m(M,{key:1,"url-list":[s.url],teleported:"",onClose:O},null,8,["url-list"])):g("v-if",!0)],2)}}});export{C as default};
@@ -0,0 +1 @@
1
+ import a from"./image-upload.vue.d.ts";export{a as default};
@@ -0,0 +1 @@
1
+ import{version as n}from"../package.json.d.ts";function o(o){return{version:n,install:n=>{for(const r in o)n.use(o[r])}}}export{o as makeInstaller};
@@ -0,0 +1 @@
1
+ import{withInstall as o}from"../withInstall.d.ts";import t from"./src/photo-crop-tool.vue.d.ts";const r=o(t);export{r as QxsPhotoCropTool,r as default};
@@ -0,0 +1 @@
1
+ import{ref as e}from"vue";function l(l){const a=e(null);l&&(a.value=l.getContext("2d"));return{clearCanvas:()=>{a.value&&a.value.clearRect(0,0,l.width,l.height)},drawColor:(e,l,t,n,o)=>{a.value&&(a.value.fillStyle=o,a.value.fillRect(e,l,t,n))},drawImage:(e,l,t,n,o)=>{a.value.drawImage(e,l,t,n,o)},cropCanvas:(e,t,n,o)=>new Promise((r=>{if(a.value){const a=document.createElement("canvas");a.width=n,a.height=o;const u=a.getContext("2d");u?(u.drawImage(l,e,t,n,o,0,0,n,o),a.toBlob((e=>{if(e){const l=new File([e],"cropped_image.png",{type:"image/png"});r(l)}else r(null)}),"image/png")):r(null)}else r(null)}))}}export{l as useCanvas};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,computed as l,watch as a,onMounted as o,nextTick as i,onUnmounted as u,createElementBlock as v,openBlock as h,normalizeClass as s,unref as n,toDisplayString as r,Fragment as p,createElementVNode as c,normalizeStyle as f}from"vue";import{useNamespace as d}from"@qxs-bns/hooks";import{useElementSize as m,useDraggable as g}from"@vueuse/core";import{useCanvas as y}from"./composables.d.ts";const w=["src"];var x=e({name:"QxsPhotoCropTool",__name:"photo-crop-tool",props:{imgFile:{type:Object,default:()=>null},aspectRatio:{type:String,default:()=>"16 / 9"},defaultWidth:{type:Number,default:()=>320},defaultHeight:{type:Number,default:()=>180},zoomType:{type:String,default:()=>"fixed"}},setup(e,{expose:x}){const b=e;let R=0,H=0,T=0,z=0;const F=d("photo-crop-tool"),N=t(null),W=t(null),k=t(null),L=t(""),M=t(""),E=t({x:0,y:0}),$=t({width:b.defaultWidth,height:b.defaultHeight,x:0,y:0}),{width:C,height:_}=m(N),{width:U}=m(k),{x:j,y:B,style:O}=g(N,{containerElement:W,draggingElement:N,disabled:l((()=>!!M.value)),exact:!0,initialValue:E}),S=l((()=>b.imgFile?URL.createObjectURL(b.imgFile):""));a((()=>b.imgFile),(e=>{e&&!e.type.startsWith("image/")?L.value="文件类型错误":L.value=""}));const P=l((()=>(k.value?.naturalWidth||0)/U.value)),V=l((()=>{const e={left:0,top:0};return"bottom-right"===M.value?(e.left=$.value.x,e.top=$.value.y):"top-left"===M.value?(e.left=$.value.x-C.value,e.top=$.value.y-_.value):"top-right"===M.value?(e.top=$.value.y-_.value,e.left=$.value.x):"bottom-left"===M.value&&(e.left=$.value.x-C.value,e.top=$.value.y),e})),X=l((()=>{const{aspectRatio:e}=b,t={width:`${$.value.width||b.defaultWidth}`,height:`${$.value.height||b.defaultHeight}`,"aspect-ratio":e,top:`${V.value.top}px`,left:`${V.value.left}px`};return"free"===b.zoomType?delete t["aspect-ratio"]:"fixed"===b.zoomType&&delete t.height,F.cssVarBlock(t)}));function Y(e){return e*P.value}function q(e,t){const l=W.value?.clientWidth||1/0,a=W.value?.clientHeight||1/0;return{width:Math.min(Math.max(e,0),l),height:Math.min(Math.max(t,0),a)}}function D(e){const t=e.clientX-R,l=e.clientY-H;if("bottom-right"===M.value){if("free"===b.zoomType){const{width:e,height:a}=q(T+t,z+l);$.value.width=e,$.value.height=a}else if("fixed"===b.zoomType){const e=Number.parseFloat(b.aspectRatio.split(" / ")[0])/Number.parseFloat(b.aspectRatio.split(" / ")[1]);let l=T+t,a=l/e;const{width:o,height:i}=q(l,a);i>(W.value?.clientHeight||1/0)&&(a=W.value?.clientHeight||1/0,l=a*e),$.value.width=o,$.value.height=i}}else if("top-left"===M.value){if("free"===b.zoomType){const{width:e,height:a}=q(T-t,z-l);$.value.width=e,$.value.height=a}else if("fixed"===b.zoomType){const e=Number.parseFloat(b.aspectRatio.split(" / ")[0])/Number.parseFloat(b.aspectRatio.split(" / ")[1]);let l=T-t,a=l/e;const{width:o,height:i}=q(l,a);i>(W.value?.clientHeight||1/0)&&(a=W.value?.clientHeight||1/0,l=a*e),$.value.width=o,$.value.height=i}j.value=V.value.left,B.value=V.value.top}else if("top-right"===M.value){if("free"===b.zoomType){const{width:e,height:a}=q(T+t,z-l);$.value.width=e,$.value.height=a}else if("fixed"===b.zoomType){const e=Number.parseFloat(b.aspectRatio.split(" / ")[0])/Number.parseFloat(b.aspectRatio.split(" / ")[1]);let l=T+t,a=l/e;const{width:o,height:i}=q(l,a);i>(W.value?.clientHeight||1/0)&&(a=W.value?.clientHeight||1/0,l=a*e),$.value.width=o,$.value.height=i}j.value=V.value.left,B.value=V.value.top}else if("bottom-left"===M.value){if("free"===b.zoomType){const{width:e,height:a}=q(T-t,z+l);$.value.width=e,$.value.height=a}else if("fixed"===b.zoomType){const e=Number.parseFloat(b.aspectRatio.split(" / ")[0])/Number.parseFloat(b.aspectRatio.split(" / ")[1]);let l=T-t,a=l/e;const{width:o,height:i}=q(l,a);i>(W.value?.clientHeight||1/0)&&(a=W.value?.clientHeight||1/0,l=a*e),$.value.width=o,$.value.height=i}j.value=V.value.left,B.value=V.value.top}e.preventDefault(),e.stopPropagation()}function I(e,t){M.value=t,R=e.clientX,H=e.clientY,T=$.value.width,z=$.value.height,"bottom-right"===t?($.value.x=j.value,$.value.y=B.value):"top-left"===t?($.value.x=j.value+C.value,$.value.y=B.value+_.value):"top-right"===t?($.value.x=j.value,$.value.y=B.value+_.value):"bottom-left"===t&&($.value.x=j.value+C.value,$.value.y=B.value)}function Q(){M.value=""}return document.addEventListener("mouseup",Q),document.addEventListener("mousemove",D),o((()=>{i((()=>{E.value.x=(W.value?.offsetWidth||0)/2-$.value.width/2,E.value.y=(W.value?.offsetHeight||0)/2-$.value.height/2}))})),u((()=>{S.value&&URL.revokeObjectURL(S.value),document.removeEventListener("mouseup",Q),document.removeEventListener("mousemove",D)})),x({crop:async function(e=k.value){let t="transparent";W.value&&(t=window.getComputedStyle(W.value).backgroundColor);const l=document.createElement("canvas");l.width=Y(W.value?.clientWidth||0),l.height=Y(W.value?.clientHeight||0);const{drawImage:a,cropCanvas:o,drawColor:i}=y(l);return i(0,0,l.width,l.height,t),a(e,Y(e.offsetLeft),Y(e.offsetTop),e.naturalWidth,e.naturalHeight),await o(Y(j.value),Y(B.value),Y(C.value),Y(_.value))},resize:function(){$.value.width=b.defaultWidth,$.value.height=b.defaultHeight,j.value=0,B.value=0}}),(e,t)=>(h(),v("div",{ref_key:"containerBoxRef",ref:W,class:s([n(F).e("img-box")])},[n(L)?(h(),v("div",{key:0,class:s([n(F).e("error-message")])},r(n(L)),3)):(h(),v(p,{key:1},[c("img",{ref_key:"imgRef",ref:k,class:s([n(F).e("image")]),src:n(S)},null,10,w),c("div",{ref_key:"cropBoxRef",ref:N,class:s([n(F).e("crop-tool-box")]),style:f([n(X),n(M)?`left: ${n(V).left}px;top: ${n(V).top}px`:n(O)])},[c("div",{class:s([n(F).e("top-left")]),onMousedown:t[0]||(t[0]=e=>I(e,"top-left"))},null,34),c("div",{class:s([n(F).e("top-right")]),onMousedown:t[1]||(t[1]=e=>I(e,"top-right"))},null,34),c("div",{class:s([n(F).e("bottom-right")]),onMousedown:t[2]||(t[2]=e=>I(e,"bottom-right"))},null,34),c("div",{class:s([n(F).e("bottom-left")]),onMousedown:t[3]||(t[3]=e=>I(e,"bottom-left"))},null,34)],6)],64))],2))}});export{x as default};
@@ -0,0 +1 @@
1
+ import o from"./photo-crop-tool.vue.d.ts";export{o as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import o from"./src/subject-action.vue.d.ts";const s=t(o);export{s as QxsSubjectAction,s as default};
@@ -0,0 +1 @@
1
+ import{ElPopover as e,ElLink as l,ElCheckbox as a,ElButton as t,ElIcon as n,ElDialog as o,ElRadioGroup as i,ElRadio as u}from"element-plus/es";import{defineComponent as s,ref as d,computed as c,createElementBlock as r,openBlock as m,normalizeClass as p,unref as f,createElementVNode as y,createCommentVNode as v,createVNode as b,createBlock as k,withCtx as _,createTextVNode as h,isRef as g,Fragment as w,renderList as C,toDisplayString as x}from"vue";import{Edit as V,Delete as O,Top as S,Bottom as j}from"@element-plus/icons-vue";import{useNamespace as E}from"@qxs-bns/hooks";import T from"../../subject-type/src/subject-type.vue.d.ts";const U={key:0,class:"flex-justify-between"},A={key:0,class:"has-set"},B={key:1,class:"flex flex-justify-end",style:{width:"100%"}};var K=s({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:{type:Boolean},isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(s,{emit:K}){const R=s,z=d(R.isKey),D=d(!1),N=K,q=d(R.answerCheckType),Q=E("subject-action"),F=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],G=c((()=>F.find((e=>e.value===q.value))?.label));function H(){D.value=!1,N("setAnswerSetting",q.value)}function I(e,l){N("add",e,l?R.examAnswerRelationType:null)}return(d,c)=>{const E=l,K=e,R=a,J=n,L=t,M=u,P=i,W=o;return m(),r("div",{class:p(f(Q).e("action-exam"))},[y("div",{class:p(["action flex",[{active:s.isEdit}]])},[s.isEdit?(m(),r("div",U,[b(K,{trigger:"click"},{reference:_((()=>[b(E,{type:"primary",class:"btn-margin"},{default:_((()=>c[14]||(c[14]=[h(" +在此题后加入新题 ")]))),_:1})])),default:_((()=>[b(T,{onSelect:I})])),_:1}),s.showOtherOption?(m(),k(E,{key:0,type:"primary",onClick:c[0]||(c[0]=e=>N("onShowRichText")),class:"btn-margin"},{default:_((()=>c[15]||(c[15]=[h(" +添加题目描述(图文) ")]))),_:1})):v("v-if",!0),s.showOtherOption?(m(),k(E,{key:1,type:"primary",onClick:c[1]||(c[1]=e=>D.value=!0),class:"btn-margin"},{default:_((()=>c[16]||(c[16]=[h(" 答题设置 ")]))),_:1})):v("v-if",!0),s.showOtherOption?(m(),k(R,{key:2,modelValue:f(z),"onUpdate:modelValue":c[2]||(c[2]=e=>g(z)?z.value=e:null),label:"核心题",onChange:c[3]||(c[3]=e=>N("setKey",f(z)))},null,8,["modelValue"])):v("v-if",!0)])):v("v-if",!0),y("div",null,[s.isSet?(m(),r("div",A," *此题设置了跳题逻辑 ")):(m(),r("div",B,[s.isEdit?(m(),r(w,{key:1},[b(L,{class:"btn-margin",onClick:c[9]||(c[9]=e=>N("delete"))},{default:_((()=>c[21]||(c[21]=[h(" 删除 ")]))),_:1}),b(L,{type:"primary",onClick:c[10]||(c[10]=e=>N("save"))},{default:_((()=>c[22]||(c[22]=[h(" 完成编辑 ")]))),_:1})],64)):(m(),r(w,{key:0},[b(R,{modelValue:f(z),"onUpdate:modelValue":c[4]||(c[4]=e=>g(z)?z.value=e:null),label:"核心题",disabled:""},null,8,["modelValue"]),b(R,{"v-model":!0,label:f(G),disabled:""},null,8,["label"]),s.pageEnd?v("v-if",!0):(m(),k(L,{key:0,class:"btn-margin",onClick:c[5]||(c[5]=e=>N("edit"))},{icon:_((()=>[b(J,null,{default:_((()=>[b(f(V))])),_:1})])),default:_((()=>[c[17]||(c[17]=h(" 编辑 "))])),_:1})),b(L,{class:"btn-margin",onClick:c[6]||(c[6]=e=>N("delete"))},{icon:_((()=>[b(J,null,{default:_((()=>[b(f(O))])),_:1})])),default:_((()=>[c[18]||(c[18]=h(" 删除 "))])),_:1}),b(L,{class:"btn-margin",onClick:c[7]||(c[7]=e=>N("moveUp"))},{icon:_((()=>[b(J,null,{default:_((()=>[b(f(S))])),_:1})])),default:_((()=>[c[19]||(c[19]=h(" 上移 "))])),_:1}),b(L,{class:"btn-margin",onClick:c[8]||(c[8]=e=>N("moveDown"))},{icon:_((()=>[b(J,null,{default:_((()=>[b(f(j))])),_:1})])),default:_((()=>[c[20]||(c[20]=h(" 下移 "))])),_:1})],64))]))]),b(W,{modelValue:f(D),"onUpdate:modelValue":c[13]||(c[13]=e=>g(D)?D.value=e:null),title:"答题设置",class:"customize-dialog"},{footer:_((()=>[b(L,{class:"customize-button",type:"primary",plain:"",onClick:c[12]||(c[12]=e=>D.value=!1)},{default:_((()=>c[23]||(c[23]=[h(" 取消 ")]))),_:1}),b(L,{class:"customize-button",type:"primary",plain:"",onClick:H},{default:_((()=>c[24]||(c[24]=[h(" 保存 ")]))),_:1})])),default:_((()=>[(m(),r(w,null,C(F,(e=>b(P,{modelValue:f(q),"onUpdate:modelValue":c[11]||(c[11]=e=>g(q)?q.value=e:null),class:"vertical-radio-group"},{default:_((()=>[b(M,{value:e.value},{default:_((()=>[h(x(e.label),1)])),_:2},1032,["value"])])),_:2},1032,["modelValue"]))),64))])),_:1},8,["modelValue"])],2)],2)}}});export{K as default};
@@ -0,0 +1 @@
1
+ import t from"./subject-action.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import o from"./src/subject-layout.vue.d.ts";const s=t(o);export{s as QxsSubjectLayout,s as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as s,createElementBlock as t,openBlock as e,normalizeClass as o,unref as a,createCommentVNode as l,renderSlot as u,createElementVNode as i}from"vue";import{useNamespace as r}from"@qxs-bns/hooks";const d={key:0,class:"edit"};var c=s({name:"QxsSubjectLayout",__name:"subject-layout",props:{showEdit:{type:Boolean,required:!0}},setup(s){const c=r("subject-layout");return(s,r)=>(e(),t("div",{class:o(a(c).e("layout-exam"))},[l(' <div class="subject-layout"> '),u(s.$slots,"preview"),s.showEdit?(e(),t("div",d,[r[0]||(r[0]=i("div",{class:"triangle-up"},null,-1)),u(s.$slots,"edit")])):l("v-if",!0),u(s.$slots,"default"),l(" </div> ")],2))}});export{c as default};
@@ -0,0 +1 @@
1
+ import t from"./subject-layout.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import s from"./src/subject-list.vue.d.ts";const o=t(s);export{o as QxsSubjectList,o as default};
@@ -0,0 +1 @@
1
+ import{ElRow as e}from"element-plus/es";import{defineComponent as t,onMounted as n,createElementBlock as o,openBlock as a,normalizeClass as s,unref as r,createVNode as i,withCtx as l,createElementVNode as d,toDisplayString as u}from"vue";import{useNamespace as p}from"@qxs-bns/hooks";import m from"../../../subject-action/src/subject-action.vue.d.ts";var c=t({name:"QxsSubjectScale",__name:"SubjectPageEnd",props:{currentPageIndex:{type:Number,required:!0},totalPage:{type:Number,required:!0},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(t,{emit:c}){const y=t,v=c;n((function(){}));const x=p("subject-end");return(t,n)=>{const p=e;return a(),o("div",{class:s(r(x).e("end-exam"))},[i(p,{type:"flex",align:"middle"},{default:l((()=>[n[5]||(n[5]=d("span",{class:"auto-line"},null,-1)),d("span",null,"第"+u(y.currentPageIndex)+" / "+u(t.totalPage)+"页",1),n[6]||(n[6]=d("span",{class:"auto-line"},null,-1))])),_:1}),i(m,{"is-edit":!1,"is-set":t.isSet,pageEnd:!0,examAnswerRelationType:y.examAnswerRelationType,showOtherOption:!1,onMoveUp:n[0]||(n[0]=e=>v("move","up")),onMoveDown:n[1]||(n[1]=e=>v("move","down")),onDelete:n[2]||(n[2]=e=>v("delete")),onEdit:n[3]||(n[3]=e=>v("edit")),onAdd:n[4]||(n[4]=e=>v("add",e))},null,8,["is-set","examAnswerRelationType"])],2)}}});export{c as default};
@@ -0,0 +1 @@
1
+ import e from"./SubjectPageEnd.vue.d.ts";export{e as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,useAttrs as t,ref as o,onMounted as i,createElementBlock as r,openBlock as n,normalizeClass as s,unref as d,createVNode as a,withCtx as l,createBlock as u,createCommentVNode as m,mergeProps as c,isRef as p,createElementVNode as v,createTextVNode as y,toDisplayString as x}from"vue";import{useNamespace as w}from"@qxs-bns/hooks";import{ElMessage as h}from"element-plus";import f from"../../../subject-action/src/subject-action.vue.d.ts";import T from"../../../subject-layout/src/subject-layout.vue.d.ts";import b from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.d.ts";const q={class:"preview"},S=["innerHTML"];var j=e({name:"QxsSubjectScale",__name:"SubjectRichText",props:{orderIndex:{type:Number,required:!0},richTextContent:{type:String,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:j}){const A=e,R=j,B=t(),C=o("");function E(){C.value?R("save",{richTextContent:C.value||""}):h.error("富文本内容不能为空!")}i((function(){A.richTextContent&&(C.value=A.richTextContent)}));const M=w("subject-scale");return(e,t)=>(n(),r("div",{class:s(d(M).e("scale-exam"))},[a(T,{"show-edit":e.isEdit},{preview:l((()=>[v("div",q,[y(x(e.orderIndex+1)+".",1),v("div",{innerHTML:d(C)},null,8,S)])])),edit:l((()=>[a(b,c({"model-value":d(C),"onUpdate:modelValue":t[0]||(t[0]=e=>p(C)?C.value=e:null)},d(B),{style:{width:"100%"}}),null,16,["model-value"])])),default:l((()=>[e.showAction?(n(),u(f,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,examAnswerRelationType:A.examAnswerRelationType,showOtherOption:!1,onMoveUp:t[1]||(t[1]=e=>R("move","up")),onMoveDown:t[2]||(t[2]=e=>R("move","down")),onDelete:t[3]||(t[3]=e=>R("delete")),onSave:E,onEdit:t[4]||(t[4]=e=>R("edit")),onAdd:t[5]||(t[5]=e=>R("add",e))},null,8,["is-edit","is-set","examAnswerRelationType"])):m("v-if",!0)])),_:1},8,["show-edit"])],2))}});export{j as default};
@@ -0,0 +1 @@
1
+ import t from"./SubjectRichText.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{ElInput as e,ElLink as l,ElCheckboxGroup as t,ElCheckbox as i,ElTag as a,ElButton as s,ElIcon as n}from"element-plus/es";import{defineComponent as o,useAttrs as r,ref as u,watch as d,onMounted as v,createElementBlock as c,openBlock as m,normalizeClass as f,unref as p,createVNode as x,withCtx as y,createBlock as w,createCommentVNode as g,createElementVNode as h,isRef as _,createTextVNode as b,Fragment as k,renderList as A,toDisplayString as C,mergeProps as I}from"vue";import{Plus as V}from"@element-plus/icons-vue";import{useNamespace as S}from"@qxs-bns/hooks";import{ElMessage as j}from"element-plus";import O from"../../../subject-action/src/subject-action.vue.d.ts";import q from"../../../subject-layout/src/subject-layout.vue.d.ts";import T from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.d.ts";const R={class:"preview"},B={class:"content"},U={class:"title"},L={key:0},E=["innerHTML"],M={key:1,class:"flex flex-wrap",style:{"margin-top":"10px",color:"#a8abb2"}},D={class:"flex"},H={style:{flex:"1"}},N={class:"flex flex-justify-end"},z={class:"margin-bottom flex flex-items-center"},F={class:"margin-bottom answer-list"},G={class:"label flex flex-justify-end"},J={class:"answer-tags"},K={key:0,class:"margin-bottom flex"},P={style:{flex:"1"}},Q={key:1,class:"margin-bottom flex"},W={style:{flex:"1"}},X={class:"flex flex-justify-end"};var Y=o({__name:"subject-blank-fill",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerSettingVO:{type:Object,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(o,{emit:Y}){const Z=o,$=Y,ee=r(),le=u([]),te=u(""),ie=u(""),ae=u(!1),se=u(""),ne=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],oe=u(["isIgnoreCase"]);function re(){te.value+=" ______",le.value.push({title:"",tag:"",showInput:!1})}function ue(){ae.value=!1,se.value=""}function de(){te.value?le.value.length<1?j.error("至少添加一个填空符!"):$("save",{title:te.value.replaceAll(/ ______/g,"<filter></filter>"),answers:le.value.map((e=>({title:e.title,isCorrect:!0}))),analysis:ie.value,isSetCorrectAnswer:!0,examAnswerSettingBO:{isIgnoreCase:oe.value?.includes("isIgnoreCase"),isInOrder:oe.value?.includes("isInOrder")},examRichTextContent:ae.value?se.value:""}):j.error("题目标题不能为空!")}d((()=>te.value),(()=>{const[...e]=te.value.matchAll(/ ______/g);if(e.length!==le.value.length){const l=le.value.length-e.length;le.value.splice(le.value.length-l,l)}})),v((function(){Z.title&&(te.value=Z.title.replaceAll(/<filter><\/filter>/g," ______")),Z.answerList&&Z.answerList.length&&(le.value=Z.answerList),Z.examAnswerSettingVO&&(oe.value=oe.value.filter((e=>"isIgnoreCase"===e&&Z.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&Z.examAnswerSettingVO?.isInOrder))),Z.analysis&&(ie.value=Z.analysis),Z.examRichTextContent&&(se.value=Z.examRichTextContent,ae.value=!0)}));const ve=S("subject-blank-fill");return(o,r)=>{const u=e,d=l,v=i,S=t,j=a,Y=n,ce=s;return m(),c("div",{class:f(p(ve).e("blank-fill-exam"))},[x(q,{"show-edit":o.isEdit},{preview:y((()=>[h("div",R,[h("div",B,[h("span",U,C(o.orderIndex+1)+"."+C(p(te))+"(填空题)",1),p(ae)?(m(),c("div",L,[h("div",{innerHTML:p(se)},null,8,E)])):g("v-if",!0),p(le).some((e=>e.title))?(m(),c("div",M,[r[10]||(r[10]=h("span",{class:"title"},"正确答案:",-1)),(m(!0),c(k,null,A(p(le),((e,l)=>(m(),c("div",{key:l,class:"flex flex-wrap flex-items-center",style:{"margin-right":"10px"}},[h("span",null,"填空"+C(l+1)+":",1),h("span",null,C(e.title),1)])))),128))])):g("v-if",!0)])])])),edit:y((()=>[h("div",D,[r[11]||(r[11]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"题目:")],-1)),h("div",H,[x(u,{modelValue:p(te),"onUpdate:modelValue":r[0]||(r[0]=e=>_(te)?te.value=e:null),type:"textarea",rows:7,"show-word-limit":"",maxlength:"400",placeholder:"【填空题】请输入问题",disabled:o.isSave},null,8,["modelValue","disabled"])])]),h("div",N,[g(' <el-link\n v-if="!showRichText"\n type="primary"\n @click="showRichText = true"\n >\n 添加富文本\n </el-link> '),x(d,{class:"margin-left-10",type:"primary",disabled:o.isSave,onClick:re},{default:y((()=>r[12]||(r[12]=[b(" 插入填空符 ")]))),_:1},8,["disabled"])]),h("div",z,[r[13]||(r[13]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"答题设置:")],-1)),(m(),c(k,null,A(ne,(e=>x(S,{key:e.value,modelValue:p(oe),"onUpdate:modelValue":r[1]||(r[1]=e=>_(oe)?oe.value=e:null)},{default:y((()=>[x(v,{value:e.value,class:"margin-left-10"},{default:y((()=>[b(C(e.label),1)])),_:2},1032,["value"])])),_:2},1032,["modelValue"]))),64))]),h("div",F,[(m(!0),c(k,null,A(p(le),((e,l)=>(m(),c("div",{key:l,class:"answer-item flex flex-items-center"},[h("div",G,[h("span",null,"第"+C(l+1)+"空答案:",1)]),h("div",J,[(m(!0),c(k,null,A(e.title.split(","),(l=>(m(),c(k,{key:l},[l?(m(),w(j,{key:0,closable:"",onClose:t=>function(e,l){if(e){const t=l.title.split(","),i=t.findIndex((l=>l===e));i>-1&&(t.splice(i,1),l.title=t.join(","))}}(l,e)},{default:y((()=>[b(C(l),1)])),_:2},1032,["onClose"])):g("v-if",!0)],64)))),128)),o.isSave?g("v-if",!0):(m(),c(k,{key:0},[e.showInput?(m(),w(u,{key:0,modelValue:e.tag,"onUpdate:modelValue":l=>e.tag=l,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(e)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(m(),w(ce,{key:1,size:"small",onClick:l=>e.showInput=!0},{default:y((()=>[x(Y,null,{default:y((()=>[x(p(V))])),_:1}),h("span",null,C(e.title?"添加同义词":"添加答案"),1)])),_:2},1032,["onClick"]))],64))])])))),128))]),o.showAnalysis?(m(),c("div",K,[r[14]||(r[14]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"解析:")],-1)),h("div",P,[x(u,{modelValue:p(ie),"onUpdate:modelValue":r[2]||(r[2]=e=>_(ie)?ie.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):g("v-if",!0),p(ae)?(m(),c("div",Q,[r[16]||(r[16]=h("div",{class:"label flex flex-justify-center"},[h("span",null,"富文本:")],-1)),h("div",W,[x(T,I({"model-value":p(se),"onUpdate:modelValue":r[3]||(r[3]=e=>_(se)?se.value=e:null)},p(ee),{style:{width:"100%"}}),null,16,["model-value"]),h("div",X,[x(d,{type:"danger",onClick:ue},{default:y((()=>r[15]||(r[15]=[b(" 删除富文本 ")]))),_:1})])])])):g("v-if",!0)])),default:y((()=>[o.showAction?(m(),w(O,{key:0,"is-edit":o.isEdit,"is-set":o.isSet,showOtherOption:!1,examAnswerRelationType:Z.examAnswerRelationType,onMoveUp:r[4]||(r[4]=e=>$("move","up")),onMoveDown:r[5]||(r[5]=e=>$("move","down")),onDelete:r[6]||(r[6]=e=>$("delete")),onSave:de,onEdit:r[7]||(r[7]=e=>$("edit")),onAdd:r[8]||(r[8]=e=>$("add",e)),onOnShowRichText:r[9]||(r[9]=e=>ae.value=!0)},null,8,["is-edit","is-set","examAnswerRelationType"])):g("v-if",!0)])),_:1},8,["show-edit"])],2)}}});export{Y as default};
@@ -0,0 +1 @@
1
+ import t from"./subject-blank-fill.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{ElInput as e,ElIcon as l,ElLink as t,ElRow as a,ElCol as s,ElRadio as n}from"element-plus/es";import{defineComponent as i,useAttrs as o,ref as d,computed as u,onMounted as r,createElementBlock as c,openBlock as p,normalizeClass as v,unref as m,createVNode as f,withCtx as x,createBlock as y,createCommentVNode as h,createElementVNode as w,isRef as b,Fragment as g,renderList as C,toDisplayString as S,mergeProps as k,createTextVNode as V}from"vue";import{CirclePlus as j,Remove as q}from"@element-plus/icons-vue";import{useNamespace as T}from"@qxs-bns/hooks";import{ElMessage as _}from"element-plus";import L from"../../../subject-action/src/subject-action.vue.d.ts";import A from"../../../subject-layout/src/subject-layout.vue.d.ts";import R from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.d.ts";const M={class:"preview"},U={class:"title"},E={key:0},O=["innerHTML"],Q={class:"answer-radio flex flex-col"},B={style:{flex:"1"}},D={class:"answer flex"},H={class:"flex"},I={class:"answer-list flex-col"},N={class:"order"},$={class:"flex",style:{"margin-bottom":"20px"}},P={style:{flex:"1"}},z={key:0,class:"margin-bottom flex"},F={style:{flex:"1"}},G={class:"flex flex-justify-end"};var J=i({name:"QxsSubjectScale",__name:"subject-scale",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},rowTitle:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},scaleQuestionList:{type:null,required:!1},examRichTextContent:{type:String,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(i,{emit:J}){const K=i,W=J,X=o(),Y=d([{title:""},{title:""},{title:""},{title:""},{title:""}]),Z=d(""),ee=d(""),le=d(""),te=d(!1),ae=d(""),se=d([]),ne=u((()=>Math.ceil(24/(Y.value.length+1))));function ie(){5!==Y.value.length&&Y.value.push({title:""})}function oe(){te.value=!1,ae.value=""}function de(){if(!Z.value)return void _.error("题目标题不能为空!");let e="";Y.value.forEach(((l,t)=>{l.title||(e+=`选项${String.fromCharCode(65+t)}未填写。`)})),e?_.error(e):le.value?(se.value=le.value.split("\n").filter((e=>e)),W("save",{title:Z.value,answers:Y.value,analysis:ee.value,scaleQuestionList:se.value,examRichTextContent:te.value?ae.value:""})):_.error("行标题不能为空!")}r((function(){K.title&&(Z.value=K.title),K.answerList&&K.answerList.length&&(Y.value=K.answerList),K.analysis&&(ee.value=K.analysis),K.scaleQuestionList&&(se.value=K.scaleQuestionList,le.value=se.value.join("\n")),K.examRichTextContent&&(ae.value=K.examRichTextContent,te.value=!0)}));const ue=T("subject-scale");return(i,o)=>{const d=s,u=a,r=n,T=e,_=l,J=t;return p(),c("div",{class:v(m(ue).e("scale-exam"))},[f(A,{"show-edit":i.isEdit},{preview:x((()=>[w("div",M,[w("div",null,[w("span",U,S(i.orderIndex+1)+"."+S(m(Z))+"(量表题)",1),m(te)?(p(),c("div",E,[w("div",{innerHTML:m(ae)},null,8,O)])):h("v-if",!0)]),w("div",Q,[f(u,{style:{padding:"10px 0"}},{default:x((()=>[f(d,{span:m(ne)},null,8,["span"]),(p(!0),c(g,null,C(m(Y),(e=>(p(),y(d,{key:e.title,class:"flex flex-center",span:m(ne)},{default:x((()=>[w("span",null,S(e.title),1)])),_:2},1032,["span"])))),128))])),_:1}),(p(!0),c(g,null,C(m(se),(e=>(p(),y(u,{key:e,style:{padding:"10px 0"}},{default:x((()=>[f(d,{span:m(ne),class:"flex flex-center"},{default:x((()=>[w("span",null,S(e),1)])),_:2},1032,["span"]),(p(!0),c(g,null,C(m(Y).length,(e=>(p(),y(d,{key:e,class:"radio-item flex flex-center",span:m(ne)},{default:x((()=>[f(r,{disabled:!0})])),_:2},1032,["span"])))),128))])),_:2},1024)))),128))])])])),edit:x((()=>[w("div",{class:v(["flex",[{"margin-bottom":m(te)}]])},[o[10]||(o[10]=w("div",{class:"label flex flex-justify-center"},[w("span",null,"题目:")],-1)),w("div",B,[f(T,{modelValue:m(Z),"onUpdate:modelValue":o[0]||(o[0]=e=>b(Z)?Z.value=e:null),type:"textarea",rows:2,placeholder:"【量表题】请输入问题",disabled:i.isSave},null,8,["modelValue","disabled"])])],2),w("div",D,[o[11]||(o[11]=w("div",{class:"label flex flex-justify-center"},[w("span",null,"行标题:")],-1)),w("div",H,[f(T,{modelValue:m(le),"onUpdate:modelValue":o[1]||(o[1]=e=>b(le)?le.value=e:null),modelModifiers:{trim:!0},type:"textarea",placeholder:"请输入行标题",style:{width:"160px"},rows:10},null,8,["modelValue"]),w("div",I,[(p(!0),c(g,null,C(m(Y),((e,l)=>(p(),c("div",{key:l,class:"answer-item flex flex-items-center"},[w("span",N,S(String.fromCharCode(65+l))+".",1),f(T,{modelValue:e.title,"onUpdate:modelValue":l=>e.title=l,class:"input","show-word-limit":"",maxlength:10,placeholder:`选项${String.fromCharCode(65+l)}`,disabled:i.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),h(' <PlusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length === 5 }]"\n @click="addAnswer"\n />\n <MinusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length < 3 }]"\n @click="deleteAnswer(index)"\n /> '),f(_,{class:"icon"},{default:x((()=>[f(m(j),{class:v([{disabled:5===m(Y).length}]),onClick:ie},null,8,["class"])])),_:1}),f(_,{class:"icon"},{default:x((()=>[f(m(q),{class:v([{disabled:m(Y).length<3}]),onClick:e=>function(e){Y.value.length<3||Y.value.splice(e,1)}(l)},null,8,["class","onClick"])])),_:2},1024)])))),128))])])]),w("div",$,[o[12]||(o[12]=w("div",{class:"label flex flex-justify-center"},[w("span",null,"解析:")],-1)),w("div",P,[f(T,{modelValue:m(ee),"onUpdate:modelValue":o[2]||(o[2]=e=>b(ee)?ee.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])]),m(te)?(p(),c("div",z,[o[14]||(o[14]=w("div",{class:"label flex flex-justify-center"},[w("span",null,"富文本:")],-1)),w("div",F,[f(R,k({"model-value":m(ae),"onUpdate:modelValue":o[3]||(o[3]=e=>b(ae)?ae.value=e:null)},m(X),{style:{width:"100%"}}),null,16,["model-value"]),w("div",G,[f(J,{type:"danger",onClick:oe},{default:x((()=>o[13]||(o[13]=[V(" 删除富文本 ")]))),_:1})])])])):h("v-if",!0)])),default:x((()=>[i.showAction?(p(),y(L,{key:0,"is-edit":i.isEdit,"is-set":i.isSet,showOtherOption:!1,examAnswerRelationType:K.examAnswerRelationType,onMoveUp:o[4]||(o[4]=e=>W("move","up")),onMoveDown:o[5]||(o[5]=e=>W("move","down")),onDelete:o[6]||(o[6]=e=>W("delete")),onSave:de,onEdit:o[7]||(o[7]=e=>W("edit")),onAdd:o[8]||(o[8]=e=>W("add",e)),onOnShowRichText:o[9]||(o[9]=e=>te.value=!0)},null,8,["is-edit","is-set","examAnswerRelationType"])):h("v-if",!0)])),_:1},8,["show-edit"])],2)}}});export{J as default};
@@ -0,0 +1 @@
1
+ import e from"./subject-scale.vue.d.ts";export{e as default};
@@ -0,0 +1 @@
1
+ import{ElCheckbox as e,ElRadio as l,ElInput as t,ElSelect as a,ElOption as i,ElIcon as s,ElLink as n,ElDialog as r,ElButton as o}from"element-plus/es";import{defineComponent as u,useAttrs as d,ref as m,computed as c,watch as p,onMounted as v,createElementBlock as y,openBlock as f,normalizeClass as x,unref as w,createVNode as h,createSlots as C,withCtx as g,createBlock as b,createCommentVNode as k,createElementVNode as S,createTextVNode as A,toDisplayString as V,Fragment as T,renderList as q,isRef as R,mergeProps as _}from"vue";import{CirclePlus as E,Remove as I}from"@element-plus/icons-vue";import{useNamespace as j}from"@qxs-bns/hooks";import U from"../../../subject-action/src/subject-action.vue.d.ts";import B from"../../../subject-layout/src/subject-layout.vue.d.ts";import K from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.d.ts";import{setGuid as L}from"@qxs-bns/utils";import{ElMessage as $}from"element-plus";const N={class:"preview"},z={class:"title"},M={key:0},D={key:1},H={key:0},O=["innerHTML"],Q={class:"preview-answer"},F={class:"order"},G={class:"order"},J={style:{flex:"1"}},P={class:"margin-bottom flex flex-items-center"},W={class:"margin-bottom answer-list"},X={class:"order"},Y={key:0,class:"margin-bottom flex flex-items-center"},Z={style:{flex:"1"}},ee={key:1,class:"flex"},le={style:{flex:"1"}},te={key:2,class:"margin-bottom flex"},ae={style:{flex:"1"}},ie={class:"flex flex-justify-end"};var se=u({name:"QxsSubjectSingle",__name:"subject-single",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},type:{type:String,required:!0},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},answerList:{type:null,required:!1},leastAnswerCount:{type:Number,required:!1},analysis:{type:String,required:!1},examExpand:{type:String,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1},customId:{type:Number,required:!1},examId:{type:Number,required:!1},isKey:{type:Boolean,required:!0},answerCheckType:{type:Number,required:!0}},emits:["move","save","delete","edit","add","setRelation"],setup(u,{emit:se}){const ne=u,re=se,oe=d(),ue=m(0),de=m(!1),me=m(1),ce=m(1),pe=m([{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1}]),ve=m(),ye=m(""),fe=m(""),xe=m(!1),we=m(""),he=m(0),Ce=m(!1),ge=m(""),be=c((()=>"single"===ne.type?"单选题":"multiple"===ne.type?"多选题":"排序题")),ke=m([]),Se=c((()=>{const e=[];for(let l=pe.value.length;l>1;l--)e.push({label:`至少选择${l}项`,value:l});return e.reverse()}));function Ae(){ne.isSave||pe.value.push({title:"",isCorrect:!1,customAnswerId:L()})}function Ve(){xe.value=!1,we.value=""}function Te(){if(!ye.value)return void $.error("题目标题不能为空!");let e="",l=!1,t=0;if("multiple"===ne.type||"single"===ne.type?pe.value.forEach(((a,i)=>{a.title||(e+=`选项${String.fromCharCode(65+i)}未填写。`),a.isCorrect&&(l=!0,t++)})):"sort"===ne.type&&ke.value.length&&(l=!0),e)return void $.error(e);if(new Set(pe.value.map((e=>e.title))).size===pe.value.length){if("multiple"===ne.type){if(1===t)return void $.error("请至少设置两个支持选项");if(l&&t<ve.value)return void $.error("至少选几项与支持选项数不符")}console.log(me.value,111),2!==me.value&&3!==me.value||l?re("save",{title:ye.value,answers:pe.value.map(((e,l)=>({...e,orderIndex:l+1}))),examExpand:ke.value.map((e=>e.charCodeAt(0)-65+1)).join(","),analysis:fe.value,isSetCorrectAnswer:l,leastAnswerCount:ve.value,examRichTextContent:xe.value?we.value:"",examAnswerRelationType:ce.value,isKey:de.value,answerCheckType:me.value}):$.error("请设置支持选项")}else $.error("选项不能重复")}function qe(){pe.value[ue.value].resultItem=ge.value||"",Ce.value=!1}function Re(){Ce.value=!1,ge.value=""}function _e(e){de.value=e}function Ee(e){me.value=e}function Ie(e,l){re("add",e,l?ne.examAnswerRelationType:null)}p((()=>ne.isEdit),(()=>{ne.isEdit&&(he.value=(new Date).getTime())}));const je=c((()=>e=>{let l=0;return e.forEach((e=>{e.relationAnswers&&(l+=e.relationAnswers.length)})),l})),Ue=j("subject-single");return v((function(){if(ne.title&&(ye.value=ne.title),ne.answerCheckType&&(me.value=ne.answerCheckType),ne.isKey&&(de.value=ne.isKey),ne.examAnswerRelationType&&(ce.value=ne.examAnswerRelationType),ne.answerList&&ne.answerList.length&&(pe.value=ne.answerList),ne.leastAnswerCount&&(ve.value=ne.leastAnswerCount),ne.examExpand&&ne.examExpand){const e=ne.examExpand.split(",");ke.value=e.map((e=>{const l=ne.answerList.find((l=>l.answerId?.toString()===e));return l?String.fromCharCode(65+l.orderIndex-1):e})).filter(Boolean)}ne.analysis&&(fe.value=ne.analysis),ne.examRichTextContent&&(we.value=ne.examRichTextContent,xe.value=!0)})),(u,d)=>{const m=e,c=l,p=t,v=i,j=a,$=s,se=n,he=o,Be=r;return f(),y("div",{class:x(w(Ue).e("single-exam"))},[h(B,{"show-edit":u.isEdit},C({preview:g((()=>[S("div",N,[S("div",null,[S("span",z,[A(V(u.orderIndex+1)+"."+V(w(ye))+" ",1),"single"===u.type?(f(),y("span",M,"(单选题)")):["multiple","sort"].includes(u.type)?(f(),y("span",D," ("+V(w(be))+V(w(ve)?`至少选${w(ve)}项${"sort"===u.type?"并排序":""}`:"")+") ",1)):k("v-if",!0)])]),w(xe)?(f(),y("div",H,[S("div",{innerHTML:w(we)},null,8,O)])):k("v-if",!0),S("div",Q,["sort"===u.type?(f(!0),y(T,{key:0},q(w(pe),((e,l)=>(f(),b(m,{key:l,class:"radio",disabled:!0},{default:g((()=>[S("span",F,V(String.fromCharCode(65+l))+". ",1),A(" "+V(e.title),1)])),_:2},1024)))),128)):(f(!0),y(T,{key:1},q(w(pe),((e,l)=>(f(),b(c,{key:l,class:"radio",value:"disabled",disabled:""},{default:g((()=>[S("span",G,V(String.fromCharCode(65+l))+". ",1),A(" "+V(e.title)+" "+V(e.isCorrect?"(支持选项)":"")+" "+V(1===w(ce)?e.resultItem?"(已设置结果项)":"(未设置结果项)":"")+" "+V(2===w(ce)?e.answerRelations?.length?"(已设置关联)":"(未设置关联)":""),1)])),_:2},1024)))),128))])])])),default:g((()=>[u.showAction?(f(),b(U,{key:0,"is-edit":u.isEdit,"is-set":u.isSet,isKey:w(de),examAnswerRelationType:ne.examAnswerRelationType,answerCheckType:w(me),onMoveUp:d[5]||(d[5]=e=>re("move","up")),onMoveDown:d[6]||(d[6]=e=>re("move","down")),onDelete:d[7]||(d[7]=e=>re("delete")),onSave:Te,onEdit:d[8]||(d[8]=e=>re("edit")),onAdd:Ie,onOnShowRichText:d[9]||(d[9]=e=>xe.value=!0),onSetKey:_e,onSetAnswerSetting:Ee},null,8,["is-edit","is-set","isKey","examAnswerRelationType","answerCheckType"])):k("v-if",!0)])),_:2},[u.isEdit?{name:"edit",fn:g((()=>[S("div",{class:x(["flex",[{"margin-bottom":w(xe)}]])},[d[12]||(d[12]=S("div",{class:"label flex flex-justify-center"},[S("span",null,"题目:")],-1)),S("div",J,[h(p,{modelValue:w(ye),"onUpdate:modelValue":d[0]||(d[0]=e=>R(ye)?ye.value=e:null),type:"textarea",rows:2,placeholder:`【${w(be)}】请输入问题`,disabled:u.isSave,"show-word-limit":"",maxlength:"200",class:"margin-bottom"},null,8,["modelValue","placeholder","disabled"])])],2),S("div",P,[d[13]||(d[13]=S("div",{class:"label flex flex-justify-center"},[S("span",null,"设置:")],-1)),["multiple","sort"].includes(u.type)?(f(),b(j,{key:0,modelValue:w(ve),"onUpdate:modelValue":d[1]||(d[1]=e=>R(ve)?ve.value=e:null),style:{width:"150px"},placeholder:"至少选择几项",disabled:u.isSave},{default:g((()=>[(f(!0),y(T,null,q(w(Se),(e=>(f(),b(v,{key:e.value,value:e.value,label:e.label},null,8,["value","label"])))),128))])),_:1},8,["modelValue","disabled"])):k("v-if",!0)]),S("div",W,[(f(!0),y(T,null,q(w(pe),((e,l)=>(f(),y("div",{key:l,class:"answer-item flex flex-items-center"},[S("span",X,V(String.fromCharCode(65+l))+".",1),h(p,{modelValue:e.title,"onUpdate:modelValue":l=>e.title=l,class:"input","show-word-limit":"",maxlength:"100",placeholder:`选项${String.fromCharCode(65+l)}`,disabled:u.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),["single","multiple"].includes(u.type)?(f(),b(m,{key:0,modelValue:e.isCorrect,"onUpdate:modelValue":l=>e.isCorrect=l,class:x([{"is-correct":e.isCorrect}]),disabled:u.isSave,style:{"margin-left":"10px"},onChange:l=>function(e,l){"single"===ne.type?(l&&pe.value.forEach((l=>{l!==e&&(l.isCorrect=!1)})),e.isCorrect=l):"multiple"===ne.type&&(e.isCorrect=l)}(e,l)},{default:g((()=>[...d[14]||(d[14]=[A(" 支持选项 ")])])),_:2},1032,["modelValue","onUpdate:modelValue","class","disabled","onChange"])):k("v-if",!0),h($,{class:"icon"},{default:g((()=>[h(w(E),{class:x([{disabled:u.isSave}]),onClick:Ae},null,8,["class"])])),_:1}),h($,{class:"icon"},{default:g((()=>[h(w(I),{class:x([{disabled:w(pe).length<3||u.isSave}]),onClick:e=>function(e){pe.value.length<3||ne.isSave||pe.value.splice(e,1)}(l)},null,8,["class","onClick"])])),_:2},1024),1===w(ce)?(f(),b(se,{key:1,type:"primary",class:"margin-left-10",onClick:e=>{return t=l,ue.value=t,ge.value=pe.value[t].resultItem||"",void(Ce.value=!0);var t}},{default:g((()=>[S("span",null,V(e.resultItem?"编辑结果":"添加结果"),1)])),_:2},1032,["onClick"])):k("v-if",!0),2===w(ce)?(f(),b(se,{key:2,type:"primary",class:"margin-left-10",onClick:l=>function(e){e.customAnswerId=e.examAnswerId||L(),re("setRelation",ne.customId,e)}(e)},{default:g((()=>[S("span",null,V(e.answerRelations?.length?`关联了${w(je)(e.answerRelations)}项`:"关联检查"),1)])),_:2},1032,["onClick"])):k("v-if",!0)])))),128))]),"sort"===u.type?(f(),y("div",Y,[d[15]||(d[15]=S("div",{class:"label flex flex-justify-end"},[S("span",null,"排序答案:")],-1)),S("div",Z,[h(j,{modelValue:w(ke),"onUpdate:modelValue":d[2]||(d[2]=e=>R(ke)?ke.value=e:null),mode:"multiple",style:{width:"360px"},placeholder:"请按顺序选择排序答案","show-arrow":!0},{default:g((()=>[k(' :options="[...Array(answers.length)].map((_, i) => ({ value: String.fromCharCode(65 + i) }))" '),(f(!0),y(T,null,q(w(pe),((e,l)=>(f(),b(v,{key:l,label:e.title,value:String.fromCharCode(65+l)},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])])):k("v-if",!0),u.showAnalysis?(f(),y("div",ee,[d[16]||(d[16]=S("div",{class:"label flex flex-justify-center"},[S("span",null,"解析:")],-1)),S("div",le,[h(p,{modelValue:w(fe),"onUpdate:modelValue":d[3]||(d[3]=e=>R(fe)?fe.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):k("v-if",!0),w(xe)?(f(),y("div",te,[d[18]||(d[18]=S("div",{class:"label flex flex-justify-center"},[S("span",null,"富文本:")],-1)),S("div",ae,[h(K,_({"model-value":w(we),"onUpdate:modelValue":d[4]||(d[4]=e=>R(we)?we.value=e:null)},w(oe),{style:{width:"100%"}}),null,16,["model-value"]),S("div",ie,[h(se,{type:"danger",onClick:Ve},{default:g((()=>d[17]||(d[17]=[A(" 删除富文本 ")]))),_:1})])])])):k("v-if",!0)])),key:"0"}:void 0]),1032,["show-edit"]),h(Be,{modelValue:w(Ce),"onUpdate:modelValue":d[11]||(d[11]=e=>R(Ce)?Ce.value=e:null),title:"添加结果",class:"customize-dialog"},{footer:g((()=>[h(he,{class:"customize-button",type:"primary",plain:"",onClick:Re},{default:g((()=>d[19]||(d[19]=[A(" 取消 ")]))),_:1}),h(he,{class:"customize-button",type:"primary",plain:"",onClick:qe},{default:g((()=>d[20]||(d[20]=[A(" 保存 ")]))),_:1})])),default:g((()=>[(f(),b(K,_({key:w(ue),"model-value":w(ge),"onUpdate:modelValue":d[10]||(d[10]=e=>R(ge)?ge.value=e:null)},w(oe),{style:{width:"100%"}}),null,16,["model-value"]))])),_:1},8,["modelValue"])],2)}}});export{se as default};
@@ -0,0 +1 @@
1
+ import e from"./subject-single.vue.d.ts";export{e as default};
@@ -0,0 +1 @@
1
+ import{ElInput as e,ElInputNumber as l,ElCheckboxGroup as t,ElCheckbox as a,ElTag as i,ElButton as s,ElIcon as n,ElLink as o}from"element-plus/es";import{defineComponent as u,useAttrs as r,ref as d,onMounted as v,createElementBlock as m,openBlock as c,normalizeClass as p,unref as f,createVNode as x,withCtx as y,createBlock as w,createCommentVNode as g,createElementVNode as h,isRef as b,Fragment as V,renderList as k,createTextVNode as C,toDisplayString as S,mergeProps as I}from"vue";import{Plus as O,CirclePlus as j,Remove as A}from"@element-plus/icons-vue";import{useNamespace as q}from"@qxs-bns/hooks";import{ElMessage as _}from"element-plus";import T from"../../../subject-action/src/subject-action.vue.d.ts";import E from"../../../subject-layout/src/subject-layout.vue.d.ts";import R from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.d.ts";const U={class:"preview"},B={class:"content"},L={class:"title"},M={key:0},D=["innerHTML"],H={class:"content flex flex-col"},N={key:1,class:"flex",style:{"margin-top":"10px",color:"#a8abb2"}},z={class:"title"},$={class:"flex"},F={style:{flex:"1"},class:"margin-bottom"},G={class:"margin-bottom flex flex-items-center"},J={class:"flex"},K={style:{flex:"1"}},P={class:"margin-bottom answer-list"},Q={class:"label flex flex-justify-end"},W={class:"answer-tags"},X={class:"operation"},Y={key:0,class:"margin-bottom flex"},Z={style:{flex:"1"}},ee={key:1,class:"margin-bottom flex"},le={style:{flex:"1"}},te={class:"flex flex-justify-end"};var ae=u({__name:"subject-text-fill",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examExpand:{type:String,required:!1},examAnswerSettingVO:{type:Object,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(u,{emit:ae}){const ie=u,se=ae,ne=r(),oe=d([{title:"",tag:"",showInput:!1}]),ue=d(""),re=d(""),de=d(),ve=d(""),me=d(!1),ce=d(""),pe=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],fe=d(["isInOrder","isIgnoreCase"]);function xe(){oe.value.push({title:"",tag:"",showInput:!1})}function ye(){me.value=!1,ce.value=""}function we(){if(ue.value){if(de.value||ve.value){if(!de.value)return void _.error("请完善答题设置!");if(!ve.value)return void _.error("请输入问题正确答案!");if(oe.value.length!==de.value)return void _.error("关键词个数设置有误!");const e=[];if(oe.value.forEach(((l,t)=>{l.title||e.push(`关键词${t+1}未设置`)})),e.length>0)return void _.error(e.join(","))}se("save",{title:ue.value,answers:oe.value.filter((e=>e.title)).map((e=>({title:e.title}))),analysis:re.value,isSetCorrectAnswer:!!ve.value,examExpand:ve.value,examAnswerSettingBO:{isIgnoreCase:fe.value?.includes("isIgnoreCase"),isInOrder:fe.value?.includes("isInOrder"),keywordCount:de.value},examRichTextContent:me.value?ce.value:""})}else _.error("题目标题不能为空!")}v((function(){ie.title&&(ue.value=ie.title),ie.answerList&&ie.answerList.length&&(oe.value=ie.answerList),ie.examAnswerSettingVO&&(fe.value=fe.value.filter((e=>"isIgnoreCase"===e&&ie.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&ie.examAnswerSettingVO?.isInOrder))),ie.examAnswerSettingVO?.keywordCount&&(de.value=ie.examAnswerSettingVO?.keywordCount),ie.examExpand&&(ve.value=ie.examExpand),ie.analysis&&(re.value=ie.analysis),ie.examRichTextContent&&(ce.value=ie.examRichTextContent,me.value=!0)}));const ge=q("subject-text-fill");return(u,r)=>{const d=a,v=e,q=l,_=t,ae=i,he=n,be=s,Ve=o;return c(),m("div",{class:p(f(ge).e("text-fill-exam"))},[x(E,{"show-edit":u.isEdit},{preview:y((()=>[h("div",U,[h("div",B,[h("span",L,S(u.orderIndex+1)+"."+S(f(ue))+"(问答题)",1),f(me)?(c(),m("div",M,[h("div",{innerHTML:f(ce)},null,8,D)])):g("v-if",!0),h("div",H,[f(oe).some((e=>e.title))?(c(!0),m(V,{key:0},k(f(oe),((e,l)=>(c(),w(d,{key:l,class:"radio",disabled:!0},{default:y((()=>[C(S(e.title),1)])),_:2},1024)))),128)):g("v-if",!0)]),f(ve)?(c(),m("div",N,[h("span",z,"正确答案:"+S(f(ve)),1)])):g("v-if",!0)])])])),edit:y((()=>[h("div",$,[r[12]||(r[12]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"题目:")],-1)),h("div",F,[x(v,{modelValue:f(ue),"onUpdate:modelValue":r[0]||(r[0]=e=>b(ue)?ue.value=e:null),type:"textarea",rows:2,placeholder:"【问答题】请输入问题",maxlength:200,"show-word-limit":"",disabled:u.isSave},null,8,["modelValue","disabled"])])]),h("div",G,[r[13]||(r[13]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"答题设置:")],-1)),r[14]||(r[14]=h("span",null,"共答对",-1)),x(q,{modelValue:f(de),"onUpdate:modelValue":r[1]||(r[1]=e=>b(de)?de.value=e:null),style:{width:"100px",margin:"0 10px"},min:1},null,8,["modelValue"]),r[15]||(r[15]=h("span",{style:{"margin-right":"10px"}},"个关键词,算是正确的",-1)),(c(),m(V,null,k(pe,(e=>x(_,{key:e.value,modelValue:f(fe),"onUpdate:modelValue":r[2]||(r[2]=e=>b(fe)?fe.value=e:null)},{default:y((()=>[x(d,{label:e.value,class:"margin-left-10"},{default:y((()=>[C(S(e.label),1)])),_:2},1032,["label"])])),_:2},1032,["modelValue"]))),64))]),h("div",J,[r[16]||(r[16]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"答案:")],-1)),h("div",K,[x(v,{modelValue:f(ve),"onUpdate:modelValue":r[3]||(r[3]=e=>b(ve)?ve.value=e:null),type:"textarea",rows:2,placeholder:"请输入正确答案",maxlength:200,"show-word-limit":"",disabled:u.isSave},null,8,["modelValue","disabled"])])]),h("div",P,[r[17]||(r[17]=h("span",{style:{"padding-left":"60px"}},"*如遇包含特殊字符的关键词,需添加多个同义词,例:'CO₂'需添加同义词'CO2'",-1)),(c(!0),m(V,null,k(f(oe),((e,l)=>(c(),m("div",{key:l,class:"answer-item flex flex-items-center"},[h("div",Q,[h("span",null,"关键词"+S(l+1)+":",1)]),h("div",W,[(c(!0),m(V,null,k(e.title.split(","),(l=>(c(),m(V,{key:l},[l?(c(),w(ae,{key:0,closable:"",onClose:t=>function(e,l){if(e){const t=l.title.split(","),a=t.findIndex((l=>l===e));a>-1&&(t.splice(a,1),l.title=t.join(","))}}(l,e)},{default:y((()=>[C(S(l),1)])),_:2},1032,["onClose"])):g("v-if",!0)],64)))),128)),u.isSave?g("v-if",!0):(c(),m(V,{key:0},[e.showInput?(c(),w(v,{key:0,modelValue:e.tag,"onUpdate:modelValue":l=>e.tag=l,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(e)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(c(),w(be,{key:1,size:"small",onClick:l=>e.showInput=!0},{default:y((()=>[x(he,null,{default:y((()=>[x(f(O))])),_:1}),h("span",null,S(e.title?"添加同义词":"添加关键词"),1)])),_:2},1032,["onClick"]))],64))]),h("div",X,[x(he,{class:"icon"},{default:y((()=>[x(f(j),{class:p([{disabled:u.isSave}]),onClick:xe},null,8,["class"])])),_:1}),x(he,{class:"icon"},{default:y((()=>[x(f(A),{class:p([{disabled:f(oe).length<2||u.isSave}]),onClick:e=>function(e){oe.value.length<2||ie.isSave||oe.value.splice(e,1)}(l)},null,8,["class","onClick"])])),_:2},1024)])])))),128))]),u.showAnalysis?(c(),m("div",Y,[r[18]||(r[18]=h("div",{class:"label flex flex-justify-end"},[h("span",null,"解析:")],-1)),h("div",Z,[x(v,{modelValue:f(re),"onUpdate:modelValue":r[4]||(r[4]=e=>b(re)?re.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):g("v-if",!0),f(me)?(c(),m("div",ee,[r[20]||(r[20]=h("div",{class:"label flex flex-justify-center"},[h("span",null,"富文本:")],-1)),h("div",le,[x(R,I({"model-value":f(ce),"onUpdate:modelValue":r[5]||(r[5]=e=>b(ce)?ce.value=e:null)},f(ne),{style:{width:"100%"}}),null,16,["model-value"]),h("div",te,[x(Ve,{type:"danger",onClick:ye},{default:y((()=>r[19]||(r[19]=[C(" 删除富文本 ")]))),_:1})])])])):g("v-if",!0)])),default:y((()=>[u.showAction?(c(),w(T,{key:0,"is-edit":u.isEdit,"is-set":u.isSet,showOtherOption:!1,examAnswerRelationType:ie.examAnswerRelationType,onMoveUp:r[6]||(r[6]=e=>se("move","up")),onMoveDown:r[7]||(r[7]=e=>se("move","down")),onDelete:r[8]||(r[8]=e=>se("delete")),onSave:we,onEdit:r[9]||(r[9]=e=>se("edit")),onAdd:r[10]||(r[10]=e=>se("add",e)),onOnShowRichText:r[11]||(r[11]=e=>me.value=!0)},null,8,["is-edit","is-set","examAnswerRelationType"])):g("v-if",!0)])),_:1},8,["show-edit"])],2)}}});export{ae as default};
@@ -0,0 +1 @@
1
+ import t from"./subject-text-fill.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,useAttrs as s,watch as n,createElementBlock as i,openBlock as a,normalizeClass as o,unref as l,createElementVNode as r,Fragment as d,renderList as c,createBlock as m,createCommentVNode as x,mergeProps as u}from"vue";import p from"./components/subject-blank-fill.vue.d.ts";import w from"./components/subject-scale.vue.d.ts";import v from"./components/subject-single.vue.d.ts";import y from"./components/subject-text-fill.vue.d.ts";import h from"./components/SubjectRichText.vue.d.ts";import T from"./components/SubjectPageEnd.vue.d.ts";import{useNamespace as A}from"@qxs-bns/hooks";import{setGuid as R}from"@qxs-bns/utils";import{ElMessage as f}from"element-plus/es";const E={class:"subject-list-wrapper"};var S=e({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(e,{expose:S,emit:C}){const g=e,D=t([]),b=C,_=s();function j(){let e=0,t=!1;return D.value.map(((s,n,i)=>{"page_end"===s.answerType&&(e++,t=n===i.length-1)})),t?e:e+1}function k(e,t,s){console.log(t,"index"),t||0===t?D.value.splice(t+1,0,{customId:R(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:s}):D.value.push({customId:R(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:s})}function I(e,t){if("up"===t&&e>0){const[t]=D.value.splice(e,1);D.value.splice(e-1,0,t)}else if("down"===t&&e<D.value.length-1){const[t]=D.value.splice(e,1);D.value.splice(e+1,0,t)}}function M(e,t){for(let s=0;s<D.value.length;s++)e===s&&(D.value[e]={...D.value[e],...t,isEdit:!1,examAnswerRelationType:t.examAnswerRelationType})}function L(e){D.value.splice(e,1),f.success("删除成功")}function P(e,t){b("setRelation",e,t)}S({addSubject:k,currentList:D,uploadExcel:function(e){D.value=D.value.concat(e)},addExam:function(e){const t=[];e.answers?.map((e=>{t.push({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect})})),D.value.push({...e,customId:R(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:t,isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1})},setAnswerRelation:function(e,t,s){e.length&&D.value?.map((n=>{n.customId===t&&n.answers?.map((t=>{t.customAnswerId===s&&(t.answerRelations=e)}))}))}}),n((()=>g.subjectList),(e=>{e&&(D.value=[...e])}),{immediate:!0});const q=A("subject-list");return(e,t)=>(a(),i("div",{class:o(l(q).e("list-exam"))},[r("div",E,[(a(!0),i(d,null,c(l(D),((t,s)=>(a(),i("div",{key:s+t.examId||t.title},[["single","multiple","sort"].includes(t.answerType)?(a(),m(v,u({key:0,ref_for:!0},l(_),{"order-index":s,title:t.title,type:t.answerType,"exam-id":t.examId,isKey:t.isKey,"is-save":!t.isRealCanDel,customId:t.customId,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"least-answer-count":t.leastAnswerCount,"is-edit":t.isEdit||!1,"show-action":!e.isPreview,"exam-expand":t.examExpand,answerCheckType:t.answerCheckType,"exam-rich-text-content":t.examRichTextContent,examAnswerRelationType:t.examAnswerRelationType,onSetRelation:P,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:(e,t)=>k(e,s,t)}),null,16,["order-index","title","type","exam-id","isKey","is-save","customId","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answerCheckType","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===t.answerType?(a(),m(w,u({key:1,ref_for:!0},l(_),{"order-index":s,title:t.title,"is-save":!t.isRealCanDel,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"is-edit":t.isEdit||!1,"scale-question-list":t.scaleQuestionList,"show-action":!e.isPreview,"exam-rich-text-content":t.examRichTextContent,examAnswerRelationType:t.examAnswerRelationType,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===t.answerType?(a(),m(p,u({key:2,ref_for:!0},l(_),{"order-index":s,title:t.title,"is-save":!t.isRealCanDel,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"show-action":!e.isPreview,"is-edit":t.isEdit||!1,"exam-answer-setting-v-o":t.examAnswerSettingVO||{},"exam-rich-text-content":t.examRichTextContent,examAnswerRelationType:t.examAnswerRelationType,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===t.answerType?(a(),m(y,u({key:3,ref_for:!0},l(_),{"order-index":s,title:t.title,"is-save":!t.isRealCanDel,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"show-action":!e.isPreview,"is-edit":t.isEdit||!1,"exam-expand":t.examExpand,"exam-answer-setting-v-o":t.examAnswerSettingVO||{},examAnswerRelationType:t.examAnswerRelationType,"exam-rich-text-content":t.examRichTextContent,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","examAnswerRelationType","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===t.answerType?(a(),m(h,u({key:4,ref_for:!0},l(_),{"order-index":s,richTextContent:t.richTextContent,"is-set":t.hasSet||!1,"is-save":!t.isRealCanDel,"is-edit":t.isEdit||!1,"show-action":!e.isPreview,onMove:e=>I(s,e),onDelete:e=>L(s),examAnswerRelationType:t.examAnswerRelationType,onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","richTextContent","is-set","is-save","is-edit","show-action","onMove","onDelete","examAnswerRelationType","onSave","onEdit","onAdd"])):"page_end"===t.answerType?(a(),m(T,{"total-page":j(),key:s,"current-page-index":(e=>{const t=D.value.filter((e=>"page_end"===e.answerType));let s=0;return t?.forEach(((t,n)=>{e===t.id&&(s=n+1)})),s})(t.id),item:t,"order-index":s,"is-edit":t.isEdit||!1,"is-set":t.hasSet||!1,"is-save":!t.isRealCanDel,examAnswerRelationType:t.examAnswerRelationType,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)},null,8,["total-page","current-page-index","item","order-index","is-edit","is-set","is-save","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):x("v-if",!0)])))),128))])],2))}});export{S as default};
@@ -0,0 +1 @@
1
+ import t from"./subject-list.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import s from"./src/subject-type.vue.d.ts";const o=t(s);export{o as QxsSubjectType,o as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as l,createElementBlock as t,openBlock as s,normalizeClass as a,unref as i,createElementVNode as c,Fragment as p,renderList as n,toDisplayString as y}from"vue";import{useNamespace as b}from"@qxs-bns/hooks";const u={class:"type-item"},m={class:"base-subject"},o=["onClick"],d={class:"type-item"},v={class:"base-subject flex"},r=["onClick"],k={class:"type-item"},f={class:"base-subject flex"},x=["onClick"];var j=e({name:"QxsSubjectType",__name:"subject-type",emits:["select"],setup(e,{emit:j}){const C=j,_=l([{type:"single",label:"单选题"},{type:"multiple",label:"多选题"},{type:"blank_fill",label:"填空题"},{type:"text_fill",label:"问答题"},{type:"scale",label:"量表题"},{type:"sort",label:"排序题"}]),g=l([{type:"rich_text",label:"富文本"},{type:"page_end",label:"分页器"}]),h=l([{type:"single",label:"单选题"},{type:"multiple",label:"多选题"}]),q=b("subject-type");return(e,l)=>(s(),t("div",{class:a(i(q).e("type-list"))},[c("div",u,[l[0]||(l[0]=c("div",null,"普通题目类型",-1)),c("div",m,[(s(!0),t(p,null,n(i(_),(e=>(s(),t("div",{key:e.type,class:"item flex-center",onClick:l=>C("select",e.type)},[c("span",null,y(e.label),1)],8,o)))),128))])]),c("div",d,[l[1]||(l[1]=c("div",null,"其他",-1)),c("div",v,[(s(!0),t(p,null,n(i(g),(e=>(s(),t("div",{key:e.type,class:"item flex-center",onClick:l=>C("select",e.type)},[c("span",null,y(e.label),1)],8,r)))),128))])]),c("div",k,[l[2]||(l[2]=c("div",null,"互动问答类型(支持设置结果项)",-1)),c("div",f,[(s(!0),t(p,null,n(i(h),(e=>(s(),t("div",{key:e.type,class:"item flex-center",onClick:l=>C("select",e.type,!0)},[c("span",null,y(e.label),1)],8,x)))),128))])])],2))}});export{j as default};
@@ -0,0 +1 @@
1
+ import t from"./subject-type.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ import{withInstall as t}from"../withInstall.d.ts";import o from"./src/tiny-mce-editor.vue.d.ts";const r=t(o);export{r as QxsTinyMceEditor,r as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,computed as i,ref as t,onMounted as n,createElementBlock as o,openBlock as r,normalizeClass as a,unref as l,createCommentVNode as s,withDirectives as m,createElementVNode as u,isRef as p,vModelText as c}from"vue";import{useNamespace as d}from"@qxs-bns/hooks";import{merge as g}from"lodash-es";import y from"tinymce/tinymce";import"tinymce/themes/silver/theme";import"tinymce/icons/default/icons";import"tinymce/models/dom";import"tinymce/plugins/autolink";import"tinymce/plugins/autoresize";import"tinymce/plugins/fullscreen";import"tinymce/plugins/image";import"tinymce/plugins/insertdatetime";import"tinymce/plugins/link";import"tinymce/plugins/lists";import"tinymce/plugins/media";import"tinymce/plugins/preview";import"tinymce/plugins/table";import"tinymce/plugins/wordcount";import"tinymce/plugins/code";import"tinymce/plugins/searchreplace";import"tinymce/plugins/nonbreaking";const f=["id","name"];var h=e({name:"QxsTinyMceEditor",__name:"tiny-mce-editor",props:{modelValue:{type:String,required:!0,default:""},config:{type:Object,required:!1,default:()=>({})},assetsBasePath:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(e,{emit:h}){const b=h,k=d("file-upload"),_=i({get:()=>e.modelValue,set(e){b("update:modelValue",e)}}),v=t(`tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2,9)}`),x=e.assetsBasePath||"/node_modules/@qxs-bns/components/"+(import.meta.env.DEV?"src/tiny-mce-editor/public/":"es/public/tiny-mce-editor/"),w={selector:`textarea#${v.value}`,promotion:!1,license_key:"gpl",elementpath:!1,language:"zh-Hans",language_url:`${x}tinymce/langs/zh-Hans.js`,skin_url:`${x}tinymce/skins/ui/oxide`,content_css:`${x}tinymce/skins/content/default/content.min.css`,min_height:250,max_height:600,plugins:"autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking",toolbar:"undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code",branding:!1,autoresize:!0,menubar:!1,nonbreaking_force_tab:!0,toolbar_mode:"sliding",insertdatetime_formats:["%Y年%m月%d日","%H点%M分%S秒","%Y-%m-%d","%H:%M:%S"],setup:i=>{i.on("input change undo redo",(()=>{_.value=i.getContent()})),i.on("init",(()=>{i.setContent(_.value)})),e.config?.expandSetup?.(i)}},S=i((()=>{const i=w;return e.config.images_upload_handler||("string"==typeof i.plugins?i.plugins=i.plugins.replace("image",""):Array.isArray(i.plugins)&&(i.plugins=i.plugins.filter((e=>"image"!==e)))),g(i,e.config)}));return n((async()=>{"undefined"!=typeof window&&y.init(S.value)})),(e,i)=>(r(),o("div",{class:a(l(k).e("tiny-mce"))},[s(" 使用动态生成的 id "),m(u("textarea",{id:l(v),"onUpdate:modelValue":i[0]||(i[0]=e=>p(_)?_.value=e:null),name:l(v)},null,8,f),[[c,l(_)]])],2))}});export{h as default};
@@ -0,0 +1 @@
1
+ import t from"./tiny-mce-editor.vue.d.ts";export{t as default};
@@ -0,0 +1 @@
1
+ function n(n,o){return n.install=o=>{for(const t of[n,...Object.values({})])o.component(t.name,t)},n}export{n as withInstall};