You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

93 lines
2.6 KiB

<template>
<el-row type="flex" justify="center">
<el-col :span="6">
<el-input placeholder="直播间号" v-model="roomId">
<template v-slot:prepend>请输入直播间号</template>
<template v-slot:append>
<el-button @click="add" :disabled="roomId===''">添加</el-button>
</template>
</el-input>
</el-col>
</el-row>
<el-row type="flex" justify="center">
<el-col :span="12">
<el-table :data="tableData">
<el-table-column prop="id" label="直播间号"/>
<el-table-column prop="user" label="直播用户"/>
<el-table-column prop="title" label="直播标题"/>
<el-table-column label="状态">
<template v-slot="scope">
{{ parseStatus(scope.row.status) }}
</template>
</el-table-column>
<el-table-column label="推送配置">
<template v-slot="scope">
<el-checkbox v-model="scope.row._email">邮箱</el-checkbox>
<el-checkbox v-model="scope.row._telegram">telegram</el-checkbox>
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot="scope">
<el-popconfirm title="确认删除此直播间号?">
<template v-slot:reference>
<el-button icon="el-icon-delete">删除</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</template>
<script lang="ts">
import {defineComponent, ref} from "vue";
import {addRoom, JSONResponse, loadRoom, message} from "../request";
export default defineComponent({
name: "Room",
setup() {
const tableData = ref<Array>()
const roomId = ref('')
const add = () => {
addRoom(roomId).then(res => res.json())
.then((res: JSONResponse) => {
message(res)
if (res.result === "OK") {
load()
}
})
}
const load = () => loadRoom().then(res => res.json())
.then((res: JSONResponse) => {
res.rooms.forEach(value => {
value._email = ref(value.email)
value._telegram = ref(value.telegram)
})
tableData.value = res.rooms
})
load()
const parseStatus = (status: number) => {
switch (status) {
case 1:
return "直播"
case 2:
return "轮播"
case 3:
return "离线"
}
}
return {tableData, roomId, add, parseStatus}
}
})
</script>
<style scoped>
</style>