소스 검색

构建json

构建json
Sean 5 달 전
부모
커밋
a6375f360b
4개의 변경된 파일85개의 추가작업 그리고 55개의 파일을 삭제
  1. 27 20
      src/store/modules/template.js
  2. 3 3
      src/views/template/page/pageIndex.vue
  3. 54 31
      src/views/template/public/editWindow.vue
  4. 1 1
      src/views/template/style/1/bannerSector.vue

+ 27 - 20
src/store/modules/template.js

@@ -45,41 +45,48 @@ const state = {
   //2.站点数据 end------------------------------------------------------------>
 
   //3.网站数据 start------------------------------------------------------------>
-  webData:{
+  webSiteData:{
     //1.base网站基本信息
     base:{
-      websiteId:"",//网站id 
+      websiteId:1,//网站id
     },
     //2.style信息
     style:{
-      styleId:"",//风格id
+      styleId:1,//风格id
     },
     //3.板块信息 header,menu,footer 是页面自带的无需构建
     template:[  
-      {
+      { //index = 首页 class=分类页 list=列表页 article=详情页 search=搜索页 aloneList=自定义列表页 aloneArticle=自定义详情页
         index:[{
-          sectorName:"bannerSector",
-          sectorId:1,
-          sort:1,
+          sectorName:"bannerName",//板块名称
+          sectorId:1,//板块id
+          sort:1,//板块排序
           componentList:[
             {
-              component_type:1,
-              component_name:"mainTitle",
-              sort:1,
-              componentData:{
-                category_id:1,
-                pageSize:1,
-                listType:[
-                  "title",
-                  "created_time",
-                  "author",
-                  "imgUrl",
-                  //...
+              component_type:1,//组件类型 1=新闻(单个) 2=新闻(多个) 3=广告 4=友情链接 5=底部导航 6=静态html组件
+              component_name:"componentName",//组件名称
+              sort:1,//组件排序
+              componentData:{//该组件请求的数据
+                category_id:[[5,11],[6,24,45]],//请求的导航id 如果上面的component_type是1,这里只会有1个[[1]],如果是2,这里就会有多个
+                page:1,//请求第几页
+                pageSize:1,//请求的条数
+                listType:[//请求的数据应该包含哪些字段
+                  "title",//标题
+                  "created_time",//创建时间
+                  "author",//作者
+                  "imgUrl",//缩略图片
+                  "introduce",//描述
                 ]
               }
             }
           ]
-        }]
+        }],
+        class:[],//分类页
+        list:[],//列表页
+        article:[],//详情页
+        search:[],//搜索页
+        aloneList:[],//自定义列表页
+        aloneArticle:[],//自定义详情页
       }
     ]
   }

+ 3 - 3
src/views/template/page/pageIndex.vue

@@ -15,9 +15,9 @@
         <div class="grid-item-content">
           <div class="grid-tools-menu">
             <!-- <span><i class="el-icon-setting"></i></span> -->
-            <span><i class="el-icon-upload2" @click="moveIndexModule(item.i,'up')"></i></span>
-            <span><i class="el-icon-download" @click="moveIndexModule(item.i,'down')"></i></span>
-            <span><i class="el-icon-delete" @click="deleteIndexModule(item.i)"></i></span>
+            <span @click="moveIndexModule(item.i,'up')"><i class="el-icon-upload2"></i></span>
+            <span @click="moveIndexModule(item.i,'down')"><i class="el-icon-download"></i></span>
+            <span @click="deleteIndexModule(item.i)"><i class="el-icon-delete"></i></span>
           </div>
           <!-- 页头板块 -->
           <!-- <div v-if="item.type == 'headSector'" class="moduleBox">

+ 54 - 31
src/views/template/public/editWindow.vue

@@ -1,25 +1,34 @@
 <template>
   <div class="editWindowBox">
     <div class="editWindowBoxContent">
-      <el-form :model="form" ref="form" :rules="formRules" autocomplete="off" label-position="left">
-        <el-form-item label="网站导航:" :label-width="formLabelWidth" class="custom-align-right">
-          <el-cascader :key="parentKey" v-model="form.pid_arr" placeholder="请选择网站导航" :props="parentData" filterable clearable></el-cascader>
-        </el-form-item>
-        <el-form-item label="请求条数:" :label-width="formLabelWidth" class="custom-align-right">
-          <el-select v-model="form.pageSize" placeholder="请选择">
-            <el-option
-              v-for="item in form.sizeData"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
+
+      <!--普通新闻类型-->
+      <div>
+        <el-form :model="form" ref="form" :rules="formRules" autocomplete="off" label-position="left">
+          <el-form-item label="网站导航:" :label-width="formLabelWidth" prop="pid_arr" class="custom-align-right">
+            <el-cascader :key="parentKey" v-model="form.type1data.pid_arr" placeholder="请选择网站导航" :props="parentData" filterable clearable></el-cascader>
+          </el-form-item>
+          <el-form-item label="显示条数:" :label-width="formLabelWidth" class="custom-align-right">
+            <el-input v-model="form.type1data.pageSize" placeholder="请输入请求的条数" disabled/>
+          </el-form-item>
+        </el-form>
+      </div>
+      <!--tabs类型-->
+      <!-- <div>
+        <el-form :model="form" ref="form" :rules="formRules" autocomplete="off" label-position="left">
+          <el-form-item label="网站导航:" :label-width="formLabelWidth" class="custom-align-right">
+            <el-cascader :key="parentKey" v-model="form.pid_arr" placeholder="请选择网站导航" :props="parentData" filterable clearable></el-cascader>
+          </el-form-item>
+          <el-form-item label="显示条数:" :label-width="formLabelWidth" class="custom-align-right">
+            <el-input v-model="form.pageSize" placeholder="请输入请求的条数" disabled/>
+          </el-form-item>
+        </el-form>
+      </div> -->
+
     </div>
     <div class="editWindowBoxFooter">
       <el-button type="info" @click="closeEditWindow">取消</el-button>
-      <el-button type="primary">确定</el-button>
+      <el-button type="primary" @click="submitData">确定</el-button>
     </div>
   </div>
 </template>
@@ -27,29 +36,34 @@
 <script>
 export default {
   props: {
-      
+    editType:{
+      type:String,
+      default:""
+    },
   },
   data() {
     let self = this;
     const validatePid = (rule,value,callback) => {
-      if (value.length === 0) {
-          callback(new Error('必须选择一个导航!'))
-      } else {
-          callback()
-      }
+      console.log(value)
+      // console.log(value.length)
+      // if (value.length === 0) {
+      //   callback(new Error('必须选择一个导航!'))
+      // } else {
+      //   callback()
+      // }
     }
     return {
       formLabelWidth:"120px",
+      //新闻类型
       form:{
-        pid_arr:[],
-        pageSize:1,
-        sizeData:[
-          {value:1,label:"1"},
-          {value:2,label:"2"},
-          {value:3,label:"3"},
-          {value:4,label:"4"},
-          {value:5,label:"5"},
-        ]
+        type1data:{
+          pid_arr:[],
+          pageSize:""
+        },
+        type2data:{
+          pid_arr:[],
+          pageSize:""
+        }
       },
       formRules:{
         pid_arr: [{type:'array',required:true,trigger:'change',message:'必须选择一个导航!',validator:validatePid}],
@@ -89,6 +103,15 @@ export default {
   methods: {
     closeEditWindow(){
       this.$store.commit('template/closeEditWindowStatus');
+    },
+    submitData(){
+      console.log(this.form.type1data.pid_arr)
+      // this.$refs.form.validate(valid => {
+      //   if (valid) {
+      //     console.log("123")
+         
+      //   }
+      // })
     }
   },
   mounted() {

+ 1 - 1
src/views/template/style/1/bannerSector.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="bannerBox">
     <div class="itemTopBox">
-      <mainTitle :sectorName="sectorName " :sort="1"/>
+      <mainTitle />
     </div>
     <div class="itemBottomBox">
       <div class="bannerLayerBox">