@maketribe/ms-app 3.1.3 → 3.1.5

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 (78) hide show
  1. package/dist/cjs/assets/iconfonts/iconfont.js +5 -5
  2. package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
  3. package/dist/cjs/components/data-model/data-table/views/table-tree/table-tree.js +2 -1
  4. package/dist/cjs/components/data-model/data-table/views/table-tree/table-tree.js.map +1 -1
  5. package/dist/cjs/layouts/container/default.js +9 -9
  6. package/dist/cjs/layouts/container/default.js.map +1 -1
  7. package/dist/cjs/modules/cms/components/part-list/part-list.vue2.js +1 -4
  8. package/dist/cjs/modules/cms/components/part-list/part-list.vue2.js.map +1 -1
  9. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartTable.js.map +1 -1
  10. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartTree.js +0 -3
  11. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartTree.js.map +1 -1
  12. package/dist/cjs/modules/cms/index.js +6 -6
  13. package/dist/cjs/modules/cms/index.js.map +1 -1
  14. package/dist/cjs/modules/cms/pages/cms-ad/index.vue.d.ts +2 -0
  15. package/dist/cjs/modules/cms/pages/cms-ad/index.vue.js +9 -0
  16. package/dist/cjs/modules/cms/pages/cms-ad/index.vue.js.map +1 -0
  17. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +169 -0
  18. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -0
  19. package/dist/cjs/modules/cms/pages/cms-article/index.vue2.js +2 -37
  20. package/dist/cjs/modules/cms/pages/cms-article/index.vue2.js.map +1 -1
  21. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js +8 -7
  22. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js.map +1 -1
  23. package/dist/cjs/modules/cms/pages/cms-resource/core/ResourceManager.d.ts +4 -0
  24. package/dist/cjs/modules/cms/pages/cms-resource/core/ResourceManager.js +35 -0
  25. package/dist/cjs/modules/cms/pages/cms-resource/core/ResourceManager.js.map +1 -1
  26. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +103 -9
  27. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  28. package/dist/cjs/modules/ms/components/material-list/material-list.vue2.js +3 -1
  29. package/dist/cjs/modules/ms/components/material-list/material-list.vue2.js.map +1 -1
  30. package/dist/esm/assets/iconfonts/iconfont.js +5 -5
  31. package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
  32. package/dist/esm/components/data-model/data-table/views/table-tree/table-tree.js +2 -1
  33. package/dist/esm/components/data-model/data-table/views/table-tree/table-tree.js.map +1 -1
  34. package/dist/esm/layouts/container/default.js +7 -7
  35. package/dist/esm/layouts/container/default.js.map +1 -1
  36. package/dist/esm/modules/cms/components/part-list/part-list.vue2.js +1 -4
  37. package/dist/esm/modules/cms/components/part-list/part-list.vue2.js.map +1 -1
  38. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartTable.js.map +1 -1
  39. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartTree.js +0 -3
  40. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartTree.js.map +1 -1
  41. package/dist/esm/modules/cms/index.js +6 -6
  42. package/dist/esm/modules/cms/index.js.map +1 -1
  43. package/dist/esm/modules/cms/pages/cms-ad/index.vue.d.ts +2 -0
  44. package/dist/esm/modules/cms/pages/cms-ad/index.vue.js +7 -0
  45. package/dist/esm/modules/cms/pages/cms-ad/index.vue.js.map +1 -0
  46. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +167 -0
  47. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -0
  48. package/dist/esm/modules/cms/pages/cms-article/index.vue2.js +2 -37
  49. package/dist/esm/modules/cms/pages/cms-article/index.vue2.js.map +1 -1
  50. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js +8 -7
  51. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js.map +1 -1
  52. package/dist/esm/modules/cms/pages/cms-resource/core/ResourceManager.d.ts +4 -0
  53. package/dist/esm/modules/cms/pages/cms-resource/core/ResourceManager.js +35 -0
  54. package/dist/esm/modules/cms/pages/cms-resource/core/ResourceManager.js.map +1 -1
  55. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +104 -10
  56. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  57. package/dist/esm/modules/ms/components/material-list/material-list.vue2.js +4 -2
  58. package/dist/esm/modules/ms/components/material-list/material-list.vue2.js.map +1 -1
  59. package/dist/style/components/index.css +2 -2
  60. package/dist/style/components/material-list.css +1 -1
  61. package/dist/style/components/part-list.css +1 -1
  62. package/dist/style/index.css +3 -3
  63. package/dist/style/layouts/default/bar.css +1 -1
  64. package/dist/style/layouts/default/header.css +1 -1
  65. package/dist/style/layouts/default/index.css +1 -1
  66. package/dist/style/layouts/default/menu.css +1 -1
  67. package/dist/style/layouts/index.css +1 -1
  68. package/dist/style/modules/cms/index.css +1 -1
  69. package/dist/style/modules/cms/resource-manager.css +1 -1
  70. package/dist/style/src/components/material-list.scss +12 -0
  71. package/dist/style/src/components/part-list.scss +13 -6
  72. package/dist/style/src/index.scss +24 -16
  73. package/dist/style/src/layouts/default/bar.scss +17 -37
  74. package/dist/style/src/layouts/default/header.scss +16 -9
  75. package/dist/style/src/layouts/default/index.scss +9 -5
  76. package/dist/style/src/layouts/default/menu.scss +2 -1
  77. package/dist/style/src/modules/cms/resource-manager.scss +1 -0
  78. package/package.json +3 -3
