| | |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li><el-button type="primary" @click="synchronousData">同步</el-button></li> |
| | | </ul> |
| | | <ul class="toolbar" v-permissions="['business:device:create', 'business:device:delete']"> |
| | | <li><el-button type="primary" :loading="isWorking.delete" @click="synchronousData">同步</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaDeviceWindow.open('新建广播')" icon="el-icon-plus" v-permissions="['business:device:create']">新建</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:device:delete']">删除</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | :height="tableHeightNew" |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column label="序号" width="55" fixed><template slot-scope="scope" >{{scope.$index+1}}</template></el-table-column> |
| | | <el-table-column prop="name" label="名称"></el-table-column> |
| | | <el-table-column prop="hkId" label="广播点唯一标识" min-width="200"></el-table-column> |
| | | <el-table-column prop="channelInfo" label="广播点类型"></el-table-column> |
| | | <el-table-column prop="channelNo" label="通道号"></el-table-column> |
| | | <el-table-column prop="regionName" label="区域名称"></el-table-column> |
| | | <el-table-column prop="hkDate" label="同步时间"></el-table-column> |
| | | <el-table-column prop="hkId" label="唯一标识" ></el-table-column> |
| | | <el-table-column prop="no" label="序列号" ></el-table-column> |
| | | <el-table-column prop="regionPathName" label="所在位置"></el-table-column> |
| | | <el-table-column prop="editDate" label="最近更新时间"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:devicerole:update', 'business:devicerole:delete'])" |
| | | label="操作" |
| | | align="center" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDeviceWindow.open('编辑广播', row)" icon="el-icon-edit" v-permissions="['business:device:update']">编辑</el-button> |
| | | <el-button type="text" @click="send(row)" icon="el-icon-edit" v-permissions="['business:device:update']">发送播报</el-button> |
| | | <el-button type="text" class="red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:device:delete']">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <el-dialog |
| | | :visible.sync="visibleSend" |
| | | style="z-index: 100000" |
| | | append-to-body |
| | | width="50%" |
| | | height="50%" |
| | | :title="'发送播报-'+ form.name" |
| | | > |
| | | <el-form :model="form" ref="form" > |
| | | <el-form-item label="播报内容" prop="name" required> |
| | | <el-input v-model="form.sendInfo" type="textarea" placeholder="请输入播报内容" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template v-slot:footer > |
| | | <el-button @click="sendBobao()" type="primary" :loading="isWorkSending">确认</el-button> |
| | | <el-button @click="sendClose()">返回</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- 新建/修改 --> |
| | | <!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>--> |
| | | <OperaDeviceBroadcastWindow ref="operaDeviceWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceWindow from '@/components/business/OperaDeviceWindow' |
| | | import { syncDevices, updateEntranceById } from '@/api/business/device' |
| | | import OperaDeviceBroadcastWindow from '@/components/business/OperaDeviceBroadcastWindow' |
| | | export default { |
| | | name: 'Device', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceWindow }, |
| | | components: { TableLayout, Pagination, OperaDeviceBroadcastWindow }, |
| | | data () { |
| | | return { |
| | | // 搜索 |
| | |
| | | regionPathName: '', |
| | | isEntrance: '', |
| | | online: '', |
| | | type: 3 |
| | | type: 4 |
| | | }, |
| | | isWorkSending: false, |
| | | form: { |
| | | sendInfo: '', |
| | | id: '', |
| | | hkId: '', |
| | | name: '' |
| | | }, |
| | | visibleSend: false, |
| | | options: [] |
| | | } |
| | | }, |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeManufature(e, row) { |
| | | updateEntranceById({ |
| | | id: row.id, |
| | | isEntrance: e |
| | | }) |
| | | sendBobao () { |
| | | if(!this.form.sendInfo){ |
| | | return |
| | | } |
| | | this.$dialog.actionConfirm('确认进行广播播报吗?','操作确认提醒') |
| | | .then(() => { |
| | | this.isWorkSending = true |
| | | this.api.sendBobao(this.form) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '播报请求成功') |
| | | this.sendClose() |
| | | }) |
| | | .catch(e => { |
| | | }) |
| | | .finally(() => { |
| | | this.isWorkSending = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | }, |
| | | synchronousData () { |
| | | send (row) { |
| | | this.visibleSend = true |
| | | this.form = { sendInfo: '', id: row.id, hkId: row.hkId, name: row.name } |
| | | }, |
| | | sendClose () { |
| | | this.visibleSend = false |
| | | this.isWorkSending = false |
| | | this.form = { sendInfo: '', id: '', hkId: '', name: '' } |
| | | }, |
| | | synchronousData () { |
| | | this.$dialog.actionConfirm('操作确认提醒', '您确认同步全部信息吗?') |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | syncDevices({type: 3}) |
| | | syncDevices({type: 4}) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '同步成功') |
| | | this.search() |