|
@@ -1,59 +1,153 @@
|
|
<template>
|
|
<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
<!-- 新增 -->
|
|
<!-- 新增 -->
|
|
- <el-button type="primary" icon="el-icon-plus" size="mini" @click="getDialog('新增')"
|
|
|
|
- v-hasPermi="['operation:channel:add']">
|
|
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ icon="el-icon-plus"
|
|
|
|
+ size="mini"
|
|
|
|
+ @click="getDialog('新增')"
|
|
|
|
+ v-hasPermi="['operation:channel:add']"
|
|
|
|
+ >
|
|
新增频道配置
|
|
新增频道配置
|
|
</el-button>
|
|
</el-button>
|
|
<!-- 列表 -->
|
|
<!-- 列表 -->
|
|
<el-table :data="tableData" v-loading="loading">
|
|
<el-table :data="tableData" v-loading="loading">
|
|
<el-table-column label="序号" align="center" type="index" />
|
|
<el-table-column label="序号" align="center" type="index" />
|
|
<el-table-column label="频道配置名称" prop="name" align="center" />
|
|
<el-table-column label="频道配置名称" prop="name" align="center" />
|
|
- <el-table-column label="部署形式" prop="type" align="center" :formatter="typeFormatter" />
|
|
|
|
- <el-table-column label="设备" prop="deviceIds" align="center" :formatter="devFormatter" show-overflow-tooltip />
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="部署形式"
|
|
|
|
+ prop="type"
|
|
|
|
+ align="center"
|
|
|
|
+ :formatter="typeFormatter"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="设备"
|
|
|
|
+ prop="deviceIds"
|
|
|
|
+ align="center"
|
|
|
|
+ :formatter="devFormatter"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ />
|
|
<el-table-column label="操作" align="center">
|
|
<el-table-column label="操作" align="center">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <el-button type="text" @click="getDialog('查看', scope.row, scope.$index, true)">查看</el-button>
|
|
|
|
- <el-button type="text" @click="getDialog('编辑', scope.row, scope.$index)"
|
|
|
|
- v-hasPermi="['operation:channel:edit']">编辑</el-button>
|
|
|
|
- <el-button v-if="scope.$index !== 0" type="delete" @click="getDelete(scope.row)"
|
|
|
|
- v-hasPermi="['operation:channel:delete']">
|
|
|
|
|
|
+ <el-button
|
|
|
|
+ type="text"
|
|
|
|
+ @click="getDialog('查看', scope.row, scope.$index, true)"
|
|
|
|
+ >查看</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ type="text"
|
|
|
|
+ @click="getDialog('编辑', scope.row, scope.$index)"
|
|
|
|
+ v-hasPermi="['operation:channel:edit']"
|
|
|
|
+ >编辑</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ v-if="scope.$index !== 0"
|
|
|
|
+ type="delete"
|
|
|
|
+ @click="getDelete(scope.row)"
|
|
|
|
+ v-hasPermi="['operation:channel:delete']"
|
|
|
|
+ >
|
|
删除
|
|
删除
|
|
</el-button>
|
|
</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
<!-- 弹窗 -->
|
|
<!-- 弹窗 -->
|
|
- <el-dialog :visible.sync="dialogVisible" :title="title" width="950px" :before-close="cancel">
|
|
|
|
|
|
+ <el-dialog
|
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
|
+ :title="title"
|
|
|
|
+ width="950px"
|
|
|
|
+ :before-close="cancel"
|
|
|
|
+ >
|
|
<el-form label-width="auto">
|
|
<el-form label-width="auto">
|
|
- <el-form-item v-if="index !== 1" label="频道配置名称:" style="width: 300px">
|
|
|
|
- <el-input v-model="dialogForm.name" placeholder="请输入规则名称" :disabled="disabled" />
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="index !== 1"
|
|
|
|
+ label="频道配置名称:"
|
|
|
|
+ style="width: 300px"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="dialogForm.name"
|
|
|
|
+ placeholder="请输入规则名称"
|
|
|
|
+ :disabled="disabled"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item v-if="index !== 1" label="关联设备:">
|
|
<el-form-item v-if="index !== 1" label="关联设备:">
|
|
- <el-select v-model="ids" filterable multiple placeholder="请选择关联设备" :disabled="disabled">
|
|
|
|
- <el-option v-for="item in devOptions" :key="item.clientTypeId" :value="item.clientTypeId.toString()"
|
|
|
|
- :label="item.name" />
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="ids"
|
|
|
|
+ filterable
|
|
|
|
+ multiple
|
|
|
|
+ placeholder="请选择关联设备"
|
|
|
|
+ :disabled="disabled"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in devOptions"
|
|
|
|
+ :key="item.clientTypeId"
|
|
|
|
+ :value="item.clientTypeId.toString()"
|
|
|
|
+ :label="item.name"
|
|
|
|
+ />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item v-if="title !== '新增'" label="内容列表:" style="height: 500px; overflow-y: auto;">
|
|
|
|
- <el-table :data="list" v-loading="dialog_loading" lazy :default-sort="{ prop: 'sort' }">
|
|
|
|
- <el-table-column label="序号" prop="sort" align="center" width="100px" />
|
|
|
|
- <el-table-column label="频道数" prop="channelId" align="center" width="100px" />
|
|
|
|
- <el-table-column label="频道名称" prop="aliasName" align="center" show-overflow-tooltip />
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="title !== '新增'"
|
|
|
|
+ label="内容列表:"
|
|
|
|
+ style="height: 500px; overflow-y: auto"
|
|
|
|
+ >
|
|
|
|
+ <el-table
|
|
|
|
+ :data="list"
|
|
|
|
+ v-loading="dialog_loading"
|
|
|
|
+ lazy
|
|
|
|
+ :default-sort="{ prop: 'sort' }"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="序号"
|
|
|
|
+ prop="sort"
|
|
|
|
+ align="center"
|
|
|
|
+ width="100px"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="频道数"
|
|
|
|
+ prop="channelId"
|
|
|
|
+ align="center"
|
|
|
|
+ width="100px"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="频道名称"
|
|
|
|
+ prop="aliasName"
|
|
|
|
+ align="center"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ />
|
|
<el-table-column label="频道封面" align="center" width="100px">
|
|
<el-table-column label="频道封面" align="center" width="100px">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-image :src="scope.row.pic"></el-image>
|
|
<el-image :src="scope.row.pic"></el-image>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="频道简介" prop="description" align="center" show-overflow-tooltip />
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="频道简介"
|
|
|
|
+ prop="description"
|
|
|
|
+ align="center"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ />
|
|
<el-table-column label="操作" align="center">
|
|
<el-table-column label="操作" align="center">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <el-button type="text" @click="edit(scope, true)">查看</el-button>
|
|
|
|
- <el-button type="text" @click="edit(scope)" :disabled="disabled">编辑</el-button>
|
|
|
|
- <el-button v-if="scope.row.sort > 3" type="text" icon="el-icon-caret-top"
|
|
|
|
- @click="getChange(scope.row.id, scope.row.sort - 1)" :disabled="disabled" />
|
|
|
|
- <el-button v-if="scope.row.sort > 2 && scope.row.sort < 12" type="text" icon="el-icon-caret-bottom"
|
|
|
|
- @click="getChange(scope.row.id, scope.row.sort + 1)" :disabled="disabled" />
|
|
|
|
|
|
+ <el-button type="text" @click="edit(scope, true)"
|
|
|
|
+ >查看</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button type="text" @click="edit(scope)" :disabled="disabled"
|
|
|
|
+ >编辑</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ v-if="scope.row.sort > 3"
|
|
|
|
+ type="text"
|
|
|
|
+ icon="el-icon-caret-top"
|
|
|
|
+ @click="getChange(scope.row.id, scope.row.sort - 1)"
|
|
|
|
+ :disabled="disabled"
|
|
|
|
+ />
|
|
|
|
+ <el-button
|
|
|
|
+ v-if="scope.row.sort > 2 && scope.row.sort < 12"
|
|
|
|
+ type="text"
|
|
|
|
+ icon="el-icon-caret-bottom"
|
|
|
|
+ @click="getChange(scope.row.id, scope.row.sort + 1)"
|
|
|
|
+ :disabled="disabled"
|
|
|
|
+ />
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -68,9 +162,17 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { change, channelPage, create, devList, editPage, getRemove, page } from '@/api/operation/channel';
|
|
|
|
|
|
+import {
|
|
|
|
+change,
|
|
|
|
+channelPage,
|
|
|
|
+create,
|
|
|
|
+devList,
|
|
|
|
+editPage,
|
|
|
|
+getRemove,
|
|
|
|
+page,
|
|
|
|
+} from "@/api/operation/channel";
|
|
export default {
|
|
export default {
|
|
- name: 'Channel',
|
|
|
|
|
|
+ name: "Channel",
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
// 遮罩层
|
|
// 遮罩层
|
|
@@ -81,14 +183,14 @@ export default {
|
|
list: [],
|
|
list: [],
|
|
// 弹窗
|
|
// 弹窗
|
|
dialogVisible: false,
|
|
dialogVisible: false,
|
|
- title: '',
|
|
|
|
|
|
+ title: "",
|
|
// 设备
|
|
// 设备
|
|
devOptions: [],
|
|
devOptions: [],
|
|
allDevOptions: [],
|
|
allDevOptions: [],
|
|
// 表单
|
|
// 表单
|
|
form: {
|
|
form: {
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
- pageSize: 10
|
|
|
|
|
|
+ pageSize: 10,
|
|
},
|
|
},
|
|
index: 0,
|
|
index: 0,
|
|
dialogForm: {},
|
|
dialogForm: {},
|
|
@@ -96,139 +198,142 @@ export default {
|
|
// 频道规则Id
|
|
// 频道规则Id
|
|
obj: {},
|
|
obj: {},
|
|
// 部署形式
|
|
// 部署形式
|
|
- typeOptions: [{
|
|
|
|
- value: 0,
|
|
|
|
- label: '注册用户-默认'
|
|
|
|
- }, {
|
|
|
|
- value: 1,
|
|
|
|
- label: '绑定特定设备'
|
|
|
|
- }],
|
|
|
|
|
|
+ typeOptions: [
|
|
|
|
+ {
|
|
|
|
+ value: 0,
|
|
|
|
+ label: "注册用户-默认",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: 1,
|
|
|
|
+ label: "绑定特定设备",
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
// 只读
|
|
// 只读
|
|
- disabled: false
|
|
|
|
|
|
+ disabled: false,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
ids(val) {
|
|
ids(val) {
|
|
- this.dialogForm.deviceIds = val.join(',')
|
|
|
|
- }
|
|
|
|
|
|
+ this.dialogForm.deviceIds = val.join(",");
|
|
|
|
+ },
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
- this.getDevList()
|
|
|
|
- this.getList()
|
|
|
|
|
|
+ this.getDevList();
|
|
|
|
+ this.getList();
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
// 列表
|
|
// 列表
|
|
getList() {
|
|
getList() {
|
|
- this.loading = true
|
|
|
|
- page(this.form).then(res => {
|
|
|
|
|
|
+ this.loading = true;
|
|
|
|
+ page(this.form).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.tableData = res.data
|
|
|
|
- this.loading = false
|
|
|
|
|
|
+ this.tableData = res.data;
|
|
|
|
+ this.loading = false;
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
},
|
|
},
|
|
|
|
|
|
// 全部设备
|
|
// 全部设备
|
|
getDevList() {
|
|
getDevList() {
|
|
- devList(1).then(res => {
|
|
|
|
|
|
+ devList(1).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.allDevOptions = []
|
|
|
|
- res.data.map(i => {
|
|
|
|
|
|
+ this.allDevOptions = [];
|
|
|
|
+ res.data.map((i) => {
|
|
this.allDevOptions.push({
|
|
this.allDevOptions.push({
|
|
value: i.clientTypeId,
|
|
value: i.clientTypeId,
|
|
- label: i.name
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
|
|
+ label: i.name,
|
|
|
|
+ });
|
|
|
|
+ });
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
},
|
|
},
|
|
|
|
|
|
// 编辑
|
|
// 编辑
|
|
edit(e, boolean) {
|
|
edit(e, boolean) {
|
|
- this.dialogVisible = false
|
|
|
|
|
|
+ this.dialogVisible = false;
|
|
this.$router.push({
|
|
this.$router.push({
|
|
path: `/operation/channel/detail`,
|
|
path: `/operation/channel/detail`,
|
|
query: {
|
|
query: {
|
|
channelId: e.row.id,
|
|
channelId: e.row.id,
|
|
audioType: e.row.channelType,
|
|
audioType: e.row.channelType,
|
|
index: e.$index,
|
|
index: e.$index,
|
|
- boolean: boolean
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ boolean: boolean,
|
|
|
|
+ },
|
|
|
|
+ });
|
|
},
|
|
},
|
|
|
|
|
|
// 删除
|
|
// 删除
|
|
getDelete(row) {
|
|
getDelete(row) {
|
|
- this.$confirm(`是否删除${row.name}?`, '提示', {
|
|
|
|
- type: 'warning'
|
|
|
|
|
|
+ this.$confirm(`是否删除${row.name}?`, "提示", {
|
|
|
|
+ type: "warning",
|
|
}).then(() => {
|
|
}).then(() => {
|
|
- getRemove(row.id).then(res => {
|
|
|
|
|
|
+ getRemove(row.id).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.$message.success('删除成功!')
|
|
|
|
- this.getList()
|
|
|
|
|
|
+ this.$message.success("删除成功!");
|
|
|
|
+ this.getList();
|
|
}
|
|
}
|
|
- })
|
|
|
|
- })
|
|
|
|
|
|
+ });
|
|
|
|
+ });
|
|
},
|
|
},
|
|
|
|
|
|
// 弹窗
|
|
// 弹窗
|
|
getDialog(title, row, index, boolean) {
|
|
getDialog(title, row, index, boolean) {
|
|
- this.dialogVisible = true
|
|
|
|
- this.title = title
|
|
|
|
- this.index = index + 1
|
|
|
|
- this.obj = row
|
|
|
|
- this.disabled = boolean
|
|
|
|
|
|
+ this.dialogVisible = true;
|
|
|
|
+ this.title = title;
|
|
|
|
+ this.index = index + 1;
|
|
|
|
+ this.obj = row;
|
|
|
|
+ this.disabled = boolean;
|
|
// 新增 / 编辑时的设备
|
|
// 新增 / 编辑时的设备
|
|
- devList(0).then(res => {
|
|
|
|
|
|
+ devList(0).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.devOptions = res.data
|
|
|
|
- if (this.title !== '新增') {
|
|
|
|
- this.devOptions.unshift.apply(this.devOptions, row.deviceList)
|
|
|
|
|
|
+ this.devOptions = res.data;
|
|
|
|
+ if (this.title !== "新增") {
|
|
|
|
+ this.devOptions.unshift.apply(this.devOptions, row.deviceList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
|
|
|
|
- if (title !== '新增') {
|
|
|
|
- this.dialogForm = row
|
|
|
|
|
|
+ if (title !== "新增") {
|
|
|
|
+ this.dialogForm = row;
|
|
if (this.index !== 1) {
|
|
if (this.index !== 1) {
|
|
- this.ids = this.dialogForm.deviceIds.split(',')
|
|
|
|
|
|
+ this.ids = this.dialogForm.deviceIds.split(",");
|
|
}
|
|
}
|
|
- this.getPage(row)
|
|
|
|
|
|
+ this.getPage(row);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
// 十二频道
|
|
// 十二频道
|
|
getPage(row) {
|
|
getPage(row) {
|
|
- channelPage(row.id).then(res => {
|
|
|
|
|
|
+ channelPage(row.id).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.list = res.data
|
|
|
|
- this.dialog_loading = false
|
|
|
|
|
|
+ this.list = res.data;
|
|
|
|
+ this.dialog_loading = false;
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
},
|
|
},
|
|
|
|
|
|
// 创建
|
|
// 创建
|
|
getSubmit() {
|
|
getSubmit() {
|
|
- if (this.title === '编辑') {
|
|
|
|
- editPage(this.dialogForm).then(res => {
|
|
|
|
|
|
+ if (this.title === "编辑") {
|
|
|
|
+ editPage(this.dialogForm).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.$message.success('修改成功!')
|
|
|
|
- this.dialogVisible = false
|
|
|
|
- this.getList()
|
|
|
|
|
|
+ this.$message.success("修改成功!");
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ this.getList();
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
} else {
|
|
} else {
|
|
create({
|
|
create({
|
|
name: this.dialogForm.name,
|
|
name: this.dialogForm.name,
|
|
deviceIds: this.dialogForm.deviceIds,
|
|
deviceIds: this.dialogForm.deviceIds,
|
|
- type: 1
|
|
|
|
- }).then(res => {
|
|
|
|
|
|
+ type: 1,
|
|
|
|
+ }).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.$message.success('新增成功!')
|
|
|
|
- this.dialogVisible = false
|
|
|
|
- this.getList()
|
|
|
|
|
|
+ this.$message.success("新增成功!");
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ this.getList();
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
@@ -236,30 +341,35 @@ export default {
|
|
getChange(id, sort) {
|
|
getChange(id, sort) {
|
|
change({
|
|
change({
|
|
id: id,
|
|
id: id,
|
|
- sort: sort
|
|
|
|
- }).then(res => {
|
|
|
|
|
|
+ sort: sort,
|
|
|
|
+ }).then((res) => {
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
- this.$message.success('修改成功!')
|
|
|
|
- this.getPage(this.obj)
|
|
|
|
|
|
+ this.$message.success("修改成功!");
|
|
|
|
+ this.getPage(this.obj);
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
},
|
|
},
|
|
|
|
|
|
// 取消
|
|
// 取消
|
|
cancel() {
|
|
cancel() {
|
|
- this.dialogVisible = false
|
|
|
|
- this.ids = []
|
|
|
|
- this.dialogForm = {}
|
|
|
|
- this.getList()
|
|
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ this.ids = [];
|
|
|
|
+ this.dialogForm = {};
|
|
|
|
+ this.getList();
|
|
},
|
|
},
|
|
|
|
|
|
// 字典翻译
|
|
// 字典翻译
|
|
typeFormatter(row) {
|
|
typeFormatter(row) {
|
|
- return this.selectDictLabel(this.typeOptions, row.type)
|
|
|
|
|
|
+ return this.selectDictLabel(this.typeOptions, row.type);
|
|
},
|
|
},
|
|
devFormatter(row) {
|
|
devFormatter(row) {
|
|
- return row.deviceIds ? row.deviceIds.split(',').map(i => this.selectDictLabel(this.allDevOptions, i)).join(',') : ''
|
|
|
|
- }
|
|
|
|
|
|
+ return row.deviceIds
|
|
|
|
+ ? row.deviceIds
|
|
|
|
+ .split(",")
|
|
|
|
+ .map((i) => this.selectDictLabel(this.allDevOptions, i))
|
|
|
|
+ .join(",")
|
|
|
|
+ : "";
|
|
|
|
+ },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|