@@ -10,7 +10,7 @@ require('../../../../components/basic/data-table-select/index.js');
10
10
  require('../../../../components/basic/data-select/index.js');
11
11
  require('../../../../components/basic/pagination/index.js');
12
12
  require('../../../../components/basic/system-provider/index.js');
13
- require('../../../../components/basic/code-editor/index.js');
13
+ var index$3 = require('../../../../components/basic/code-editor/index.js');
14
14
  require('../../../../components/basic/json-editor/index.js');
15
15
  var index = require('../../../../components/basic/page-container/index.js');
16
16
  require('../../../../components/basic/date-picker/index.js');
@@ -37,12 +37,14 @@ const _hoisted_1 = { class: "resource-manager" };
37
37
  const _hoisted_2 = { class: "resource-manager-tools" };
38
38
  const _hoisted_3 = { class: "resource-manager-header" };
39
39
  const _hoisted_4 = ["onClick"];
40
- const _hoisted_5 = { class: "resource-manager-list" };
41
- const _hoisted_6 = ["onClick", "onDblclick"];
40
+ const _hoisted_5 = ["onDrop"];
41
+ const _hoisted_6 = { class: "resource-manager-list" };
42
+ const _hoisted_7 = ["onClick", "onDblclick"];
42
43
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
43
44
  __name: "index",
44
45
  setup(__props) {
45
46
  const resourceManager = vue.reactive(new ResourceManager.ResourceManager());
47
+ const isShowEditDialog = vue.computed(() => resourceManager.isShowEditDialog);
46
48
  const selectResourceCount = vue.computed(
47
49
  () => resourceManager.selectResourceList.length
48
50
  );
@@ -79,6 +81,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
79
81
  }
80
82
  resourceManager.deleteSelectResourceList();
81
83
  };
84
+ const handleEdit = () => {
85
+ resourceManager.editSelectFile();
86
+ };
87
+ const handleEditDialogConfirm = () => {
88
+ resourceManager.saveEditFile();
89
+ };
90
+ const handleEditDialogClose = () => {
91
+ resourceManager.isShowEditDialog = false;
92
+ resourceManager.currentEditText = "";
93
+ };
82
94
  const handleUploadClick = () => {
83
95
  var input = document.createElement("input");
84
96
  input.type = "file";
@@ -92,10 +104,43 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
92
104
  const handleDownload = () => {
93
105
  resourceManager.downloadSelectResource();
94
106
  };
107
+ const handleDrop = async (event) => {
108
+ var _items = event.dataTransfer?.items;
109
+ var fileSystemEntry = _items[0].webkitGetAsEntry();
110
+ const internalProcess = async (item, path = "") => {
111
+ if (item.isFile) {
112
+ return [
113
+ await new Promise((resolve) => {
114
+ item.file((file) => {
115
+ resolve(
116
+ new File([file], `${path}${file.name}`, { type: file.type })
117
+ );
118
+ });
119
+ })
120
+ ];
121
+ } else if (item.isDirectory) {
122
+ var directoryReader = item.createReader();
123
+ const entries = await new Promise((resolve) => {
124
+ directoryReader.readEntries(resolve);
125
+ });
126
+ var result = [];
127
+ for (let i = 0; i < entries.length; i++) {
128
+ result = result.concat(
129
+ await internalProcess(entries[i], `${path}${item.name}/`)
130
+ );
131
+ }
132
+ return result;
133
+ }
134
+ return [];
135
+ };
136
+ const files = await internalProcess(fileSystemEntry);
137
+ resourceManager.uploadResourceList(files);
138
+ };
95
139
  vue.onMounted(() => {
96
140
  resourceManager.loadResourceInfoList();
97
141
  });
98
142
  return (_ctx, _cache) => {
143
+ const _component_ElDialog = vue.resolveComponent("ElDialog");
99
144
  const _directive_loading = vue.resolveDirective("loading");
100
145
  return vue.openBlock(), vue.createBlock(vue.unref(index.MKPageContainer), null, {
101
146
  default: vue.withCtx(() => [
@@ -124,10 +169,20 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
124
169
  })) : vue.createCommentVNode("v-if", true),
125
170
  selectResourceCount.value === 1 ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElButton), {
126
171
  key: 1,
172
+ onClick: handleEdit
173
+ }, {
174
+ default: vue.withCtx(() => [
175
+ vue.createTextVNode(" \u7F16\u8F91 ")
176
+ ]),
177
+ _: 1
178
+ /* STABLE */
179
+ })) : vue.createCommentVNode("v-if", true),
180
+ selectResourceCount.value === 1 ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElButton), {
181
+ key: 2,
127
182
  onClick: _cache[0] || (_cache[0] = ($event) => handleDownload())
128
183
  }, {
129
184
  default: vue.withCtx(() => [
130
- vue.createTextVNode("\u4E0B\u8F7D")
185
+ vue.createTextVNode(" \u4E0B\u8F7D ")
131
186
  ]),
132
187
  _: 1
133
188
  /* STABLE */
@@ -179,9 +234,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
179
234
  ]),
