Browse Source

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

master
aBin 3 years ago
parent
commit
e6a2a4f271
  1. 81
      src/api/contentIntro.js
  2. 2
      src/components/Banner/addOrEdit.vue
  3. 2
      src/components/Banner/index.vue
  4. 4
      src/components/Detail/addOrEdit.vue
  5. 16
      src/components/Detail/index.vue
  6. 2
      src/components/News/addOrEdit.vue
  7. 30
      src/components/News/detailContent.vue
  8. 96
      src/components/News/index.vue
  9. 1
      src/main.js
  10. 514
      src/styles/flex.scss

81
src/api/contentIntro.js

@ -0,0 +1,81 @@
import request from '@/utils/request'
const contentIntro = '/back/contentIntro'
const content = '/content'
/**
* 查询列表详情列表
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function POST_QUERY_DETAIL(params) {
return request({
url: `${contentIntro}/list`,
method: 'post',
data:params
}).then(res => {
return res.data
})
}
/**
* 单个列表详情
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function QUERY_DETAIL(params) {
return request({
url: `${content}/detail`,
method: 'get',
params
}).then(res => res.data)
}
/**
* 删除列表详情
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function DELETE_DETAIL(params) {
return request({
url: `${contentIntro}/delete`,
method: 'post',
data:params
}).then(res => {
return res.data
})
}
/**
* 添加列表详情
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function ADD_DETAIL(params) {
return request({
url: `${contentIntro}/add`,
method: 'post',
data:params
}).then(res => {
return res.data
})
}
/**
* 修改列表详情
* @param params
* @returns {Promise<T | never>}
* @constructor
*/
export function UPDATE_DETAIL(params) {
return request({
url: `${contentIntro}/update`,
method: 'post',
data:params
}).then(res => {
return res.data
})
}

2
src/components/Banner/addOrEdit.vue

@ -14,7 +14,7 @@
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="位置:" prop="showPage"> <el-form-item label="页面显示位置:" prop="showPage">
<el-cascader <el-cascader
v-model="formLabelAlign.showPage" v-model="formLabelAlign.showPage"
:props="props" :props="props"

2
src/components/Banner/index.vue

@ -31,7 +31,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
label="位置" label="页面显示位置"
align="center" align="center"
width="250"> width="250">
<template slot-scope="lists"> <template slot-scope="lists">

4
src/components/Detail/addOrEdit.vue

