@maketribe/ms-app 3.0.8 → 3.0.10
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/data-model/data-table/views/table/table.js +2 -1
- package/dist/cjs/components/data-model/data-table/views/table/table.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/tree/tree.js +0 -1
- package/dist/cjs/components/data-model/data-table/views/tree/tree.js.map +1 -1
- package/dist/cjs/components/form-components/form-detail/form-detail.js +7 -6
- package/dist/cjs/components/form-components/form-detail/form-detail.js.map +1 -1
- package/dist/cjs/core/Router.js +1 -0
- package/dist/cjs/core/Router.js.map +1 -1
- package/dist/cjs/page/index/dv/default/single/list/dialog.vue2.js +0 -19
- package/dist/cjs/page/index/dv/default/single/list/dialog.vue2.js.map +1 -1
- package/dist/cjs/page/index/dv/default/single/list/normal.vue2.js +1 -20
- package/dist/cjs/page/index/dv/default/single/list/normal.vue2.js.map +1 -1
- package/dist/cjs/utils.js +1 -4
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/table/table.js +2 -1
- package/dist/esm/components/data-model/data-table/views/table/table.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/tree/tree.js +0 -1
- package/dist/esm/components/data-model/data-table/views/tree/tree.js.map +1 -1
- package/dist/esm/components/form-components/form-detail/form-detail.js +7 -6
- package/dist/esm/components/form-components/form-detail/form-detail.js.map +1 -1
- package/dist/esm/core/Router.js +1 -0
- package/dist/esm/core/Router.js.map +1 -1
- package/dist/esm/page/index/dv/default/single/list/dialog.vue2.js +1 -20
- package/dist/esm/page/index/dv/default/single/list/dialog.vue2.js.map +1 -1
- package/dist/esm/page/index/dv/default/single/list/normal.vue2.js +2 -21
- package/dist/esm/page/index/dv/default/single/list/normal.vue2.js.map +1 -1
- package/dist/esm/utils.js +1 -4
- package/dist/esm/utils.js.map +1 -1
- package/package.json +4 -4
- package/src/components/data-model/data-table/views/table/table.tsx +2 -1
- package/src/components/data-model/data-table/views/tree/tree.tsx +0 -2
- package/src/components/form-components/form-detail/form-detail.tsx +10 -8
- package/src/core/Router.ts +1 -0
- package/src/page/index/dv/default/single/list/dialog.vue +0 -25
- package/src/page/index/dv/default/single/list/normal.vue +0 -25
- package/src/utils.ts +4 -4
|
@@ -20,8 +20,9 @@ var Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20
20
|
width: column.width,
|
|
21
21
|
minWidth: column.minWidth,
|
|
22
22
|
fixed: column.fixed,
|
|
23
|
+
align: column.align || "center",
|
|
23
24
|
reserveSelection: true,
|
|
24
|
-
type: column.type
|
|
25
|
+
type: column.type === null ? "default" : column.type
|
|
25
26
|
};
|
|
26
27
|
if (!column.visible) {
|
|
27
28
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\nimport { ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { tableProps } from \"./table-options\";\nimport { MKDataTableColumn } from \"../../data-table-column\";\nimport MKDataTableColumnComponent from \"../../data-table-column-component\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const dataTable = computed(() => props.dataTable);\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n reserveSelection: true,\n type: column.type,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumnComponent\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(dataTable).getList()}\n rowKey={unref(dataTable).primaryKey}\n show-overflow-tooltip\n border\n stripe\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n >\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","tableProps","setup","slots","dataTable","computed","columns","unref","getColumns","filter","column","visible","map","columnProps","prop","label","width","minWidth","fixed","reserveSelection","type","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumnComponent","ElTable","getList","primaryKey","empty","ElEmpty"],"mappings":";;;;;;;AAMA,4BAA+BA,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,SAAA;AAAA,EACNC,KAAOC,EAAAA,uBAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,SAAYC,GAAAA,YAAAA,CAAS,MAAML,KAAAA,CAAMI,SAAS,CAAA,CAAA;AAEhD,IAAA,OAAO,MAAM;AACX,MAAA,MAAME,OAAUC,GAAAA,SAAAA,CAAMH,SAAS,CAAA,CAC5BI,YACAC,CAAAA,MAAAA,CAAQC,CAAWA,MAAAA,KAAAA,MAAAA,CAAOC,OAAWD,IAAAA,MAAAA,CAAOX,IAAI,CAAA,CAChDa,IAAKF,CAAW,MAAA,KAAA;AACf,QAAA,MAAMG,WAAmC,GAAA;AAAA,UACvCC,MAAMJ,MAAOX,CAAAA,IAAAA;AAAAA,UACbgB,OAAOL,MAAOK,CAAAA,KAAAA;AAAAA,UACdC,OAAON,MAAOM,CAAAA,KAAAA;AAAAA,UACdC,UAAUP,MAAOO,CAAAA,QAAAA;AAAAA,UACjBC,OAAOR,MAAOQ,CAAAA,KAAAA;AAAAA,UACdC,gBAAkB,EAAA,IAAA;AAAA,UAClBC,
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\nimport { ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { tableProps } from \"./table-options\";\nimport { MKDataTableColumn } from \"../../data-table-column\";\nimport MKDataTableColumnComponent from \"../../data-table-column-component\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const dataTable = computed(() => props.dataTable);\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n align: column.align || \"center\",\n reserveSelection: true,\n type: column.type === null ? \"default\" : column.type,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumnComponent\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(dataTable).getList()}\n rowKey={unref(dataTable).primaryKey}\n show-overflow-tooltip\n border\n stripe\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n >\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","tableProps","setup","slots","dataTable","computed","columns","unref","getColumns","filter","column","visible","map","columnProps","prop","label","width","minWidth","fixed","align","reserveSelection","type","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumnComponent","ElTable","getList","primaryKey","empty","ElEmpty"],"mappings":";;;;;;;AAMA,4BAA+BA,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,SAAA;AAAA,EACNC,KAAOC,EAAAA,uBAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,SAAYC,GAAAA,YAAAA,CAAS,MAAML,KAAAA,CAAMI,SAAS,CAAA,CAAA;AAEhD,IAAA,OAAO,MAAM;AACX,MAAA,MAAME,OAAUC,GAAAA,SAAAA,CAAMH,SAAS,CAAA,CAC5BI,YACAC,CAAAA,MAAAA,CAAQC,CAAWA,MAAAA,KAAAA,MAAAA,CAAOC,OAAWD,IAAAA,MAAAA,CAAOX,IAAI,CAAA,CAChDa,IAAKF,CAAW,MAAA,KAAA;AACf,QAAA,MAAMG,WAAmC,GAAA;AAAA,UACvCC,MAAMJ,MAAOX,CAAAA,IAAAA;AAAAA,UACbgB,OAAOL,MAAOK,CAAAA,KAAAA;AAAAA,UACdC,OAAON,MAAOM,CAAAA,KAAAA;AAAAA,UACdC,UAAUP,MAAOO,CAAAA,QAAAA;AAAAA,UACjBC,OAAOR,MAAOQ,CAAAA,KAAAA;AAAAA,UACdC,KAAAA,EAAOT,OAAOS,KAAS,IAAA,QAAA;AAAA,UACvBC,gBAAkB,EAAA,IAAA;AAAA,UAClBC,IAAMX,EAAAA,MAAAA,CAAOW,IAAS,KAAA,IAAA,GAAO,YAAYX,MAAOW,CAAAA,IAAAA;AAAAA,SAClD,CAAA;AAEA,QAAI,IAAA,CAACX,OAAOC,OAAS,EAAA;AACnB,UAAO,OAAA,IAAA,CAAA;AAAA,SACT;AAEA,QACER,OAAAA,KAAAA,CAAO,OAAMO,MAAOX,CAAAA,IAAK,EAAC,CAAI,IAAA,IAACuB,eAAAC,CAAAA,yBAAAA,EAEvBV,WACK,EAAA;AAAA,UACPW,SAAUC,CAIJ,KAAA,KAAA;AACJ,YAAA,IAAIC,WAAWvB,KAAO,CAAA,CAAA,IAAA,EAAMO,MAAOX,CAAAA,IAAK,UAAS,CAAI,GAAA;AAAA,cACnD4B,QAAQF,KAAME,CAAAA,MAAAA;AAAAA,cACdC,KAAKH,KAAMG,CAAAA,GAAAA;AAAAA,cACXlB,MAAAA;AAAAA,cACAN,SAAAA,EAAWG,UAAMH,SAAS,CAAA;AAAA,aAC3B,CAAA,CAAA;AAED,YAAA,IAAIsB,QAAU,EAAA;AACZ,cAAOA,OAAAA,QAAAA,CAAAA;AAAAA,aACT;AAEA,YAAA,OAAAJ,gBAAAO,gCAAA,EAAA;AAAA,cAAA,QAEYnB,EAAAA,MAAAA;AAAAA,cAAM,OACTe,KAAMG,CAAAA,GAAAA;AAAAA,cAAG,SACPH,KAAME,CAAAA,MAAAA;AAAAA,eAAM,IAAA,CAAA,CAAA;AAAA,WAGzB;AAAA,SACD,CAAA,CAAA;AAAA,OAIR,CAAA,CAAA;AAEH,MAAA,OAAAL,gBAAAQ,mBAAA,EAAA;AAAA,QAAA,MAEUvB,EAAAA,SAAAA,CAAMH,SAAS,CAAA,CAAE2B,OAAQ,EAAA;AAAA,QAAC,QAAA,EACxBxB,SAAMH,CAAAA,SAAS,CAAE4B,CAAAA,UAAAA;AAAAA,QAAU,uBAAA,EAAA,IAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,OAAA,EAAA;AAAA,QAAAR,OAAAA,EAAAA,MAAA,CAMlClB,OAAO,CAAA;AAAA,QAFG2B,KAAAA,EAAOA,MAAM9B,KAAM8B,CAAAA,KAAAA,QAASX,eAAAY,CAAAA,mBAAAA,EAAA,MAAA,IAAA,CAAA;AAAA,OAAe,CAAA,CAAA;AAAA,KAK5D,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}
|
|
@@ -11,7 +11,6 @@ var Tree = /* @__PURE__ */ vue.defineComponent({
|
|
|
11
11
|
const dataTree = vue.computed(() => props.dataTree);
|
|
12
12
|
const treeRef = vue.ref(null);
|
|
13
13
|
const rootNodes = vue.computed(() => vue.unref(dataTree).rootNodes);
|
|
14
|
-
window.rootNodes = rootNodes;
|
|
15
14
|
const handleAdd = (dataTreeNode) => {
|
|
16
15
|
vue.unref(dataTree).addRecord(dataTreeNode ? {
|
|
17
16
|
pid: dataTreeNode.data.id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTreeNode } from \"@maketribe/dm\";\nimport { treeProps } from \"./tree-options\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n setup(props) {\n const dataTree = computed(() => props.dataTree);\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
|
|
1
|
+
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTreeNode } from \"@maketribe/dm\";\nimport { treeProps } from \"./tree-options\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n setup(props) {\n const dataTree = computed(() => props.dataTree);\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 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 return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n $slots,\n } = this;\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n data={rootNodes}\n filterNodeMethod={filterNodeMethod as any}\n nodeKey=\"id\"\n load={handleLoad}\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","dataTree","computed","treeRef","ref","rootNodes","unref","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","load","children","filter","value","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","_createVNode","ElTree","isLeaf","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ require('../../data-model/data-table-pagination/index.js');
|
|
|
9
9
|
var formDetailOptions = require('./form-detail-options.js');
|
|
10
10
|
var useFormItem = require('../../data-model/data-form/composables/use-form-item.js');
|
|
11
11
|
var elementPlus = require('element-plus');
|
|
12
|
+
var utils = require('@maketribe/utils');
|
|
12
13
|
|
|
13
14
|
function _isSlot(s) {
|
|
14
15
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
|
|
@@ -30,19 +31,19 @@ var FormDetail = /* @__PURE__ */ vue.defineComponent({
|
|
|
30
31
|
});
|
|
31
32
|
vue.watch(detailTable, (detailTable2, _, onCleanUp) => {
|
|
32
33
|
detailTable2.dataFilter.setReady();
|
|
33
|
-
const
|
|
34
|
+
const disposable = new utils.Disposable();
|
|
35
|
+
disposable.register(detailTable2.editRecordEvent.on(({
|
|
34
36
|
item
|
|
35
37
|
}) => {
|
|
36
38
|
vue.unref(detailForm).editRecord(item);
|
|
37
39
|
isShowDrawer.value = true;
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
+
}));
|
|
41
|
+
disposable.register(detailTable2.addRecordEvent.on(async () => {
|
|
40
42
|
isShowDrawer.value = true;
|
|
41
43
|
await vue.unref(detailForm).addRecord();
|
|
42
|
-
});
|
|
44
|
+
}));
|
|
43
45
|
onCleanUp(() => {
|
|
44
|
-
|
|
45
|
-
addRecordEventDisposable.dispose();
|
|
46
|
+
disposable.dispose();
|
|
46
47
|
});
|
|
47
48
|
}, {
|
|
48
49
|
immediate: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-detail.js","sources":["../../../../../src/components/form-components/form-detail/form-detail.tsx"],"sourcesContent":["import { computed, defineComponent, ref, unref, watch } from \"vue\";\nimport { MKDataFormPage, MKDataTable } from \"../../data-model\";\nimport { formDetailProps } from \"./form-detail-options\";\nimport { useFormItem } from \"../../data-model/data-form/composables\";\nimport { ElDrawer, ElEmpty } from \"element-plus\";\n\nexport default defineComponent({\n name: \"MKFormDetail\",\n props: formDetailProps,\n setup(props) {\n const detailTable = computed(() => props.column.detailTable);\n const detailForm = computed(() => props.column.detailForm!);\n\n const { value } = useFormItem();\n\n const isShowDrawer = ref(false);\n\n watch(\n computed(() => unref(value)),\n (value) => {\n const _detailTable = unref(detailTable);\n\n value = Array.isArray(value) ? value : [];\n\n _detailTable.setList(\n value.map((item: any) => _detailTable.formatItem(item))\n );\n }\n );\n\n watch(\n detailTable,\n (detailTable, _, onCleanUp) => {\n detailTable.dataFilter.setReady();\n\n const
|
|
1
|
+
{"version":3,"file":"form-detail.js","sources":["../../../../../src/components/form-components/form-detail/form-detail.tsx"],"sourcesContent":["import { computed, defineComponent, ref, unref, watch } from \"vue\";\nimport { MKDataFormPage, MKDataTable } from \"../../data-model\";\nimport { formDetailProps } from \"./form-detail-options\";\nimport { useFormItem } from \"../../data-model/data-form/composables\";\nimport { ElDrawer, ElEmpty } from \"element-plus\";\nimport { Disposable } from \"@maketribe/utils\";\n\nexport default defineComponent({\n name: \"MKFormDetail\",\n props: formDetailProps,\n setup(props) {\n const detailTable = computed(() => props.column.detailTable);\n const detailForm = computed(() => props.column.detailForm!);\n\n const { value } = useFormItem();\n\n const isShowDrawer = ref(false);\n\n watch(\n computed(() => unref(value)),\n (value) => {\n const _detailTable = unref(detailTable);\n\n value = Array.isArray(value) ? value : [];\n\n _detailTable.setList(\n value.map((item: any) => _detailTable.formatItem(item))\n );\n }\n );\n\n watch(\n detailTable,\n (detailTable, _, onCleanUp) => {\n detailTable.dataFilter.setReady();\n\n const disposable = new Disposable();\n\n disposable.register(\n detailTable.editRecordEvent.on(({ item }) => {\n unref(detailForm).editRecord(item);\n\n isShowDrawer.value = true;\n })\n );\n\n disposable.register(\n detailTable.addRecordEvent.on(async () => {\n isShowDrawer.value = true;\n\n await unref(detailForm).addRecord();\n })\n );\n\n onCleanUp(() => {\n disposable.dispose();\n });\n },\n { immediate: true }\n );\n\n watch(\n detailForm,\n (detailForm, _, onCleanup) => {\n const submittedEventDisposable = detailForm.submittedEvent.on(() => {\n isShowDrawer.value = false;\n\n unref(detailTable).load();\n });\n\n onCleanup(() => {\n submittedEventDisposable.dispose();\n });\n },\n { immediate: true }\n );\n\n const handleDrawerCancel = () => {\n isShowDrawer.value = false;\n };\n\n return () => {\n const dataForm = unref(isShowDrawer) ? (\n <MKDataFormPage\n dataForm={unref(detailForm)}\n autoLoad={false}\n onCancel={handleDrawerCancel}\n />\n ) : null;\n\n return (\n <div class=\"mk-form-detail\">\n <MKDataTable\n dataTable={unref(detailTable)}\n autoLoad={false}\n v-slots={{ empty: () => <ElEmpty image-size={100} /> }}\n />\n <ElDrawer\n class=\"mk-form-detail__drawer\"\n modelValue={unref(isShowDrawer)}\n onUpdate:modelValue={(v) => (isShowDrawer.value = v)}\n appendToBody\n withHeader={false}\n width=\"50%\"\n >\n {dataForm}\n </ElDrawer>\n </div>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","formDetailProps","setup","detailTable","computed","column","detailForm","value","useFormItem","isShowDrawer","ref","watch","unref","_detailTable","Array","isArray","setList","map","item","formatItem","_","onCleanUp","dataFilter","setReady","disposable","Disposable","register","editRecordEvent","on","editRecord","addRecordEvent","addRecord","dispose","immediate","onCleanup","submittedEventDisposable","submittedEvent","load","handleDrawerCancel","dataForm","_createVNode","MKDataFormPage","MKDataTable","empty","ElEmpty","ElDrawer","v","default"],"mappings":";;;;;;;;;;;;;AAK8C,SAAAA,QAAAC,CAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAAC,IAAAA,MAAAA,CAAAC,SAAAC,CAAAA,QAAAA,CAAAC,IAAAJ,CAAAA,CAAA,CAAAK,KAAAA,iBAAAA,IAAAA,CAAAA,WAAAA,CAAAL,CAAA,CAAA,CAAA;AAAA,CAAA;AAE9C,iCAA+BM,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,cAAA;AAAA,EACNC,KAAOC,EAAAA,iCAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AACX,IAAA,MAAMG,WAAcC,GAAAA,YAAAA,CAAS,MAAMJ,KAAAA,CAAMK,OAAOF,WAAW,CAAA,CAAA;AAC3D,IAAA,MAAMG,UAAaF,GAAAA,YAAAA,CAAS,MAAMJ,KAAAA,CAAMK,OAAOC,UAAW,CAAA,CAAA;AAE1D,IAAM,MAAA;AAAA,MAAEC,KAAAA;AAAAA,QAAUC,uBAAY,EAAA,CAAA;AAE9B,IAAMC,MAAAA,YAAAA,GAAeC,QAAI,KAAK,CAAA,CAAA;AAE9BC,IAAAA,SAAAA,CACEP,aAAS,MAAMQ,SAAAA,CAAML,KAAK,CAAC,CAAA,EAC1BA,CAAAA,MAAU,KAAA;AACT,MAAMM,MAAAA,YAAAA,GAAeD,UAAMT,WAAW,CAAA,CAAA;AAEtCI,MAAAA,SAAQO,KAAMC,CAAAA,OAAAA,CAAQR,MAAK,CAAA,GAAIA,SAAQ,EAAE,CAAA;AAEzCM,MAAaG,YAAAA,CAAAA,OAAAA,CACXT,OAAMU,GAAKC,CAAAA,CAAAA,IAAAA,KAAcL,aAAaM,UAAWD,CAAAA,IAAI,CAAC,CACxD,CAAA,CAAA;AAAA,KAEJ,CAAA,CAAA;AAEAP,IAAAA,SAAAA,CACER,WACA,EAAA,CAACA,YAAaiB,EAAAA,CAAAA,EAAGC,SAAc,KAAA;AAC7BlB,MAAAA,YAAAA,CAAYmB,WAAWC,QAAS,EAAA,CAAA;AAEhC,MAAMC,MAAAA,UAAAA,GAAa,IAAIC,gBAAW,EAAA,CAAA;AAElCD,MAAAA,UAAAA,CAAWE,QACTvB,CAAAA,YAAAA,CAAYwB,eAAgBC,CAAAA,EAAAA,CAAG,CAAC;AAAA,QAAEV,IAAAA;AAAAA,OAAW,KAAA;AAC3CN,QAAMN,SAAAA,CAAAA,UAAU,CAAEuB,CAAAA,UAAAA,CAAWX,IAAI,CAAA,CAAA;AAEjCT,QAAAA,YAAAA,CAAaF,KAAQ,GAAA,IAAA,CAAA;AAAA,OACtB,CACH,CAAA,CAAA;AAEAiB,MAAAA,UAAAA,CAAWE,QACTvB,CAAAA,YAAAA,CAAY2B,cAAeF,CAAAA,EAAAA,CAAG,YAAY;AACxCnB,QAAAA,YAAAA,CAAaF,KAAQ,GAAA,IAAA,CAAA;AAErB,QAAMK,MAAAA,SAAAA,CAAMN,UAAU,CAAA,CAAEyB,SAAU,EAAA,CAAA;AAAA,OACnC,CACH,CAAA,CAAA;AAEAV,MAAAA,SAAAA,CAAU,MAAM;AACdG,QAAAA,UAAAA,CAAWQ,OAAQ,EAAA,CAAA;AAAA,OACpB,CAAA,CAAA;AAAA,KAEH,EAAA;AAAA,MAAEC,SAAW,EAAA,IAAA;AAAA,KACf,CAAA,CAAA;AAEAtB,IAAAA,SAAAA,CACEL,UACA,EAAA,CAACA,WAAYc,EAAAA,CAAAA,EAAGc,SAAc,KAAA;AAC5B,MAAA,MAAMC,wBAA2B7B,GAAAA,WAAAA,CAAW8B,cAAeR,CAAAA,EAAAA,CAAG,MAAM;AAClEnB,QAAAA,YAAAA,CAAaF,KAAQ,GAAA,KAAA,CAAA;AAErBK,QAAMT,SAAAA,CAAAA,WAAW,EAAEkC,IAAK,EAAA,CAAA;AAAA,OACzB,CAAA,CAAA;AAEDH,MAAAA,SAAAA,CAAU,MAAM;AACdC,QAAAA,wBAAAA,CAAyBH,OAAQ,EAAA,CAAA;AAAA,OAClC,CAAA,CAAA;AAAA,KAEH,EAAA;AAAA,MAAEC,SAAW,EAAA,IAAA;AAAA,KACf,CAAA,CAAA;AAEA,IAAA,MAAMK,qBAAqBA,MAAM;AAC/B7B,MAAAA,YAAAA,CAAaF,KAAQ,GAAA,KAAA,CAAA;AAAA,KACvB,CAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,MAAMgC,QAAW3B,GAAAA,SAAAA,CAAMH,YAAY,CAAA,GAAC+B,gBAAAC,oBAAA,EAAA;AAAA,QAAA,UAAA,EAEtB7B,UAAMN,UAAU,CAAA;AAAA,QAAC,UACjB,EAAA,KAAA;AAAA,QAAK,UACLgC,EAAAA,kBAAAA;AAAAA,OAAkB,EAAA,IAAA,CAE5B,GAAA,IAAA,CAAA;AAEJ,MAAA,OAAAE,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,gBAAA;AAAA,OAAA,EAAAA,CAAAA,eAAAA,CAAAE,mBAAA,EAAA;AAAA,QAAA,WAAA,EAGiB9B,UAAMT,WAAW,CAAA;AAAA,QAAC,UACnB,EAAA,KAAA;AAAA,OACD,EAAA;AAAA,QAAEwC,KAAAA,EAAOA,MAAAH,eAAAA,CAAAI,mBAAA,EAAA;AAAA,UAAA,YAA2B,EAAA,GAAA;AAAA,WAAG,IAAA,CAAA;AAAA,OAAM,CAAAJ,EAAAA,eAAAA,CAAAK,oBAAA,EAAA;AAAA,QAAA,OAAA,EAAA,wBAAA;AAAA,QAAA,YAAA,EAI1CjC,UAAMH,YAAY,CAAA;AAAA,QAAC,qBAAA,EACTqC,CAAOrC,CAAAA,KAAAA,YAAAA,CAAaF,KAAQuC,GAAAA,CAAAA;AAAAA,QAAE,cAAA,EAAA,IAAA;AAAA,QAAA,YAExC,EAAA,KAAA;AAAA,QAAK,OAAA,EAAA,KAAA;AAAA,OAAAvD,EAAAA,OAAAA,CAGhBgD,QAAQ,CAAA,GAARA,QAAQ,GAAA;AAAA,QAAAQ,OAAAA,EAAAA,MAAA,CAARR,QAAQ,CAAA;AAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAIjB,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}
|
package/dist/cjs/core/Router.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sources":["../../../src/core/Router.ts"],"sourcesContent":["import { Disposable, Event, createDisposable } from \"@maketribe/utils\";\nimport { Route } from \"../dataview\";\nimport type { UserSession } from \"./UserSession\";\n\nconst NORMALIZE_ROUTE_NAME_REG = /^dv\\/([^/]+)\\/([^/]+)(\\/.+)?$/;\n\nexport class Router extends Disposable {\n userSession: UserSession;\n\n routes: Route[] = [];\n\n currentRoute: any | null = null;\n\n beforeRouteChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n routeChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n constructor(userSession: UserSession) {\n super();\n\n this.userSession = userSession;\n }\n\n setRoutes(routes: Route[]) {\n this.routes = routes;\n }\n\n init() {\n const vueRouter = this.userSession.vueRouter;\n const vueRoutes = vueRouter.getRoutes();\n\n // 给有权限访问的页面,注册默认页面\n const defaultPageRoutes = this.routes.filter(\n (route) => !vueRoutes.find((item) => item.name === route.name)\n );\n\n for (const defaultPageRoute of defaultPageRoutes) {\n const match = defaultPageRoute.name.match(NORMALIZE_ROUTE_NAME_REG);\n\n if (match) {\n const name = match[1];\n const action = match[2];\n\n switch (action) {\n case \"single\":\n const [listType, type] = match[3].slice(1).split(\"/\");\n\n switch (listType) {\n case \"list\":\n switch (type) {\n case \"normal\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/normal.vue\"\n ),\n meta: { name },\n });\n break;\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n\n break;\n case \"tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n case \"table-tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/table-tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n }\n\n break;\n case \"list\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () => import(\"../page/index/dv/default/table.vue\"),\n meta: { name },\n });\n break;\n case \"edit\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/:id`,\n component: () => import(\"../page/index/dv/default/edit.vue\"),\n meta: { name },\n });\n break;\n case \"add\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/add`,\n component: () => import(\"../page/index/dv/default/add.vue\"),\n meta: { name },\n });\n break;\n }\n }\n }\n\n this.register(\n createDisposable(() => {\n for (const defaultPageRoute of defaultPageRoutes) {\n vueRouter.removeRoute(defaultPageRoute.name);\n }\n })\n );\n }\n\n getRouteByName(name: string): Route | null {\n return this.routes.find((route) => route.name === name) ?? null;\n }\n\n getRouteByID(id: string): Route | null {\n return this.routes.find((route) => route.id === id) ?? null;\n }\n\n getRoutesByMenuID(menuId: Route[\"menuId\"]): Route[] {\n return this.routes.filter((route) => route.menuId === menuId);\n }\n\n async changeRoute(route: any) {\n if (!route) {\n return true;\n }\n\n const routeInfo = this.getRouteByName(route.name);\n\n if (!routeInfo) {\n return true;\n }\n\n if (\n (await this.beforeRouteChange.emitAsync({ route, routeInfo })) !== false\n ) {\n this.currentRoute = route;\n\n this.routeChange.emit({ route, routeInfo });\n\n return true;\n }\n\n return false;\n }\n}\n"],"names":["Disposable","Event","createDisposable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Router.js","sources":["../../../src/core/Router.ts"],"sourcesContent":["import { Disposable, Event, createDisposable } from \"@maketribe/utils\";\nimport { Route } from \"../dataview\";\nimport type { UserSession } from \"./UserSession\";\n\nconst NORMALIZE_ROUTE_NAME_REG = /^dv\\/([^/]+)\\/([^/]+)(\\/.+)?$/;\n\nexport class Router extends Disposable {\n userSession: UserSession;\n\n routes: Route[] = [];\n\n currentRoute: any | null = null;\n\n beforeRouteChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n routeChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n constructor(userSession: UserSession) {\n super();\n\n this.userSession = userSession;\n }\n\n setRoutes(routes: Route[]) {\n this.routes = routes;\n }\n\n init() {\n const vueRouter = this.userSession.vueRouter;\n const vueRoutes = vueRouter.getRoutes();\n\n // 给有权限访问的页面,注册默认页面\n const defaultPageRoutes = this.routes.filter(\n (route) => !vueRoutes.find((item) => item.name === route.name)\n );\n\n for (const defaultPageRoute of defaultPageRoutes) {\n const match = defaultPageRoute.name.match(NORMALIZE_ROUTE_NAME_REG);\n\n if (match) {\n const name = match[1];\n const action = match[2];\n\n switch (action) {\n case \"single\":\n const [listType, type] = match[3].slice(1).split(\"/\");\n\n switch (listType) {\n case \"list\":\n switch (type) {\n case \"normal\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/normal.vue\"\n ),\n meta: { name },\n });\n break;\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n\n break;\n case \"tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n break;\n case \"table-tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/table-tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n }\n\n break;\n case \"list\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () => import(\"../page/index/dv/default/table.vue\"),\n meta: { name },\n });\n break;\n case \"edit\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/:id`,\n component: () => import(\"../page/index/dv/default/edit.vue\"),\n meta: { name },\n });\n break;\n case \"add\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/add`,\n component: () => import(\"../page/index/dv/default/add.vue\"),\n meta: { name },\n });\n break;\n }\n }\n }\n\n this.register(\n createDisposable(() => {\n for (const defaultPageRoute of defaultPageRoutes) {\n vueRouter.removeRoute(defaultPageRoute.name);\n }\n })\n );\n }\n\n getRouteByName(name: string): Route | null {\n return this.routes.find((route) => route.name === name) ?? null;\n }\n\n getRouteByID(id: string): Route | null {\n return this.routes.find((route) => route.id === id) ?? null;\n }\n\n getRoutesByMenuID(menuId: Route[\"menuId\"]): Route[] {\n return this.routes.filter((route) => route.menuId === menuId);\n }\n\n async changeRoute(route: any) {\n if (!route) {\n return true;\n }\n\n const routeInfo = this.getRouteByName(route.name);\n\n if (!routeInfo) {\n return true;\n }\n\n if (\n (await this.beforeRouteChange.emitAsync({ route, routeInfo })) !== false\n ) {\n this.currentRoute = route;\n\n this.routeChange.emit({ route, routeInfo });\n\n return true;\n }\n\n return false;\n }\n}\n"],"names":["Disposable","Event","createDisposable"],"mappings":";;;;;;AAIA,MAAM,wBAA2B,GAAA,+BAAA,CAAA;AAE1B,MAAM,eAAeA,gBAAW,CAAA;AAAA,EACrC,WAAA,CAAA;AAAA,EAEA,SAAkB,EAAC,CAAA;AAAA,EAEnB,YAA2B,GAAA,IAAA,CAAA;AAAA,EAE3B,oBAA6D,IAAK,CAAA,QAAA;AAAA,IAChE,IAAIC,WAAM,EAAA;AAAA,GACZ,CAAA;AAAA,EAEA,cAAuD,IAAK,CAAA,QAAA;AAAA,IAC1D,IAAIA,WAAM,EAAA;AAAA,GACZ,CAAA;AAAA,EAEA,YAAY,WAA0B,EAAA;AACpC,IAAM,KAAA,EAAA,CAAA;AAEN,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA,CAAA;AAAA,GACrB;AAAA,EAEA,UAAU,MAAiB,EAAA;AACzB,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GAChB;AAAA,EAEA,IAAO,GAAA;AACL,IAAM,MAAA,SAAA,GAAY,KAAK,WAAY,CAAA,SAAA,CAAA;AACnC,IAAM,MAAA,SAAA,GAAY,UAAU,SAAU,EAAA,CAAA;AAGtC,IAAM,MAAA,iBAAA,GAAoB,KAAK,MAAO,CAAA,MAAA;AAAA,MACpC,CAAC,KAAU,KAAA,CAAC,SAAU,CAAA,IAAA,CAAK,CAAC,IAAS,KAAA,IAAA,CAAK,IAAS,KAAA,KAAA,CAAM,IAAI,CAAA;AAAA,KAC/D,CAAA;AAEA,IAAA,KAAA,MAAW,oBAAoB,iBAAmB,EAAA;AAChD,MAAA,MAAM,KAAQ,GAAA,gBAAA,CAAiB,IAAK,CAAA,KAAA,CAAM,wBAAwB,CAAA,CAAA;AAElE,MAAA,IAAI,KAAO,EAAA;AACT,QAAM,MAAA,IAAA,GAAO,MAAM,CAAC,CAAA,CAAA;AACpB,QAAM,MAAA,MAAA,GAAS,MAAM,CAAC,CAAA,CAAA;AAEtB,QAAA,QAAQ,MAAQ;AAAA,UACd,KAAK,QAAA;AACH,YAAM,MAAA,CAAC,QAAU,EAAA,IAAI,CAAI,GAAA,KAAA,CAAM,CAAC,CAAA,CAAE,KAAM,CAAA,CAAC,CAAE,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAEpD,YAAA,QAAQ,QAAU;AAAA,cAChB,KAAK,MAAA;AACH,gBAAA,QAAQ,IAAM;AAAA,kBACZ,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,8FACE,oDACF,MAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,kBACF,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,8FACE,oDACF,MAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,iBACJ;AAEA,gBAAA,MAAA;AAAA,cACF,KAAK,MAAA;AACH,gBAAA,QAAQ,IAAM;AAAA,kBACZ,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,8FACE,oDACF,MAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,iBACJ;AACA,gBAAA,MAAA;AAAA,cACF,KAAK,YAAA;AACH,gBAAA,QAAQ,IAAM;AAAA,kBACZ,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,8FACE,0DACF,MAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,iBACJ;AAAA,aACJ;AAEA,YAAA,MAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,cACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,cACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,cACjB,SAAA,EAAW,MAAM,8FAAO,uCAAoC,MAAA;AAAA,cAC5D,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,aACd,CAAA,CAAA;AACD,YAAA,MAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,cACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,cACvB,IAAA,EAAM,OAAO,IAAI,CAAA,IAAA,CAAA;AAAA,cACjB,SAAA,EAAW,MAAM,8FAAO,sCAAmC,MAAA;AAAA,cAC3D,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,aACd,CAAA,CAAA;AACD,YAAA,MAAA;AAAA,UACF,KAAK,KAAA;AACH,YAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,cACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,cACvB,IAAA,EAAM,OAAO,IAAI,CAAA,IAAA,CAAA;AAAA,cACjB,SAAA,EAAW,MAAM,8FAAO,qCAAkC,MAAA;AAAA,cAC1D,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,aACd,CAAA,CAAA;AACD,YAAA,MAAA;AAAA,SACJ;AAAA,OACF;AAAA,KACF;AAEA,IAAK,IAAA,CAAA,QAAA;AAAA,MACHC,uBAAiB,MAAM;AACrB,QAAA,KAAA,MAAW,oBAAoB,iBAAmB,EAAA;AAChD,UAAU,SAAA,CAAA,WAAA,CAAY,iBAAiB,IAAI,CAAA,CAAA;AAAA,SAC7C;AAAA,OACD,CAAA;AAAA,KACH,CAAA;AAAA,GACF;AAAA,EAEA,eAAe,IAA4B,EAAA;AACzC,IAAO,OAAA,IAAA,CAAK,OAAO,IAAK,CAAA,CAAC,UAAU,KAAM,CAAA,IAAA,KAAS,IAAI,CAAK,IAAA,IAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,aAAa,EAA0B,EAAA;AACrC,IAAO,OAAA,IAAA,CAAK,OAAO,IAAK,CAAA,CAAC,UAAU,KAAM,CAAA,EAAA,KAAO,EAAE,CAAK,IAAA,IAAA,CAAA;AAAA,GACzD;AAAA,EAEA,kBAAkB,MAAkC,EAAA;AAClD,IAAA,OAAO,KAAK,MAAO,CAAA,MAAA,CAAO,CAAC,KAAU,KAAA,KAAA,CAAM,WAAW,MAAM,CAAA,CAAA;AAAA,GAC9D;AAAA,EAEA,MAAM,YAAY,KAAY,EAAA;AAC5B,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IAAA,MAAM,SAAY,GAAA,IAAA,CAAK,cAAe,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAEhD,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IACG,IAAA,MAAM,KAAK,iBAAkB,CAAA,SAAA,CAAU,EAAE,KAAO,EAAA,SAAA,EAAW,CAAA,KAAO,KACnE,EAAA;AACA,MAAA,IAAA,CAAK,YAAe,GAAA,KAAA,CAAA;AAEpB,MAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,EAAE,KAAA,EAAO,WAAW,CAAA,CAAA;AAE1C,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACF;;;;"}
|
|
@@ -118,25 +118,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
118
118
|
isShowDialog.value = false;
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
|
-
dataTable2.deleteRecordEvent.on(async ({ item }) => {
|
|
122
|
-
const i18n = locale.I18n.instance;
|
|
123
|
-
const isConfirm = await dm.Dialoger.instance.confirm({
|
|
124
|
-
title: i18n.translate("mk.dataTablePage.deleteTitle"),
|
|
125
|
-
message: i18n.translate("mk.dataTablePage.deleteMessage"),
|
|
126
|
-
type: "warning"
|
|
127
|
-
});
|
|
128
|
-
if (!isConfirm) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const response = await dataTable2.deleteAfterRefresh(
|
|
132
|
-
item[dataTable2.primaryKey]
|
|
133
|
-
);
|
|
134
|
-
if (response.data.code !== 200) {
|
|
135
|
-
dm.Messager.instance.error({ message: response.data.msg });
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
dm.Messager.instance.success({ message: "\u5220\u9664\u6210\u529F" });
|
|
139
|
-
});
|
|
140
121
|
}
|
|
141
122
|
onCleanup(() => {
|
|
142
123
|
dataTable2?.clearSelection();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/dialog.vue"],"sourcesContent":["<template>\n <MKDataTablePage v-if=\"dataTable\" :data-table=\"dataTable\" selection />\n\n <ElDialog v-if=\"dataForm\" appendToBody v-model=\"isShowDialog\">\n <MKDataForm v-loading=\"dataForm.loading\" :dataForm=\"dataForm\">\n <MKForm :dataForm=\"dataForm\" />\n </MKDataForm>\n\n <template #footer>\n <ElButton\n type=\"primary\"\n :loading=\"dataForm.loading\"\n @click=\"handleSubmit\"\n >\n {{ I18n.instance.translate(\"mk.dataForm.saveButton\") }}\n </ElButton>\n <ElButton @click=\"handleCancel\">\n {{ I18n.instance.translate(\"mk.dataForm.cancelButton\") }}\n </ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref, nextTick } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage, ElDialog, ElButton } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport {\n MKDataTablePage,\n MKDataForm,\n MKForm,\n} from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDialog = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDialog.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDialog.value = false;\n }\n });\n
|
|
1
|
+
{"version":3,"file":"dialog.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/dialog.vue"],"sourcesContent":["<template>\n <MKDataTablePage v-if=\"dataTable\" :data-table=\"dataTable\" selection />\n\n <ElDialog v-if=\"dataForm\" appendToBody v-model=\"isShowDialog\">\n <MKDataForm v-loading=\"dataForm.loading\" :dataForm=\"dataForm\">\n <MKForm :dataForm=\"dataForm\" />\n </MKDataForm>\n\n <template #footer>\n <ElButton\n type=\"primary\"\n :loading=\"dataForm.loading\"\n @click=\"handleSubmit\"\n >\n {{ I18n.instance.translate(\"mk.dataForm.saveButton\") }}\n </ElButton>\n <ElButton @click=\"handleCancel\">\n {{ I18n.instance.translate(\"mk.dataForm.cancelButton\") }}\n </ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref, nextTick } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage, ElDialog, ElButton } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport {\n MKDataTablePage,\n MKDataForm,\n MKForm,\n} from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDialog = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDialog.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDialog.value = false;\n }\n });\n }\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n);\n\nconst handleSubmit = async () => {\n try {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n return;\n }\n\n if (!(await _dataForm.validate())) {\n return;\n }\n\n const response = await _dataForm.submit();\n\n if (response.data.code !== 200) {\n ElMessage.error({ message: response.data.msg });\n return;\n }\n\n unref(dataTable)?.load();\n ElMessage.success({\n message: I18n.instance.translate(\"mk.message.saveSuccess\"),\n });\n\n isShowDialog.value = false;\n } catch (e) {\n ElMessage.error({\n message: I18n.instance.translate(\"mk.message.saveError\"),\n });\n }\n};\n\nconst handleCancel = () => {\n unref(dataForm)?.cancel();\n isShowDialog.value = false;\n};\n</script>\n"],"names":["useRouter","ref","watch","computed","unref","DataModelDefines","dataTable","ElMessage","I18n"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var vue = require('vue');
|
|
4
4
|
var vueRouter = require('vue-router');
|
|
5
5
|
var elementPlus = require('element-plus');
|
|
6
|
-
var locale = require('@maketribe/locale');
|
|
7
6
|
var dm = require('@maketribe/dm');
|
|
8
7
|
require('../../../../../../components/data-model/data-form/index.js');
|
|
9
8
|
var index$1 = require('../../../../../../components/data-model/data-form-page/index.js');
|
|
@@ -58,6 +57,7 @@ require('../../../../../../components/json-editor/index.js');
|
|
|
58
57
|
require('@maketribe/utils');
|
|
59
58
|
var DataModelDefines = require('../../../../../../core/DataModelDefines.js');
|
|
60
59
|
require('@maketribe/request');
|
|
60
|
+
require('@maketribe/locale');
|
|
61
61
|
|
|
62
62
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
63
63
|
__name: "normal",
|
|
@@ -117,25 +117,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
117
117
|
isShowDataForm.value = false;
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
|
-
dataTable2.deleteRecordEvent.on(async ({ item }) => {
|
|
121
|
-
const i18n = locale.I18n.instance;
|
|
122
|
-
const isConfirm = await dm.Dialoger.instance.confirm({
|
|
123
|
-
title: i18n.translate("mk.dataTablePage.deleteTitle"),
|
|
124
|
-
message: i18n.translate("mk.dataTablePage.deleteMessage"),
|
|
125
|
-
type: "warning"
|
|
126
|
-
});
|
|
127
|
-
if (!isConfirm) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
const response = await dataTable2.deleteAfterRefresh(
|
|
131
|
-
item[dataTable2.primaryKey]
|
|
132
|
-
);
|
|
133
|
-
if (response.data.code !== 200) {
|
|
134
|
-
dm.Messager.instance.error({ message: response.data.msg });
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
dm.Messager.instance.success({ message: "\u5220\u9664\u6210\u529F" });
|
|
138
|
-
});
|
|
139
120
|
}
|
|
140
121
|
onCleanup(() => {
|
|
141
122
|
dataTable2?.clearSelection();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normal.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/normal.vue"],"sourcesContent":["<template>\n <MKDataTablePage\n v-if=\"dataTable\"\n v-show=\"!isShowDataForm\"\n :data-table=\"dataTable\"\n selection\n />\n <MKDataFormPage\n v-if=\"dataForm\"\n v-show=\"isShowDataForm\"\n :data-form=\"dataForm\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { MKDataTablePage, MKDataFormPage } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDataForm = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(() => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n
|
|
1
|
+
{"version":3,"file":"normal.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/normal.vue"],"sourcesContent":["<template>\n <MKDataTablePage\n v-if=\"dataTable\"\n v-show=\"!isShowDataForm\"\n :data-table=\"dataTable\"\n selection\n />\n <MKDataFormPage\n v-if=\"dataForm\"\n v-show=\"isShowDataForm\"\n :data-form=\"dataForm\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { MKDataTablePage, MKDataFormPage } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDataForm = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(() => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n }\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n);\n\nwatch(\n dataForm,\n (dataForm, _, onCleanup) => {\n if (dataForm) {\n dataForm.submittedEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(dataTable)?.load();\n });\n\n dataForm.cancelEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(dataTable)?.load();\n });\n }\n\n onCleanup(() => {\n dataForm?.dispose();\n });\n },\n { immediate: true }\n);\n</script>\n"],"names":["useRouter","ref","watch","computed","unref","DataModelDefines","dataTable","ElMessage","dataForm"],"mappings":"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"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -32,7 +32,7 @@ function generateRoutesFromFiles(files) {
|
|
|
32
32
|
route.path += getRoutePath(tokens);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
route.path = file.module.mkRoute
|
|
35
|
+
route.path = file.module.mkRoute?.path || route.path;
|
|
36
36
|
parent.push(route);
|
|
37
37
|
}
|
|
38
38
|
return prepareRoutes(routes);
|
|
@@ -137,9 +137,6 @@ function prepareRoutes(routes, parent, keys = /* @__PURE__ */ new Set()) {
|
|
|
137
137
|
if (route.children?.length) {
|
|
138
138
|
route.children = prepareRoutes(route.children, route, keys);
|
|
139
139
|
}
|
|
140
|
-
if (route.children?.find((childRoute) => childRoute.path === "")) {
|
|
141
|
-
delete route.key;
|
|
142
|
-
}
|
|
143
140
|
if (route.key) {
|
|
144
141
|
keys.add(route.key);
|
|
145
142
|
}
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["import { encodePath } from \"ufo\";\n\nenum SegmentParserState {\n initial,\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface ScannedFile {\n path: string;\n module: any;\n}\n\nenum SegmentTokenType {\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface SegmentToken {\n type: SegmentTokenType;\n value: string;\n}\n\nexport function generateRoutesFromFiles(files: ScannedFile[]) {\n const routes: any[] = [];\n\n for (const file of files) {\n const segments = file.path.split(\"/\");\n\n const route: Record<string, any> = {\n meta: {},\n ...file.module.mkRoute,\n key: \"\",\n path: \"\",\n component: async () => file.module,\n children: [],\n };\n\n let parent = routes;\n\n for (const segment of segments) {\n const tokens = parseSegment(segment);\n const segmentName = tokens.map(({ value }) => value).join(\"\");\n\n route.key += (route.key && \"/\") + segmentName;\n\n const path = route.path + getRoutePath(tokens).replace(/\\/index$/, \"/\");\n const child = parent.find(\n (parentRoute) =>\n parentRoute.key === route.key && parentRoute.path === path\n );\n\n if (child && child.children) {\n parent = child.children;\n route.path = \"\";\n } else if (segmentName === \"index\" && !route.path) {\n route.path += \"/\";\n } else if (segmentName !== \"index\") {\n route.path += getRoutePath(tokens);\n }\n }\n\n route.path = file.module.mkRoute.path || route.path;\n\n parent.push(route);\n }\n\n return prepareRoutes(routes);\n}\n\nfunction getRoutePath(tokens: SegmentToken[]) {\n return tokens.reduce((path, token) => {\n return (\n path +\n (token.type === SegmentTokenType.optional\n ? `:${token.value}?`\n : token.type === SegmentTokenType.dynamic\n ? `:${token.value}()`\n : token.type === SegmentTokenType.catchall\n ? `:${token.value}(.*)*`\n : encodePath(token.value).replace(/:/g, \"\\\\:\"))\n );\n }, \"/\");\n}\n\nconst PARAM_CHAR_RE = /[\\w\\d_.]/;\n\nfunction parseSegment(segment: string) {\n let state: SegmentParserState = SegmentParserState.initial;\n\n let i = 0;\n\n let buffer = \"\";\n const tokens: SegmentToken[] = [];\n\n function consumeBuffer() {\n if (!buffer) {\n return;\n }\n\n if (state === SegmentParserState.initial) {\n throw new Error(\"错误的状态\");\n }\n\n tokens.push({\n type:\n state === SegmentParserState.static\n ? SegmentTokenType.static\n : state === SegmentParserState.dynamic\n ? SegmentTokenType.dynamic\n : state === SegmentParserState.optional\n ? SegmentTokenType.optional\n : SegmentTokenType.catchall,\n value: buffer,\n });\n\n buffer = \"\";\n }\n\n while (i < segment.length) {\n const c = segment[i];\n\n switch (state) {\n case SegmentParserState.initial:\n buffer = \"\";\n\n if (c === \"[\") {\n state = SegmentParserState.dynamic;\n } else {\n i--;\n state = SegmentParserState.static;\n }\n\n break;\n case SegmentParserState.static:\n if (c === \"[\") {\n consumeBuffer();\n state = SegmentParserState.dynamic;\n } else {\n buffer += c;\n }\n break;\n case SegmentParserState.catchall:\n case SegmentParserState.dynamic:\n case SegmentParserState.optional:\n if (buffer === \"...\") {\n buffer = \"\";\n state = SegmentParserState.catchall;\n }\n\n if (c === \"[\" && state === SegmentParserState.dynamic) {\n state = SegmentParserState.optional;\n }\n\n if (\n c === \"]\" &&\n (state !== SegmentParserState.optional || segment[i - 1] === \"]\")\n ) {\n if (!buffer) {\n throw new Error(\"空参数\");\n }\n consumeBuffer();\n state = SegmentParserState.initial;\n } else if (PARAM_CHAR_RE.test(c)) {\n buffer += c;\n }\n break;\n }\n\n i++;\n }\n\n if (state === SegmentParserState.dynamic) {\n throw new Error(`Unfinished param \"${buffer}\"`);\n }\n\n consumeBuffer();\n\n return tokens;\n}\n\nfunction findRouteByKey(key: string, routes: any[]): any | undefined {\n for (const route of routes) {\n if (route.key === key) {\n return route;\n }\n }\n return findRouteByKey(key, routes);\n}\n\nfunction prepareRoutes(routes: any[], parent?: any, keys = new Set<string>()) {\n for (const route of routes) {\n // Remove -index\n if (route.key) {\n route.key = route.key.replace(/\\/index$/, \"\").replace(/\\//g, \"-\");\n\n if (keys.has(route.key)) {\n const existingRoute = findRouteByKey(route.key, routes);\n const extra = existingRoute?.name\n ? `is the same as \\`${existingRoute.file}\\``\n : \"is a duplicate\";\n console.warn(\n `Route name generated for \\`${route.file}\\` ${extra}. You may wish to set a custom name using \\`definePageMeta\\` within the page file.`\n );\n }\n }\n\n route.path = route.path.replace(/\\/\\//g, \"/\");\n\n // Remove leading / if children route\n if (parent && route.path.startsWith(\"/\")) {\n route.path = route.path.slice(1);\n }\n\n if (route.children?.length) {\n route.children = prepareRoutes(route.children, route, keys);\n }\n\n if (route.children?.find((childRoute: any) => childRoute.path === \"\")) {\n delete route.key;\n }\n\n if (route.key) {\n keys.add(route.key);\n }\n }\n\n return routes;\n}\n"],"names":["encodePath"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["import { encodePath } from \"ufo\";\n\nenum SegmentParserState {\n initial,\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface ScannedFile {\n path: string;\n module: any;\n}\n\nenum SegmentTokenType {\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface SegmentToken {\n type: SegmentTokenType;\n value: string;\n}\n\nexport function generateRoutesFromFiles(files: ScannedFile[]) {\n const routes: any[] = [];\n\n for (const file of files) {\n const segments = file.path.split(\"/\");\n\n const route: Record<string, any> = {\n meta: {},\n ...file.module.mkRoute,\n key: \"\",\n path: \"\",\n component: async () => file.module,\n children: [],\n };\n\n let parent = routes;\n\n for (const segment of segments) {\n const tokens = parseSegment(segment);\n const segmentName = tokens.map(({ value }) => value).join(\"\");\n\n route.key += (route.key && \"/\") + segmentName;\n\n const path = route.path + getRoutePath(tokens).replace(/\\/index$/, \"/\");\n const child = parent.find(\n (parentRoute) =>\n parentRoute.key === route.key && parentRoute.path === path\n );\n\n if (child && child.children) {\n parent = child.children;\n route.path = \"\";\n } else if (segmentName === \"index\" && !route.path) {\n route.path += \"/\";\n } else if (segmentName !== \"index\") {\n route.path += getRoutePath(tokens);\n }\n }\n\n route.path = file.module.mkRoute?.path || route.path;\n\n parent.push(route);\n }\n\n return prepareRoutes(routes);\n}\n\nfunction getRoutePath(tokens: SegmentToken[]) {\n return tokens.reduce((path, token) => {\n return (\n path +\n (token.type === SegmentTokenType.optional\n ? `:${token.value}?`\n : token.type === SegmentTokenType.dynamic\n ? `:${token.value}()`\n : token.type === SegmentTokenType.catchall\n ? `:${token.value}(.*)*`\n : encodePath(token.value).replace(/:/g, \"\\\\:\"))\n );\n }, \"/\");\n}\n\nconst PARAM_CHAR_RE = /[\\w\\d_.]/;\n\nfunction parseSegment(segment: string) {\n let state: SegmentParserState = SegmentParserState.initial;\n\n let i = 0;\n\n let buffer = \"\";\n const tokens: SegmentToken[] = [];\n\n function consumeBuffer() {\n if (!buffer) {\n return;\n }\n\n if (state === SegmentParserState.initial) {\n throw new Error(\"错误的状态\");\n }\n\n tokens.push({\n type:\n state === SegmentParserState.static\n ? SegmentTokenType.static\n : state === SegmentParserState.dynamic\n ? SegmentTokenType.dynamic\n : state === SegmentParserState.optional\n ? SegmentTokenType.optional\n : SegmentTokenType.catchall,\n value: buffer,\n });\n\n buffer = \"\";\n }\n\n while (i < segment.length) {\n const c = segment[i];\n\n switch (state) {\n case SegmentParserState.initial:\n buffer = \"\";\n\n if (c === \"[\") {\n state = SegmentParserState.dynamic;\n } else {\n i--;\n state = SegmentParserState.static;\n }\n\n break;\n case SegmentParserState.static:\n if (c === \"[\") {\n consumeBuffer();\n state = SegmentParserState.dynamic;\n } else {\n buffer += c;\n }\n break;\n case SegmentParserState.catchall:\n case SegmentParserState.dynamic:\n case SegmentParserState.optional:\n if (buffer === \"...\") {\n buffer = \"\";\n state = SegmentParserState.catchall;\n }\n\n if (c === \"[\" && state === SegmentParserState.dynamic) {\n state = SegmentParserState.optional;\n }\n\n if (\n c === \"]\" &&\n (state !== SegmentParserState.optional || segment[i - 1] === \"]\")\n ) {\n if (!buffer) {\n throw new Error(\"空参数\");\n }\n consumeBuffer();\n state = SegmentParserState.initial;\n } else if (PARAM_CHAR_RE.test(c)) {\n buffer += c;\n }\n break;\n }\n\n i++;\n }\n\n if (state === SegmentParserState.dynamic) {\n throw new Error(`Unfinished param \"${buffer}\"`);\n }\n\n consumeBuffer();\n\n return tokens;\n}\n\nfunction findRouteByKey(key: string, routes: any[]): any | undefined {\n for (const route of routes) {\n if (route.key === key) {\n return route;\n }\n }\n return findRouteByKey(key, routes);\n}\n\nfunction prepareRoutes(routes: any[], parent?: any, keys = new Set<string>()) {\n for (const route of routes) {\n // Remove -index\n if (route.key) {\n route.key = route.key.replace(/\\/index$/, \"\").replace(/\\//g, \"-\");\n\n if (keys.has(route.key)) {\n const existingRoute = findRouteByKey(route.key, routes);\n const extra = existingRoute?.name\n ? `is the same as \\`${existingRoute.file}\\``\n : \"is a duplicate\";\n console.warn(\n `Route name generated for \\`${route.file}\\` ${extra}. You may wish to set a custom name using \\`definePageMeta\\` within the page file.`\n );\n }\n }\n\n route.path = route.path.replace(/\\/\\//g, \"/\");\n\n // Remove leading / if children route\n if (parent && route.path.startsWith(\"/\")) {\n route.path = route.path.slice(1);\n }\n\n if (route.children?.length) {\n route.children = prepareRoutes(route.children, route, keys);\n }\n\n // if (route.children?.find((childRoute: any) => childRoute.path === \"\")) {\n // delete route.key;\n // }\n\n if (route.key) {\n keys.add(route.key);\n }\n }\n\n return routes;\n}\n"],"names":["encodePath"],"mappings":";;;;AA2BO,SAAS,wBAAwB,KAAsB,EAAA;AAC5D,EAAA,MAAM,SAAgB,EAAC,CAAA;AAEvB,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,IAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAEpC,IAAA,MAAM,KAA6B,GAAA;AAAA,MACjC,MAAM,EAAC;AAAA,MACP,GAAG,KAAK,MAAO,CAAA,OAAA;AAAA,MACf,GAAK,EAAA,EAAA;AAAA,MACL,IAAM,EAAA,EAAA;AAAA,MACN,SAAA,EAAW,YAAY,IAAK,CAAA,MAAA;AAAA,MAC5B,UAAU,EAAC;AAAA,KACb,CAAA;AAEA,IAAA,IAAI,MAAS,GAAA,MAAA,CAAA;AAEb,IAAA,KAAA,MAAW,WAAW,QAAU,EAAA;AAC9B,MAAM,MAAA,MAAA,GAAS,aAAa,OAAO,CAAA,CAAA;AACnC,MAAM,MAAA,WAAA,GAAc,MAAO,CAAA,GAAA,CAAI,CAAC,EAAE,OAAY,KAAA,KAAK,CAAE,CAAA,IAAA,CAAK,EAAE,CAAA,CAAA;AAE5D,MAAM,KAAA,CAAA,GAAA,IAAA,CAAQ,KAAM,CAAA,GAAA,IAAO,GAAO,IAAA,WAAA,CAAA;AAElC,MAAM,MAAA,IAAA,GAAO,MAAM,IAAO,GAAA,YAAA,CAAa,MAAM,CAAE,CAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAA;AACtE,MAAA,MAAM,QAAQ,MAAO,CAAA,IAAA;AAAA,QACnB,CAAC,WACC,KAAA,WAAA,CAAY,QAAQ,KAAM,CAAA,GAAA,IAAO,YAAY,IAAS,KAAA,IAAA;AAAA,OAC1D,CAAA;AAEA,MAAI,IAAA,KAAA,IAAS,MAAM,QAAU,EAAA;AAC3B,QAAA,MAAA,GAAS,KAAM,CAAA,QAAA,CAAA;AACf,QAAA,KAAA,CAAM,IAAO,GAAA,EAAA,CAAA;AAAA,OACJ,MAAA,IAAA,WAAA,KAAgB,OAAW,IAAA,CAAC,MAAM,IAAM,EAAA;AACjD,QAAA,KAAA,CAAM,IAAQ,IAAA,GAAA,CAAA;AAAA,OAChB,MAAA,IAAW,gBAAgB,OAAS,EAAA;AAClC,QAAM,KAAA,CAAA,IAAA,IAAQ,aAAa,MAAM,CAAA,CAAA;AAAA,OACnC;AAAA,KACF;AAEA,IAAA,KAAA,CAAM,IAAO,GAAA,IAAA,CAAK,MAAO,CAAA,OAAA,EAAS,QAAQ,KAAM,CAAA,IAAA,CAAA;AAEhD,IAAA,MAAA,CAAO,KAAK,KAAK,CAAA,CAAA;AAAA,GACnB;AAEA,EAAA,OAAO,cAAc,MAAM,CAAA,CAAA;AAC7B,CAAA;AAEA,SAAS,aAAa,MAAwB,EAAA;AAC5C,EAAA,OAAO,MAAO,CAAA,MAAA,CAAO,CAAC,IAAA,EAAM,KAAU,KAAA;AACpC,IAAA,OACE,IACC,IAAA,KAAA,CAAM,IAAS,KAAA,CAAA,kBACZ,CAAI,CAAA,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA,CAAA,GACf,KAAM,CAAA,IAAA,KAAS,CACf,iBAAA,CAAA,CAAA,EAAI,KAAM,CAAA,KAAK,CACf,EAAA,CAAA,GAAA,KAAA,CAAM,IAAS,KAAA,CAAA,kBACf,CAAI,CAAA,EAAA,KAAA,CAAM,KAAK,CAAA,KAAA,CAAA,GACfA,cAAW,CAAA,KAAA,CAAM,KAAK,CAAA,CAAE,OAAQ,CAAA,IAAA,EAAM,KAAK,CAAA,CAAA,CAAA;AAAA,KAEhD,GAAG,CAAA,CAAA;AACR,CAAA;AAEA,MAAM,aAAgB,GAAA,UAAA,CAAA;AAEtB,SAAS,aAAa,OAAiB,EAAA;AACrC,EAAA,IAAI,KAA4B,GAAA,CAAA,eAAA;AAEhC,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AAER,EAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AACb,EAAA,MAAM,SAAyB,EAAC,CAAA;AAEhC,EAAA,SAAS,aAAgB,GAAA;AACvB,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,UAAU,CAA4B,gBAAA;AACxC,MAAM,MAAA,IAAI,MAAM,gCAAO,CAAA,CAAA;AAAA,KACzB;AAEA,IAAA,MAAA,CAAO,IAAK,CAAA;AAAA,MACV,IAAA,EACE,UAAU,CACN,gBAAA,CAAA,gBACA,UAAU,CACV,iBAAA,CAAA,iBACA,KAAU,KAAA,CAAA,kBACV,CACA,kBAAA,CAAA;AAAA,MACN,KAAO,EAAA,MAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAS,MAAA,GAAA,EAAA,CAAA;AAAA,GACX;AAEA,EAAO,OAAA,CAAA,GAAI,QAAQ,MAAQ,EAAA;AACzB,IAAM,MAAA,CAAA,GAAI,QAAQ,CAAC,CAAA,CAAA;AAEnB,IAAA,QAAQ,KAAO;AAAA,MACb,KAAK,CAAA;AACH,QAAS,MAAA,GAAA,EAAA,CAAA;AAET,QAAA,IAAI,MAAM,GAAK,EAAA;AACb,UAAQ,KAAA,GAAA,CAAA,eAAA;AAAA,SACH,MAAA;AACL,UAAA,CAAA,EAAA,CAAA;AACA,UAAQ,KAAA,GAAA,CAAA,cAAA;AAAA,SACV;AAEA,QAAA,MAAA;AAAA,MACF,KAAK,CAAA;AACH,QAAA,IAAI,MAAM,GAAK,EAAA;AACb,UAAc,aAAA,EAAA,CAAA;AACd,UAAQ,KAAA,GAAA,CAAA,eAAA;AAAA,SACH,MAAA;AACL,UAAU,MAAA,IAAA,CAAA,CAAA;AAAA,SACZ;AACA,QAAA,MAAA;AAAA,MACF,KAAK,CAAA,gBAAA;AAAA,MACL,KAAK,CAAA,eAAA;AAAA,MACL,KAAK,CAAA;AACH,QAAA,IAAI,WAAW,KAAO,EAAA;AACpB,UAAS,MAAA,GAAA,EAAA,CAAA;AACT,UAAQ,KAAA,GAAA,CAAA,gBAAA;AAAA,SACV;AAEA,QAAI,IAAA,CAAA,KAAM,GAAO,IAAA,KAAA,KAAU,CAA4B,gBAAA;AACrD,UAAQ,KAAA,GAAA,CAAA,gBAAA;AAAA,SACV;AAEA,QACE,IAAA,CAAA,KAAM,QACL,KAAU,KAAA,CAAA,mBAA+B,QAAQ,CAAI,GAAA,CAAC,MAAM,GAC7D,CAAA,EAAA;AACA,UAAA,IAAI,CAAC,MAAQ,EAAA;AACX,YAAM,MAAA,IAAI,MAAM,oBAAK,CAAA,CAAA;AAAA,WACvB;AACA,UAAc,aAAA,EAAA,CAAA;AACd,UAAQ,KAAA,GAAA,CAAA,eAAA;AAAA,SACC,MAAA,IAAA,aAAA,CAAc,IAAK,CAAA,CAAC,CAAG,EAAA;AAChC,UAAU,MAAA,IAAA,CAAA,CAAA;AAAA,SACZ;AACA,QAAA,MAAA;AAAA,KACJ;AAEA,IAAA,CAAA,EAAA,CAAA;AAAA,GACF;AAEA,EAAA,IAAI,UAAU,CAA4B,gBAAA;AACxC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAqB,kBAAA,EAAA,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,GAChD;AAEA,EAAc,aAAA,EAAA,CAAA;AAEd,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEA,SAAS,cAAA,CAAe,KAAa,MAAgC,EAAA;AACnE,EAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,IAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAAA,GACF;AACA,EAAO,OAAA,cAAA,CAAe,KAAK,MAAM,CAAA,CAAA;AACnC,CAAA;AAEA,SAAS,cAAc,MAAe,EAAA,MAAA,EAAc,IAAO,mBAAA,IAAI,KAAe,EAAA;AAC5E,EAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAE1B,IAAA,IAAI,MAAM,GAAK,EAAA;AACb,MAAM,KAAA,CAAA,GAAA,GAAM,MAAM,GAAI,CAAA,OAAA,CAAQ,YAAY,EAAE,CAAA,CAAE,OAAQ,CAAA,KAAA,EAAO,GAAG,CAAA,CAAA;AAEhE,MAAA,IAAI,IAAK,CAAA,GAAA,CAAI,KAAM,CAAA,GAAG,CAAG,EAAA;AACvB,QAAA,MAAM,aAAgB,GAAA,cAAA,CAAe,KAAM,CAAA,GAAA,EAAK,MAAM,CAAA,CAAA;AACtD,QAAA,MAAM,QAAQ,aAAe,EAAA,IAAA,GACzB,CAAoB,iBAAA,EAAA,aAAA,CAAc,IAAI,CACtC,EAAA,CAAA,GAAA,gBAAA,CAAA;AACJ,QAAQ,OAAA,CAAA,IAAA;AAAA,UACN,CAA8B,2BAAA,EAAA,KAAA,CAAM,IAAI,CAAA,GAAA,EAAM,KAAK,CAAA,kFAAA,CAAA;AAAA,SACrD,CAAA;AAAA,OACF;AAAA,KACF;AAEA,IAAA,KAAA,CAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,OAAA,CAAQ,SAAS,GAAG,CAAA,CAAA;AAG5C,IAAA,IAAI,MAAU,IAAA,KAAA,CAAM,IAAK,CAAA,UAAA,CAAW,GAAG,CAAG,EAAA;AACxC,MAAA,KAAA,CAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA;AAAA,KACjC;AAEA,IAAI,IAAA,KAAA,CAAM,UAAU,MAAQ,EAAA;AAC1B,MAAA,KAAA,CAAM,QAAW,GAAA,aAAA,CAAc,KAAM,CAAA,QAAA,EAAU,OAAO,IAAI,CAAA,CAAA;AAAA,KAC5D;AAMA,IAAA,IAAI,MAAM,GAAK,EAAA;AACb,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,GAAG,CAAA,CAAA;AAAA,KACpB;AAAA,GACF;AAEA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
|
@@ -18,8 +18,9 @@ var Table = /* @__PURE__ */ defineComponent({
|
|
|
18
18
|
width: column.width,
|
|
19
19
|
minWidth: column.minWidth,
|
|
20
20
|
fixed: column.fixed,
|
|
21
|
+
align: column.align || "center",
|
|
21
22
|
reserveSelection: true,
|
|
22
|
-
type: column.type
|
|
23
|
+
type: column.type === null ? "default" : column.type
|
|
23
24
|
};
|
|
24
25
|
if (!column.visible) {
|
|
25
26
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\nimport { ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { tableProps } from \"./table-options\";\nimport { MKDataTableColumn } from \"../../data-table-column\";\nimport MKDataTableColumnComponent from \"../../data-table-column-component\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const dataTable = computed(() => props.dataTable);\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n reserveSelection: true,\n type: column.type,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumnComponent\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(dataTable).getList()}\n rowKey={unref(dataTable).primaryKey}\n show-overflow-tooltip\n border\n stripe\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n >\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["name","props","tableProps","setup","slots","dataTable","computed","columns","unref","getColumns","filter","column","visible","map","columnProps","prop","label","width","minWidth","fixed","reserveSelection","type","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumnComponent","ElTable","getList","primaryKey","empty","ElEmpty"],"mappings":";;;;;AAMA,4BAA+B,eAAA,CAAA;AAAA,EAC7BA,IAAM,EAAA,SAAA;AAAA,EACNC,KAAOC,EAAAA,UAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,SAAYC,GAAAA,QAAAA,CAAS,MAAML,KAAAA,CAAMI,SAAS,CAAA,CAAA;AAEhD,IAAA,OAAO,MAAM;AACX,MAAA,MAAME,OAAUC,GAAAA,KAAAA,CAAMH,SAAS,CAAA,CAC5BI,YACAC,CAAAA,MAAAA,CAAQC,CAAWA,MAAAA,KAAAA,MAAAA,CAAOC,OAAWD,IAAAA,MAAAA,CAAOX,IAAI,CAAA,CAChDa,IAAKF,CAAW,MAAA,KAAA;AACf,QAAA,MAAMG,WAAmC,GAAA;AAAA,UACvCC,MAAMJ,MAAOX,CAAAA,IAAAA;AAAAA,UACbgB,OAAOL,MAAOK,CAAAA,KAAAA;AAAAA,UACdC,OAAON,MAAOM,CAAAA,KAAAA;AAAAA,UACdC,UAAUP,MAAOO,CAAAA,QAAAA;AAAAA,UACjBC,OAAOR,MAAOQ,CAAAA,KAAAA;AAAAA,UACdC,gBAAkB,EAAA,IAAA;AAAA,UAClBC,
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\nimport { ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { tableProps } from \"./table-options\";\nimport { MKDataTableColumn } from \"../../data-table-column\";\nimport MKDataTableColumnComponent from \"../../data-table-column-component\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const dataTable = computed(() => props.dataTable);\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n align: column.align || \"center\",\n reserveSelection: true,\n type: column.type === null ? \"default\" : column.type,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumnComponent\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(dataTable).getList()}\n rowKey={unref(dataTable).primaryKey}\n show-overflow-tooltip\n border\n stripe\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n >\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["name","props","tableProps","setup","slots","dataTable","computed","columns","unref","getColumns","filter","column","visible","map","columnProps","prop","label","width","minWidth","fixed","align","reserveSelection","type","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumnComponent","ElTable","getList","primaryKey","empty","ElEmpty"],"mappings":";;;;;AAMA,4BAA+B,eAAA,CAAA;AAAA,EAC7BA,IAAM,EAAA,SAAA;AAAA,EACNC,KAAOC,EAAAA,UAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,SAAYC,GAAAA,QAAAA,CAAS,MAAML,KAAAA,CAAMI,SAAS,CAAA,CAAA;AAEhD,IAAA,OAAO,MAAM;AACX,MAAA,MAAME,OAAUC,GAAAA,KAAAA,CAAMH,SAAS,CAAA,CAC5BI,YACAC,CAAAA,MAAAA,CAAQC,CAAWA,MAAAA,KAAAA,MAAAA,CAAOC,OAAWD,IAAAA,MAAAA,CAAOX,IAAI,CAAA,CAChDa,IAAKF,CAAW,MAAA,KAAA;AACf,QAAA,MAAMG,WAAmC,GAAA;AAAA,UACvCC,MAAMJ,MAAOX,CAAAA,IAAAA;AAAAA,UACbgB,OAAOL,MAAOK,CAAAA,KAAAA;AAAAA,UACdC,OAAON,MAAOM,CAAAA,KAAAA;AAAAA,UACdC,UAAUP,MAAOO,CAAAA,QAAAA;AAAAA,UACjBC,OAAOR,MAAOQ,CAAAA,KAAAA;AAAAA,UACdC,KAAAA,EAAOT,OAAOS,KAAS,IAAA,QAAA;AAAA,UACvBC,gBAAkB,EAAA,IAAA;AAAA,UAClBC,IAAMX,EAAAA,MAAAA,CAAOW,IAAS,KAAA,IAAA,GAAO,YAAYX,MAAOW,CAAAA,IAAAA;AAAAA,SAClD,CAAA;AAEA,QAAI,IAAA,CAACX,OAAOC,OAAS,EAAA;AACnB,UAAO,OAAA,IAAA,CAAA;AAAA,SACT;AAEA,QACER,OAAAA,KAAAA,CAAO,OAAMO,MAAOX,CAAAA,IAAK,EAAC,CAAI,IAAA,IAACuB,WAAAC,CAAAA,aAAAA,EAEvBV,WACK,EAAA;AAAA,UACPW,SAAUC,CAIJ,KAAA,KAAA;AACJ,YAAA,IAAIC,WAAWvB,KAAO,CAAA,CAAA,IAAA,EAAMO,MAAOX,CAAAA,IAAK,UAAS,CAAI,GAAA;AAAA,cACnD4B,QAAQF,KAAME,CAAAA,MAAAA;AAAAA,cACdC,KAAKH,KAAMG,CAAAA,GAAAA;AAAAA,cACXlB,MAAAA;AAAAA,cACAN,SAAAA,EAAWG,MAAMH,SAAS,CAAA;AAAA,aAC3B,CAAA,CAAA;AAED,YAAA,IAAIsB,QAAU,EAAA;AACZ,cAAOA,OAAAA,QAAAA,CAAAA;AAAAA,aACT;AAEA,YAAA,OAAAJ,YAAAO,0BAAA,EAAA;AAAA,cAAA,QAEYnB,EAAAA,MAAAA;AAAAA,cAAM,OACTe,KAAMG,CAAAA,GAAAA;AAAAA,cAAG,SACPH,KAAME,CAAAA,MAAAA;AAAAA,eAAM,IAAA,CAAA,CAAA;AAAA,WAGzB;AAAA,SACD,CAAA,CAAA;AAAA,OAIR,CAAA,CAAA;AAEH,MAAA,OAAAL,YAAAQ,OAAA,EAAA;AAAA,QAAA,MAEUvB,EAAAA,KAAAA,CAAMH,SAAS,CAAA,CAAE2B,OAAQ,EAAA;AAAA,QAAC,QAAA,EACxBxB,KAAMH,CAAAA,SAAS,CAAE4B,CAAAA,UAAAA;AAAAA,QAAU,uBAAA,EAAA,IAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,OAAA,EAAA;AAAA,QAAAR,OAAAA,EAAAA,MAAA,CAMlClB,OAAO,CAAA;AAAA,QAFG2B,KAAAA,EAAOA,MAAM9B,KAAM8B,CAAAA,KAAAA,QAASX,WAAAY,CAAAA,OAAAA,EAAA,MAAA,IAAA,CAAA;AAAA,OAAe,CAAA,CAAA;AAAA,KAK5D,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}
|
|
@@ -9,7 +9,6 @@ var Tree = /* @__PURE__ */ defineComponent({
|
|
|
9
9
|
const dataTree = computed(() => props.dataTree);
|
|
10
10
|
const treeRef = ref(null);
|
|
11
11
|
const rootNodes = computed(() => unref(dataTree).rootNodes);
|
|
12
|
-
window.rootNodes = rootNodes;
|
|
13
12
|
const handleAdd = (dataTreeNode) => {
|
|
14
13
|
unref(dataTree).addRecord(dataTreeNode ? {
|
|
15
14
|
pid: dataTreeNode.data.id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTreeNode } from \"@maketribe/dm\";\nimport { treeProps } from \"./tree-options\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n setup(props) {\n const dataTree = computed(() => props.dataTree);\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
|
|
1
|
+
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTreeNode } from \"@maketribe/dm\";\nimport { treeProps } from \"./tree-options\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n setup(props) {\n const dataTree = computed(() => props.dataTree);\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 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 return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n $slots,\n } = this;\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n data={rootNodes}\n filterNodeMethod={filterNodeMethod as any}\n nodeKey=\"id\"\n load={handleLoad}\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":["name","props","treeProps","setup","dataTree","computed","treeRef","ref","rootNodes","unref","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","load","children","filter","value","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","_createVNode","ElTree","isLeaf","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import '../../data-model/data-table-pagination/index.js';
|
|
|
7
7
|
import { formDetailProps } from './form-detail-options.js';
|
|
8
8
|
import { useFormItem } from '../../data-model/data-form/composables/use-form-item.js';
|
|
9
9
|
import { ElEmpty, ElDrawer } from 'element-plus';
|
|
10
|
+
import { Disposable } from '@maketribe/utils';
|
|
10
11
|
|
|
11
12
|
function _isSlot(s) {
|
|
12
13
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
@@ -28,19 +29,19 @@ var FormDetail = /* @__PURE__ */ defineComponent({
|
|
|
28
29
|
});
|
|
29
30
|
watch(detailTable, (detailTable2, _, onCleanUp) => {
|
|
30
31
|
detailTable2.dataFilter.setReady();
|
|
31
|
-
const
|
|
32
|
+
const disposable = new Disposable();
|
|
33
|
+
disposable.register(detailTable2.editRecordEvent.on(({
|
|
32
34
|
item
|
|
33
35
|
}) => {
|
|
34
36
|
unref(detailForm).editRecord(item);
|
|
35
37
|
isShowDrawer.value = true;
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
+
}));
|
|
39
|
+
disposable.register(detailTable2.addRecordEvent.on(async () => {
|
|
38
40
|
isShowDrawer.value = true;
|
|
39
41
|
await unref(detailForm).addRecord();
|
|
40
|
-
});
|
|
42
|
+
}));
|
|
41
43
|
onCleanUp(() => {
|
|
42
|
-
|
|
43
|
-
addRecordEventDisposable.dispose();
|
|
44
|
+
disposable.dispose();
|
|
44
45
|
});
|
|
45
46
|
}, {
|
|
46
47
|
immediate: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-detail.js","sources":["../../../../../src/components/form-components/form-detail/form-detail.tsx"],"sourcesContent":["import { computed, defineComponent, ref, unref, watch } from \"vue\";\nimport { MKDataFormPage, MKDataTable } from \"../../data-model\";\nimport { formDetailProps } from \"./form-detail-options\";\nimport { useFormItem } from \"../../data-model/data-form/composables\";\nimport { ElDrawer, ElEmpty } from \"element-plus\";\n\nexport default defineComponent({\n name: \"MKFormDetail\",\n props: formDetailProps,\n setup(props) {\n const detailTable = computed(() => props.column.detailTable);\n const detailForm = computed(() => props.column.detailForm!);\n\n const { value } = useFormItem();\n\n const isShowDrawer = ref(false);\n\n watch(\n computed(() => unref(value)),\n (value) => {\n const _detailTable = unref(detailTable);\n\n value = Array.isArray(value) ? value : [];\n\n _detailTable.setList(\n value.map((item: any) => _detailTable.formatItem(item))\n );\n }\n );\n\n watch(\n detailTable,\n (detailTable, _, onCleanUp) => {\n detailTable.dataFilter.setReady();\n\n const
|
|
1
|
+
{"version":3,"file":"form-detail.js","sources":["../../../../../src/components/form-components/form-detail/form-detail.tsx"],"sourcesContent":["import { computed, defineComponent, ref, unref, watch } from \"vue\";\nimport { MKDataFormPage, MKDataTable } from \"../../data-model\";\nimport { formDetailProps } from \"./form-detail-options\";\nimport { useFormItem } from \"../../data-model/data-form/composables\";\nimport { ElDrawer, ElEmpty } from \"element-plus\";\nimport { Disposable } from \"@maketribe/utils\";\n\nexport default defineComponent({\n name: \"MKFormDetail\",\n props: formDetailProps,\n setup(props) {\n const detailTable = computed(() => props.column.detailTable);\n const detailForm = computed(() => props.column.detailForm!);\n\n const { value } = useFormItem();\n\n const isShowDrawer = ref(false);\n\n watch(\n computed(() => unref(value)),\n (value) => {\n const _detailTable = unref(detailTable);\n\n value = Array.isArray(value) ? value : [];\n\n _detailTable.setList(\n value.map((item: any) => _detailTable.formatItem(item))\n );\n }\n );\n\n watch(\n detailTable,\n (detailTable, _, onCleanUp) => {\n detailTable.dataFilter.setReady();\n\n const disposable = new Disposable();\n\n disposable.register(\n detailTable.editRecordEvent.on(({ item }) => {\n unref(detailForm).editRecord(item);\n\n isShowDrawer.value = true;\n })\n );\n\n disposable.register(\n detailTable.addRecordEvent.on(async () => {\n isShowDrawer.value = true;\n\n await unref(detailForm).addRecord();\n })\n );\n\n onCleanUp(() => {\n disposable.dispose();\n });\n },\n { immediate: true }\n );\n\n watch(\n detailForm,\n (detailForm, _, onCleanup) => {\n const submittedEventDisposable = detailForm.submittedEvent.on(() => {\n isShowDrawer.value = false;\n\n unref(detailTable).load();\n });\n\n onCleanup(() => {\n submittedEventDisposable.dispose();\n });\n },\n { immediate: true }\n );\n\n const handleDrawerCancel = () => {\n isShowDrawer.value = false;\n };\n\n return () => {\n const dataForm = unref(isShowDrawer) ? (\n <MKDataFormPage\n dataForm={unref(detailForm)}\n autoLoad={false}\n onCancel={handleDrawerCancel}\n />\n ) : null;\n\n return (\n <div class=\"mk-form-detail\">\n <MKDataTable\n dataTable={unref(detailTable)}\n autoLoad={false}\n v-slots={{ empty: () => <ElEmpty image-size={100} /> }}\n />\n <ElDrawer\n class=\"mk-form-detail__drawer\"\n modelValue={unref(isShowDrawer)}\n onUpdate:modelValue={(v) => (isShowDrawer.value = v)}\n appendToBody\n withHeader={false}\n width=\"50%\"\n >\n {dataForm}\n </ElDrawer>\n </div>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","name","props","formDetailProps","setup","detailTable","computed","column","detailForm","value","useFormItem","isShowDrawer","ref","watch","unref","_detailTable","Array","isArray","setList","map","item","formatItem","_","onCleanUp","dataFilter","setReady","disposable","Disposable","register","editRecordEvent","on","editRecord","addRecordEvent","addRecord","dispose","immediate","onCleanup","submittedEventDisposable","submittedEvent","load","handleDrawerCancel","dataForm","_createVNode","MKDataFormPage","MKDataTable","empty","ElEmpty","ElDrawer","v","default"],"mappings":"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"}
|
package/dist/esm/core/Router.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sources":["../../../src/core/Router.ts"],"sourcesContent":["import { Disposable, Event, createDisposable } from \"@maketribe/utils\";\nimport { Route } from \"../dataview\";\nimport type { UserSession } from \"./UserSession\";\n\nconst NORMALIZE_ROUTE_NAME_REG = /^dv\\/([^/]+)\\/([^/]+)(\\/.+)?$/;\n\nexport class Router extends Disposable {\n userSession: UserSession;\n\n routes: Route[] = [];\n\n currentRoute: any | null = null;\n\n beforeRouteChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n routeChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n constructor(userSession: UserSession) {\n super();\n\n this.userSession = userSession;\n }\n\n setRoutes(routes: Route[]) {\n this.routes = routes;\n }\n\n init() {\n const vueRouter = this.userSession.vueRouter;\n const vueRoutes = vueRouter.getRoutes();\n\n // 给有权限访问的页面,注册默认页面\n const defaultPageRoutes = this.routes.filter(\n (route) => !vueRoutes.find((item) => item.name === route.name)\n );\n\n for (const defaultPageRoute of defaultPageRoutes) {\n const match = defaultPageRoute.name.match(NORMALIZE_ROUTE_NAME_REG);\n\n if (match) {\n const name = match[1];\n const action = match[2];\n\n switch (action) {\n case \"single\":\n const [listType, type] = match[3].slice(1).split(\"/\");\n\n switch (listType) {\n case \"list\":\n switch (type) {\n case \"normal\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/normal.vue\"\n ),\n meta: { name },\n });\n break;\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n\n break;\n case \"tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n case \"table-tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/table-tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n }\n\n break;\n case \"list\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () => import(\"../page/index/dv/default/table.vue\"),\n meta: { name },\n });\n break;\n case \"edit\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/:id`,\n component: () => import(\"../page/index/dv/default/edit.vue\"),\n meta: { name },\n });\n break;\n case \"add\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/add`,\n component: () => import(\"../page/index/dv/default/add.vue\"),\n meta: { name },\n });\n break;\n }\n }\n }\n\n this.register(\n createDisposable(() => {\n for (const defaultPageRoute of defaultPageRoutes) {\n vueRouter.removeRoute(defaultPageRoute.name);\n }\n })\n );\n }\n\n getRouteByName(name: string): Route | null {\n return this.routes.find((route) => route.name === name) ?? null;\n }\n\n getRouteByID(id: string): Route | null {\n return this.routes.find((route) => route.id === id) ?? null;\n }\n\n getRoutesByMenuID(menuId: Route[\"menuId\"]): Route[] {\n return this.routes.filter((route) => route.menuId === menuId);\n }\n\n async changeRoute(route: any) {\n if (!route) {\n return true;\n }\n\n const routeInfo = this.getRouteByName(route.name);\n\n if (!routeInfo) {\n return true;\n }\n\n if (\n (await this.beforeRouteChange.emitAsync({ route, routeInfo })) !== false\n ) {\n this.currentRoute = route;\n\n this.routeChange.emit({ route, routeInfo });\n\n return true;\n }\n\n return false;\n }\n}\n"],"names":[],"mappings":";;AAIA,MAAM,wBAA2B,GAAA,+BAAA,CAAA;AAE1B,MAAM,eAAe,UAAW,CAAA;AAAA,EACrC,WAAA,CAAA;AAAA,EAEA,SAAkB,EAAC,CAAA;AAAA,EAEnB,YAA2B,GAAA,IAAA,CAAA;AAAA,EAE3B,oBAA6D,IAAK,CAAA,QAAA;AAAA,IAChE,IAAI,KAAM,EAAA;AAAA,GACZ,CAAA;AAAA,EAEA,cAAuD,IAAK,CAAA,QAAA;AAAA,IAC1D,IAAI,KAAM,EAAA;AAAA,GACZ,CAAA;AAAA,EAEA,YAAY,WAA0B,EAAA;AACpC,IAAM,KAAA,EAAA,CAAA;AAEN,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA,CAAA;AAAA,GACrB;AAAA,EAEA,UAAU,MAAiB,EAAA;AACzB,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GAChB;AAAA,EAEA,IAAO,GAAA;AACL,IAAM,MAAA,SAAA,GAAY,KAAK,WAAY,CAAA,SAAA,CAAA;AACnC,IAAM,MAAA,SAAA,GAAY,UAAU,SAAU,EAAA,CAAA;AAGtC,IAAM,MAAA,iBAAA,GAAoB,KAAK,MAAO,CAAA,MAAA;AAAA,MACpC,CAAC,KAAU,KAAA,CAAC,SAAU,CAAA,IAAA,CAAK,CAAC,IAAS,KAAA,IAAA,CAAK,IAAS,KAAA,KAAA,CAAM,IAAI,CAAA;AAAA,KAC/D,CAAA;AAEA,IAAA,KAAA,MAAW,oBAAoB,iBAAmB,EAAA;AAChD,MAAA,MAAM,KAAQ,GAAA,gBAAA,CAAiB,IAAK,CAAA,KAAA,CAAM,wBAAwB,CAAA,CAAA;AAElE,MAAA,IAAI,KAAO,EAAA;AACT,QAAM,MAAA,IAAA,GAAO,MAAM,CAAC,CAAA,CAAA;AACpB,QAAM,MAAA,MAAA,GAAS,MAAM,CAAC,CAAA,CAAA;AAEtB,QAAA,QAAQ,MAAQ;AAAA,UACd,KAAK,QAAA;AACH,YAAM,MAAA,CAAC,QAAU,EAAA,IAAI,CAAI,GAAA,KAAA,CAAM,CAAC,CAAA,CAAE,KAAM,CAAA,CAAC,CAAE,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAEpD,YAAA,QAAQ,QAAU;AAAA,cAChB,KAAK,MAAA;AACH,gBAAA,QAAQ,IAAM;AAAA,kBACZ,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,OACE,oDACF,CAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,kBACF,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,OACE,oDACF,CAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,iBACJ;AAEA,gBAAA,MAAA;AAAA,cACF,KAAK,MAAA;AACH,gBAAA,QAAQ,IAAM;AAAA,kBACZ,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,OACE,oDACF,CAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,iBACJ;AAAA,cACF,KAAK,YAAA;AACH,gBAAA,QAAQ,IAAM;AAAA,kBACZ,KAAK,QAAA;AACH,oBAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,sBACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,sBACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,sBACjB,SAAA,EAAW,MACT,OACE,0DACF,CAAA;AAAA,sBACF,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,qBACd,CAAA,CAAA;AACD,oBAAA,MAAA;AAAA,iBACJ;AAAA,aACJ;AAEA,YAAA,MAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,cACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,cACvB,IAAA,EAAM,OAAO,IAAI,CAAA,CAAA;AAAA,cACjB,SAAA,EAAW,MAAM,OAAO,uCAAoC,CAAA;AAAA,cAC5D,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,aACd,CAAA,CAAA;AACD,YAAA,MAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,cACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,cACvB,IAAA,EAAM,OAAO,IAAI,CAAA,IAAA,CAAA;AAAA,cACjB,SAAA,EAAW,MAAM,OAAO,sCAAmC,CAAA;AAAA,cAC3D,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,aACd,CAAA,CAAA;AACD,YAAA,MAAA;AAAA,UACF,KAAK,KAAA;AACH,YAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AAAA,cACjC,MAAM,gBAAiB,CAAA,IAAA;AAAA,cACvB,IAAA,EAAM,OAAO,IAAI,CAAA,IAAA,CAAA;AAAA,cACjB,SAAA,EAAW,MAAM,OAAO,qCAAkC,CAAA;AAAA,cAC1D,IAAA,EAAM,EAAE,IAAK,EAAA;AAAA,aACd,CAAA,CAAA;AACD,YAAA,MAAA;AAAA,SACJ;AAAA,OACF;AAAA,KACF;AAEA,IAAK,IAAA,CAAA,QAAA;AAAA,MACH,iBAAiB,MAAM;AACrB,QAAA,KAAA,MAAW,oBAAoB,iBAAmB,EAAA;AAChD,UAAU,SAAA,CAAA,WAAA,CAAY,iBAAiB,IAAI,CAAA,CAAA;AAAA,SAC7C;AAAA,OACD,CAAA;AAAA,KACH,CAAA;AAAA,GACF;AAAA,EAEA,eAAe,IAA4B,EAAA;AACzC,IAAO,OAAA,IAAA,CAAK,OAAO,IAAK,CAAA,CAAC,UAAU,KAAM,CAAA,IAAA,KAAS,IAAI,CAAK,IAAA,IAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,aAAa,EAA0B,EAAA;AACrC,IAAO,OAAA,IAAA,CAAK,OAAO,IAAK,CAAA,CAAC,UAAU,KAAM,CAAA,EAAA,KAAO,EAAE,CAAK,IAAA,IAAA,CAAA;AAAA,GACzD;AAAA,EAEA,kBAAkB,MAAkC,EAAA;AAClD,IAAA,OAAO,KAAK,MAAO,CAAA,MAAA,CAAO,CAAC,KAAU,KAAA,KAAA,CAAM,WAAW,MAAM,CAAA,CAAA;AAAA,GAC9D;AAAA,EAEA,MAAM,YAAY,KAAY,EAAA;AAC5B,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IAAA,MAAM,SAAY,GAAA,IAAA,CAAK,cAAe,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAEhD,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IACG,IAAA,MAAM,KAAK,iBAAkB,CAAA,SAAA,CAAU,EAAE,KAAO,EAAA,SAAA,EAAW,CAAA,KAAO,KACnE,EAAA;AACA,MAAA,IAAA,CAAK,YAAe,GAAA,KAAA,CAAA;AAEpB,MAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,EAAE,KAAA,EAAO,WAAW,CAAA,CAAA;AAE1C,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"Router.js","sources":["../../../src/core/Router.ts"],"sourcesContent":["import { Disposable, Event, createDisposable } from \"@maketribe/utils\";\nimport { Route } from \"../dataview\";\nimport type { UserSession } from \"./UserSession\";\n\nconst NORMALIZE_ROUTE_NAME_REG = /^dv\\/([^/]+)\\/([^/]+)(\\/.+)?$/;\n\nexport class Router extends Disposable {\n userSession: UserSession;\n\n routes: Route[] = [];\n\n currentRoute: any | null = null;\n\n beforeRouteChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n routeChange: Event<{ routeInfo: Route; route: any }> = this.register(\n new Event()\n );\n\n constructor(userSession: UserSession) {\n super();\n\n this.userSession = userSession;\n }\n\n setRoutes(routes: Route[]) {\n this.routes = routes;\n }\n\n init() {\n const vueRouter = this.userSession.vueRouter;\n const vueRoutes = vueRouter.getRoutes();\n\n // 给有权限访问的页面,注册默认页面\n const defaultPageRoutes = this.routes.filter(\n (route) => !vueRoutes.find((item) => item.name === route.name)\n );\n\n for (const defaultPageRoute of defaultPageRoutes) {\n const match = defaultPageRoute.name.match(NORMALIZE_ROUTE_NAME_REG);\n\n if (match) {\n const name = match[1];\n const action = match[2];\n\n switch (action) {\n case \"single\":\n const [listType, type] = match[3].slice(1).split(\"/\");\n\n switch (listType) {\n case \"list\":\n switch (type) {\n case \"normal\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/normal.vue\"\n ),\n meta: { name },\n });\n break;\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n\n break;\n case \"tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n break;\n case \"table-tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/table-tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n }\n\n break;\n case \"list\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () => import(\"../page/index/dv/default/table.vue\"),\n meta: { name },\n });\n break;\n case \"edit\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/:id`,\n component: () => import(\"../page/index/dv/default/edit.vue\"),\n meta: { name },\n });\n break;\n case \"add\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/add`,\n component: () => import(\"../page/index/dv/default/add.vue\"),\n meta: { name },\n });\n break;\n }\n }\n }\n\n this.register(\n createDisposable(() => {\n for (const defaultPageRoute of defaultPageRoutes) {\n vueRouter.removeRoute(defaultPageRoute.name);\n }\n })\n );\n }\n\n getRouteByName(name: string): Route | null {\n return this.routes.find((route) => route.name === name) ?? null;\n }\n\n getRouteByID(id: string): Route | null {\n return this.routes.find((route) => route.id === id) ?? null;\n }\n\n getRoutesByMenuID(menuId: Route[\"menuId\"]): Route[] {\n return this.routes.filter((route) => route.menuId === menuId);\n }\n\n async changeRoute(route: any) {\n if (!route) {\n return true;\n }\n\n const routeInfo = this.getRouteByName(route.name);\n\n if (!routeInfo) {\n return true;\n }\n\n if (\n (await this.beforeRouteChange.emitAsync({ route, routeInfo })) !== false\n ) {\n this.currentRoute = route;\n\n this.routeChange.emit({ route, routeInfo });\n\n return true;\n }\n\n return false;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { defineComponent, ref, watch, computed, unref, resolveDirective, openBlo
|
|
|
2
2
|
import { useRouter } from 'vue-router';
|
|
3
3
|
import { ElMessage, ElDialog, ElButton } from 'element-plus';
|
|
4
4
|
import { I18n } from '@maketribe/locale';
|
|
5
|
-
import { DataTable, DataForm
|
|
5
|
+
import { DataTable, DataForm } from '@maketribe/dm';
|
|
6
6
|
import { MKDataForm } from '../../../../../../components/data-model/data-form/index.js';
|
|
7
7
|
import '../../../../../../components/data-model/data-form-page/index.js';
|
|
8
8
|
import '../../../../../../components/data-model/data-table/index.js';
|
|
@@ -116,25 +116,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
116
116
|
isShowDialog.value = false;
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
|
-
dataTable2.deleteRecordEvent.on(async ({ item }) => {
|
|
120
|
-
const i18n = I18n.instance;
|
|
121
|
-
const isConfirm = await Dialoger.instance.confirm({
|
|
122
|
-
title: i18n.translate("mk.dataTablePage.deleteTitle"),
|
|
123
|
-
message: i18n.translate("mk.dataTablePage.deleteMessage"),
|
|
124
|
-
type: "warning"
|
|
125
|
-
});
|
|
126
|
-
if (!isConfirm) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
const response = await dataTable2.deleteAfterRefresh(
|
|
130
|
-
item[dataTable2.primaryKey]
|
|
131
|
-
);
|
|
132
|
-
if (response.data.code !== 200) {
|
|
133
|
-
Messager.instance.error({ message: response.data.msg });
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
Messager.instance.success({ message: "\u5220\u9664\u6210\u529F" });
|
|
137
|
-
});
|
|
138
119
|
}
|
|
139
120
|
onCleanup(() => {
|
|
140
121
|
dataTable2?.clearSelection();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/dialog.vue"],"sourcesContent":["<template>\n <MKDataTablePage v-if=\"dataTable\" :data-table=\"dataTable\" selection />\n\n <ElDialog v-if=\"dataForm\" appendToBody v-model=\"isShowDialog\">\n <MKDataForm v-loading=\"dataForm.loading\" :dataForm=\"dataForm\">\n <MKForm :dataForm=\"dataForm\" />\n </MKDataForm>\n\n <template #footer>\n <ElButton\n type=\"primary\"\n :loading=\"dataForm.loading\"\n @click=\"handleSubmit\"\n >\n {{ I18n.instance.translate(\"mk.dataForm.saveButton\") }}\n </ElButton>\n <ElButton @click=\"handleCancel\">\n {{ I18n.instance.translate(\"mk.dataForm.cancelButton\") }}\n </ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref, nextTick } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage, ElDialog, ElButton } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport {\n MKDataTablePage,\n MKDataForm,\n MKForm,\n} from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDialog = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDialog.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDialog.value = false;\n }\n });\n
|
|
1
|
+
{"version":3,"file":"dialog.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/dialog.vue"],"sourcesContent":["<template>\n <MKDataTablePage v-if=\"dataTable\" :data-table=\"dataTable\" selection />\n\n <ElDialog v-if=\"dataForm\" appendToBody v-model=\"isShowDialog\">\n <MKDataForm v-loading=\"dataForm.loading\" :dataForm=\"dataForm\">\n <MKForm :dataForm=\"dataForm\" />\n </MKDataForm>\n\n <template #footer>\n <ElButton\n type=\"primary\"\n :loading=\"dataForm.loading\"\n @click=\"handleSubmit\"\n >\n {{ I18n.instance.translate(\"mk.dataForm.saveButton\") }}\n </ElButton>\n <ElButton @click=\"handleCancel\">\n {{ I18n.instance.translate(\"mk.dataForm.cancelButton\") }}\n </ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref, nextTick } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage, ElDialog, ElButton } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport {\n MKDataTablePage,\n MKDataForm,\n MKForm,\n} from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDialog = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDialog.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDialog.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDialog.value = false;\n }\n });\n }\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n);\n\nconst handleSubmit = async () => {\n try {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n return;\n }\n\n if (!(await _dataForm.validate())) {\n return;\n }\n\n const response = await _dataForm.submit();\n\n if (response.data.code !== 200) {\n ElMessage.error({ message: response.data.msg });\n return;\n }\n\n unref(dataTable)?.load();\n ElMessage.success({\n message: I18n.instance.translate(\"mk.message.saveSuccess\"),\n });\n\n isShowDialog.value = false;\n } catch (e) {\n ElMessage.error({\n message: I18n.instance.translate(\"mk.message.saveError\"),\n });\n }\n};\n\nconst handleCancel = () => {\n unref(dataForm)?.cancel();\n isShowDialog.value = false;\n};\n</script>\n"],"names":["dataTable"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, watch, computed, unref, openBlock, createElementBlock, Fragment, withDirectives, createBlock, vShow, createCommentVNode } from 'vue';
|
|
2
2
|
import { useRouter } from 'vue-router';
|
|
3
3
|
import { ElMessage } from 'element-plus';
|
|
4
|
-
import {
|
|
5
|
-
import { DataTable, DataForm, Dialoger, Messager } from '@maketribe/dm';
|
|
4
|
+
import { DataTable, DataForm } from '@maketribe/dm';
|
|
6
5
|
import '../../../../../../components/data-model/data-form/index.js';
|
|
7
6
|
import { MKDataFormPage } from '../../../../../../components/data-model/data-form-page/index.js';
|
|
8
7
|
import '../../../../../../components/data-model/data-table/index.js';
|
|
@@ -56,6 +55,7 @@ import '../../../../../../components/json-editor/index.js';
|
|
|
56
55
|
import '@maketribe/utils';
|
|
57
56
|
import { DataModelDefines } from '../../../../../../core/DataModelDefines.js';
|
|
58
57
|
import '@maketribe/request';
|
|
58
|
+
import '@maketribe/locale';
|
|
59
59
|
|
|
60
60
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
61
61
|
__name: "normal",
|
|
@@ -115,25 +115,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
115
115
|
isShowDataForm.value = false;
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
|
-
dataTable2.deleteRecordEvent.on(async ({ item }) => {
|
|
119
|
-
const i18n = I18n.instance;
|
|
120
|
-
const isConfirm = await Dialoger.instance.confirm({
|
|
121
|
-
title: i18n.translate("mk.dataTablePage.deleteTitle"),
|
|
122
|
-
message: i18n.translate("mk.dataTablePage.deleteMessage"),
|
|
123
|
-
type: "warning"
|
|
124
|
-
});
|
|
125
|
-
if (!isConfirm) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
const response = await dataTable2.deleteAfterRefresh(
|
|
129
|
-
item[dataTable2.primaryKey]
|
|
130
|
-
);
|
|
131
|
-
if (response.data.code !== 200) {
|
|
132
|
-
Messager.instance.error({ message: response.data.msg });
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
Messager.instance.success({ message: "\u5220\u9664\u6210\u529F" });
|
|
136
|
-
});
|
|
137
118
|
}
|
|
138
119
|
onCleanup(() => {
|
|
139
120
|
dataTable2?.clearSelection();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normal.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/normal.vue"],"sourcesContent":["<template>\n <MKDataTablePage\n v-if=\"dataTable\"\n v-show=\"!isShowDataForm\"\n :data-table=\"dataTable\"\n selection\n />\n <MKDataFormPage\n v-if=\"dataForm\"\n v-show=\"isShowDataForm\"\n :data-form=\"dataForm\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { MKDataTablePage, MKDataFormPage } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDataForm = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(() => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n
|
|
1
|
+
{"version":3,"file":"normal.vue2.js","sources":["../../../../../../../../src/page/index/dv/default/single/list/normal.vue"],"sourcesContent":["<template>\n <MKDataTablePage\n v-if=\"dataTable\"\n v-show=\"!isShowDataForm\"\n :data-table=\"dataTable\"\n selection\n />\n <MKDataFormPage\n v-if=\"dataForm\"\n v-show=\"isShowDataForm\"\n :data-form=\"dataForm\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage } from \"element-plus\";\nimport { I18n } from \"@maketribe/locale\";\nimport { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { MKDataTablePage, MKDataFormPage } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\n\nconst props = defineProps({\n dataTable: { type: DataTable<any> },\n dataForm: { type: DataForm<any> },\n});\n\nconst router = useRouter();\n\nconst isShowDataForm = ref(false);\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(\n () =>\n [\n props.dataTable,\n props.dataForm,\n unref(router.currentRoute).meta.name,\n ] as [DataTable, DataForm, string]\n ),\n ([_dataTable, _dataForm, name]) => {\n dataTable.value =\n _dataTable || DataModelDefines.instance.getDataTable(name);\n dataForm.value = _dataForm || DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nwatch(\n dataTable,\n (dataTable, _, onCleanup) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(() => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(item);\n\n if (response.data.code !== 200) {\n ElMessage.error(response.data.msg);\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n }\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n);\n\nwatch(\n dataForm,\n (dataForm, _, onCleanup) => {\n if (dataForm) {\n dataForm.submittedEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(dataTable)?.load();\n });\n\n dataForm.cancelEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(dataTable)?.load();\n });\n }\n\n onCleanup(() => {\n dataForm?.dispose();\n });\n },\n { immediate: true }\n);\n</script>\n"],"names":["dataTable","dataForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,SAAS,SAAU,EAAA,CAAA;AAEzB,IAAM,MAAA,cAAA,GAAiB,IAAI,KAAK,CAAA,CAAA;AAEhC,IAAM,MAAA,SAAA,GAAmC,IAAI,IAAI,CAAA,CAAA;AACjD,IAAM,MAAA,QAAA,GAAiC,IAAI,IAAI,CAAA,CAAA;AAE/C,IAAA,KAAA;AAAA,MACE,QAAA;AAAA,QACE,MACE;AAAA,UACE,KAAM,CAAA,SAAA;AAAA,UACN,KAAM,CAAA,QAAA;AAAA,UACN,KAAM,CAAA,MAAA,CAAO,YAAY,CAAA,CAAE,IAAK,CAAA,IAAA;AAAA,SAClC;AAAA,OACJ;AAAA,MACA,CAAC,CAAC,UAAY,EAAA,SAAA,EAAW,IAAI,CAAM,KAAA;AACjC,QAAA,SAAA,CAAU,KACR,GAAA,UAAA,IAAc,gBAAiB,CAAA,QAAA,CAAS,aAAa,IAAI,CAAA,CAAA;AAC3D,QAAA,QAAA,CAAS,KAAQ,GAAA,SAAA,IAAa,gBAAiB,CAAA,QAAA,CAAS,YAAY,IAAI,CAAA,CAAA;AAAA,OAC1E;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACpB,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,SAAA;AAAA,MACA,CAACA,UAAW,EAAA,CAAA,EAAG,SAAc,KAAA;AAC3B,QAAA,IAAIA,UAAW,EAAA;AACb,UAAAA,UAAAA,CAAU,cAAe,CAAA,EAAA,CAAG,MAAM;AAChC,YAAM,MAAA,SAAA,GAAY,MAAM,QAAQ,CAAA,CAAA;AAEhC,YAAA,IAAI,CAAC,SAAW,EAAA;AACd,cAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,gCAAA,EAAUA,UAAU,CAAA,IAAI,CAAe,uBAAA,CAAA,CAAA,CAAA;AACpD,cAAA,OAAA;AAAA,aACF;AAEA,YAAA,cAAA,CAAe,KAAQ,GAAA,IAAA,CAAA;AAEvB,YAAA,SAAA,CAAU,SAAU,EAAA,CAAA;AAAA,WACrB,CAAA,CAAA;AAED,UAAAA,WAAU,eAAgB,CAAA,EAAA,CAAG,OAAO,EAAE,MAAW,KAAA;AAC/C,YAAM,MAAA,SAAA,GAAY,MAAM,QAAQ,CAAA,CAAA;AAEhC,YAAA,IAAI,CAAC,SAAW,EAAA;AACd,cAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,gCAAA,EAAUA,UAAU,CAAA,IAAI,CAAe,uBAAA,CAAA,CAAA,CAAA;AACpD,cAAA,OAAA;AAAA,aACF;AAEA,YAAA,cAAA,CAAe,KAAQ,GAAA,IAAA,CAAA;AAEvB,YAAI,IAAA;AACF,cAAA,MAAM,QAAW,GAAA,MAAM,SAAU,CAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAEhD,cAAI,IAAA,QAAA,CAAS,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC9B,gBAAU,SAAA,CAAA,KAAA,CAAM,QAAS,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACjC,gBAAA,cAAA,CAAe,KAAQ,GAAA,KAAA,CAAA;AACvB,gBAAA,OAAA;AAAA,eACF;AAAA,qBACO,CAAG,EAAA;AACV,cAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AACf,cAAA,cAAA,CAAe,KAAQ,GAAA,KAAA,CAAA;AAAA,aACzB;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AAEA,QAAA,SAAA,CAAU,MAAM;AACd,UAAAA,YAAW,cAAe,EAAA,CAAA;AAC1B,UAAAA,YAAW,OAAQ,EAAA,CAAA;AAAA,SACpB,CAAA,CAAA;AAAA,OACH;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACpB,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,QAAA;AAAA,MACA,CAACC,SAAU,EAAA,CAAA,EAAG,SAAc,KAAA;AAC1B,QAAA,IAAIA,SAAU,EAAA;AACZ,UAAAA,SAAAA,CAAS,cAAe,CAAA,EAAA,CAAG,MAAM;AAC/B,YAAA,cAAA,CAAe,KAAQ,GAAA,KAAA,CAAA;AAEvB,YAAM,KAAA,CAAA,SAAS,GAAG,IAAK,EAAA,CAAA;AAAA,WACxB,CAAA,CAAA;AAED,UAAAA,SAAAA,CAAS,WAAY,CAAA,EAAA,CAAG,MAAM;AAC5B,YAAA,cAAA,CAAe,KAAQ,GAAA,KAAA,CAAA;AAEvB,YAAM,KAAA,CAAA,SAAS,GAAG,IAAK,EAAA,CAAA;AAAA,WACxB,CAAA,CAAA;AAAA,SACH;AAEA,QAAA,SAAA,CAAU,MAAM;AACd,UAAAA,WAAU,OAAQ,EAAA,CAAA;AAAA,SACnB,CAAA,CAAA;AAAA,OACH;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACpB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -30,7 +30,7 @@ function generateRoutesFromFiles(files) {
|
|
|
30
30
|
route.path += getRoutePath(tokens);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
route.path = file.module.mkRoute
|
|
33
|
+
route.path = file.module.mkRoute?.path || route.path;
|
|
34
34
|
parent.push(route);
|
|
35
35
|
}
|
|
36
36
|
return prepareRoutes(routes);
|
|
@@ -135,9 +135,6 @@ function prepareRoutes(routes, parent, keys = /* @__PURE__ */ new Set()) {
|
|
|
135
135
|
if (route.children?.length) {
|
|
136
136
|
route.children = prepareRoutes(route.children, route, keys);
|
|
137
137
|
}
|
|
138
|
-
if (route.children?.find((childRoute) => childRoute.path === "")) {
|
|
139
|
-
delete route.key;
|
|
140
|
-
}
|
|
141
138
|
if (route.key) {
|
|
142
139
|
keys.add(route.key);
|
|
143
140
|
}
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["import { encodePath } from \"ufo\";\n\nenum SegmentParserState {\n initial,\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface ScannedFile {\n path: string;\n module: any;\n}\n\nenum SegmentTokenType {\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface SegmentToken {\n type: SegmentTokenType;\n value: string;\n}\n\nexport function generateRoutesFromFiles(files: ScannedFile[]) {\n const routes: any[] = [];\n\n for (const file of files) {\n const segments = file.path.split(\"/\");\n\n const route: Record<string, any> = {\n meta: {},\n ...file.module.mkRoute,\n key: \"\",\n path: \"\",\n component: async () => file.module,\n children: [],\n };\n\n let parent = routes;\n\n for (const segment of segments) {\n const tokens = parseSegment(segment);\n const segmentName = tokens.map(({ value }) => value).join(\"\");\n\n route.key += (route.key && \"/\") + segmentName;\n\n const path = route.path + getRoutePath(tokens).replace(/\\/index$/, \"/\");\n const child = parent.find(\n (parentRoute) =>\n parentRoute.key === route.key && parentRoute.path === path\n );\n\n if (child && child.children) {\n parent = child.children;\n route.path = \"\";\n } else if (segmentName === \"index\" && !route.path) {\n route.path += \"/\";\n } else if (segmentName !== \"index\") {\n route.path += getRoutePath(tokens);\n }\n }\n\n route.path = file.module.mkRoute.path || route.path;\n\n parent.push(route);\n }\n\n return prepareRoutes(routes);\n}\n\nfunction getRoutePath(tokens: SegmentToken[]) {\n return tokens.reduce((path, token) => {\n return (\n path +\n (token.type === SegmentTokenType.optional\n ? `:${token.value}?`\n : token.type === SegmentTokenType.dynamic\n ? `:${token.value}()`\n : token.type === SegmentTokenType.catchall\n ? `:${token.value}(.*)*`\n : encodePath(token.value).replace(/:/g, \"\\\\:\"))\n );\n }, \"/\");\n}\n\nconst PARAM_CHAR_RE = /[\\w\\d_.]/;\n\nfunction parseSegment(segment: string) {\n let state: SegmentParserState = SegmentParserState.initial;\n\n let i = 0;\n\n let buffer = \"\";\n const tokens: SegmentToken[] = [];\n\n function consumeBuffer() {\n if (!buffer) {\n return;\n }\n\n if (state === SegmentParserState.initial) {\n throw new Error(\"错误的状态\");\n }\n\n tokens.push({\n type:\n state === SegmentParserState.static\n ? SegmentTokenType.static\n : state === SegmentParserState.dynamic\n ? SegmentTokenType.dynamic\n : state === SegmentParserState.optional\n ? SegmentTokenType.optional\n : SegmentTokenType.catchall,\n value: buffer,\n });\n\n buffer = \"\";\n }\n\n while (i < segment.length) {\n const c = segment[i];\n\n switch (state) {\n case SegmentParserState.initial:\n buffer = \"\";\n\n if (c === \"[\") {\n state = SegmentParserState.dynamic;\n } else {\n i--;\n state = SegmentParserState.static;\n }\n\n break;\n case SegmentParserState.static:\n if (c === \"[\") {\n consumeBuffer();\n state = SegmentParserState.dynamic;\n } else {\n buffer += c;\n }\n break;\n case SegmentParserState.catchall:\n case SegmentParserState.dynamic:\n case SegmentParserState.optional:\n if (buffer === \"...\") {\n buffer = \"\";\n state = SegmentParserState.catchall;\n }\n\n if (c === \"[\" && state === SegmentParserState.dynamic) {\n state = SegmentParserState.optional;\n }\n\n if (\n c === \"]\" &&\n (state !== SegmentParserState.optional || segment[i - 1] === \"]\")\n ) {\n if (!buffer) {\n throw new Error(\"空参数\");\n }\n consumeBuffer();\n state = SegmentParserState.initial;\n } else if (PARAM_CHAR_RE.test(c)) {\n buffer += c;\n }\n break;\n }\n\n i++;\n }\n\n if (state === SegmentParserState.dynamic) {\n throw new Error(`Unfinished param \"${buffer}\"`);\n }\n\n consumeBuffer();\n\n return tokens;\n}\n\nfunction findRouteByKey(key: string, routes: any[]): any | undefined {\n for (const route of routes) {\n if (route.key === key) {\n return route;\n }\n }\n return findRouteByKey(key, routes);\n}\n\nfunction prepareRoutes(routes: any[], parent?: any, keys = new Set<string>()) {\n for (const route of routes) {\n // Remove -index\n if (route.key) {\n route.key = route.key.replace(/\\/index$/, \"\").replace(/\\//g, \"-\");\n\n if (keys.has(route.key)) {\n const existingRoute = findRouteByKey(route.key, routes);\n const extra = existingRoute?.name\n ? `is the same as \\`${existingRoute.file}\\``\n : \"is a duplicate\";\n console.warn(\n `Route name generated for \\`${route.file}\\` ${extra}. You may wish to set a custom name using \\`definePageMeta\\` within the page file.`\n );\n }\n }\n\n route.path = route.path.replace(/\\/\\//g, \"/\");\n\n // Remove leading / if children route\n if (parent && route.path.startsWith(\"/\")) {\n route.path = route.path.slice(1);\n }\n\n if (route.children?.length) {\n route.children = prepareRoutes(route.children, route, keys);\n }\n\n if (route.children?.find((childRoute: any) => childRoute.path === \"\")) {\n delete route.key;\n }\n\n if (route.key) {\n keys.add(route.key);\n }\n }\n\n return routes;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["import { encodePath } from \"ufo\";\n\nenum SegmentParserState {\n initial,\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface ScannedFile {\n path: string;\n module: any;\n}\n\nenum SegmentTokenType {\n static,\n dynamic,\n optional,\n catchall,\n}\n\ninterface SegmentToken {\n type: SegmentTokenType;\n value: string;\n}\n\nexport function generateRoutesFromFiles(files: ScannedFile[]) {\n const routes: any[] = [];\n\n for (const file of files) {\n const segments = file.path.split(\"/\");\n\n const route: Record<string, any> = {\n meta: {},\n ...file.module.mkRoute,\n key: \"\",\n path: \"\",\n component: async () => file.module,\n children: [],\n };\n\n let parent = routes;\n\n for (const segment of segments) {\n const tokens = parseSegment(segment);\n const segmentName = tokens.map(({ value }) => value).join(\"\");\n\n route.key += (route.key && \"/\") + segmentName;\n\n const path = route.path + getRoutePath(tokens).replace(/\\/index$/, \"/\");\n const child = parent.find(\n (parentRoute) =>\n parentRoute.key === route.key && parentRoute.path === path\n );\n\n if (child && child.children) {\n parent = child.children;\n route.path = \"\";\n } else if (segmentName === \"index\" && !route.path) {\n route.path += \"/\";\n } else if (segmentName !== \"index\") {\n route.path += getRoutePath(tokens);\n }\n }\n\n route.path = file.module.mkRoute?.path || route.path;\n\n parent.push(route);\n }\n\n return prepareRoutes(routes);\n}\n\nfunction getRoutePath(tokens: SegmentToken[]) {\n return tokens.reduce((path, token) => {\n return (\n path +\n (token.type === SegmentTokenType.optional\n ? `:${token.value}?`\n : token.type === SegmentTokenType.dynamic\n ? `:${token.value}()`\n : token.type === SegmentTokenType.catchall\n ? `:${token.value}(.*)*`\n : encodePath(token.value).replace(/:/g, \"\\\\:\"))\n );\n }, \"/\");\n}\n\nconst PARAM_CHAR_RE = /[\\w\\d_.]/;\n\nfunction parseSegment(segment: string) {\n let state: SegmentParserState = SegmentParserState.initial;\n\n let i = 0;\n\n let buffer = \"\";\n const tokens: SegmentToken[] = [];\n\n function consumeBuffer() {\n if (!buffer) {\n return;\n }\n\n if (state === SegmentParserState.initial) {\n throw new Error(\"错误的状态\");\n }\n\n tokens.push({\n type:\n state === SegmentParserState.static\n ? SegmentTokenType.static\n : state === SegmentParserState.dynamic\n ? SegmentTokenType.dynamic\n : state === SegmentParserState.optional\n ? SegmentTokenType.optional\n : SegmentTokenType.catchall,\n value: buffer,\n });\n\n buffer = \"\";\n }\n\n while (i < segment.length) {\n const c = segment[i];\n\n switch (state) {\n case SegmentParserState.initial:\n buffer = \"\";\n\n if (c === \"[\") {\n state = SegmentParserState.dynamic;\n } else {\n i--;\n state = SegmentParserState.static;\n }\n\n break;\n case SegmentParserState.static:\n if (c === \"[\") {\n consumeBuffer();\n state = SegmentParserState.dynamic;\n } else {\n buffer += c;\n }\n break;\n case SegmentParserState.catchall:\n case SegmentParserState.dynamic:\n case SegmentParserState.optional:\n if (buffer === \"...\") {\n buffer = \"\";\n state = SegmentParserState.catchall;\n }\n\n if (c === \"[\" && state === SegmentParserState.dynamic) {\n state = SegmentParserState.optional;\n }\n\n if (\n c === \"]\" &&\n (state !== SegmentParserState.optional || segment[i - 1] === \"]\")\n ) {\n if (!buffer) {\n throw new Error(\"空参数\");\n }\n consumeBuffer();\n state = SegmentParserState.initial;\n } else if (PARAM_CHAR_RE.test(c)) {\n buffer += c;\n }\n break;\n }\n\n i++;\n }\n\n if (state === SegmentParserState.dynamic) {\n throw new Error(`Unfinished param \"${buffer}\"`);\n }\n\n consumeBuffer();\n\n return tokens;\n}\n\nfunction findRouteByKey(key: string, routes: any[]): any | undefined {\n for (const route of routes) {\n if (route.key === key) {\n return route;\n }\n }\n return findRouteByKey(key, routes);\n}\n\nfunction prepareRoutes(routes: any[], parent?: any, keys = new Set<string>()) {\n for (const route of routes) {\n // Remove -index\n if (route.key) {\n route.key = route.key.replace(/\\/index$/, \"\").replace(/\\//g, \"-\");\n\n if (keys.has(route.key)) {\n const existingRoute = findRouteByKey(route.key, routes);\n const extra = existingRoute?.name\n ? `is the same as \\`${existingRoute.file}\\``\n : \"is a duplicate\";\n console.warn(\n `Route name generated for \\`${route.file}\\` ${extra}. You may wish to set a custom name using \\`definePageMeta\\` within the page file.`\n );\n }\n }\n\n route.path = route.path.replace(/\\/\\//g, \"/\");\n\n // Remove leading / if children route\n if (parent && route.path.startsWith(\"/\")) {\n route.path = route.path.slice(1);\n }\n\n if (route.children?.length) {\n route.children = prepareRoutes(route.children, route, keys);\n }\n\n // if (route.children?.find((childRoute: any) => childRoute.path === \"\")) {\n // delete route.key;\n // }\n\n if (route.key) {\n keys.add(route.key);\n }\n }\n\n return routes;\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maketribe/ms-app",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.10",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"files": [
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"vue": "^3.3.4",
|
|
21
21
|
"vue-codemirror": "^6.1.1",
|
|
22
22
|
"vue-router": "^4.2.4",
|
|
23
|
-
"@maketribe/dm": "^3.0.
|
|
23
|
+
"@maketribe/dm": "^3.0.7",
|
|
24
24
|
"@maketribe/locale": "^1.0.5",
|
|
25
|
-
"@maketribe/
|
|
26
|
-
"@maketribe/
|
|
25
|
+
"@maketribe/utils": "^1.1.1",
|
|
26
|
+
"@maketribe/request": "^1.1.8"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "npm run clean && npm run build:js && npm run build:type && npm run build:style",
|
|
@@ -21,8 +21,9 @@ export default defineComponent({
|
|
|
21
21
|
width: column.width,
|
|
22
22
|
minWidth: column.minWidth,
|
|
23
23
|
fixed: column.fixed,
|
|
24
|
+
align: column.align || "center",
|
|
24
25
|
reserveSelection: true,
|
|
25
|
-
type: column.type,
|
|
26
|
+
type: column.type === null ? "default" : column.type,
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
if (!column.visible) {
|
|
@@ -17,8 +17,6 @@ export default defineComponent({
|
|
|
17
17
|
|
|
18
18
|
const rootNodes = computed(() => unref(dataTree).rootNodes);
|
|
19
19
|
|
|
20
|
-
(window as any).rootNodes = rootNodes;
|
|
21
|
-
|
|
22
20
|
const handleAdd = (dataTreeNode?: DataTreeNode) => {
|
|
23
21
|
unref(dataTree).addRecord(
|
|
24
22
|
dataTreeNode ? { pid: dataTreeNode.data.id } : {}
|
|
@@ -3,6 +3,7 @@ import { MKDataFormPage, MKDataTable } from "../../data-model";
|
|
|
3
3
|
import { formDetailProps } from "./form-detail-options";
|
|
4
4
|
import { useFormItem } from "../../data-model/data-form/composables";
|
|
5
5
|
import { ElDrawer, ElEmpty } from "element-plus";
|
|
6
|
+
import { Disposable } from "@maketribe/utils";
|
|
6
7
|
|
|
7
8
|
export default defineComponent({
|
|
8
9
|
name: "MKFormDetail",
|
|
@@ -33,25 +34,26 @@ export default defineComponent({
|
|
|
33
34
|
(detailTable, _, onCleanUp) => {
|
|
34
35
|
detailTable.dataFilter.setReady();
|
|
35
36
|
|
|
36
|
-
const
|
|
37
|
-
|
|
37
|
+
const disposable = new Disposable();
|
|
38
|
+
|
|
39
|
+
disposable.register(
|
|
40
|
+
detailTable.editRecordEvent.on(({ item }) => {
|
|
38
41
|
unref(detailForm).editRecord(item);
|
|
39
42
|
|
|
40
43
|
isShowDrawer.value = true;
|
|
41
|
-
}
|
|
44
|
+
})
|
|
42
45
|
);
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
async () => {
|
|
47
|
+
disposable.register(
|
|
48
|
+
detailTable.addRecordEvent.on(async () => {
|
|
46
49
|
isShowDrawer.value = true;
|
|
47
50
|
|
|
48
51
|
await unref(detailForm).addRecord();
|
|
49
|
-
}
|
|
52
|
+
})
|
|
50
53
|
);
|
|
51
54
|
|
|
52
55
|
onCleanUp(() => {
|
|
53
|
-
|
|
54
|
-
addRecordEventDisposable.dispose();
|
|
56
|
+
disposable.dispose();
|
|
55
57
|
});
|
|
56
58
|
},
|
|
57
59
|
{ immediate: true }
|
package/src/core/Router.ts
CHANGED
|
@@ -103,31 +103,6 @@ watch(
|
|
|
103
103
|
isShowDialog.value = false;
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
|
-
|
|
107
|
-
dataTable.deleteRecordEvent.on(async ({ item }) => {
|
|
108
|
-
const i18n = I18n.instance;
|
|
109
|
-
|
|
110
|
-
const isConfirm = await Dialoger.instance.confirm({
|
|
111
|
-
title: i18n.translate("mk.dataTablePage.deleteTitle"),
|
|
112
|
-
message: i18n.translate("mk.dataTablePage.deleteMessage"),
|
|
113
|
-
type: "warning",
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
if (!isConfirm) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const response = await dataTable.deleteAfterRefresh(
|
|
121
|
-
item[dataTable.primaryKey]
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
if (response.data.code !== 200) {
|
|
125
|
-
Messager.instance.error({ message: response.data.msg });
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
Messager.instance.success({ message: "删除成功" });
|
|
130
|
-
});
|
|
131
106
|
}
|
|
132
107
|
|
|
133
108
|
onCleanup(() => {
|
|
@@ -90,31 +90,6 @@ watch(
|
|
|
90
90
|
isShowDataForm.value = false;
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
|
-
|
|
94
|
-
dataTable.deleteRecordEvent.on(async ({ item }) => {
|
|
95
|
-
const i18n = I18n.instance;
|
|
96
|
-
|
|
97
|
-
const isConfirm = await Dialoger.instance.confirm({
|
|
98
|
-
title: i18n.translate("mk.dataTablePage.deleteTitle"),
|
|
99
|
-
message: i18n.translate("mk.dataTablePage.deleteMessage"),
|
|
100
|
-
type: "warning",
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
if (!isConfirm) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const response = await dataTable.deleteAfterRefresh(
|
|
108
|
-
item[dataTable.primaryKey]
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
if (response.data.code !== 200) {
|
|
112
|
-
Messager.instance.error({ message: response.data.msg });
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
Messager.instance.success({ message: "删除成功" });
|
|
117
|
-
});
|
|
118
93
|
}
|
|
119
94
|
|
|
120
95
|
onCleanup(() => {
|
package/src/utils.ts
CHANGED
|
@@ -64,7 +64,7 @@ export function generateRoutesFromFiles(files: ScannedFile[]) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
route.path = file.module.mkRoute
|
|
67
|
+
route.path = file.module.mkRoute?.path || route.path;
|
|
68
68
|
|
|
69
69
|
parent.push(route);
|
|
70
70
|
}
|
|
@@ -220,9 +220,9 @@ function prepareRoutes(routes: any[], parent?: any, keys = new Set<string>()) {
|
|
|
220
220
|
route.children = prepareRoutes(route.children, route, keys);
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
if (route.children?.find((childRoute: any) => childRoute.path === "")) {
|
|
224
|
-
|
|
225
|
-
}
|
|
223
|
+
// if (route.children?.find((childRoute: any) => childRoute.path === "")) {
|
|
224
|
+
// delete route.key;
|
|
225
|
+
// }
|
|
226
226
|
|
|
227
227
|
if (route.key) {
|
|
228
228
|
keys.add(route.key);
|