1
0
mirror of synced 2026-04-03 14:38:37 +08:00

feat: 新增管理端demo代码

feat: 补充遗漏的文件

fix: 移除license
This commit is contained in:
parisma
2022-03-11 15:21:32 +08:00
committed by jia000
parent 66eb52f8da
commit 2bfb85bdbf
109 changed files with 36582 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
<template>
<m-editor
:menu="menu"
:runtime-url="runtimeUrl"
:component-group-list="componentList"
:modelValue="uiConfigs"
:props-values="magicPresetValues"
:props-configs="magicPresetConfigs"
:event-method-list="magicPresetEvents"
:default-selected="editorDefaultSelected"
></m-editor>
</template>
<script lang="ts">
import { computed, defineComponent, reactive, ref } from 'vue';
import { useRoute } from 'vue-router';
import { ComponentGroup } from '@tmagic/editor';
import { asyncLoadJs } from '@tmagic/utils';
import editorApi from '@src/api/editor';
import magicStore from '@src/store/index';
import { topMenu } from '@src/use/use-menu';
import { initConfigByActId } from '@src/use/use-publish';
export default defineComponent({
name: 'App',
setup() {
const route = useRoute();
const uiConfigs = computed(() => magicStore.get('uiConfigs'));
const editorDefaultSelected = computed(() => magicStore.get('editorDefaultSelected'));
const componentList = reactive<ComponentGroup[]>([]);
const magicPresetValues = ref<Record<string, any>>({});
const magicPresetConfigs = ref<Record<string, any>>({});
const magicPresetEvents = ref<Record<string, any>>({});
// 获取编辑器左侧组件树
const getComponentList = async () => {
const { data: list } = await editorApi.getComponentList();
componentList.push(...list);
};
// 根据活动id获取活动配置
const getActById = async () => {
await initConfigByActId({ actId: Number(route.params.actId) });
};
asyncLoadJs('/runtime/vue3/assets/config.js').then(() => {
magicPresetConfigs.value = (window as any).magicPresetConfigs;
});
asyncLoadJs('/runtime/vue3/assets/value.js').then(() => {
magicPresetValues.value = (window as any).magicPresetValues;
});
asyncLoadJs('/runtime/vue3/assets/event.js').then(() => {
magicPresetEvents.value = (window as any).magicPresetEvents;
});
getComponentList();
getActById();
return {
componentList,
menu: topMenu(),
uiConfigs,
runtimeUrl: '/runtime/vue3/playground.html',
magicPresetValues,
magicPresetConfigs,
magicPresetEvents,
editorDefaultSelected,
};
},
});
</script>
<style lang="scss">
#app {
width: 100%;
height: 100%;
display: flex;
}
.m-editor {
flex: 1;
height: 100%;
}
</style>

View File

@@ -0,0 +1,44 @@
<!-- 活动列表视图 -->
<template>
<div>
<!-- 面包屑导航 -->
<el-breadcrumb separator="/">
<el-breadcrumb-item v-for="item in breadCrumbData" :key="item.index">
{{ item.text }}
</el-breadcrumb-item>
</el-breadcrumb>
<!-- 活动列表 -->
<act-list></act-list>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import List from '@src/components/act-list.vue';
export default defineComponent({
name: 'act-list-view',
components: { 'act-list': List },
setup() {
return {
breadCrumbData: ref([
{
text: '首页',
},
{
text: `活动列表`,
},
]),
};
},
});
</script>
<style>
.el-breadcrumb {
margin-bottom: 20px;
}
</style>

View File

@@ -0,0 +1,64 @@
<template>
<div>
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item v-for="item in breadcrumb" :to="{ path: item.url }" :key="item.url">
{{ item.text }}
</el-breadcrumb-item>
</el-breadcrumb>
<el-card class="box-card">
<template #header>
<div class="clearfix">
<span>创建新活动</span>
</div>
</template>
<act-create-card @add="newActHandler" />
</el-card>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { useRouter } from 'vue-router';
import ActCreateCard from '@src/components/act-created-card.vue';
export interface BreadCrumbItem {
url: string;
text: string;
}
export default defineComponent({
name: 'template-list',
components: { ActCreateCard },
setup() {
const router = useRouter();
const breadcrumb: BreadCrumbItem[] = [
{
url: '/',
text: '首页',
},
{
url: '/template/list',
text: '模板',
},
];
const newActHandler = () => {
router.push({
path: '/act/my',
query: {
create: 'true',
},
});
};
return {
breadcrumb,
newActHandler,
};
},
});
</script>