180
235
  vue.createElementVNode("div", {
181
236
  class: "resource-manager-main",
182
- onClick: handleMainClick
237
+ onClick: handleMainClick,
238
+ onDragover: _cache[2] || (_cache[2] = vue.withModifiers(() => {
239
+ }, ["prevent"])),
240
+ onDrop: vue.withModifiers(handleDrop, ["prevent"])
183
241
  }, [
184
- vue.createElementVNode("div", _hoisted_5, [
242
+ vue.createElementVNode("div", _hoisted_6, [
185
243
  (vue.openBlock(true), vue.createElementBlock(
186
244
  vue.Fragment,
187
245
  null,
@@ -195,16 +253,52 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
195
253
  key: item.path,
196
254
  resourceItem: item
197
255
  }, null, 8, ["resourceItem"]))
198
- ], 40, _hoisted_6);
256
+ ], 40, _hoisted_7);
199
257
  }),
200
258
  256
201
259
  /* UNKEYED_FRAGMENT */
202
260
  ))
203
261
  ])
204
- ])
262
+ ], 40, _hoisted_5)
205
263
  ])), [
206
264
  [_directive_loading, resourceManager.loading]
207
- ])
265
+ ]),
266
+ vue.createVNode(_component_ElDialog, {
267
+ modelValue: isShowEditDialog.value,
268
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => isShowEditDialog.value = $event),
269
+ onClose: handleEditDialogClose
270
+ }, {
271
+ footer: vue.withCtx(() => [
272
+ vue.createVNode(vue.unref(elementPlus.ElButton), { onClick: handleEditDialogClose }, {
273
+ default: vue.withCtx(() => [
274
+ vue.createTextVNode("\u53D6\u6D88")
275
+ ]),
276
+ _: 1
277
+ /* STABLE */
278
+ }),
279
+ vue.withDirectives((vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElButton), {
280
+ type: "primary",
281
+ onClick: handleEditDialogConfirm
282
+ }, {
283
+ default: vue.withCtx(() => [
284
+ vue.createTextVNode(" \u4FDD\u5B58 ")
285
+ ]),
286
+ _: 1
287
+ /* STABLE */
288
+ })), [
289
+ [_directive_loading, resourceManager.loading]
290
+ ])
291
+ ]),
292
+ default: vue.withCtx(() => [
293
+ isShowEditDialog.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$3.MKCodeEditor), {
294
+ key: 0,
295
+ modelValue: resourceManager.currentEditText,
296
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => resourceManager.currentEditText = $event)
297
+ }, null, 8, ["modelValue"])) : vue.createCommentVNode("v-if", true)
298
+ ]),
299
+ _: 1
300
+ /* STABLE */
301
+ }, 8, ["modelValue"])
208
302
  ]),
209
303
  _: 1
