Browse Source

Merge branch 'master' of ssh://101.201.226.163:50022/binbin0314/datang-admin

master
aBin 3 years ago
parent
commit
0d8b4e740f
  1. 35
      src/api/contentIntro.js
  2. 1
      src/components/Banner/addOrEdit.vue
  3. 56
      src/components/Detail/addOrEdit.vue
  4. 3
      src/components/Detail/editor.vue
  5. 126
      src/components/News/addContentRelation.vue
  6. 99
      src/components/News/addOrEdit.vue
  7. 100
      src/components/News/contentRelation.vue
  8. 111
      src/components/News/detailContent.vue
  9. 67
      src/components/News/index.vue
  10. 2
      src/utils/request.js
  11. 16
      src/views/lists/index.vue
  12. 16
      src/views/richText/index.vue

35
src/api/contentIntro.js

@ -1,6 +1,7 @@
import request from '@/utils/request'
const contentIntro = '/back/contentIntro'
const content = '/content'
const contentIntro = '/back/contentIntro'
const contentRelation = '/back/contentRelation'
/**
* 查询列表详情列表
@ -95,3 +96,35 @@ export function ACTIVE_DETAIL(params) {
return res.data
})
}
/**
* 关联新闻添加
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function ADD_RELATION(params) {
return request({
url: `${contentRelation}/add`,
method: 'post',
data:params
}).then(res => {
return res.data
})
}
/**
* 关联新闻删除
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function DELETE_RELATION(params) {
return request({
url: `${contentRelation}/delete`,
method: 'post',
data:params
}).then(res => {
return res.data
})
}

1
src/components/Banner/addOrEdit.vue

@ -17,6 +17,7 @@
<el-form-item label="页面显示位置:" prop="showPage">
<el-cascader
v-model="formLabelAlign.showPage"
disabled
:props="props"
:options="tabList"
@change="handleChange">

56
src/components/Detail/addOrEdit.vue

@ -2,22 +2,16 @@
<div class="container">
<div class="title">{{ showAdd ? '添加' : '修改' }}详情</div>
<el-form :model="formLabelAlign" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
<el-form-item label="页面显示位置:" prop="showPage">
<!-- <el-form-item label="页面显示位置:" prop="showPage">
<el-cascader
v-model="formLabelAlign.showPage"
:props="props"
:options="tabList"
@change="handleChange">
</el-cascader>
</el-form-item>
</el-form-item> -->
<el-form-item label="正文:" prop="content">
<editor ref="editor" :content="content" />
<!-- <el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="formLabelAlign.content">
</el-input> -->
<editor ref="editor" :content="formLabelAlign.content" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submit(formLabelAlign)">确定</el-button>
@ -48,9 +42,9 @@
return {
labelPosition: 'right',
formLabelAlign: {
showPage: ['00', '0000']
showPage: '',
content: '',
},
content: '',
BASE_API,
tabList,
props: {
@ -59,9 +53,6 @@
children: 'children'
},
rules: {
showPage: [
{ type: 'array', required: true, message: '请选择位置', trigger: 'change' }
],
content: [
{ type: 'string', required: true, message: '请输入正文' }
],
@ -69,19 +60,15 @@
}
},
mounted() {
async mounted() {
if(this.currList && this.currList && !this.showAdd){
const { detailId, showPage } = this.currList
this.getDetail()
this.formLabelAlign.detailId = detailId;
this.formLabelAlign.showPage.splice(0, 1, showPage.slice(0, 2))
this.formLabelAlign.showPage.splice(1, 1, showPage)
}else{
const code = localStorage.getItem('code')
if(!code) return
this.formLabelAlign.showPage.splice(0, 1, code.slice(0, 2))
this.formLabelAlign.showPage.splice(1, 1, code)
await this.getDetail()
for(let key in this.currList){
this.formLabelAlign[key] = this.currList[key]
}
}
const code = localStorage.getItem('code')
this.formLabelAlign.showPage = code
},
methods: {
@ -91,13 +78,12 @@
},
submit(formName) {
const child = this.$refs['editor']
this.formLabelAlign.content = child.getValue();
this.$refs.ruleForm.validate((valid) => {
if (valid) {
const child = this.$refs['editor']
this.content = child.getValue();
if(this.showAdd){
this.addCarousel(formName)
}else{
this.updateCarousel(formName)
}
@ -112,12 +98,7 @@
* 添加详情
*/
async addCarousel(formName){
const { showPage } = formName;
const { content } = this;
const params = {
showPage: showPage[1],
content
};
const params = formName;
await ADD_DETAIL(params).then((res) => {
if(res.code === 200){
Alert.success('添加成功');
@ -132,11 +113,10 @@
* 修改详情
*/
async updateCarousel(formName){
const { detailId, showPage } = formName;
const { content } = this;
const { detailId, showPage, content } = formName;
const params = {
detailId,
showPage: showPage[1],
showPage,
content
};
await UPDATE_DETAIL(params).then((res) => {
@ -163,7 +143,7 @@
};
await QUERY_DETAIL(params).then(res => {
if(res.code === 200){
this.content = res.data.content
this.formLabelAlign.content = res.data.content
}else{
Alert.fail(res.msg || '详情获取失败');
}

3
src/components/Detail/editor.vue

@ -21,7 +21,6 @@ export default {
watch: {
content(val){
if(val){
console.log('val: ', val);
this.setValue(val)
}
}
@ -30,6 +29,8 @@ export default {
this.initialize();
this.$nextTick(() => {
this.setValue(this.content)
var editorSection=document.getElementById("editorSection");
editorSection.style.height = "800px";
})
},
beforeDestroy() {

126
src/components/News/addContentRelation.vue

@ -0,0 +1,126 @@
<template>
<div>
<el-table
ref="multipleTable"
:data="lists"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
prop="title"
label="标题">
</el-table-column>
<el-table-column
align="right">
<template slot="header" slot-scope="scope">
<el-input
v-model="title"
size="mini"
placeholder="输入标题搜索"
@change="handleSearch"/>
</template>
</el-table-column>
</el-table>
<div class="mt-4 flex flex-row-reverse">
<el-pagination
background
:page-size="pageSize"
layout="prev, pager, next"
:total="count"
@current-change="currentChange"
>
</el-pagination>
</div>
</div>
</template>
<script>
import {tabList} from '../../filters/code';
import { POST_QUERY_DETAIL } from '@/api/contentIntro';
import Alert from "@/utils/alert";
export default {
data() {
return {
tabList,
lists: [],
title: '',
pageNum: 1,
pageSize: 6,
count: 0,
}
},
mounted() {
this.getList()
},
methods: {
//
setCode(showPage){
let item = null
for (let i = 0; i < this.tabList.length; i++) {
const list = this.tabList[i];
for (let j = 0; j < list.children.length; j++) {
const curItem = list.children[j];
if(curItem.code == showPage){
item = curItem
break;
}
}
}
return item && item.title ? item.title : ''
},
/**
* 分页
*/
currentChange(res) {
this.pageNum = res;
this.getList()
},
/**
* 获取详情列表
*/
getList() {
const showPage = localStorage.getItem('code')
const { pageNum, pageSize, title } = this;
const params = {
pageNum,
pageSize,
showPage,
title
};
POST_QUERY_DETAIL(params).then(res => {
if(res.code === 200){
this.lists = res.data.list
this.pageNum = res.data.pageNum
this.pageSize = res.data.pageSize
this.count = res.data.size
}else{
Alert.fail(res.msg || '获取失败');
}
});
},
handleSelectionChange(val) {
let relationContentIds = []
val.forEach(item => {
relationContentIds.push(item.introId)
})
this.$emit('setRelationValue', relationContentIds)
},
//
handleSearch(val){
console.log('val: ', val);
this.getList()
}
}
}
</script>

99
src/components/News/addOrEdit.vue

@ -13,11 +13,11 @@
<el-input v-model="formLabelAlign.editor" class="w-230" placeholder="责编" />
</el-form-item>
</div>
<el-form-item label="显示类型:" prop="showType">
<el-form-item label="新闻类型:" prop="showType">
<el-radio-group v-model="formLabelAlign.showType" @change="changeShowType">
<el-radio :label="0">文本</el-radio>
<el-radio :label="1">图片</el-radio>
<el-radio :label="2">视频</el-radio>
<el-radio :label="0" :disabled="formLabelAlign.showType !== 0">普通新闻</el-radio>
<el-radio :label="1" :disabled="formLabelAlign.showType !== 1">图片新闻</el-radio>
<el-radio :label="2" :disabled="formLabelAlign.showType !== 2">视频新闻</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="跳转路径:" prop="jumpUrl">
@ -48,26 +48,6 @@
</el-upload>
</el-form-item>
<div class="flex justify-between">
<el-form-item label="提交状态:" prop="submitStatus">
<el-radio-group v-model="formLabelAlign.submitStatus" @change="changeSubmitStatus">
<el-radio :label="0">保存</el-radio>
<el-radio :label="1">发布</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="来源:" prop="source">
<el-input v-model="formLabelAlign.source" class="w-230" placeholder="来源" />
</el-form-item>
</div>
<div class="flex justify-between">
<el-form-item label="页面显示位置:" prop="showPage">
<el-cascader
v-model="formLabelAlign.showPage"
:props="props"
class="w-230"
:options="tabList"
@change="handleChange">
</el-cascader>
</el-form-item>
<el-form-item label="发表时间:" prop="publishTime">
<el-date-picker
v-model="formLabelAlign.publishTime"
@ -76,10 +56,24 @@
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="来源:" prop="source">
<el-input v-model="formLabelAlign.source" class="w-230" placeholder="来源" />
</el-form-item>
</div>
<div class="flex justify-between">
<el-form-item label="提交状态:" prop="submitStatus">
<el-radio-group v-model="formLabelAlign.submitStatus" @change="changeSubmitStatus">
<el-radio :label="0">保存</el-radio>
<el-radio :label="1">发布</el-radio>
</el-radio-group>
</el-form-item>
</div>
<el-form-item label="正文:" prop="content">
<editor ref="editor" :content="formLabelAlign.content" />
</el-form-item>
<el-form-item label="相关新闻:" prop="relationContentIds">
<add-content-relation ref="distribution" @setRelationValue="setRelationValue"></add-content-relation>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submit(formLabelAlign)">确定</el-button>
<el-button @click="$emit('close')">取消</el-button>
@ -90,6 +84,7 @@
<script>
import Editor from '../Detail/editor.vue';
import AddContentRelation from './addContentRelation.vue';
import {BASE_API} from '../../config';
import {tabList} from '../../filters/code';
import {
@ -103,6 +98,7 @@
name: "detailsOfDistribution",
components: {
Editor,
AddContentRelation
},
props: ['currList', 'showAdd'],
data() {
@ -117,9 +113,10 @@
titleUrl: '',
submitStatus: 1,
source: '',
showPage: ['00', '0000'],
publishTime: '',
content: '',
showPage: '',
relationContentIds: []
},
fileList: [],
BASE_API,
@ -133,9 +130,6 @@
title: [
{ type: 'string', required: true, message: '请输入标题', trigger: 'blur' }
],
showPage: [
{ type: 'array', required: true, message: '请选择页面显示位置', trigger: 'blur' }
],
content: [
{ type: 'string', required: true, message: '请输入正文' }
],
@ -143,24 +137,20 @@
}
},
mounted() {
async mounted() {
if(this.currList && this.currList && !this.showAdd){
const { showPage } = this.currList
console.log('showPage: ', showPage, showPage.slice(0, 2));
this.getDetail()
await this.getDetail()
for(let key in this.currList){
if(key !== 'showPage'){
this.formLabelAlign[key] = this.currList[key]
}
this.formLabelAlign[key] = this.currList[key]
}
console.log('this.formLabelAlign: ', this.formLabelAlign);
this.formLabelAlign.showPage.splice(0, 1, showPage.slice(0, 2))
this.formLabelAlign.showPage.splice(1, 1, showPage)
}else{
const code = localStorage.getItem('code')
if(!code) return
this.formLabelAlign.showPage.splice(0, 1, code.slice(0, 2))
this.formLabelAlign.showPage.splice(1, 1, code)
}
const code = localStorage.getItem('code')
this.formLabelAlign.showPage = code
if(code === '0204'){
this.formLabelAlign.showType = 1
}
if(code === '0207'){
this.formLabelAlign.showType = 2
}
},
@ -194,11 +184,6 @@
}
},
//
handleChange(value) {
this.formLabelAlign.showPage = value
},
//
changeShowType(value){
this.formLabelAlign.showType = value;
@ -209,6 +194,11 @@
this.formLabelAlign.submitStatus = value;
},
//
setRelationValue(relationContentIds){
this.formLabelAlign.relationContentIds = relationContentIds
},
submit(formName) {
const child = this.$refs['editor']
this.formLabelAlign.content = child.getValue();
@ -230,10 +220,7 @@
* 添加详情
*/
async addCarousel(formName){
console.log('formName: ', formName);
const { showPage } = formName;
const params = formName;
params.showPage = showPage[1],
await ADD_DETAIL(params).then((res) => {
if(res.code === 200){
Alert.success('添加成功');
@ -248,12 +235,7 @@
* 修改详情
*/
async updateCarousel(formName){
const { detailId, showPage, content } = formName;
const params = {
detailId,
showPage: showPage[1],
content
};
const params = formName;
await UPDATE_DETAIL(params).then((res) => {
if(res.code === 200){
Alert.success('修改成功');
@ -269,10 +251,9 @@
*/
async getDetail(){
try {
const { introId, showPage } = this.currList
const { introId } = this.currList
const params = {
introId,
showPage
};
await QUERY_DETAIL(params).then(res => {
if(res.code === 200){

100
src/components/News/contentRelation.vue

@ -0,0 +1,100 @@
<template>
<el-table
ref="multipleTable"
:data="relations"
tooltip-effect="dark"
style="width: 100%">
<el-table-column
prop="introId"
label="简介ID">
</el-table-column>
<el-table-column
prop="showPage"
label="页面显示位置">
<template slot-scope="relations">
{{ setCode(relations.row.showPage) }}
</template>
</el-table-column>
<el-table-column
prop="title"
label="标题">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
>
<template slot-scope="relations">
<el-button type="danger" plain size="mini" @click="deleteItem">删除</el-button>
</template>
</el-table-column>
</el-table>
</template>
<script>
import {tabList} from '../../filters/code';
import { DELETE_RELATION } from '@/api/contentIntro';
import Alert from "@/utils/alert";
export default {
props: ['relations'],
data() {
return {
tabList,
multipleSelection: []
}
},
methods: {
//
setCode(showPage){
let item = null
for (let i = 0; i < this.tabList.length; i++) {
const list = this.tabList[i];
for (let j = 0; j < list.children.length; j++) {
const curItem = list.children[j];
if(curItem.code == showPage){
item = curItem
break;
}
}
}
return item && item.title ? item.title : ''
},
/**
* 删除
* @param {string} introId
* @param {string} relationContentIds
*/
async deleteItem(item){
try {
this.$alert('确定删除该条关联新闻吗?', '请确认', {
confirmButtonText: '确定',
callback: res => {
if(res === 'confirm') {
const { introId, relationContentId } = item
const relationContentIds = []
relationContentIds.push(relationContentId)
const params = {
introId,
relationContentIds
}
DELETE_RELATION(params).then((data) => {
if(data.code === 200) {
Alert.success('删除成功');
} else {
Alert.fail(data.msg);
}
});
}
}
});
} catch (error) {
console.error('error: ', error);
}
},
}
}
</script>

111
src/components/News/detailContent.vue

@ -1,46 +1,103 @@
<template>
<div class="w-full line-height-30">
<!-- <el-descriptions title="垂直带边框列表" direction="vertical" :column="3" border>
<el-descriptions-item label="发表时间">{{ $moment(list.publishTime).format('YYYY-MM-DD HH:mm') }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ $moment(list.createdAt).format('YYYY-MM-DD HH:mm') }}</el-descriptions-item>
<el-descriptions-item label="修改时间" :span="2">{{ $moment(list.updatedAt).format('YYYY-MM-DD HH:mm') }}</el-descriptions-item>
<el-descriptions-item label="标题显示类型">
<el-tag size="small">{{ list.showType == 0 ? '文本' : list.showType == 1 ? '图片' : list.showType == 2 ? '视频' : '' }}</el-tag>
</el-descriptions-item>
<el-descriptions-item label="跳转路径">{{ list.jumpUrl }}</el-descriptions-item>
<el-descriptions-item label="正文">
<div v-if="detailContent && detailContent.content" v-html="detailContent.content"></div>
<div v-else>暂无</div>
</el-descriptions-item>
</el-descriptions> -->
<div>发表时间: {{ $moment(list.publishTime).format('YYYY-MM-DD HH:mm') }}</div>
<div>创建时间: {{ $moment(list.createdAt).format('YYYY-MM-DD HH:mm') }}</div>
<div>修改时间: {{ $moment(list.updatedAt).format('YYYY-MM-DD HH:mm') }}</div>
<div>标题显示类型: {{ list.showType == 0 ? '文本' : list.showType == 1 ? '图片' : list.showType == 2 ? '视频' : '' }}</div>
<div>跳转路径: {{ list.jumpUrl }}</div>
<div class="w-full line-height-36">
<el-row :gutter="20">
<el-col :span="6"><div><span class="font-bold">发表时间 </span>{{ list.publishTime ? $moment(list.publishTime).format('YYYY-MM-DD HH:mm') : '暂无' }}</div></el-col>
<el-col :span="6"><div><span class="font-bold">创建时间 </span>{{ list.createdAt ? $moment(list.createdAt).format('YYYY-MM-DD HH:mm') : '暂无' }}</div></el-col>
<el-col :span="6"><div><span class="font-bold">修改时间 </span>{{ list.updatedAt ? $moment(list.updatedAt).format('YYYY-MM-DD HH:mm') : '暂无' }}</div></el-col>
<el-col :span="6"><div><span class="font-bold">新闻类型 </span>{{ list.showType == 1 ? '图片新闻' : list.showType == 2 ? '视频新闻' : '普通新闻' }}</div></el-col>
</el-row>
<div><span class="font-bold">跳转路径 </span>{{ list.jumpUrl }}</div>
<div class="flex flex-column">
<span class="font-bold">正文</span>
<div v-if="detailContent && detailContent.content" v-html="detailContent.content"></div>
<div v-else>暂无</div>
<div>责编: {{ list.editor }}</div>
<div>来源: {{ list.source }}</div>
</div>
<el-row :gutter="20">
<el-col :span="12"><div><span class="font-bold">责编 </span>{{ list.editor || '暂无' }}</div></el-col>
<el-col :span="12"><div><span class="font-bold">来源 </span>{{ list.source || '暂无' }}</div></el-col>
</el-row>
<!-- 关联文章信息 -->
<!-- <div>
<div>
<span class="font-bold">相关新闻 </span>
<el-button type="primary" plain size="mini" class="mt-2 ml-4" @click="addRelationNews">添加相关新闻</el-button>
<div v-if="detailContent && detailContent.relations && detailContent.relations.length" class="flex flex-column px-10">
<content-relation class="px-10" :relations="detailContent.relations" />
</div>
</div>
</div> -->
<el-dialog
width="800px"
title="添加相关新闻"
:show-close="false"
:visible.sync="showModal">
<add-content-relation ref="distribution" :introId="list.introId" v-if="showModal" @close="close" @setRelationValue="setRelationValue"></add-content-relation>
<span slot="footer" class="dialog-footer">
<el-button @click="showModal = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import ContentRelation from './contentRelation.vue';
import AddContentRelation from './addContentRelation.vue';
import { ADD_RELATION } from '@/api/contentIntro';
import Alert from "@/utils/alert";
export default {
name: "detailsOfDistribution",
components: {
// Editor,
ContentRelation,
AddContentRelation
},
props: ['list', 'detailContent'],
data() {
return {
showModal: false,
relationContentIds: []
}
},
methods: {
addRelationNews(){
this.showModal =true;
},
//
close(){
this.showModal = false
// if(type){
// }
},
setRelationValue(relationContentIds){
this.relationContentIds = relationContentIds
},
/**
* 关联新闻添加
* @param {string} introId
* @param {string} relationContentIds
*/
async submit(){
try {
const params = {
introId: this.list.introId,
relationContentIds: this.relationContentIds
}
ADD_RELATION(params).then((data) => {
if(data.code === 200) {
Alert.success('添加成功');
this.showModal = false;
this.$emit('getDetail', this.list)
} else {
Alert.fail(data.msg);
}
});
} catch (error) {
console.error('error: ', error);
}
},
}
}
</script>

67
src/components/News/index.vue

@ -18,7 +18,7 @@
>
<el-table-column type="expand">
<template slot-scope="lists">
<detail-content :list="lists.row" :detailContent="detailContent" />
<detail-content :list="lists.row" :detailContent="detailContent" v-loading="loading" @getDetail="getDetail" />
</template>
</el-table-column>
<el-table-column
@ -48,9 +48,8 @@
align="center"
>
<template slot-scope="lists">
<!-- v-if="lists.row.showType == 1" -->
<img class="pic" v-if="lists.row.showType == 1" :src="lists.row.titleUrl" />
<!-- <video class="pic" controls="controls" v-if="lists.row.showType == 2" :src="lists.row.titleUrl"></video> -->
<video class="pic" controls="controls" v-if="lists.row.showType == 2" :src="lists.row.titleUrl"></video>
</template>
</el-table-column>
<el-table-column
@ -82,6 +81,7 @@
fixed="right"
label="操作"
align="center"
width="250"
>
<template slot-scope="lists">
<el-button
@ -92,19 +92,7 @@
size="mini">
编辑
</el-button>
<el-popover
placement="top"
width="160"
:value="visible">
<p>确定删除吗</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="visible = false">取消</el-button>
<el-button type="danger" size="mini" plain @click="deleteItem(lists.row.introId)">确定</el-button>
</div>
<el-button slot="reference" @click="visible = true" type="danger" icon="el-icon-delete" size="mini">删除</el-button>
</el-popover>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="deleteItem(lists.row.introId)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -159,16 +147,17 @@
currList: null,
pageSize: 10,
pageNum: 1,
visible: false,
showAdd: true,
detailContent: null,
keys: []
keys: [],
loading: true
}
},
components: {
AddOrEdit,DetailContent
},
methods: {
/**
* 获取详情列表
@ -209,14 +198,15 @@
/**
* 单个内容详情
*/
async getDetail(row){
async getDetail(row, title){
try {
const { showPage } = this;
const params = {
introId: row.introId,
showPage
title: title || '',
};
this.loading = true
await QUERY_DETAIL(params).then(res => {
this.loading = false
if(res.code === 200){
this.detailContent = res.data
if(this.keys.length){
@ -234,6 +224,7 @@
}
});
} catch (error) {
this.loading = false
console.log('error: ', error);
}
},
@ -300,18 +291,28 @@
* 删除
*/
deleteItem(introId) {
const params = {
introId
};
DELETE_DETAIL(params).then((res) => {
if(res.code === 200){
Alert.success('删除成功');
this.getList()
}else{
Alert.fail(res.msg || '删除失败');
}
});
this.visible = false
try {
this.$alert('确定删除该条新闻吗?', '请确认', {
confirmButtonText: '确定',
callback: res => {
if(res === 'confirm') {
const params = {
introId
};
DELETE_DETAIL(params).then((res) => {
if(res.code === 200){
Alert.success('删除成功');
this.getList()
}else{
Alert.fail(res.msg || '删除失败');
}
});
}
}
});
} catch (error) {
console.error('error: ', error);
}
},
}
}

2
src/utils/request.js

@ -9,7 +9,7 @@ import myalert from './alert';
// create an axios instance
const service = axios.create({
baseURL: BASE_API, // api 的 base_url
timeout: 5000 // request timeout
timeout: 8000 // request timeout
})
// request interceptor

16
src/views/lists/index.vue

@ -1,12 +1,12 @@
<template>
<div class="pa-4 white">
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick(activeName)">
<el-tab-pane label="轮播图管理" name="IMAGE">
<banner :showPage="showPage" ref="banner" />
</el-tab-pane>
<el-tab-pane label="列表管理" name="NEWS">
<news :showPage="showPage" ref="news" />
</el-tab-pane>
<el-tab-pane label="轮播图管理" name="IMAGE">
<banner :showPage="showPage" ref="banner" />
</el-tab-pane>
</el-tabs>
</div>
</template>
@ -23,7 +23,7 @@
},
data() {
return {
activeName: 'IMAGE',
activeName: 'NEWS',
showPage: ''
}
},
@ -32,18 +32,18 @@
},
mounted() {
this.$nextTick(() => {
this.$refs.banner.getList()
this.$refs.news.getList()
})
},
methods: {
handleClick(value) {
this.activeName =value
if(value === 'IMAGE'){
this.$refs.banner.getList()
}
if(value === 'NEWS'){
this.$refs.news.getList()
}
if(value === 'IMAGE'){
this.$refs.banner.getList()
}
},
}
}

16
src/views/richText/index.vue

@ -1,12 +1,12 @@
<template>
<div class="pa-4 white">
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick(activeName)">
<el-tab-pane label="轮播图管理" name="IMAGE">
<banner :showPage="showPage" ref="banner" />
</el-tab-pane>
<el-tab-pane label="详情页管理" name="DETAIL">
<detail :showPage="showPage" ref="detail" />
</el-tab-pane>
<el-tab-pane label="轮播图管理" name="IMAGE">
<banner :showPage="showPage" ref="banner" />
</el-tab-pane>
</el-tabs>
</div>
</template>
@ -23,7 +23,7 @@
},
data() {
return {
activeName: 'IMAGE',
activeName: 'DETAIL',
showPage: ''
}
},
@ -32,18 +32,18 @@
},
mounted() {
this.$nextTick(() => {
this.$refs.banner.getList()
this.$refs.detail.getList()
})
},
methods: {
handleClick(value) {
this.activeName =value
if(value === 'IMAGE'){
this.$refs.banner.getList()
}
if(value === 'DETAIL'){
this.$refs.detail.getList()
}
if(value === 'IMAGE'){
this.$refs.banner.getList()
}
},
}
}

Loading…
Cancel
Save