| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <template>
- <schema-table
- ref="table"
- :schema="schema"
- @row-click="onToggle"
- >
- <program-dialog ref="programDialog" />
- <schedule-dialog ref="scheduleDialog" />
- </schema-table>
- </template>
- <script>
- import {
- getPublishes,
- resolvePublish
- } from '@/api/platform'
- import {
- State,
- EventPriority,
- EventTarget,
- PublishType
- } from '@/constant'
- import { getEventDescription } from '@/utils/event'
- import mixin from './mixin'
- export default {
- name: 'ReviewPublish',
- mixins: [mixin],
- data () {
- return {
- schema: {
- condition: { status: State.SUBMITTED },
- list: getPublishes,
- transform: this.transform,
- cols: [
- { prop: 'expand', type: 'expand', render (data, h) {
- return h('div', {
- staticClass: 'o-info'
- }, [
- h('div', null, data.desc),
- h('div', null, `设备:${data.device}`)
- ])
- } },
- { prop: 'type', label: '类型', width: 100 },
- { prop: 'name', label: '名称', 'min-width': 100 },
- { prop: 'resolutionRatio', label: '分辨率' },
- { prop: 'createBy', label: '申请人' },
- { prop: 'createTime', label: '提交时间' },
- { type: 'invoke', width: 160, render: [
- { label: '查看', on: this.onView },
- { label: '通过', on: this.onResolve },
- { label: '驳回', on: this.onReject }
- ] }
- ]
- }
- }
- },
- methods: {
- resolve: resolvePublish,
- transform (item) {
- const same = this.getSame(item)
- const diff = this.getDiff(item)
- return { ...same, ...diff }
- },
- getSame ({ id, programCalendarName, resolutionRatio, createBy, createByUsername, createTime, calendarReleaseDeviceList }) {
- return {
- id,
- name: programCalendarName,
- resolutionRatio,
- createBy: createByUsername || createBy,
- createTime,
- device: calendarReleaseDeviceList?.map(item => item.deviceName).join(',')
- }
- },
- getDiff (item) {
- const target = JSON.parse(item.target)
- let type = ''
- switch (target.type) {
- case PublishType.CALENDAR:
- type = '排期'
- break
- case PublishType.EVENT:
- type = ['', '默认播放', '单播', '插播'][target.detail.priority]
- break
- default:
- break
- }
- return {
- type,
- target,
- desc: this.getDesc(target)
- }
- },
- getDesc (target) {
- if (target.type === PublishType.EVENT && target.detail.priority === EventPriority.INSERTED) {
- return getEventDescription(target.detail)
- }
- return ''
- },
- onToggle (row) {
- this.$refs.table.getInst().toggleRowExpansion(row)
- },
- onView ({ target: { type, detail } }) {
- switch (type) {
- case PublishType.CALENDAR:
- this.viewSchedule(detail)
- break
- case PublishType.EVENT:
- if (detail.target.type === EventTarget.RECUR) {
- this.viewSchedule(detail.target.id)
- } else {
- this.$refs.programDialog.show(detail.target.id)
- }
- break
- default:
- break
- }
- },
- viewSchedule (id) {
- this.$refs.scheduleDialog.show(id)
- }
- }
- }
- </script>
|