|
@@ -8,10 +8,11 @@ const state = {
|
|
editWebsiteId: "",//当前编辑网站的id
|
|
editWebsiteId: "",//当前编辑网站的id
|
|
stepStatus: true,//是否显示现在进行到哪一步:true=显示 false=不显示
|
|
stepStatus: true,//是否显示现在进行到哪一步:true=显示 false=不显示
|
|
//0.全局配置 end------------------------------------------------------------>
|
|
//0.全局配置 end------------------------------------------------------------>
|
|
- //1.页面数据 start------------------------------------------------------------>
|
|
|
|
|
|
+
|
|
|
|
+ //1.画布数据 start------------------------------------------------------------>
|
|
pageStatus:1,//当前编辑哪个页面 1=首页 2=分类页 3=列表页 4=详情页 5=搜索页 6=自定义列表页 7=自定义详情页
|
|
pageStatus:1,//当前编辑哪个页面 1=首页 2=分类页 3=列表页 4=详情页 5=搜索页 6=自定义列表页 7=自定义详情页
|
|
menuType:1, //当前菜单显示板块还是组件 1=板块 2=组件
|
|
menuType:1, //当前菜单显示板块还是组件 1=板块 2=组件
|
|
- pageData: { //准备提交到后台的数据
|
|
|
|
|
|
+ pageData: { //自助建站拖拽板块的数据,注意,这里并不是提交到后台的数据
|
|
index:[
|
|
index:[
|
|
|
|
|
|
],//首页
|
|
],//首页
|
|
@@ -22,14 +23,14 @@ const state = {
|
|
aloneList:[],//自定义列表页
|
|
aloneList:[],//自定义列表页
|
|
aloneArticle:[],//自定义详情页
|
|
aloneArticle:[],//自定义详情页
|
|
},
|
|
},
|
|
- editWindowStatus:false,//编辑弹出框是否显示
|
|
|
|
// layout: [
|
|
// layout: [
|
|
// // i = id
|
|
// // i = id
|
|
// // w = 最大宽度是12
|
|
// // w = 最大宽度是12
|
|
// // { i: "0", x: 0, y: 0, w: 12, h: 2, content:""},
|
|
// // { i: "0", x: 0, y: 0, w: 12, h: 2, content:""},
|
|
// // { i: "1", x: 0, y: 0, w: 12, h: 2, content:""},
|
|
// // { i: "1", x: 0, y: 0, w: 12, h: 2, content:""},
|
|
// ],
|
|
// ],
|
|
- //1.页面数据 end------------------------------------------------------------>
|
|
|
|
|
|
+ //1.画布数据 end------------------------------------------------------------>
|
|
|
|
+
|
|
//2.站点数据 start------------------------------------------------------------>
|
|
//2.站点数据 start------------------------------------------------------------>
|
|
webSiteInfo:"",//网站信息
|
|
webSiteInfo:"",//网站信息
|
|
webSiteMenu:"",//网站包含的导航池
|
|
webSiteMenu:"",//网站包含的导航池
|
|
@@ -40,6 +41,39 @@ const state = {
|
|
},
|
|
},
|
|
departmentList:"",//职能部门
|
|
departmentList:"",//职能部门
|
|
//2.站点数据 end------------------------------------------------------------>
|
|
//2.站点数据 end------------------------------------------------------------>
|
|
|
|
+
|
|
|
|
+ //3.网站数据 start------------------------------------------------------------>
|
|
|
|
+ editWindowStatus:false,//编辑组件弹出框是否显示
|
|
|
|
+ editComponentWindowStatus:false,//选择组件样式弹出框是否显示
|
|
|
|
+ editWindowTitle:"",//编辑弹出框标题
|
|
|
|
+ editSectorId:0,//当前正在编辑的板块id
|
|
|
|
+ editComponentSort:0,//当前正在编辑的组件id
|
|
|
|
+ editComponentType:0,//当前正在编辑的组件类型
|
|
|
|
+ editComponentSize:0,//当前组件展示的条数
|
|
|
|
+ editComponentStyle:0,//当前编辑的组件样式
|
|
|
|
+
|
|
|
|
+ webSiteData:{
|
|
|
|
+ //1.base网站基本信息
|
|
|
|
+ base:{
|
|
|
|
+ websiteId:1,//网站id
|
|
|
|
+ },
|
|
|
|
+ //2.style信息
|
|
|
|
+ style:{
|
|
|
|
+ styleId:1,//风格id
|
|
|
|
+ },
|
|
|
|
+ //3.板块信息 header,menu,footer 是页面自带的无需构建
|
|
|
|
+ template:{
|
|
|
|
+ //index = 首页 class=分类页 list=列表页 article=详情页 search=搜索页 aloneList=自定义列表页 aloneArticle=自定义详情页
|
|
|
|
+ index:[],
|
|
|
|
+ class:[],//分类页
|
|
|
|
+ list:[],//列表页
|
|
|
|
+ article:[],//详情页
|
|
|
|
+ search:[],//搜索页
|
|
|
|
+ aloneList:[],//自定义列表页
|
|
|
|
+ aloneArticle:[],//自定义详情页
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //3.网站数据 end------------------------------------------------------------>
|
|
}
|
|
}
|
|
|
|
|
|
const mutations = {
|
|
const mutations = {
|
|
@@ -59,23 +93,67 @@ const mutations = {
|
|
setPageStatus(state,num){
|
|
setPageStatus(state,num){
|
|
state.pageStatus = num;
|
|
state.pageStatus = num;
|
|
},
|
|
},
|
|
|
|
+ //打开编辑组件弹出框
|
|
|
|
+ setEditWindowStatus(state,data){
|
|
|
|
+ console.log(data);
|
|
|
|
+ state.editWindowStatus = true;
|
|
|
|
+ state.editSectorId = data.id;
|
|
|
|
+ state.editComponentSort = data.sort;
|
|
|
|
+ state.editComponentType = data.type;
|
|
|
|
+ state.editComponentSize = data.size;
|
|
|
|
+ },
|
|
|
|
+ //关闭编辑组件弹出框
|
|
|
|
+ closeEditWindowStatus(state){
|
|
|
|
+ state.editWindowStatus = false;
|
|
|
|
+ state.editSectorId = "";
|
|
|
|
+ state.editComponentSort = "";
|
|
|
|
+ state.editComponentType = "";
|
|
|
|
+ state.editComponentSize = "";
|
|
|
|
+ },
|
|
|
|
+ //打开选择组件样式弹出框
|
|
|
|
+ setComponentStyleStatus(state,data){
|
|
|
|
+ state.editComponentWindowStatus = true;
|
|
|
|
+ state.editSectorId = data.id;
|
|
|
|
+ state.editComponentSort = data.sort;
|
|
|
|
+ state.editComponentType = data.type;
|
|
|
|
+ state.editComponentStyle = data.style;
|
|
|
|
+ },
|
|
|
|
+ //关闭选择组件样式弹出框
|
|
|
|
+ closeComponentStyleStatus(state){
|
|
|
|
+ state.editComponentWindowStatus = false;
|
|
|
|
+ state.editSectorId = "";
|
|
|
|
+ state.editComponentSort = "";
|
|
|
|
+ state.editComponentType = "";
|
|
|
|
+ state.editComponentStyle = "";
|
|
|
|
+ },
|
|
//0.全局配置 start------------------------------------------------------------>
|
|
//0.全局配置 start------------------------------------------------------------>
|
|
//1.配置模块 start------------------------------------------------------------>
|
|
//1.配置模块 start------------------------------------------------------------>
|
|
//添加首页板块
|
|
//添加首页板块
|
|
addIndexModule(state,data){
|
|
addIndexModule(state,data){
|
|
- //data.type 组件名称 data.h 模块高度
|
|
|
|
- // 计算当前布局的最大 y 值
|
|
|
|
- const maxY = Math.max(...state.pageData.index.map(item => item.y), 0);
|
|
|
|
- state.pageData.index.push({
|
|
|
|
- i: state.pageData.index.length,
|
|
|
|
- x: 0,
|
|
|
|
- y: maxY + 1,
|
|
|
|
- w: 12,
|
|
|
|
- h: data.h,
|
|
|
|
- type: data.type,
|
|
|
|
- content:""
|
|
|
|
- });
|
|
|
|
- console.log(state.pageData.index);
|
|
|
|
|
|
+ //判断当前一共有多少个模块最多能添加10个
|
|
|
|
+ if(state.pageData.index.length >= 10){
|
|
|
|
+ Message.error('最多只能添加10个模块!');
|
|
|
|
+ return;
|
|
|
|
+ }else{
|
|
|
|
+ //data.type 组件名称 data.h 模块高度
|
|
|
|
+ //计算当前布局的最大 y 值
|
|
|
|
+ const maxY = Math.max(...state.pageData.index.map(item => item.y), 0);
|
|
|
|
+ //添加板块id
|
|
|
|
+ state.pageData.index.push({
|
|
|
|
+ i: state.pageData.index.length,
|
|
|
|
+ x: 0,
|
|
|
|
+ y: maxY + 1,
|
|
|
|
+ w: 12,
|
|
|
|
+ h: data.h,
|
|
|
|
+ type: data.type,
|
|
|
|
+ content:"",
|
|
|
|
+ sectorData:data.jsonData
|
|
|
|
+ });
|
|
|
|
+ console.log("当前添加的板块id:" + state.pageData.index.length);
|
|
|
|
+ data.jsonData.sectorId = state.pageData.index.length;
|
|
|
|
+ console.log("添加完毕后的数据:");
|
|
|
|
+ console.log(state.pageData.index);
|
|
|
|
+ }
|
|
},
|
|
},
|
|
//删除首页板块
|
|
//删除首页板块
|
|
deleteIndexModule(state,data){
|
|
deleteIndexModule(state,data){
|
|
@@ -85,6 +163,8 @@ const mutations = {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Message.success('模块已删除!');
|
|
Message.success('模块已删除!');
|
|
|
|
+ console.log("删除后的数据结构:");
|
|
|
|
+ console.log(state.pageData.index);
|
|
},
|
|
},
|
|
//修改首页板块高度
|
|
//修改首页板块高度
|
|
setIndexModuleHeight(state,data){
|
|
setIndexModuleHeight(state,data){
|
|
@@ -207,7 +287,38 @@ const mutations = {
|
|
|
|
|
|
// }
|
|
// }
|
|
// },
|
|
// },
|
|
|
|
+ //格式化模板信息
|
|
|
|
+ formatTemplateInfo(state, data) {
|
|
|
|
+ //console.log(data.type);
|
|
|
|
+ //按照data.data.y的大小排序
|
|
|
|
+ data.data.sort((a, b) => a.y - b.y);
|
|
|
|
+ console.log(data,data);
|
|
|
|
+ let websiteData = [];
|
|
|
|
+ //获取板块的sort
|
|
|
|
+ for (let index in data.data) {
|
|
|
|
+ console.log(data.data[index].sectorData);
|
|
|
|
+ data.data[index].sectorData.sort = Number(index)+1;
|
|
|
|
+ if(data.type=="index"){
|
|
|
|
+ //不要把数据直接保存到state.webSiteData.template中,否则无法删除
|
|
|
|
+ websiteData.push(data.data[index].sectorData)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //保存到对应的页面json中
|
|
|
|
+ if(data.type=="index"){
|
|
|
|
+ state.webSiteData.template.index = websiteData;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ //保存模板
|
|
|
|
+ saveTemplate(state) {
|
|
|
|
+ //调用mutations中的方法无需使用$store
|
|
|
|
+ //格式化index的信息
|
|
|
|
+ this.commit('template/formatTemplateInfo',{data:state.pageData.index,type:"index"});
|
|
|
|
+
|
|
|
|
+ console.log(state.webSiteData);
|
|
|
|
+ },
|
|
//1.配置模块 end------------------------------------------------------------>
|
|
//1.配置模块 end------------------------------------------------------------>
|
|
|
|
+
|
|
//2.获取站点信息 start------------------------------------------------------------>
|
|
//2.获取站点信息 start------------------------------------------------------------>
|
|
//获取站点详情
|
|
//获取站点详情
|
|
setWebsiteInfo(state,data){
|
|
setWebsiteInfo(state,data){
|