210
304
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-resource/index.vue"],"sourcesContent":["<template>\n <MKPageContainer>\n <div v-loading=\"resourceManager.loading\" class=\"resource-manager\">\n <div class=\"resource-manager-tools\">\n <ElButton type=\"primary\" @click=\"handleUploadClick\">上传</ElButton>\n <ElButton\n v-if=\"selectResourceCount > 0\"\n type=\"danger\"\n @click=\"handleDeleteClick\"\n >\n 删除\n </ElButton>\n <ElButton v-if=\"selectResourceCount === 1\" @click=\"handleDownload()\"\n >下载</ElButton\n >\n </div>\n\n <div class=\"resource-manager-header\">\n <ElBreadcrumb>\n <ElBreadcrumbItem>\n <span\n class=\"resource-manager-breadcrumb-item\"\n @click=\"handleBreadcrumbClick()\"\n >\n <MKSvgIcon iconClass=\"HomeFilled\" />\n </span>\n </ElBreadcrumbItem>\n <ElBreadcrumbItem\n v-for=\"(item, i) in resourceManager.directories\"\n :key=\"item\"\n >\n <span\n class=\"resource-manager-breadcrumb-item\"\n @click=\"handleBreadcrumbClick(i)\"\n >\n {{ item }}\n </span>\n </ElBreadcrumbItem>\n </ElBreadcrumb>\n </div>\n\n <div class=\"resource-manager-main\" @click=\"handleMainClick\">\n <div class=\"resource-manager-list\">\n <div\n v-for=\"item in resourceManager.resourceInfoList\"\n class=\"resource-manager__item\"\n @click.stop=\"handleClick($event, item)\"\n @dblclick=\"handleDbClick(item)\"\n >\n <ResourceItem :key=\"item.path\" :resourceItem=\"item\" />\n </div>\n </div>\n </div>\n </div>\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, reactive, computed } from \"vue\";\nimport {\n ElBreadcrumb,\n ElBreadcrumbItem,\n ElButton,\n ElMessageBox,\n} from \"element-plus\";\nimport { MKPageContainer, MKSvgIcon } from \"../../../../components\";\nimport { ResourceManager, ResourceInfo } from \"./core/ResourceManager\";\nimport ResourceItem from \"./components/resource-item/index.vue\";\n\nconst resourceManager = reactive(new ResourceManager()) as ResourceManager;\n\nconst selectResourceCount = computed(\n () => resourceManager.selectResourceList.length\n);\n\nconst handleBreadcrumbClick = (index?: number) => {\n if (typeof index !== \"number\") {\n resourceManager.loadResourceInfoList();\n\n return;\n }\n\n resourceManager.loadResourceInfoList(\n resourceManager.directories.splice(0, index + 1).join(\"/\")\n );\n};\n\nconst handleDbClick = (item: ResourceInfo) => {\n if (!item.isDirectory) {\n return;\n }\n\n resourceManager.loadResourceInfoList(item.path);\n};\n\nconst handleClick = (event: MouseEvent, item: ResourceInfo) => {\n resourceManager.handleSelectClick(event, item);\n};\n\nconst handleMainClick = () => {\n resourceManager.clearAllSelect();\n};\n\nconst handleDeleteClick = async () => {\n const isConfirm = await ElMessageBox.confirm(\"是否删除选中文件\", {\n type: \"warning\",\n }).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n resourceManager.deleteSelectResourceList();\n};\n\nconst handleUploadClick = () => {\n /** @type {HTMLInputElement} */\n var input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = true;\n\n input.addEventListener(\"change\", () => {\n var files = new Array(input.files!.length)\n .fill(0)\n .map((_, i) => input.files![i]);\n\n resourceManager.uploadResourceList(files);\n });\n\n input.click();\n};\n\nconst handleDownload = () => {\n resourceManager.downloadSelectResource();\n};\n\nonMounted(() => {\n resourceManager.loadResourceInfoList();\n});\n</script>\n"],"names":["reactive","ResourceManager","computed","ElMessageBox","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEA,IAAA,MAAM,eAAkB,GAAAA,YAAA,CAAS,IAAIC,+BAAA,EAAiB,CAAA,CAAA;AAEtD,IAAA,MAAM,mBAAsB,GAAAC,YAAA;AAAA,MAC1B,MAAM,gBAAgB,kBAAmB,CAAA,MAAA;AAAA,KAC3C,CAAA;AAEA,IAAM,MAAA,qBAAA,GAAwB,CAAC,KAAmB,KAAA;AAChD,MAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,QAAA,eAAA,CAAgB,oBAAqB,EAAA,CAAA;AAErC,QAAA,OAAA;AAAA,OACF;AAEA,MAAgB,eAAA,CAAA,oBAAA;AAAA,QACd,eAAA,CAAgB,YAAY,MAAO,CAAA,CAAA,EAAG,QAAQ,CAAC,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,OAC3D,CAAA;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,aAAA,GAAgB,CAAC,IAAuB,KAAA;AAC5C,MAAI,IAAA,CAAC,KAAK,WAAa,EAAA;AACrB,QAAA,OAAA;AAAA,OACF;AAEA,MAAgB,eAAA,CAAA,oBAAA,CAAqB,KAAK,IAAI,CAAA,CAAA;AAAA,KAChD,CAAA;AAEA,IAAM,MAAA,WAAA,GAAc,CAAC,KAAA,EAAmB,IAAuB,KAAA;AAC7D,MAAgB,eAAA,CAAA,iBAAA,CAAkB,OAAO,IAAI,CAAA,CAAA;AAAA,KAC/C,CAAA;AAEA,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,eAAA,CAAgB,cAAe,EAAA,CAAA;AAAA,KACjC,CAAA;AAEA,IAAA,MAAM,oBAAoB,YAAY;AACpC,MAAA,MAAM,SAAY,GAAA,MAAMC,wBAAa,CAAA,OAAA,CAAQ,kDAAY,EAAA;AAAA,QACvD,IAAM,EAAA,SAAA;AAAA,OACP,CAAE,CAAA,IAAA;AAAA,QACD,MAAM,IAAA;AAAA,QACN,MAAM,KAAA;AAAA,OACR,CAAA;AAEA,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,eAAA,CAAgB,wBAAyB,EAAA,CAAA;AAAA,KAC3C,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAE9B,MAAI,IAAA,KAAA,GAAQ,QAAS,CAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAC1C,MAAA,KAAA,CAAM,IAAO,GAAA,MAAA,CAAA;AACb,MAAA,KAAA,CAAM,QAAW,GAAA,IAAA,CAAA;AAEjB,MAAM,KAAA,CAAA,gBAAA,CAAiB,UAAU,MAAM;AACrC,QAAA,IAAI,QAAQ,IAAI,KAAA,CAAM,KAAM,CAAA,KAAA,CAAO,MAAM,CACtC,CAAA,IAAA,CAAK,CAAC,CAAA,CACN,IAAI,CAAC,CAAA,EAAG,MAAM,KAAM,CAAA,KAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AAEhC,QAAA,eAAA,CAAgB,mBAAmB,KAAK,CAAA,CAAA;AAAA,OACzC,CAAA,CAAA;AAED,MAAA,KAAA,CAAM,KAAM,EAAA,CAAA;AAAA,KACd,CAAA;AAEA,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,eAAA,CAAgB,sBAAuB,EAAA,CAAA;AAAA,KACzC,CAAA;AAEA,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,eAAA,CAAgB,oBAAqB,EAAA,CAAA;AAAA,KACtC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-resource/index.vue"],"sourcesContent":["<template>\n <MKPageContainer>\n <div v-loading=\"resourceManager.loading\" class=\"resource-manager\">\n <div class=\"resource-manager-tools\">\n <ElButton type=\"primary\" @click=\"handleUploadClick\">上传</ElButton>\n <ElButton\n v-if=\"selectResourceCount > 0\"\n type=\"danger\"\n @click=\"handleDeleteClick\"\n >\n 删除\n </ElButton>\n <ElButton v-if=\"selectResourceCount === 1\" @click=\"handleEdit\">\n 编辑\n </ElButton>\n <ElButton v-if=\"selectResourceCount === 1\" @click=\"handleDownload()\">\n 下载\n </ElButton>\n </div>\n\n <div class=\"resource-manager-header\">\n <ElBreadcrumb>\n <ElBreadcrumbItem>\n <span\n class=\"resource-manager-breadcrumb-item\"\n @click=\"handleBreadcrumbClick()\"\n >\n <MKSvgIcon iconClass=\"HomeFilled\" />\n </span>\n </ElBreadcrumbItem>\n <ElBreadcrumbItem\n v-for=\"(item, i) in resourceManager.directories\"\n :key=\"item\"\n >\n <span\n class=\"resource-manager-breadcrumb-item\"\n @click=\"handleBreadcrumbClick(i)\"\n >\n {{ item }}\n </span>\n </ElBreadcrumbItem>\n </ElBreadcrumb>\n </div>\n\n <div\n class=\"resource-manager-main\"\n @click=\"handleMainClick\"\n @dragover.prevent\n @drop.prevent=\"handleDrop\"\n >\n <div class=\"resource-manager-list\">\n <div\n v-for=\"item in resourceManager.resourceInfoList\"\n class=\"resource-manager__item\"\n @click.stop=\"handleClick($event, item)\"\n @dblclick=\"handleDbClick(item)\"\n >\n <ResourceItem :key=\"item.path\" :resourceItem=\"item\" />\n </div>\n </div>\n </div>\n </div>\n\n <ElDialog v-model=\"isShowEditDialog\" @close=\"handleEditDialogClose\">\n <MKCodeEditor\n v-if=\"isShowEditDialog\"\n v-model=\"resourceManager.currentEditText\"\n />\n <template #footer>\n <ElButton @click=\"handleEditDialogClose\">取消</ElButton>\n <ElButton type=\"primary\" v-loading=\"resourceManager.loading\" @click=\"handleEditDialogConfirm\">\n 保存\n </ElButton>\n </template>\n </ElDialog>\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, reactive, computed } from \"vue\";\nimport {\n ElBreadcrumb,\n ElBreadcrumbItem,\n ElButton,\n ElMessageBox,\n} from \"element-plus\";\nimport {\n MKPageContainer,\n MKSvgIcon,\n MKCodeEditor,\n} from \"../../../../components\";\nimport { ResourceManager, ResourceInfo } from \"./core/ResourceManager\";\nimport ResourceItem from \"./components/resource-item/index.vue\";\n\nconst resourceManager = reactive(new ResourceManager()) as ResourceManager;\n\nconst isShowEditDialog = computed(() => resourceManager.isShowEditDialog);\n\nconst selectResourceCount = computed(\n () => resourceManager.selectResourceList.length\n);\n\nconst handleBreadcrumbClick = (index?: number) => {\n if (typeof index !== \"number\") {\n resourceManager.loadResourceInfoList();\n\n return;\n }\n\n resourceManager.loadResourceInfoList(\n resourceManager.directories.splice(0, index + 1).join(\"/\")\n );\n};\n\nconst handleDbClick = (item: ResourceInfo) => {\n if (!item.isDirectory) {\n return;\n }\n\n resourceManager.loadResourceInfoList(item.path);\n};\n\nconst handleClick = (event: MouseEvent, item: ResourceInfo) => {\n resourceManager.handleSelectClick(event, item);\n};\n\nconst handleMainClick = () => {\n resourceManager.clearAllSelect();\n};\n\nconst handleDeleteClick = async () => {\n const isConfirm = await ElMessageBox.confirm(\"是否删除选中文件\", {\n type: \"warning\",\n }).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n resourceManager.deleteSelectResourceList();\n};\n\nconst handleEdit = () => {\n resourceManager.editSelectFile();\n};\n\nconst handleEditDialogConfirm = () => {\n resourceManager.saveEditFile();\n};\n\nconst handleEditDialogClose = () => {\n resourceManager.isShowEditDialog = false;\n resourceManager.currentEditText = \"\";\n};\n\nconst handleUploadClick = () => {\n /** @type {HTMLInputElement} */\n var input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = true;\n\n input.addEventListener(\"change\", () => {\n var files = new Array(input.files!.length)\n .fill(0)\n .map((_, i) => input.files![i]);\n\n resourceManager.uploadResourceList(files);\n });\n\n input.click();\n};\n\nconst handleDownload = () => {\n resourceManager.downloadSelectResource();\n};\n\nconst handleDrop = async (event: DragEvent) => {\n var _items = event.dataTransfer?.items;\n\n var fileSystemEntry = _items![0].webkitGetAsEntry() as any;\n\n const internalProcess = async (item: any, path: string = \"\") => {\n if (item.isFile) {\n return [\n await new Promise((resolve) => {\n item.file((file: File) => {\n resolve(\n new File([file], `${path}${file.name}`, { type: file.type })\n );\n });\n }),\n ] as File[];\n } else if (item.isDirectory) {\n var directoryReader = item.createReader();\n\n const entries = (await new Promise((resolve) => {\n directoryReader.readEntries(resolve);\n })) as any[];\n\n var result: File[] = [];\n\n for (let i = 0; i < entries.length; i++) {\n result = result.concat(\n await internalProcess(entries[i], `${path}${item.name}/`)\n );\n }\n\n return result;\n }\n\n return [];\n };\n\n const files = await internalProcess(fileSystemEntry);\n\n resourceManager.uploadResourceList(files);\n};\n\nonMounted(() => {\n resourceManager.loadResourceInfoList();\n});\n</script>\n"],"names":["reactive","ResourceManager","computed","ElMessageBox","onMounted"],"mappings":"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"}
@@ -112,7 +112,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
112
112
  vue.Fragment,
