10 changed files with 567 additions and 36 deletions
-
56src/assets/styles/adminIndex.scss
-
8src/router/routers.js
-
17src/views/dashboard/ThemeGallery.vue
-
2src/views/device/deviceConfig.vue
-
19src/views/materialContent/index.vue
-
1src/views/materialContent/materialList/index.vue
-
108src/views/publishContent/historyList/index.vue
-
52src/views/publishContent/index.vue
-
131src/views/publishContent/publishList/index.vue
-
209src/views/publishContent/urgentMessage/index.vue
@ -0,0 +1,108 @@ |
|||
<template> |
|||
<div class="list_warp"> |
|||
<el-row :gutter="15"> |
|||
<el-col> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
:data="tableData" |
|||
:header-cell-style="{ background: '#3a8aeb', color: '#fff' }" |
|||
@selection-change="handleSelectionChange" |
|||
> |
|||
<el-table-column type="selection" width="55" /> |
|||
<el-table-column label="文件名称" align="center" prop="name" /> |
|||
<el-table-column label="发布内容" align="center" prop="content"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
<img width="100px" size="medium" :src="scope.row.cover" /> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="发布时间" align="center" prop="date" /> |
|||
<el-table-column label="发布周期" align="center" prop="cycle" /> |
|||
<el-table-column label="发布类型" align="center" prop="type"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.type ? '定时发布' : '即时发布' }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="发布人" align="center" prop="user" /> |
|||
<el-table-column label="状态" align="center" prop="enabled"> |
|||
<template slot-scope="scope"> |
|||
<div :class="{ 'stop_txt': scope.row.enabled }">{{ scope.row.enabled ? '发布中' : '停止' }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="device" align="center" label="发布设备" /> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination /> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import crudDept from '@/api/system/dept' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import pagination from '@crud/Pagination' |
|||
const defaultForm = { |
|||
} |
|||
export default { |
|||
name: 'HistoryList', |
|||
components: { pagination }, |
|||
cruds() { |
|||
return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept } }) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
data() { |
|||
return { |
|||
selectedList: [], |
|||
tableData: [ |
|||
{ |
|||
id: 1, |
|||
name: '图片1', |
|||
cover: require('@/assets/images/background.jpg'), |
|||
type: 0, |
|||
user: '某某某', |
|||
device: '所有设备', |
|||
enabled: true, |
|||
isTop: true, |
|||
cycle: '每天', |
|||
date: '2021-2-2 至 2022-4-6' |
|||
}, |
|||
{ |
|||
id: 2, |
|||
name: '图片2', |
|||
cover: require('@/assets/images/background.jpg'), |
|||
type: 1, |
|||
user: '某某某2', |
|||
device: '所有设备', |
|||
enabled: false, |
|||
isTop: false, |
|||
cycle: '每天', |
|||
date: '2021-2-2 至 2022-4-6' |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
methods: { |
|||
handleSelectionChange(val) { |
|||
this.selectedList = val |
|||
if (val.length > 0) { |
|||
this.clearBtnDisabled = false |
|||
} else { |
|||
this.clearBtnDisabled = true |
|||
} |
|||
console.log(val) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.list_warp { |
|||
padding: 0 24px; |
|||
.stop_txt { |
|||
color: #3a8aeb; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="content_warp"> |
|||
<el-tabs v-model="activeName" @tab-click="handleClick"> |
|||
<el-tab-pane label="发布列表" name="first"> |
|||
<PublistList /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="发布历史" name="second"> |
|||
<HistoryList /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="紧急通知" name="third"> |
|||
<UrgentMessage /> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
</div> |
|||
<div v-if="activeName !== 'third'" class="home_publish_btn"> |
|||
<el-button round>即时发布</el-button> |
|||
<el-button round type="primary">定时发布</el-button> |
|||
</div> |
|||
<div v-else class="home_publish_btn"> |
|||
<el-button round>紧急发布</el-button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import PublistList from './publishList/index' |
|||
import HistoryList from './historyList/index' |
|||
import UrgentMessage from './urgentMessage/index' |
|||
export default { |
|||
name: 'PublishContent', |
|||
components: { PublistList, HistoryList, UrgentMessage }, |
|||
data() { |
|||
return { |
|||
activeName: 'first', |
|||
mulitText: '多选' |
|||
} |
|||
}, |
|||
methods: { |
|||
handleClick(tab, event) { |
|||
console.log(tab, event) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.app-container { |
|||
position: relative; |
|||
padding: 6px 0 20px 0; |
|||
} |
|||
</style> |
@ -0,0 +1,131 @@ |
|||
<template> |
|||
<div class="list_warp"> |
|||
<el-row :gutter="15"> |
|||
<el-col> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
:data="tableData" |
|||
:header-cell-style="{ background: '#3a8aeb', color: '#fff' }" |
|||
@selection-change="handleSelectionChange" |
|||
> |
|||
<el-table-column type="selection" width="55" /> |
|||
<el-table-column label="文件名称" align="center" prop="name" /> |
|||
<el-table-column label="发布内容" align="center" prop="content"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
<img width="100px" size="medium" :src="scope.row.cover" /> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="发布时间" align="center" prop="date" /> |
|||
<el-table-column label="发布类型" align="center" prop="type"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.type ? '定时发布' : '即时发布' }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="发布人" align="center" prop="user" /> |
|||
<el-table-column label="状态" align="center" prop="enabled"> |
|||
<template slot-scope="scope"> |
|||
<div :class="{ 'stop_txt': scope.row.enabled }">{{ scope.row.enabled ? '发布中' : '停止' }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="device" align="center" label="发布设备" /> |
|||
<el-table-column label="操作" width="220px" align="center" fixed="right"> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
type="primary" |
|||
:class="['top_btn', { 'top_btn_active': scope.row.isTop }]" |
|||
@click="isTophandle(scope.$index, scope.row)" |
|||
>{{ scope.row.isTop ? '取消' : '置顶' }}</el-button> |
|||
<el-button |
|||
type="primary" |
|||
class="edit_btn" |
|||
@click="editFormData(scope.$index, scope.row)" |
|||
>编辑</el-button> |
|||
<el-button |
|||
type="primary" |
|||
:class="['start_btn', { 'stop_btn': scope.row.enabled }]" |
|||
@click="isStopHandle(scope.$index, scope.row)" |
|||
>{{ scope.row.enabled ? '停止' : '恢复' }}</el-button> |
|||
<el-button type="info" class="delt_btn">删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination /> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import crudDept from '@/api/system/dept' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import pagination from '@crud/Pagination' |
|||
const defaultForm = { |
|||
} |
|||
export default { |
|||
name: 'PublishList', |
|||
components: { pagination }, |
|||
cruds() { |
|||
return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept } }) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
data() { |
|||
return { |
|||
selectedList: [], |
|||
tableData: [ |
|||
{ |
|||
id: 1, |
|||
name: '图片1', |
|||
cover: require('@/assets/images/background.jpg'), |
|||
type: 0, |
|||
user: '某某某', |
|||
device: '所有设备', |
|||
enabled: true, |
|||
isTop: true, |
|||
date: '2021-2-2 至 2022-4-6' |
|||
}, |
|||
{ |
|||
id: 2, |
|||
name: '图片2', |
|||
cover: require('@/assets/images/background.jpg'), |
|||
type: 1, |
|||
user: '某某某2', |
|||
device: '所有设备', |
|||
enabled: false, |
|||
isTop: false, |
|||
date: '2021-2-2 至 2022-4-6' |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
methods: { |
|||
isTophandle(index, row) { |
|||
row.isTop = !row.isTop |
|||
}, |
|||
isStopHandle(index, row) { |
|||
row.enabled = !row.enabled |
|||
}, |
|||
handleSelectionChange(val) { |
|||
this.selectedList = val |
|||
if (val.length > 0) { |
|||
this.clearBtnDisabled = false |
|||
} else { |
|||
this.clearBtnDisabled = true |
|||
} |
|||
console.log(val) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.list_warp { |
|||
padding: 0 24px; |
|||
.stop_txt { |
|||
color: #3a8aeb; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,209 @@ |
|||
<template> |
|||
<div class="list_warp"> |
|||
<el-row :gutter="15"> |
|||
<el-col> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
:data="tableData" |
|||
:header-cell-style="{ background: '#3a8aeb', color: '#fff' }" |
|||
@selection-change="handleSelectionChange" |
|||
> |
|||
<el-table-column type="selection" width="55" /> |
|||
<el-table-column label="序号" type="index" align="center" prop="name" width="50" /> |
|||
<el-table-column label="发布内容" align="center" prop="content" /> |
|||
<el-table-column label="通知时间" align="center" prop="date" /> |
|||
<el-table-column label="发布人" align="center" prop="user" /> |
|||
<el-table-column label="状态" align="center" prop="enabled"> |
|||
<template slot-scope="scope"> |
|||
<div :class="{ 'stop_txt': scope.row.enabled }">{{ scope.row.enabled ? '发布中' : '停止' }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="操作" width="220px" align="center" fixed="right"> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
type="primary" |
|||
class="edit_btn" |
|||
@click="editFormData(scope.$index, scope.row)" |
|||
>编辑</el-button> |
|||
<el-button |
|||
type="primary" |
|||
:class="['start_btn', { 'stop_btn': scope.row.enabled }]" |
|||
@click="isStopHandle(scope.$index, scope.row)" |
|||
>{{ scope.row.enabled ? '停止' : '恢复' }}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination /> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<div class="publish_layer"> |
|||
<el-dialog |
|||
title="紧急发布" |
|||
:close-on-click-modal="false" |
|||
:visible.sync="messageVisible" |
|||
width="872px" |
|||
height="384px" |
|||
> |
|||
<el-form ref="form" :model="form" size="small" label-width="100px"> |
|||
<el-form-item |
|||
label="文本颜色" |
|||
prop="content" |
|||
:rules="[ |
|||
{ required: true, message: '请选择文本内容', trigger: '' } |
|||
]" |
|||
>111</el-form-item> |
|||
<el-form-item |
|||
label="文本内容" |
|||
prop="content" |
|||
:rules="[ |
|||
{ required: true, message: '请输入文本内容', trigger: 'blur' } |
|||
]" |
|||
> |
|||
<el-input type="textarea" rows="6" v-model="form.content" style="width: 674px;" /> |
|||
</el-form-item> |
|||
<el-form-item |
|||
label="文本大小" |
|||
prop="orientation" |
|||
:rules="[ |
|||
{ required: true, message: '请选择文本大小', trigger: 'change' }, |
|||
]" |
|||
> |
|||
<el-select v-model="form.txtSize" size="small" class="filter-item"> |
|||
<el-option |
|||
v-for="item in sizeData" |
|||
:key="item.key" |
|||
:label="item.name" |
|||
:value="item.key" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item |
|||
label="文本位置" |
|||
prop="position" |
|||
:rules="[ |
|||
{ required: true, message: '请选择文本位置', trigger: 'change' }, |
|||
]" |
|||
> |
|||
<el-select v-model="form.position" size="small" class="filter-item"> |
|||
<el-option |
|||
v-for="item in positionData" |
|||
:key="item.key" |
|||
:label="item.name" |
|||
:value="item.key" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item |
|||
label="滚动速度" |
|||
prop="speed" |
|||
:rules="[ |
|||
{ required: true, message: '请选择滚动速度', trigger: 'change' }, |
|||
]" |
|||
> |
|||
<el-select v-model="form.speed" size="small" class="filter-item"> |
|||
<el-option |
|||
v-for="item in speedData" |
|||
:key="item.key" |
|||
:label="item.name" |
|||
:value="item.key" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item |
|||
label="选择设备" |
|||
prop="deviceSelect" |
|||
:rules="[ |
|||
{ required: true, message: '请选择设备', trigger: 'change' }, |
|||
]" |
|||
> |
|||
<el-radio-group v-model="form.deviceSelect"> |
|||
<el-radio label="所有设备" value="all" /> |
|||
<el-radio label="部分设备" value="other" /> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button :loading="crud.status.cu === 2" type="primary" round @click="crud.submitCU">保存</el-button> |
|||
<el-button round @click="crud.cancelCU">关闭</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import crudDept from '@/api/system/dept' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import pagination from '@crud/Pagination' |
|||
const defaultForm = { |
|||
content: '', |
|||
txtSize: '', |
|||
position: '', |
|||
speed: '', |
|||
deviceSelect: '' |
|||
} |
|||
export default { |
|||
name: 'UrgentMessage', |
|||
components: { pagination }, |
|||
cruds() { |
|||
return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept } }) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
data() { |
|||
return { |
|||
messageVisible: false, |
|||
sizeData: [{ key: '0', name: '16' }, { key: '1', name: '22' }, { key: '2', name: '24' }, { key: '3', name: '30' }], |
|||
positionData: [{ key: '0', name: '顶部' }, { key: '1', name: '中间' }, { key: '2', name: '底部' }], |
|||
speedData: [{ key: '0', name: '1s' }, { key: '1', name: '2s' }, { key: '2', name: '3s' }], |
|||
selectedList: [], |
|||
tableData: [ |
|||
{ |
|||
id: 1, |
|||
name: '图片1', |
|||
content: '这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是...', |
|||
user: '某某某', |
|||
enabled: true, |
|||
date: '2021-2-2 16:00' |
|||
}, |
|||
{ |
|||
id: 2, |
|||
name: '图片2', |
|||
content: '这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是...', |
|||
user: '某某某2', |
|||
enabled: false, |
|||
date: '2021-2-2 16:00' |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
methods: { |
|||
isStopHandle(index, row) { |
|||
row.enabled = !row.enabled |
|||
}, |
|||
editFormData(index, row) { |
|||
this.messageVisible = true |
|||
}, |
|||
handleSelectionChange(val) { |
|||
this.selectedList = val |
|||
if (val.length > 0) { |
|||
this.clearBtnDisabled = false |
|||
} else { |
|||
this.clearBtnDisabled = true |
|||
} |
|||
console.log(val) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.list_warp { |
|||
padding: 0 24px; |
|||
.stop_txt { |
|||
color: #3a8aeb; |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue