@maketribe/ms-app 3.0.11 → 3.0.12

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 (41) hide show
  1. package/dist/cjs/components/material-list/material-group-form-popover.vue2.js +8 -1
  2. package/dist/cjs/components/material-list/material-group-form-popover.vue2.js.map +1 -1
  3. package/dist/cjs/components/material-list/material-group.vue2.js +9 -7
  4. package/dist/cjs/components/material-list/material-group.vue2.js.map +1 -1
  5. package/dist/cjs/core/tabs/Tabs.js +1 -8
  6. package/dist/cjs/core/tabs/Tabs.js.map +1 -1
  7. package/dist/cjs/dataview/material/MaterialMan.d.ts +1 -1
  8. package/dist/cjs/dataview/material/MaterialMan.js +1 -1
  9. package/dist/cjs/dataview/material/MaterialMan.js.map +1 -1
  10. package/dist/cjs/dataview/member/MemberTable.js +13 -0
  11. package/dist/cjs/dataview/member/MemberTable.js.map +1 -1
  12. package/dist/cjs/dataview/menu/MenuTable.js.map +1 -1
  13. package/dist/cjs/page/index/dv/ms-member/index.vue2.js +4 -1
  14. package/dist/cjs/page/index/dv/ms-member/index.vue2.js.map +1 -1
  15. package/dist/esm/components/material-list/material-group-form-popover.vue2.js +8 -1
  16. package/dist/esm/components/material-list/material-group-form-popover.vue2.js.map +1 -1
  17. package/dist/esm/components/material-list/material-group.vue2.js +9 -7
  18. package/dist/esm/components/material-list/material-group.vue2.js.map +1 -1
  19. package/dist/esm/core/tabs/Tabs.js +1 -8
  20. package/dist/esm/core/tabs/Tabs.js.map +1 -1
  21. package/dist/esm/dataview/material/MaterialMan.d.ts +1 -1
  22. package/dist/esm/dataview/material/MaterialMan.js +1 -1
  23. package/dist/esm/dataview/material/MaterialMan.js.map +1 -1
  24. package/dist/esm/dataview/member/MemberTable.js +13 -0
  25. package/dist/esm/dataview/member/MemberTable.js.map +1 -1
  26. package/dist/esm/dataview/menu/MenuTable.js.map +1 -1
  27. package/dist/esm/page/index/dv/ms-member/index.vue2.js +4 -1
  28. package/dist/esm/page/index/dv/ms-member/index.vue2.js.map +1 -1
  29. package/dist/style/components/data-filter-popover.css +1 -1
  30. package/dist/style/components/index.css +1 -1
  31. package/dist/style/index.css +2 -2
  32. package/dist/style/src/components/data-filter-popover.scss +3 -3
  33. package/dist/style/src/index.scss +9 -0
  34. package/package.json +5 -5
  35. package/src/components/material-list/material-group-form-popover.vue +4 -2
  36. package/src/components/material-list/material-group.vue +13 -7
  37. package/src/core/tabs/Tabs.ts +14 -9
  38. package/src/dataview/material/MaterialMan.ts +1 -1
  39. package/src/dataview/member/MemberTable.tsx +10 -0
  40. package/src/dataview/menu/MenuTable.ts +1 -0
  41. package/src/page/index/dv/ms-member/index.vue +5 -0
@@ -8,6 +8,7 @@ require('@maketribe/dm');
8
8
  require('../../dataview/material/MaterialForm.js');
9
9
  require('../../dataview/material/MaterialTable.js');
10
10
  var MaterialMan = require('../../dataview/material/MaterialMan.js');
11
+ var index$1 = require('../data-model/data-form/views/form/index.js');
11
12
 
12
13
  const _hoisted_1 = { style: { "display": "flex", "align-items": "center", "justify-content": "space-between" } };
13
14
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
@@ -59,7 +60,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
59
60
  ]),
60
61
  default: vue.withCtx(() => [
61
62
  vue.createElementVNode("div", null, [
62
- vue.withDirectives(vue.createVNode(vue.unref(index.MKDataForm), { "data-form": __props.materialGroupForm }, null, 8, ["data-form"]), [
63
+ vue.withDirectives((vue.openBlock(), vue.createBlock(vue.unref(index.MKDataForm), { "data-form": __props.materialGroupForm }, {
64
+ default: vue.withCtx(() => [
65
+ vue.createVNode(vue.unref(index$1.MKForm), { "data-form": __props.materialGroupForm }, null, 8, ["data-form"])
66
+ ]),
67
+ _: 1
68
+ /* STABLE */
69
+ }, 8, ["data-form"])), [
63
70
  [_directive_loading, loading.value]
64
71
  ]),
65
72
  vue.createElementVNode("div", _hoisted_1, [
@@ -1 +1 @@
1
- {"version":3,"file":"material-group-form-popover.vue2.js","sources":["../../../../src/components/material-list/material-group-form-popover.vue"],"sourcesContent":["<template>\n <ElPopover\n v-model:visible=\"visible\"\n title=\"添加素材分组\"\n effect=\"light\"\n placement=\"right\"\n trigger=\"click\"\n width=\"320\"\n >\n <template #reference>\n <slot></slot>\n </template>\n\n <div>\n <MKDataForm :data-form=\"materialGroupForm\" v-loading=\"loading\" />\n <div\n style=\"\n display: flex;\n align-items: center;\n justify-content: space-between;\n \"\n >\n <ElButton\n type=\"primary\"\n :loading=\"!allowSubmit\"\n @click=\"handleSaveClick\"\n >\n 保存\n </ElButton>\n <ElButton @click=\"handleCancelClick\">取消</ElButton>\n </div>\n </div>\n </ElPopover>\n</template>\n\n<script setup lang=\"ts\">\nimport { Ref, computed, ref, unref } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport { MKDataForm } from \"../data-model/data-form\";\nimport { MaterialGroupForm, MaterialMan } from \"../../dataview/material\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n materialGroupForm: {\n type: MaterialGroupForm,\n required: true,\n },\n});\n\nconst visible: Ref<boolean> = ref(false);\n\nconst loading = computed(() => props.materialGroupForm.loading);\nconst allowSubmit = computed(\n () => !!(unref(loading) || !props.materialGroupForm.allowSubmit)\n);\n\nconst handleSaveClick = async () => {\n const result = await props.materialGroupForm.submit();\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n\n props.materialMan.materialGroupTree.load();\n\n visible.value = false;\n};\n\nconst handleCancelClick = () => {\n visible.value = false;\n};\n</script>\n"],"names":["ref","computed","unref","ElMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,IAAM,MAAA,OAAA,GAAwBA,QAAI,KAAK,CAAA,CAAA;AAEvC,IAAA,MAAM,OAAU,GAAAC,YAAA,CAAS,MAAM,KAAA,CAAM,kBAAkB,OAAO,CAAA,CAAA;AAC9D,IAAA,MAAM,WAAc,GAAAA,YAAA;AAAA,MAClB,MAAM,CAAC,EAAEC,SAAA,CAAM,OAAO,CAAK,IAAA,CAAC,MAAM,iBAAkB,CAAA,WAAA,CAAA;AAAA,KACtD,CAAA;AAEA,IAAA,MAAM,kBAAkB,YAAY;AAClC,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,iBAAA,CAAkB,MAAO,EAAA,CAAA;AAEpD,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAUC,qBAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAEA,MAAM,KAAA,CAAA,WAAA,CAAY,kBAAkB,IAAK,EAAA,CAAA;AAEzC,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"material-group-form-popover.vue2.js","sources":["../../../../src/components/material-list/material-group-form-popover.vue"],"sourcesContent":["<template>\n <ElPopover\n v-model:visible=\"visible\"\n title=\"添加素材分组\"\n effect=\"light\"\n placement=\"right\"\n trigger=\"click\"\n width=\"320\"\n >\n <template #reference>\n <slot></slot>\n </template>\n\n <div>\n <MKDataForm :data-form=\"materialGroupForm\" v-loading=\"loading\">\n <MKForm :data-form=\"materialGroupForm\" />\n </MKDataForm>\n <div\n style=\"\n display: flex;\n align-items: center;\n justify-content: space-between;\n \"\n >\n <ElButton\n type=\"primary\"\n :loading=\"!allowSubmit\"\n @click=\"handleSaveClick\"\n >\n 保存\n </ElButton>\n <ElButton @click=\"handleCancelClick\">取消</ElButton>\n </div>\n </div>\n </ElPopover>\n</template>\n\n<script setup lang=\"ts\">\nimport { Ref, computed, ref, unref } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport { MKDataForm, MKForm } from \"../data-model/data-form\";\nimport { MaterialGroupForm, MaterialMan } from \"../../dataview/material\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n materialGroupForm: {\n type: MaterialGroupForm,\n required: true,\n },\n});\n\nconst visible: Ref<boolean> = ref(false);\n\nconst loading = computed(() => props.materialGroupForm.loading);\nconst allowSubmit = computed(\n () => !!(unref(loading) || !props.materialGroupForm.allowSubmit)\n);\n\nconst handleSaveClick = async () => {\n const result = await props.materialGroupForm.submit();\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n\n props.materialMan.materialGroupTree.load();\n\n visible.value = false;\n};\n\nconst handleCancelClick = () => {\n visible.value = false;\n};\n</script>\n"],"names":["ref","computed","unref","ElMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,IAAM,MAAA,OAAA,GAAwBA,QAAI,KAAK,CAAA,CAAA;AAEvC,IAAA,MAAM,OAAU,GAAAC,YAAA,CAAS,MAAM,KAAA,CAAM,kBAAkB,OAAO,CAAA,CAAA;AAC9D,IAAA,MAAM,WAAc,GAAAA,YAAA;AAAA,MAClB,MAAM,CAAC,EAAEC,SAAA,CAAM,OAAO,CAAK,IAAA,CAAC,MAAM,iBAAkB,CAAA,WAAA,CAAA;AAAA,KACtD,CAAA;AAEA,IAAA,MAAM,kBAAkB,YAAY;AAClC,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,iBAAA,CAAkB,MAAO,EAAA,CAAA;AAEpD,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAUC,qBAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAEA,MAAM,KAAA,CAAA,WAAA,CAAY,kBAAkB,IAAK,EAAA,CAAA;AAEzC,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -81,7 +81,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
81
81
  const loading = vue.computed(() => props.materialMan.materialGroupTree.loading);
82
82
  const handleNodeClick = (item) => {
83
83
  if (!item.children.length) {
84
- props.materialMan.setCurrentMaterialGroupId(item);
84
+ props.materialMan.setCurrentMaterialGroup(item.data);
85
85
  }
86
86
  };
87
87
  const handleAddClick = async (parent) => {
@@ -146,11 +146,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
146
146
  vue.createVNode(vue.unref(index.MKDataTable), {
147
147
  "auto-load": false,
148
148
  "data-table": materialGroupTree.value,
149
- "highlight-current": "",
150
- onNodeClick: handleNodeClick
149
+ "highlight-current": ""
151
150
  }, {
152
151
  default: vue.withCtx(() => [
153
- vue.createVNode(vue.unref(index$1.MKTree), { "data-tree": materialGroupTree.value }, {
152
+ vue.createVNode(vue.unref(index$1.MKTree), {
153
+ "data-tree": materialGroupTree.value,
154
+ onNodeClick: handleNodeClick
155
+ }, {
154
156
  "node-tools": vue.withCtx(({ data }) => [
155
157
  vue.createElementVNode("div", {
156
158
  class: "mk-material-group__tools",
@@ -169,7 +171,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
169
171
  }, {
170
172
  default: vue.withCtx(() => [
171
173
  vue.createVNode(_component_ElIcon, {
172
- onClick: ($event) => handleAddClick(data)
174
+ onClick: ($event) => handleAddClick(data.data)
173
175
  }, {
174
176
  default: vue.withCtx(() => [
175
177
  vue.createVNode(vue.unref(icons.Plus))
@@ -201,7 +203,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
201
203
  }, {
202
204
  default: vue.withCtx(() => [
203
205
  vue.createVNode(_component_ElIcon, {
204
- onClick: ($event) => handleEditClick(data)
206
+ onClick: ($event) => handleEditClick(data.data)
205
207
  }, {
206
208
  default: vue.withCtx(() => [
207
209
  vue.createVNode(vue.unref(icons.Edit))
@@ -228,7 +230,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
228
230
  default: vue.withCtx(() => [
229
231
  vue.createElementVNode("span", _hoisted_7, [
230
232
  vue.createVNode(_component_ElIcon, {
231
- onClick: ($event) => handleDeleteClick(data)
233
+ onClick: ($event) => handleDeleteClick(data.data)
232
234
  }, {
233
235
  default: vue.withCtx(() => [
234
236
  vue.createVNode(vue.unref(icons.Delete))
@@ -1 +1 @@
1
- {"version":3,"file":"material-group.vue2.js","sources":["../../../../src/components/material-list/material-group.vue"],"sourcesContent":["<template>\n <div class=\"mk-material-group\" v-loading=\"loading\">\n <div class=\"mk-material-group__header\">\n <div class=\"mk-material-group__header-title\">素材分组</div>\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElButton\n @click=\"handleAddClick\"\n :icon=\"Plus\"\n size=\"small\"\n type=\"primary\"\n >\n </ElButton>\n </MaterialGroupFromPopper>\n </div>\n <div class=\"mk-material-group__main\">\n <ElScrollbar height=\"100%\">\n <MKDataTable\n :auto-load=\"false\"\n :data-table=\"materialGroupTree\"\n highlight-current\n @nodeClick=\"handleNodeClick\"\n >\n <MKTree :data-tree=\"materialGroupTree\">\n <template #node-tools=\"{ data }\">\n <div class=\"mk-material-group__tools\" @click.stop>\n <ElTooltip content=\"添加\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleAddClick(data)\"><Plus /></ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"编辑\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleEditClick(data)\"><Edit /></ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"删除\">\n <span class=\"mk-material-group__tools-item\">\n <ElIcon @click=\"handleDeleteClick(data)\"><Delete /></ElIcon>\n </span>\n </ElTooltip>\n </div>\n </template>\n </MKTree>\n </MKDataTable>\n </ElScrollbar>\n </div>\n <div class=\"mk-material-group__footer\"></div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, reactive } from \"vue\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { Plus, Edit, Delete } from \"@element-plus/icons-vue\";\nimport {\n MaterialMan,\n MaterialGroupNode,\n MaterialGroupForm,\n} from \"../../dataview\";\nimport { MKDataTable, MKTree } from \"../data-model/data-table\";\n\nimport { useI18n } from \"../../composables\";\nimport MaterialGroupFromPopper from \"./material-group-form-popover.vue\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n});\n\nconst i18n = useI18n()!;\n\nconst materialGroupForm = reactive(\n new MaterialGroupForm()\n) as MaterialGroupForm;\n\nconst materialGroupTree = computed(() => props.materialMan.materialGroupTree);\n\nconst loading = computed(() => props.materialMan.materialGroupTree.loading);\n\nconst handleNodeClick = (item: MaterialGroupNode) => {\n if (!item.children.length) {\n props.materialMan.setCurrentMaterialGroupId(item);\n }\n};\n\nconst handleAddClick = async (parent?: MaterialGroupNode) => {\n materialGroupForm.addRecord();\n\n await nextTick();\n\n materialGroupForm.setData({\n ...materialGroupForm.data,\n parentGroupId: parent?.id || null,\n } as MaterialGroupNode);\n};\n\nconst handleEditClick = (item: MaterialGroupNode) => {\n materialGroupForm.editRecord(item);\n};\n\nconst handleDeleteClick = async (item: MaterialGroupNode) => {\n const isConfirm = await ElMessageBox.confirm(\n i18n.translate(\"mk.dataTablePage.deleteMessage\"),\n i18n.translate(\"mk.dataTablePage.deleteTitle\"),\n { type: \"warning\" }\n ).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n const result = await props.materialMan.materialGroupTree.deleteAfterRefresh(\n item\n );\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n};\n</script>\n"],"names":["useI18n","reactive","MaterialGroupForm","computed","nextTick","ElMessageBox","ElMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,IAAA,MAAM,OAAOA,eAAQ,EAAA,CAAA;AAErB,IAAA,MAAM,iBAAoB,GAAAC,YAAA;AAAA,MACxB,IAAIC,mCAAkB,EAAA;AAAA,KACxB,CAAA;AAEA,IAAA,MAAM,iBAAoB,GAAAC,YAAA,CAAS,MAAM,KAAA,CAAM,YAAY,iBAAiB,CAAA,CAAA;AAE5E,IAAA,MAAM,UAAUA,YAAS,CAAA,MAAM,KAAM,CAAA,WAAA,CAAY,kBAAkB,OAAO,CAAA,CAAA;AAE1E,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA4B,KAAA;AACnD,MAAI,IAAA,CAAC,IAAK,CAAA,QAAA,CAAS,MAAQ,EAAA;AACzB,QAAM,KAAA,CAAA,WAAA,CAAY,0BAA0B,IAAI,CAAA,CAAA;AAAA,OAClD;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,cAAA,GAAiB,OAAO,MAA+B,KAAA;AAC3D,MAAA,iBAAA,CAAkB,SAAU,EAAA,CAAA;AAE5B,MAAA,MAAMC,YAAS,EAAA,CAAA;AAEf,MAAA,iBAAA,CAAkB,OAAQ,CAAA;AAAA,QACxB,GAAG,iBAAkB,CAAA,IAAA;AAAA,QACrB,aAAA,EAAe,QAAQ,EAAM,IAAA,IAAA;AAAA,OACT,CAAA,CAAA;AAAA,KACxB,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA4B,KAAA;AACnD,MAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,KACnC,CAAA;AAEA,IAAM,MAAA,iBAAA,GAAoB,OAAO,IAA4B,KAAA;AAC3D,MAAM,MAAA,SAAA,GAAY,MAAMC,wBAAa,CAAA,OAAA;AAAA,QACnC,IAAA,CAAK,UAAU,gCAAgC,CAAA;AAAA,QAC/C,IAAA,CAAK,UAAU,8BAA8B,CAAA;AAAA,QAC7C,EAAE,MAAM,SAAU,EAAA;AAAA,OAClB,CAAA,IAAA;AAAA,QACA,MAAM,IAAA;AAAA,QACN,MAAM,KAAA;AAAA,OACR,CAAA;AAEA,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,WAAA,CAAY,iBAAkB,CAAA,kBAAA;AAAA,QACvD,IAAA;AAAA,OACF,CAAA;AAEA,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAUC,qBAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"material-group.vue2.js","sources":["../../../../src/components/material-list/material-group.vue"],"sourcesContent":["<template>\n <div class=\"mk-material-group\" v-loading=\"loading\">\n <div class=\"mk-material-group__header\">\n <div class=\"mk-material-group__header-title\">素材分组</div>\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElButton\n @click=\"handleAddClick\"\n :icon=\"Plus\"\n size=\"small\"\n type=\"primary\"\n >\n </ElButton>\n </MaterialGroupFromPopper>\n </div>\n <div class=\"mk-material-group__main\">\n <ElScrollbar height=\"100%\">\n <MKDataTable\n :auto-load=\"false\"\n :data-table=\"materialGroupTree\"\n highlight-current\n >\n <MKTree :data-tree=\"materialGroupTree\" @nodeClick=\"handleNodeClick\">\n <template #node-tools=\"{ data }\">\n <div class=\"mk-material-group__tools\" @click.stop>\n <ElTooltip content=\"添加\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleAddClick(data.data)\">\n <Plus />\n </ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"编辑\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleEditClick(data.data)\">\n <Edit />\n </ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"删除\">\n <span class=\"mk-material-group__tools-item\">\n <ElIcon @click=\"handleDeleteClick(data.data)\">\n <Delete />\n </ElIcon>\n </span>\n </ElTooltip>\n </div>\n </template>\n </MKTree>\n </MKDataTable>\n </ElScrollbar>\n </div>\n <div class=\"mk-material-group__footer\"></div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, reactive } from \"vue\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { Plus, Edit, Delete } from \"@element-plus/icons-vue\";\nimport {\n MaterialMan,\n MaterialGroupNode,\n MaterialGroupForm,\n} from \"../../dataview\";\nimport { MKDataTable, MKTree } from \"../data-model/data-table\";\n\nimport { useI18n } from \"../../composables\";\nimport MaterialGroupFromPopper from \"./material-group-form-popover.vue\";\nimport { DataTreeNode } from \"@maketribe/dm\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n});\n\nconst i18n = useI18n()!;\n\nconst materialGroupForm = reactive(\n new MaterialGroupForm()\n) as MaterialGroupForm;\n\nconst materialGroupTree = computed(() => props.materialMan.materialGroupTree);\n\nconst loading = computed(() => props.materialMan.materialGroupTree.loading);\n\nconst handleNodeClick = (item: DataTreeNode<MaterialGroupNode>) => {\n if (!item.children.length) {\n props.materialMan.setCurrentMaterialGroup(item.data);\n }\n};\n\nconst handleAddClick = async (parent?: MaterialGroupNode) => {\n materialGroupForm.addRecord();\n\n await nextTick();\n\n materialGroupForm.setData({\n ...materialGroupForm.data,\n parentGroupId: parent?.id || null,\n } as MaterialGroupNode);\n};\n\nconst handleEditClick = (item: MaterialGroupNode) => {\n materialGroupForm.editRecord(item);\n};\n\nconst handleDeleteClick = async (item: MaterialGroupNode) => {\n const isConfirm = await ElMessageBox.confirm(\n i18n.translate(\"mk.dataTablePage.deleteMessage\"),\n i18n.translate(\"mk.dataTablePage.deleteTitle\"),\n { type: \"warning\" }\n ).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n const result = await props.materialMan.materialGroupTree.deleteAfterRefresh(\n item\n );\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n};\n</script>\n"],"names":["useI18n","reactive","MaterialGroupForm","computed","nextTick","ElMessageBox","ElMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA,IAAA,MAAM,OAAOA,eAAQ,EAAA,CAAA;AAErB,IAAA,MAAM,iBAAoB,GAAAC,YAAA;AAAA,MACxB,IAAIC,mCAAkB,EAAA;AAAA,KACxB,CAAA;AAEA,IAAA,MAAM,iBAAoB,GAAAC,YAAA,CAAS,MAAM,KAAA,CAAM,YAAY,iBAAiB,CAAA,CAAA;AAE5E,IAAA,MAAM,UAAUA,YAAS,CAAA,MAAM,KAAM,CAAA,WAAA,CAAY,kBAAkB,OAAO,CAAA,CAAA;AAE1E,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA0C,KAAA;AACjE,MAAI,IAAA,CAAC,IAAK,CAAA,QAAA,CAAS,MAAQ,EAAA;AACzB,QAAM,KAAA,CAAA,WAAA,CAAY,uBAAwB,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,OACrD;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,cAAA,GAAiB,OAAO,MAA+B,KAAA;AAC3D,MAAA,iBAAA,CAAkB,SAAU,EAAA,CAAA;AAE5B,MAAA,MAAMC,YAAS,EAAA,CAAA;AAEf,MAAA,iBAAA,CAAkB,OAAQ,CAAA;AAAA,QACxB,GAAG,iBAAkB,CAAA,IAAA;AAAA,QACrB,aAAA,EAAe,QAAQ,EAAM,IAAA,IAAA;AAAA,OACT,CAAA,CAAA;AAAA,KACxB,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA4B,KAAA;AACnD,MAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,KACnC,CAAA;AAEA,IAAM,MAAA,iBAAA,GAAoB,OAAO,IAA4B,KAAA;AAC3D,MAAM,MAAA,SAAA,GAAY,MAAMC,wBAAa,CAAA,OAAA;AAAA,QACnC,IAAA,CAAK,UAAU,gCAAgC,CAAA;AAAA,QAC/C,IAAA,CAAK,UAAU,8BAA8B,CAAA;AAAA,QAC7C,EAAE,MAAM,SAAU,EAAA;AAAA,OAClB,CAAA,IAAA;AAAA,QACA,MAAM,IAAA;AAAA,QACN,MAAM,KAAA;AAAA,OACR,CAAA;AAEA,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,WAAA,CAAY,iBAAkB,CAAA,kBAAA;AAAA,QACvD,IAAA;AAAA,OACF,CAAA;AAEA,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAUC,qBAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -70,15 +70,8 @@ class Tabs extends utils.Disposable {
70
70
  this.tabsChangeEvent.emit({ tabs });
71
71
  }
72
72
  switchTab(tab) {
73
- if (!tab) {
74
- this.setCurrentTab(null);
75
- return;
76
- }
77
- let _tab = this._tabs.find((item) => item.getID() === tab.getID());
78
- if (!_tab) {
79
- this.setTabs([...this.getTabs(), tab]);
80
- }
81
73
  this.setCurrentTab(tab);
74
+ return;
82
75
  }
83
76
  findTabByID(id) {
84
77
  return this.getTabs().find((tab) => tab.id === id) ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../src/core/tabs/Tabs.ts"],"sourcesContent":["import { Disposable, Event } from \"@maketribe/utils\";\nimport { Tab, TabOptions } from \"./Tab\";\nimport type { UserSession } from \"../UserSession\";\n\nexport class Tabs extends Disposable {\n userSession: UserSession;\n\n _tabs: Tab[] = [];\n _currentTab: Tab | null = null;\n\n currentTabChangeEvent: Event<{ currentTab: Tab | null }> = this.register(\n new Event()\n );\n tabsChangeEvent: Event<{ tabs: Tab[] }> = this.register(new Event());\n\n constructor(userSession: UserSession) {\n super();\n this.userSession = userSession;\n }\n\n init() {\n const getAffixRoutes = () => {\n let routes = this.userSession.vueRouter.getRoutes().slice();\n\n const affixRoutes: any[] = [];\n\n for (let i = 0; i < routes.length; i++) {\n const route = routes[i];\n\n if (route.meta?.affix === true) {\n affixRoutes.push(route);\n }\n }\n\n return affixRoutes;\n };\n\n const getAffixTabs = () => {\n return getAffixRoutes()\n .map((affixRoute) => {\n const route = this.userSession.router.getRouteByName(\n affixRoute.name as string\n );\n\n if (!route) {\n return null;\n }\n\n return this.createTab({\n id: affixRoute.path,\n title: route.title,\n affix: true,\n route: route,\n realRoute: affixRoute,\n });\n })\n .filter(Boolean) as Tab[];\n };\n\n this.setTabs(getAffixTabs());\n }\n\n getTabs() {\n return this._tabs;\n }\n\n getCurrentTab() {\n return this._currentTab;\n }\n\n setCurrentTab(tab: Tab | null) {\n if (this._currentTab === tab) {\n return;\n }\n\n this._currentTab = tab;\n\n this.currentTabChangeEvent.emit({ currentTab: tab });\n }\n\n getTabByID(id: string) {\n return this._tabs.find((tab) => tab.id === id) ?? null;\n }\n\n createTab(options: Omit<TabOptions, \"tabs\">) {\n return this.register(new Tab({ ...options, tabs: this }));\n }\n\n setTabs(tabs: Tab[]): void {\n this._tabs = tabs;\n\n this.tabsChangeEvent.emit({ tabs });\n }\n\n switchTab(tab: Tab | null) {\n if (!tab) {\n this.setCurrentTab(null);\n return;\n }\n\n let _tab = this._tabs.find((item) => item.getID() === tab.getID());\n\n if (!_tab) {\n this.setTabs([...this.getTabs(), tab]);\n }\n\n this.setCurrentTab(tab);\n }\n\n findTabByID(id: Tab[\"id\"]) {\n return this.getTabs().find((tab) => tab.id === id) ?? null;\n }\n\n async closeTab(tab: Tab) {\n if ((await tab.beforeCloseEvent.emitAsync()) === false) {\n return;\n }\n\n const tabItemList = this.getTabs().slice();\n\n if (this.getCurrentTab()?.getID() !== tab.getID()) {\n this.setTabs(tabItemList.filter((item) => item.getID() !== tab.getID()));\n\n return;\n }\n\n const index = tabItemList.findIndex((item) => item.getID() === tab.getID());\n\n if (index === -1) {\n return;\n }\n\n const deleteTab = tabItemList[index];\n deleteTab.dispose();\n\n tabItemList.splice(index, 1);\n this.setTabs(tabItemList);\n\n this.setCurrentTab(this._tabs[this._tabs.length - 1] ?? null);\n }\n\n closeAll() {\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n this.setTabs(affixTabs);\n this.setCurrentTab(affixTabs[0]);\n return;\n }\n\n this.setTabs([this.getCurrentTab() ?? this.getTabs()[0]]);\n this.setCurrentTab(this.getTabs()[0]);\n }\n\n closeOther() {\n const currentTab = this.getCurrentTab();\n\n if (!currentTab) {\n return;\n }\n\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n if (affixTabs.find((item) => item.getID() === currentTab.getID())) {\n this.setTabs(affixTabs);\n } else {\n this.setTabs([...affixTabs, currentTab]);\n }\n\n return;\n }\n\n this.setTabs([currentTab]);\n }\n}\n"],"names":["Disposable","Event","Tab"],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/core/tabs/Tabs.ts"],"sourcesContent":["import { Disposable, Event } from \"@maketribe/utils\";\nimport { Tab, TabOptions } from \"./Tab\";\nimport type { UserSession } from \"../UserSession\";\n\nexport class Tabs extends Disposable {\n userSession: UserSession;\n\n _tabs: Tab[] = [];\n _currentTab: Tab | null = null;\n\n currentTabChangeEvent: Event<{ currentTab: Tab | null }> = this.register(\n new Event()\n );\n tabsChangeEvent: Event<{ tabs: Tab[] }> = this.register(new Event());\n\n constructor(userSession: UserSession) {\n super();\n this.userSession = userSession;\n }\n\n init() {\n const getAffixRoutes = () => {\n let routes = this.userSession.vueRouter.getRoutes().slice();\n\n const affixRoutes: any[] = [];\n\n for (let i = 0; i < routes.length; i++) {\n const route = routes[i];\n\n if (route.meta?.affix === true) {\n affixRoutes.push(route);\n }\n }\n\n return affixRoutes;\n };\n\n const getAffixTabs = () => {\n return getAffixRoutes()\n .map((affixRoute) => {\n const route = this.userSession.router.getRouteByName(\n affixRoute.name as string\n );\n\n if (!route) {\n return null;\n }\n\n return this.createTab({\n id: affixRoute.path,\n title: route.title,\n affix: true,\n route: route,\n realRoute: affixRoute,\n });\n })\n .filter(Boolean) as Tab[];\n };\n\n this.setTabs(getAffixTabs());\n }\n\n getTabs() {\n return this._tabs;\n }\n\n getCurrentTab() {\n return this._currentTab;\n }\n\n setCurrentTab(tab: Tab | null) {\n if (this._currentTab === tab) {\n return;\n }\n\n this._currentTab = tab;\n\n this.currentTabChangeEvent.emit({ currentTab: tab });\n }\n\n getTabByID(id: string) {\n return this._tabs.find((tab) => tab.id === id) ?? null;\n }\n\n createTab(options: Omit<TabOptions, \"tabs\">) {\n return this.register(new Tab({ ...options, tabs: this }));\n }\n\n setTabs(tabs: Tab[]): void {\n this._tabs = tabs;\n\n this.tabsChangeEvent.emit({ tabs });\n }\n\n switchTab(tab: Tab | null) {\n // TODO 暂时用不到Tab\n \n this.setCurrentTab(tab);\n return;\n\n // if (!tab) {\n // this.setCurrentTab(null);\n // return;\n // }\n\n // let _tab = this._tabs.find((item) => item.getID() === tab.getID());\n\n // if (!_tab) {\n // this.setTabs([...this.getTabs(), tab]);\n // }\n\n // this.setCurrentTab(tab);\n }\n\n findTabByID(id: Tab[\"id\"]) {\n return this.getTabs().find((tab) => tab.id === id) ?? null;\n }\n\n async closeTab(tab: Tab) {\n if ((await tab.beforeCloseEvent.emitAsync()) === false) {\n return;\n }\n\n const tabItemList = this.getTabs().slice();\n\n if (this.getCurrentTab()?.getID() !== tab.getID()) {\n this.setTabs(tabItemList.filter((item) => item.getID() !== tab.getID()));\n\n return;\n }\n\n const index = tabItemList.findIndex((item) => item.getID() === tab.getID());\n\n if (index === -1) {\n return;\n }\n\n const deleteTab = tabItemList[index];\n deleteTab.dispose();\n\n tabItemList.splice(index, 1);\n this.setTabs(tabItemList);\n\n this.setCurrentTab(this._tabs[this._tabs.length - 1] ?? null);\n }\n\n closeAll() {\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n this.setTabs(affixTabs);\n this.setCurrentTab(affixTabs[0]);\n return;\n }\n\n this.setTabs([this.getCurrentTab() ?? this.getTabs()[0]]);\n this.setCurrentTab(this.getTabs()[0]);\n }\n\n closeOther() {\n const currentTab = this.getCurrentTab();\n\n if (!currentTab) {\n return;\n }\n\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n if (affixTabs.find((item) => item.getID() === currentTab.getID())) {\n this.setTabs(affixTabs);\n } else {\n this.setTabs([...affixTabs, currentTab]);\n }\n\n return;\n }\n\n this.setTabs([currentTab]);\n }\n}\n"],"names":["Disposable","Event","Tab"],"mappings":"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"}
@@ -25,7 +25,7 @@ export declare class MaterialMan {
25
25
  init(): Promise<void>;
26
26
  setAllowAccessMaterialTypeValues(materialTypeValues: MaterialType["value"][]): void;
27
27
  getMaterialType(): MaterialType[];
28
- setCurrentMaterialGroupId(materialGroup: MaterialGroupNode | null): void;
28
+ setCurrentMaterialGroup(materialGroup: MaterialGroupNode | null): void;
29
29
  setCurrentMaterialTypeId(materialTypeId: MaterialType["value"] | null): void;
30
30
  protected attachMaterialTableCondition(): void;
31
31
  }
@@ -96,7 +96,7 @@ class MaterialMan {
96
96
  (materialType) => this.materialTypeValues.includes(materialType.value)
97
97
  );
98
98
  }
99
- setCurrentMaterialGroupId(materialGroup) {
99
+ setCurrentMaterialGroup(materialGroup) {
100
100
  this.materialGroupTree.setCurrentNode(
101
101
  materialGroup ? this.materialGroupTree.findDataTreeNode(materialGroup) : null
102
102
  );
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialMan.js","sources":["../../../../src/dataview/material/MaterialMan.ts"],"sourcesContent":["import { Group, OrderType } from \"@maketribe/request\";\nimport { IComponents, WhereFilter } from \"@maketribe/dm\";\nimport { MaterialTable, MaterialType } from \"./MaterialTable\";\nimport {\n MaterialGroup,\n MaterialGroupNode,\n MaterialGroupTree,\n // MaterialGroupTable,\n} from \"./material-group\";\nimport { UploadError, WebFileUpload, HttpRequest } from \"@maketribe/request\";\nimport { MaterialForm } from \"./MaterialForm\";\n\nexport type MaterialManOptions = {\n components: IComponents;\n httpRequest?: HttpRequest;\n};\n\nexport class MaterialMan {\n // currentMaterialGroupId: MaterialGroup[\"id\"] | null;\n currentMaterialTypeId: MaterialType[\"value\"] | null;\n\n materialTypes: MaterialType[] = [];\n materialTypeValues: MaterialType[\"value\"][] = [];\n\n materialGroupTree: MaterialGroupTree;\n materialTable: MaterialTable;\n materialForm: MaterialForm;\n\n protected initing: boolean = false;\n protected initd: boolean = false;\n\n upload: WebFileUpload;\n\n protected materialConditionGroup: Group;\n\n get currentMaterialGroupId() {\n return this.materialGroupTree.getCurrentNode()?.data?.id ?? null;\n }\n\n get currentMaterialType() {\n return (\n this.materialTypes.find(\n (materialType) => materialType.value === this.currentMaterialTypeId\n ) ?? null\n );\n }\n\n constructor(options: MaterialManOptions) {\n this.materialGroupTree = new MaterialGroupTree();\n // this.materialGroupTable = new MaterialGroupTable();\n this.materialTable = new MaterialTable({\n materialComponents: options.components,\n });\n this.materialForm = new MaterialForm();\n\n this.materialConditionGroup = new Group();\n\n (this.materialTable.dataFilter as WhereFilter)\n .getWhere()\n .addGroup(this.materialConditionGroup);\n\n (this.materialTable.dataFilter as WhereFilter)\n .getOrder()\n .addOrderItem(\"createDate\", OrderType.DESC);\n\n // this.materialGroupTable.dataFilter.setReady();\n this.materialTable.dataFilter.setReady();\n\n this.upload = new WebFileUpload({\n filters: [\n (file) => {\n if (!this.currentMaterialType) {\n throw new UploadError(\"不能上传文件,素材类型无效\");\n }\n\n if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {\n throw new UploadError(\"文件太大不能上传\");\n }\n },\n ],\n httpRequest: options.httpRequest,\n });\n\n // this.currentMaterialGroupId = null;\n this.currentMaterialTypeId = null;\n }\n\n async init() {\n if (this.initing || this.initd) {\n return;\n }\n this.initing = true;\n\n this.upload.uploadEvent.on(({ uploadItem }) => {\n uploadItem.completeEvent.once(async () => {\n await this.materialForm.addRecord();\n\n this.materialForm.setData({\n id: \"\",\n materialGroupId: this.currentMaterialGroupId,\n type: this.currentMaterialTypeId!,\n desc: uploadItem.payload.name,\n path: uploadItem.response!.data.data.path,\n });\n\n const submitResullt = await this.materialForm.submit();\n\n if (submitResullt.data.code !== 200) {\n return;\n }\n\n this.materialTable.load();\n });\n });\n\n await this.materialGroupTree.init();\n await this.materialGroupTree.load();\n\n await this.materialForm.init();\n\n // const getFirstMaterialGroupNode = (\n // materialGroupNodes: MaterialGroupNode[]\n // ): MaterialGroupNode => {\n // if (materialGroupNodes[0].children.length) {\n // return getFirstMaterialGroupNode(materialGroupNodes[0].children);\n // }\n\n // return materialGroupNodes[0];\n // };\n\n // const materialGroupList = this.materialGroupTree.getList();\n\n // if (!materialGroupList.length) {\n // return;\n // }\n\n // this.currentMaterialGroupId =\n // getFirstMaterialGroupNode(materialGroupList).id;\n\n await this.materialTable.init();\n\n this.materialTypes = this.materialTable.getMaterialTypes();\n\n if (this.materialTypes.length) {\n this.currentMaterialTypeId = this.materialTypes[0].value;\n }\n\n this.attachMaterialTableCondition();\n\n this.initing = false;\n this.initd = true;\n }\n\n setAllowAccessMaterialTypeValues(\n materialTypeValues: MaterialType[\"value\"][]\n ) {\n this.materialTypeValues = materialTypeValues;\n }\n\n getMaterialType() {\n if (!this.materialTypeValues.length) {\n return this.materialTypes;\n }\n\n return this.materialTypes.filter((materialType) =>\n this.materialTypeValues.includes(materialType.value)\n );\n }\n\n setCurrentMaterialGroupId(materialGroup: MaterialGroupNode | null) {\n this.materialGroupTree.setCurrentNode(\n materialGroup\n ? this.materialGroupTree.findDataTreeNode(materialGroup)\n : null\n );\n\n this.attachMaterialTableCondition();\n }\n\n setCurrentMaterialTypeId(materialTypeId: MaterialType[\"value\"] | null) {\n this.currentMaterialTypeId = materialTypeId;\n\n this.attachMaterialTableCondition();\n }\n\n protected attachMaterialTableCondition() {\n this.materialConditionGroup.clear();\n\n if (this.currentMaterialGroupId) {\n this.materialConditionGroup.addCondition(\n \"materialGroupId\",\n \"=\",\n this.currentMaterialGroupId\n );\n }\n\n if (this.currentMaterialTypeId) {\n this.materialConditionGroup.addCondition(\n \"type\",\n \"=\",\n this.currentMaterialTypeId\n );\n }\n\n this.materialTable.load();\n }\n}\n"],"names":["MaterialGroupTree","MaterialTable","MaterialForm","Group","OrderType","WebFileUpload","UploadError"],"mappings":"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"}
1
+ {"version":3,"file":"MaterialMan.js","sources":["../../../../src/dataview/material/MaterialMan.ts"],"sourcesContent":["import { Group, OrderType } from \"@maketribe/request\";\nimport { IComponents, WhereFilter } from \"@maketribe/dm\";\nimport { MaterialTable, MaterialType } from \"./MaterialTable\";\nimport {\n MaterialGroup,\n MaterialGroupNode,\n MaterialGroupTree,\n // MaterialGroupTable,\n} from \"./material-group\";\nimport { UploadError, WebFileUpload, HttpRequest } from \"@maketribe/request\";\nimport { MaterialForm } from \"./MaterialForm\";\n\nexport type MaterialManOptions = {\n components: IComponents;\n httpRequest?: HttpRequest;\n};\n\nexport class MaterialMan {\n // currentMaterialGroupId: MaterialGroup[\"id\"] | null;\n currentMaterialTypeId: MaterialType[\"value\"] | null;\n\n materialTypes: MaterialType[] = [];\n materialTypeValues: MaterialType[\"value\"][] = [];\n\n materialGroupTree: MaterialGroupTree;\n materialTable: MaterialTable;\n materialForm: MaterialForm;\n\n protected initing: boolean = false;\n protected initd: boolean = false;\n\n upload: WebFileUpload;\n\n protected materialConditionGroup: Group;\n\n get currentMaterialGroupId() {\n return this.materialGroupTree.getCurrentNode()?.data?.id ?? null;\n }\n\n get currentMaterialType() {\n return (\n this.materialTypes.find(\n (materialType) => materialType.value === this.currentMaterialTypeId\n ) ?? null\n );\n }\n\n constructor(options: MaterialManOptions) {\n this.materialGroupTree = new MaterialGroupTree();\n // this.materialGroupTable = new MaterialGroupTable();\n this.materialTable = new MaterialTable({\n materialComponents: options.components,\n });\n this.materialForm = new MaterialForm();\n\n this.materialConditionGroup = new Group();\n\n (this.materialTable.dataFilter as WhereFilter)\n .getWhere()\n .addGroup(this.materialConditionGroup);\n\n (this.materialTable.dataFilter as WhereFilter)\n .getOrder()\n .addOrderItem(\"createDate\", OrderType.DESC);\n\n // this.materialGroupTable.dataFilter.setReady();\n this.materialTable.dataFilter.setReady();\n\n this.upload = new WebFileUpload({\n filters: [\n (file) => {\n if (!this.currentMaterialType) {\n throw new UploadError(\"不能上传文件,素材类型无效\");\n }\n\n if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {\n throw new UploadError(\"文件太大不能上传\");\n }\n },\n ],\n httpRequest: options.httpRequest,\n });\n\n // this.currentMaterialGroupId = null;\n this.currentMaterialTypeId = null;\n }\n\n async init() {\n if (this.initing || this.initd) {\n return;\n }\n this.initing = true;\n\n this.upload.uploadEvent.on(({ uploadItem }) => {\n uploadItem.completeEvent.once(async () => {\n await this.materialForm.addRecord();\n\n this.materialForm.setData({\n id: \"\",\n materialGroupId: this.currentMaterialGroupId,\n type: this.currentMaterialTypeId!,\n desc: uploadItem.payload.name,\n path: uploadItem.response!.data.data.path,\n });\n\n const submitResullt = await this.materialForm.submit();\n\n if (submitResullt.data.code !== 200) {\n return;\n }\n\n this.materialTable.load();\n });\n });\n\n await this.materialGroupTree.init();\n await this.materialGroupTree.load();\n\n await this.materialForm.init();\n\n // const getFirstMaterialGroupNode = (\n // materialGroupNodes: MaterialGroupNode[]\n // ): MaterialGroupNode => {\n // if (materialGroupNodes[0].children.length) {\n // return getFirstMaterialGroupNode(materialGroupNodes[0].children);\n // }\n\n // return materialGroupNodes[0];\n // };\n\n // const materialGroupList = this.materialGroupTree.getList();\n\n // if (!materialGroupList.length) {\n // return;\n // }\n\n // this.currentMaterialGroupId =\n // getFirstMaterialGroupNode(materialGroupList).id;\n\n await this.materialTable.init();\n\n this.materialTypes = this.materialTable.getMaterialTypes();\n\n if (this.materialTypes.length) {\n this.currentMaterialTypeId = this.materialTypes[0].value;\n }\n\n this.attachMaterialTableCondition();\n\n this.initing = false;\n this.initd = true;\n }\n\n setAllowAccessMaterialTypeValues(\n materialTypeValues: MaterialType[\"value\"][]\n ) {\n this.materialTypeValues = materialTypeValues;\n }\n\n getMaterialType() {\n if (!this.materialTypeValues.length) {\n return this.materialTypes;\n }\n\n return this.materialTypes.filter((materialType) =>\n this.materialTypeValues.includes(materialType.value)\n );\n }\n\n setCurrentMaterialGroup(materialGroup: MaterialGroupNode | null) {\n this.materialGroupTree.setCurrentNode(\n materialGroup\n ? this.materialGroupTree.findDataTreeNode(materialGroup)\n : null\n );\n\n this.attachMaterialTableCondition();\n }\n\n setCurrentMaterialTypeId(materialTypeId: MaterialType[\"value\"] | null) {\n this.currentMaterialTypeId = materialTypeId;\n\n this.attachMaterialTableCondition();\n }\n\n protected attachMaterialTableCondition() {\n this.materialConditionGroup.clear();\n\n if (this.currentMaterialGroupId) {\n this.materialConditionGroup.addCondition(\n \"materialGroupId\",\n \"=\",\n this.currentMaterialGroupId\n );\n }\n\n if (this.currentMaterialTypeId) {\n this.materialConditionGroup.addCondition(\n \"type\",\n \"=\",\n this.currentMaterialTypeId\n );\n }\n\n this.materialTable.load();\n }\n}\n"],"names":["MaterialGroupTree","MaterialTable","MaterialForm","Group","OrderType","WebFileUpload","UploadError"],"mappings":"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"}
@@ -5,6 +5,9 @@ var dm = require('@maketribe/dm');
5
5
  var utils = require('@maketribe/utils');
6
6
  var defineDataTable = require('../../define-data-table.js');
7
7
  var MemberForm = require('./MemberForm.js');
8
+ require('element-plus');
9
+ require('../../core/DataModelDefines.js');
10
+ var MSAppClient = require('../../core/MSAppClient.js');
8
11
 
9
12
  class MemberTable extends dm.DataTable {
10
13
  activeMemberEvent = this.register(new utils.Event());
@@ -85,6 +88,16 @@ class MemberTable extends dm.DataTable {
85
88
  }), new dm.TableActionColumn({
86
89
  width: "200px",
87
90
  buttons: [new dm.ActionButton({
91
+ label: "test",
92
+ handler: () => {
93
+ MSAppClient.MSAppClient.instance.vueRouter.push({
94
+ name: "dv/ms-role/single/list/dialog",
95
+ query: {
96
+ id: "8"
97
+ }
98
+ });
99
+ }
100
+ }), new dm.ActionButton({
88
101
  label: "\u6FC0\u6D3B\u7528\u6237",
89
102
  handler: async (row) => {
90
103
  this.activeMemberEvent.emit(row);
@@ -1 +1 @@
1
- {"version":3,"file":"MemberTable.js","sources":["../../../../src/dataview/member/MemberTable.tsx"],"sourcesContent":["import {\n TableColumn,\n DataTable,\n DataTableOptions,\n FilterColumn,\n TableActionColumn,\n ActionButton,\n DeleteButton,\n EditButton,\n Messager,\n Dialoger,\n FormColumn,\n} from \"@maketribe/dm\";\nimport { Event } from \"@maketribe/utils\";\nimport { defineDataTable } from \"../../define-data-table\";\nimport { Member, MemberForm, MemberResult } from \"./MemberForm\";\nimport { R } from \"@maketribe/request\";\n\nexport type MemberTableItem = Omit<Member, \"password\" | \"confirmPassword\">;\n\nexport class MemberTable extends DataTable<MemberResult, MemberTableItem> {\n activeMemberForm: MemberForm;\n\n activeMemberEvent: Event<MemberTableItem> = this.register(new Event());\n\n constructor(options: DataTableOptions = {}) {\n super({ name: \"ms-member\", ...options });\n\n this.activeMemberForm = new MemberForm();\n }\n\n protected async initialize() {\n await super.initialize();\n\n await this.initActiveMemberForm();\n\n this.dataFilter.setColumns([\n new FilterColumn({\n name: \"name\",\n label: \"姓名\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"wechatNo\",\n label: \"微信号\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"nickName\",\n label: \"昵称\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"email\",\n label: \"邮箱\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"phone\",\n label: \"手机号\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"account\",\n label: \"账号\",\n componentInfo: \"MKConditionInput\",\n }),\n ]);\n\n this.setColumns([\n new TableColumn({\n name: \"id\",\n label: \"编号\",\n width: \"190px\",\n visible: false,\n }),\n new TableColumn({ name: \"name\", label: \"姓名\", minWidth: \"150px\" }),\n new TableColumn({ name: \"nickName\", label: \"昵称\", minWidth: \"150px\" }),\n new TableColumn({\n name: \"avatar\",\n label: \"头像\",\n componentInfo: \"MKColumnImage\",\n width: \"80px\",\n }),\n new TableColumn({ name: \"account\", label: \"账号\", minWidth: \"150px\" }),\n new TableColumn({ name: \"email\", label: \"邮箱\", minWidth: \"200px\" }),\n new TableColumn({ name: \"phone\", label: \"手机号\", minWidth: \"120px\" }),\n new TableColumn({ name: \"wechatNo\", label: \"微信号\", minWidth: \"140px\" }),\n new TableColumn({\n name: \"valid\",\n label: \"微信号\",\n minWidth: \"140px\",\n visible: false,\n }),\n new TableActionColumn({\n width: \"200px\",\n buttons: [\n new ActionButton({\n label: \"激活用户\",\n handler: async (row) => {\n this.activeMemberEvent.emit(row);\n },\n predicate: (member: MemberTableItem) => member.valid === 0,\n }),\n new ActionButton({\n label: \"重置密码\",\n handler: async (row) => {\n const isConfirm = await Dialoger.instance.confirm({\n title: \"重置密码\",\n message: \"是否重置密码\",\n type: \"warning\",\n cancelButtonText: \"取消\",\n confirmButtonText: \"确定\",\n });\n if (!isConfirm) {\n return;\n }\n this.loadingManager.startLoading();\n\n const response = await this.dataViewRequest.callDVRequest<\n R<string>\n >({\n action: `${row.id}/password/reset`,\n });\n\n this.loadingManager.completeLoading();\n if (response.data.code !== 200) {\n Messager.instance.error({\n message: response.data.msg || \"重置密码失败\",\n });\n return;\n }\n\n const res = await Dialoger.instance.confirm({\n title: \"重置密码成功\",\n message: (\n <p>\n <span>你的新密码为{response.data.data}</span>\n </p>\n ),\n type: \"warning\",\n cancelButtonText: \"取消\",\n confirmButtonText: \"复制\",\n });\n if (!res) {\n return;\n }\n\n navigator.clipboard.writeText(response.data.data);\n Messager.instance.success({ message: \"复制成功\" });\n },\n predicate: (member: MemberTableItem) => member.valid === 1,\n }),\n new EditButton({\n predicate: (member: MemberTableItem) => member.valid === 1,\n }),\n new DeleteButton(),\n ],\n }),\n ]);\n }\n\n protected async initActiveMemberForm() {\n const activeMemberForm = this.activeMemberForm;\n\n await activeMemberForm.init();\n\n activeMemberForm.setColumns([\n activeMemberForm.getColumn(\"id\")!,\n new FormColumn({\n name: \"approveResult\",\n label: \"是否通过\",\n defaultValue: \"0\",\n componentInfo: \"MKFormRadioBox\",\n required: true,\n componentProps: {\n options: [\n { label: \"通过\", value: \"1\" },\n { label: \"不通过\", value: \"0\" },\n ],\n },\n }),\n activeMemberForm.getColumn(\"roles\")!,\n activeMemberForm.getColumn(\"depts\")!,\n activeMemberForm.getColumn(\"memo\")!,\n ]);\n }\n\n async approveMember() {\n try {\n this.activeMemberForm.getLoadingManager().startLoading();\n const result = await this.activeMemberForm.httpRequest?.post(\n \"/api/dv/ms-member/apply/account/approve\",\n {\n ...this.activeMemberForm.formatSubmitData(this.activeMemberForm.data),\n }\n );\n this.activeMemberForm.getLoadingManager().completeLoading();\n\n if (result?.data.code != 200) {\n Messager.instance.error(result?.data.msg || \"请求失败\");\n return;\n }\n\n Messager.instance.success({\n message: \"激活通过,密码已发送到邮箱\",\n });\n\n this.load();\n } catch (e) {\n console.error(e);\n Messager.instance.error({ message: \"网络异常\" });\n }\n }\n\n formatItem(item: MemberResult): MemberTableItem {\n let avatar: string | null;\n try {\n avatar = item.avatar ? new URL(item.avatar).toString() : null;\n } catch (e) {\n avatar = null;\n }\n\n return {\n id: item.id,\n name: item.name || \"\",\n wechatNo: item.wechatNo || \"\",\n nickName: item.nickName || \"\",\n email: item.email || \"\",\n phone: item.phone || \"\",\n account: item.account || \"\",\n avatar,\n roles: item.roles?.map((role) => ({\n id: role.id,\n name: role.name || \"\",\n desc: role.desc || \"\",\n })),\n depts: item.depts?.map((department) => ({\n id: department.id,\n name: department.name || \"\",\n // memberID: department.memberID || null,\n pid: department.pid || null,\n })),\n valid: item.valid,\n };\n }\n}\n\ndefineDataTable(MemberTable);\n"],"names":["MemberTable","DataTable","activeMemberEvent","register","Event","constructor","options","name","activeMemberForm","MemberForm","initialize","initActiveMemberForm","dataFilter","setColumns","FilterColumn","label","componentInfo","TableColumn","width","visible","minWidth","TableActionColumn","buttons","ActionButton","handler","row","emit","predicate","member","valid","isConfirm","Dialoger","instance","confirm","title","message","type","cancelButtonText","confirmButtonText","loadingManager","startLoading","response","dataViewRequest","callDVRequest","action","id","completeLoading","data","code","Messager","error","msg","res","_createVNode","_createTextVNode","navigator","clipboard","writeText","success","EditButton","DeleteButton","init","getColumn","FormColumn","defaultValue","required","componentProps","value","approveMember","getLoadingManager","result","httpRequest","post","formatSubmitData","load","e","console","formatItem","item","avatar","URL","toString","wechatNo","nickName","email","phone","account","roles","map","role","desc","depts","department","pid","defineDataTable"],"mappings":";;;;;;;;AAoBO,MAAMA,oBAAoBC,YAAyC,CAAA;AAAA,EAGxEC,iBAA4C,GAAA,IAAA,CAAKC,QAAS,CAAA,IAAIC,aAAO,CAAA,CAAA;AAAA,EAErEC,WAAAA,CAAYC,OAA4B,GAAA,EAAI,EAAA;AAC1C,IAAM,KAAA,CAAA;AAAA,MAAEC,IAAM,EAAA,WAAA;AAAA,MAAa,GAAGD,OAAAA;AAAAA,KAAS,CAAA,CAAA;AAEvC,IAAKE,IAAAA,CAAAA,gBAAAA,GAAmB,IAAIC,qBAAW,EAAA,CAAA;AAAA,GACzC;AAAA,EAEA,MAAgBC,UAAa,GAAA;AAC3B,IAAA,MAAM,MAAMA,UAAW,EAAA,CAAA;AAEvB,IAAA,MAAM,KAAKC,oBAAqB,EAAA,CAAA;AAEhC,IAAA,IAAA,CAAKC,UAAWC,CAAAA,UAAAA,CAAW,CACzB,IAAIC,eAAa,CAAA;AAAA,MACfP,IAAM,EAAA,MAAA;AAAA,MACNQ,KAAO,EAAA,cAAA;AAAA,MACPC,aAAe,EAAA,kBAAA;AAAA,KAChB,CACD,EAAA,IAAIF,eAAa,CAAA;AAAA,MACfP,IAAM,EAAA,UAAA;AAAA,MACNQ,KAAO,EAAA,oBAAA;AAAA,MACPC,aAAe,EAAA,kBAAA;AAAA,KAChB,CACD,EAAA,IAAIF,eAAa,CAAA;AAAA,MACfP,IAAM,EAAA,UAAA;AAAA,MACNQ,KAAO,EAAA,cAAA;AAAA,MACPC,aAAe,EAAA,kBAAA;AAAA,KAChB,CACD,EAAA,IAAIF,eAAa,CAAA;AAAA,MACfP,IAAM,EAAA,OAAA;AAAA,MACNQ,KAAO,EAAA,cAAA;AAAA,MACPC,aAAe,EAAA,kBAAA;AAAA,KAChB,CACD,EAAA,IAAIF,eAAa,CAAA;AAAA,MACfP,IAAM,EAAA,OAAA;AAAA,MACNQ,KAAO,EAAA,oBAAA;AAAA,MACPC,aAAe,EAAA,kBAAA;AAAA,KAChB,CACD,EAAA,IAAIF,eAAa,CAAA;AAAA,MACfP,IAAM,EAAA,SAAA;AAAA,MACNQ,KAAO,EAAA,cAAA;AAAA,MACPC,aAAe,EAAA,kBAAA;AAAA,KAChB,CAAC,CACH,CAAA,CAAA;AAED,IAAKH,IAAAA,CAAAA,UAAAA,CAAW,CACd,IAAII,cAAY,CAAA;AAAA,MACdV,IAAM,EAAA,IAAA;AAAA,MACNQ,KAAO,EAAA,cAAA;AAAA,MACPG,KAAO,EAAA,OAAA;AAAA,MACPC,OAAS,EAAA,KAAA;AAAA,KACV,CACD,EAAA,IAAIF,cAAY,CAAA;AAAA,MAAEV,IAAM,EAAA,MAAA;AAAA,MAAQQ,KAAO,EAAA,cAAA;AAAA,MAAMK,QAAU,EAAA,OAAA;AAAA,KAAS,CAChE,EAAA,IAAIH,cAAY,CAAA;AAAA,MAAEV,IAAM,EAAA,UAAA;AAAA,MAAYQ,KAAO,EAAA,cAAA;AAAA,MAAMK,QAAU,EAAA,OAAA;AAAA,KAAS,CACpE,EAAA,IAAIH,cAAY,CAAA;AAAA,MACdV,IAAM,EAAA,QAAA;AAAA,MACNQ,KAAO,EAAA,cAAA;AAAA,MACPC,aAAe,EAAA,eAAA;AAAA,MACfE,KAAO,EAAA,MAAA;AAAA,KACR,CACD,EAAA,IAAID,cAAY,CAAA;AAAA,MAAEV,IAAM,EAAA,SAAA;AAAA,MAAWQ,KAAO,EAAA,cAAA;AAAA,MAAMK,QAAU,EAAA,OAAA;AAAA,KAAS,CACnE,EAAA,IAAIH,cAAY,CAAA;AAAA,MAAEV,IAAM,EAAA,OAAA;AAAA,MAASQ,KAAO,EAAA,cAAA;AAAA,MAAMK,QAAU,EAAA,OAAA;AAAA,KAAS,CACjE,EAAA,IAAIH,cAAY,CAAA;AAAA,MAAEV,IAAM,EAAA,OAAA;AAAA,MAASQ,KAAO,EAAA,oBAAA;AAAA,MAAOK,QAAU,EAAA,OAAA;AAAA,KAAS,CAClE,EAAA,IAAIH,cAAY,CAAA;AAAA,MAAEV,IAAM,EAAA,UAAA;AAAA,MAAYQ,KAAO,EAAA,oBAAA;AAAA,MAAOK,QAAU,EAAA,OAAA;AAAA,KAAS,CACrE,EAAA,IAAIH,cAAY,CAAA;AAAA,MACdV,IAAM,EAAA,OAAA;AAAA,MACNQ,KAAO,EAAA,oBAAA;AAAA,MACPK,QAAU,EAAA,OAAA;AAAA,MACVD,OAAS,EAAA,KAAA;AAAA,KACV,CACD,EAAA,IAAIE,oBAAkB,CAAA;AAAA,MACpBH,KAAO,EAAA,OAAA;AAAA,MACPI,OAAAA,EAAS,CACP,IAAIC,eAAa,CAAA;AAAA,QACfR,KAAO,EAAA,0BAAA;AAAA,QACPS,OAAAA,EAAS,OAAOC,GAAQ,KAAA;AACtB,UAAKvB,IAAAA,CAAAA,iBAAAA,CAAkBwB,KAAKD,GAAG,CAAA,CAAA;AAAA,SACjC;AAAA,QACAE,SAAAA,EAAYC,CAA4BA,MAAAA,KAAAA,MAAAA,CAAOC,KAAU,KAAA,CAAA;AAAA,OAC1D,CACD,EAAA,IAAIN,eAAa,CAAA;AAAA,QACfR,KAAO,EAAA,0BAAA;AAAA,QACPS,OAAAA,EAAS,OAAOC,GAAQ,KAAA;AACtB,UAAA,MAAMK,SAAY,GAAA,MAAMC,WAASC,CAAAA,QAAAA,CAASC,OAAQ,CAAA;AAAA,YAChDC,KAAO,EAAA,0BAAA;AAAA,YACPC,OAAS,EAAA,sCAAA;AAAA,YACTC,IAAM,EAAA,SAAA;AAAA,YACNC,gBAAkB,EAAA,cAAA;AAAA,YAClBC,iBAAmB,EAAA,cAAA;AAAA,WACpB,CAAA,CAAA;AACD,UAAA,IAAI,CAACR,SAAW,EAAA;AACd,YAAA,OAAA;AAAA,WACF;AACA,UAAA,IAAA,CAAKS,eAAeC,YAAa,EAAA,CAAA;AAEjC,UAAA,MAAMC,QAAW,GAAA,MAAM,IAAKC,CAAAA,eAAAA,CAAgBC,aAE1C,CAAA;AAAA,YACAC,MAAAA,EAAS,CAAEnB,EAAAA,GAAAA,CAAIoB,EAAG,CAAA,eAAA,CAAA;AAAA,WACnB,CAAA,CAAA;AAED,UAAA,IAAA,CAAKN,eAAeO,eAAgB,EAAA,CAAA;AACpC,UAAIL,IAAAA,QAAAA,CAASM,IAAKC,CAAAA,IAAAA,KAAS,GAAK,EAAA;AAC9BC,YAAAA,WAAAA,CAASjB,SAASkB,KAAM,CAAA;AAAA,cACtBf,OAAAA,EAASM,QAASM,CAAAA,IAAAA,CAAKI,GAAO,IAAA,sCAAA;AAAA,aAC/B,CAAA,CAAA;AACD,YAAA,OAAA;AAAA,WACF;AAEA,UAAA,MAAMC,GAAM,GAAA,MAAMrB,WAASC,CAAAA,QAAAA,CAASC,OAAQ,CAAA;AAAA,YAC1CC,KAAO,EAAA,sCAAA;AAAA,YACPC,SAAOkB,eAAAA,CAAAA,GAAAA,EAAAA,IAAAA,EAAAA,CAAAA,gBAAAC,MAAAA,EAAAA,IAAAA,EAAAA,CAAAA,mBAAAA,CAEUb,sCAAAA,CAAAA,EAAAA,QAAAA,CAASM,KAAKA,IAAI,CAElC,CAAA,CAAA,CAAA;AAAA,YACDX,IAAM,EAAA,SAAA;AAAA,YACNC,gBAAkB,EAAA,cAAA;AAAA,YAClBC,iBAAmB,EAAA,cAAA;AAAA,WACpB,CAAA,CAAA;AACD,UAAA,IAAI,CAACc,GAAK,EAAA;AACR,YAAA,OAAA;AAAA,WACF;AAEAG,UAAAA,SAAAA,CAAUC,SAAUC,CAAAA,SAAAA,CAAUhB,QAASM,CAAAA,IAAAA,CAAKA,IAAI,CAAA,CAAA;AAChDE,UAAAA,WAAAA,CAASjB,SAAS0B,OAAQ,CAAA;AAAA,YAAEvB,OAAS,EAAA,0BAAA;AAAA,WAAQ,CAAA,CAAA;AAAA,SAC/C;AAAA,QACAR,SAAAA,EAAYC,CAA4BA,MAAAA,KAAAA,MAAAA,CAAOC,KAAU,KAAA,CAAA;AAAA,OAC1D,CACD,EAAA,IAAI8B,aAAW,CAAA;AAAA,QACbhC,SAAAA,EAAYC,CAA4BA,MAAAA,KAAAA,MAAAA,CAAOC,KAAU,KAAA,CAAA;AAAA,OAC1D,CAAA,EACD,IAAI+B,eAAAA,EAAc,CAAA;AAAA,KAErB,CAAC,CACH,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,MAAgBjD,oBAAuB,GAAA;AACrC,IAAA,MAAMH,mBAAmB,IAAKA,CAAAA,gBAAAA,CAAAA;AAE9B,IAAA,MAAMA,iBAAiBqD,IAAK,EAAA,CAAA;AAE5BrD,IAAAA,gBAAAA,CAAiBK,WAAW,CAC1BL,gBAAAA,CAAiBsD,UAAU,IAAI,CAAA,EAC/B,IAAIC,aAAW,CAAA;AAAA,MACbxD,IAAM,EAAA,eAAA;AAAA,MACNQ,KAAO,EAAA,0BAAA;AAAA,MACPiD,YAAc,EAAA,GAAA;AAAA,MACdhD,aAAe,EAAA,gBAAA;AAAA,MACfiD,QAAU,EAAA,IAAA;AAAA,MACVC,cAAgB,EAAA;AAAA,QACd5D,SAAS,CACP;AAAA,UAAES,KAAO,EAAA,cAAA;AAAA,UAAMoD,KAAO,EAAA,GAAA;AAAA,SACtB,EAAA;AAAA,UAAEpD,KAAO,EAAA,oBAAA;AAAA,UAAOoD,KAAO,EAAA,GAAA;AAAA,SAAK,CAAA;AAAA,OAEhC;AAAA,KACD,CAAA,EACD3D,gBAAiBsD,CAAAA,SAAAA,CAAU,OAAO,CAClCtD,EAAAA,gBAAAA,CAAiBsD,SAAU,CAAA,OAAO,CAClCtD,EAAAA,gBAAAA,CAAiBsD,SAAU,CAAA,MAAM,CAAC,CACnC,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,MAAMM,aAAgB,GAAA;AACpB,IAAI,IAAA;AACF,MAAK5D,IAAAA,CAAAA,gBAAAA,CAAiB6D,iBAAkB,EAAA,CAAE7B,YAAa,EAAA,CAAA;AACvD,MAAA,MAAM8B,SAAS,MAAM,IAAA,CAAK9D,gBAAiB+D,CAAAA,WAAAA,EAAaC,KACtD,yCACA,EAAA;AAAA,QACE,GAAG,IAAKhE,CAAAA,gBAAAA,CAAiBiE,gBAAiB,CAAA,IAAA,CAAKjE,iBAAiBuC,IAAI,CAAA;AAAA,OAExE,CAAA,CAAA;AACA,MAAKvC,IAAAA,CAAAA,gBAAAA,CAAiB6D,iBAAkB,EAAA,CAAEvB,eAAgB,EAAA,CAAA;AAE1D,MAAIwB,IAAAA,MAAAA,EAAQvB,IAAKC,CAAAA,IAAAA,IAAQ,GAAK,EAAA;AAC5BC,QAAAA,WAAAA,CAASjB,QAASkB,CAAAA,KAAAA,CAAMoB,MAAQvB,EAAAA,IAAAA,CAAKI,OAAO,0BAAM,CAAA,CAAA;AAClD,QAAA,OAAA;AAAA,OACF;AAEAF,MAAAA,WAAAA,CAASjB,SAAS0B,OAAQ,CAAA;AAAA,QACxBvB,OAAS,EAAA,gFAAA;AAAA,OACV,CAAA,CAAA;AAED,MAAA,IAAA,CAAKuC,IAAK,EAAA,CAAA;AAAA,aACHC,CAAG,EAAA;AACVC,MAAAA,OAAAA,CAAQ1B,MAAMyB,CAAC,CAAA,CAAA;AACf1B,MAAAA,WAAAA,CAASjB,SAASkB,KAAM,CAAA;AAAA,QAAEf,OAAS,EAAA,0BAAA;AAAA,OAAQ,CAAA,CAAA;AAAA,KAC7C;AAAA,GACF;AAAA,EAEA0C,WAAWC,IAAqC,EAAA;AAC9C,IAAIC,IAAAA,MAAAA,CAAAA;AACJ,IAAI,IAAA;AACFA,MAASD,MAAAA,GAAAA,IAAAA,CAAKC,SAAS,IAAIC,GAAAA,CAAIF,KAAKC,MAAM,CAAA,CAAEE,UAAa,GAAA,IAAA,CAAA;AAAA,aAClDN,CAAG,EAAA;AACVI,MAAS,MAAA,GAAA,IAAA,CAAA;AAAA,KACX;AAEA,IAAO,OAAA;AAAA,MACLlC,IAAIiC,IAAKjC,CAAAA,EAAAA;AAAAA,MACTtC,IAAAA,EAAMuE,KAAKvE,IAAQ,IAAA,EAAA;AAAA,MACnB2E,QAAAA,EAAUJ,KAAKI,QAAY,IAAA,EAAA;AAAA,MAC3BC,QAAAA,EAAUL,KAAKK,QAAY,IAAA,EAAA;AAAA,MAC3BC,KAAAA,EAAON,KAAKM,KAAS,IAAA,EAAA;AAAA,MACrBC,KAAAA,EAAOP,KAAKO,KAAS,IAAA,EAAA;AAAA,MACrBC,OAAAA,EAASR,KAAKQ,OAAW,IAAA,EAAA;AAAA,MACzBP,MAAAA;AAAAA,MACAQ,KAAOT,EAAAA,IAAAA,CAAKS,KAAOC,EAAAA,GAAAA,CAAKC,CAAU,IAAA,MAAA;AAAA,QAChC5C,IAAI4C,IAAK5C,CAAAA,EAAAA;AAAAA,QACTtC,IAAAA,EAAMkF,KAAKlF,IAAQ,IAAA,EAAA;AAAA,QACnBmF,IAAAA,EAAMD,KAAKC,IAAQ,IAAA,EAAA;AAAA,OACnB,CAAA,CAAA;AAAA,MACFC,KAAOb,EAAAA,IAAAA,CAAKa,KAAOH,EAAAA,GAAAA,CAAKI,CAAgB,UAAA,MAAA;AAAA,QACtC/C,IAAI+C,UAAW/C,CAAAA,EAAAA;AAAAA,QACftC,IAAAA,EAAMqF,WAAWrF,IAAQ,IAAA,EAAA;AAAA;AAAA,QAEzBsF,GAAAA,EAAKD,WAAWC,GAAO,IAAA,IAAA;AAAA,OACvB,CAAA,CAAA;AAAA,MACFhE,OAAOiD,IAAKjD,CAAAA,KAAAA;AAAAA,KACd,CAAA;AAAA,GACF;AACF,CAAA;AAEAiE,+BAAAA,CAAgB9F,WAAW,CAAA;;;;"}
1
+ {"version":3,"file":"MemberTable.js","sources":["../../../../src/dataview/member/MemberTable.tsx"],"sourcesContent":["import {\n TableColumn,\n DataTable,\n DataTableOptions,\n FilterColumn,\n TableActionColumn,\n ActionButton,\n DeleteButton,\n EditButton,\n Messager,\n Dialoger,\n FormColumn,\n} from \"@maketribe/dm\";\nimport { Event } from \"@maketribe/utils\";\nimport { defineDataTable } from \"../../define-data-table\";\nimport { Member, MemberForm, MemberResult } from \"./MemberForm\";\nimport { R } from \"@maketribe/request\";\nimport { MSAppClient } from \"../../core\";\n\nexport type MemberTableItem = Omit<Member, \"password\" | \"confirmPassword\">;\n\nexport class MemberTable extends DataTable<MemberResult, MemberTableItem> {\n activeMemberForm: MemberForm;\n\n activeMemberEvent: Event<MemberTableItem> = this.register(new Event());\n\n constructor(options: DataTableOptions = {}) {\n super({ name: \"ms-member\", ...options });\n\n this.activeMemberForm = new MemberForm();\n }\n\n protected async initialize() {\n await super.initialize();\n\n await this.initActiveMemberForm();\n\n this.dataFilter.setColumns([\n new FilterColumn({\n name: \"name\",\n label: \"姓名\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"wechatNo\",\n label: \"微信号\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"nickName\",\n label: \"昵称\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"email\",\n label: \"邮箱\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"phone\",\n label: \"手机号\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"account\",\n label: \"账号\",\n componentInfo: \"MKConditionInput\",\n }),\n ]);\n\n this.setColumns([\n new TableColumn({\n name: \"id\",\n label: \"编号\",\n width: \"190px\",\n visible: false,\n }),\n new TableColumn({ name: \"name\", label: \"姓名\", minWidth: \"150px\" }),\n new TableColumn({ name: \"nickName\", label: \"昵称\", minWidth: \"150px\" }),\n new TableColumn({\n name: \"avatar\",\n label: \"头像\",\n componentInfo: \"MKColumnImage\",\n width: \"80px\",\n }),\n new TableColumn({ name: \"account\", label: \"账号\", minWidth: \"150px\" }),\n new TableColumn({ name: \"email\", label: \"邮箱\", minWidth: \"200px\" }),\n new TableColumn({ name: \"phone\", label: \"手机号\", minWidth: \"120px\" }),\n new TableColumn({ name: \"wechatNo\", label: \"微信号\", minWidth: \"140px\" }),\n new TableColumn({\n name: \"valid\",\n label: \"微信号\",\n minWidth: \"140px\",\n visible: false,\n }),\n new TableActionColumn({\n width: \"200px\",\n buttons: [\n new ActionButton({\n label: \"test\",\n handler: () => {\n MSAppClient.instance!.vueRouter.push({\n name: \"dv/ms-role/single/list/dialog\",\n query: { id: \"8\" },\n });\n },\n }),\n new ActionButton({\n label: \"激活用户\",\n handler: async (row) => {\n this.activeMemberEvent.emit(row);\n },\n predicate: (member: MemberTableItem) => member.valid === 0,\n }),\n new ActionButton({\n label: \"重置密码\",\n handler: async (row) => {\n const isConfirm = await Dialoger.instance.confirm({\n title: \"重置密码\",\n message: \"是否重置密码\",\n type: \"warning\",\n cancelButtonText: \"取消\",\n confirmButtonText: \"确定\",\n });\n if (!isConfirm) {\n return;\n }\n this.loadingManager.startLoading();\n\n const response = await this.dataViewRequest.callDVRequest<\n R<string>\n >({\n action: `${row.id}/password/reset`,\n });\n\n this.loadingManager.completeLoading();\n if (response.data.code !== 200) {\n Messager.instance.error({\n message: response.data.msg || \"重置密码失败\",\n });\n return;\n }\n\n const res = await Dialoger.instance.confirm({\n title: \"重置密码成功\",\n message: (\n <p>\n <span>你的新密码为{response.data.data}</span>\n </p>\n ),\n type: \"warning\",\n cancelButtonText: \"取消\",\n confirmButtonText: \"复制\",\n });\n if (!res) {\n return;\n }\n\n navigator.clipboard.writeText(response.data.data);\n Messager.instance.success({ message: \"复制成功\" });\n },\n predicate: (member: MemberTableItem) => member.valid === 1,\n }),\n new EditButton({\n predicate: (member: MemberTableItem) => member.valid === 1,\n }),\n new DeleteButton(),\n ],\n }),\n ]);\n }\n\n protected async initActiveMemberForm() {\n const activeMemberForm = this.activeMemberForm;\n\n await activeMemberForm.init();\n\n activeMemberForm.setColumns([\n activeMemberForm.getColumn(\"id\")!,\n new FormColumn({\n name: \"approveResult\",\n label: \"是否通过\",\n defaultValue: \"0\",\n componentInfo: \"MKFormRadioBox\",\n required: true,\n componentProps: {\n options: [\n { label: \"通过\", value: \"1\" },\n { label: \"不通过\", value: \"0\" },\n ],\n },\n }),\n activeMemberForm.getColumn(\"roles\")!,\n activeMemberForm.getColumn(\"depts\")!,\n activeMemberForm.getColumn(\"memo\")!,\n ]);\n }\n\n async approveMember() {\n try {\n this.activeMemberForm.getLoadingManager().startLoading();\n const result = await this.activeMemberForm.httpRequest?.post(\n \"/api/dv/ms-member/apply/account/approve\",\n {\n ...this.activeMemberForm.formatSubmitData(this.activeMemberForm.data),\n }\n );\n this.activeMemberForm.getLoadingManager().completeLoading();\n\n if (result?.data.code != 200) {\n Messager.instance.error(result?.data.msg || \"请求失败\");\n return;\n }\n\n Messager.instance.success({\n message: \"激活通过,密码已发送到邮箱\",\n });\n\n this.load();\n } catch (e) {\n console.error(e);\n Messager.instance.error({ message: \"网络异常\" });\n }\n }\n\n formatItem(item: MemberResult): MemberTableItem {\n let avatar: string | null;\n try {\n avatar = item.avatar ? new URL(item.avatar).toString() : null;\n } catch (e) {\n avatar = null;\n }\n\n return {\n id: item.id,\n name: item.name || \"\",\n wechatNo: item.wechatNo || \"\",\n nickName: item.nickName || \"\",\n email: item.email || \"\",\n phone: item.phone || \"\",\n account: item.account || \"\",\n avatar,\n roles: item.roles?.map((role) => ({\n id: role.id,\n name: role.name || \"\",\n desc: role.desc || \"\",\n })),\n depts: item.depts?.map((department) => ({\n id: department.id,\n name: department.name || \"\",\n // memberID: department.memberID || null,\n pid: department.pid || null,\n })),\n valid: item.valid,\n };\n }\n}\n\ndefineDataTable(MemberTable);\n"],"names":["MemberTable","DataTable","activeMemberEvent","register","Event","constructor","options","name","activeMemberForm","MemberForm","initialize","initActiveMemberForm","dataFilter","setColumns","FilterColumn","label","componentInfo","TableColumn","width","visible","minWidth","TableActionColumn","buttons","ActionButton","handler","MSAppClient","instance","vueRouter","push","query","id","row","emit","predicate","member","valid","isConfirm","Dialoger","confirm","title","message","type","cancelButtonText","confirmButtonText","loadingManager","startLoading","response","dataViewRequest","callDVRequest","action","completeLoading","data","code","Messager","error","msg","res","_createVNode","_createTextVNode","navigator","clipboard","writeText","success","EditButton","DeleteButton","init","getColumn","FormColumn","defaultValue","required","componentProps","value","approveMember","getLoadingManager","result","httpRequest","post","formatSubmitData","load","e","console","formatItem","item","avatar","URL","toString","wechatNo","nickName","email","phone","account","roles","map","role","desc","depts","department","pid","defineDataTable"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTable.js","sources":["../../../../src/dataview/menu/MenuTable.ts"],"sourcesContent":["import {\n DataTable,\n DataTableOptions,\n TableActionColumn,\n TableColumn,\n} from \"@maketribe/dm\";\nimport { defineDataTable } from \"../../define-data-table\";\nimport type { MenuItem, MenuResult } from \"./MenuForm\";\n\nexport class MenuTable<T extends MenuItem = MenuItem> extends DataTable<\n MenuResult,\n T\n> {\n constructor(options: Omit<DataTableOptions, \"name\"> = {}) {\n super({ name: \"ms-menu\", ...options });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.setColumns([\n new TableColumn({ name: \"id\", label: \"编号\", visible: false }),\n new TableColumn({ name: \"title\", label: \"菜单描述\" }),\n new TableActionColumn(),\n ]);\n }\n\n formatItem(item: MenuResult): T {\n return {\n id: item.id,\n title: item.title || \"\",\n iconName: item.iconName || \"\",\n pid: item.pid || \"\",\n routeId: item.routeId,\n } as T;\n }\n}\n\ndefineDataTable(MenuTable);\n"],"names":["DataTable","TableColumn","TableActionColumn","defineDataTable"],"mappings":";;;;;AASO,MAAM,kBAAiDA,YAG5D,CAAA;AAAA,EACA,WAAA,CAAY,OAA0C,GAAA,EAAI,EAAA;AACxD,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,SAAW,EAAA,GAAG,SAAS,CAAA,CAAA;AAAA,GACvC;AAAA,EAEA,MAAgB,UAAa,GAAA;AAC3B,IAAA,MAAM,MAAM,UAAW,EAAA,CAAA;AAEvB,IAAA,IAAA,CAAK,UAAW,CAAA;AAAA,MACd,IAAIC,eAAY,EAAE,IAAA,EAAM,MAAM,KAAO,EAAA,cAAA,EAAM,OAAS,EAAA,KAAA,EAAO,CAAA;AAAA,MAC3D,IAAIA,cAAY,CAAA,EAAE,MAAM,OAAS,EAAA,KAAA,EAAO,4BAAQ,CAAA;AAAA,MAChD,IAAIC,oBAAkB,EAAA;AAAA,KACvB,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,WAAW,IAAqB,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,IAAI,IAAK,CAAA,EAAA;AAAA,MACT,KAAA,EAAO,KAAK,KAAS,IAAA,EAAA;AAAA,MACrB,QAAA,EAAU,KAAK,QAAY,IAAA,EAAA;AAAA,MAC3B,GAAA,EAAK,KAAK,GAAO,IAAA,EAAA;AAAA,MACjB,SAAS,IAAK,CAAA,OAAA;AAAA,KAChB,CAAA;AAAA,GACF;AACF,CAAA;AAEAC,+BAAA,CAAgB,SAAS,CAAA;;;;"}
1
+ {"version":3,"file":"MenuTable.js","sources":["../../../../src/dataview/menu/MenuTable.ts"],"sourcesContent":["import {\n DataTable,\n DataTableOptions,\n TableActionColumn,\n TableColumn,\n} from \"@maketribe/dm\";\nimport { defineDataTable } from \"../../define-data-table\";\nimport type { MenuItem, MenuResult } from \"./MenuForm\";\nimport { DVQueryable } from \"@maketribe/request\";\n\nexport class MenuTable<T extends MenuItem = MenuItem> extends DataTable<\n MenuResult,\n T\n> {\n constructor(options: Omit<DataTableOptions, \"name\"> = {}) {\n super({ name: \"ms-menu\", ...options });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.setColumns([\n new TableColumn({ name: \"id\", label: \"编号\", visible: false }),\n new TableColumn({ name: \"title\", label: \"菜单描述\" }),\n new TableActionColumn(),\n ]);\n }\n\n formatItem(item: MenuResult): T {\n return {\n id: item.id,\n title: item.title || \"\",\n iconName: item.iconName || \"\",\n pid: item.pid || \"\",\n routeId: item.routeId,\n } as T;\n }\n}\n\ndefineDataTable(MenuTable);\n"],"names":["DataTable","TableColumn","TableActionColumn","defineDataTable"],"mappings":";;;;;AAUO,MAAM,kBAAiDA,YAG5D,CAAA;AAAA,EACA,WAAA,CAAY,OAA0C,GAAA,EAAI,EAAA;AACxD,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,SAAW,EAAA,GAAG,SAAS,CAAA,CAAA;AAAA,GACvC;AAAA,EAEA,MAAgB,UAAa,GAAA;AAC3B,IAAA,MAAM,MAAM,UAAW,EAAA,CAAA;AAEvB,IAAA,IAAA,CAAK,UAAW,CAAA;AAAA,MACd,IAAIC,eAAY,EAAE,IAAA,EAAM,MAAM,KAAO,EAAA,cAAA,EAAM,OAAS,EAAA,KAAA,EAAO,CAAA;AAAA,MAC3D,IAAIA,cAAY,CAAA,EAAE,MAAM,OAAS,EAAA,KAAA,EAAO,4BAAQ,CAAA;AAAA,MAChD,IAAIC,oBAAkB,EAAA;AAAA,KACvB,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,WAAW,IAAqB,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,IAAI,IAAK,CAAA,EAAA;AAAA,MACT,KAAA,EAAO,KAAK,KAAS,IAAA,EAAA;AAAA,MACrB,QAAA,EAAU,KAAK,QAAY,IAAA,EAAA;AAAA,MAC3B,GAAA,EAAK,KAAK,GAAO,IAAA,EAAA;AAAA,MACjB,SAAS,IAAK,CAAA,OAAA;AAAA,KAChB,CAAA;AAAA,GACF;AACF,CAAA;AAEAC,+BAAA,CAAgB,SAAS,CAAA;;;;"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var vue = require('vue');
4
+ var vueRouter = require('vue-router');
4
5
  var elementPlus = require('element-plus');
5
6
  require('@maketribe/dm');
6
7
  require('@maketribe/utils');
7
8
  var DataModelDefines = require('../../../../core/DataModelDefines.js');
8
- require('vue-router');
9
9
  require('@maketribe/request');
10
10
  require('@maketribe/locale');
11
11
  var normal = require('../default/single/list/normal.vue.js');
@@ -27,6 +27,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
27
27
  const handleActiveMemberConfirm = async () => {
28
28
  memberTable.approveMember();
29
29
  };
30
+ vueRouter.onBeforeRouteLeave(() => {
31
+ console.log("aaafdsa");
32
+ });
30
33
  return (_ctx, _cache) => {
31
34
  const _component_MKDataForm = vue.resolveComponent("MKDataForm");
32
35
  return vue.openBlock(), vue.createElementBlock(
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/page/index/dv/ms-member/index.vue"],"sourcesContent":["<template>\n <DefaultSingleListPage :data-table=\"memberTable\" />\n\n <ElDialog v-model=\"isShowActiveMemberForm\" class=\"dialogClass\">\n <MKDataForm :data-form=\"activeMemberForm\" />\n <template #footer>\n <ElButton @click=\"handleActiveMemberConfirm\" type=\"primary\">\n 确定\n </ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, reactive, ref } from \"vue\";\nimport { ElButton, ElDialog } from \"element-plus\";\nimport { DataModelDefines } from \"../../../../core\";\nimport { MemberTable } from \"../../../../dataview\";\nimport DefaultSingleListPage from \"../default/single/list/normal.vue\";\n\nconst isShowActiveMemberForm = ref(false);\n\nconst memberTable = reactive(\n DataModelDefines.instance.getDataTable(\"ms-member\")!\n) as MemberTable;\nconst activeMemberForm = computed(() => memberTable.activeMemberForm);\n\nmemberTable.activeMemberEvent.on(async (member) => {\n memberTable.activeMemberForm.getLoadingManager().startLoading();\n await memberTable.activeMemberForm.editRecord(member.id);\n memberTable.activeMemberForm.getLoadingManager().completeLoading();\n isShowActiveMemberForm.value = true;\n});\n\nconst handleActiveMemberConfirm = async () => {\n memberTable.approveMember();\n};\n</script>\n"],"names":["ref","reactive","DataModelDefines","computed"],"mappings":";;;;;;;;;;;;;;;AAoBA,IAAM,MAAA,sBAAA,GAAyBA,QAAI,KAAK,CAAA,CAAA;AAExC,IAAA,MAAM,WAAc,GAAAC,YAAA;AAAA,MAClBC,iCAAA,CAAiB,QAAS,CAAA,YAAA,CAAa,WAAW,CAAA;AAAA,KACpD,CAAA;AACA,IAAA,MAAM,gBAAmB,GAAAC,YAAA,CAAS,MAAM,WAAA,CAAY,gBAAgB,CAAA,CAAA;AAEpE,IAAY,WAAA,CAAA,iBAAA,CAAkB,EAAG,CAAA,OAAO,MAAW,KAAA;AACjD,MAAY,WAAA,CAAA,gBAAA,CAAiB,iBAAkB,EAAA,CAAE,YAAa,EAAA,CAAA;AAC9D,MAAA,MAAM,WAAY,CAAA,gBAAA,CAAiB,UAAW,CAAA,MAAA,CAAO,EAAE,CAAA,CAAA;AACvD,MAAY,WAAA,CAAA,gBAAA,CAAiB,iBAAkB,EAAA,CAAE,eAAgB,EAAA,CAAA;AACjE,MAAA,sBAAA,CAAuB,KAAQ,GAAA,IAAA,CAAA;AAAA,KAChC,CAAA,CAAA;AAED,IAAA,MAAM,4BAA4B,YAAY;AAC5C,MAAA,WAAA,CAAY,aAAc,EAAA,CAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/page/index/dv/ms-member/index.vue"],"sourcesContent":["<template>\n <DefaultSingleListPage :data-table=\"memberTable\" />\n\n <ElDialog v-model=\"isShowActiveMemberForm\" class=\"dialogClass\">\n <MKDataForm :data-form=\"activeMemberForm\" />\n <template #footer>\n <ElButton @click=\"handleActiveMemberConfirm\" type=\"primary\">\n 确定\n </ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, reactive, ref } from \"vue\";\nimport { onBeforeRouteLeave } from \"vue-router\";\nimport { ElButton, ElDialog } from \"element-plus\";\nimport { DataModelDefines } from \"../../../../core\";\nimport { MemberTable } from \"../../../../dataview\";\nimport DefaultSingleListPage from \"../default/single/list/normal.vue\";\n\nconst isShowActiveMemberForm = ref(false);\n\nconst memberTable = reactive(\n DataModelDefines.instance.getDataTable(\"ms-member\")!\n) as MemberTable;\nconst activeMemberForm = computed(() => memberTable.activeMemberForm);\n\nmemberTable.activeMemberEvent.on(async (member) => {\n memberTable.activeMemberForm.getLoadingManager().startLoading();\n await memberTable.activeMemberForm.editRecord(member.id);\n memberTable.activeMemberForm.getLoadingManager().completeLoading();\n isShowActiveMemberForm.value = true;\n});\n\nconst handleActiveMemberConfirm = async () => {\n memberTable.approveMember();\n};\n\nonBeforeRouteLeave(() => {\n console.log(\"aaafdsa\");\n});\n</script>\n"],"names":["ref","reactive","DataModelDefines","computed","onBeforeRouteLeave"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAM,MAAA,sBAAA,GAAyBA,QAAI,KAAK,CAAA,CAAA;AAExC,IAAA,MAAM,WAAc,GAAAC,YAAA;AAAA,MAClBC,iCAAA,CAAiB,QAAS,CAAA,YAAA,CAAa,WAAW,CAAA;AAAA,KACpD,CAAA;AACA,IAAA,MAAM,gBAAmB,GAAAC,YAAA,CAAS,MAAM,WAAA,CAAY,gBAAgB,CAAA,CAAA;AAEpE,IAAY,WAAA,CAAA,iBAAA,CAAkB,EAAG,CAAA,OAAO,MAAW,KAAA;AACjD,MAAY,WAAA,CAAA,gBAAA,CAAiB,iBAAkB,EAAA,CAAE,YAAa,EAAA,CAAA;AAC9D,MAAA,MAAM,WAAY,CAAA,gBAAA,CAAiB,UAAW,CAAA,MAAA,CAAO,EAAE,CAAA,CAAA;AACvD,MAAY,WAAA,CAAA,gBAAA,CAAiB,iBAAkB,EAAA,CAAE,eAAgB,EAAA,CAAA;AACjE,MAAA,sBAAA,CAAuB,KAAQ,GAAA,IAAA,CAAA;AAAA,KAChC,CAAA,CAAA;AAED,IAAA,MAAM,4BAA4B,YAAY;AAC5C,MAAA,WAAA,CAAY,aAAc,EAAA,CAAA;AAAA,KAC5B,CAAA;AAEA,IAAAC,4BAAA,CAAmB,MAAM;AACvB,MAAA,OAAA,CAAQ,IAAI,SAAS,CAAA,CAAA;AAAA,KACtB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,6 +6,7 @@ import '@maketribe/dm';
6
6
  import '../../dataview/material/MaterialForm.js';
7
7
  import '../../dataview/material/MaterialTable.js';
8
8
  import { MaterialMan } from '../../dataview/material/MaterialMan.js';
9
+ import { MKForm } from '../data-model/data-form/views/form/index.js';
9
10
 
10
11
  const _hoisted_1 = { style: { "display": "flex", "align-items": "center", "justify-content": "space-between" } };
11
12
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -57,7 +58,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
57
58
  ]),
58
59
  default: withCtx(() => [
59
60
  createElementVNode("div", null, [
60
- withDirectives(createVNode(unref(MKDataForm), { "data-form": __props.materialGroupForm }, null, 8, ["data-form"]), [
61
+ withDirectives((openBlock(), createBlock(unref(MKDataForm), { "data-form": __props.materialGroupForm }, {
62
+ default: withCtx(() => [
63
+ createVNode(unref(MKForm), { "data-form": __props.materialGroupForm }, null, 8, ["data-form"])
64
+ ]),
65
+ _: 1
66
+ /* STABLE */
67
+ }, 8, ["data-form"])), [
61
68
  [_directive_loading, loading.value]
62
69
  ]),
63
70
  createElementVNode("div", _hoisted_1, [
@@ -1 +1 @@
1
- {"version":3,"file":"material-group-form-popover.vue2.js","sources":["../../../../src/components/material-list/material-group-form-popover.vue"],"sourcesContent":["<template>\n <ElPopover\n v-model:visible=\"visible\"\n title=\"添加素材分组\"\n effect=\"light\"\n placement=\"right\"\n trigger=\"click\"\n width=\"320\"\n >\n <template #reference>\n <slot></slot>\n </template>\n\n <div>\n <MKDataForm :data-form=\"materialGroupForm\" v-loading=\"loading\" />\n <div\n style=\"\n display: flex;\n align-items: center;\n justify-content: space-between;\n \"\n >\n <ElButton\n type=\"primary\"\n :loading=\"!allowSubmit\"\n @click=\"handleSaveClick\"\n >\n 保存\n </ElButton>\n <ElButton @click=\"handleCancelClick\">取消</ElButton>\n </div>\n </div>\n </ElPopover>\n</template>\n\n<script setup lang=\"ts\">\nimport { Ref, computed, ref, unref } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport { MKDataForm } from \"../data-model/data-form\";\nimport { MaterialGroupForm, MaterialMan } from \"../../dataview/material\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n materialGroupForm: {\n type: MaterialGroupForm,\n required: true,\n },\n});\n\nconst visible: Ref<boolean> = ref(false);\n\nconst loading = computed(() => props.materialGroupForm.loading);\nconst allowSubmit = computed(\n () => !!(unref(loading) || !props.materialGroupForm.allowSubmit)\n);\n\nconst handleSaveClick = async () => {\n const result = await props.materialGroupForm.submit();\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n\n props.materialMan.materialGroupTree.load();\n\n visible.value = false;\n};\n\nconst handleCancelClick = () => {\n visible.value = false;\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAoDA,IAAM,MAAA,OAAA,GAAwB,IAAI,KAAK,CAAA,CAAA;AAEvC,IAAA,MAAM,OAAU,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,kBAAkB,OAAO,CAAA,CAAA;AAC9D,IAAA,MAAM,WAAc,GAAA,QAAA;AAAA,MAClB,MAAM,CAAC,EAAE,KAAA,CAAM,OAAO,CAAK,IAAA,CAAC,MAAM,iBAAkB,CAAA,WAAA,CAAA;AAAA,KACtD,CAAA;AAEA,IAAA,MAAM,kBAAkB,YAAY;AAClC,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,iBAAA,CAAkB,MAAO,EAAA,CAAA;AAEpD,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAU,SAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAEA,MAAM,KAAA,CAAA,WAAA,CAAY,kBAAkB,IAAK,EAAA,CAAA;AAEzC,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"material-group-form-popover.vue2.js","sources":["../../../../src/components/material-list/material-group-form-popover.vue"],"sourcesContent":["<template>\n <ElPopover\n v-model:visible=\"visible\"\n title=\"添加素材分组\"\n effect=\"light\"\n placement=\"right\"\n trigger=\"click\"\n width=\"320\"\n >\n <template #reference>\n <slot></slot>\n </template>\n\n <div>\n <MKDataForm :data-form=\"materialGroupForm\" v-loading=\"loading\">\n <MKForm :data-form=\"materialGroupForm\" />\n </MKDataForm>\n <div\n style=\"\n display: flex;\n align-items: center;\n justify-content: space-between;\n \"\n >\n <ElButton\n type=\"primary\"\n :loading=\"!allowSubmit\"\n @click=\"handleSaveClick\"\n >\n 保存\n </ElButton>\n <ElButton @click=\"handleCancelClick\">取消</ElButton>\n </div>\n </div>\n </ElPopover>\n</template>\n\n<script setup lang=\"ts\">\nimport { Ref, computed, ref, unref } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport { MKDataForm, MKForm } from \"../data-model/data-form\";\nimport { MaterialGroupForm, MaterialMan } from \"../../dataview/material\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n materialGroupForm: {\n type: MaterialGroupForm,\n required: true,\n },\n});\n\nconst visible: Ref<boolean> = ref(false);\n\nconst loading = computed(() => props.materialGroupForm.loading);\nconst allowSubmit = computed(\n () => !!(unref(loading) || !props.materialGroupForm.allowSubmit)\n);\n\nconst handleSaveClick = async () => {\n const result = await props.materialGroupForm.submit();\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n\n props.materialMan.materialGroupTree.load();\n\n visible.value = false;\n};\n\nconst handleCancelClick = () => {\n visible.value = false;\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,IAAM,MAAA,OAAA,GAAwB,IAAI,KAAK,CAAA,CAAA;AAEvC,IAAA,MAAM,OAAU,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,kBAAkB,OAAO,CAAA,CAAA;AAC9D,IAAA,MAAM,WAAc,GAAA,QAAA;AAAA,MAClB,MAAM,CAAC,EAAE,KAAA,CAAM,OAAO,CAAK,IAAA,CAAC,MAAM,iBAAkB,CAAA,WAAA,CAAA;AAAA,KACtD,CAAA;AAEA,IAAA,MAAM,kBAAkB,YAAY;AAClC,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,iBAAA,CAAkB,MAAO,EAAA,CAAA;AAEpD,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAU,SAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAEA,MAAM,KAAA,CAAA,WAAA,CAAY,kBAAkB,IAAK,EAAA,CAAA;AAEzC,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -79,7 +79,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
79
79
  const loading = computed(() => props.materialMan.materialGroupTree.loading);
80
80
  const handleNodeClick = (item) => {
81
81
  if (!item.children.length) {
82
- props.materialMan.setCurrentMaterialGroupId(item);
82
+ props.materialMan.setCurrentMaterialGroup(item.data);
83
83
  }
84
84
  };
85
85
  const handleAddClick = async (parent) => {
@@ -144,11 +144,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
144
144
  createVNode(unref(MKDataTable), {
145
145
  "auto-load": false,
146
146
  "data-table": materialGroupTree.value,
147
- "highlight-current": "",
148
- onNodeClick: handleNodeClick
147
+ "highlight-current": ""
149
148
  }, {
150
149
  default: withCtx(() => [
151
- createVNode(unref(MKTree), { "data-tree": materialGroupTree.value }, {
150
+ createVNode(unref(MKTree), {
151
+ "data-tree": materialGroupTree.value,
152
+ onNodeClick: handleNodeClick
153
+ }, {
152
154
  "node-tools": withCtx(({ data }) => [
153
155
  createElementVNode("div", {
154
156
  class: "mk-material-group__tools",
@@ -167,7 +169,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
167
169
  }, {
168
170
  default: withCtx(() => [
169
171
  createVNode(_component_ElIcon, {
170
- onClick: ($event) => handleAddClick(data)
172
+ onClick: ($event) => handleAddClick(data.data)
171
173
  }, {
172
174
  default: withCtx(() => [
173
175
  createVNode(unref(Plus))
@@ -199,7 +201,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
199
201
  }, {
200
202
  default: withCtx(() => [
201
203
  createVNode(_component_ElIcon, {
202
- onClick: ($event) => handleEditClick(data)
204
+ onClick: ($event) => handleEditClick(data.data)
203
205
  }, {
204
206
  default: withCtx(() => [
205
207
  createVNode(unref(Edit))
@@ -226,7 +228,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
226
228
  default: withCtx(() => [
227
229
  createElementVNode("span", _hoisted_7, [
228
230
  createVNode(_component_ElIcon, {
229
- onClick: ($event) => handleDeleteClick(data)
231
+ onClick: ($event) => handleDeleteClick(data.data)
230
232
  }, {
231
233
  default: withCtx(() => [
232
234
  createVNode(unref(Delete))
@@ -1 +1 @@
1
- {"version":3,"file":"material-group.vue2.js","sources":["../../../../src/components/material-list/material-group.vue"],"sourcesContent":["<template>\n <div class=\"mk-material-group\" v-loading=\"loading\">\n <div class=\"mk-material-group__header\">\n <div class=\"mk-material-group__header-title\">素材分组</div>\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElButton\n @click=\"handleAddClick\"\n :icon=\"Plus\"\n size=\"small\"\n type=\"primary\"\n >\n </ElButton>\n </MaterialGroupFromPopper>\n </div>\n <div class=\"mk-material-group__main\">\n <ElScrollbar height=\"100%\">\n <MKDataTable\n :auto-load=\"false\"\n :data-table=\"materialGroupTree\"\n highlight-current\n @nodeClick=\"handleNodeClick\"\n >\n <MKTree :data-tree=\"materialGroupTree\">\n <template #node-tools=\"{ data }\">\n <div class=\"mk-material-group__tools\" @click.stop>\n <ElTooltip content=\"添加\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleAddClick(data)\"><Plus /></ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"编辑\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleEditClick(data)\"><Edit /></ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"删除\">\n <span class=\"mk-material-group__tools-item\">\n <ElIcon @click=\"handleDeleteClick(data)\"><Delete /></ElIcon>\n </span>\n </ElTooltip>\n </div>\n </template>\n </MKTree>\n </MKDataTable>\n </ElScrollbar>\n </div>\n <div class=\"mk-material-group__footer\"></div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, reactive } from \"vue\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { Plus, Edit, Delete } from \"@element-plus/icons-vue\";\nimport {\n MaterialMan,\n MaterialGroupNode,\n MaterialGroupForm,\n} from \"../../dataview\";\nimport { MKDataTable, MKTree } from \"../data-model/data-table\";\n\nimport { useI18n } from \"../../composables\";\nimport MaterialGroupFromPopper from \"./material-group-form-popover.vue\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n});\n\nconst i18n = useI18n()!;\n\nconst materialGroupForm = reactive(\n new MaterialGroupForm()\n) as MaterialGroupForm;\n\nconst materialGroupTree = computed(() => props.materialMan.materialGroupTree);\n\nconst loading = computed(() => props.materialMan.materialGroupTree.loading);\n\nconst handleNodeClick = (item: MaterialGroupNode) => {\n if (!item.children.length) {\n props.materialMan.setCurrentMaterialGroupId(item);\n }\n};\n\nconst handleAddClick = async (parent?: MaterialGroupNode) => {\n materialGroupForm.addRecord();\n\n await nextTick();\n\n materialGroupForm.setData({\n ...materialGroupForm.data,\n parentGroupId: parent?.id || null,\n } as MaterialGroupNode);\n};\n\nconst handleEditClick = (item: MaterialGroupNode) => {\n materialGroupForm.editRecord(item);\n};\n\nconst handleDeleteClick = async (item: MaterialGroupNode) => {\n const isConfirm = await ElMessageBox.confirm(\n i18n.translate(\"mk.dataTablePage.deleteMessage\"),\n i18n.translate(\"mk.dataTablePage.deleteTitle\"),\n { type: \"warning\" }\n ).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n const result = await props.materialMan.materialGroupTree.deleteAfterRefresh(\n item\n );\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,IAAA,MAAM,OAAO,OAAQ,EAAA,CAAA;AAErB,IAAA,MAAM,iBAAoB,GAAA,QAAA;AAAA,MACxB,IAAI,iBAAkB,EAAA;AAAA,KACxB,CAAA;AAEA,IAAA,MAAM,iBAAoB,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,YAAY,iBAAiB,CAAA,CAAA;AAE5E,IAAA,MAAM,UAAU,QAAS,CAAA,MAAM,KAAM,CAAA,WAAA,CAAY,kBAAkB,OAAO,CAAA,CAAA;AAE1E,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA4B,KAAA;AACnD,MAAI,IAAA,CAAC,IAAK,CAAA,QAAA,CAAS,MAAQ,EAAA;AACzB,QAAM,KAAA,CAAA,WAAA,CAAY,0BAA0B,IAAI,CAAA,CAAA;AAAA,OAClD;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,cAAA,GAAiB,OAAO,MAA+B,KAAA;AAC3D,MAAA,iBAAA,CAAkB,SAAU,EAAA,CAAA;AAE5B,MAAA,MAAM,QAAS,EAAA,CAAA;AAEf,MAAA,iBAAA,CAAkB,OAAQ,CAAA;AAAA,QACxB,GAAG,iBAAkB,CAAA,IAAA;AAAA,QACrB,aAAA,EAAe,QAAQ,EAAM,IAAA,IAAA;AAAA,OACT,CAAA,CAAA;AAAA,KACxB,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA4B,KAAA;AACnD,MAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,KACnC,CAAA;AAEA,IAAM,MAAA,iBAAA,GAAoB,OAAO,IAA4B,KAAA;AAC3D,MAAM,MAAA,SAAA,GAAY,MAAM,YAAa,CAAA,OAAA;AAAA,QACnC,IAAA,CAAK,UAAU,gCAAgC,CAAA;AAAA,QAC/C,IAAA,CAAK,UAAU,8BAA8B,CAAA;AAAA,QAC7C,EAAE,MAAM,SAAU,EAAA;AAAA,OAClB,CAAA,IAAA;AAAA,QACA,MAAM,IAAA;AAAA,QACN,MAAM,KAAA;AAAA,OACR,CAAA;AAEA,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,WAAA,CAAY,iBAAkB,CAAA,kBAAA;AAAA,QACvD,IAAA;AAAA,OACF,CAAA;AAEA,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAU,SAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"material-group.vue2.js","sources":["../../../../src/components/material-list/material-group.vue"],"sourcesContent":["<template>\n <div class=\"mk-material-group\" v-loading=\"loading\">\n <div class=\"mk-material-group__header\">\n <div class=\"mk-material-group__header-title\">素材分组</div>\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElButton\n @click=\"handleAddClick\"\n :icon=\"Plus\"\n size=\"small\"\n type=\"primary\"\n >\n </ElButton>\n </MaterialGroupFromPopper>\n </div>\n <div class=\"mk-material-group__main\">\n <ElScrollbar height=\"100%\">\n <MKDataTable\n :auto-load=\"false\"\n :data-table=\"materialGroupTree\"\n highlight-current\n >\n <MKTree :data-tree=\"materialGroupTree\" @nodeClick=\"handleNodeClick\">\n <template #node-tools=\"{ data }\">\n <div class=\"mk-material-group__tools\" @click.stop>\n <ElTooltip content=\"添加\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleAddClick(data.data)\">\n <Plus />\n </ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"编辑\">\n <span class=\"mk-material-group__tools-item\">\n <MaterialGroupFromPopper\n :material-man=\"materialMan\"\n :material-group-form=\"materialGroupForm\"\n >\n <ElIcon @click=\"handleEditClick(data.data)\">\n <Edit />\n </ElIcon>\n </MaterialGroupFromPopper>\n </span>\n </ElTooltip>\n <ElTooltip content=\"删除\">\n <span class=\"mk-material-group__tools-item\">\n <ElIcon @click=\"handleDeleteClick(data.data)\">\n <Delete />\n </ElIcon>\n </span>\n </ElTooltip>\n </div>\n </template>\n </MKTree>\n </MKDataTable>\n </ElScrollbar>\n </div>\n <div class=\"mk-material-group__footer\"></div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, reactive } from \"vue\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { Plus, Edit, Delete } from \"@element-plus/icons-vue\";\nimport {\n MaterialMan,\n MaterialGroupNode,\n MaterialGroupForm,\n} from \"../../dataview\";\nimport { MKDataTable, MKTree } from \"../data-model/data-table\";\n\nimport { useI18n } from \"../../composables\";\nimport MaterialGroupFromPopper from \"./material-group-form-popover.vue\";\nimport { DataTreeNode } from \"@maketribe/dm\";\n\nconst props = defineProps({\n materialMan: {\n type: MaterialMan,\n required: true,\n },\n});\n\nconst i18n = useI18n()!;\n\nconst materialGroupForm = reactive(\n new MaterialGroupForm()\n) as MaterialGroupForm;\n\nconst materialGroupTree = computed(() => props.materialMan.materialGroupTree);\n\nconst loading = computed(() => props.materialMan.materialGroupTree.loading);\n\nconst handleNodeClick = (item: DataTreeNode<MaterialGroupNode>) => {\n if (!item.children.length) {\n props.materialMan.setCurrentMaterialGroup(item.data);\n }\n};\n\nconst handleAddClick = async (parent?: MaterialGroupNode) => {\n materialGroupForm.addRecord();\n\n await nextTick();\n\n materialGroupForm.setData({\n ...materialGroupForm.data,\n parentGroupId: parent?.id || null,\n } as MaterialGroupNode);\n};\n\nconst handleEditClick = (item: MaterialGroupNode) => {\n materialGroupForm.editRecord(item);\n};\n\nconst handleDeleteClick = async (item: MaterialGroupNode) => {\n const isConfirm = await ElMessageBox.confirm(\n i18n.translate(\"mk.dataTablePage.deleteMessage\"),\n i18n.translate(\"mk.dataTablePage.deleteTitle\"),\n { type: \"warning\" }\n ).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n const result = await props.materialMan.materialGroupTree.deleteAfterRefresh(\n item\n );\n\n if (result.data.code !== 200) {\n ElMessage.error(result.data.msg);\n return;\n }\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA,IAAA,MAAM,OAAO,OAAQ,EAAA,CAAA;AAErB,IAAA,MAAM,iBAAoB,GAAA,QAAA;AAAA,MACxB,IAAI,iBAAkB,EAAA;AAAA,KACxB,CAAA;AAEA,IAAA,MAAM,iBAAoB,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,YAAY,iBAAiB,CAAA,CAAA;AAE5E,IAAA,MAAM,UAAU,QAAS,CAAA,MAAM,KAAM,CAAA,WAAA,CAAY,kBAAkB,OAAO,CAAA,CAAA;AAE1E,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA0C,KAAA;AACjE,MAAI,IAAA,CAAC,IAAK,CAAA,QAAA,CAAS,MAAQ,EAAA;AACzB,QAAM,KAAA,CAAA,WAAA,CAAY,uBAAwB,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,OACrD;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,cAAA,GAAiB,OAAO,MAA+B,KAAA;AAC3D,MAAA,iBAAA,CAAkB,SAAU,EAAA,CAAA;AAE5B,MAAA,MAAM,QAAS,EAAA,CAAA;AAEf,MAAA,iBAAA,CAAkB,OAAQ,CAAA;AAAA,QACxB,GAAG,iBAAkB,CAAA,IAAA;AAAA,QACrB,aAAA,EAAe,QAAQ,EAAM,IAAA,IAAA;AAAA,OACT,CAAA,CAAA;AAAA,KACxB,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,IAA4B,KAAA;AACnD,MAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,KACnC,CAAA;AAEA,IAAM,MAAA,iBAAA,GAAoB,OAAO,IAA4B,KAAA;AAC3D,MAAM,MAAA,SAAA,GAAY,MAAM,YAAa,CAAA,OAAA;AAAA,QACnC,IAAA,CAAK,UAAU,gCAAgC,CAAA;AAAA,QAC/C,IAAA,CAAK,UAAU,8BAA8B,CAAA;AAAA,QAC7C,EAAE,MAAM,SAAU,EAAA;AAAA,OAClB,CAAA,IAAA;AAAA,QACA,MAAM,IAAA;AAAA,QACN,MAAM,KAAA;AAAA,OACR,CAAA;AAEA,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,WAAA,CAAY,iBAAkB,CAAA,kBAAA;AAAA,QACvD,IAAA;AAAA,OACF,CAAA;AAEA,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAU,SAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC/B,QAAA,OAAA;AAAA,OACF;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -68,15 +68,8 @@ class Tabs extends Disposable {
68
68
  this.tabsChangeEvent.emit({ tabs });
69
69
  }
70
70
  switchTab(tab) {
71
- if (!tab) {
72
- this.setCurrentTab(null);
73
- return;
74
- }
75
- let _tab = this._tabs.find((item) => item.getID() === tab.getID());
76
- if (!_tab) {
77
- this.setTabs([...this.getTabs(), tab]);
78
- }
79
71
  this.setCurrentTab(tab);
72
+ return;
80
73
  }
81
74
  findTabByID(id) {
82
75
  return this.getTabs().find((tab) => tab.id === id) ?? null;