113
113
  { key: 0 },
114
114
  [
115
- vue.createTextVNode(
115
+ vue.createElementVNode(
116
+ "span",
117
+ null,
116
118
  vue.toDisplayString(currentMaterialType.value.label) + "\u5927\u5C0F\u4E0D\u8D85\u8FC7 " + vue.toDisplayString(currentMaterialType.value.limit) + " M ",
117
119
  1
118
120
  /* TEXT */
@@ -1 +1 @@
1
- {"version":3,"file":"material-list.vue2.js","sources":["../../../../../../src/modules/ms/components/material-list/material-list.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-material-list\">\r\n <MaterialGroup :material-man=\"materialMan\" />\r\n <div class=\"mk-material-list__main\" v-loading=\"loading\">\r\n <div class=\"mk-material-list__header\">\r\n <div class=\"mk-material-list__header-left\">\r\n <div class=\"mk-material-list__types\">\r\n <div\r\n v-for=\"item of materialTypes\"\r\n :key=\"item.value\"\r\n :class=\"[\r\n 'mk-material-list__type',\r\n currentMaterialTypeId === item.value ? 'is-active' : '',\r\n ]\"\r\n @click=\"handleMaterialTypeClick(item)\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mk-material-list__header-right\">\r\n <template v-if=\"currentMaterialType\">\r\n {{ currentMaterialType.label }}大小不超过\r\n {{ currentMaterialType.limit }} M\r\n <MKWebFileUploadContext\r\n :web-file-upload=\"materialMan.upload\"\r\n :accept=\"currentMaterialType.accept\"\r\n >\r\n <MKUploadFile>\r\n <ElButton type=\"primary\">\r\n 选择{{ currentMaterialType.label }}\r\n </ElButton>\r\n </MKUploadFile>\r\n </MKWebFileUploadContext>\r\n </template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mk-material-list__body\">\r\n <ElScrollbar height=\"100%\">\r\n <div class=\"mk-material-list__wrapper\">\r\n <MaterialItem\r\n v-for=\"material of materialList\"\r\n :key=\"material.id\"\r\n :class=\"[\r\n 'mk-material-list__item',\r\n value === material.path ? 'is-current' : '',\r\n ]\"\r\n :material-table=\"materialTable\"\r\n :material=\"material\"\r\n @click.capture=\"handleMaterialItemClick($event, material)\"\r\n />\r\n </div>\r\n </ElScrollbar>\r\n <div class=\"mk-material-list__footer\">\r\n <ElPagination\r\n class=\"mk-data-table-pagination\"\r\n :background=\"true\"\r\n :pageSizes=\"unref(pageSizes)\"\r\n :currentPage=\"unref(currentPage)\"\r\n :pageSize=\"unref(pageSize)\"\r\n :total=\"unref(totalRecCount)\"\r\n layout=\"prev, pager, next\"\r\n @current-change=\"changeCurrentPage\"\r\n @size-change=\"changePageSize\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, unref } from \"vue\";\r\nimport { ElPagination } from \"element-plus\";\r\nimport { MsMaterialType, MsMaterial } from \"../../dataviews\";\r\nimport MaterialGroup from \"./material-group.vue\";\r\nimport MaterialItem from \"./material-item.vue\";\r\nimport { materialListProps, materialListEmits } from \"./material-list-options\";\r\n\r\ndefineOptions({ name: \"MKMaterialList\" });\r\n\r\nconst props = defineProps(materialListProps);\r\n\r\nconst emit = defineEmits(materialListEmits);\r\n\r\nprops.materialMan.init();\r\n\r\nconst loading = computed(() => props.materialMan.materialTable.loading);\r\n\r\nconst value = computed({\r\n get: () => {\r\n return props.selectable ? props.selectedPath ?? null : null;\r\n },\r\n set: (v) => {\r\n emit(\"update:selected-path\", v);\r\n },\r\n});\r\n\r\nconst materialTable = computed(() => props.materialMan.materialTable);\r\nconst pageSizes = computed(() => unref(materialTable).pageSizes);\r\nconst currentPage = computed({\r\n get: () => unref(materialTable).currentPage,\r\n set: (v) => {\r\n unref(materialTable).pageTo(v);\r\n },\r\n});\r\nconst pageSize = computed({\r\n get: () => unref(materialTable).pageSize,\r\n set: (v) => {\r\n unref(materialTable).setPageSize(v);\r\n },\r\n});\r\nconst totalRecCount = computed(() => unref(materialTable).totalRecCount);\r\nconst changeCurrentPage = (v: number) => {\r\n currentPage.value = v;\r\n};\r\nconst changePageSize = (v: number) => {\r\n pageSize.value = v;\r\n};\r\n\r\nconst materialList = computed(() => unref(materialTable).getList());\r\nconst materialTypes = computed(() => props.materialMan.getMaterialType());\r\nconst currentMaterialTypeId = computed(\r\n () => props.materialMan.currentMaterialTypeId\r\n);\r\n\r\nconst currentMaterialType = computed(\r\n () => props.materialMan.currentMaterialType\r\n);\r\n\r\nconst handleMaterialTypeClick = (materialType: MsMaterialType) => {\r\n if (materialType.value === unref(currentMaterialTypeId)) {\r\n return;\r\n }\r\n\r\n props.materialMan.setCurrentMaterialTypeId(materialType.value);\r\n};\r\n\r\nconst handleMaterialItemClick = (event: MouseEvent, material: MsMaterial) => {\r\n if (!props.selectable) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n value.value = material.path;\r\n emit(\"selectedChange\", material);\r\n};\r\n</script>\r\n"],"names":["computed","unref"],"mappings":"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"}
1
+ {"version":3,"file":"material-list.vue2.js","sources":["../../../../../../src/modules/ms/components/material-list/material-list.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-material-list\">\r\n <MaterialGroup :material-man=\"materialMan\" />\r\n <div class=\"mk-material-list__main\" v-loading=\"loading\">\r\n <div class=\"mk-material-list__header\">\r\n <div class=\"mk-material-list__header-left\">\r\n <div class=\"mk-material-list__types\">\r\n <div\r\n v-for=\"item of materialTypes\"\r\n :key=\"item.value\"\r\n :class=\"[\r\n 'mk-material-list__type',\r\n currentMaterialTypeId === item.value ? 'is-active' : '',\r\n ]\"\r\n @click=\"handleMaterialTypeClick(item)\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mk-material-list__header-right\">\r\n <template v-if=\"currentMaterialType\">\r\n <span>\r\n {{ currentMaterialType.label }}大小不超过\r\n {{ currentMaterialType.limit }} M\r\n </span>\r\n <MKWebFileUploadContext\r\n :web-file-upload=\"materialMan.upload\"\r\n :accept=\"currentMaterialType.accept\"\r\n >\r\n <MKUploadFile>\r\n <ElButton type=\"primary\">\r\n 选择{{ currentMaterialType.label }}\r\n </ElButton>\r\n </MKUploadFile>\r\n </MKWebFileUploadContext>\r\n </template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mk-material-list__body\">\r\n <ElScrollbar height=\"100%\">\r\n <div class=\"mk-material-list__wrapper\">\r\n <MaterialItem\r\n v-for=\"material of materialList\"\r\n :key=\"material.id\"\r\n :class=\"[\r\n 'mk-material-list__item',\r\n value === material.path ? 'is-current' : '',\r\n ]\"\r\n :material-table=\"materialTable\"\r\n :material=\"material\"\r\n @click.capture=\"handleMaterialItemClick($event, material)\"\r\n />\r\n </div>\r\n </ElScrollbar>\r\n <div class=\"mk-material-list__footer\">\r\n <ElPagination\r\n class=\"mk-data-table-pagination\"\r\n :background=\"true\"\r\n :pageSizes=\"unref(pageSizes)\"\r\n :currentPage=\"unref(currentPage)\"\r\n :pageSize=\"unref(pageSize)\"\r\n :total=\"unref(totalRecCount)\"\r\n layout=\"prev, pager, next\"\r\n @current-change=\"changeCurrentPage\"\r\n @size-change=\"changePageSize\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, unref } from \"vue\";\r\nimport { ElPagination } from \"element-plus\";\r\nimport { MsMaterialType, MsMaterial } from \"../../dataviews\";\r\nimport MaterialGroup from \"./material-group.vue\";\r\nimport MaterialItem from \"./material-item.vue\";\r\nimport { materialListProps, materialListEmits } from \"./material-list-options\";\r\n\r\ndefineOptions({ name: \"MKMaterialList\" });\r\n\r\nconst props = defineProps(materialListProps);\r\n\r\nconst emit = defineEmits(materialListEmits);\r\n\r\nprops.materialMan.init();\r\n\r\nconst loading = computed(() => props.materialMan.materialTable.loading);\r\n\r\nconst value = computed({\r\n get: () => {\r\n return props.selectable ? props.selectedPath ?? null : null;\r\n },\r\n set: (v) => {\r\n emit(\"update:selected-path\", v);\r\n },\r\n});\r\n\r\nconst materialTable = computed(() => props.materialMan.materialTable);\r\nconst pageSizes = computed(() => unref(materialTable).pageSizes);\r\nconst currentPage = computed({\r\n get: () => unref(materialTable).currentPage,\r\n set: (v) => {\r\n unref(materialTable).pageTo(v);\r\n },\r\n});\r\nconst pageSize = computed({\r\n get: () => unref(materialTable).pageSize,\r\n set: (v) => {\r\n unref(materialTable).setPageSize(v);\r\n },\r\n});\r\nconst totalRecCount = computed(() => unref(materialTable).totalRecCount);\r\nconst changeCurrentPage = (v: number) => {\r\n currentPage.value = v;\r\n};\r\nconst changePageSize = (v: number) => {\r\n pageSize.value = v;\r\n};\r\n\r\nconst materialList = computed(() => unref(materialTable).getList());\r\nconst materialTypes = computed(() => props.materialMan.getMaterialType());\r\nconst currentMaterialTypeId = computed(\r\n () => props.materialMan.currentMaterialTypeId\r\n);\r\n\r\nconst currentMaterialType = computed(\r\n () => props.materialMan.currentMaterialType\r\n);\r\n\r\nconst handleMaterialTypeClick = (materialType: MsMaterialType) => {\r\n if (materialType.value === unref(currentMaterialTypeId)) {\r\n return;\r\n }\r\n\r\n props.materialMan.setCurrentMaterialTypeId(materialType.value);\r\n};\r\n\r\nconst handleMaterialItemClick = (event: MouseEvent, material: MsMaterial) => {\r\n if (!props.selectable) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n value.value = material.path;\r\n emit(\"selectedChange\", material);\r\n};\r\n</script>\r\n"],"names":["computed","unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,IAAA,KAAA,CAAM,YAAY,IAAK,EAAA,CAAA;AAEvB,IAAA,MAAM,UAAUA,YAAS,CAAA,MAAM,KAAM,CAAA,WAAA,CAAY,cAAc,OAAO,CAAA,CAAA;AAEtE,IAAA,MAAM,QAAQA,YAAS,CAAA;AAAA,MACrB,KAAK,MAAM;AACT,QAAA,OAAO,KAAM,CAAA,UAAA,GAAa,KAAM,CAAA,YAAA,IAAgB,IAAO,GAAA,IAAA,CAAA;AAAA,OACzD;AAAA,MACA,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,QAAA,IAAA,CAAK,wBAAwB,CAAC,CAAA,CAAA;AAAA,OAChC;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,aAAgB,GAAAA,YAAA,CAAS,MAAM,KAAA,CAAM,YAAY,aAAa,CAAA,CAAA;AACpE,IAAA,MAAM,YAAYA,YAAS,CAAA,MAAMC,SAAM,CAAA,aAAa,EAAE,SAAS,CAAA,CAAA;AAC/D,IAAA,MAAM,cAAcD,YAAS,CAAA;AAAA,MAC3B,GAAK,EAAA,MAAMC,SAAM,CAAA,aAAa,CAAE,CAAA,WAAA;AAAA,MAChC,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,QAAMA,SAAA,CAAA,aAAa,CAAE,CAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,OAC/B;AAAA,KACD,CAAA,CAAA;AACD,IAAA,MAAM,WAAWD,YAAS,CAAA;AAAA,MACxB,GAAK,EAAA,MAAMC,SAAM,CAAA,aAAa,CAAE,CAAA,QAAA;AAAA,MAChC,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,QAAMA,SAAA,CAAA,aAAa,CAAE,CAAA,WAAA,CAAY,CAAC,CAAA,CAAA;AAAA,OACpC;AAAA,KACD,CAAA,CAAA;AACD,IAAA,MAAM,gBAAgBD,YAAS,CAAA,MAAMC,SAAM,CAAA,aAAa,EAAE,aAAa,CAAA,CAAA;AACvE,IAAM,MAAA,iBAAA,GAAoB,CAAC,CAAc,KAAA;AACvC,MAAA,WAAA,CAAY,KAAQ,GAAA,CAAA,CAAA;AAAA,KACtB,CAAA;AACA,IAAM,MAAA,cAAA,GAAiB,CAAC,CAAc,KAAA;AACpC,MAAA,QAAA,CAAS,KAAQ,GAAA,CAAA,CAAA;AAAA,KACnB,CAAA;AAEA,IAAA,MAAM,eAAeD,YAAS,CAAA,MAAMC,UAAM,aAAa,CAAA,CAAE,SAAS,CAAA,CAAA;AAClE,IAAA,MAAM,gBAAgBD,YAAS,CAAA,MAAM,KAAM,CAAA,WAAA,CAAY,iBAAiB,CAAA,CAAA;AACxE,IAAA,MAAM,qBAAwB,GAAAA,YAAA;AAAA,MAC5B,MAAM,MAAM,WAAY,CAAA,qBAAA;AAAA,KAC1B,CAAA;AAEA,IAAA,MAAM,mBAAsB,GAAAA,YAAA;AAAA,MAC1B,MAAM,MAAM,WAAY,CAAA,mBAAA;AAAA,KAC1B,CAAA;AAEA,IAAM,MAAA,uBAAA,GAA0B,CAAC,YAAiC,KAAA;AAChE,MAAA,IAAI,YAAa,CAAA,KAAA,KAAUC,SAAM,CAAA,qBAAqB,CAAG,EAAA;AACvD,QAAA,OAAA;AAAA,OACF;AAEA,MAAM,KAAA,CAAA,WAAA,CAAY,wBAAyB,CAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,KAC/D,CAAA;AAEA,IAAM,MAAA,uBAAA,GAA0B,CAAC,KAAA,EAAmB,QAAyB,KAAA;AAC3E,MAAI,IAAA,CAAC,MAAM,UAAY,EAAA;AACrB,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,MAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AAEtB,MAAA,KAAA,CAAM,QAAQ,QAAS,CAAA,IAAA,CAAA;AACvB,MAAA,IAAA,CAAK,kBAAkB,QAAQ,CAAA,CAAA;AAAA,KACjC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}