@ -2,7 +2,7 @@
<div class="container"> <div class="container">
<div class="title">{{ showAdd ? '添加' : '修改' }}详情</div> <div class="title">{{ showAdd ? '添加' : '修改' }}详情</div>
<el-form :model="formLabelAlign" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm"> <el-form :model="formLabelAlign" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm">
<el-form-item label="位置:" prop="showPage"> <el-form-item label="页面显示位置:" prop="showPage">
<el-cascader <el-cascader
v-model="formLabelAlign.showPage" v-model="formLabelAlign.showPage"
:props="props" :props="props"
@ -43,7 +43,7 @@
components: { components: {
// Editor, // Editor,
}, },
props: ['currList', 'showAdd', 'content'], props: ['currList', 'showAdd'],
data() { data() {
return { return {
labelPosition: 'right', labelPosition: 'right',

16
src/components/Detail/index.vue

@ -28,7 +28,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
label="位置" label="页面显示位置"
align="center" align="center"
> >
<template slot-scope="lists"> <template slot-scope="lists">
@ -109,7 +109,7 @@
width="600px" width="600px"
:show-close="false" :show-close="false"
:visible.sync="showModal"> :visible.sync="showModal">
<add-or-edit ref="distribution" :show-add="showAdd" :currList="currList" :content="content" v-if="showModal" @close="close"></add-or-edit> <add-or-edit ref="distribution" :show-add="showAdd" :currList="currList" v-if="showModal" @close="close"></add-or-edit>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -204,13 +204,11 @@
await QUERY_DETAIL(params).then(res => { await QUERY_DETAIL(params).then(res => {
if(res.code === 200){ if(res.code === 200){
this.content = res.data.content this.content = res.data.content
this.keys.forEach((key,index) =>{ if(this.keys.length){
if(key === row.detailId){ this.keys.splice(0, 1, row.detailId)
this.keys.splice(index, 1) }else{
}else{ this.keys.push(row.detailId)
this.keys.push(row.detailId) }
}
})
}else{ }else{
Alert.fail(res.msg || '详情获取失败'); Alert.fail(res.msg || '详情获取失败');
} }

2
src/components/News/addOrEdit.vue

@ -43,7 +43,7 @@
components: { components: {
// Editor, // Editor,
}, },
props: ['currList', 'showAdd', 'content'], props: ['currList', 'showAdd'],
data() { data() {
return { return {
labelPosition: 'right', labelPosition: 'right',

30
src/components/News/detailContent.vue

@ -0,0 +1,30 @@
<template>
<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>
</template>
<script>
export default {
name: "detailsOfDistribution",
components: {
// Editor,
},
props: ['list', 'detailContent'],
data() {
return {
}
},
}
</script>

96
src/components/News/index.vue

@ -18,17 +18,31 @@
> >
<el-table-column type="expand"> <el-table-column type="expand">
<template slot-scope="lists"> <template slot-scope="lists">
<el-form label-position="left" inline class="demo-table-expand"> <div class="w-full">
<el-form-item> <detail-content :list="lists.row" :detailContent="detailContent" />
<div v-if="content" v-html="content"></div> <!-- <div>发表时间: {{ $moment(lists.row.publishTime).format('YYYY-MM-DD HH:mm') }}</div>
<div v-else>暂无</div> <div>创建时间: {{ $moment(lists.row.createdAt).format('YYYY-MM-DD HH:mm') }}</div>
</el-form-item> <div>修改时间: {{ $moment(lists.row.updatedAt).format('YYYY-MM-DD HH:mm') }}</div>
</el-form> <div></div>
<div>标题显示类型: {{ lists.row.showType == 0 ? '文本' : lists.row.showType == 1 ? '图片' : lists.row.showType == 2 ? '视频' : '' }}</div>
<div class="ml-5">跳转路径: {{ lists.row.jumpUrl }}</div>
<div v-if="detailContent && detailContent.content" v-html="detailContent.content"></div>
<div v-else>暂无</div>
<div>责编: {{ lists.row.editor }}</div>
<div>来源: {{ lists.row.source }}</div> -->
<!-- 关联文章信息 -->
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="introId"
label="位置" label="简介ID"
align="center"
>
</el-table-column>
<el-table-column
prop="showPage"
label="页面显示位置"
align="center" align="center"
> >
<template slot-scope="lists"> <template slot-scope="lists">
@ -36,31 +50,34 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="title"
label="创建时间" label="标题"
align="center" align="center"
> >
<template slot-scope="lists">
{{ $moment(lists.row.createdAt).format('YYYY-MM-DD HH:mm') }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="showPage"
label="修改时间" label="标题图片"
align="center" align="center"
> >
<template slot-scope="lists"> <template slot-scope="lists">
{{ $moment(lists.row.updatedAt).format('YYYY-MM-DD HH:mm') }} <!-- 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> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="modifyName"
label="最后修改人登录名" label="最后修改人登录名"
align="center" align="center"
> >
<template slot-scope="lists"> </el-table-column>
{{ lists.row.modifyName }} <el-table-column
</template> prop="submitStatus"
label="提交状态"
align="center"
>
<template slot-scope="lists">{{ setCode(lists.row.submitStatus) }}</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -85,7 +102,7 @@
<p>确定删除吗</p> <p>确定删除吗</p>
<div style="text-align: right; margin: 0"> <div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="visible = false">取消</el-button> <el-button size="mini" type="text" @click="visible = false">取消</el-button>
<el-button type="danger" size="mini" plain @click="deleteItem(lists.row.detailId)">确定</el-button> <el-button type="danger" size="mini" plain @click="deleteItem(lists.row.introId)">确定</el-button>
</div> </div>
<el-button slot="reference" @click="visible = true" type="danger" icon="el-icon-delete" size="mini">删除</el-button> <el-button slot="reference" @click="visible = true" type="danger" icon="el-icon-delete" size="mini">删除</el-button>
</el-popover> </el-popover>
@ -109,18 +126,19 @@
width="600px" width="600px"
:show-close="false" :show-close="false"
:visible.sync="showModal"> :visible.sync="showModal">
<add-or-edit ref="distribution" :show-add="showAdd" :currList="currList" :content="content" v-if="showModal" @close="close"></add-or-edit> <add-or-edit ref="distribution" :show-add="showAdd" :currList="currList" v-if="showModal" @close="close"></add-or-edit>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
const AddOrEdit = () => import('./addOrEdit.vue'); const AddOrEdit = () => import('./addOrEdit.vue');
const DetailContent = () => import('./detailContent.vue');
import { import {
POST_QUERY_DETAIL, POST_QUERY_DETAIL,
QUERY_DETAIL, QUERY_DETAIL,
DELETE_DETAIL DELETE_DETAIL
} from '@/api/contentDetail' } from '@/api/contentIntro';
import Alert from "@/utils/alert"; import Alert from "@/utils/alert";
import {tabList} from '../../filters/code'; import {tabList} from '../../filters/code';
@ -144,13 +162,13 @@
pageNum: 1, pageNum: 1,
visible: false, visible: false,
showAdd: true, showAdd: true,
content: '', detailContent: null,
keys: [] keys: []
} }
}, },
components: { components: {
AddOrEdit, AddOrEdit,DetailContent
}, },
methods: { methods: {
/** /**
@ -186,7 +204,7 @@
}, },
setKey(row){ setKey(row){
return row.detailId return row.introId
}, },
/** /**
@ -196,21 +214,17 @@
try { try {
const { showPage } = this; const { showPage } = this;
const params = { const params = {
detailId: row.detailId, introId: row.introId,
pageNum: 1,
pageSize: 10,
showPage showPage
}; };
await QUERY_DETAIL(params).then(res => { await QUERY_DETAIL(params).then(res => {
if(res.code === 200){ if(res.code === 200){
this.content = res.data.content this.detailContent = res.data
this.keys.forEach((key,index) =>{ if(this.keys.length){
if(key === row.detailId){ this.keys.splice(0, 1, row.introId)
this.keys.splice(index, 1) }else{
}else{ this.keys.push(row.introId)
this.keys.push(row.detailId) }
}
})
}else{ }else{
Alert.fail(res.msg || '详情获取失败'); Alert.fail(res.msg || '详情获取失败');
} }
@ -259,9 +273,9 @@
/** /**
* 删除 * 删除
*/ */
deleteItem(detailId) { deleteItem(introId) {
const params = { const params = {
detailId introId
}; };
DELETE_DETAIL(params).then((res) => { DELETE_DETAIL(params).then((res) => {
if(res.code === 200){ if(res.code === 200){
@ -290,4 +304,8 @@
.pagination { .pagination {
margin-top: 20px; margin-top: 20px;
} }
.pic{
width: 200px;
}
</style> </style>

1
src/main.js

@ -26,6 +26,7 @@ Vue.use(Element, {
}) })
import '@/styles/index.scss'// global css import '@/styles/index.scss'// global css
import '@/styles/flex.scss'// global css
import './errorLog' // error log import './errorLog' // error log
import './icons' // icon import './icons' // icon
import "./permission" //权限控制 import "./permission" //权限控制

514
src/styles/flex.scss

@ -0,0 +1,514 @@
// padding
.pa-0 {
padding: 0px;
}
.pa-1 {
padding: 4px;
}
.pa-2 {
padding: 8px;
}
.pa-3 {
padding: 12px;
}
.pa-4 {
padding: 16px;
}
.pa-5 {
padding: 20px;
}
.pt-3 {
padding-top: 12px;
}
.pt-5 {
padding-top: 20px;
}
.pb-3 {
padding-bottom: 12px;
}
.pb-4 {
padding-bottom: 16px;
}
.pb-5 {
padding-bottom: 20px;
}
.pb-10 {
padding-bottom: 40px;
}
.px-1{
padding-left: 4px;
padding-right: 4px;
}
.px-2{
padding-left: 8px;
padding-right: 8px;
}
.px-3{
padding-left: 12px;
padding-right: 12px;
}
.px-4{
padding-left: 16px;
padding-right: 16px;
}
.px-5{
padding-left: 20px;
padding-right: 20px;
}
.px-6{
padding-left: 24px;
padding-right: 24px;
}
.px-10{
padding-left: 40px;
padding-right: 40px;
}
.py-1{
padding-top: 4px;
padding-bottom: 4px;
}
.py-2{
padding-top: 8px;
padding-bottom: 8px;
}
.py-3{
padding-top: 12px;
padding-bottom: 12px;
}
.py-4{
padding-top: 16px;
padding-bottom: 16px;
}
.py-5{
padding-top: 20px;
padding-bottom: 20px;
}
.py-10{
padding-top: 40px;
padding-bottom: 40px;
}
.py-12{
padding-top: 60px;
padding-bottom: 60px;
}
// margin
.ma-2 {
margin: 8px;
}
.ma-3 {
margin: 12px;
}
.mx-0{
margin-left: 0!important;
margin-right: 0!important;
}
.mx-1{
margin-left: 4px;
margin-right: 4px;
}
.mx-2{
margin-left: 8px;
margin-right: 8px;
}
.my-0{
margin-top: 0!important;
margin-bottom: 0!important;
}
.my-1{
margin-top: 4px!important;
margin-bottom: 4px!important;
}
.my-2{
margin-top: 8px;
margin-bottom: 8px;
}
.my-3{
margin-top: 12px;
margin-bottom: 12px;
}
.my-4{
margin-top: 16px;
margin-bottom: 16px;
}
.my-5{
margin-top: 20px;
margin-bottom: 20px;
}
.mt-1{
margin-top: 4px;
}
.mt-2{
margin-top: 8px;
}
.mt-3{
margin-top: 12px;
}
.mt-4{
margin-top: 16px;
}
.mt-5{
margin-top: 20px;
}
.mt-8{
margin-top: 32px;
}
.mb-1{
margin-bottom: 4px;
}
.mb-2{
margin-bottom: 8px;
}
.mb-3{
margin-bottom: 12px;
}
.mb-4{
margin-bottom: 16px;
}
.mb-5{
margin-bottom: 20px;
}
.mb-6{
margin-bottom: 24px;
}
.mb-7{
margin-bottom: 28px;
}
.mb-8{
margin-bottom: 32px;
}
.mb-9{
margin-bottom: 36px;
}
.mb-10{
margin-bottom: 40px;
}
.ml-2{
margin-left: 8px;
}
.ml-3{
margin-left: 12px;
}
.ml-4{
margin-left: 16px;
}
.ml-5{
margin-left: 20px;
}
.ml-6{
margin-left: 24px;
}
.ml-7{
margin-left: 28px;
}
.ml-8{
margin-left: 32px;
}
.mr-1{
margin-right: 4px;
}
.mr-2{
margin-right: 8px;
}
.mr-3{
margin-right: 12px;
}
.mr-4{
margin-right: 16px;
}
.mr-5{
margin-right: 20px;
}
.mr-6{
margin-right: 24px;
}
.mr-7{
margin-right: 28px;
}
.mr-8{
margin-right: 32px;
}
// background
.white {
background: white;
}
// flex
.flex{
display: flex;
}
.flex-wrap{
flex-wrap: wrap;
}
.flex-nowrap{
flex-wrap: nowrap;
}
.flex-column{
flex-direction: column;
}
.flex-column-reverse{
flex-direction: column-reverse;
}
.flex-row{
flex-direction: row;
}
.flex-row-reverse{
flex-direction: row-reverse;
}
.justify-center{
justify-content: center;
}
.justify-space-between{
justify-content: space-between;
}
.align-center{
align-items: center
}
.align-start{
align-items: flex-start
}
.align-end{
align-items: flex-end
}
.flex-1{
display: flex;
flex: 1;
}
.flex-3{
display: flex;
flex: 3;
}
// other
.inner {
width: 82%;
margin: 0 auto;
}
.pointer{
cursor:pointer;
}
.w-height{
height:100%;
}
.w-width{
width:100%;
}
img{
max-width: 100%
}
// font
.font-big{
font-size: 60px;
}
.font-small{
font-size: 30px;
line-height: 40px;
}
.font-bold{
font-weight: bold;
}
.text-indent-2{
text-indent: 2em
}
.font-bold-32{
font-size: 32px;
font-weight: bold;
}
.font-32{
font-size: 32px;
}
.font-bold-24{
font-size: 24px;
font-weight: bold;
}
.font-24{
font-size: 24px;
}
.font-20{
font-size: 20px;
}
.font-bold-20{
font-size: 20px;
font-weight: bold;
}
.font-bold-18{
font-size: 18px;
font-weight: bold;
}
.font-18{
font-size: 18px;
}
.font-bold-16{
font-size: 16px;
font-weight: bold;
}
.font-16{
font-size: 16px;
}
.font-bold-14{
font-size: 14px;
font-weight: bold;
}
.font-14{
font-size: 14px;
}
.font-12{
font-size: 12px;
}
.icon-size{
font-size: 20px;
}
h2{
font-size: 24px;
font-weight: bold;
color: rgba(0,0,0,.85)
}
.baseColor{
color: #13ACC4
}
.bg{
background: #F5F5F5
}
.base-bg{
background: #13ACC4
}
.second-base-bg{
background: #AACD06
}
// 文字颜色
.white--text{
color: #fff
}
.grey--text{
color: #616161
}
.title-color{
color: rgba(0,0,0,.85)
}
.textColor{
color: rgba(0,0,0,.65)
}
.secondary{
color: rgba(0,0,0,.45)
}
// line-height
.line-height-30{
line-height: 30px
}
.line-height-36{
line-height: 36px
}
Loading…
Cancel
Save