123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <template>
- <avue-form :option="option" v-model="form" @submit="onSubmit" />
- </template>
- <script lang="ts">
- import Vue from 'vue'
- import formOption from "@/avue/form/liveroominfo"
- import { isInteger } from 'lodash'
- import httpx from '@/utils/httpx'
- import dayjs from 'dayjs'
- export default Vue.extend({
- data() {
- return {
- form: {
- title: "",
- imageShare: [""],
- imageCover: [""],
- startTime: "",
- videoKind: "",
- livePushUrl: "",
- livePullRtmpUrl: "",
- livePullHlsUrl: "",
- jmessageRoomId: "",
- replayVideoUrl: "",
- desc: "",
- summary: "",
- showInList: false,
- hours: 0,
- },
- id: 0,
- new: false,
- }
- },
- mounted() {
- const id_str = this.$route.params.id
- const id = parseInt(id_str)
- if (isNaN(id) || !isInteger(id)) {
- if (id_str === "new") {
- this.new = true
- } else {
- this.notFound()
- }
- } else {
- this.new = false
- this.id = id
- this.getRoomInfo(id)
- }
- },
- computed: {
- option() {
- //@ts-ignore
- return formOption(this.new)
- }
- },
- methods: {
- getRoomInfo(id?: number) {
- id = id || this.id
- return httpx.post("/rooms/getRoom", { id }).then(({ data }) => {
- const roominfo = data.roomInfo
- this.form = {
- title: roominfo.title,
- imageShare: [roominfo.imageShare],
- imageCover: [roominfo.imageCover],
- startTime: roominfo.startTime,
- videoKind: roominfo.videoKind,
- livePushUrl: roominfo.livePushUrl,
- livePullHlsUrl: roominfo.livePullHlsUrl,
- livePullRtmpUrl: roominfo.livePullRtmpUrl,
- jmessageRoomId: roominfo.jmessageRoomId,
- replayVideoUrl: roominfo.replayVideoUrl,
- desc: roominfo.desc,
- summary: roominfo.summary,
- showInList: roominfo.showInList,
- hours: roominfo.hours,
- }
- }).catch(this.notFound)
- },
- onSubmit(form: any, done: Function) {
- const path = this.new ? "/rooms/addLiveRoom" : "/rooms/updateRoom"
- const postdata = {
- id: this.new ? undefined : this.id,
- adminId: this.new ? 0 : undefined,
- viewCount: this.new ? 0 : undefined,
- hours: 0,
- title: form.title,
- imageShare: form.imageShare[0] || "",
- imageCover: form.imageCover[0] || "",
- startTime: dayjs(form.startTime).format("YYYY-MM-DD HH:mm:ss"),
- livePushUrl: form.livePushUrl,
- livePullHlsUrl: form.livePullHlsUrl,
- livePullRtmpUrl: form.livePullRtmpUrl,
- jmessageRoomId: form.jmessageRoomId,
- replayVideoUrl: form.replayVideoUrl,
- videoKind: form.videoKind,
- desc: form.desc,
- summary: form.summary,
- showInList: form.showInList,
- }
- httpx.post(path, postdata).then((data) => {
- console.log(data)
- this.$message({
- message: '操作成功',
- type: 'success',
- duration: 1500
- })
- this.$router.back()
- })
- done()
- },
- notFound() {
- this.$router.replace("/404")
- }
- }
- })
- </script>
|