Commit c18af0ca authored by chenqikuai's avatar chenqikuai

fix: 修复在文件夹A中添加模板时,新打开的页面默认选中的文件夹不是A的bug

parent df16849f
...@@ -138,6 +138,9 @@ const routes: RouteConfig[] = [ ...@@ -138,6 +138,9 @@ const routes: RouteConfig[] = [
// this generates a separate chunk (about.[hash].js) for this route // this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited. // which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "add-template" */ '@/views/template/Add.vue'), component: () => import(/* webpackChunkName: "add-template" */ '@/views/template/Add.vue'),
props: ({query}) => ({
folderId: query.folderId !== undefined ? Number.parseInt(query.folderId as string, 10) : undefined,
}),
meta: { requiresAuth: true }, meta: { requiresAuth: true },
}, },
{ {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<!-- 拿到 模板名称和图片地址信息等信息 --> <!-- 拿到 模板名称和图片地址信息等信息 -->
<base-info <base-info
:showBaseInfo.sync="showBaseInfo" :showBaseInfo.sync="showBaseInfo"
:defaultFolderId="folderId"
@next="baseInfoNext" @next="baseInfoNext"
@cancel="cancelCreateTempl" @cancel="cancelCreateTempl"
></base-info> ></base-info>
...@@ -36,8 +37,13 @@ import WordsManager from './components/WordsManager.vue'; ...@@ -36,8 +37,13 @@ import WordsManager from './components/WordsManager.vue';
}, },
}) })
export default class Add extends Vue { export default class Add extends Vue {
@Prop({
required: false,
})
private folderId!: number | undefined;
private showBaseInfo: boolean = true; private showBaseInfo: boolean = true;
/* 创建存证所需要的数据 */ /* 创建存证所需要的数据 */
private baseInfo: any = { private baseInfo: any = {
templateName: '', templateName: '',
...@@ -45,7 +51,7 @@ export default class Add extends Vue { ...@@ -45,7 +51,7 @@ export default class Add extends Vue {
imgUrl: '', imgUrl: '',
}; };
private words: any[] = []; private words: any[] = [];
private showWordsManager: boolean = false; private showWordsManager: boolean = false;
private showPreview: boolean = false; private showPreview: boolean = false;
...@@ -59,8 +65,6 @@ export default class Add extends Vue { ...@@ -59,8 +65,6 @@ export default class Add extends Vue {
}; };
} }
private baseInfoNext(data: any) { private baseInfoNext(data: any) {
console.log(data);
this.baseInfo = { ...data }; this.baseInfo = { ...data };
} }
private cancelCreateTempl() { private cancelCreateTempl() {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
" "
> >
<span>{{ folderName }}</span <span>{{ folderName }}</span
><router-link to="addTemplate" tag="p" style="color: #3f79fe" ><router-link :to="{ name: 'Add', query: {folderId: id}}" tag="p" style="color: #3f79fe"
>+添加模板</router-link >+添加模板</router-link
> >
</div> </div>
......
...@@ -63,6 +63,8 @@ import { TEMPLATETYPE } from '@/const/enum'; ...@@ -63,6 +63,8 @@ import { TEMPLATETYPE } from '@/const/enum';
}, },
}) })
export default class BaseInfo extends Vue { export default class BaseInfo extends Vue {
@Prop({required: false}) private defaultFolderId!:number | undefined;
@PropSync('showBaseInfo', { @PropSync('showBaseInfo', {
type: Boolean, type: Boolean,
required: true, required: true,
...@@ -76,8 +78,14 @@ export default class BaseInfo extends Vue { ...@@ -76,8 +78,14 @@ export default class BaseInfo extends Vue {
private defaultFolderIndex: number = 0; private defaultFolderIndex: number = 0;
private defaultFolderName: string = '未分类文件夹'; private defaultFolderName: string = '未分类文件夹';
private mounted() { private async mounted() {
this.getFolders(); await this.getFolders();
// 如果给组件传递了defaultFolderId,则组件需要显示该id所代表的文件夹。
if(this.defaultFolderId !== undefined){
const folder = this.folderList.find((folder: any) => folder.id === this.defaultFolderId)
this.folder = folder;
}
} }
private async getFolders() { private async getFolders() {
const { results = []} = await this.$api.template.folderList({ const { results = []} = await this.$api.template.folderList({
......
...@@ -78,6 +78,9 @@ export default class ViewTemplate extends Vue { ...@@ -78,6 +78,9 @@ export default class ViewTemplate extends Vue {
handleClickAddTemplate() { handleClickAddTemplate() {
this.$router.push({ this.$router.push({
name: 'Add', name: 'Add',
query: {
folderId: this.folderId.toString()
}
}); });
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment