Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
aixianling
2022-06-08 18:02:45 +08:00
8 changed files with 312 additions and 13 deletions

View File

@@ -9,6 +9,7 @@
<script>
import List from './components/List'
import Add from './components/Add'
import Detail from './components/Detail'
export default {
label: '播发记录',
@@ -20,7 +21,7 @@ export default {
data() {
return {
component: 'List',
component: 'Detail',
params: {},
include: [],
}
@@ -28,7 +29,8 @@ export default {
components: {
Add,
List
List,
Detail
},
methods: {
onChange(data) {
@@ -37,6 +39,11 @@ export default {
this.params = data.params
}
if (data.type === 'detail') {
this.component = 'Detail'
this.params = data.params
}
if (data.type == 'list') {
this.component = 'List'
this.params = data.params

View File

@@ -0,0 +1,96 @@
<template>
<ai-detail isHasSidebar>
<template slot="title">
<ai-title title="任务详情" isShowBack isShowBottomBorder @onBackClick="cancel(true)">
</ai-title>
</template>
<template slot="content">
<AiSidebar :tabTitle="tabList" v-model="currIndex"></AiSidebar>
<div v-show="currIndex == 0">
<ai-card title="播发任务" v-show="currIndex === 0">
<template #content>
<!-- <ai-wrapper
label-width="120px">
<ai-info-item label="姓名" :value="info.name"></ai-info-item>
<ai-info-item label="上报时间" :value="info.createTime"></ai-info-item>
<ai-info-item label="身份证号" :value="info.idNumber"></ai-info-item>
<ai-info-item label="所属地区" :value="info.areaName"></ai-info-item>
<ai-info-item label="详细地址" isLine :value="info.address"></ai-info-item>
</ai-wrapper> -->
</template>
</ai-card>
</div>
<ai-card title="播发设备" v-show="currIndex == 1">
<template #content>
<ai-table
class="detail-table__table"
:tableData="tableData"
:col-configs="colConfigs"
:total="total"
:current.sync="search.current"
:size.sync="search.size"
@getList="getList">
<el-table-column slot="options" width="140px" fixed="right" label="操作" align="center">
<template slot-scope="{ row }">
<div class="table-options">
<el-button type="text" @click="toDetail(row.id)">详情</el-button>
</div>
</template>
</el-table-column>
</ai-table>
</template>
</ai-card>
<ai-card title="播发素材" v-show="currIndex == 2">
<template #content>
<ai-table
class="detail-table__table"
:tableData="tableData"
:col-configs="colConfigs"
:total="total"
:current.sync="search.current"
:size.sync="search.size"
@getList="getList">
<el-table-column slot="options" width="140px" fixed="right" label="操作" align="center">
<template slot-scope="{ row }">
<div class="table-options">
<el-button type="text" @click="toDetail(row.id)">详情</el-button>
</div>
</template>
</el-table-column>
</ai-table>
</template>
</ai-card>
</template>
</ai-detail>
</template>
<script>
export default {
name: 'Detail',
components: {},
props: {
dict: Object,
params: Object,
instance: Function,
},
data() {
return {
tabList: ['播发任务','播发设备','播发素材']
}
},
methods: {
cancel(isRefresh) {
this.$emit('change', {
type: 'list',
isRefresh: !!isRefresh,
})
},
}
}
</script>
<style lang="scss" scoped>
.Detail {
height: 100%;
}
</style>

View File

@@ -31,6 +31,7 @@
<el-table-column slot="options" label="操作" align="center" width="180" fixed="right">
<template slot-scope="{ row }">
<el-button type="text" @click="onAdd(row.broadcastId)">复制</el-button>
<el-button type="text" @click="toDetail(row.broadcastId)">详情</el-button>
<el-button type="text" @click="cancel(row.broadcastId)"
v-if="row.broadcastStatus == 0 || row.broadcastStatus == 1 || row.broadcastStatus == 2">撤回
</el-button>
@@ -126,6 +127,14 @@ export default {
}
})
},
toDetail(id) {
this.$emit('change', {
type: 'detail',
params: {
id: id || ''
}
})
},
cancel(id) {
this.$confirm('确定撤回该广播?').then(() => {
this.instance.post(`/app/appzyvideobroadcast/getBroadcastRecall?broadcastId=${id}`).then((res) => {

View File

@@ -8,6 +8,7 @@
<script>
import List from './components/List'
import TaskList from './components/TaskList'
export default {
label: '广播设备管理',
@@ -19,19 +20,20 @@ export default {
data() {
return {
component: 'List',
component: 'TaskList',
params: {},
include: [],
}
},
components: {
List
List,
TaskList,
},
methods: {
onChange(data) {
if (data.type === 'add') {
this.component = 'Add'
if (data.type === 'taskList') {
this.component = 'TaskList'
this.params = data.params
}

View File

@@ -21,9 +21,10 @@
@selection-change="(v) => (ids = v.map((e) => e.id))">
<el-table-column slot="options" label="操作" align="center" width="280" fixed="right">
<template slot-scope="{ row }">
<el-button type="text" @click="close(row.id)">停播</el-button>
<!-- <el-button type="text" @click="close(row.id)">停播</el-button> -->
<el-button type="text" @click="toTaskList(row.id)">任务列表</el-button>
<el-button type="text" @click="bind(row)">绑定行政区划</el-button>
<!-- <el-button type="text" @click="locate=true">地图标绘</el-button>-->
<!-- <el-button type="text" @click="locate=true">地图标绘</el-button>-->
</template>
</el-table-column>
</ai-table>
@@ -187,6 +188,16 @@ export default {
}
})
},
toTaskList(id) {
this.$emit('change', {
type: 'taskList',
params: {
id: id || '',
// areaId: this.areaId,
},
})
},
},
}
</script>

View File

@@ -0,0 +1,130 @@
<template>
<section class="TaskList">
<ai-list>
<ai-title slot="title" title="任务列表" isShowBack isShowBottomBorder @onBackClick="cancel(true)"/>
<template #content>
<ai-search-bar bottomBorder>
<template slot="right">
<el-input v-model="search.keyword" size="small" placeholder="融资名称/创建人" clearable
v-throttle="() => {page.current = 1, getList()}"
@clear=";(page.current = 1), (search.keyword = ''), getList()" suffix-icon="iconfont iconSearch"/>
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :col-configs="colConfigs" :total="total" ref="aitableex"
:current.sync="page.current" :size.sync="page.size" @getList="getList"
@selection-change="(v) => (ids = v.map((e) => e.id))">
<el-table-column slot="options" label="操作" align="center" width="280" fixed="right">
<template slot-scope="{ row }">
<el-button type="text" @click="close(row.id)">撤回任务</el-button>
</template>
</el-table-column>
</ai-table>
</template>
</ai-list>
</section>
</template>
<script>
export default {
name: 'TaskList',
components: {},
props: {
dict: Object,
instance: Function,
params: Object,
},
data() {
return {
page: {
current: 1,
size: 10,
},
total: 0,
search: {
bind: '',
keyword: '',
},
tableData: [],
colConfigs: [
{
prop: 'deviceName',
label: '任务名称',
},
{
prop: 'areaName',
label: '媒资类型',
align: 'center',
},
{
prop: 'serialNo',
label: '级别',
align: 'center',
},
{
prop: 'devStatus',
label: '播发方式',
width: '100',
align: 'center',
render: (h, {row}) => {
return h('span', null, this.dict.getLabel('dlbDevStatus', row.devStatus))
},
},
{
prop: 'bind',
label: '开始时间',
width: '120',
align: 'center',
render: (h, {row}) => {
return h('span', null, this.dict.getLabel('yesOrNo', row.bind))
},
},
{
prop: 'serialNo',
label: '状态',
align: 'center',
},
{
prop: 'serialNo',
label: '创建人',
align: 'center',
},
{
slot: 'options',
label: '操作',
align: 'center',
},
],
}
},
create() {
},
methods: {
getList() {},
close(id) {
this.$confirm('确定停播该设备?').then(() => {
this.instance.post(`/app/appdlbquipment/stop?deviceId=${id}`).then((res) => {
if (res.code == 0) {
this.$message.success('停播成功!')
this.getList()
}
})
})
},
cancel(isRefresh) {
this.$emit('change', {
type: 'list',
isRefresh: !!isRefresh,
})
},
},
}
</script>
<style lang="scss" scoped>
.TaskList {
height: 100%;
}
</style>

View File

@@ -32,13 +32,41 @@
</el-table-column>
<el-table-column slot="options" label="操作" align="center" width="180" fixed="right">
<div class="table-options" slot-scope="{ row }">
<el-button type="text" @click="play(row.id)">播发</el-button>
<!-- play(row.id) -->
<el-button type="text" @click="getItemInfo(row.id)">播发</el-button>
<el-button type="text" @click="remove(row.id)">删除</el-button>
</div>
</el-table-column>
</ai-table>
</template>
</ai-list>
<ai-dialog
title="广播播发"
:visible.sync="detailDialog"
:customFooter="true"
:destroyOnClose="true"
width="780px">
<ai-detail style="background: #FFF;">
<template #content>
<div class="audios">
<ai-audio :src="info.url" v-if="info.type == 1" skin="flat"/>
</div>
<ai-wrapper style="margin-top: 30px;">
<ai-info-item label="媒资名称" :value="info.name"></ai-info-item>
<ai-info-item label="状态" :value="info.content"></ai-info-item>
<ai-info-item label="媒资类型">{{$dict.getLabel('dlbResourceType', info.type)}}</ai-info-item>
<ai-info-item label="创建时间" :value="info.createTime"></ai-info-item>
</ai-wrapper>
</template>
</ai-detail>
<div class="dialog-footer" slot="footer">
<el-button @click="detailDialog=false" size="medium">关闭</el-button>
<el-button @click="play(info.id)" size="medium">新建广播</el-button>
</div>
</ai-dialog>
</section>
</template>
@@ -82,9 +110,9 @@ export default {
return h('span', null, this.dict.getLabel('dlbResourceType', row.type))
},
},
{
slot: 'content',
},
// {
// slot: 'content',
// },
{prop: 'createTime', label: '创建时间', align: 'center'},
{
prop: 'createUserName',
@@ -101,6 +129,8 @@ export default {
],
tableData: [],
areaId: '',
detailDialog: false,
info: {},
}
},
@@ -137,7 +167,18 @@ export default {
})
},
getItemInfo (id) {
this.instance.post(`/app/appdlbresource/queryDetailById?id=${id}`).then(res => {
if (res?.data) {
console.log(res);
this.info = res.data
this.detailDialog = true
}
})
},
play (id) {
this.detailDialog = false
this.$emit('change', {
type: 'Play',
params: {
@@ -184,5 +225,8 @@ export default {
.mar-t10 {
margin-top: 10px;
}
.audios {
padding-left: 40px;
}
}
</style>

View File

@@ -4,7 +4,7 @@
<ai-title :title="id ? '编辑成员' : '添加成员'" isShowBack isShowBottomBorder @onBackClick="cancel(false)">
</ai-title>
</template>
<template slot="content">
<template slot="content">
<el-form ref="form" :model="form" label-width="110px" label-position="right">
<ai-card title="个人信息">
<template #content>