Merge branch 'master' of http://git.luyuan.tk/luyuan/beelink into zj

This commit is contained in:
asd 2020-10-30 15:49:12 +08:00
commit 636cb8acbf
8 changed files with 139 additions and 13 deletions

View File

@ -25,6 +25,8 @@ export default defineComponent({
store.commit("login", true) store.commit("login", true)
store.dispatch("setUserInfo"); store.dispatch("setUserInfo");
}else{ }else{
console.log('ip')
store.dispatch("getip");
router.push("/") router.push("/")
} }
return{ return{

View File

@ -166,6 +166,11 @@ interface Liveaddrule{
export async function liveadd(data: any) { export async function liveadd(data: any) {
const res = await post<Liveaddrule>('live',data); const res = await post<Liveaddrule>('live',data);
console.log(res) console.log(res)
if(res.code==0){
message.success(res.msg)
}else{
message.error(res.msg)
}
} }
/** /**
@ -196,7 +201,7 @@ export async function setvideo(data?: any) {
console.log(data,11110) console.log(data,11110)
const res=await put<Liveaddrule>('video/'+data.id,data) const res=await put<Liveaddrule>('video/'+data.id,data)
if(res.code==0){ if(res.code==0){
message.success("修改成功") message.success(res.msg)
}else{ }else{
message.error(res.msg) message.error(res.msg)
} }
@ -967,4 +972,35 @@ export async function livestart(id: string) {
}else{ }else{
message.error(res.msg) message.error(res.msg)
} }
} }
export async function livestop(id: string, roomid: string) {
const res = await put("live/" + id, {status : 2})
if(res.code == 0){
message.success(res.msg)
}else{
message.error(res.msg)
}
const luzhi = await get('StopMCUMixTranscode', {roomid});
console.log(luzhi)
}
export async function luzhi(roomid: string){
const res = await get('StartMCUMixTranscode', {roomid});
console.log(res)
}
export async function getaddr() {
const res = await get<any>('ip');
const gj = res.data.address.split("|")[0];
if(gj == "CN"){
return ["zh", "中文", '人民币¥'];
}else {
return ['en', 'English', '美元$']
}
}
// export async function StopMCUMixTranscode(roomid: number) {
// const res = await get('StopMCUMixTranscode', {roomid});
// console.log(res)
// }

View File

@ -15,7 +15,7 @@
</div> </div>
<div class="takehour" v-if="i.status == 1 && livestatus == 2"> <div class="takehour" v-if="i.status == 1 && livestatus == 2">
{{lan.$t('canjiashichang')}} {{lan.$t('canjiashichang')}}
<div>30min</div> <div>{{i.length}}min</div>
</div> </div>
<div <div
class="cancel" class="cancel"

View File

@ -115,8 +115,10 @@
} }
</style> </style>
<script lang="ts"> <script lang="ts">
import { setToken } from '@/api/base';
import router from '@/router'; import router from '@/router';
import store from '@/store'; import store from '@/store';
import { saveValue } from '@/utils/common';
import { useI18n } from '@/utils/i18n'; import { useI18n } from '@/utils/i18n';
import { computed, defineComponent, ref } from 'vue'; import { computed, defineComponent, ref } from 'vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
@ -200,6 +202,8 @@ export default defineComponent({
function logout(): void{ function logout(): void{
store.commit("login", false) store.commit("login", false)
saveValue("token", "");
setToken();
router.replace("/"); router.replace("/");
} }

View File

@ -1,4 +1,5 @@
import { userinfo } from '@/api'; import { getaddr, userinfo } from '@/api';
import { isProxy } from 'vue';
import { createStore } from 'vuex' import { createStore } from 'vuex'
export default createStore({ export default createStore({
@ -57,6 +58,14 @@ export default createStore({
}, },
login(state, islogin: boolean){ login(state, islogin: boolean){
state.islogin = islogin; state.islogin = islogin;
},
setLanguage(state, data){
const split = new Date().toString().split(" ");
const timeZoneFormatted = split[split.length - 2] + " " + split[split.length - 1];
state.userinfo.language = data[1] // English 中文
state.userinfo.languageValue = data[0] // 'en' 'zh'
state.userinfo.zoneStr = timeZoneFormatted;
state.userinfo.currency = data[2];
} }
}, },
actions: { actions: {
@ -64,7 +73,14 @@ export default createStore({
const user = await userinfo(); const user = await userinfo();
if(user != '未登录'){ if(user != '未登录'){
commit('setUserInfo', user); commit('setUserInfo', user);
} else {
const info = await getaddr();
commit("setLanguage", info)
} }
},
async getip({ commit }){
const info = await getaddr();
commit("setLanguage", info)
} }
}, },
modules: { modules: {

View File

@ -119,6 +119,7 @@
type="number" type="number"
/> />
<span class="unit">{{ lan.$t("fenzhong") }}</span> <span class="unit">{{ lan.$t("fenzhong") }}</span>
<div style="color: red;font-size: 0.12rem;line-height: 1.3;">*最短30min, 最长120min</div>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
:label="lan.$t('zhiborenshu')" :label="lan.$t('zhiborenshu')"
@ -130,6 +131,8 @@
:placeholder="lan.$t('shuruzhiborenshu')" :placeholder="lan.$t('shuruzhiborenshu')"
type="number" type="number"
/> />
<div style="color: red;font-size: 0.12rem;line-height: 1.3;">*最少1人, 最多4人</div>
</a-form-item> </a-form-item>
<a-form-item :label="lan.$t('zhibojianjie')" class="brief"> <a-form-item :label="lan.$t('zhibojianjie')" class="brief">
<a-textarea <a-textarea
@ -349,8 +352,15 @@ export default defineComponent({
message.error(lan.$t('zhibojianjieweikong')); message.error(lan.$t('zhibojianjieweikong'));
return; return;
} else { } else {
if(subdata.livetime < 30 || subdata.livetime > 120){
if (lives.value.status == 0) { message.error("直播时长最短30min, 最长120min");
return ;
}
if(subdata.livenumber > 4 || subdata.livenumber < 1){
message.error("直播人数最少1人, 最多4人");
return ;
}
if (!lives.value.status) {
// subdata.fileid=picinfo. // subdata.fileid=picinfo.
if (id != undefined && id) { if (id != undefined && id) {
/** /**

View File

@ -194,7 +194,7 @@ import { defineComponent, onMounted, ref } from "vue";
import LivePlaying from "@/components/LivePlaying.vue"; import LivePlaying from "@/components/LivePlaying.vue";
import LiveingWatcher from "@/components/LiveingWatcher.vue"; import LiveingWatcher from "@/components/LiveingWatcher.vue";
import TRTC from "trtc-js-sdk" import TRTC from "trtc-js-sdk"
import { getliveinfo, usersig } from '@/api'; import { getliveinfo, livestop, luzhi, usersig } from '@/api';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import store from '@/store'; import store from '@/store';
import { message } from 'ant-design-vue'; import { message } from 'ant-design-vue';
@ -340,12 +340,15 @@ export default defineComponent({
remoteStream.play('s-' + remoteStream.userId_); remoteStream.play('s-' + remoteStream.userId_);
}); });
client client
.join({ roomId: 12 }) .join({ roomId: roominfo.value.roomid})
.catch((error: string) => { .catch((error: string) => {
console.error('进房失败 ' + error); console.error('进房失败 ' + error);
}) })
.then(() => { .then(() => {
console.log('进房成功'); console.log('进房成功');
// if(typeof id == "string"){
luzhi(roominfo.value.roomid)
// }
fun() fun()
}); });
} }
@ -376,7 +379,9 @@ export default defineComponent({
client.leave().then(() => { client.leave().then(() => {
// leaving room success // leaving room success
visible.value = false; visible.value = false;
if(typeof id == "string"){
livestop(id, roominfo.value.roomid)
}
}).catch((error: string) => { }).catch((error: string) => {
message.error(lan.$t('guanbishibai')+':' + error); message.error(lan.$t('guanbishibai')+':' + error);
}); });

View File

@ -39,14 +39,14 @@
</div> </div>
<div class="body"> <div class="body">
<div class="row" v-for="item in 24" :key="item"> <div class="row" v-for="item in 24" :key="item">
<div class="day date"> <div class="day date" :style="{'background-color': item - 1 == xs ? '#0DBBA4' : '', 'color': item - 1 == xs ? '#fff' : ''}">
{{ item > 10 ? item - 1 : "0" + (item - 1) }}:00-{{ {{ item > 10 ? item - 1 : "0" + (item - 1) }}:00-{{
item > 9 ? item : "0" + item item > 9 ? item : "0" + item
}}:00 }}:00
</div> </div>
<div v-for="i in 7" :key="i"> <div v-for="i in 7" :key="i" >
<div class="day"> <div class="day">
<div :class="zhuangtai(week.date[i -1].list[item - 1].zhuangtai)" v-if="week.date[i -1].list[item - 1].title != ''"> <div :class="zhuangtai(week.date[i -1].list[item - 1].zhuangtai)" v-if="week.date[i -1].list[item - 1].title != ''" :style="{'top': (week.date[i -1].list[item - 1].start / 60 * 0.63) + 'rem', 'min-height': (week.date[i -1].list[item - 1].num / 60 * 0.63) + 'rem' }">
<div class="one-line-hide" style="max-width: 1.5rem"> <div class="one-line-hide" style="max-width: 1.5rem">
{{week.date[i -1].list[item - 1].title}} {{week.date[i -1].list[item - 1].title}}
</div> </div>
@ -55,6 +55,13 @@
</div> </div>
</div> </div>
</div> </div>
<div class="lien" :style="{'top': top + 'rem'}">
<div class="heng">
<div class="dian"></div>
<div class="xian"></div>
</div>
<div class="times">{{times}}</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -64,6 +71,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
.head { .head {
width: 1320px; width: 1320px;
height: 57px; height: 57px;
@ -144,6 +152,8 @@
} }
.body { .body {
width: 100%; width: 100%;
overflow: hidden;
position: relative;
.row { .row {
background-color: #fff; background-color: #fff;
height: 63px; height: 63px;
@ -165,8 +175,9 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
color: #111; color: #111;
position: relative;
> div { > div {
position: absolute;
min-height: 100%; min-height: 100%;
width: 100%; width: 100%;
border-radius: 6px; border-radius: 6px;
@ -202,6 +213,32 @@
border: unset; border: unset;
} }
} }
.lien{
width: 100%;
position: absolute;
top: 0;
left: 128px;
.heng{
display: flex;
align-items: center;
}
.dian{
width: 6px;
height: 6px;
flex-shrink: 0;
background-color: #FFFA18;
border-radius: 50%;
}
.xian{
width: 100%;
height: 2px;
background: linear-gradient(90deg, #FFFA18, #D0EB3D, #87E062, #42DE9D, #00DAC2);
}
}
.times{
font-size: 11px;
color: #FFFA18;
}
} }
} }
} }
@ -212,6 +249,7 @@ import { getDay, gethour, getminute, gettime, getweek } from "@/utils/date";
import store from '@/store'; import store from '@/store';
import { getdatelist, userinfo } from '@/api'; import { getdatelist, userinfo } from '@/api';
import router from '@/router'; import router from '@/router';
import dayjs from 'dayjs';
export default defineComponent({ export default defineComponent({
props: {}, props: {},
@ -244,6 +282,18 @@ export default defineComponent({
getdates(userid); getdates(userid);
const top = ref(0);
const times = ref('');
const xs = ref(0);
setInterval(()=>{
const now = dayjs();
const xiaoshi = now.month()
const fenzhong = now.minute()
top.value = (xiaoshi + (fenzhong / 60)) * 0.63;
times.value = (xiaoshi > 10 ? xiaoshi : '0' + xiaoshi) + ":" + (fenzhong > 10 ? fenzhong : '0' + fenzhong);
xs.value = xiaoshi;
}, 2000)
watch(zhou, (value) => { watch(zhou, (value) => {
week.value = getweek(value); week.value = getweek(value);
console.log(week.value); console.log(week.value);
@ -269,7 +319,10 @@ export default defineComponent({
zhou, zhou,
week, week,
navto, navto,
zhuangtai zhuangtai,
top,
times,
xs
}; };
}, },
}); });