|
@@ -10,7 +10,13 @@
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="info">
|
|
|
- <data-table :fields="fields" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search"></data-table>
|
|
|
+ <data-table :fields="fields" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search" :toFormat="toFormat">
|
|
|
+ <template #options="{item}">
|
|
|
+ <template v-if="item.prop === 'anchorid'">
|
|
|
+ <el-option v-for="(i, index) in clientList" :key="index" :label="i.name" :value="i.id"></el-option>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </data-table>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
@@ -19,8 +25,9 @@
|
|
|
import topInfo from '@/layout/public/top.vue';
|
|
|
import dataTable from '@/components/data-table.vue';
|
|
|
import { mapActions, mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: room } = createNamespacedHelpers('room');
|
|
|
+const { mapActions: roomuser } = createNamespacedHelpers('roomuser');
|
|
|
|
|
|
-const { mapActions: role } = createNamespacedHelpers('role');
|
|
|
export default {
|
|
|
name: 'index',
|
|
|
props: {},
|
|
@@ -29,6 +36,7 @@ export default {
|
|
|
dataTable,
|
|
|
},
|
|
|
data: () => ({
|
|
|
+ clientList: [],
|
|
|
opera: [
|
|
|
{
|
|
|
label: '编辑',
|
|
@@ -45,25 +53,47 @@ export default {
|
|
|
fields: [
|
|
|
{ label: '房间名称', prop: 'name' },
|
|
|
{ label: '房间类型', prop: 'type', format: i => (i == '0' ? '直播' : i == '1' ? '会议' : '临时用户') },
|
|
|
- { label: '房间地址', prop: 'url' },
|
|
|
+ {
|
|
|
+ label: '主播',
|
|
|
+ prop: 'anchorid',
|
|
|
+ filter: 'select',
|
|
|
+ format: true,
|
|
|
+ },
|
|
|
],
|
|
|
list: [],
|
|
|
total: 0,
|
|
|
}),
|
|
|
created() {
|
|
|
this.search();
|
|
|
+ this.searchinfo();
|
|
|
},
|
|
|
methods: {
|
|
|
- ...role(['query', 'delete', 'update', 'fetch']),
|
|
|
-
|
|
|
+ ...room(['query', 'delete', 'update', 'fetch']),
|
|
|
+ ...roomuser({ roomuserquery: 'query' }),
|
|
|
async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
let res = await this.query();
|
|
|
console.log(res.data);
|
|
|
this.$set(this, `list`, res.data);
|
|
|
+ this.$set(this, `total`, res.total);
|
|
|
+ },
|
|
|
+
|
|
|
+ async searchinfo() {
|
|
|
+ let res = await this.roomuserquery();
|
|
|
+ console.log(res.data);
|
|
|
+ this.$set(this, `clientList`, res.data);
|
|
|
+ },
|
|
|
+
|
|
|
+ toFormat(data) {
|
|
|
+ let { model, value } = data;
|
|
|
+ let res = '';
|
|
|
+ if (model === 'anchorid') {
|
|
|
+ let findRes = this.clientList.find(f => f.id === value);
|
|
|
+ if (findRes) res = findRes.name;
|
|
|
+ }
|
|
|
+ return res;
|
|
|
},
|
|
|
toEdit({ data }) {
|
|
|
console.log('1');
|
|
|
-
|
|
|
this.$router.push({ path: './detail', query: { id: data.id } });
|
|
|
},
|
|
|
|