11<template >
22 <div class =" form-config-container" >
33 <el-form label-position =" top" >
4- <el-collapse v-model =" activeName" accordion >
5- <el-collapse-item title =" 基础设置" name =" base" >
6- <el-form-item label =" 页面标题" >
7- <el-input v-model =" pageData.config.title" ></el-input >
8- </el-form-item >
9- <el-form-item label =" 页面背景色" >
10- <el-color-picker v-model =" pageData.config.backgroundColor" />
11- </el-form-item >
12- <el-form-item label =" 页面背景图片" >
13- <ImgUpload :value.sync =" pageData.config.backgroundImage" />
14- </el-form-item >
15- <el-form-item label =" 页面统计ID" >
16- <el-input type =" number" v-model =" pageData.config.countId" ></el-input >
17- </el-form-item >
18- <el-form-item label =" 主题" v-if =" themes.length>0" >
19- <el-radio-group v-model =" selectTheme" @change =" setTheme" >
20- <el-radio-button v-for =" item in themes" :label =" item.value" :key =" item.value" >{{item.name}}</el-radio-button >
21- </el-radio-group >
22- </el-form-item >
23- </el-collapse-item >
24-
25- <el-collapse-item title =" 主题设置" name =" theme" v-if =" pageData.config.theme" >
26- <el-form-item label =" 图片上传" >
27- <ImgUpload :value.sync =" pageData.config.theme.banner" />
28- </el-form-item >
29- <el-form-item label =" 内容区域宽度" v-if =" pageData.config.theme.hasOwnProperty('contentWidth')" >
30- <el-radio-group v-model =" pageData.config.theme.contentWidth" size =" mini" >
31- <el-radio-button label =" 100%" ></el-radio-button >
32- <el-radio-button label =" 90%" ></el-radio-button >
33- <el-radio-button label =" 80%" ></el-radio-button >
34- <el-radio-button label =" 70%" ></el-radio-button >
35- </el-radio-group >
36- </el-form-item >
37- <el-form-item label =" 内容区域圆角" v-if =" pageData.config.theme.hasOwnProperty('borderRadius')" >
38- <el-switch v-model =" pageData.config.theme.borderRadius" ></el-switch >
39- </el-form-item >
40- <el-form-item label =" 内容区域位置(上 右 下 左 、空格隔开)" v-if =" pageData.config.theme.hasOwnProperty('margin')" >
41- <el-input v-model =" pageData.config.theme.margin" ></el-input >
42- </el-form-item >
43- </el-collapse-item >
44- </el-collapse >
4+ <el-form-item label =" 页面标题" >
5+ <el-input v-model =" pageData.title" ></el-input >
6+ </el-form-item >
7+ <el-form-item label =" 页面背景色" >
8+ <el-color-picker v-model =" pageData.style.backgroundColor" />
9+ </el-form-item >
10+ <el-form-item label =" 页面背景图片" >
11+ <ImgUpload :value.sync =" pageData.style.backgroundImage" />
12+ </el-form-item >
13+ <el-form-item label =" 主题" v-if =" themes.length>0" >
14+ <el-radio-group v-model =" pageData.theme" @change =" setTheme" >
15+ <el-radio-button v-for =" item in themes" :label =" item.value" :key =" item.value" >{{item.name}}</el-radio-button >
16+ </el-radio-group >
17+ </el-form-item >
18+ <el-form-item label =" 页面统计代码" >
19+ <el-input type =" textarea" :rows =" 4" placeholder =" 请输入统计代码" v-model =" pageData.statsCode" ></el-input >
20+ </el-form-item >
4521 </el-form >
4622 </div >
4723</template >
@@ -52,27 +28,18 @@ import pageConfigData from '@/assets/js/page-config.js'
5228export default {
5329 data () {
5430 return {
55- activeName: ' base' ,
5631 themes: pageConfigData .themes ,
5732 }
5833 },
5934 computed: {
60- selectTheme: {
61- get () {
62- return this .$store .state .common .selectTheme
63- },
64- set (val ) {
65- this .$store .commit (' setSelectTheme' , val)
66- }
67- },
6835 ... mapState ({
6936 pageData : state => state .common .pageData
7037 })
7138 },
7239 methods: {
7340 setTheme (val ) {
74- this . pageData . config . theme = this .themes .find (item => val === item . value );
75- this .pageData . config . backgroundColor = this .pageData . config . theme . backgroundColor ;
41+ let i = this .themes .findIndex (item => item . value === val );
42+ this .$store . commit ( " setPageData " , this .$util . deepClone ( this . themes [i]. pageData )) ;
7643 }
7744 }
7845}
0 commit comments