@maketribe/ms-app 3.2.1 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +8 -6
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js +18 -3
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js +12 -4
- package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/tree/tree.js.map +1 -1
- package/dist/cjs/index.js +0 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +4 -3
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js +7 -7
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
- package/dist/cjs/modules/cms/index.js +0 -4
- package/dist/cjs/modules/cms/index.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +32 -28
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-group.vue.js +0 -3
- package/dist/cjs/modules/ms/components/material-list/material-group.vue.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.js +3 -0
- package/dist/cjs/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-member-role/MsMemberRoleTable.js +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-member-role/MsMemberRoleTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js +8 -6
- package/dist/cjs/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js.map +1 -1
- package/dist/cjs/page/index/dv/default/single/list/normal.vue2.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +8 -6
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js +19 -4
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover-options.js.map +1 -1
- package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js +13 -5
- package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/tree/tree.js.map +1 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/cms/components/part-tree/index.vue.js +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +4 -3
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js +7 -7
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
- package/dist/esm/modules/cms/index.js +0 -4
- package/dist/esm/modules/cms/index.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +32 -28
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/components/material-list/material-group.vue.js +1 -4
- package/dist/esm/modules/ms/components/material-list/material-group.vue.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.js +3 -0
- package/dist/esm/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-member-role/MsMemberRoleTable.js +0 -1
- package/dist/esm/modules/ms/dataviews/ms-member-role/MsMemberRoleTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js +8 -6
- package/dist/esm/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js.map +1 -1
- package/dist/esm/page/index/dv/default/single/list/normal.vue2.js.map +1 -1
- package/dist/types/components/data-model/data-filter-popover/data-filter-popover-options.d.ts +1 -1
- package/dist/types/components/data-model/data-filter-popover/data-filter-popover.d.ts +2 -2
- package/dist/types/components/data-model/data-filter-popover/index.d.ts +2 -2
- package/dist/types/modules/cms/dataviews/cms-part-types/index.d.ts +0 -1
- package/dist/types/modules/cms/dataviews/cms-parts/index.d.ts +0 -1
- package/dist/types/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-part-types/CmsPartTypesTree.js +0 -33
- package/dist/cjs/modules/cms/dataviews/cms-part-types/CmsPartTypesTree.js.map +0 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartTable.js +0 -91
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartTable.js.map +0 -1
- package/dist/esm/modules/cms/dataviews/cms-part-types/CmsPartTypesTree.js +0 -33
- package/dist/esm/modules/cms/dataviews/cms-part-types/CmsPartTypesTree.js.map +0 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartTable.js +0 -91
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartTable.js.map +0 -1
- package/dist/types/modules/cms/dataviews/cms-part-types/CmsPartTypesTree.d.ts +0 -7
- package/dist/types/modules/cms/dataviews/cms-parts/CmsPartTable.d.ts +0 -7
- package/dist/types/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTable.d.ts +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-contents/index.vue"],"sourcesContent":["<template>\
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-contents/index.vue"],"sourcesContent":["<template>\n <div class=\"mk-cms-contents__warp\">\n <el-page-header style=\"background-color: #fff; padding: 10px\" :icon=\"null\">\n <template #title>\n <h3 style=\"color: var(--el-text-color-regular); margin-left: 10px\">\n <MKSvgIcon iconClass=\"Memo\" style=\"margin-right: 5px\" />\n 内容管理\n </h3>\n </template>\n <template #extra>\n <div class=\"flex items-center\">\n <el-button\n type=\"primary\"\n size=\"large\"\n text\n @click=\"showPartFormHandle\"\n >\n 添加栏目\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-left: 10px\" />\n </el-button>\n </div>\n </template>\n </el-page-header>\n <div class=\"mk-cms-contents__body\">\n <MKPartTree\n class=\"mk-cms-contents__body__left\"\n @select=\"selectPartHandle\"\n @edit=\"editPartHandle\"\n @add=\"showPartFormHandle\"\n @deleteSuccessfully=\"deletePartHandle\"\n ref=\"partTreeRef\"\n />\n <el-tabs\n v-if=\"curSelectPartItem\"\n v-model=\"activeTabName\"\n class=\"mk-cms-contents__body__right\"\n >\n <el-tab-pane label=\"文章列表\" name=\"article-list\">\n <ArticleList\n v-if=\"activeTabName == 'article-list'\"\n :part=\"curSelectPartItem\"\n />\n </el-tab-pane>\n <el-tab-pane label=\"栏目信息\" name=\"part\">\n <PartInfo :part=\"curSelectPartItem\" v-if=\"activeTabName == 'part'\" />\n </el-tab-pane>\n <el-tab-pane\n label=\"栏目内容\"\n name=\"part-content\"\n style=\"background-color: #f4f4f4\"\n v-if=\"curSelectPartItem.cmsPartTypeId != 1\"\n >\n <MKDocEditor\n v-if=\"activeTabName == 'part-content'\"\n placeholder=\"从这里开始写正文...\"\n />\n </el-tab-pane>\n </el-tabs>\n <el-empty v-else description=\"请选择栏目\" style=\"width: 100%\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { MKPartTree } from \"../../components\";\nimport ArticleList from \"./components/article-list.vue\";\nimport PartInfo from \"./components/part-info.vue\";\nimport { MKCopyContainer, MKDocEditor } from \"../../../../components\";\nimport { onMounted, reactive, ref } from \"vue\";\nimport { DataForm, Dialoger, FormColumn, isWhereFilter } from \"@maketribe/dm\";\nimport { CmsPartForm, CmsPartTypesTable } from \"../../dataviews\";\nimport { useRoute } from \"vue-router\";\n//路由\nconst route = useRoute();\n\n// 激活的tab\nconst activeTabName = ref(\"article-list\");\n\n// 当前选中的菜单\nconst curSelectPartItem = ref(null as any);\n// 栏目树ref\nconst partTreeRef = ref(null);\n\n// 选择栏目\nconst selectPartHandle = (item: any) => {\n curSelectPartItem.value = item;\n};\n//删除栏目\nconst deletePartHandle = (item: any) => {\n if (item.id == curSelectPartItem.value.id) {\n curSelectPartItem.value = null;\n }\n};\n//编辑栏目\nconst editPartHandle = (item: any) => {\n curSelectPartItem.value = item;\n activeTabName.value = \"part\";\n};\n\nif (!!route.query.partId) {\n curSelectPartItem.value = { id: route.query.partId };\n}\n\n//栏目表单\nconst partForm = reactive(\n new (class extends CmsPartForm {\n protected async initialize() {\n await super.initialize();\n this.setColumns([\n new FormColumn({\n name: \"cmsPartTypeId\",\n label: \"栏目类型\",\n componentInfo: \"MKFormDataSelect\",\n defaultValue: \"2\",\n componentProps: {\n dataTable: this.register(\n new CmsPartTypesTable()\n ) as CmsPartTypesTable,\n },\n required: true,\n }),\n new FormColumn({\n name: \"name\",\n label: \"栏目名称\",\n required: true,\n }),\n new FormColumn({\n name: \"title\",\n label: \"栏目标题\",\n required: true,\n }),\n ]);\n }\n })()\n);\n/**\n * 显示添加栏目表单\n */\nconst showPartFormHandle = async (item?: any) => {\n await Dialoger.dataFormDialog({\n dataForm: partForm as CmsPartForm,\n });\n\n if (item.id) {\n partForm.addRecord({\n parentId: item.id,\n });\n }\n};\n//\npartForm.submittedEvent.on(() => {\n (partTreeRef.value! as any).dataTree?.load();\n});\n\n// 挂在完成之后\nonMounted(async () => {});\n</script>\n"],"names":["useRoute","ref","reactive","CmsPartForm","FormColumn","CmsPartTypesTable","Dialoger","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,UAAM,QAAQA,UAAAA;AAGR,UAAA,gBAAgBC,QAAI,cAAc;AAGlC,UAAA,oBAAoBA,QAAI,IAAW;AAEnC,UAAA,cAAcA,QAAI,IAAI;AAGtB,UAAA,mBAAmB,CAAC,SAAc;AACtC,wBAAkB,QAAQ;AAAA,IAAA;AAGtB,UAAA,mBAAmB,CAAC,SAAc;AACtC,UAAI,KAAK,MAAM,kBAAkB,MAAM,IAAI;AACzC,0BAAkB,QAAQ;AAAA,MAC5B;AAAA,IAAA;AAGI,UAAA,iBAAiB,CAAC,SAAc;AACpC,wBAAkB,QAAQ;AAC1B,oBAAc,QAAQ;AAAA,IAAA;AAGxB,QAAI,CAAC,CAAC,MAAM,MAAM,QAAQ;AACxB,wBAAkB,QAAQ,EAAE,IAAI,MAAM,MAAM;IAC9C;AAGA,UAAM,WAAWC,IAAA;AAAA,MACf,IAAK,cAAcC,YAAAA,YAAY;AAAA,QAC7B,MAAgB,aAAa;AAC3B,gBAAM,MAAM;AACZ,eAAK,WAAW;AAAA,YACd,IAAIC,cAAW;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,eAAe;AAAA,cACf,cAAc;AAAA,cACd,gBAAgB;AAAA,gBACd,WAAW,KAAK;AAAA,kBACd,IAAIC,oCAAkB;AAAA,gBACxB;AAAA,cACF;AAAA,cACA,UAAU;AAAA,YAAA,CACX;AAAA,YACD,IAAID,cAAW;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,UAAU;AAAA,YAAA,CACX;AAAA,YACD,IAAIA,cAAW;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,UAAU;AAAA,YAAA,CACX;AAAA,UAAA,CACF;AAAA,QACH;AAAA,MAAA,EACC;AAAA,IAAA;AAKC,UAAA,qBAAqB,OAAO,SAAe;AAC/C,YAAME,GAAAA,SAAS,eAAe;AAAA,QAC5B,UAAU;AAAA,MAAA,CACX;AAED,UAAI,KAAK,IAAI;AACX,iBAAS,UAAU;AAAA,UACjB,UAAU,KAAK;AAAA,QAAA,CAChB;AAAA,MACH;AAAA,IAAA;AAGO,aAAA,eAAe,GAAG,MAAM;;AAC9B,wBAAY,MAAe,aAA3B,mBAAqC;AAAA,IAAK,CAC5C;AAGDC,QAAAA,UAAU,YAAY;AAAA,IAAA,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -108,9 +108,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
110
|
};
|
|
111
|
-
vue.onMounted(() => {
|
|
112
|
-
console.log(treeRef.value);
|
|
113
|
-
});
|
|
114
111
|
return (_ctx, _cache) => {
|
|
115
112
|
const _component_ElButton = vue.resolveComponent("ElButton");
|
|
116
113
|
const _component_ElIcon = vue.resolveComponent("ElIcon");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-group.vue.js","sources":["../../../../../../src/modules/ms/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 :data-table=\"materialGroupTree\" highlight-current>\n <MKTree\n :data-tree=\"materialGroupTree\"\n @nodeClick=\"handleNodeClick\"\n ref=\"treeRef\"\n >\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, ref, Ref, onMounted } from \"vue\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { Plus, Edit, Delete } from \"@element-plus/icons-vue\";\nimport {\n MsMaterialMan,\n MsMaterialGroupNode,\n MsMaterialGroupForm,\n} from \"../../dataviews\";\nimport { MKDataTable, MKTree } from \"../../../../components\";\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: MsMaterialMan,\n required: true,\n },\n});\n\nconst i18n = useI18n()!;\n\nconst materialGroupForm = reactive(\n new MsMaterialGroupForm()\n) as MsMaterialGroupForm;\n\nconst treeRef: Ref<typeof MKTree | null> = ref(null);\n\nconst materialGroupTree = computed(() => props.materialMan.materialGroupTree);\n\nconst loading = computed(() => props.materialMan.materialGroupTree.loading);\n\nconst handleNodeClick = (item: DataTreeNode<MsMaterialGroupNode>) => {\n if (!item.children.length) {\n props.materialMan.setCurrentMaterialGroup(item.data);\n }\n};\n\nconst handleAddClick = async (parent?: MsMaterialGroupNode) => {\n materialGroupForm.addRecord();\n\n await nextTick();\n\n materialGroupForm.setData({\n ...materialGroupForm.data,\n parentGroupId: parent?.id || null,\n } as MsMaterialGroupNode);\n};\n\nconst handleEditClick = (item: MsMaterialGroupNode) => {\n materialGroupForm.editRecord(item);\n};\n\nconst handleDeleteClick = async (item: MsMaterialGroupNode) => {\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
|
|
1
|
+
{"version":3,"file":"material-group.vue.js","sources":["../../../../../../src/modules/ms/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 :data-table=\"materialGroupTree\" highlight-current>\n <MKTree\n :data-tree=\"materialGroupTree\"\n @nodeClick=\"handleNodeClick\"\n ref=\"treeRef\"\n >\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, ref, Ref, onMounted } from \"vue\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { Plus, Edit, Delete } from \"@element-plus/icons-vue\";\nimport {\n MsMaterialMan,\n MsMaterialGroupNode,\n MsMaterialGroupForm,\n} from \"../../dataviews\";\nimport { MKDataTable, MKTree } from \"../../../../components\";\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: MsMaterialMan,\n required: true,\n },\n});\n\nconst i18n = useI18n()!;\n\nconst materialGroupForm = reactive(\n new MsMaterialGroupForm()\n) as MsMaterialGroupForm;\n\nconst treeRef: Ref<typeof MKTree | null> = ref(null);\n\nconst materialGroupTree = computed(() => props.materialMan.materialGroupTree);\n\nconst loading = computed(() => props.materialMan.materialGroupTree.loading);\n\nconst handleNodeClick = (item: DataTreeNode<MsMaterialGroupNode>) => {\n if (!item.children.length) {\n props.materialMan.setCurrentMaterialGroup(item.data);\n }\n};\n\nconst handleAddClick = async (parent?: MsMaterialGroupNode) => {\n materialGroupForm.addRecord();\n\n await nextTick();\n\n materialGroupForm.setData({\n ...materialGroupForm.data,\n parentGroupId: parent?.id || null,\n } as MsMaterialGroupNode);\n};\n\nconst handleEditClick = (item: MsMaterialGroupNode) => {\n materialGroupForm.editRecord(item);\n};\n\nconst handleDeleteClick = async (item: MsMaterialGroupNode) => {\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","MsMaterialGroupForm","ref","computed","nextTick","ElMessageBox","ElMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmFA,UAAM,QAAQ;AAOd,UAAM,OAAOA,QAAAA;AAEb,UAAM,oBAAoBC,IAAA;AAAA,MACxB,IAAIC,wCAAoB;AAAA,IAAA;AAGpB,UAAA,UAAqCC,QAAI,IAAI;AAEnD,UAAM,oBAAoBC,IAAAA,SAAS,MAAM,MAAM,YAAY,iBAAiB;AAE5E,UAAM,UAAUA,IAAAA,SAAS,MAAM,MAAM,YAAY,kBAAkB,OAAO;AAEpE,UAAA,kBAAkB,CAAC,SAA4C;AAC/D,UAAA,CAAC,KAAK,SAAS,QAAQ;AACnB,cAAA,YAAY,wBAAwB,KAAK,IAAI;AAAA,MACrD;AAAA,IAAA;AAGI,UAAA,iBAAiB,OAAO,WAAiC;AAC7D,wBAAkB,UAAU;AAE5B,YAAMC,IAAS,SAAA;AAEf,wBAAkB,QAAQ;AAAA,QACxB,GAAG,kBAAkB;AAAA,QACrB,gBAAe,iCAAQ,OAAM;AAAA,MAAA,CACP;AAAA,IAAA;AAGpB,UAAA,kBAAkB,CAAC,SAA8B;AACrD,wBAAkB,WAAW,IAAI;AAAA,IAAA;AAG7B,UAAA,oBAAoB,OAAO,SAA8B;AACvD,YAAA,YAAY,MAAMC,YAAAA,aAAa;AAAA,QACnC,KAAK,UAAU,gCAAgC;AAAA,QAC/C,KAAK,UAAU,8BAA8B;AAAA,QAC7C,EAAE,MAAM,UAAU;AAAA,MAAA,EAClB;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAGR,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEA,YAAM,SAAS,MAAM,MAAM,YAAY,kBAAkB;AAAA,QACvD;AAAA,MAAA;AAGE,UAAA,OAAO,KAAK,SAAS,KAAK;AAClBC,oBAAAA,UAAA,MAAM,OAAO,KAAK,GAAG;AAC/B;AAAA,MACF;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -25,6 +25,9 @@ const _MsMaterialGroupTree = class _MsMaterialGroupTree extends (_b = dm.DataTre
|
|
|
25
25
|
load(params) {
|
|
26
26
|
return this.loadAll(params);
|
|
27
27
|
}
|
|
28
|
+
nodeHasChildren(node) {
|
|
29
|
+
return node.children.length > 0;
|
|
30
|
+
}
|
|
28
31
|
getCurrentNode() {
|
|
29
32
|
if (this.currentDataTreeNode) {
|
|
30
33
|
return this.currentDataTreeNode;
|
package/dist/cjs/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsMaterialGroupTree.js","sources":["../../../../../../../src/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.ts"],"sourcesContent":["import { DataTableOptions, DataTree, DataTreeNode } from \"@maketribe/dm\";\
|
|
1
|
+
{"version":3,"file":"MsMaterialGroupTree.js","sources":["../../../../../../../src/modules/ms/dataviews/ms-material/ms-material-group/MsMaterialGroupTree.ts"],"sourcesContent":["import { DataTableOptions, DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { MsMaterialGroup } from \"./MsMaterialGroupForm\";\nimport { ResponseConfig, R } from \"@maketribe/request\";\nimport { DATA_MODEL_NAME } from \"../../../../../constants\";\nimport { MODULE_NAME } from \"../../../constants\";\n\nexport type MsMaterialGroupNode = MsMaterialGroup & {\n children: MsMaterialGroupNode[];\n};\n\nexport class MsMaterialGroupTree extends DataTree<MsMaterialGroupNode> {\n static [DATA_MODEL_NAME]: string = \"mk-material-group\";\n\n currentDataTreeNode: DataTreeNode<MsMaterialGroupNode> | null;\n\n constructor(options: DataTableOptions = {}) {\n super({\n name: MsMaterialGroupTree[DATA_MODEL_NAME],\n moduleName: MODULE_NAME,\n props: { label: \"desc\", parent: \"parentGroupId\" },\n ...options,\n });\n\n this.currentDataTreeNode = null;\n }\n\n formatItem(item: MsMaterialGroupNode): MsMaterialGroupNode {\n item.children = item.children ?? [];\n\n return item;\n }\n\n load(\n params?: Record<string, any>\n ): Promise<\n ResponseConfig<R<MsMaterialGroupNode[]> & { totalRecCount: string }>\n > {\n return this.loadAll(params);\n }\n\n public nodeHasChildren(node: DataTreeNode<MsMaterialGroupNode>): boolean {\n return node.children.length > 0;\n }\n\n getCurrentNode() {\n if (this.currentDataTreeNode) {\n return this.currentDataTreeNode;\n }\n\n const getFirstNode = (\n nodes: DataTreeNode<MsMaterialGroupNode>[]\n ): DataTreeNode<MsMaterialGroupNode> | null => {\n const node = nodes[0];\n\n if (node.children.length) {\n return getFirstNode(node.children);\n }\n\n return node;\n };\n\n if (this.rootNodes.length === 0) {\n return null;\n }\n\n return (this.currentDataTreeNode = getFirstNode(this.rootNodes));\n }\n\n setCurrentNode(node: DataTreeNode<MsMaterialGroupNode> | null) {\n this.currentDataTreeNode = node;\n }\n}\n"],"names":["DataTree","DATA_MODEL_NAME","MODULE_NAME"],"mappings":";;;;;;;;;AAUO,MAAM,uBAAN,MAAM,8BAA4BA,QAAAA,UAC/BC,eAAAA,iBAD+BD,IAA8B;AAAA,EAKrE,YAAY,UAA4B,IAAI;AACpC,UAAA;AAAA,MACJ,MAAM,qBAAoBC,yBAAe;AAAA,MACzC,YAAYC,MAAA;AAAA,MACZ,OAAO,EAAE,OAAO,QAAQ,QAAQ,gBAAgB;AAAA,MAChD,GAAG;AAAA,IAAA,CACJ;AARH;AAUE,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,WAAW,MAAgD;AACpD,SAAA,WAAW,KAAK,YAAY,CAAA;AAE1B,WAAA;AAAA,EACT;AAAA,EAEA,KACE,QAGA;AACO,WAAA,KAAK,QAAQ,MAAM;AAAA,EAC5B;AAAA,EAEO,gBAAgB,MAAkD;AAChE,WAAA,KAAK,SAAS,SAAS;AAAA,EAChC;AAAA,EAEA,iBAAiB;AACf,QAAI,KAAK,qBAAqB;AAC5B,aAAO,KAAK;AAAA,IACd;AAEM,UAAA,eAAe,CACnB,UAC6C;AACvC,YAAA,OAAO,MAAM,CAAC;AAEhB,UAAA,KAAK,SAAS,QAAQ;AACjB,eAAA,aAAa,KAAK,QAAQ;AAAA,MACnC;AAEO,aAAA;AAAA,IAAA;AAGL,QAAA,KAAK,UAAU,WAAW,GAAG;AACxB,aAAA;AAAA,IACT;AAEA,WAAQ,KAAK,sBAAsB,aAAa,KAAK,SAAS;AAAA,EAChE;AAAA,EAEA,eAAe,MAAgD;AAC7D,SAAK,sBAAsB;AAAA,EAC7B;AACF;AA5DE,cADW,sBACHD,IAA2B;AAD9B,IAAM,sBAAN;;"}
|
|
@@ -69,7 +69,6 @@ const _MsMemberRoleTable = class _MsMemberRoleTable extends (_b = dm.DataTable,
|
|
|
69
69
|
this.dataFilter.afterReadyEvent.on(() => {
|
|
70
70
|
this.memberTable.dataFilter.setReady();
|
|
71
71
|
});
|
|
72
|
-
window.memberRoleTable = this;
|
|
73
72
|
this.memberTable.header.rightArea = [new dm.RefreshButton()];
|
|
74
73
|
const rolesColumn = this.memberTable.getColumn("roles");
|
|
75
74
|
if (rolesColumn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsMemberRoleTable.js","sources":["../../../../../../src/modules/ms/dataviews/ms-member-role/MsMemberRoleTable.ts"],"sourcesContent":["import {\n AddButton,\n DataFormOptions,\n DataTable,\n DeleteButton,\n RefreshButton,\n TableActionColumn,\n TableColumn,\n} from \"@maketribe/dm\";\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\nimport { MODULE_NAME } from \"../../constants\";\nimport { MsMember, MsMemberTable } from \"../ms-member\";\nimport { CancelToken, R } from \"@maketribe/request\";\nimport { MsRole } from \"../ms-role\";\n\nexport type MsMemberRole = {\n id: string;\n memberId: string;\n roleId: string;\n member: Omit<MsMember, \"roles\">;\n};\n\nexport class MsMemberRoleTable extends DataTable<MsMemberRole> {\n static [DATA_MODEL_NAME]: string = \"ms-member-role\";\n\n memberTable: MsMemberTable;\n\n currentRole: MsRole | null = null;\n\n constructor(options: DataFormOptions = {}) {\n super({\n name: MsMemberRoleTable[DATA_MODEL_NAME],\n moduleName: MODULE_NAME,\n ...options,\n });\n\n const memberRoleTable = this;\n\n this.memberTable = this.register(\n new (class extends MsMemberTable {\n protected async loadRequest(params: Record<string, any>) {\n const response = await this.dataViewRequest.callDVRequest<\n R<MsMember[]> & { totalRecCount: string }\n >({\n action: \"non-role-member-page-list\",\n name: \"ms-member-role\",\n data: {\n pn: this.currentPage,\n pc: this.pageSize,\n roleId: memberRoleTable.currentRole?.id!,\n },\n cancelToken: new CancelToken((cancel) => {\n this.loadCancel = cancel;\n }),\n });\n\n this.loadCancel = null;\n\n return response;\n }\n })()\n );\n }\n\n setCurrentRole(role: MsRole | null) {\n const oldRole = this.currentRole;\n\n this.currentRole = role;\n this.memberTable.setList([]);\n\n if (!role) {\n this.setList([]);\n return;\n }\n\n this.useCondition((group) => {\n group.clear();\n\n group.addCondition(\"roleId\", \"=\", role.id);\n });\n\n if (oldRole) {\n this.load();\n }\n }\n\n protected async initialize() {\n await super.initialize();\n\n await this.memberTable.init();\n\n this.dataFilter.afterReadyEvent.on(() => {\n this.memberTable.dataFilter.setReady();\n });\n\n
|
|
1
|
+
{"version":3,"file":"MsMemberRoleTable.js","sources":["../../../../../../src/modules/ms/dataviews/ms-member-role/MsMemberRoleTable.ts"],"sourcesContent":["import {\n AddButton,\n DataFormOptions,\n DataTable,\n DeleteButton,\n RefreshButton,\n TableActionColumn,\n TableColumn,\n} from \"@maketribe/dm\";\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\nimport { MODULE_NAME } from \"../../constants\";\nimport { MsMember, MsMemberTable } from \"../ms-member\";\nimport { CancelToken, R } from \"@maketribe/request\";\nimport { MsRole } from \"../ms-role\";\n\nexport type MsMemberRole = {\n id: string;\n memberId: string;\n roleId: string;\n member: Omit<MsMember, \"roles\">;\n};\n\nexport class MsMemberRoleTable extends DataTable<MsMemberRole> {\n static [DATA_MODEL_NAME]: string = \"ms-member-role\";\n\n memberTable: MsMemberTable;\n\n currentRole: MsRole | null = null;\n\n constructor(options: DataFormOptions = {}) {\n super({\n name: MsMemberRoleTable[DATA_MODEL_NAME],\n moduleName: MODULE_NAME,\n ...options,\n });\n\n const memberRoleTable = this;\n\n this.memberTable = this.register(\n new (class extends MsMemberTable {\n protected async loadRequest(params: Record<string, any>) {\n const response = await this.dataViewRequest.callDVRequest<\n R<MsMember[]> & { totalRecCount: string }\n >({\n action: \"non-role-member-page-list\",\n name: \"ms-member-role\",\n data: {\n pn: this.currentPage,\n pc: this.pageSize,\n roleId: memberRoleTable.currentRole?.id!,\n },\n cancelToken: new CancelToken((cancel) => {\n this.loadCancel = cancel;\n }),\n });\n\n this.loadCancel = null;\n\n return response;\n }\n })()\n );\n }\n\n setCurrentRole(role: MsRole | null) {\n const oldRole = this.currentRole;\n\n this.currentRole = role;\n this.memberTable.setList([]);\n\n if (!role) {\n this.setList([]);\n return;\n }\n\n this.useCondition((group) => {\n group.clear();\n\n group.addCondition(\"roleId\", \"=\", role.id);\n });\n\n if (oldRole) {\n this.load();\n }\n }\n\n protected async initialize() {\n await super.initialize();\n\n await this.memberTable.init();\n\n this.dataFilter.afterReadyEvent.on(() => {\n this.memberTable.dataFilter.setReady();\n });\n\n this.memberTable.header.rightArea = [new RefreshButton()];\n\n const rolesColumn = this.memberTable.getColumn(\"roles\");\n if (rolesColumn) {\n rolesColumn.visible = false;\n }\n\n this.header.rightArea = [new RefreshButton(), new AddButton()];\n\n this.setColumns([\n new TableColumn({ name: \"member.nickName\", label: \"名称\" }),\n new TableActionColumn({\n buttons: [new DeleteButton()],\n }),\n ]);\n }\n}\n"],"names":["DataTable","DATA_MODEL_NAME","MODULE_NAME","MsMemberTable","_a","CancelToken","RefreshButton","AddButton","TableColumn","TableActionColumn","DeleteButton"],"mappings":";;;;;;;;;;;;;;;;;AAsBO,MAAM,qBAAN,MAAM,4BAA0BA,QAAAA,WAC7BC,eAAAA,iBAD6BD,IAAwB;AAAA,EAO7D,YAAY,UAA2B,IAAI;AACnC,UAAA;AAAA,MACJ,MAAM,mBAAkBC,yBAAe;AAAA,MACvC,YAAYC,MAAA;AAAA,MACZ,GAAG;AAAA,IAAA,CACJ;AATH;AAEA,uCAA6B;AAS3B,UAAM,kBAAkB;AAExB,SAAK,cAAc,KAAK;AAAA,MACtB,IAAK,cAAcC,cAAAA,cAAc;AAAA,QAC/B,MAAgB,YAAY,QAA6B;;AACvD,gBAAM,WAAW,MAAM,KAAK,gBAAgB,cAE1C;AAAA,YACA,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,IAAI,KAAK;AAAA,cACT,IAAI,KAAK;AAAA,cACT,SAAQC,MAAA,gBAAgB,gBAAhB,gBAAAA,IAA6B;AAAA,YACvC;AAAA,YACA,aAAa,IAAIC,oBAAY,CAAC,WAAW;AACvC,mBAAK,aAAa;AAAA,YAAA,CACnB;AAAA,UAAA,CACF;AAED,eAAK,aAAa;AAEX,iBAAA;AAAA,QACT;AAAA,MAAA,EACC;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,eAAe,MAAqB;AAClC,UAAM,UAAU,KAAK;AAErB,SAAK,cAAc;AACd,SAAA,YAAY,QAAQ,CAAA,CAAE;AAE3B,QAAI,CAAC,MAAM;AACJ,WAAA,QAAQ,CAAA,CAAE;AACf;AAAA,IACF;AAEK,SAAA,aAAa,CAAC,UAAU;AAC3B,YAAM,MAAM;AAEZ,YAAM,aAAa,UAAU,KAAK,KAAK,EAAE;AAAA,IAAA,CAC1C;AAED,QAAI,SAAS;AACX,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,MAAgB,aAAa;AAC3B,UAAM,MAAM;AAEN,UAAA,KAAK,YAAY;AAElB,SAAA,WAAW,gBAAgB,GAAG,MAAM;AAClC,WAAA,YAAY,WAAW;IAAS,CACtC;AAED,SAAK,YAAY,OAAO,YAAY,CAAC,IAAIC,kBAAe;AAExD,UAAM,cAAc,KAAK,YAAY,UAAU,OAAO;AACtD,QAAI,aAAa;AACf,kBAAY,UAAU;AAAA,IACxB;AAEK,SAAA,OAAO,YAAY,CAAC,IAAIA,GAAAA,iBAAiB,IAAIC,cAAW;AAE7D,SAAK,WAAW;AAAA,MACd,IAAIC,GAAAA,YAAY,EAAE,MAAM,mBAAmB,OAAO,MAAM;AAAA,MACxD,IAAIC,qBAAkB;AAAA,QACpB,SAAS,CAAC,IAAIC,GAAAA,cAAc;AAAA,MAAA,CAC7B;AAAA,IAAA,CACF;AAAA,EACH;AACF;AAxFE,cADW,oBACHT,IAA2B;AAD9B,IAAM,oBAAN;;"}
|
|
@@ -27,9 +27,7 @@ class RolePermissionConfigTable extends MsMenuTable.MsMenuTable {
|
|
|
27
27
|
__publicField(this, "currentRoleId", "");
|
|
28
28
|
__publicField(this, "currentRoleDesc", "");
|
|
29
29
|
this.roleRouteTable = new MsRoleRouteTable.MsRoleRouteTable();
|
|
30
|
-
this.roleRouteTable.dataFilter.setReady();
|
|
31
30
|
this.rolePermissionPointTable = new MsRolePermissionPointTable.MsRolePermissionPointTable();
|
|
32
|
-
this.rolePermissionPointTable.dataFilter.setReady();
|
|
33
31
|
this.roleRouteConditionGroup = new request.Group();
|
|
34
32
|
this.rolePermissionPointConditionGroup = new request.Group();
|
|
35
33
|
this.roleRouteTable.useCondition((defaultGroup) => {
|
|
@@ -49,17 +47,15 @@ class RolePermissionConfigTable extends MsMenuTable.MsMenuTable {
|
|
|
49
47
|
}({
|
|
50
48
|
interfaceURL: { list: "/ms/dv/ms-permission-point-def/allList" }
|
|
51
49
|
});
|
|
52
|
-
permissionPointDefineTable.dataFilter.setReady();
|
|
53
50
|
this.permissionPointDefineTable = permissionPointDefineTable;
|
|
54
51
|
const routeDefineTable = new MsRouteTable.MsRouteTable({
|
|
55
52
|
interfaceURL: { list: "/ms/dv/ms-route/allList" }
|
|
56
53
|
});
|
|
57
|
-
routeDefineTable.dataFilter.setReady();
|
|
58
54
|
this.routeDefineTable = routeDefineTable;
|
|
59
|
-
this.dataFilter.setReady();
|
|
60
55
|
}
|
|
61
56
|
async initialize() {
|
|
62
57
|
await super.initialize();
|
|
58
|
+
window.aaaa = this;
|
|
63
59
|
[
|
|
64
60
|
this.roleRouteTable.getLoadingManager(),
|
|
65
61
|
this.rolePermissionPointTable.getLoadingManager(),
|
|
@@ -72,7 +68,13 @@ class RolePermissionConfigTable extends MsMenuTable.MsMenuTable {
|
|
|
72
68
|
await this.rolePermissionPointTable.init();
|
|
73
69
|
await this.permissionPointDefineTable.init();
|
|
74
70
|
await this.routeDefineTable.init();
|
|
75
|
-
|
|
71
|
+
this.dataFilter.afterReadyEvent.on(() => {
|
|
72
|
+
this.roleRouteTable.dataFilter.setReady();
|
|
73
|
+
this.rolePermissionPointTable.dataFilter.setReady();
|
|
74
|
+
this.permissionPointDefineTable.dataFilter.setReady();
|
|
75
|
+
this.routeDefineTable.dataFilter.setReady();
|
|
76
|
+
});
|
|
77
|
+
this.dataFilter.setReady();
|
|
76
78
|
}
|
|
77
79
|
formatItem(item) {
|
|
78
80
|
const permissionPointDefines = this.permissionPointDefineTable.getList();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsRolePermissionConfigTable.js","sources":["../../../../../../src/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.ts"],"sourcesContent":["import { Group, R, ResponseConfig } from \"@maketribe/request\";\nimport { DataTableOptions, WhereFilter } from \"@maketribe/dm\";\nimport {\n MsMenuItem,\n MsMenuResult,\n MsMenuTable,\n MsPermissionPointDefine,\n MsPermissionPointDefineTable,\n MsRoute,\n MsRouteTable,\n} from \"../ms-menu\";\nimport { MsRole } from \"./MsRoleForm\";\nimport { MsRoleRouteTable } from \"./ms-role-route\";\nimport { MsRolePermissionPointTable } from \"./ms-role-permission-point\";\nimport { postTraverse } from \"@maketribe/utils\";\n\nexport type MsRolePermissionPointDefine = MsPermissionPointDefine & {\n originalSelected: boolean;\n selected: boolean;\n};\n\nexport type MsRoleMenuNode = {\n permissionPoints: MsRolePermissionPointDefine[];\n routes: MsRoute[];\n originalSelected: boolean;\n selected: boolean;\n indeterminate: boolean;\n children: MsRoleMenuNode[];\n} & MsMenuItem;\n\nexport class RolePermissionConfigTable extends MsMenuTable<MsRoleMenuNode> {\n roleRouteTable: MsRoleRouteTable;\n roleRouteConditionGroup: Group;\n\n rolePermissionPointTable: MsRolePermissionPointTable;\n rolePermissionPointConditionGroup: Group;\n\n permissionPointDefineTable: MsPermissionPointDefineTable<MsRolePermissionPointDefine>;\n routeDefineTable: MsRouteTable;\n\n initd: boolean = false;\n initing: boolean = false;\n\n rootRoleMenuNodes: MsRoleMenuNode[] = [];\n currentRole: MsRole | undefined;\n currentRoleId: MsRole[\"id\"] = \"\";\n currentRoleDesc: MsRole[\"desc\"] = \"\";\n\n constructor(options: Omit<DataTableOptions, \"name\"> = {}) {\n super({ ...options });\n\n this.roleRouteTable = new MsRoleRouteTable();\n this.roleRouteTable.dataFilter.setReady();\n\n this.rolePermissionPointTable = new MsRolePermissionPointTable();\n this.rolePermissionPointTable.dataFilter.setReady();\n\n this.roleRouteConditionGroup = new Group();\n this.rolePermissionPointConditionGroup = new Group();\n\n this.roleRouteTable.useCondition((defaultGroup) => {\n defaultGroup.addGroup(this.roleRouteConditionGroup);\n });\n\n this.rolePermissionPointTable.useCondition((defaultGroup) => {\n defaultGroup.addGroup(this.rolePermissionPointConditionGroup)\n });\n\n const permissionPointDefineTable =\n new (class extends MsPermissionPointDefineTable<MsRolePermissionPointDefine> {\n formatItem(item: MsPermissionPointDefine): MsRolePermissionPointDefine {\n return {\n ...super.formatItem(item),\n originalSelected: false,\n selected: false,\n };\n }\n })({\n interfaceURL: { list: \"/ms/dv/ms-permission-point-def/allList\" },\n });\n permissionPointDefineTable.dataFilter.setReady();\n this.permissionPointDefineTable = permissionPointDefineTable;\n\n const routeDefineTable = new MsRouteTable({\n interfaceURL: { list: \"/ms/dv/ms-route/allList\" },\n });\n routeDefineTable.dataFilter.setReady();\n this.routeDefineTable = routeDefineTable;\n\n this.dataFilter.setReady();\n }\n\n protected async initialize() {\n await super.initialize();\n\n [\n this.roleRouteTable.getLoadingManager(),\n this.rolePermissionPointTable.getLoadingManager(),\n this.permissionPointDefineTable.getLoadingManager(),\n this.routeDefineTable.getLoadingManager(),\n ].forEach((loadingManager) => {\n this.getLoadingManager().addLoadingManager(loadingManager);\n });\n\n await this.roleRouteTable.init();\n await this.rolePermissionPointTable.init();\n\n await this.permissionPointDefineTable.init();\n await this.routeDefineTable.init();\n\n await super.init();\n }\n\n formatItem(item: MsMenuResult): MsRoleMenuNode {\n const permissionPointDefines = this.permissionPointDefineTable.getList();\n\n const routeDefines = this.routeDefineTable.getList();\n\n return {\n ...super.formatItem(item),\n routes: routeDefines.filter(\n (routeDefine) => routeDefine.menuId === item.id\n ) as MsRoleMenuNode[\"routes\"],\n permissionPoints: permissionPointDefines.filter(\n (permissionPointDefine) => permissionPointDefine.menuId === item.id\n ),\n originalSelected: false,\n selected: false,\n indeterminate: false,\n children: [],\n };\n }\n\n setList(list: MsRoleMenuNode[]): void {\n super.setList(list);\n\n const rootRoleMenuNodes = [];\n\n for (const roleMenuNode of list) {\n if (!roleMenuNode.pid) {\n rootRoleMenuNodes.push(roleMenuNode);\n }\n\n for (const item of list) {\n if (item.pid === roleMenuNode.id) {\n roleMenuNode.children.push(item);\n }\n }\n }\n\n this.rootRoleMenuNodes = this.calculateNotEmptyNode(rootRoleMenuNodes);\n }\n\n calculateNotEmptyNode(list: MsRoleMenuNode[]) {\n const result = list.filter(\n (item) => item.routes.length || item.children.length\n );\n\n let nodes = [...result];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n node.children = node.children.filter(\n (item) => item.routes.length || item.children.length\n );\n\n nodes = nodes.concat(node.children);\n }\n\n return result;\n }\n\n getRootRoleMenuNodes() {\n return this.rootRoleMenuNodes;\n }\n\n async load(params?: Record<string, any>) {\n await Promise.all([\n this.permissionPointDefineTable.load(),\n this.routeDefineTable.load(),\n ]);\n\n const loadResult = await super.load(params);\n\n if (loadResult.data.code === 200) {\n this.restoreDefaultSelect();\n }\n\n return loadResult;\n }\n\n protected loadRequest(\n params: Record<string, any>\n ): Promise<ResponseConfig<R<MsMenuResult[]> & { totalRecCount: string }>> {\n return this.loadAllRequest(params);\n }\n\n async selectRolePermission(role: MsRole | undefined) {\n this.currentRole = role;\n this.currentRoleId = role?.id || \"\";\n this.currentRoleDesc = role?.desc || \"\";\n\n this.roleRouteConditionGroup.clear();\n this.rolePermissionPointConditionGroup.clear();\n\n this.roleRouteConditionGroup.addCondition(\n \"roleId\",\n \"=\",\n this.currentRoleId\n );\n this.rolePermissionPointConditionGroup.addCondition(\n \"roleId\",\n \"=\",\n this.currentRoleId\n );\n\n const [roleRouteTableResult, rolePermissionPointTableResult] =\n await Promise.all([\n this.roleRouteTable.load(),\n this.rolePermissionPointTable.load(),\n ]);\n\n if (roleRouteTableResult.data.code !== 200) {\n return;\n }\n\n if (rolePermissionPointTableResult.data.code !== 200) {\n return;\n }\n\n this.restoreDefaultSelect();\n }\n\n clearSelected() {\n for (const roleMenu of this.getList()) {\n roleMenu.indeterminate = roleMenu.selected = false;\n }\n\n for (const rolePermissionPoint of this.permissionPointDefineTable.getList()) {\n rolePermissionPoint.selected = false;\n }\n }\n\n protected calcSelect() {\n postTraverse<MsRoleMenuNode>(this.getRootRoleMenuNodes(), (roleMenu) => {\n // 如果自叶级菜单\n if (roleMenu.children.length === 0) {\n // 选中的权限点\n const selectedPermissionPoints = roleMenu.permissionPoints.filter(\n (permissionPointDefine) => permissionPointDefine.selected\n );\n\n // 如果有权限点选择就赋予路由权限\n roleMenu.selected =\n roleMenu.permissionPoints.length === 0\n ? roleMenu.selected\n : !!selectedPermissionPoints.length || roleMenu.selected;\n // 如果不是所有权限点都激活就标识是部分选择\n roleMenu.indeterminate =\n roleMenu.permissionPoints.length === 0 ||\n selectedPermissionPoints.length === 0\n ? false\n : selectedPermissionPoints.length <\n roleMenu.permissionPoints.length;\n\n return;\n }\n\n // 选中的子菜单\n const selectedChildren = roleMenu.children.filter(\n (item) => item.selected\n );\n // 如果有子菜单选中就路由权限\n roleMenu.selected = !!selectedChildren.length;\n // 如果不是所有子菜单都激活就标识是部分选择\n roleMenu.indeterminate =\n selectedChildren.length === 0\n ? false\n : selectedChildren.length < roleMenu.children.length;\n });\n }\n\n restoreDefaultSelect() {\n this.clearSelected();\n\n const permissionPointDefineList = this.permissionPointDefineTable.getList();\n const rolePermissionList = this.rolePermissionPointTable.getList();\n\n for (const permissionPointDefine of permissionPointDefineList) {\n permissionPointDefine.originalSelected = permissionPointDefine.selected =\n false;\n }\n\n if (permissionPointDefineList.length) {\n for (const rolePermission of rolePermissionList) {\n const permissionPointDefine = permissionPointDefineList.find(\n (permissionPointDefine) =>\n permissionPointDefine.id === rolePermission.permissionPointDefId\n );\n\n if (permissionPointDefine) {\n permissionPointDefine.originalSelected =\n permissionPointDefine.selected = true;\n }\n }\n }\n\n const menuList = this.getList();\n const roleRouteList = this.roleRouteTable.getList();\n\n for (const menu of menuList) {\n menu.originalSelected = menu.selected = false;\n }\n\n if (menuList.length) {\n for (const roleRoute of roleRouteList) {\n const menu = menuList.find((menu) =>\n menu.routes.find(\n (routeDefine) => routeDefine.id === roleRoute.routeId\n )\n );\n\n if (menu) {\n menu.originalSelected = menu.selected = true;\n }\n }\n }\n\n this.calcSelect();\n }\n\n toggleRoleMenu(\n roleMenu: MsRoleMenuNode,\n selected: boolean = !roleMenu.selected\n ) {\n postTraverse<MsRoleMenuNode>([roleMenu], (roleMenu) => {\n // 如果自叶级菜单\n if (roleMenu.children.length === 0) {\n for (const permissionPointDefine of roleMenu.permissionPoints) {\n permissionPointDefine.selected = selected;\n }\n\n roleMenu.selected = selected;\n return;\n }\n\n roleMenu.selected = selected;\n });\n\n this.calcSelect();\n }\n\n toggleRolePermissionPoint(\n permissionPointDefine: MsRolePermissionPointDefine,\n selected: boolean = !permissionPointDefine.selected\n ) {\n permissionPointDefine.selected = selected;\n\n this.calcSelect();\n }\n\n async submitPermission() {\n const permissionPointDefines = this.permissionPointDefineTable.getList();\n const removePermissionPointDefines = permissionPointDefines.filter(\n (permissionPointDefine) =>\n permissionPointDefine.originalSelected &&\n !permissionPointDefine.selected\n );\n\n const addPermissionPointDefine = permissionPointDefines.filter(\n (permissionPointDefine) =>\n !permissionPointDefine.originalSelected &&\n permissionPointDefine.selected\n );\n\n const menus = this.getList();\n const removeRoutes = menus\n .filter((menu) => menu.originalSelected && !menu.selected)\n .flatMap((menu) => menu.routes);\n const addRoutes = menus\n .filter((menu) => !menu.originalSelected && menu.selected)\n .flatMap((menu) => menu.routes);\n\n if (removePermissionPointDefines.length) {\n const rolePermissionPoints = this.rolePermissionPointTable.getList();\n const deleteRolePermissionPointResult =\n await this.rolePermissionPointTable.batchDelete(\n removePermissionPointDefines\n .map(\n (permissionPointDefine) =>\n rolePermissionPoints.find(\n (rolePermissionPoint) =>\n rolePermissionPoint.permissionPointDefId ===\n permissionPointDefine.id\n )!\n )\n .filter(Boolean)\n );\n\n if (deleteRolePermissionPointResult.data.code !== 200) {\n return deleteRolePermissionPointResult;\n }\n }\n\n if (removeRoutes.length) {\n const roleRoutes = this.roleRouteTable.getList();\n const deleteRoleRouteResult = await this.roleRouteTable.batchDelete(\n removeRoutes\n .map(\n (route) =>\n roleRoutes.find((roleRoute) => roleRoute.routeId === route.id)!\n )\n .filter(Boolean)\n );\n\n if (deleteRoleRouteResult.data.code !== 200) {\n return deleteRoleRouteResult;\n }\n }\n\n if (addPermissionPointDefine.length) {\n const addRolePermissionPointResult =\n await this.rolePermissionPointTable.batchAdd(\n addPermissionPointDefine.map((item) => ({\n id: \"\",\n roleId: this.currentRoleId,\n permissionPointDefId: item.id,\n }))\n );\n\n if (addRolePermissionPointResult.data.code !== 200) {\n return addRolePermissionPointResult;\n }\n }\n\n if (addRoutes.length) {\n const addRoleRouteResult = await this.roleRouteTable.batchAdd(\n addRoutes.map((item) => ({\n id: \"\",\n roleId: this.currentRoleId,\n routeId: item.id,\n }))\n );\n\n if (addRoleRouteResult.data.code !== 200) {\n return addRoleRouteResult;\n }\n }\n\n await this.selectRolePermission(this.currentRole);\n }\n\n /**\n * 是否发生变更\n */\n hasChange() {\n const permissionPointDefines = this.permissionPointDefineTable.getList();\n const removePermissionPointDefines = permissionPointDefines.filter(\n (permissionPointDefine) =>\n permissionPointDefine.originalSelected &&\n !permissionPointDefine.selected\n );\n\n const addPermissionPointDefine = permissionPointDefines.filter(\n (permissionPointDefine) =>\n !permissionPointDefine.originalSelected &&\n permissionPointDefine.selected\n );\n\n const menus = this.getList();\n const removeRoutes = menus\n .filter((menu) => menu.originalSelected && !menu.selected)\n .flatMap((menu) => menu.routes);\n const addRoutes = menus\n .filter((menu) => !menu.originalSelected && menu.selected)\n .flatMap((menu) => menu.routes);\n return !!(\n removePermissionPointDefines.length ||\n removeRoutes.length ||\n addPermissionPointDefine.length ||\n addRoutes.length\n );\n }\n}\n"],"names":["MsMenuTable","MsRoleRouteTable","MsRolePermissionPointTable","Group","MsPermissionPointDefineTable","MsRouteTable","postTraverse","permissionPointDefine","menu","roleMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MsRolePermissionConfigTable.js","sources":["../../../../../../src/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.ts"],"sourcesContent":["import { Group, R, ResponseConfig } from \"@maketribe/request\";\nimport { DataTableOptions, WhereFilter } from \"@maketribe/dm\";\nimport {\n MsMenuItem,\n MsMenuResult,\n MsMenuTable,\n MsPermissionPointDefine,\n MsPermissionPointDefineTable,\n MsRoute,\n MsRouteTable,\n} from \"../ms-menu\";\nimport { MsRole } from \"./MsRoleForm\";\nimport { MsRoleRouteTable } from \"./ms-role-route\";\nimport { MsRolePermissionPointTable } from \"./ms-role-permission-point\";\nimport { postTraverse } from \"@maketribe/utils\";\n\nexport type MsRolePermissionPointDefine = MsPermissionPointDefine & {\n originalSelected: boolean;\n selected: boolean;\n};\n\nexport type MsRoleMenuNode = {\n permissionPoints: MsRolePermissionPointDefine[];\n routes: MsRoute[];\n originalSelected: boolean;\n selected: boolean;\n indeterminate: boolean;\n children: MsRoleMenuNode[];\n} & MsMenuItem;\n\nexport class RolePermissionConfigTable extends MsMenuTable<MsRoleMenuNode> {\n roleRouteTable: MsRoleRouteTable;\n roleRouteConditionGroup: Group;\n\n rolePermissionPointTable: MsRolePermissionPointTable;\n rolePermissionPointConditionGroup: Group;\n\n permissionPointDefineTable: MsPermissionPointDefineTable<MsRolePermissionPointDefine>;\n routeDefineTable: MsRouteTable;\n\n initd: boolean = false;\n initing: boolean = false;\n\n rootRoleMenuNodes: MsRoleMenuNode[] = [];\n currentRole: MsRole | undefined;\n currentRoleId: MsRole[\"id\"] = \"\";\n currentRoleDesc: MsRole[\"desc\"] = \"\";\n\n constructor(options: Omit<DataTableOptions, \"name\"> = {}) {\n super({ ...options });\n\n this.roleRouteTable = new MsRoleRouteTable();\n\n this.rolePermissionPointTable = new MsRolePermissionPointTable();\n\n this.roleRouteConditionGroup = new Group();\n this.rolePermissionPointConditionGroup = new Group();\n\n this.roleRouteTable.useCondition((defaultGroup) => {\n defaultGroup.addGroup(this.roleRouteConditionGroup);\n });\n\n this.rolePermissionPointTable.useCondition((defaultGroup) => {\n defaultGroup.addGroup(this.rolePermissionPointConditionGroup);\n });\n\n const permissionPointDefineTable =\n new (class extends MsPermissionPointDefineTable<MsRolePermissionPointDefine> {\n formatItem(item: MsPermissionPointDefine): MsRolePermissionPointDefine {\n return {\n ...super.formatItem(item),\n originalSelected: false,\n selected: false,\n };\n }\n })({\n interfaceURL: { list: \"/ms/dv/ms-permission-point-def/allList\" },\n });\n this.permissionPointDefineTable = permissionPointDefineTable;\n\n const routeDefineTable = new MsRouteTable({\n interfaceURL: { list: \"/ms/dv/ms-route/allList\" },\n });\n this.routeDefineTable = routeDefineTable;\n }\n\n protected async initialize() {\n await super.initialize();\n\n (window as any).aaaa = this;\n\n [\n this.roleRouteTable.getLoadingManager(),\n this.rolePermissionPointTable.getLoadingManager(),\n this.permissionPointDefineTable.getLoadingManager(),\n this.routeDefineTable.getLoadingManager(),\n ].forEach((loadingManager) => {\n this.getLoadingManager().addLoadingManager(loadingManager);\n });\n\n await this.roleRouteTable.init();\n await this.rolePermissionPointTable.init();\n\n await this.permissionPointDefineTable.init();\n await this.routeDefineTable.init();\n\n // await super.init();\n\n this.dataFilter.afterReadyEvent.on(() => {\n this.roleRouteTable.dataFilter.setReady();\n this.rolePermissionPointTable.dataFilter.setReady();\n this.permissionPointDefineTable.dataFilter.setReady();\n this.routeDefineTable.dataFilter.setReady();\n });\n\n this.dataFilter.setReady();\n }\n\n formatItem(item: MsMenuResult): MsRoleMenuNode {\n const permissionPointDefines = this.permissionPointDefineTable.getList();\n\n const routeDefines = this.routeDefineTable.getList();\n\n return {\n ...super.formatItem(item),\n routes: routeDefines.filter(\n (routeDefine) => routeDefine.menuId === item.id\n ) as MsRoleMenuNode[\"routes\"],\n permissionPoints: permissionPointDefines.filter(\n (permissionPointDefine) => permissionPointDefine.menuId === item.id\n ),\n originalSelected: false,\n selected: false,\n indeterminate: false,\n children: [],\n };\n }\n\n setList(list: MsRoleMenuNode[]): void {\n super.setList(list);\n\n const rootRoleMenuNodes = [];\n\n for (const roleMenuNode of list) {\n if (!roleMenuNode.pid) {\n rootRoleMenuNodes.push(roleMenuNode);\n }\n\n for (const item of list) {\n if (item.pid === roleMenuNode.id) {\n roleMenuNode.children.push(item);\n }\n }\n }\n\n this.rootRoleMenuNodes = this.calculateNotEmptyNode(rootRoleMenuNodes);\n }\n\n calculateNotEmptyNode(list: MsRoleMenuNode[]) {\n const result = list.filter(\n (item) => item.routes.length || item.children.length\n );\n\n let nodes = [...result];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n node.children = node.children.filter(\n (item) => item.routes.length || item.children.length\n );\n\n nodes = nodes.concat(node.children);\n }\n\n return result;\n }\n\n getRootRoleMenuNodes() {\n return this.rootRoleMenuNodes;\n }\n\n async load(params?: Record<string, any>) {\n await Promise.all([\n this.permissionPointDefineTable.load(),\n this.routeDefineTable.load(),\n ]);\n\n const loadResult = await super.load(params);\n\n if (loadResult.data.code === 200) {\n this.restoreDefaultSelect();\n }\n\n return loadResult;\n }\n\n protected loadRequest(\n params: Record<string, any>\n ): Promise<ResponseConfig<R<MsMenuResult[]> & { totalRecCount: string }>> {\n return this.loadAllRequest(params);\n }\n\n async selectRolePermission(role: MsRole | undefined) {\n this.currentRole = role;\n this.currentRoleId = role?.id || \"\";\n this.currentRoleDesc = role?.desc || \"\";\n\n this.roleRouteConditionGroup.clear();\n this.rolePermissionPointConditionGroup.clear();\n\n this.roleRouteConditionGroup.addCondition(\n \"roleId\",\n \"=\",\n this.currentRoleId\n );\n this.rolePermissionPointConditionGroup.addCondition(\n \"roleId\",\n \"=\",\n this.currentRoleId\n );\n\n const [roleRouteTableResult, rolePermissionPointTableResult] =\n await Promise.all([\n this.roleRouteTable.load(),\n this.rolePermissionPointTable.load(),\n ]);\n\n if (roleRouteTableResult.data.code !== 200) {\n return;\n }\n\n if (rolePermissionPointTableResult.data.code !== 200) {\n return;\n }\n\n this.restoreDefaultSelect();\n }\n\n clearSelected() {\n for (const roleMenu of this.getList()) {\n roleMenu.indeterminate = roleMenu.selected = false;\n }\n\n for (const rolePermissionPoint of this.permissionPointDefineTable.getList()) {\n rolePermissionPoint.selected = false;\n }\n }\n\n protected calcSelect() {\n postTraverse<MsRoleMenuNode>(this.getRootRoleMenuNodes(), (roleMenu) => {\n // 如果自叶级菜单\n if (roleMenu.children.length === 0) {\n // 选中的权限点\n const selectedPermissionPoints = roleMenu.permissionPoints.filter(\n (permissionPointDefine) => permissionPointDefine.selected\n );\n\n // 如果有权限点选择就赋予路由权限\n roleMenu.selected =\n roleMenu.permissionPoints.length === 0\n ? roleMenu.selected\n : !!selectedPermissionPoints.length || roleMenu.selected;\n // 如果不是所有权限点都激活就标识是部分选择\n roleMenu.indeterminate =\n roleMenu.permissionPoints.length === 0 ||\n selectedPermissionPoints.length === 0\n ? false\n : selectedPermissionPoints.length <\n roleMenu.permissionPoints.length;\n\n return;\n }\n\n // 选中的子菜单\n const selectedChildren = roleMenu.children.filter(\n (item) => item.selected\n );\n // 如果有子菜单选中就路由权限\n roleMenu.selected = !!selectedChildren.length;\n // 如果不是所有子菜单都激活就标识是部分选择\n roleMenu.indeterminate =\n selectedChildren.length === 0\n ? false\n : selectedChildren.length < roleMenu.children.length;\n });\n }\n\n restoreDefaultSelect() {\n this.clearSelected();\n\n const permissionPointDefineList = this.permissionPointDefineTable.getList();\n const rolePermissionList = this.rolePermissionPointTable.getList();\n\n for (const permissionPointDefine of permissionPointDefineList) {\n permissionPointDefine.originalSelected = permissionPointDefine.selected =\n false;\n }\n\n if (permissionPointDefineList.length) {\n for (const rolePermission of rolePermissionList) {\n const permissionPointDefine = permissionPointDefineList.find(\n (permissionPointDefine) =>\n permissionPointDefine.id === rolePermission.permissionPointDefId\n );\n\n if (permissionPointDefine) {\n permissionPointDefine.originalSelected =\n permissionPointDefine.selected = true;\n }\n }\n }\n\n const menuList = this.getList();\n const roleRouteList = this.roleRouteTable.getList();\n\n for (const menu of menuList) {\n menu.originalSelected = menu.selected = false;\n }\n\n if (menuList.length) {\n for (const roleRoute of roleRouteList) {\n const menu = menuList.find((menu) =>\n menu.routes.find(\n (routeDefine) => routeDefine.id === roleRoute.routeId\n )\n );\n\n if (menu) {\n menu.originalSelected = menu.selected = true;\n }\n }\n }\n\n this.calcSelect();\n }\n\n toggleRoleMenu(\n roleMenu: MsRoleMenuNode,\n selected: boolean = !roleMenu.selected\n ) {\n postTraverse<MsRoleMenuNode>([roleMenu], (roleMenu) => {\n // 如果自叶级菜单\n if (roleMenu.children.length === 0) {\n for (const permissionPointDefine of roleMenu.permissionPoints) {\n permissionPointDefine.selected = selected;\n }\n\n roleMenu.selected = selected;\n return;\n }\n\n roleMenu.selected = selected;\n });\n\n this.calcSelect();\n }\n\n toggleRolePermissionPoint(\n permissionPointDefine: MsRolePermissionPointDefine,\n selected: boolean = !permissionPointDefine.selected\n ) {\n permissionPointDefine.selected = selected;\n\n this.calcSelect();\n }\n\n async submitPermission() {\n const permissionPointDefines = this.permissionPointDefineTable.getList();\n const removePermissionPointDefines = permissionPointDefines.filter(\n (permissionPointDefine) =>\n permissionPointDefine.originalSelected &&\n !permissionPointDefine.selected\n );\n\n const addPermissionPointDefine = permissionPointDefines.filter(\n (permissionPointDefine) =>\n !permissionPointDefine.originalSelected &&\n permissionPointDefine.selected\n );\n\n const menus = this.getList();\n const removeRoutes = menus\n .filter((menu) => menu.originalSelected && !menu.selected)\n .flatMap((menu) => menu.routes);\n const addRoutes = menus\n .filter((menu) => !menu.originalSelected && menu.selected)\n .flatMap((menu) => menu.routes);\n\n if (removePermissionPointDefines.length) {\n const rolePermissionPoints = this.rolePermissionPointTable.getList();\n const deleteRolePermissionPointResult =\n await this.rolePermissionPointTable.batchDelete(\n removePermissionPointDefines\n .map(\n (permissionPointDefine) =>\n rolePermissionPoints.find(\n (rolePermissionPoint) =>\n rolePermissionPoint.permissionPointDefId ===\n permissionPointDefine.id\n )!\n )\n .filter(Boolean)\n );\n\n if (deleteRolePermissionPointResult.data.code !== 200) {\n return deleteRolePermissionPointResult;\n }\n }\n\n if (removeRoutes.length) {\n const roleRoutes = this.roleRouteTable.getList();\n const deleteRoleRouteResult = await this.roleRouteTable.batchDelete(\n removeRoutes\n .map(\n (route) =>\n roleRoutes.find((roleRoute) => roleRoute.routeId === route.id)!\n )\n .filter(Boolean)\n );\n\n if (deleteRoleRouteResult.data.code !== 200) {\n return deleteRoleRouteResult;\n }\n }\n\n if (addPermissionPointDefine.length) {\n const addRolePermissionPointResult =\n await this.rolePermissionPointTable.batchAdd(\n addPermissionPointDefine.map((item) => ({\n id: \"\",\n roleId: this.currentRoleId,\n permissionPointDefId: item.id,\n }))\n );\n\n if (addRolePermissionPointResult.data.code !== 200) {\n return addRolePermissionPointResult;\n }\n }\n\n if (addRoutes.length) {\n const addRoleRouteResult = await this.roleRouteTable.batchAdd(\n addRoutes.map((item) => ({\n id: \"\",\n roleId: this.currentRoleId,\n routeId: item.id,\n }))\n );\n\n if (addRoleRouteResult.data.code !== 200) {\n return addRoleRouteResult;\n }\n }\n\n await this.selectRolePermission(this.currentRole);\n }\n\n /**\n * 是否发生变更\n */\n hasChange() {\n const permissionPointDefines = this.permissionPointDefineTable.getList();\n const removePermissionPointDefines = permissionPointDefines.filter(\n (permissionPointDefine) =>\n permissionPointDefine.originalSelected &&\n !permissionPointDefine.selected\n );\n\n const addPermissionPointDefine = permissionPointDefines.filter(\n (permissionPointDefine) =>\n !permissionPointDefine.originalSelected &&\n permissionPointDefine.selected\n );\n\n const menus = this.getList();\n const removeRoutes = menus\n .filter((menu) => menu.originalSelected && !menu.selected)\n .flatMap((menu) => menu.routes);\n const addRoutes = menus\n .filter((menu) => !menu.originalSelected && menu.selected)\n .flatMap((menu) => menu.routes);\n return !!(\n removePermissionPointDefines.length ||\n removeRoutes.length ||\n addPermissionPointDefine.length ||\n addRoutes.length\n );\n }\n}\n"],"names":["MsMenuTable","MsRoleRouteTable","MsRolePermissionPointTable","Group","MsPermissionPointDefineTable","MsRouteTable","postTraverse","permissionPointDefine","menu","roleMenu"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normal.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/normal.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTable\" v-show=\"!isShowDataForm\">\n <MKDataTable :data-table=\"dataTable\" enableQueryParams/>\n </MKPageContainer>\n <MKPageContainer v-if=\"dataForm\" v-show=\"isShowDataForm\">\n <MKDataForm :data-form=\"dataForm\" KDataForm />\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTable } from \"@maketribe/dm\";\nimport {\n MKDataTable,\n MKDataForm,\n MKPageContainer,\n} from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport { useSingleView } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTable.value = DataModelDefines.instance.getDataTable(name);\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nconst { isShowDataForm } = useSingleView({ dataTable, dataForm });\n</script>\n"],"names":["useRouter","ref","watch","computed","unref","DataModelDefines","useSingleView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,UAAM,SAASA,UAAAA;AAET,UAAA,YAAmCC,QAAI,IAAI;AAC3C,UAAA,WAAiCA,QAAI,IAAI;AAE/CC,QAAA;AAAA,MACEC,aAAS,MAAMC,IAAAA,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,kBAAU,QAAQC,iBAAA,iBAAiB,SAAS,aAAa,IAAI;AAC7D,iBAAS,QAAQA,iBAAA,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,UAAM,EAAE,eAAe,IAAIC,cAAAA,cAAc,EAAE,WAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"normal.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/normal.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTable\" v-show=\"!isShowDataForm\">\n <MKDataTable :data-table=\"dataTable\" enableQueryParams />\n </MKPageContainer>\n <MKPageContainer v-if=\"dataForm\" v-show=\"isShowDataForm\">\n <MKDataForm :data-form=\"dataForm\" KDataForm />\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTable } from \"@maketribe/dm\";\nimport {\n MKDataTable,\n MKDataForm,\n MKPageContainer,\n} from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport { useSingleView } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTable.value = DataModelDefines.instance.getDataTable(name);\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nconst { isShowDataForm } = useSingleView({ dataTable, dataForm });\n</script>\n"],"names":["useRouter","ref","watch","computed","unref","DataModelDefines","useSingleView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,UAAM,SAASA,UAAAA;AAET,UAAA,YAAmCC,QAAI,IAAI;AAC3C,UAAA,WAAiCA,QAAI,IAAI;AAE/CC,QAAA;AAAA,MACEC,aAAS,MAAMC,IAAAA,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,kBAAU,QAAQC,iBAAA,iBAAiB,SAAS,aAAa,IAAI;AAC7D,iBAAS,QAAQA,iBAAA,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,UAAM,EAAE,eAAe,IAAIC,cAAAA,cAAc,EAAE,WAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -33,7 +33,9 @@ function convertImageElement(domNode) {
|
|
|
33
33
|
domNode.getAttribute("alt");
|
|
34
34
|
domNode.getAttribute("style");
|
|
35
35
|
domNode.getAttribute("width");
|
|
36
|
-
return domNode.tagName == "img" && src != null ? {
|
|
36
|
+
return domNode.tagName.toLowerCase() == "img" && src != null ? {
|
|
37
|
+
node: $createImageNode(src)
|
|
38
|
+
} : null;
|
|
37
39
|
}
|
|
38
40
|
class ImageNode extends DecoratorBlockNode {
|
|
39
41
|
constructor(src, format, key) {
|
|
@@ -61,18 +63,18 @@ class ImageNode extends DecoratorBlockNode {
|
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
65
|
exportDOM() {
|
|
64
|
-
const element = document.createElement("
|
|
66
|
+
const element = document.createElement("img");
|
|
65
67
|
element.setAttribute("src", this.__src);
|
|
66
68
|
element.setAttribute("width", "560");
|
|
67
|
-
element.setAttribute("height", "
|
|
69
|
+
element.setAttribute("height", "auto");
|
|
68
70
|
return { element };
|
|
69
71
|
}
|
|
70
72
|
static importDOM() {
|
|
71
73
|
return {
|
|
72
|
-
|
|
73
|
-
return domNode.tagName != "
|
|
74
|
+
img: (domNode) => {
|
|
75
|
+
return domNode.tagName.toLowerCase() != "img" ? null : {
|
|
74
76
|
conversion: convertImageElement,
|
|
75
|
-
priority:
|
|
77
|
+
priority: 0
|
|
76
78
|
};
|
|
77
79
|
}
|
|
78
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.ts"],"sourcesContent":["import type {\r\n DOMConversionMap,\r\n DOMConversionOutput,\r\n DOMExportOutput,\r\n EditorConfig,\r\n ElementFormatType,\r\n LexicalEditor,\r\n LexicalNode,\r\n NodeKey,\r\n Spread,\r\n} from 'lexical'\r\n\r\nimport type { SerializedDecoratorBlockNode } from '../../lexical-vue'\r\nimport DocImageComponent from './DocImageComponent'\r\nimport { DecoratorBlockNode } from '../../lexical-vue'\r\n\r\nimport type { Component } from 'vue'\r\nimport { h } from 'vue'\r\n\r\n/**\r\n * 图片节点序列化\r\n */\r\nexport type SerializedImageNode = Spread<\r\n {\r\n src: string\r\n },\r\n SerializedDecoratorBlockNode\r\n>\r\n\r\n/**\r\n * 转成图片节点\r\n * @param domNode \r\n * @returns \r\n */\r\nfunction convertImageElement(\r\n domNode: HTMLElement,\r\n): null | DOMConversionOutput {\r\n\r\n const className = domNode.getAttribute('class');\r\n const src = domNode.getAttribute('src');\r\n const alt = domNode.getAttribute('alt');\r\n const style = domNode.getAttribute('style');\r\n const width = domNode.getAttribute('width');\r\n
|
|
1
|
+
{"version":3,"file":"ImageNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.ts"],"sourcesContent":["import type {\r\n DOMConversionMap,\r\n DOMConversionOutput,\r\n DOMExportOutput,\r\n EditorConfig,\r\n ElementFormatType,\r\n LexicalEditor,\r\n LexicalNode,\r\n NodeKey,\r\n Spread,\r\n} from 'lexical'\r\n\r\nimport type { SerializedDecoratorBlockNode } from '../../lexical-vue'\r\nimport DocImageComponent from './DocImageComponent'\r\nimport { DecoratorBlockNode } from '../../lexical-vue'\r\n\r\nimport type { Component } from 'vue'\r\nimport { h } from 'vue'\r\n\r\n/**\r\n * 图片节点序列化\r\n */\r\nexport type SerializedImageNode = Spread<\r\n {\r\n src: string\r\n },\r\n SerializedDecoratorBlockNode\r\n>\r\n\r\n/**\r\n * 转成图片节点\r\n * @param domNode \r\n * @returns \r\n */\r\nfunction convertImageElement(\r\n domNode: HTMLElement,\r\n): null | DOMConversionOutput {\r\n\r\n const className = domNode.getAttribute('class');\r\n const src = domNode.getAttribute('src');\r\n const alt = domNode.getAttribute('alt');\r\n const style = domNode.getAttribute('style');\r\n const width = domNode.getAttribute('width');\r\n\r\n return domNode.tagName.toLowerCase() == \"img\" && src != null ? { \r\n node:$createImageNode(src) \r\n } : null;\r\n}\r\n\r\n/**\r\n * 定义图片节点\r\n */\r\nexport class ImageNode extends DecoratorBlockNode {\r\n __src: string\r\n\r\n static getType(): string {\r\n return 'Image'\r\n }\r\n\r\n static clone(node: ImageNode): ImageNode {\r\n return new ImageNode(node.__src, node.__format, node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedImageNode): ImageNode {\r\n const node = $createImageNode(serializedNode.src)\r\n node.setFormat(serializedNode.format)\r\n return node\r\n }\r\n\r\n constructor(src: string, format?: ElementFormatType, key?: NodeKey) {\r\n super(format, key)\r\n this.__src = src\r\n }\r\n\r\n exportJSON(): SerializedImageNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: 'Image',\r\n version: 1,\r\n src: this.__src,\r\n }\r\n }\r\n\r\n exportDOM(): DOMExportOutput {\r\n const element = document.createElement('img')\r\n element.setAttribute('src', this.__src)\r\n element.setAttribute('width', '560')\r\n element.setAttribute('height', 'auto')\r\n \r\n return { element }\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n img: (domNode: HTMLElement) => {\r\n return domNode.tagName.toLowerCase() != \"img\" ? null : {\r\n conversion: convertImageElement,\r\n priority: 0\r\n }\r\n },\r\n }\r\n }\r\n\r\n updateDOM(): false {\r\n return false\r\n }\r\n\r\n getTextContent(\r\n _includeInert?: boolean | undefined,\r\n _includeDirectionless?: false | undefined,\r\n ): string {\r\n return this.__src\r\n }\r\n\r\n decorate(_editor: LexicalEditor, config: EditorConfig): Component {\r\n const embedBlockTheme = config.theme.embedBlock || {}\r\n return h(DocImageComponent, {\r\n baseClass: embedBlockTheme.base || '',\r\n focusClass: embedBlockTheme.focus || '',\r\n format: this.__format,\r\n nodeKey: this.getKey(),\r\n src: this.__src,\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * 创建图片节点\r\n * @param src \r\n * @returns \r\n */\r\nexport function $createImageNode(src: string): ImageNode {\r\n return new ImageNode(src)\r\n}\r\n\r\n/**\r\n * 判断是否是图片节点\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isImageNode(\r\n node: ImageNode | LexicalNode | null | undefined,\r\n): node is ImageNode {\r\n return node instanceof ImageNode\r\n}\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,SAAS,oBACP,SAC4B;AAEV,UAAQ,aAAa,OAAO;AACxC,QAAA,MAAM,QAAQ,aAAa,KAAK;AAC1B,UAAQ,aAAa,KAAK;AACxB,UAAQ,aAAa,OAAO;AAC5B,UAAQ,aAAa,OAAO;AAE1C,SAAO,QAAQ,QAAQ,YAAiB,KAAA,SAAS,OAAO,OAAQ;AAAA,IAC9D,MAAK,iBAAiB,GAAG;AAAA,EACvB,IAAA;AACN;AAKO,MAAM,kBAAkB,mBAAmB;AAAA,EAiBhD,YAAY,KAAa,QAA4B,KAAe;AAClE,UAAM,QAAQ,GAAG;AAjBnB;AAkBE,SAAK,QAAQ;AAAA,EACf;AAAA,EAjBA,OAAO,UAAkB;AAChB,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,MAAM,MAA4B;AACvC,WAAO,IAAI,UAAU,KAAK,OAAO,KAAK,UAAU,KAAK,KAAK;AAAA,EAC5D;AAAA,EAEA,OAAO,WAAW,gBAAgD;AAC1D,UAAA,OAAO,iBAAiB,eAAe,GAAG;AAC3C,SAAA,UAAU,eAAe,MAAM;AAC7B,WAAA;AAAA,EACT;AAAA,EAOA,aAAkC;AACzB,WAAA;AAAA,MACL,GAAG,MAAM,WAAW;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK,KAAK;AAAA,IAAA;AAAA,EAEd;AAAA,EAEA,YAA6B;AACrB,UAAA,UAAU,SAAS,cAAc,KAAK;AACpC,YAAA,aAAa,OAAO,KAAK,KAAK;AAC9B,YAAA,aAAa,SAAS,KAAK;AAC3B,YAAA,aAAa,UAAU,MAAM;AAErC,WAAO,EAAE,QAAQ;AAAA,EACnB;AAAA,EAEA,OAAO,YAAqC;AACnC,WAAA;AAAA,MACL,KAAK,CAAC,YAAyB;AAC7B,eAAO,QAAQ,QAAQ,YAAY,KAAK,QAAQ,OAAO;AAAA,UACrD,YAAY;AAAA,UACZ,UAAU;AAAA,QAAA;AAAA,MAEd;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,YAAmB;AACV,WAAA;AAAA,EACT;AAAA,EAEA,eACE,eACA,uBACQ;AACR,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,SAAwB,QAAiC;AAChE,UAAM,kBAAkB,OAAO,MAAM,cAAc,CAAA;AACnD,WAAO,EAAE,mBAAmB;AAAA,MAC1B,WAAW,gBAAgB,QAAQ;AAAA,MACnC,YAAY,gBAAgB,SAAS;AAAA,MACrC,QAAQ,KAAK;AAAA,MACb,SAAS,KAAK,OAAO;AAAA,MACrB,KAAK,KAAK;AAAA,IAAA,CACX;AAAA,EACH;AACF;AAOO,SAAS,iBAAiB,KAAwB;AAChD,SAAA,IAAI,UAAU,GAAG;AAC1B;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, inject, computed, unref, provide, reactive, createVNode, Suspense, Fragment } from "vue";
|
|
1
|
+
import { defineComponent, inject, computed, unref, provide, reactive, onMounted, watch, createVNode, Suspense, Fragment } from "vue";
|
|
2
2
|
import { dataFilterFormProps } from "./data-filter-form-options.js";
|
|
3
3
|
import { MKDataFilterFormItem } from "./data-filter-form-item/index.js";
|
|
4
4
|
import { DATA_FILTER_CONTEXT } from "./token.js";
|
|
@@ -23,11 +23,26 @@ const DataFilterForm = /* @__PURE__ */ defineComponent({
|
|
|
23
23
|
dataFilter,
|
|
24
24
|
labelWidth
|
|
25
25
|
}));
|
|
26
|
+
let resolve = null;
|
|
27
|
+
const suspenseResolvePromise = new Promise((_resolve) => {
|
|
28
|
+
resolve = _resolve;
|
|
29
|
+
});
|
|
26
30
|
const handleResolve = () => {
|
|
27
|
-
|
|
28
|
-
unref(dataFilter).setReady();
|
|
29
|
-
});
|
|
31
|
+
resolve == null ? void 0 : resolve();
|
|
30
32
|
};
|
|
33
|
+
onMounted(() => {
|
|
34
|
+
watch(dataTable, async (dataTable2, _, onCleanup) => {
|
|
35
|
+
await suspenseResolvePromise;
|
|
36
|
+
const disposable = dataTable2.afterInitdEvent.on(() => {
|
|
37
|
+
dataTable2.dataFilter.setReady();
|
|
38
|
+
});
|
|
39
|
+
onCleanup(() => {
|
|
40
|
+
disposable.dispose();
|
|
41
|
+
});
|
|
42
|
+
}, {
|
|
43
|
+
immediate: true
|
|
44
|
+
});
|
|
45
|
+
});
|
|
31
46
|
return () => {
|
|
32
47
|
var _a;
|
|
33
48
|
if (!unref(columns).length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-filter-form.js","sources":["../../../../../src/components/data-model/data-filter-form/data-filter-form.tsx"],"sourcesContent":["import {\n Fragment,\n Suspense,\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n provide,\n reactive,\n unref,\n watch,\n withCtx,\n} from \"vue\";\nimport { dataFilterFormProps } from \"./data-filter-form-options\";\nimport { MKDataFilterFormItem } from \"./data-filter-form-item\";\nimport { DATA_FILTER_CONTEXT } from \"./token\";\nimport { aesDecrypt, aesEncrypt } from \"@maketribe/utils\";\nimport { MSAppClient } from \"../../../core\";\nimport { useRouter } from \"vue-router\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../data-table/token\";\n\nexport default defineComponent({\n name: \"MKDataFilterForm\",\n props: dataFilterFormProps,\n setup(props, { slots }) {\n const router = useRouter();\n\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY)!;\n\n const dataTable = computed(() => props.dataTable);\n const dataFilter = computed(() => unref(dataTable).dataFilter);\n\n const columns = computed(() =>\n unref(dataFilter)\n .getColumns()\n .filter((column) => column.visible)\n );\n\n const labelWidth = computed(() => {\n const maxWordCount = Math.max(\n ...unref(columns).map((column) => column.label.length)\n );\n\n return maxWordCount * 14 + 10;\n });\n\n provide(DATA_FILTER_CONTEXT, reactive({ dataFilter, labelWidth }));\n\n const handleResolve = () => {\n
|
|
1
|
+
{"version":3,"file":"data-filter-form.js","sources":["../../../../../src/components/data-model/data-filter-form/data-filter-form.tsx"],"sourcesContent":["import {\n Fragment,\n Suspense,\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n provide,\n reactive,\n unref,\n watch,\n withCtx,\n onMounted,\n} from \"vue\";\nimport { dataFilterFormProps } from \"./data-filter-form-options\";\nimport { MKDataFilterFormItem } from \"./data-filter-form-item\";\nimport { DATA_FILTER_CONTEXT } from \"./token\";\nimport { aesDecrypt, aesEncrypt } from \"@maketribe/utils\";\nimport { MSAppClient } from \"../../../core\";\nimport { useRouter } from \"vue-router\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../data-table/token\";\n\nexport default defineComponent({\n name: \"MKDataFilterForm\",\n props: dataFilterFormProps,\n setup(props, { slots }) {\n const router = useRouter();\n\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY)!;\n\n const dataTable = computed(() => props.dataTable);\n const dataFilter = computed(() => unref(dataTable).dataFilter);\n\n const columns = computed(() =>\n unref(dataFilter)\n .getColumns()\n .filter((column) => column.visible)\n );\n\n const labelWidth = computed(() => {\n const maxWordCount = Math.max(\n ...unref(columns).map((column) => column.label.length)\n );\n\n return maxWordCount * 14 + 10;\n });\n\n provide(DATA_FILTER_CONTEXT, reactive({ dataFilter, labelWidth }));\n\n let resolve: Function | null = null;\n const suspenseResolvePromise = new Promise((_resolve) => {\n resolve = _resolve;\n });\n\n const handleResolve = () => {\n resolve?.();\n };\n\n onMounted(() => {\n watch(\n dataTable,\n async (dataTable, _, onCleanup) => {\n await suspenseResolvePromise;\n\n const disposable = dataTable.afterInitdEvent.on(() => {\n dataTable.dataFilter.setReady();\n });\n\n onCleanup(() => {\n disposable.dispose();\n });\n },\n { immediate: true }\n );\n });\n\n return () => {\n if (!unref(columns).length) {\n return null;\n }\n\n let children: any = slots.default?.();\n\n if (!children) {\n children = unref(columns).map((column) => {\n if (!column.name) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() || (\n <MKDataFilterFormItem\n name={column.name}\n v-slots={{ default: slots[`col-${column.name}-content`] }}\n />\n )\n );\n });\n }\n\n if (!children) {\n return null;\n }\n\n return (\n <div class=\"mk-data-filter-form\">\n <Suspense onResolve={handleResolve}>\n <Fragment>{children}</Fragment>\n </Suspense>\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","dataFilterFormProps","setup","slots","useRouter","inject","DATA_TABLE_CONTEXT_KEY","dataTable","computed","dataFilter","unref","columns","getColumns","filter","column","visible","labelWidth","maxWordCount","Math","max","map","label","length","provide","DATA_FILTER_CONTEXT","reactive","resolve","suspenseResolvePromise","Promise","_resolve","handleResolve","onMounted","watch","_","onCleanup","disposable","afterInitdEvent","on","setReady","dispose","immediate","children","default","_createVNode","MKDataFilterFormItem","Suspense","_Fragment"],"mappings":";;;;;;AAsBA,MAAeA,iDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AAAA,IAAEG;AAAAA,EAAM,GAAG;AACPC,cAAW;AAEDC,WAAOC,sBAAsB;AAEtD,UAAMC,YAAYC,SAAS,MAAMR,MAAMO,SAAS;AAChD,UAAME,aAAaD,SAAS,MAAME,MAAMH,SAAS,EAAEE,UAAU;AAE7D,UAAME,UAAUH,SAAS,MACvBE,MAAMD,UAAU,EACbG,WAAY,EACZC,OAAQC,YAAWA,OAAOC,OAAO,CACtC;AAEA,UAAMC,aAAaR,SAAS,MAAM;AAChC,YAAMS,eAAeC,KAAKC,IACxB,GAAGT,MAAMC,OAAO,EAAES,IAAKN,YAAWA,OAAOO,MAAMC,MAAM,CACvD;AAEA,aAAOL,eAAe,KAAK;AAAA,IAC7B,CAAC;AAEDM,YAAQC,qBAAqBC,SAAS;AAAA,MAAEhB;AAAAA,MAAYO;AAAAA,IAAY,CAAA,CAAC;AAEjE,QAAIU,UAA2B;AAC/B,UAAMC,yBAAyB,IAAIC,QAASC,cAAa;AACvDH,gBAAUG;AAAAA,IACZ,CAAC;AAED,UAAMC,gBAAgBA,MAAM;AAC1BJ;AAAAA;AAGFK,cAAU,MAAM;AACdC,YACEzB,WACA,OAAOA,YAAW0B,GAAGC,cAAc;AACjC,cAAMP;AAEN,cAAMQ,aAAa5B,WAAU6B,gBAAgBC,GAAG,MAAM;AACpD9B,UAAAA,WAAUE,WAAW6B;QACvB,CAAC;AAEDJ,kBAAU,MAAM;AACdC,qBAAWI,QAAO;AAAA,QACpB,CAAC;AAAA,MACH,GACA;AAAA,QAAEC,WAAW;AAAA,MAAK,CACpB;AAAA,IACF,CAAC;AAED,WAAO,MAAM;;AACX,UAAI,CAAC9B,MAAMC,OAAO,EAAEW,QAAQ;AAC1B,eAAO;AAAA,MACT;AAEA,UAAImB,YAAgBtC,WAAMuC,YAANvC;AAEpB,UAAI,CAACsC,UAAU;AACbA,mBAAW/B,MAAMC,OAAO,EAAES,IAAKN,YAAW;;AACxC,cAAI,CAACA,OAAOf,MAAM;AAChB,mBAAO;AAAA,UACT;AAEA,mBACEI,MAAAA,MAAM,OAAOW,OAAOf,IAAI,QAAxBI,gBAAAA,IAAAA,gBAA+BwC,YAAAC,sBAAA;AAAA,YAAA,QAErB9B,OAAOf;AAAAA,aACJ;AAAA,YAAE2C,SAASvC,MAAM,OAAOW,OAAOf,IAAI,UAAU;AAAA,UAAE,CAAC;AAAA,QAIjE,CAAC;AAAA,MACH;AAEA,UAAI,CAAC0C,UAAU;AACb,eAAO;AAAA,MACT;AAEA,aAAAE,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAAAA,CAAAA,YAAAE,UAAA;AAAA,QAAA,aAEyBf;AAAAA,MAAa,GAAA;AAAA,QAAAY,SAAAA,MAAA,CAAAC,YAAAG,iBACrBL,QAAQ,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA;AAAA;EAK7B;AACF,CAAC;"}
|
package/dist/esm/components/data-model/data-filter-popover/data-filter-popover-options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-filter-popover-options.js","sources":["../../../../../src/components/data-model/data-filter-popover/data-filter-popover-options.ts"],"sourcesContent":["import { DataTable } from \"@maketribe/dm\";\
|
|
1
|
+
{"version":3,"file":"data-filter-popover-options.js","sources":["../../../../../src/components/data-model/data-filter-popover/data-filter-popover-options.ts"],"sourcesContent":["import { DataTable } from \"@maketribe/dm\";\nimport { buildProps } from \"@maketribe/utils\";\n\nexport const dataFilterPopoverProps = buildProps({\n dataTable: { type: DataTable<any>, required: true },\n} as const);\n"],"names":[],"mappings":";;AAGO,MAAM,yBAAyB,WAAW;AAAA,EAC/C,WAAW,EAAE,MAAM,WAAgB,UAAU,KAAK;AACpD,CAAU;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, inject, createVNode } from "vue";
|
|
1
|
+
import { defineComponent, inject, computed, unref, createVNode } from "vue";
|
|
2
2
|
import { ElButton } from "element-plus";
|
|
3
3
|
import { DATA_TABLE_CONTEXT_KEY } from "../../../token.js";
|
|
4
4
|
import { MKDataFilterPopover } from "../../../../data-filter-popover/index.js";
|
|
@@ -30,14 +30,22 @@ import "../../../../../basic/copy-container/index.js";
|
|
|
30
30
|
const TableFilter = /* @__PURE__ */ defineComponent({
|
|
31
31
|
name: "MKTableFilter",
|
|
32
32
|
setup() {
|
|
33
|
-
|
|
34
|
-
const dataTable = (
|
|
33
|
+
const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);
|
|
34
|
+
const dataTable = computed(() => dataTableContext.dataTable);
|
|
35
|
+
const dataTableInitd = computed(() => {
|
|
36
|
+
var _a;
|
|
37
|
+
return ((_a = unref(dataTable)) == null ? void 0 : _a.initd) ?? false;
|
|
38
|
+
});
|
|
35
39
|
return () => {
|
|
36
|
-
if (!
|
|
40
|
+
if (!unref(dataTableInitd)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const _dataTable = unref(dataTable);
|
|
44
|
+
if (_dataTable.dataFilter.getColumns().length === 0) {
|
|
37
45
|
return null;
|
|
38
46
|
}
|
|
39
47
|
return createVNode(MKDataFilterPopover, {
|
|
40
|
-
"dataTable":
|
|
48
|
+
"dataTable": _dataTable
|
|
41
49
|
}, {
|
|
42
50
|
default: () => [createVNode(ElButton, null, {
|
|
43
51
|
default: () => [createVNode(MKSvgIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-filter.js","sources":["../../../../../../../../src/components/data-model/data-table/components/header-components/table-filter/table-filter.tsx"],"sourcesContent":["import { defineComponent, inject } from \"vue\";\nimport { ElButton } from \"element-plus\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\nimport { MKDataFilterPopover } from \"../../../../data-filter-popover\";\nimport { MKSvgIcon } from \"../../../../../basic\";\n\nexport default defineComponent({\n name: \"MKTableFilter\",\n setup() {\n const
|
|
1
|
+
{"version":3,"file":"table-filter.js","sources":["../../../../../../../../src/components/data-model/data-table/components/header-components/table-filter/table-filter.tsx"],"sourcesContent":["import { defineComponent, inject, computed, unref, watch, ref } from \"vue\";\nimport { ElButton } from \"element-plus\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\nimport { MKDataFilterPopover } from \"../../../../data-filter-popover\";\nimport { MKSvgIcon } from \"../../../../../basic\";\n\nexport default defineComponent({\n name: \"MKTableFilter\",\n setup() {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTable = computed(() => dataTableContext!.dataTable);\n\n const dataTableInitd = computed(() => unref(dataTable)?.initd ?? false);\n\n return () => {\n if (!unref(dataTableInitd)) {\n return null;\n }\n\n const _dataTable = unref(dataTable);\n\n if (_dataTable.dataFilter.getColumns().length === 0) {\n return null;\n }\n\n return (\n <MKDataFilterPopover dataTable={_dataTable}>\n <ElButton>\n <MKSvgIcon iconClass=\"Filter\" />\n </ElButton>\n </MKDataFilterPopover>\n );\n };\n },\n});\n"],"names":["defineComponent","name","setup","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTable","computed","dataTableInitd","unref","initd","_dataTable","dataFilter","getColumns","length","_createVNode","MKDataFilterPopover","default","ElButton","MKSvgIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAeA,8CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,QAAQ;AACN,UAAMC,mBAAmBC,OAAOC,sBAAsB;AAEtD,UAAMC,YAAYC,SAAS,MAAMJ,iBAAkBG,SAAS;AAE5D,UAAME,iBAAiBD,SAAS,MAAME;;AAAAA,0BAAMH,SAAS,MAAfG,mBAAkBC,UAAS;AAAA,KAAK;AAEtE,WAAO,MAAM;AACX,UAAI,CAACD,MAAMD,cAAc,GAAG;AAC1B,eAAO;AAAA,MACT;AAEA,YAAMG,aAAaF,MAAMH,SAAS;AAElC,UAAIK,WAAWC,WAAWC,WAAU,EAAGC,WAAW,GAAG;AACnD,eAAO;AAAA,MACT;AAEA,aAAAC,YAAAC,qBAAA;AAAA,QAAA,aACkCL;AAAAA,MAAU,GAAA;AAAA,QAAAM,SAAAA,MAAAF,CAAAA,YAAAG,UAAA,MAAA;AAAA,UAAAD,SAAAA,MAAAF,CAAAA,YAAAI,WAAA;AAAA,YAAA,aAAA;AAAA,UAAA,GAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAOhD;AACF,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { treeProps } from \"./tree-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n setup(props) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTree = computed(\n () => props.dataTree ?? (dataTableContext!.dataTable as DataTree)\n );\n\n const treeRef = ref<{\n filter: InstanceType<typeof ElTree>[\"filter\"];\n getNode: InstanceType<typeof ElTree>[\"getNode\"];\n } | null>(null);\n\n const rootNodes = computed(() => unref(dataTree).rootNodes);\n\n const handleAdd = (dataTreeNode?: DataTreeNode) => {\n unref(dataTree).addRecord(\n dataTreeNode ? { pid: dataTreeNode.data.id } : {}\n );\n };\n\n const handleEdit = (dataTreeNode: DataTreeNode) => {\n unref(dataTree).editRecord(dataTreeNode.data);\n };\n\n const handleDelete = async (dataTreeNode: DataTreeNode) => {\n unref(dataTree).deleteRecord(dataTreeNode.data);\n };\n\n const handleLoad = async (node: Node, resolve: Function) => {\n if (node.level === 0) {\n return;\n }\n\n if (!unref(dataTree).lazy) {\n resolve(node.data.children);\n return;\n }\n\n const dataTreeNode = node.data as DataTreeNode;\n\n await dataTreeNode.load();\n\n resolve(dataTreeNode.children);\n };\n\n const filter = (value: any) => {\n unref(treeRef)?.filter(value);\n };\n\n const handleCurrentChange = (dataTreeNode: DataTreeNode, node: Node) => {\n unref(dataTree).setSelection([dataTreeNode.id]);\n };\n\n return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n handleCurrentChange,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n handleCurrentChange,\n $slots,\n } = this;\n\n const currentNodeKey = innerDataTree.getSelection()[0] ?? \"\";\n
|
|
1
|
+
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { treeProps } from \"./tree-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n setup(props) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTree = computed(\n () => props.dataTree ?? (dataTableContext!.dataTable as DataTree)\n );\n\n const treeRef = ref<{\n filter: InstanceType<typeof ElTree>[\"filter\"];\n getNode: InstanceType<typeof ElTree>[\"getNode\"];\n } | null>(null);\n\n const rootNodes = computed(() => unref(dataTree).rootNodes);\n\n const handleAdd = (dataTreeNode?: DataTreeNode) => {\n unref(dataTree).addRecord(\n dataTreeNode ? { pid: dataTreeNode.data.id } : {}\n );\n };\n\n const handleEdit = (dataTreeNode: DataTreeNode) => {\n unref(dataTree).editRecord(dataTreeNode.data);\n };\n\n const handleDelete = async (dataTreeNode: DataTreeNode) => {\n unref(dataTree).deleteRecord(dataTreeNode.data);\n };\n\n const handleLoad = async (node: Node, resolve: Function) => {\n if (node.level === 0) {\n return;\n }\n\n if (!unref(dataTree).lazy) {\n resolve(node.data.children);\n return;\n }\n\n const dataTreeNode = node.data as DataTreeNode;\n\n await dataTreeNode.load();\n\n resolve(dataTreeNode.children);\n };\n\n const filter = (value: any) => {\n unref(treeRef)?.filter(value);\n };\n\n const handleCurrentChange = (dataTreeNode: DataTreeNode, node: Node) => {\n unref(dataTree).setSelection([dataTreeNode.id]);\n };\n\n return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n handleCurrentChange,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n handleCurrentChange,\n $slots,\n } = this;\n\n const currentNodeKey = innerDataTree.getSelection()[0] ?? \"\";\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n highlight-current\n data={rootNodes}\n lazy\n filterNodeMethod={filterNodeMethod as any}\n currentNodeKey={currentNodeKey}\n nodeKey=\"id\"\n load={handleLoad}\n onCurrent-change={handleCurrentChange}\n v-slots={{\n default: (scope: any) => {\n let children = $slots.default?.(scope);\n\n if (children) {\n return children;\n }\n\n const { data } = scope;\n\n const label = data.data[innerDataTree.props.label];\n\n const main = $slots[\"node-main\"]?.(scope) || label;\n\n const tools = $slots[\"node-tools\"]?.(scope) || (\n <Fragment>\n {$slots[\"node-tools-prefix\"]?.(scope)}\n <ElButton type=\"primary\" link onClick={() => handleAdd(data)}>\n 添加\n </ElButton>\n <ElButton type=\"primary\" link onClick={() => handleEdit(data)}>\n 编辑\n </ElButton>\n <ElButton type=\"danger\" link onClick={() => handleDelete(data)}>\n 删除\n </ElButton>\n {$slots[\"node-tools-suffix\"]?.(scope)}\n </Fragment>\n );\n\n return (\n <div class=\"mk-data-tree-node\">\n <div class=\"mk-data-tree-node_main\">{main}</div>\n\n <div\n class=\"mk-data-tree-node__tools\"\n onClick={(e) => e.stopPropagation()}\n >\n {tools}\n </div>\n </div>\n );\n },\n }}\n />\n );\n },\n});\n"],"names":["defineComponent","name","props","treeProps","setup","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTree","computed","dataTable","treeRef","ref","rootNodes","unref","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","lazy","children","load","filter","value","handleCurrentChange","setSelection","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","currentNodeKey","getSelection","_createVNode","ElTree","isLeaf","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -122,9 +122,7 @@ import { CmsArticlesTable } from "./modules/cms/dataviews/cms-articles/CmsArticl
|
|
|
122
122
|
import { CmsArticlesForm } from "./modules/cms/dataviews/cms-articles/CmsArticlesForm.js";
|
|
123
123
|
import { CmsPartTypesForm } from "./modules/cms/dataviews/cms-part-types/CmsPartTypesForm.js";
|
|
124
124
|
import { CmsPartTypesTable } from "./modules/cms/dataviews/cms-part-types/CmsPartTypesTable.js";
|
|
125
|
-
import { CmsPartTypesTree } from "./modules/cms/dataviews/cms-part-types/CmsPartTypesTree.js";
|
|
126
125
|
import { CmsPartForm } from "./modules/cms/dataviews/cms-parts/CmsPartForm.js";
|
|
127
|
-
import { CmsPartTable } from "./modules/cms/dataviews/cms-parts/CmsPartTable.js";
|
|
128
126
|
import { CmsPartTree } from "./modules/cms/dataviews/cms-parts/CmsPartTree.js";
|
|
129
127
|
import { CmsTagsTable } from "./modules/cms/dataviews/cms-tags/CmsTagsTable.js";
|
|
130
128
|
import { CmsTagsForm } from "./modules/cms/dataviews/cms-tags/CmsTagsForm.js";
|
|
@@ -172,11 +170,9 @@ export {
|
|
|
172
170
|
CmsArticlesForm,
|
|
173
171
|
CmsArticlesTable,
|
|
174
172
|
CmsPartForm,
|
|
175
|
-
CmsPartTable,
|
|
176
173
|
CmsPartTree,
|
|
177
174
|
CmsPartTypesForm,
|
|
178
175
|
CmsPartTypesTable,
|
|
179
|
-
CmsPartTypesTree,
|
|
180
176
|
CmsTagsForm,
|
|
181
177
|
CmsTagsTable,
|
|
182
178
|
ConfigComponents,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import \"./assets/iconfonts/iconfont.js\";\nexport * from \"./constants\";\n\nexport * from \"./core\";\n\nimport { installer } from \"./installer\";\n\nexport * from \"./layouts\";\nexport * from \"./composables\";\nexport * from \"./components\";\nexport * from \"./tokens\";\n\nexport const install = installer.install;\nexport const version = installer.version;\n\nexport * from \"./init-application\";\nexport * from \"./define-data-table\";\nexport * from \"./define-data-form\";\nexport * from \"./define-data-tree\";\n\nexport * from \"./modules/ms\";\nexport * from \"./modules/cms\";\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import \"./assets/iconfonts/iconfont.js\";\nexport * from \"./constants\";\n\nexport * from \"./core\";\n\nimport { installer } from \"./installer\";\n\nexport * from \"./layouts\";\nexport * from \"./composables\";\nexport * from \"./components\";\nexport * from \"./tokens\";\n\nexport const install = installer.install;\nexport const version = installer.version;\n\nexport * from \"./init-application\";\nexport * from \"./define-data-table\";\nexport * from \"./define-data-form\";\nexport * from \"./define-data-tree\";\n\nexport * from \"./modules/ms\";\nexport * from \"./modules/cms\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,UAAU,UAAU;AAC1B,MAAM,UAAU,UAAU;"}
|