|
@@ -1,434 +1,239 @@
|
|
|
<template>
|
|
|
- <div class="editWindowBox">
|
|
|
- <div class="editWindowBoxContent">
|
|
|
- <!--组件类型 1=新闻(单个) 2=新闻(多个) 3=广告 4=友情链接 5=底部导航 6=静态html组件 7=文字 8=评论-->
|
|
|
- <!--开发助手-->
|
|
|
- <div class="testAssistant">
|
|
|
- <div class="testAssistantTitle">
|
|
|
- 代码助手:
|
|
|
- </div>
|
|
|
- <div class="testAssistantContent">
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>当前板块id:</div>
|
|
|
- <div>{{this.$store.state.template.editSectorId}}</div>
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>当前板块所在的页面:</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 1">首页</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 2">分类页</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 3">列表页</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 4">详情页</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 5">搜索页</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 6">底部列表页</div>
|
|
|
- <div v-if="this.$store.state.template.pageStatus == 7">底部详情页</div>
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>当前组件在此板块中的位置:</div>
|
|
|
- <div>{{this.$store.state.template.editComponentSort}}</div>
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>当前组件在此画布中的位置:</div>
|
|
|
- <div>{{this.$store.state.template.editSectorY}}</div>
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>当前板块在Json数据中的位置:</div>
|
|
|
- <div>{{this.$store.state.template.editDataSort}}</div>
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>当前组件的数据类型:</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 1">新闻列表</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 2">广告</div>
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 3">新闻选项卡</div> -->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 4">友情链接</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 6">静态html组件</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 7">文本</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 8">评论组件</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 9">页面必备组件</div> -->
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>展示条数:</div>
|
|
|
- <div>{{this.$store.state.template.editComponentSize}}</div>
|
|
|
- </div>
|
|
|
- <div class="testAssistantContentItem">
|
|
|
- <div>回显导航池:</div>
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 1||this.$store.state.template.editComponentType == 2">
|
|
|
- <span v-if="this.$store.state.template.componentViewData.pid_arr.length == 0">暂未选择导航</span>
|
|
|
- <span v-else>{{this.$store.state.template.componentViewData.pid_arr}}</span>
|
|
|
+ <div class="editWindowBox">
|
|
|
+ <div class="editWindowBoxContent">
|
|
|
+ <!--组件类型 1=新闻 2=评论-->
|
|
|
+ <!--1.新闻-->
|
|
|
+ <div v-if="this.$store.state.template.editComponentType == 1">
|
|
|
+ <el-form :model="form.type1data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
+ <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
+ <el-input value="新闻列表" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="网站导航:" :label-width="formLabelWidth" prop="pid_arr" class="custom-align-right">
|
|
|
+ <el-select v-model="form.type1data.pid_arr" filterable placeholder="请选择导航.." @change="changeNav">
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="文字新闻条数:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
+ <el-input v-model="this.$store.state.template.editComponentSize" placeholder="请输入请求的条数" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="图片新闻条数:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
+ <el-input v-model="this.$store.state.template.editComponentSizeImg" placeholder="请输入请求的条数" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <!--2.广告-->
|
|
|
+ <div v-if="this.$store.state.template.editComponentType == 2">
|
|
|
+ <el-form :model="form.type3data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
+ <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
+ <el-input value="广告" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="广告位名称:" :label-width="formLabelWidth" prop="adName" class="custom-align-right">
|
|
|
+ <el-input v-model="form.type3data.adName" placeholder="请输入广告位名称"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
- <div v-else>无需回显</div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!--1.普通新闻类型-->
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 1">
|
|
|
- <el-form :model="form.type1data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="新闻列表" disabled/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="网站导航:" :label-width="formLabelWidth" prop="pid_arr" class="custom-align-right">
|
|
|
- <el-cascader :key="oneParentKey" v-model="form.type1data.pid_arr" placeholder="请选择网站导航" :props="oneParentData" filterable clearable></el-cascader>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="显示条数:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input v-model="this.$store.state.template.editComponentSize" placeholder="请输入请求的条数" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <!--2.tabs类型-->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 2">
|
|
|
- <el-form :model="form.type2data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="新闻选项卡" disabled/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="网站导航:" :label-width="formLabelWidth" prop="pid_arr" class="custom-align-right">
|
|
|
- <el-select v-model="form.type2data.pid_arr" multiple placeholder="请选择">
|
|
|
- <el-option
|
|
|
- v-for="item in this.$store.state.template.editWebsiteCategory"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="显示条数:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input v-model="this.$store.state.template.editComponentSize" placeholder="请输入请求的条数" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div> -->
|
|
|
- <!--3.广告-->
|
|
|
- <div v-if="this.$store.state.template.editComponentType == 2">
|
|
|
- <el-form :model="form.type3data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="广告" disabled/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="广告位名称:" :label-width="formLabelWidth" prop="adName" class="custom-align-right">
|
|
|
- <el-input v-model="form.type3data.adName" placeholder="请输入广告位名称"/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <!--4.友情链接-->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 4">
|
|
|
- <el-form :model="form.type7data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="友情链接暂不支持编辑" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div> -->
|
|
|
- <!--6.静态-->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 6">
|
|
|
- <el-form :model="form.type7data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="静态组件暂不支持编辑" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div> -->
|
|
|
- <!--7.文字-->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 7">
|
|
|
- <el-form :model="form.type7data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="文本" disabled/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="标题名称:" :label-width="formLabelWidth" prop="titleName" class="custom-align-right">
|
|
|
- <el-input v-model="form.type7data.titleName" placeholder="请输入标题名称"/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div> -->
|
|
|
- <!--8.评论组件-->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 8">
|
|
|
- <el-form :model="form.type7data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="评论组件暂不支持编辑" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div> -->
|
|
|
- <!--9.页面必备组件-->
|
|
|
- <!-- <div v-if="this.$store.state.template.editComponentType == 9">
|
|
|
- <el-form :model="form.type7data" ref="form" :rules="formRules" autocomplete="off" label-position="left">
|
|
|
- <el-form-item label="组件类型:" :label-width="formLabelWidth" class="custom-align-right">
|
|
|
- <el-input value="页面必备组件不支持编辑" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div> -->
|
|
|
- </div>
|
|
|
- <div class="editWindowBoxFooter">
|
|
|
- <el-button type="info" @click="closeEditWindow">取消</el-button>
|
|
|
- <el-button type="primary" @click="submitData">确定</el-button>
|
|
|
+ <div class="editWindowBoxFooter">
|
|
|
+ <el-button type="info" @click="closeEditWindow">取消</el-button>
|
|
|
+ <el-button type="primary" @click="submitData">确定</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import Vue from 'vue'; // 导入 Vue
|
|
|
//监听vuex中的值
|
|
|
export default {
|
|
|
- props: {
|
|
|
+ props: {
|
|
|
|
|
|
- },
|
|
|
- data() {
|
|
|
- let self = this;
|
|
|
- const validatePid = (rule,value,callback) => {
|
|
|
- console.log(value.length)
|
|
|
- if (value.length === 0) {
|
|
|
- callback(new Error('必须选择一个导航!'))
|
|
|
- } else {
|
|
|
- callback()
|
|
|
- }
|
|
|
- }
|
|
|
- const validateEmpty = (rule,value,callback) => {
|
|
|
- if (!value || value.trim() === "") {
|
|
|
- callback(new Error('该项不能为空!'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- return {
|
|
|
- formLabelWidth:"120px",
|
|
|
- form:{
|
|
|
- //单导航新闻
|
|
|
- type1data:{
|
|
|
- pid_arr:[],
|
|
|
- pageSize:""
|
|
|
- },
|
|
|
- //tabs多导航新闻
|
|
|
- type2data:{
|
|
|
- pid_arr:[],
|
|
|
- pageSize:""
|
|
|
- },
|
|
|
- //广告
|
|
|
- type3data:{
|
|
|
- adName:""
|
|
|
- },
|
|
|
- //文字
|
|
|
- type7data:{
|
|
|
- titleName:""
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ const validatePid = (rule,value,callback) => {
|
|
|
+ console.log(value.length)
|
|
|
+ if (value.length === 0) {
|
|
|
+ callback(new Error('必须选择一个导航!'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
}
|
|
|
- },
|
|
|
- formRules:{
|
|
|
- pid_arr: [{type:'array',required:true,trigger:'blur',message:'必须选择一个导航!',validator:validatePid}],
|
|
|
- adName: [{required:true,trigger:'blur',message:'',validator:validateEmpty}],
|
|
|
- titleName: [{required:true,trigger:'blur',message:'',validator:validateEmpty}]
|
|
|
- },
|
|
|
- //获取单个导航id start---------------------------------------->
|
|
|
- oneParentKey:0,
|
|
|
- oneParentData: {
|
|
|
- checkStrictly: true,
|
|
|
- lazy: true,
|
|
|
- async lazyLoad (node, resolve) {
|
|
|
- const { level, data } = node;
|
|
|
- if (data && data.children && data.children.length !== 0) {
|
|
|
- return resolve(node)
|
|
|
- }
|
|
|
- console.log(level)
|
|
|
- let parentId = level == 0 ? 0 : data.value
|
|
|
- let parames = {
|
|
|
- 'pid':parentId
|
|
|
- }
|
|
|
- self.$store.dispatch('pool/categoryList',parames).then(res=> {
|
|
|
- if (res.data) {
|
|
|
- const nodes = res.data.map(item => ({
|
|
|
- value: item.id,
|
|
|
- label: item.name,
|
|
|
- leaf: level >= 3,
|
|
|
- children: []
|
|
|
- }))
|
|
|
- resolve(nodes)
|
|
|
+ const validateEmpty = (rule,value,callback) => {
|
|
|
+ if (!value || value.trim() === "") {
|
|
|
+ callback(new Error('该项不能为空!'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
}
|
|
|
- })
|
|
|
}
|
|
|
- },
|
|
|
- //获取单个导航id end---------------------------------------->
|
|
|
- //获取多个导航id start---------------------------------------->
|
|
|
- moreParen:[],
|
|
|
- // base 0.0.1 无法回显多选导航池
|
|
|
- // 这里不能使用级联选择器,因为这里只能选择同级导航,你选了不同级的导航后端就乱套了
|
|
|
- // moreParentData: {
|
|
|
- // checkStrictly: true,
|
|
|
- // multiple: true,
|
|
|
- // lazy: true,
|
|
|
- // async lazyLoad (node, resolve) {
|
|
|
- // const { level, data } = node;
|
|
|
- // if (data && data.children && data.children.length !== 0) {
|
|
|
- // return resolve(node)
|
|
|
- // }
|
|
|
- // console.log(level)
|
|
|
- // let parentId = level == 0 ? 0 : data.value
|
|
|
- // let parames = {
|
|
|
- // 'pid':parentId
|
|
|
- // }
|
|
|
- // self.$store.dispatch('pool/categoryList',parames).then(res=> {
|
|
|
- // if (res.data) {
|
|
|
- // const nodes = res.data.map(item => ({
|
|
|
- // value: item.id,
|
|
|
- // label: item.name,
|
|
|
- // leaf: level >= 3,
|
|
|
- // children: []
|
|
|
- // }))
|
|
|
- // resolve(nodes)
|
|
|
- // }
|
|
|
- // })
|
|
|
- // }
|
|
|
- // },
|
|
|
- //获取导航id end---------------------------------------->
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- // 映射 Vuex 的 state 到计算属性
|
|
|
- // 监听导航池变化用于回显
|
|
|
- getPid() {
|
|
|
- return this.$store.state.template.componentViewData.pid_arr;
|
|
|
- },
|
|
|
- getadName(){
|
|
|
- return this.$store.state.template.componentViewData.adName;
|
|
|
- },
|
|
|
- gettitleName(){
|
|
|
- return this.$store.state.template.componentViewData.titleName;
|
|
|
- }
|
|
|
- },
|
|
|
- watch: {
|
|
|
- getPid(newVal, oldVal) {
|
|
|
- console.log("导航池改变了!")
|
|
|
- console.log(newVal, oldVal)
|
|
|
- // 回显导航池 判断一下是单导航还是多导航
|
|
|
- if(this.$store.state.template.editComponentType==1){
|
|
|
- //base0.0.1 必须先赋值再创建nodes 否则可能无法回显
|
|
|
- this.form.type1data.pid_arr = newVal;
|
|
|
- this.loadCascaderPath(newVal);
|
|
|
- }
|
|
|
- if(this.$store.state.template.editComponentType==2){
|
|
|
- this.form.type2data.pid_arr = newVal;
|
|
|
- }
|
|
|
- },
|
|
|
- getadName(newVal, oldVal) {
|
|
|
- console.log("广告文字改变了!")
|
|
|
- console.log(newVal, oldVal)
|
|
|
- this.form.type3data.adName = newVal;
|
|
|
- },
|
|
|
- gettitleName(newVal, oldVal) {
|
|
|
- console.log("标题文字改变了!")
|
|
|
- console.log(newVal, oldVal)
|
|
|
- this.form.type7data.titleName = newVal;
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- closeEditWindow(){
|
|
|
- this.$store.commit('template/closeEditWindowStatus');
|
|
|
- },
|
|
|
- submitData(){
|
|
|
- //验证表单
|
|
|
- this.$refs.form.validate(valid => {
|
|
|
- //构建提交的数据
|
|
|
- let data = {
|
|
|
- id:this.$store.state.template.editSectorId,//组件id
|
|
|
- sort:this.$store.state.template.editComponentSort,//组件位置
|
|
|
- dataSort:this.$store.state.template.editDataSort,//数据位置
|
|
|
- type:this.$store.state.template.editComponentType,//组件类型
|
|
|
- data:""//提交的数据
|
|
|
+ return {
|
|
|
+ formLabelWidth:"120px",
|
|
|
+ form:{
|
|
|
+ //单导航新闻
|
|
|
+ type1data:{
|
|
|
+ pid_arr:"",
|
|
|
+ name:"",
|
|
|
+ },
|
|
|
+ //广告
|
|
|
+ type3data:{
|
|
|
+ adName:""
|
|
|
+ },
|
|
|
+ },
|
|
|
+ formRules:{
|
|
|
+ pid_arr: [{type:'array',required:true,trigger:'blur',message:'必须选择一个导航!',validator:validatePid}],
|
|
|
+ adName: [{required:true,trigger:'blur',message:'',validator:validateEmpty}],
|
|
|
+ },
|
|
|
+ options:[],//网站导航
|
|
|
}
|
|
|
- if (valid) {
|
|
|
- //判断当前提交的数据类型
|
|
|
- //1=普通新闻 2=tabs新闻选项卡 3=广告 4=友情链接 6=静态组件 7=文本 8=评论
|
|
|
- if(this.$store.state.template.editComponentType == 1){
|
|
|
- data.data = this.form.type1data;
|
|
|
- }
|
|
|
- //2=tabs新闻选项卡
|
|
|
- if(this.$store.state.template.editComponentType == 2){
|
|
|
- data.data = this.form.type2data;
|
|
|
- }
|
|
|
- //3=广告
|
|
|
- if(this.$store.state.template.editComponentType == 3){
|
|
|
- data.data = this.form.type3data;
|
|
|
- }
|
|
|
- //7=文本
|
|
|
- if(this.$store.state.template.editComponentType == 7){
|
|
|
- data.data = this.form.type7data;
|
|
|
- }
|
|
|
- //第二步:提交数据
|
|
|
- this.$store.commit('template/saveComponentData',data);
|
|
|
- //第三步:关闭编辑窗口
|
|
|
- this.$store.commit('template/closeEditWindowStatus');
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ // 映射 Vuex 的 state 到计算属性
|
|
|
+ // 监听导航池变化用于回显
|
|
|
+ getPid() {
|
|
|
+ return this.$store.state.template.componentViewData.pid_arr;
|
|
|
+ },
|
|
|
+ getadName(){
|
|
|
+ return this.$store.state.template.componentViewData.adName;
|
|
|
+ },
|
|
|
+ gettitleName(){
|
|
|
+ return this.$store.state.template.componentViewData.titleName;
|
|
|
}
|
|
|
- })
|
|
|
},
|
|
|
- //回显级联选择器
|
|
|
- async loadCascaderPath(path, type) {
|
|
|
- this.oneParentKey+=1;
|
|
|
- // 如果是单选类型,path 是普通数组
|
|
|
- for (let i = 0; i < path.length; i++) {
|
|
|
- const parentId = path[i - 1] || 0; // 获取当前层级的父级ID
|
|
|
- const level = i; // 当前层级的索引
|
|
|
- await this.$store.dispatch('pool/categoryList',{pid:parentId}).then((res)=>{
|
|
|
- const nodes = res.data.map(item => ({
|
|
|
- value: item.id,
|
|
|
- label: item.name,
|
|
|
- leaf: level >= 4,
|
|
|
- checked: true
|
|
|
- }));
|
|
|
- // 将数据传递到 resolve,通知 cascader 这一层的数据加载完毕
|
|
|
- if (level === path.length - 1) {
|
|
|
- this.$nextTick(() => {
|
|
|
- this.form.type1data.pid_arr = path;
|
|
|
+ watch: {
|
|
|
+ getPid(newVal, oldVal) {
|
|
|
+ console.log("导航池改变了!")
|
|
|
+ console.log(newVal, oldVal)
|
|
|
+ // 回显导航池 判断一下是单导航还是多导航
|
|
|
+ if(this.$store.state.template.editComponentType==1){
|
|
|
+ //base0.0.1 必须先赋值再创建nodes 否则可能无法回显
|
|
|
+ this.form.type1data.pid_arr = newVal;
|
|
|
+ }
|
|
|
+ if(this.$store.state.template.editComponentType==2){
|
|
|
+ this.form.type2data.pid_arr = newVal;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getadName(newVal, oldVal) {
|
|
|
+ console.log("广告文字改变了!")
|
|
|
+ console.log(newVal, oldVal)
|
|
|
+ this.form.type3data.adName = newVal;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ closeEditWindow(){
|
|
|
+ this.$store.commit('template/closeEditWindowStatus');
|
|
|
+ },
|
|
|
+ getNavList(){
|
|
|
+ let data = {
|
|
|
+ website_id:this.$store.state.template.editWebsiteId,
|
|
|
+ pid:0,
|
|
|
+ type:1
|
|
|
+ }
|
|
|
+ this.$store.dispatch('news/getWebsiteNavList',data).then((res)=>{
|
|
|
+ if(res.code==200){
|
|
|
+ this.options = res.data.map(item => ({
|
|
|
+ id: item.id,
|
|
|
+ value: item.category_id,
|
|
|
+ label: item.alias,
|
|
|
+ }));
|
|
|
+ }else{
|
|
|
+ this.$message.error(res.msg);
|
|
|
+ }
|
|
|
});
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ },
|
|
|
+ changeNav(val){
|
|
|
+ // 通过 val 找到对应的选项
|
|
|
+ const selectedOption = this.options.find(item => item.value === val);
|
|
|
+ if (selectedOption) {
|
|
|
+ //选中导航池后,获得导航池的名字
|
|
|
+ this.form.type1data.name = selectedOption.label;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ submitData(){
|
|
|
+ //验证表单
|
|
|
+ this.$refs.form.validate(valid => {
|
|
|
+ //构建提交的数据
|
|
|
+ let data = {
|
|
|
+ id:this.$store.state.template.editSectorId,//组件id
|
|
|
+ sort:this.$store.state.template.editComponentSort,//组件位置
|
|
|
+ dataSort:this.$store.state.template.editDataSort,//数据位置
|
|
|
+ type:this.$store.state.template.editComponentType,//组件类型
|
|
|
+ data:""//提交的数据
|
|
|
+ }
|
|
|
+ if (valid) {
|
|
|
+ //判断当前提交的数据类型
|
|
|
+ //1=新闻
|
|
|
+ if(this.$store.state.template.editComponentType == 1){
|
|
|
+ data.data = this.form.type1data;
|
|
|
+ data.data.name = this.form.type1data.name;
|
|
|
+ }
|
|
|
+ //2=广告
|
|
|
+ if(this.$store.state.template.editComponentType == 2){
|
|
|
+ data.data = this.form.type2data;
|
|
|
+ }
|
|
|
+ //第二步:提交数据
|
|
|
+ this.$store.commit('template/saveComponentData',data);
|
|
|
+ //第三步:关闭编辑窗口
|
|
|
+ this.$store.commit('template/closeEditWindowStatus');
|
|
|
+ //第四步:初始化下拉列表
|
|
|
+ this.form.type1data.pid_arr = "";
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ //获得站点下的导航池
|
|
|
+ this.getNavList();
|
|
|
},
|
|
|
- },
|
|
|
- mounted() {
|
|
|
-
|
|
|
- },
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
- .editWindowBox {
|
|
|
- .editWindowBoxContent {
|
|
|
- width: 100%;
|
|
|
- padding: 20px;
|
|
|
- }
|
|
|
- .editWindowBoxFooter {
|
|
|
- text-align: right;
|
|
|
+ .editWindowBox {
|
|
|
+ .editWindowBoxContent {
|
|
|
+ width: 100%;
|
|
|
+ padding: 20px;
|
|
|
+ }
|
|
|
+ .editWindowBoxFooter {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- .testAssistant {
|
|
|
- border: 1px solid #dfe4ed;
|
|
|
- padding: 20px;
|
|
|
- margin-bottom: 20px;
|
|
|
- background: #F5F7FA;
|
|
|
- border-radius: 4px;
|
|
|
- .testAssistantTitle {
|
|
|
- font-size: 16px;
|
|
|
- font-weight: bold;
|
|
|
- padding-bottom: 10px;
|
|
|
+ .testAssistant {
|
|
|
+ border: 1px solid #dfe4ed;
|
|
|
+ padding: 20px;
|
|
|
margin-bottom: 20px;
|
|
|
- border-bottom: 1px solid #dfe4ed;
|
|
|
- }
|
|
|
- .testAssistantContentItem {
|
|
|
- display: flex;
|
|
|
- font-size: 16px;
|
|
|
- margin-bottom: 10px;
|
|
|
- div:nth-child(1) {
|
|
|
- color: #666;
|
|
|
- margin-right: 20px;
|
|
|
+ background: #F5F7FA;
|
|
|
+ border-radius: 4px;
|
|
|
+ .testAssistantTitle {
|
|
|
+ font-size: 16px;
|
|
|
font-weight: bold;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ border-bottom: 1px solid #dfe4ed;
|
|
|
}
|
|
|
- div:nth-child(2) {
|
|
|
- color: #666;
|
|
|
+ .testAssistantContentItem {
|
|
|
+ display: flex;
|
|
|
+ font-size: 16px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ div:nth-child(1) {
|
|
|
+ color: #666;
|
|
|
+ margin-right: 20px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ div:nth-child(2) {
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- //表单微调 start------------------------------------------------------------>
|
|
|
- ::v-deep .editWindowBoxContent .el-cascader{
|
|
|
- width: 100% !important;
|
|
|
- }
|
|
|
- ::v-deep .editWindowBoxContent .el-select--medium {
|
|
|
- width: 100% !important;
|
|
|
- }
|
|
|
- //表单微调 end------------------------------------------------------------>
|
|
|
+ //表单微调 start------------------------------------------------------------>
|
|
|
+ ::v-deep .editWindowBoxContent .el-cascader{
|
|
|
+ width: 100% !important;
|
|
|
+ }
|
|
|
+ ::v-deep .editWindowBoxContent .el-select--medium {
|
|
|
+ width: 100% !important;
|
|
|
+ }
|
|
|
+ //表单微调 end------------------------------------------------------------>
|
|
|
</style>
|