giime 0.5.5 → 0.5.6

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.
package/dist/index.css CHANGED
@@ -801,11 +801,6 @@ video {
801
801
  .gm-group:hover .group-hover\:gm-block {
802
802
  display: block;
803
803
  }
804
-
805
- .gm-range-number .el-form-item[data-v-11c39847] {
806
- margin: 0;
807
- }
808
-
809
804
  .gm-flex-center[data-v-2a79bac9] {
810
805
  align-items: center;
811
806
  }
@@ -813,6 +808,33 @@ video {
813
808
  .gm-flex-justify-between[data-v-2a79bac9] {
814
809
  justify-content: space-between;
815
810
  }
811
+ .gm-upload-preview-dialog[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-dialog__body {
812
+ padding: 0;
813
+ }
814
+
815
+ .gm-upload-file-picture-card[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-upload-list__item, .gm-upload-file-picture-card[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-upload--picture-card {
816
+ width: 120px;
817
+ height: 120px;
818
+ display: flex;
819
+ align-items: center;
820
+ justify-content: center;
821
+ }
822
+ .gm-upload-file {
823
+ line-height: normal;
824
+ }
825
+ .gm-upload-file .el-checkbox {
826
+ position: absolute;
827
+ left: 10px;
828
+ top: 0;
829
+ z-index: 9;
830
+ }
831
+ .gm-upload-file .el-upload-list__item-file-name {
832
+ line-height: normal;
833
+ }
834
+
835
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
836
+ display: none;
837
+ }
816
838
  .circular[data-v-b391445c] {
817
839
  animation: loading-rotate-b391445c 2s linear infinite;
818
840
  }
@@ -844,6 +866,15 @@ video {
844
866
  stroke-dashoffset: -120px;
845
867
  }
846
868
  }
869
+
870
+ .gm-range-number .el-form-item[data-v-11c39847] {
871
+ margin: 0;
872
+ }
873
+
874
+ [data-v-7b6755e2] .gmSearchForm .el-form-item {
875
+ margin-right: 0;
876
+ margin-bottom: 4px;
877
+ }
847
878
  [data-v-668dc408] .gmTableNoBorder .el-table__body .el-table__cell {
848
879
  border-right: none;
849
880
  }
@@ -867,21 +898,15 @@ video {
867
898
  [data-v-668dc408] .gmTableNoBorder .el-table__border-left-patch {
868
899
  height: 0;
869
900
  }
870
- .gm-upload-preview-dialog[data-v-80cd8f61] [data-v-80cd8f61] .el-dialog__body {
871
- padding: 0;
872
- }
873
901
 
874
- [data-v-80cd8f61] .el-upload-list__item, [data-v-80cd8f61] .el-upload--picture-card {
875
- width: 120px;
876
- height: 120px;
877
- display: flex;
878
- align-items: center;
879
- justify-content: center;
880
- }
881
- [data-v-7b6755e2] .gmSearchForm .el-form-item {
882
- margin-right: 0;
883
- margin-bottom: 4px;
902
+ .pagination-container[data-v-19230954] {
903
+ background: #fff;
904
+ padding-top: 12px;
884
905
  }
906
+ .pagination-container.hidden[data-v-19230954] {
907
+ display: none;
908
+ }
909
+
885
910
  .gm-number-interval-single[data-v-47a13fd0] {
886
911
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
887
912
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -899,24 +924,4 @@ video {
899
924
 
900
925
  .gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
901
926
  display: flex;
902
- }
903
- .el-upload-file {
904
- line-height: normal;
905
- }
906
- .el-upload-file .el-checkbox {
907
- position: absolute;
908
- left: 10px;
909
- top: 0;
910
- z-index: 9;
911
- }
912
- .el-upload-file .el-upload-list__item-file-name {
913
- line-height: normal;
914
- }
915
-
916
- .pagination-container[data-v-19230954] {
917
- background: #fff;
918
- padding-top: 12px;
919
- }
920
- .pagination-container.hidden[data-v-19230954] {
921
- display: none;
922
- }
927
+ }
@@ -1,7 +1,6 @@
1
1
  import service from '../request.mjs';
2
2
 
3
3
  function postSaveFileResources(input, config) {
4
- console.log(input?.fileData);
5
4
  return service.post(`/material/work/saveFileResources`, input, config);
6
5
  }
7
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"postSaveFileResources.mjs","sources":["../../../../../../packages/api/materialApi/cross/postSaveFileResources.ts"],"sourcesContent":["import { type AxiosRequestConfig } from 'axios';\r\nimport request from '../request';\r\nimport type { DeepRequired } from '../interface';\r\n\r\nexport interface PostSaveFileResourcesResponse {\r\n code: number;\r\n data: any;\r\n comment: string;\r\n}\r\n\r\n/**\r\n * @description 文件资源保存入库\r\n * @param {array} fileData 文件资源\r\n * @return {*}\r\n **/\r\nexport function postSaveFileResources(input?: PostSaveFileResourcesInput, config?: AxiosRequestConfig) {\r\n console.log(input?.fileData);\r\n return request.post<DeepRequired<PostSaveFileResourcesResponse>>(`/material/work/saveFileResources`, input, config);\r\n}\r\n\r\nexport interface PostSaveFileResourcesData {\r\n md5_code: string;\r\n url: string;\r\n file_size?: number;\r\n width?: string;\r\n high?: string;\r\n play_time?: string;\r\n}\r\n\r\nexport interface PostSaveFileResourcesInput {\r\n fileData: PostSaveFileResourcesData;\r\n}\r\n"],"names":["request"],"mappings":";;AAegB,SAAA,qBAAA,CAAsB,OAAoC,MAA6B,EAAA;AACrG,EAAQ,OAAA,CAAA,GAAA,CAAI,OAAO,QAAQ,CAAA,CAAA;AAC3B,EAAA,OAAOA,OAAQ,CAAA,IAAA,CAAkD,CAAoC,gCAAA,CAAA,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AACpH;;;;"}
1
+ {"version":3,"file":"postSaveFileResources.mjs","sources":["../../../../../../packages/api/materialApi/cross/postSaveFileResources.ts"],"sourcesContent":["import { type AxiosRequestConfig } from 'axios';\r\nimport request from '../request';\r\nimport type { DeepRequired } from '../interface';\r\n\r\nexport interface PostSaveFileResourcesResponse {\r\n code: number;\r\n data: any;\r\n comment: string;\r\n}\r\n\r\n/**\r\n * @description 文件资源保存入库\r\n * @param {array} fileData 文件资源\r\n * @return {*}\r\n **/\r\nexport function postSaveFileResources(input?: PostSaveFileResourcesInput, config?: AxiosRequestConfig) {\r\n return request.post<DeepRequired<PostSaveFileResourcesResponse>>(`/material/work/saveFileResources`, input, config);\r\n}\r\n\r\nexport interface PostSaveFileResourcesData {\r\n md5_code: string;\r\n url: string;\r\n file_size?: number;\r\n width?: string;\r\n high?: string;\r\n play_time?: string;\r\n}\r\n\r\nexport interface PostSaveFileResourcesInput {\r\n fileData: PostSaveFileResourcesData;\r\n}\r\n"],"names":["request"],"mappings":";;AAegB,SAAA,qBAAA,CAAsB,OAAoC,MAA6B,EAAA;AACrG,EAAA,OAAOA,OAAQ,CAAA,IAAA,CAAkD,CAAoC,gCAAA,CAAA,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AACpH;;;;"}
@@ -11,7 +11,8 @@ import ZIP from './assets/image/zip.svg.mjs';
11
11
  import UNKNOWN from './assets/image/unknown.svg.mjs';
12
12
 
13
13
  const _hoisted_1 = { class: "gm-flex gm-h-full gm-items-center gm-justify-center" };
14
- const _hoisted_2 = ["src", "controls", "controlslist", "oncontextmenu"];
14
+ const _hoisted_2 = ["src"];
15
+ const _hoisted_3 = ["src", "controls", "controlslist", "oncontextmenu"];
15
16
  var _sfc_main = /* @__PURE__ */ defineComponent({
16
17
  ...{
17
18
  name: "GmFileComponent"
@@ -57,19 +58,19 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
57
58
  return (_ctx, _cache) => {
58
59
  const _component_el_image = resolveComponent("el-image");
59
60
  return openBlock(), createElementBlock("div", _hoisted_1, [
60
- unref(isImageUrl)(verifyFile.value) ? (openBlock(), createBlock(_component_el_image, {
61
+ unref(isImageUrl)(verifyFile.value) ? (openBlock(), createElementBlock("img", {
61
62
  key: 0,
62
63
  src: fileURL.value,
63
64
  fit: "contain",
64
- style: { "width": "100%", "height": "100%" }
65
- }, null, 8, ["src"])) : unref(isVideoUrl)(verifyFile.value) ? (openBlock(), createElementBlock("video", {
65
+ style: { "max-width": "100%", "max-height": "100%" }
66
+ }, null, 8, _hoisted_2)) : unref(isVideoUrl)(verifyFile.value) ? (openBlock(), createElementBlock("video", {
66
67
  key: 1,
67
68
  src: fileURL.value,
68
69
  controls: _ctx.controls,
69
70
  controlslist: _ctx.controlslist,
70
71
  oncontextmenu: () => _ctx.oncontextmenu,
71
72
  style: { "width": "100%", "height": "100%" }
72
- }, null, 8, _hoisted_2)) : (openBlock(), createBlock(_component_el_image, {
73
+ }, null, 8, _hoisted_3)) : (openBlock(), createBlock(_component_el_image, {
73
74
  key: 2,
74
75
  style: normalizeStyle(iconStyle.value),
75
76
  src: iconURL.value
@@ -1 +1 @@
1
- {"version":3,"file":"FileComponent.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/fileComponent/FileComponent.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-flex gm-h-full gm-items-center gm-justify-center\">\r\n <el-image v-if=\"isImageUrl(verifyFile)\" :src=\"fileURL\" fit=\"contain\" style=\"width: 100%; height: 100%\" />\r\n <video\r\n v-else-if=\"isVideoUrl(verifyFile)\"\r\n :src=\"fileURL\"\r\n :controls=\"controls\"\r\n :controlslist=\"controlslist\"\r\n :oncontextmenu=\"() => oncontextmenu\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <el-image v-else :style=\"iconStyle\" :src=\"iconURL\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport { isExcel, isImageUrl, isPDF, isPPT, isPSD, isText, isVideoUrl, isWord, isZip } from '@giime/utils/src/is';\r\nimport { fileComponentProps } from './fileComponent';\r\nimport PDF from './assets/image/pdf.svg';\r\nimport WORD from './assets/image/word.svg';\r\nimport EXCEL from './assets/image/excel.svg';\r\nimport PPT from './assets/image/ppt.svg';\r\nimport PSD from './assets/image/psd.svg';\r\nimport TEXT from './assets/image/text.svg';\r\nimport ZIP from './assets/image/zip.svg';\r\nimport UNKNOWN from './assets/image/unknown.svg';\r\nimport type { UploadFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmFileComponent',\r\n});\r\n\r\nconst props = defineProps(fileComponentProps);\r\n\r\nconst iconStyle = computed(() => {\r\n return {\r\n width: `${props.size}px`,\r\n height: `${props.size}px`,\r\n };\r\n});\r\n\r\nconst fileURL = computed(() => {\r\n return props.file[props.url as keyof UploadFile] as string;\r\n});\r\n\r\nconst verifyFile = computed(() => {\r\n return props.file[props.field as keyof UploadFile] as string;\r\n});\r\n\r\nconst iconURL = computed(() => {\r\n const verifyFile = props.file[props.field as keyof UploadFile] as string;\r\n let result: any = null;\r\n if (isPDF(verifyFile)) {\r\n result = PDF;\r\n } else if (isWord(verifyFile)) {\r\n result = WORD;\r\n } else if (isExcel(verifyFile)) {\r\n result = EXCEL;\r\n } else if (isText(verifyFile)) {\r\n result = TEXT;\r\n } else if (isPPT(verifyFile)) {\r\n result = PPT;\r\n } else if (isZip(verifyFile)) {\r\n result = ZIP;\r\n } else if (isPSD(verifyFile)) {\r\n result = PSD;\r\n } else {\r\n result = UNKNOWN;\r\n }\r\n return result;\r\n});\r\n</script>\r\n"],"names":["verifyFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAO,OAAA;AAAA,QACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,QACpB,MAAA,EAAQ,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAC7B,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAuB,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAAA,KAClD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAC7B,MAAA,MAAMA,WAAa,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAC7D,MAAA,IAAI,MAAc,GAAA,IAAA,CAAA;AAClB,MAAI,IAAA,KAAA,CAAMA,WAAU,CAAG,EAAA;AACrB,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACX,MAAA,IAAW,MAAOA,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAA,IAAA,CAAA;AAAA,OACX,MAAA,IAAW,OAAQA,CAAAA,WAAU,CAAG,EAAA;AAC9B,QAAS,MAAA,GAAA,KAAA,CAAA;AAAA,OACX,MAAA,IAAW,MAAOA,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAA,IAAA,CAAA;AAAA,OACX,MAAA,IAAW,KAAMA,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACX,MAAA,IAAW,KAAMA,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACX,MAAA,IAAW,KAAMA,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACJ,MAAA;AACL,QAAS,MAAA,GAAA,OAAA,CAAA;AAAA,OACX;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FileComponent.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/fileComponent/FileComponent.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-flex gm-h-full gm-items-center gm-justify-center\">\r\n <img v-if=\"isImageUrl(verifyFile)\" :src=\"fileURL\" fit=\"contain\" style=\"max-width: 100%; max-height: 100%\" />\r\n <video\r\n v-else-if=\"isVideoUrl(verifyFile)\"\r\n :src=\"fileURL\"\r\n :controls=\"controls\"\r\n :controlslist=\"controlslist\"\r\n :oncontextmenu=\"() => oncontextmenu\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <el-image v-else :style=\"iconStyle\" :src=\"iconURL\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport { isExcel, isImageUrl, isPDF, isPPT, isPSD, isText, isVideoUrl, isWord, isZip } from '@giime/utils/src/is';\r\nimport { fileComponentProps } from './fileComponent';\r\nimport PDF from './assets/image/pdf.svg';\r\nimport WORD from './assets/image/word.svg';\r\nimport EXCEL from './assets/image/excel.svg';\r\nimport PPT from './assets/image/ppt.svg';\r\nimport PSD from './assets/image/psd.svg';\r\nimport TEXT from './assets/image/text.svg';\r\nimport ZIP from './assets/image/zip.svg';\r\nimport UNKNOWN from './assets/image/unknown.svg';\r\nimport type { UploadFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmFileComponent',\r\n});\r\n\r\nconst props = defineProps(fileComponentProps);\r\n\r\nconst iconStyle = computed(() => {\r\n return {\r\n width: `${props.size}px`,\r\n height: `${props.size}px`,\r\n };\r\n});\r\n\r\nconst fileURL = computed(() => {\r\n return props.file[props.url as keyof UploadFile] as string;\r\n});\r\n\r\nconst verifyFile = computed(() => {\r\n return props.file[props.field as keyof UploadFile] as string;\r\n});\r\n\r\nconst iconURL = computed(() => {\r\n const verifyFile = props.file[props.field as keyof UploadFile] as string;\r\n let result: any = null;\r\n if (isPDF(verifyFile)) {\r\n result = PDF;\r\n } else if (isWord(verifyFile)) {\r\n result = WORD;\r\n } else if (isExcel(verifyFile)) {\r\n result = EXCEL;\r\n } else if (isText(verifyFile)) {\r\n result = TEXT;\r\n } else if (isPPT(verifyFile)) {\r\n result = PPT;\r\n } else if (isZip(verifyFile)) {\r\n result = ZIP;\r\n } else if (isPSD(verifyFile)) {\r\n result = PSD;\r\n } else {\r\n result = UNKNOWN;\r\n }\r\n return result;\r\n});\r\n</script>\r\n"],"names":["verifyFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAO,OAAA;AAAA,QACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,QACpB,MAAA,EAAQ,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAC7B,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAuB,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAAA,KAClD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAC7B,MAAA,MAAMA,WAAa,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAC7D,MAAA,IAAI,MAAc,GAAA,IAAA,CAAA;AAClB,MAAI,IAAA,KAAA,CAAMA,WAAU,CAAG,EAAA;AACrB,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACX,MAAA,IAAW,MAAOA,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAA,IAAA,CAAA;AAAA,OACX,MAAA,IAAW,OAAQA,CAAAA,WAAU,CAAG,EAAA;AAC9B,QAAS,MAAA,GAAA,KAAA,CAAA;AAAA,OACX,MAAA,IAAW,MAAOA,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAA,IAAA,CAAA;AAAA,OACX,MAAA,IAAW,KAAMA,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACX,MAAA,IAAW,KAAMA,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACX,MAAA,IAAW,KAAMA,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAA,GAAA,CAAA;AAAA,OACJ,MAAA;AACL,QAAS,MAAA,GAAA,OAAA,CAAA;AAAA,OACX;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ import './UploadFile.vue3.mjs';
3
3
  import './UploadFile.vue4.mjs';
4
4
  import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
5
5
 
6
- var UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-80cd8f61"]]);
6
+ var UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bb2dfbf0"]]);
7
7
 
8
8
  export { UploadFile as default };
9
9
  //# sourceMappingURL=UploadFile.vue.mjs.map
@@ -1,4 +1,4 @@
1
- import { pushScopeId, popScopeId, createElementVNode, createTextVNode, defineComponent, mergeModels, useModel, ref, resolveComponent, openBlock, createElementBlock, createVNode, withCtx, mergeProps, createSlots, renderSlot, normalizeStyle, unref, createCommentVNode, createBlock } from 'vue';
1
+ import { pushScopeId, popScopeId, createElementVNode, createTextVNode, defineComponent, mergeModels, useModel, ref, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, mergeProps, createSlots, renderSlot, normalizeStyle, unref, createBlock, createCommentVNode } from 'vue';
2
2
  import { ElMessageBox } from 'element-plus';
3
3
  import { useAliossHookStore } from '../../../../utils/src/alioss/aliossPutHook.mjs';
4
4
  import { UploadFilled, View, Delete } from '@element-plus/icons-vue';
@@ -6,9 +6,8 @@ import { GmFileComponent } from '../fileComponent/index.mjs';
6
6
  import { GmPreviewFile } from '../previewFile/index.mjs';
7
7
  import { uploadFileProps } from './uploadFile.mjs';
8
8
 
9
- const _withScopeId = (n) => (pushScopeId("data-v-80cd8f61"), n = n(), popScopeId(), n);
10
- const _hoisted_1 = { class: "el-upload-file" };
11
- const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode(
9
+ const _withScopeId = (n) => (pushScopeId("data-v-bb2dfbf0"), n = n(), popScopeId(), n);
10
+ const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode(
12
11
  "div",
13
12
  { class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
14
13
  [
@@ -18,9 +17,9 @@ const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElem
18
17
  -1
19
18
  /* HOISTED */
20
19
  ));
21
- const _hoisted_3 = { class: "el-upload-list__item-actions" };
20
+ const _hoisted_2 = { class: "el-upload-list__item-actions" };
21
+ const _hoisted_3 = ["onClick"];
22
22
  const _hoisted_4 = ["onClick"];
23
- const _hoisted_5 = ["onClick"];
24
23
  var _sfc_main = /* @__PURE__ */ defineComponent({
25
24
  ...{
26
25
  name: "GmUploadFile"
@@ -69,6 +68,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
69
68
  });
70
69
  return res;
71
70
  };
71
+ const beforeRemove = (file, files) => {
72
+ if (props.disabled) {
73
+ return false;
74
+ }
75
+ return props.beforeRemove ? props.beforeRemove(file, files) : true;
76
+ };
72
77
  const handleRemove = (file) => {
73
78
  ElMessageBox.confirm("\u786E\u5B9A\u5220\u9664\u8BE5\u6587\u4EF6\u5417\uFF1F", "\u63D0\u793A", {
74
79
  confirmButtonText: "\u786E\u5B9A",
@@ -110,127 +115,148 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
110
115
  });
111
116
  return (_ctx, _cache) => {
112
117
  const _component_el_icon = resolveComponent("el-icon");
118
+ const _component_el_button = resolveComponent("el-button");
113
119
  const _component_el_checkbox = resolveComponent("el-checkbox");
114
120
  const _component_el_upload = resolveComponent("el-upload");
115
121
  const _component_el_checkbox_group = resolveComponent("el-checkbox-group");
116
- return openBlock(), createElementBlock("div", _hoisted_1, [
117
- createVNode(_component_el_checkbox_group, {
118
- modelValue: checkoutFiles.value,
119
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event),
120
- onChange: handleCheckedChange
121
- }, {
122
- default: withCtx(() => [
123
- createVNode(_component_el_upload, mergeProps({
124
- ref_key: "uploadFileRef",
125
- ref: uploadFileRef
126
- }, props, {
127
- "file-list": fileList.value,
128
- "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
129
- action: "",
130
- "http-request": httpRequest
131
- }), createSlots({
132
- default: withCtx(() => [
133
- !_ctx.disabled ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
134
- createElementVNode(
135
- "div",
136
- {
137
- class: "gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1",
138
- style: normalizeStyle([{ "flex-direction": "column" }, { width: _ctx.width + "px", height: _ctx.height + "px" }])
139
- },
140
- [
141
- createVNode(_component_el_icon, {
142
- size: 30,
143
- color: "#999"
144
- }, {
145
- default: withCtx(() => [
146
- createVNode(unref(UploadFilled))
147
- ]),
148
- _: 1
149
- /* STABLE */
150
- }),
151
- _hoisted_2
152
- ],
153
- 4
154
- /* STYLE */
155
- )
156
- ], true) : createCommentVNode("v-if", true)
157
- ]),
158
- _: 2
159
- /* DYNAMIC */
160
- }, [
161
- _ctx.showFileList && _ctx.listType === "picture-card" ? {
162
- name: "file",
163
- fn: withCtx(({ file }) => [
164
- _ctx.checkbox ? (openBlock(), createBlock(_component_el_checkbox, {
165
- key: 0,
166
- value: file
167
- }, null, 8, ["value"])) : createCommentVNode("v-if", true),
168
- renderSlot(_ctx.$slots, "file", { file }, () => [
169
- createElementVNode(
122
+ return openBlock(), createElementBlock(
123
+ "div",
124
+ {
125
+ class: normalizeClass([{ "gm-upload-file-picture-card": _ctx.listType === "picture-card", "gm-upload-file-disabled": _ctx.disabled }, "gm-upload-file"])
126
+ },
127
+ [
128
+ createVNode(_component_el_checkbox_group, {
129
+ modelValue: checkoutFiles.value,
130
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event),
131
+ onChange: handleCheckedChange
132
+ }, {
133
+ default: withCtx(() => [
134
+ createVNode(_component_el_upload, mergeProps({
135
+ ref_key: "uploadFileRef",
136
+ ref: uploadFileRef
137
+ }, props, {
138
+ "file-list": fileList.value,
139
+ "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
140
+ "before-remove": beforeRemove,
141
+ action: "",
142
+ "http-request": httpRequest
143
+ }), createSlots({
144
+ default: withCtx(() => [
145
+ !_ctx.disabled ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
146
+ _ctx.listType === "picture-card" ? (openBlock(), createElementBlock(
170
147
  "div",
171
148
  {
172
- class: "gm-flex gm-items-center gm-justify-center gm-rounded-md",
173
- style: normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
149
+ key: 0,
150
+ class: "gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1",
151
+ style: normalizeStyle([{ "flex-direction": "column" }, { width: _ctx.width + "px", height: _ctx.height + "px" }])
174
152
  },
175
153
  [
176
- createVNode(unref(GmFileComponent), {
177
- file,
178
- size: _ctx.width - 40,
179
- url: _ctx.url,
180
- controls: false
181
- }, null, 8, ["file", "size", "url"])
182
- ],
183
- 4
184
- /* STYLE */
185
- ),
186
- createElementVNode("div", _hoisted_3, [
187
- createElementVNode("span", {
188
- class: "el-upload-list__item-preview",
189
- onClick: ($event) => handlePreview(file)
190
- }, [
191
- createVNode(_component_el_icon, null, {
154
+ createVNode(_component_el_icon, {
155
+ size: 30,
156
+ color: "#999"
157
+ }, {
192
158
  default: withCtx(() => [
193
- createVNode(unref(View))
159
+ createVNode(unref(UploadFilled))
194
160
  ]),
195
161
  _: 1
196
162
  /* STABLE */
197
- })
198
- ], 8, _hoisted_4),
199
- _ctx.showDelete ? (openBlock(), createElementBlock("span", {
200
- key: 0,
201
- class: "el-upload-list__item-delete",
202
- onClick: ($event) => handleRemove(file)
203
- }, [
204
- createVNode(_component_el_icon, null, {
205
- default: withCtx(() => [
206
- createVNode(unref(Delete))
207
- ]),
208
- _: 1
209
- /* STABLE */
210
- })
211
- ], 8, _hoisted_5)) : createCommentVNode("v-if", true)
212
- ])
213
- ], true)
163
+ }),
164
+ _hoisted_1
165
+ ],
166
+ 4
167
+ /* STYLE */
168
+ )) : (openBlock(), createBlock(_component_el_button, {
169
+ key: 1,
170
+ type: "primary",
171
+ size: "default"
172
+ }, {
173
+ default: withCtx(() => [
174
+ createTextVNode("\u70B9\u51FB\u4E0A\u4F20")
175
+ ]),
176
+ _: 1
177
+ /* STABLE */
178
+ }))
179
+ ], true) : createCommentVNode("v-if", true)
214
180
  ]),
215
- key: "0"
216
- } : void 0
217
- ]), 1040, ["file-list"])
218
- ]),
219
- _: 3
220
- /* FORWARDED */
221
- }, 8, ["modelValue"]),
222
- createVNode(unref(GmPreviewFile), {
223
- dialogVisible: dialogVisible.value,
224
- "onUpdate:dialogVisible": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
225
- "file-index": fileIndex.value,
226
- "onUpdate:fileIndex": _cache[3] || (_cache[3] = ($event) => fileIndex.value = $event),
227
- "file-list": fileList.value,
228
- controls: _ctx.controls,
229
- oncontextmenu: _ctx.oncontextmenu,
230
- controlslist: _ctx.controlslist,
231
- field: _ctx.field
232
- }, null, 8, ["dialogVisible", "file-index", "file-list", "controls", "oncontextmenu", "controlslist", "field"])
233
- ]);
181
+ _: 2
182
+ /* DYNAMIC */
183
+ }, [
184
+ _ctx.showFileList && _ctx.listType === "picture-card" ? {
185
+ name: "file",
186
+ fn: withCtx(({ file }) => [
187
+ _ctx.checkbox ? (openBlock(), createBlock(_component_el_checkbox, {
188
+ key: 0,
189
+ value: file
190
+ }, null, 8, ["value"])) : createCommentVNode("v-if", true),
191
+ renderSlot(_ctx.$slots, "file", { file }, () => [
192
+ createElementVNode(
193
+ "div",
194
+ {
195
+ class: "gm-flex gm-items-center gm-justify-center gm-rounded-md",
196
+ style: normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
197
+ },
198
+ [
199
+ createVNode(unref(GmFileComponent), {
200
+ file,
201
+ size: _ctx.width - 40,
202
+ url: _ctx.url,
203
+ controls: false
204
+ }, null, 8, ["file", "size", "url"])
205
+ ],
206
+ 4
207
+ /* STYLE */
208
+ ),
209
+ createElementVNode("div", _hoisted_2, [
210
+ createElementVNode("span", {
211
+ class: "el-upload-list__item-preview",
212
+ onClick: ($event) => handlePreview(file)
213
+ }, [
214
+ createVNode(_component_el_icon, null, {
215
+ default: withCtx(() => [
216
+ createVNode(unref(View))
217
+ ]),
218
+ _: 1
219
+ /* STABLE */
220
+ })
221
+ ], 8, _hoisted_3),
222
+ _ctx.showDelete ? (openBlock(), createElementBlock("span", {
223
+ key: 0,
224
+ class: "el-upload-list__item-delete",
225
+ onClick: ($event) => handleRemove(file)
226
+ }, [
227
+ createVNode(_component_el_icon, null, {
228
+ default: withCtx(() => [
229
+ createVNode(unref(Delete))
230
+ ]),
231
+ _: 1
232
+ /* STABLE */
233
+ })
234
+ ], 8, _hoisted_4)) : createCommentVNode("v-if", true)
235
+ ])
236
+ ], true)
237
+ ]),
238
+ key: "0"
239
+ } : void 0
240
+ ]), 1040, ["file-list"])
241
+ ]),
242
+ _: 3
243
+ /* FORWARDED */
244
+ }, 8, ["modelValue"]),
245
+ createVNode(unref(GmPreviewFile), {
246
+ dialogVisible: dialogVisible.value,
247
+ "onUpdate:dialogVisible": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
248
+ "file-index": fileIndex.value,
249
+ "onUpdate:fileIndex": _cache[3] || (_cache[3] = ($event) => fileIndex.value = $event),
250
+ "file-list": fileList.value,
251
+ controls: _ctx.controls,
252
+ oncontextmenu: _ctx.oncontextmenu,
253
+ controlslist: _ctx.controlslist,
254
+ field: _ctx.field
255
+ }, null, 8, ["dialogVisible", "file-index", "file-list", "controls", "oncontextmenu", "controlslist", "field"])
256
+ ],
257
+ 2
258
+ /* CLASS */
259
+ );
234
260
  };
235
261
  }
236
262
  });
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\r\n <div class=\"el-upload-file\">\r\n <el-checkbox-group v-model=\"checkoutFiles\" @change=\"handleCheckedChange\">\r\n <el-upload ref=\"uploadFileRef\" v-bind=\"props\" v-model:file-list=\"fileList\" action=\"\" :http-request=\"httpRequest\">\r\n <slot v-if=\"!disabled\">\r\n <div\r\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1\"\r\n style=\"flex-direction: column\"\r\n :style=\"{ width: width + 'px', height: height + 'px' }\"\r\n >\r\n <el-icon :size=\"30\" color=\"#999\">\r\n <UploadFilled />\r\n </el-icon>\r\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\r\n 将文件拖到此处,或 <em class=\"gm-text-blue-700\">点击上传</em>\r\n </div>\r\n </div>\r\n </slot>\r\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\r\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\r\n <slot name=\"file\" :file=\"file\">\r\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\r\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" />\r\n </div>\r\n <div class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\r\n <el-icon><View /></el-icon>\r\n </span>\r\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file)\">\r\n <el-icon><Delete /></el-icon>\r\n </span>\r\n </div>\r\n </slot>\r\n </template>\r\n </el-upload>\r\n </el-checkbox-group>\r\n\r\n <GmPreviewFile\r\n v-model:dialogVisible=\"dialogVisible\"\r\n v-model:file-index=\"fileIndex\"\r\n :file-list=\"fileList\"\r\n :controls=\"controls\"\r\n :oncontextmenu=\"oncontextmenu\"\r\n :controlslist=\"controlslist\"\r\n :field=\"field\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport { ElMessageBox } from 'element-plus';\r\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\r\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\r\nimport GmFileComponent from '../fileComponent';\r\nimport GmPreviewFile from '../previewFile';\r\nimport { uploadFileProps } from './uploadFile';\r\nimport type { CheckboxValueType, UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\r\nimport type { PostSaveFileResponse } from '@giime/utils/src/alioss/aliossPutHook';\r\n\r\ndefineOptions({\r\n name: 'GmUploadFile',\r\n});\r\n\r\nconst props = defineProps(uploadFileProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\nconst { uploadFile, saveFileResult } = useAliossHookStore();\r\n\r\nsaveFileResult((res: any) => {\r\n const { url, md5_code, file_size } = res;\r\n emit('handleSaveFileSuccess', { url, md5_code, file_size });\r\n});\r\n\r\n/** 上传文件 */\r\nconst fileList = defineModel<UploadFiles>('fileList', { default: [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: [] });\r\n/** 多选状态状态 */\r\nconst isIndeterminate = defineModel<boolean>('isIndeterminate', { default: false });\r\n/** 是否全选 */\r\nconst checkedAll = defineModel<boolean>('checkedAll', { default: false });\r\nconst handleCheckedChange = (value: CheckboxValueType[]) => {\r\n const { length } = value;\r\n checkedAll.value = length === fileList.value.length;\r\n isIndeterminate.value = length > 0 && length < fileList.value.length;\r\n};\r\n\r\n/* 上传 */\r\nconst httpRequest = async (params: UploadRequestOptions) => {\r\n const { file } = params;\r\n const res = await uploadFile({\r\n file,\r\n fileName: props.fileName,\r\n folder: props.folder,\r\n seat: props.seat,\r\n partSize: props.partSize,\r\n parallel: props.parallel,\r\n options: props.options,\r\n bucket: props.bucket,\r\n saveStore: props.saveStore,\r\n });\r\n return res;\r\n};\r\n\r\n/* 删除文件 */\r\nconst handleRemove = (file: UploadFile) => {\r\n ElMessageBox.confirm('确定删除该文件吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n const index = fileList.value.indexOf(file);\r\n fileList.value = fileList.value.filter((v, i) => v.url !== file.url || (v.url === file.url && i !== index));\r\n emit('handleRemove', { file, index });\r\n return props.onRemove(file, fileList.value);\r\n })\r\n .catch(() => {});\r\n};\r\n\r\nconst uploadFileRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadFileRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadFileRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadFileRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadFileRef.value!.handleStart(rawFile);\r\n};\r\n\r\n/** 预览 */\r\nconst dialogVisible = ref(false);\r\nconst fileIndex = ref(0);\r\nconst handlePreview = (file: UploadFile) => {\r\n fileIndex.value = fileList.value.indexOf(file);\r\n dialogVisible.value = true;\r\n};\r\n\r\ndefineExpose({\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n uploadFileRef,\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.gm-upload-preview-dialog {\r\n :deep(.el-dialog__body) {\r\n padding: 0;\r\n }\r\n}\r\n:deep(.el-upload-list__item),\r\n:deep(.el-upload--picture-card) {\r\n width: 120px;\r\n height: 120px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.el-upload-file {\r\n line-height: normal;\r\n .el-checkbox {\r\n position: absolute;\r\n left: 10px;\r\n top: 0;\r\n z-index: 9;\r\n }\r\n .el-upload-list__item-file-name {\r\n line-height: normal;\r\n }\r\n}\r\n</style>\r\n"],"names":["_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\r\n <div :class=\"{ 'gm-upload-file-picture-card': listType === 'picture-card', 'gm-upload-file-disabled': disabled }\" class=\"gm-upload-file\">\r\n <el-checkbox-group v-model=\"checkoutFiles\" @change=\"handleCheckedChange\">\r\n <el-upload ref=\"uploadFileRef\" v-bind=\"props\" v-model:file-list=\"fileList\" :before-remove=\"beforeRemove\" action=\"\" :http-request=\"httpRequest\">\r\n <slot v-if=\"!disabled\">\r\n <template v-if=\"listType === 'picture-card'\">\r\n <div\r\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1\"\r\n style=\"flex-direction: column\"\r\n :style=\"{ width: width + 'px', height: height + 'px' }\"\r\n >\r\n <el-icon :size=\"30\" color=\"#999\">\r\n <UploadFilled />\r\n </el-icon>\r\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\r\n 将文件拖到此处,或 <em class=\"gm-text-blue-700\">点击上传</em>\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\r\n </template>\r\n </slot>\r\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\r\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\r\n <slot name=\"file\" :file=\"file\">\r\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\r\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" />\r\n </div>\r\n <div class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\r\n <el-icon><View /></el-icon>\r\n </span>\r\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file)\">\r\n <el-icon><Delete /></el-icon>\r\n </span>\r\n </div>\r\n </slot>\r\n </template>\r\n </el-upload>\r\n </el-checkbox-group>\r\n\r\n <GmPreviewFile\r\n v-model:dialogVisible=\"dialogVisible\"\r\n v-model:file-index=\"fileIndex\"\r\n :file-list=\"fileList\"\r\n :controls=\"controls\"\r\n :oncontextmenu=\"oncontextmenu\"\r\n :controlslist=\"controlslist\"\r\n :field=\"field\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport { ElMessageBox } from 'element-plus';\r\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\r\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\r\nimport GmFileComponent from '../fileComponent';\r\nimport GmPreviewFile from '../previewFile';\r\nimport { uploadFileProps } from './uploadFile';\r\nimport type { CheckboxValueType, UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\r\nimport type { PostSaveFileResponse } from '@giime/utils/src/alioss/aliossPutHook';\r\n\r\ndefineOptions({\r\n name: 'GmUploadFile',\r\n});\r\n\r\nconst props = defineProps(uploadFileProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\nconst { uploadFile, saveFileResult } = useAliossHookStore();\r\n\r\nsaveFileResult((res: any) => {\r\n const { url, md5_code, file_size } = res;\r\n emit('handleSaveFileSuccess', { url, md5_code, file_size });\r\n});\r\n\r\n/** 上传文件 */\r\nconst fileList = defineModel<UploadFiles>('fileList', { default: [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: [] });\r\n/** 多选状态状态 */\r\nconst isIndeterminate = defineModel<boolean>('isIndeterminate', { default: false });\r\n/** 是否全选 */\r\nconst checkedAll = defineModel<boolean>('checkedAll', { default: false });\r\nconst handleCheckedChange = (value: CheckboxValueType[]) => {\r\n const { length } = value;\r\n checkedAll.value = length === fileList.value.length;\r\n isIndeterminate.value = length > 0 && length < fileList.value.length;\r\n};\r\n\r\n/* 上传 */\r\nconst httpRequest = async (params: UploadRequestOptions) => {\r\n const { file } = params;\r\n const res = await uploadFile({\r\n file,\r\n fileName: props.fileName,\r\n folder: props.folder,\r\n seat: props.seat,\r\n partSize: props.partSize,\r\n parallel: props.parallel,\r\n options: props.options,\r\n bucket: props.bucket,\r\n saveStore: props.saveStore,\r\n });\r\n return res;\r\n};\r\n\r\n/* 删除文件前 */\r\nconst beforeRemove = (file: UploadFile, files: UploadFiles) => {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n return props.beforeRemove ? props.beforeRemove(file, files) : true;\r\n};\r\n\r\n/* 删除文件 */\r\nconst handleRemove = (file: UploadFile) => {\r\n ElMessageBox.confirm('确定删除该文件吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n const index = fileList.value.indexOf(file);\r\n fileList.value = fileList.value.filter((v, i) => v.url !== file.url || (v.url === file.url && i !== index));\r\n emit('handleRemove', { file, index });\r\n return props.onRemove(file, fileList.value);\r\n })\r\n .catch(() => {});\r\n};\r\n\r\nconst uploadFileRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadFileRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadFileRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadFileRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadFileRef.value!.handleStart(rawFile);\r\n};\r\n\r\n/** 预览 */\r\nconst dialogVisible = ref(false);\r\nconst fileIndex = ref(0);\r\nconst handlePreview = (file: UploadFile) => {\r\n fileIndex.value = fileList.value.indexOf(file);\r\n dialogVisible.value = true;\r\n};\r\n\r\ndefineExpose({\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n uploadFileRef,\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.gm-upload-preview-dialog {\r\n :deep(.el-dialog__body) {\r\n padding: 0;\r\n }\r\n}\r\n.gm-upload-file-picture-card {\r\n :deep(.el-upload-list__item),\r\n :deep(.el-upload--picture-card) {\r\n width: 120px;\r\n height: 120px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.gm-upload-file {\r\n line-height: normal;\r\n .el-checkbox {\r\n position: absolute;\r\n left: 10px;\r\n top: 0;\r\n z-index: 9;\r\n }\r\n .el-upload-list__item-file-name {\r\n line-height: normal;\r\n }\r\n}\r\n.gm-upload-file-disabled {\r\n .el-upload-list__item-status-label {\r\n display: none;\r\n }\r\n}\r\n</style>\r\n"],"names":["_useModel"],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const version = "0.5.5";
1
+ export declare const version = "0.5.6";
package/es/index.css CHANGED
@@ -801,11 +801,6 @@ video {
801
801
  .gm-group:hover .group-hover\:gm-block {
802
802
  display: block;
803
803
  }
804
-
805
- .gm-range-number .el-form-item[data-v-11c39847] {
806
- margin: 0;
807
- }
808
-
809
804
  .gm-flex-center[data-v-2a79bac9] {
810
805
  align-items: center;
811
806
  }
@@ -813,6 +808,33 @@ video {
813
808
  .gm-flex-justify-between[data-v-2a79bac9] {
814
809
  justify-content: space-between;
815
810
  }
811
+ .gm-upload-preview-dialog[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-dialog__body {
812
+ padding: 0;
813
+ }
814
+
815
+ .gm-upload-file-picture-card[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-upload-list__item, .gm-upload-file-picture-card[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-upload--picture-card {
816
+ width: 120px;
817
+ height: 120px;
818
+ display: flex;
819
+ align-items: center;
820
+ justify-content: center;
821
+ }
822
+ .gm-upload-file {
823
+ line-height: normal;
824
+ }
825
+ .gm-upload-file .el-checkbox {
826
+ position: absolute;
827
+ left: 10px;
828
+ top: 0;
829
+ z-index: 9;
830
+ }
831
+ .gm-upload-file .el-upload-list__item-file-name {
832
+ line-height: normal;
833
+ }
834
+
835
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
836
+ display: none;
837
+ }
816
838
  .circular[data-v-b391445c] {
817
839
  animation: loading-rotate-b391445c 2s linear infinite;
818
840
  }
@@ -844,6 +866,15 @@ video {
844
866
  stroke-dashoffset: -120px;
845
867
  }
846
868
  }
869
+
870
+ .gm-range-number .el-form-item[data-v-11c39847] {
871
+ margin: 0;
872
+ }
873
+
874
+ [data-v-7b6755e2] .gmSearchForm .el-form-item {
875
+ margin-right: 0;
876
+ margin-bottom: 4px;
877
+ }
847
878
  [data-v-668dc408] .gmTableNoBorder .el-table__body .el-table__cell {
848
879
  border-right: none;
849
880
  }
@@ -867,21 +898,15 @@ video {
867
898
  [data-v-668dc408] .gmTableNoBorder .el-table__border-left-patch {
868
899
  height: 0;
869
900
  }
870
- .gm-upload-preview-dialog[data-v-80cd8f61] [data-v-80cd8f61] .el-dialog__body {
871
- padding: 0;
872
- }
873
901
 
874
- [data-v-80cd8f61] .el-upload-list__item, [data-v-80cd8f61] .el-upload--picture-card {
875
- width: 120px;
876
- height: 120px;
877
- display: flex;
878
- align-items: center;
879
- justify-content: center;
880
- }
881
- [data-v-7b6755e2] .gmSearchForm .el-form-item {
882
- margin-right: 0;
883
- margin-bottom: 4px;
902
+ .pagination-container[data-v-19230954] {
903
+ background: #fff;
904
+ padding-top: 12px;
884
905
  }
906
+ .pagination-container.hidden[data-v-19230954] {
907
+ display: none;
908
+ }
909
+
885
910
  .gm-number-interval-single[data-v-47a13fd0] {
886
911
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
887
912
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -899,24 +924,4 @@ video {
899
924
 
900
925
  .gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
901
926
  display: flex;
902
- }
903
- .el-upload-file {
904
- line-height: normal;
905
- }
906
- .el-upload-file .el-checkbox {
907
- position: absolute;
908
- left: 10px;
909
- top: 0;
910
- z-index: 9;
911
- }
912
- .el-upload-file .el-upload-list__item-file-name {
913
- line-height: normal;
914
- }
915
-
916
- .pagination-container[data-v-19230954] {
917
- background: #fff;
918
- padding-top: 12px;
919
- }
920
- .pagination-container.hidden[data-v-19230954] {
921
- display: none;
922
- }
927
+ }
@@ -3,7 +3,6 @@
3
3
  var request = require('../request.js');
4
4
 
5
5
  function postSaveFileResources(input, config) {
6
- console.log(input?.fileData);
7
6
  return request.default.post(`/material/work/saveFileResources`, input, config);
8
7
  }
9
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"postSaveFileResources.js","sources":["../../../../../../packages/api/materialApi/cross/postSaveFileResources.ts"],"sourcesContent":["import { type AxiosRequestConfig } from 'axios';\r\nimport request from '../request';\r\nimport type { DeepRequired } from '../interface';\r\n\r\nexport interface PostSaveFileResourcesResponse {\r\n code: number;\r\n data: any;\r\n comment: string;\r\n}\r\n\r\n/**\r\n * @description 文件资源保存入库\r\n * @param {array} fileData 文件资源\r\n * @return {*}\r\n **/\r\nexport function postSaveFileResources(input?: PostSaveFileResourcesInput, config?: AxiosRequestConfig) {\r\n console.log(input?.fileData);\r\n return request.post<DeepRequired<PostSaveFileResourcesResponse>>(`/material/work/saveFileResources`, input, config);\r\n}\r\n\r\nexport interface PostSaveFileResourcesData {\r\n md5_code: string;\r\n url: string;\r\n file_size?: number;\r\n width?: string;\r\n high?: string;\r\n play_time?: string;\r\n}\r\n\r\nexport interface PostSaveFileResourcesInput {\r\n fileData: PostSaveFileResourcesData;\r\n}\r\n"],"names":["request"],"mappings":";;;;AAegB,SAAA,qBAAA,CAAsB,OAAoC,MAA6B,EAAA;AACrG,EAAQ,OAAA,CAAA,GAAA,CAAI,OAAO,QAAQ,CAAA,CAAA;AAC3B,EAAA,OAAOA,eAAQ,CAAA,IAAA,CAAkD,CAAoC,gCAAA,CAAA,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AACpH;;;;"}
1
+ {"version":3,"file":"postSaveFileResources.js","sources":["../../../../../../packages/api/materialApi/cross/postSaveFileResources.ts"],"sourcesContent":["import { type AxiosRequestConfig } from 'axios';\r\nimport request from '../request';\r\nimport type { DeepRequired } from '../interface';\r\n\r\nexport interface PostSaveFileResourcesResponse {\r\n code: number;\r\n data: any;\r\n comment: string;\r\n}\r\n\r\n/**\r\n * @description 文件资源保存入库\r\n * @param {array} fileData 文件资源\r\n * @return {*}\r\n **/\r\nexport function postSaveFileResources(input?: PostSaveFileResourcesInput, config?: AxiosRequestConfig) {\r\n return request.post<DeepRequired<PostSaveFileResourcesResponse>>(`/material/work/saveFileResources`, input, config);\r\n}\r\n\r\nexport interface PostSaveFileResourcesData {\r\n md5_code: string;\r\n url: string;\r\n file_size?: number;\r\n width?: string;\r\n high?: string;\r\n play_time?: string;\r\n}\r\n\r\nexport interface PostSaveFileResourcesInput {\r\n fileData: PostSaveFileResourcesData;\r\n}\r\n"],"names":["request"],"mappings":";;;;AAegB,SAAA,qBAAA,CAAsB,OAAoC,MAA6B,EAAA;AACrG,EAAA,OAAOA,eAAQ,CAAA,IAAA,CAAkD,CAAoC,gCAAA,CAAA,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AACpH;;;;"}
@@ -15,7 +15,8 @@ var zip = require('./assets/image/zip.svg.js');
15
15
  var unknown = require('./assets/image/unknown.svg.js');
16
16
 
17
17
  const _hoisted_1 = { class: "gm-flex gm-h-full gm-items-center gm-justify-center" };
18
- const _hoisted_2 = ["src", "controls", "controlslist", "oncontextmenu"];
18
+ const _hoisted_2 = ["src"];
19
+ const _hoisted_3 = ["src", "controls", "controlslist", "oncontextmenu"];
19
20
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
20
21
  ...{
21
22
  name: "GmFileComponent"
@@ -61,19 +62,19 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
61
62
  return (_ctx, _cache) => {
62
63
  const _component_el_image = vue.resolveComponent("el-image");
63
64
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
64
- vue.unref(is.isImageUrl)(verifyFile.value) ? (vue.openBlock(), vue.createBlock(_component_el_image, {
65
+ vue.unref(is.isImageUrl)(verifyFile.value) ? (vue.openBlock(), vue.createElementBlock("img", {
65
66
  key: 0,
66
67
  src: fileURL.value,
67
68
  fit: "contain",
68
- style: { "width": "100%", "height": "100%" }
69
- }, null, 8, ["src"])) : vue.unref(is.isVideoUrl)(verifyFile.value) ? (vue.openBlock(), vue.createElementBlock("video", {
69
+ style: { "max-width": "100%", "max-height": "100%" }
70
+ }, null, 8, _hoisted_2)) : vue.unref(is.isVideoUrl)(verifyFile.value) ? (vue.openBlock(), vue.createElementBlock("video", {
70
71
  key: 1,
71
72
  src: fileURL.value,
72
73
  controls: _ctx.controls,
73
74
  controlslist: _ctx.controlslist,
74
75
  oncontextmenu: () => _ctx.oncontextmenu,
75
76
  style: { "width": "100%", "height": "100%" }
76
- }, null, 8, _hoisted_2)) : (vue.openBlock(), vue.createBlock(_component_el_image, {
77
+ }, null, 8, _hoisted_3)) : (vue.openBlock(), vue.createBlock(_component_el_image, {
77
78
  key: 2,
78
79
  style: vue.normalizeStyle(iconStyle.value),
79
80
  src: iconURL.value
@@ -1 +1 @@
1
- {"version":3,"file":"FileComponent.vue2.js","sources":["../../../../../../../packages/components/src/composite/fileComponent/FileComponent.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-flex gm-h-full gm-items-center gm-justify-center\">\r\n <el-image v-if=\"isImageUrl(verifyFile)\" :src=\"fileURL\" fit=\"contain\" style=\"width: 100%; height: 100%\" />\r\n <video\r\n v-else-if=\"isVideoUrl(verifyFile)\"\r\n :src=\"fileURL\"\r\n :controls=\"controls\"\r\n :controlslist=\"controlslist\"\r\n :oncontextmenu=\"() => oncontextmenu\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <el-image v-else :style=\"iconStyle\" :src=\"iconURL\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport { isExcel, isImageUrl, isPDF, isPPT, isPSD, isText, isVideoUrl, isWord, isZip } from '@giime/utils/src/is';\r\nimport { fileComponentProps } from './fileComponent';\r\nimport PDF from './assets/image/pdf.svg';\r\nimport WORD from './assets/image/word.svg';\r\nimport EXCEL from './assets/image/excel.svg';\r\nimport PPT from './assets/image/ppt.svg';\r\nimport PSD from './assets/image/psd.svg';\r\nimport TEXT from './assets/image/text.svg';\r\nimport ZIP from './assets/image/zip.svg';\r\nimport UNKNOWN from './assets/image/unknown.svg';\r\nimport type { UploadFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmFileComponent',\r\n});\r\n\r\nconst props = defineProps(fileComponentProps);\r\n\r\nconst iconStyle = computed(() => {\r\n return {\r\n width: `${props.size}px`,\r\n height: `${props.size}px`,\r\n };\r\n});\r\n\r\nconst fileURL = computed(() => {\r\n return props.file[props.url as keyof UploadFile] as string;\r\n});\r\n\r\nconst verifyFile = computed(() => {\r\n return props.file[props.field as keyof UploadFile] as string;\r\n});\r\n\r\nconst iconURL = computed(() => {\r\n const verifyFile = props.file[props.field as keyof UploadFile] as string;\r\n let result: any = null;\r\n if (isPDF(verifyFile)) {\r\n result = PDF;\r\n } else if (isWord(verifyFile)) {\r\n result = WORD;\r\n } else if (isExcel(verifyFile)) {\r\n result = EXCEL;\r\n } else if (isText(verifyFile)) {\r\n result = TEXT;\r\n } else if (isPPT(verifyFile)) {\r\n result = PPT;\r\n } else if (isZip(verifyFile)) {\r\n result = ZIP;\r\n } else if (isPSD(verifyFile)) {\r\n result = PSD;\r\n } else {\r\n result = UNKNOWN;\r\n }\r\n return result;\r\n});\r\n</script>\r\n"],"names":["computed","verifyFile","isPDF","PDF","isWord","WORD","isExcel","EXCEL","isText","TEXT","isPPT","PPT","isZip","ZIP","isPSD","PSD","UNKNOWN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,SAAA,GAAYA,aAAS,MAAM;AAC/B,MAAO,OAAA;AAAA,QACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,QACpB,MAAA,EAAQ,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAuB,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAaA,aAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAAA,KAClD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAA,MAAMC,WAAa,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAC7D,MAAA,IAAI,MAAc,GAAA,IAAA,CAAA;AAClB,MAAI,IAAAC,QAAA,CAAMD,WAAU,CAAG,EAAA;AACrB,QAAS,MAAA,GAAAE,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,SAAOH,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAAI,YAAA,CAAA;AAAA,OACX,MAAA,IAAWC,UAAQL,CAAAA,WAAU,CAAG,EAAA;AAC9B,QAAS,MAAA,GAAAM,aAAA,CAAA;AAAA,OACX,MAAA,IAAWC,SAAOP,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAAQ,YAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMT,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAU,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMX,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAY,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMb,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAc,WAAA,CAAA;AAAA,OACJ,MAAA;AACL,QAAS,MAAA,GAAAC,eAAA,CAAA;AAAA,OACX;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FileComponent.vue2.js","sources":["../../../../../../../packages/components/src/composite/fileComponent/FileComponent.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-flex gm-h-full gm-items-center gm-justify-center\">\r\n <img v-if=\"isImageUrl(verifyFile)\" :src=\"fileURL\" fit=\"contain\" style=\"max-width: 100%; max-height: 100%\" />\r\n <video\r\n v-else-if=\"isVideoUrl(verifyFile)\"\r\n :src=\"fileURL\"\r\n :controls=\"controls\"\r\n :controlslist=\"controlslist\"\r\n :oncontextmenu=\"() => oncontextmenu\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <el-image v-else :style=\"iconStyle\" :src=\"iconURL\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport { isExcel, isImageUrl, isPDF, isPPT, isPSD, isText, isVideoUrl, isWord, isZip } from '@giime/utils/src/is';\r\nimport { fileComponentProps } from './fileComponent';\r\nimport PDF from './assets/image/pdf.svg';\r\nimport WORD from './assets/image/word.svg';\r\nimport EXCEL from './assets/image/excel.svg';\r\nimport PPT from './assets/image/ppt.svg';\r\nimport PSD from './assets/image/psd.svg';\r\nimport TEXT from './assets/image/text.svg';\r\nimport ZIP from './assets/image/zip.svg';\r\nimport UNKNOWN from './assets/image/unknown.svg';\r\nimport type { UploadFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmFileComponent',\r\n});\r\n\r\nconst props = defineProps(fileComponentProps);\r\n\r\nconst iconStyle = computed(() => {\r\n return {\r\n width: `${props.size}px`,\r\n height: `${props.size}px`,\r\n };\r\n});\r\n\r\nconst fileURL = computed(() => {\r\n return props.file[props.url as keyof UploadFile] as string;\r\n});\r\n\r\nconst verifyFile = computed(() => {\r\n return props.file[props.field as keyof UploadFile] as string;\r\n});\r\n\r\nconst iconURL = computed(() => {\r\n const verifyFile = props.file[props.field as keyof UploadFile] as string;\r\n let result: any = null;\r\n if (isPDF(verifyFile)) {\r\n result = PDF;\r\n } else if (isWord(verifyFile)) {\r\n result = WORD;\r\n } else if (isExcel(verifyFile)) {\r\n result = EXCEL;\r\n } else if (isText(verifyFile)) {\r\n result = TEXT;\r\n } else if (isPPT(verifyFile)) {\r\n result = PPT;\r\n } else if (isZip(verifyFile)) {\r\n result = ZIP;\r\n } else if (isPSD(verifyFile)) {\r\n result = PSD;\r\n } else {\r\n result = UNKNOWN;\r\n }\r\n return result;\r\n});\r\n</script>\r\n"],"names":["computed","verifyFile","isPDF","PDF","isWord","WORD","isExcel","EXCEL","isText","TEXT","isPPT","PPT","isZip","ZIP","isPSD","PSD","UNKNOWN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,SAAA,GAAYA,aAAS,MAAM;AAC/B,MAAO,OAAA;AAAA,QACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,QACpB,MAAA,EAAQ,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAuB,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAaA,aAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAAA,KAClD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAA,MAAMC,WAAa,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAC7D,MAAA,IAAI,MAAc,GAAA,IAAA,CAAA;AAClB,MAAI,IAAAC,QAAA,CAAMD,WAAU,CAAG,EAAA;AACrB,QAAS,MAAA,GAAAE,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,SAAOH,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAAI,YAAA,CAAA;AAAA,OACX,MAAA,IAAWC,UAAQL,CAAAA,WAAU,CAAG,EAAA;AAC9B,QAAS,MAAA,GAAAM,aAAA,CAAA;AAAA,OACX,MAAA,IAAWC,SAAOP,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAAQ,YAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMT,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAU,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMX,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAY,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMb,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAc,WAAA,CAAA;AAAA,OACJ,MAAA;AACL,QAAS,MAAA,GAAAC,eAAA,CAAA;AAAA,OACX;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,7 +7,7 @@ require('./UploadFile.vue3.js');
7
7
  require('./UploadFile.vue4.js');
8
8
  var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
9
9
 
10
- var UploadFile = /* @__PURE__ */ _pluginVue_exportHelper.default(UploadFile_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-80cd8f61"]]);
10
+ var UploadFile = /* @__PURE__ */ _pluginVue_exportHelper.default(UploadFile_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-bb2dfbf0"]]);
11
11
 
12
12
  exports.default = UploadFile;
13
13
  //# sourceMappingURL=UploadFile.vue.js.map
@@ -10,9 +10,8 @@ var index = require('../fileComponent/index.js');
10
10
  var index$1 = require('../previewFile/index.js');
11
11
  var uploadFile = require('./uploadFile.js');
12
12
 
13
- const _withScopeId = (n) => (vue.pushScopeId("data-v-80cd8f61"), n = n(), vue.popScopeId(), n);
14
- const _hoisted_1 = { class: "el-upload-file" };
15
- const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode(
13
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-bb2dfbf0"), n = n(), vue.popScopeId(), n);
14
+ const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode(
16
15
  "div",
17
16
  { class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
18
17
  [
@@ -22,9 +21,9 @@ const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.create
22
21
  -1
23
22
  /* HOISTED */
24
23
  ));
25
- const _hoisted_3 = { class: "el-upload-list__item-actions" };
24
+ const _hoisted_2 = { class: "el-upload-list__item-actions" };
25
+ const _hoisted_3 = ["onClick"];
26
26
  const _hoisted_4 = ["onClick"];
27
- const _hoisted_5 = ["onClick"];
28
27
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
29
28
  ...{
30
29
  name: "GmUploadFile"
@@ -73,6 +72,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
73
72
  });
74
73
  return res;
75
74
  };
75
+ const beforeRemove = (file, files) => {
76
+ if (props.disabled) {
77
+ return false;
78
+ }
79
+ return props.beforeRemove ? props.beforeRemove(file, files) : true;
80
+ };
76
81
  const handleRemove = (file) => {
77
82
  elementPlus.ElMessageBox.confirm("\u786E\u5B9A\u5220\u9664\u8BE5\u6587\u4EF6\u5417\uFF1F", "\u63D0\u793A", {
78
83
  confirmButtonText: "\u786E\u5B9A",
@@ -114,127 +119,148 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
114
119
  });
115
120
  return (_ctx, _cache) => {
116
121
  const _component_el_icon = vue.resolveComponent("el-icon");
122
+ const _component_el_button = vue.resolveComponent("el-button");
117
123
  const _component_el_checkbox = vue.resolveComponent("el-checkbox");
118
124
  const _component_el_upload = vue.resolveComponent("el-upload");
119
125
  const _component_el_checkbox_group = vue.resolveComponent("el-checkbox-group");
120
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
121
- vue.createVNode(_component_el_checkbox_group, {
122
- modelValue: checkoutFiles.value,
123
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event),
124
- onChange: handleCheckedChange
125
- }, {
126
- default: vue.withCtx(() => [
127
- vue.createVNode(_component_el_upload, vue.mergeProps({
128
- ref_key: "uploadFileRef",
129
- ref: uploadFileRef
130
- }, props, {
131
- "file-list": fileList.value,
132
- "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
133
- action: "",
134
- "http-request": httpRequest
135
- }), vue.createSlots({
136
- default: vue.withCtx(() => [
137
- !_ctx.disabled ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
138
- vue.createElementVNode(
139
- "div",
140
- {
141
- class: "gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1",
142
- style: vue.normalizeStyle([{ "flex-direction": "column" }, { width: _ctx.width + "px", height: _ctx.height + "px" }])
143
- },
144
- [
145
- vue.createVNode(_component_el_icon, {
146
- size: 30,
147
- color: "#999"
148
- }, {
149
- default: vue.withCtx(() => [
150
- vue.createVNode(vue.unref(iconsVue.UploadFilled))
151
- ]),
152
- _: 1
153
- /* STABLE */
154
- }),
155
- _hoisted_2
156
- ],
157
- 4
158
- /* STYLE */
159
- )
160
- ], true) : vue.createCommentVNode("v-if", true)
161
- ]),
162
- _: 2
163
- /* DYNAMIC */
164
- }, [
165
- _ctx.showFileList && _ctx.listType === "picture-card" ? {
166
- name: "file",
167
- fn: vue.withCtx(({ file }) => [
168
- _ctx.checkbox ? (vue.openBlock(), vue.createBlock(_component_el_checkbox, {
169
- key: 0,
170
- value: file
171
- }, null, 8, ["value"])) : vue.createCommentVNode("v-if", true),
172
- vue.renderSlot(_ctx.$slots, "file", { file }, () => [
173
- vue.createElementVNode(
126
+ return vue.openBlock(), vue.createElementBlock(
127
+ "div",
128
+ {
129
+ class: vue.normalizeClass([{ "gm-upload-file-picture-card": _ctx.listType === "picture-card", "gm-upload-file-disabled": _ctx.disabled }, "gm-upload-file"])
130
+ },
131
+ [
132
+ vue.createVNode(_component_el_checkbox_group, {
133
+ modelValue: checkoutFiles.value,
134
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event),
135
+ onChange: handleCheckedChange
136
+ }, {
137
+ default: vue.withCtx(() => [
138
+ vue.createVNode(_component_el_upload, vue.mergeProps({
139
+ ref_key: "uploadFileRef",
140
+ ref: uploadFileRef
141
+ }, props, {
142
+ "file-list": fileList.value,
143
+ "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
144
+ "before-remove": beforeRemove,
145
+ action: "",
146
+ "http-request": httpRequest
147
+ }), vue.createSlots({
148
+ default: vue.withCtx(() => [
149
+ !_ctx.disabled ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
150
+ _ctx.listType === "picture-card" ? (vue.openBlock(), vue.createElementBlock(
174
151
  "div",
175
152
  {
176
- class: "gm-flex gm-items-center gm-justify-center gm-rounded-md",
177
- style: vue.normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
153
+ key: 0,
154
+ class: "gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1",
155
+ style: vue.normalizeStyle([{ "flex-direction": "column" }, { width: _ctx.width + "px", height: _ctx.height + "px" }])
178
156
  },
179
157
  [
180
- vue.createVNode(vue.unref(index.GmFileComponent), {
181
- file,
182
- size: _ctx.width - 40,
183
- url: _ctx.url,
184
- controls: false
185
- }, null, 8, ["file", "size", "url"])
186
- ],
187
- 4
188
- /* STYLE */
189
- ),
190
- vue.createElementVNode("div", _hoisted_3, [
191
- vue.createElementVNode("span", {
192
- class: "el-upload-list__item-preview",
193
- onClick: ($event) => handlePreview(file)
194
- }, [
195
- vue.createVNode(_component_el_icon, null, {
158
+ vue.createVNode(_component_el_icon, {
159
+ size: 30,
160
+ color: "#999"
161
+ }, {
196
162
  default: vue.withCtx(() => [
197
- vue.createVNode(vue.unref(iconsVue.View))
163
+ vue.createVNode(vue.unref(iconsVue.UploadFilled))
198
164
  ]),
199
165
  _: 1
200
166
  /* STABLE */
201
- })
202
- ], 8, _hoisted_4),
203
- _ctx.showDelete ? (vue.openBlock(), vue.createElementBlock("span", {
204
- key: 0,
205
- class: "el-upload-list__item-delete",
206
- onClick: ($event) => handleRemove(file)
207
- }, [
208
- vue.createVNode(_component_el_icon, null, {
209
- default: vue.withCtx(() => [
210
- vue.createVNode(vue.unref(iconsVue.Delete))
211
- ]),
212
- _: 1
213
- /* STABLE */
214
- })
215
- ], 8, _hoisted_5)) : vue.createCommentVNode("v-if", true)
216
- ])
217
- ], true)
167
+ }),
168
+ _hoisted_1
169
+ ],
170
+ 4
171
+ /* STYLE */
172
+ )) : (vue.openBlock(), vue.createBlock(_component_el_button, {
173
+ key: 1,
174
+ type: "primary",
175
+ size: "default"
176
+ }, {
177
+ default: vue.withCtx(() => [
178
+ vue.createTextVNode("\u70B9\u51FB\u4E0A\u4F20")
179
+ ]),
180
+ _: 1
181
+ /* STABLE */
182
+ }))
183
+ ], true) : vue.createCommentVNode("v-if", true)
218
184
  ]),
219
- key: "0"
220
- } : void 0
221
- ]), 1040, ["file-list"])
222
- ]),
223
- _: 3
224
- /* FORWARDED */
225
- }, 8, ["modelValue"]),
226
- vue.createVNode(vue.unref(index$1.GmPreviewFile), {
227
- dialogVisible: dialogVisible.value,
228
- "onUpdate:dialogVisible": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
229
- "file-index": fileIndex.value,
230
- "onUpdate:fileIndex": _cache[3] || (_cache[3] = ($event) => fileIndex.value = $event),
231
- "file-list": fileList.value,
232
- controls: _ctx.controls,
233
- oncontextmenu: _ctx.oncontextmenu,
234
- controlslist: _ctx.controlslist,
235
- field: _ctx.field
236
- }, null, 8, ["dialogVisible", "file-index", "file-list", "controls", "oncontextmenu", "controlslist", "field"])
237
- ]);
185
+ _: 2
186
+ /* DYNAMIC */
187
+ }, [
188
+ _ctx.showFileList && _ctx.listType === "picture-card" ? {
189
+ name: "file",
190
+ fn: vue.withCtx(({ file }) => [
191
+ _ctx.checkbox ? (vue.openBlock(), vue.createBlock(_component_el_checkbox, {
192
+ key: 0,
193
+ value: file
194
+ }, null, 8, ["value"])) : vue.createCommentVNode("v-if", true),
195
+ vue.renderSlot(_ctx.$slots, "file", { file }, () => [
196
+ vue.createElementVNode(
197
+ "div",
198
+ {
199
+ class: "gm-flex gm-items-center gm-justify-center gm-rounded-md",
200
+ style: vue.normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
201
+ },
202
+ [
203
+ vue.createVNode(vue.unref(index.GmFileComponent), {
204
+ file,
205
+ size: _ctx.width - 40,
206
+ url: _ctx.url,
207
+ controls: false
208
+ }, null, 8, ["file", "size", "url"])
209
+ ],
210
+ 4
211
+ /* STYLE */
212
+ ),
213
+ vue.createElementVNode("div", _hoisted_2, [
214
+ vue.createElementVNode("span", {
215
+ class: "el-upload-list__item-preview",
216
+ onClick: ($event) => handlePreview(file)
217
+ }, [
218
+ vue.createVNode(_component_el_icon, null, {
219
+ default: vue.withCtx(() => [
220
+ vue.createVNode(vue.unref(iconsVue.View))
221
+ ]),
222
+ _: 1
223
+ /* STABLE */
224
+ })
225
+ ], 8, _hoisted_3),
226
+ _ctx.showDelete ? (vue.openBlock(), vue.createElementBlock("span", {
227
+ key: 0,
228
+ class: "el-upload-list__item-delete",
229
+ onClick: ($event) => handleRemove(file)
230
+ }, [
231
+ vue.createVNode(_component_el_icon, null, {
232
+ default: vue.withCtx(() => [
233
+ vue.createVNode(vue.unref(iconsVue.Delete))
234
+ ]),
235
+ _: 1
236
+ /* STABLE */
237
+ })
238
+ ], 8, _hoisted_4)) : vue.createCommentVNode("v-if", true)
239
+ ])
240
+ ], true)
241
+ ]),
242
+ key: "0"
243
+ } : void 0
244
+ ]), 1040, ["file-list"])
245
+ ]),
246
+ _: 3
247
+ /* FORWARDED */
248
+ }, 8, ["modelValue"]),
249
+ vue.createVNode(vue.unref(index$1.GmPreviewFile), {
250
+ dialogVisible: dialogVisible.value,
251
+ "onUpdate:dialogVisible": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
252
+ "file-index": fileIndex.value,
253
+ "onUpdate:fileIndex": _cache[3] || (_cache[3] = ($event) => fileIndex.value = $event),
254
+ "file-list": fileList.value,
255
+ controls: _ctx.controls,
256
+ oncontextmenu: _ctx.oncontextmenu,
257
+ controlslist: _ctx.controlslist,
258
+ field: _ctx.field
259
+ }, null, 8, ["dialogVisible", "file-index", "file-list", "controls", "oncontextmenu", "controlslist", "field"])
260
+ ],
261
+ 2
262
+ /* CLASS */
263
+ );
238
264
  };
239
265
  }
240
266
  });
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFile.vue2.js","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\r\n <div class=\"el-upload-file\">\r\n <el-checkbox-group v-model=\"checkoutFiles\" @change=\"handleCheckedChange\">\r\n <el-upload ref=\"uploadFileRef\" v-bind=\"props\" v-model:file-list=\"fileList\" action=\"\" :http-request=\"httpRequest\">\r\n <slot v-if=\"!disabled\">\r\n <div\r\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1\"\r\n style=\"flex-direction: column\"\r\n :style=\"{ width: width + 'px', height: height + 'px' }\"\r\n >\r\n <el-icon :size=\"30\" color=\"#999\">\r\n <UploadFilled />\r\n </el-icon>\r\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\r\n 将文件拖到此处,或 <em class=\"gm-text-blue-700\">点击上传</em>\r\n </div>\r\n </div>\r\n </slot>\r\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\r\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\r\n <slot name=\"file\" :file=\"file\">\r\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\r\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" />\r\n </div>\r\n <div class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\r\n <el-icon><View /></el-icon>\r\n </span>\r\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file)\">\r\n <el-icon><Delete /></el-icon>\r\n </span>\r\n </div>\r\n </slot>\r\n </template>\r\n </el-upload>\r\n </el-checkbox-group>\r\n\r\n <GmPreviewFile\r\n v-model:dialogVisible=\"dialogVisible\"\r\n v-model:file-index=\"fileIndex\"\r\n :file-list=\"fileList\"\r\n :controls=\"controls\"\r\n :oncontextmenu=\"oncontextmenu\"\r\n :controlslist=\"controlslist\"\r\n :field=\"field\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport { ElMessageBox } from 'element-plus';\r\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\r\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\r\nimport GmFileComponent from '../fileComponent';\r\nimport GmPreviewFile from '../previewFile';\r\nimport { uploadFileProps } from './uploadFile';\r\nimport type { CheckboxValueType, UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\r\nimport type { PostSaveFileResponse } from '@giime/utils/src/alioss/aliossPutHook';\r\n\r\ndefineOptions({\r\n name: 'GmUploadFile',\r\n});\r\n\r\nconst props = defineProps(uploadFileProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\nconst { uploadFile, saveFileResult } = useAliossHookStore();\r\n\r\nsaveFileResult((res: any) => {\r\n const { url, md5_code, file_size } = res;\r\n emit('handleSaveFileSuccess', { url, md5_code, file_size });\r\n});\r\n\r\n/** 上传文件 */\r\nconst fileList = defineModel<UploadFiles>('fileList', { default: [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: [] });\r\n/** 多选状态状态 */\r\nconst isIndeterminate = defineModel<boolean>('isIndeterminate', { default: false });\r\n/** 是否全选 */\r\nconst checkedAll = defineModel<boolean>('checkedAll', { default: false });\r\nconst handleCheckedChange = (value: CheckboxValueType[]) => {\r\n const { length } = value;\r\n checkedAll.value = length === fileList.value.length;\r\n isIndeterminate.value = length > 0 && length < fileList.value.length;\r\n};\r\n\r\n/* 上传 */\r\nconst httpRequest = async (params: UploadRequestOptions) => {\r\n const { file } = params;\r\n const res = await uploadFile({\r\n file,\r\n fileName: props.fileName,\r\n folder: props.folder,\r\n seat: props.seat,\r\n partSize: props.partSize,\r\n parallel: props.parallel,\r\n options: props.options,\r\n bucket: props.bucket,\r\n saveStore: props.saveStore,\r\n });\r\n return res;\r\n};\r\n\r\n/* 删除文件 */\r\nconst handleRemove = (file: UploadFile) => {\r\n ElMessageBox.confirm('确定删除该文件吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n const index = fileList.value.indexOf(file);\r\n fileList.value = fileList.value.filter((v, i) => v.url !== file.url || (v.url === file.url && i !== index));\r\n emit('handleRemove', { file, index });\r\n return props.onRemove(file, fileList.value);\r\n })\r\n .catch(() => {});\r\n};\r\n\r\nconst uploadFileRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadFileRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadFileRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadFileRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadFileRef.value!.handleStart(rawFile);\r\n};\r\n\r\n/** 预览 */\r\nconst dialogVisible = ref(false);\r\nconst fileIndex = ref(0);\r\nconst handlePreview = (file: UploadFile) => {\r\n fileIndex.value = fileList.value.indexOf(file);\r\n dialogVisible.value = true;\r\n};\r\n\r\ndefineExpose({\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n uploadFileRef,\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.gm-upload-preview-dialog {\r\n :deep(.el-dialog__body) {\r\n padding: 0;\r\n }\r\n}\r\n:deep(.el-upload-list__item),\r\n:deep(.el-upload--picture-card) {\r\n width: 120px;\r\n height: 120px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.el-upload-file {\r\n line-height: normal;\r\n .el-checkbox {\r\n position: absolute;\r\n left: 10px;\r\n top: 0;\r\n z-index: 9;\r\n }\r\n .el-upload-list__item-file-name {\r\n line-height: normal;\r\n }\r\n}\r\n</style>\r\n"],"names":["useAliossHookStore","_useModel","ElMessageBox","ref"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFile.vue2.js","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\r\n <div :class=\"{ 'gm-upload-file-picture-card': listType === 'picture-card', 'gm-upload-file-disabled': disabled }\" class=\"gm-upload-file\">\r\n <el-checkbox-group v-model=\"checkoutFiles\" @change=\"handleCheckedChange\">\r\n <el-upload ref=\"uploadFileRef\" v-bind=\"props\" v-model:file-list=\"fileList\" :before-remove=\"beforeRemove\" action=\"\" :http-request=\"httpRequest\">\r\n <slot v-if=\"!disabled\">\r\n <template v-if=\"listType === 'picture-card'\">\r\n <div\r\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1\"\r\n style=\"flex-direction: column\"\r\n :style=\"{ width: width + 'px', height: height + 'px' }\"\r\n >\r\n <el-icon :size=\"30\" color=\"#999\">\r\n <UploadFilled />\r\n </el-icon>\r\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\r\n 将文件拖到此处,或 <em class=\"gm-text-blue-700\">点击上传</em>\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\r\n </template>\r\n </slot>\r\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\r\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\r\n <slot name=\"file\" :file=\"file\">\r\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\r\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" />\r\n </div>\r\n <div class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\r\n <el-icon><View /></el-icon>\r\n </span>\r\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file)\">\r\n <el-icon><Delete /></el-icon>\r\n </span>\r\n </div>\r\n </slot>\r\n </template>\r\n </el-upload>\r\n </el-checkbox-group>\r\n\r\n <GmPreviewFile\r\n v-model:dialogVisible=\"dialogVisible\"\r\n v-model:file-index=\"fileIndex\"\r\n :file-list=\"fileList\"\r\n :controls=\"controls\"\r\n :oncontextmenu=\"oncontextmenu\"\r\n :controlslist=\"controlslist\"\r\n :field=\"field\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport { ElMessageBox } from 'element-plus';\r\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\r\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\r\nimport GmFileComponent from '../fileComponent';\r\nimport GmPreviewFile from '../previewFile';\r\nimport { uploadFileProps } from './uploadFile';\r\nimport type { CheckboxValueType, UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\r\nimport type { PostSaveFileResponse } from '@giime/utils/src/alioss/aliossPutHook';\r\n\r\ndefineOptions({\r\n name: 'GmUploadFile',\r\n});\r\n\r\nconst props = defineProps(uploadFileProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\nconst { uploadFile, saveFileResult } = useAliossHookStore();\r\n\r\nsaveFileResult((res: any) => {\r\n const { url, md5_code, file_size } = res;\r\n emit('handleSaveFileSuccess', { url, md5_code, file_size });\r\n});\r\n\r\n/** 上传文件 */\r\nconst fileList = defineModel<UploadFiles>('fileList', { default: [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: [] });\r\n/** 多选状态状态 */\r\nconst isIndeterminate = defineModel<boolean>('isIndeterminate', { default: false });\r\n/** 是否全选 */\r\nconst checkedAll = defineModel<boolean>('checkedAll', { default: false });\r\nconst handleCheckedChange = (value: CheckboxValueType[]) => {\r\n const { length } = value;\r\n checkedAll.value = length === fileList.value.length;\r\n isIndeterminate.value = length > 0 && length < fileList.value.length;\r\n};\r\n\r\n/* 上传 */\r\nconst httpRequest = async (params: UploadRequestOptions) => {\r\n const { file } = params;\r\n const res = await uploadFile({\r\n file,\r\n fileName: props.fileName,\r\n folder: props.folder,\r\n seat: props.seat,\r\n partSize: props.partSize,\r\n parallel: props.parallel,\r\n options: props.options,\r\n bucket: props.bucket,\r\n saveStore: props.saveStore,\r\n });\r\n return res;\r\n};\r\n\r\n/* 删除文件前 */\r\nconst beforeRemove = (file: UploadFile, files: UploadFiles) => {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n return props.beforeRemove ? props.beforeRemove(file, files) : true;\r\n};\r\n\r\n/* 删除文件 */\r\nconst handleRemove = (file: UploadFile) => {\r\n ElMessageBox.confirm('确定删除该文件吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n const index = fileList.value.indexOf(file);\r\n fileList.value = fileList.value.filter((v, i) => v.url !== file.url || (v.url === file.url && i !== index));\r\n emit('handleRemove', { file, index });\r\n return props.onRemove(file, fileList.value);\r\n })\r\n .catch(() => {});\r\n};\r\n\r\nconst uploadFileRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadFileRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadFileRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadFileRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadFileRef.value!.handleStart(rawFile);\r\n};\r\n\r\n/** 预览 */\r\nconst dialogVisible = ref(false);\r\nconst fileIndex = ref(0);\r\nconst handlePreview = (file: UploadFile) => {\r\n fileIndex.value = fileList.value.indexOf(file);\r\n dialogVisible.value = true;\r\n};\r\n\r\ndefineExpose({\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n uploadFileRef,\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.gm-upload-preview-dialog {\r\n :deep(.el-dialog__body) {\r\n padding: 0;\r\n }\r\n}\r\n.gm-upload-file-picture-card {\r\n :deep(.el-upload-list__item),\r\n :deep(.el-upload--picture-card) {\r\n width: 120px;\r\n height: 120px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.gm-upload-file {\r\n line-height: normal;\r\n .el-checkbox {\r\n position: absolute;\r\n left: 10px;\r\n top: 0;\r\n z-index: 9;\r\n }\r\n .el-upload-list__item-file-name {\r\n line-height: normal;\r\n }\r\n}\r\n.gm-upload-file-disabled {\r\n .el-upload-list__item-status-label {\r\n display: none;\r\n }\r\n}\r\n</style>\r\n"],"names":["useAliossHookStore","_useModel","ElMessageBox","ref"],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const version = "0.5.5";
1
+ export declare const version = "0.5.6";
package/lib/index.css CHANGED
@@ -801,11 +801,6 @@ video {
801
801
  .gm-group:hover .group-hover\:gm-block {
802
802
  display: block;
803
803
  }
804
-
805
- .gm-range-number .el-form-item[data-v-11c39847] {
806
- margin: 0;
807
- }
808
-
809
804
  .gm-flex-center[data-v-2a79bac9] {
810
805
  align-items: center;
811
806
  }
@@ -813,6 +808,33 @@ video {
813
808
  .gm-flex-justify-between[data-v-2a79bac9] {
814
809
  justify-content: space-between;
815
810
  }
811
+ .gm-upload-preview-dialog[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-dialog__body {
812
+ padding: 0;
813
+ }
814
+
815
+ .gm-upload-file-picture-card[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-upload-list__item, .gm-upload-file-picture-card[data-v-bb2dfbf0] [data-v-bb2dfbf0] .el-upload--picture-card {
816
+ width: 120px;
817
+ height: 120px;
818
+ display: flex;
819
+ align-items: center;
820
+ justify-content: center;
821
+ }
822
+ .gm-upload-file {
823
+ line-height: normal;
824
+ }
825
+ .gm-upload-file .el-checkbox {
826
+ position: absolute;
827
+ left: 10px;
828
+ top: 0;
829
+ z-index: 9;
830
+ }
831
+ .gm-upload-file .el-upload-list__item-file-name {
832
+ line-height: normal;
833
+ }
834
+
835
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
836
+ display: none;
837
+ }
816
838
  .circular[data-v-b391445c] {
817
839
  animation: loading-rotate-b391445c 2s linear infinite;
818
840
  }
@@ -844,6 +866,15 @@ video {
844
866
  stroke-dashoffset: -120px;
845
867
  }
846
868
  }
869
+
870
+ .gm-range-number .el-form-item[data-v-11c39847] {
871
+ margin: 0;
872
+ }
873
+
874
+ [data-v-7b6755e2] .gmSearchForm .el-form-item {
875
+ margin-right: 0;
876
+ margin-bottom: 4px;
877
+ }
847
878
  [data-v-668dc408] .gmTableNoBorder .el-table__body .el-table__cell {
848
879
  border-right: none;
849
880
  }
@@ -867,21 +898,15 @@ video {
867
898
  [data-v-668dc408] .gmTableNoBorder .el-table__border-left-patch {
868
899
  height: 0;
869
900
  }
870
- .gm-upload-preview-dialog[data-v-80cd8f61] [data-v-80cd8f61] .el-dialog__body {
871
- padding: 0;
872
- }
873
901
 
874
- [data-v-80cd8f61] .el-upload-list__item, [data-v-80cd8f61] .el-upload--picture-card {
875
- width: 120px;
876
- height: 120px;
877
- display: flex;
878
- align-items: center;
879
- justify-content: center;
880
- }
881
- [data-v-7b6755e2] .gmSearchForm .el-form-item {
882
- margin-right: 0;
883
- margin-bottom: 4px;
902
+ .pagination-container[data-v-19230954] {
903
+ background: #fff;
904
+ padding-top: 12px;
884
905
  }
906
+ .pagination-container.hidden[data-v-19230954] {
907
+ display: none;
908
+ }
909
+
885
910
  .gm-number-interval-single[data-v-47a13fd0] {
886
911
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
887
912
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -899,24 +924,4 @@ video {
899
924
 
900
925
  .gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
901
926
  display: flex;
902
- }
903
- .el-upload-file {
904
- line-height: normal;
905
- }
906
- .el-upload-file .el-checkbox {
907
- position: absolute;
908
- left: 10px;
909
- top: 0;
910
- z-index: 9;
911
- }
912
- .el-upload-file .el-upload-list__item-file-name {
913
- line-height: normal;
914
- }
915
-
916
- .pagination-container[data-v-19230954] {
917
- background: #fff;
918
- padding-top: 12px;
919
- }
920
- .pagination-container.hidden[data-v-19230954] {
921
- display: none;
922
- }
927
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "giime",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "A Component Library for Vue 3",
5
5
  "keywords": [
6
6
  "giime",