xbx #118

Merged
theluyuan merged 10 commits from xbx into master 2020-11-06 23:45:06 +08:00
22 changed files with 237 additions and 84 deletions

View File

@ -673,8 +673,9 @@ interface SendSms{
msg: string;
}
export async function sendsms(phone: string, type: number): Promise<boolean>{
const res = await post<SendSms>("SendSms", {phone, type});
export async function sendsms(code: string ,phone: string): Promise<boolean>{
const type = code == '86' ? 0 : 1;
const res = await post<SendSms>("SendSms", {phone: code + phone, type});
console.log(res);
if(res.code == 0){
message.success(res.msg);
@ -947,7 +948,7 @@ export async function liveinfo(id: number): Promise<any>{
}
export async function setlive(data: any){
data.status = 0;
data.status = data.livestatus;
const info = await put("live/" + data.id, data)
console.log(info.data)
if(info.code==0){
@ -1024,3 +1025,7 @@ export async function interests() {
return res.data;
}
export async function getset() {
const res = await get('getset');
return res.data;
}

View File

@ -174,15 +174,12 @@ export default defineComponent({
const lan: any = useI18n();
function navto(){
let url = '';
switch (props.type) {
switch (props.status) {
case 1:
url = '/regime/livedetail';
url = '/regime/liveing';
break;
case 2:
default:
url = '/regime/livedetail';
break;
case 3:
url = '/regeime/liveing';
}
console.log(props.zid);
if(props.zid != undefined){

View File

@ -157,7 +157,7 @@
width: 57px;
height: 57px;
border-radius: 50%;
background-color: #0f0;
// background-color: #0f0;
}
}
}

View File

@ -5,56 +5,20 @@
</div>
<div class="info">
<div class="item">
<div class="item" v-for="(item,index) in list" :key="index">
<div style="display:flex">
<div class="stuinfo">
<div>andy</div>
<div>{{item.name}}</div>
</div>
</div>
<div class="icons">
<img src="@/static/images/camera.png" alt="" class="icon">
<img src="@/static/images/vol.png" alt="" class="icon">
<img src="@/static/images/camera.png" @click="cameta(item.memberid)" alt="" class="icon">
<img src="@/static/images/vol.png" alt="" class="icon" @click="vol(item.memberid)">
</div>
</div>
<div class="item">
<div style="display:flex">
<div class="stuinfo">
<div>andy</div>
</div>
</div>
<div class="icons">
<img src="@/static/images/camera.png" alt="" class="icon">
<img src="@/static/images/vol.png" alt="" class="icon">
</div>
</div>
<div class="item">
<div style="display:flex">
<div class="stuinfo">
<div>andy</div>
</div>
</div>
<div class="icons">
<img src="@/static/images/camera.png" alt="" class="icon">
<img src="@/static/images/vol.png" alt="" class="icon">
</div>
</div>
<div class="item">
<div style="display:flex">
<div class="stuinfo">
<div>andy</div>
</div>
</div>
<div class="icons">
<img src="@/static/images/camera.png" alt="" class="icon">
<img src="@/static/images/vol.png" alt="" class="icon">
</div>
</div>
</div>
</div>
</template>
@ -147,5 +111,23 @@
<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({});
export default defineComponent({
props:{
list:{
type: Array
}
},
setup(prop,context){
function cameta(id: number){
context.emit("cameta", id)
}
function vol(id: number){
context.emit("vol", id)
}
return {
cameta,
vol
}
}
});
</script>

View File

@ -185,12 +185,23 @@ export default defineComponent({
const userinfo = computed(() => store.state.userinfo)
//
for(const i in list){
console.log(list[i].route==useRoute().path)
if(list[i].route == useRoute().path){
const routelist = [
["/mine/archives"],
['/mine/webcast'],
['/mine/video'],
['/mine/wallet', '/mine/cashout', '/mine/addaccount', '/mine/transaction', '/mine/transactionxq'],
['/mine/liststatistic'],
['/mine/aboutus']
]
for(const i in routelist){
for(const j in routelist[i]){
console.log(routelist[i][j]==useRoute().path)
if(routelist[i][j] == useRoute().path){
selnum.value = parseInt(i);
}
}
}
/**
* 跳转路由与赋值对应的下标
* @param index 选中的下标 方便赋值与跳转

View File

@ -328,7 +328,10 @@ export default defineComponent({
}
function toindex(){
router.push("/")
if(!store.state.islogin){
return ;
}
router.push("/mine/archives")
}
return {

View File

@ -63,7 +63,7 @@
width: 57px;
height: 57px;
border-radius: 50%;
background-color: #0f0;
// background-color: #0f0;
}
.name{

View File

@ -33,7 +33,7 @@
width: 45px;
height: 45px;
border-radius: 50%;
background-color: #0f0;
// background-color: #0f0;
}
.name{

View File

@ -189,7 +189,6 @@ export default {
xuanzezhanghu: "Select account",
tixianjine: "Withdrawal amount",
quanbujine: "Total amount",
tixianzhu: "Note: 0.1% service fee will be charged for each withdrawal, with a minimum of ¥ 0.1",
yueshu: "Your balance is only",
zuiditixian: "Minimum withdrawal amount ¥ 100",
mingxichaxun: "Details inquiry",
@ -297,5 +296,8 @@ export default {
kaihuhangweikong:"Swiftcode cannot be empty",
shensu:"Appeal",
querenquxiao: "Are you sure to cancel the live broadcast?",
tianjiatixian: "Add a withdrawal account"
tianjiatixian: "Add a withdrawal account",
shichangtishi:"",
renshutishi: '',
tixianzhu: "",
}

View File

@ -1,9 +1,27 @@
import zh from "./zh"
import en from "./en"
import { getset } from '@/api';
import { geti18n } from '@/utils/i18n';
getset().then((res: any)=>{
zh.shichangtishi = `最短${res.timeLowerLimit}min, 最长${res.timeCeiling}min`
en.shichangtishi = `The shortest is ${res.timeLowerLimit}min and the longest is ${res.timeCeiling}min`
zh.renshutishi = `最少${res.lowerLimit}人, 最多${res.numberCeiling}`
en.renshutishi = `At least ${res.lowerLimit}, at most ${res.numberCeiling}`
en.shichangtishi = `Minimum ${res.lowerLimit} person, maximum ${res.numberCeiling} people`
zh.tixianzhu = `注:每笔提现收取${res.sxf}服务费,最低${ res.symbol + res.minmoney }`
en.tixianzhu = `Note: ${res.sxf} service fee will be charged for each withdrawal, with a minimum of ${ res.symbol + res.minmoney }`
const i18n = geti18n();
const loc = i18n.locale.value;
i18n.locale.value = '';
i18n.locale.value = loc;
console.log('i18n')
})
export default {
locale: "zh", //默认语言
messages: {
zh,
en
zh: zh,
en: en
}
}

View File

@ -192,7 +192,6 @@ export default {
xuanzezhanghu:"选择账户",
tixianjine:"提现金额",
quanbujine:"全部金额",
tixianzhu:"注每笔提现收取0.1%服务费最低¥0.1",
yueshu:"您的余额只有",
zuiditixian:"最低提现金额¥100",
mingxichaxun:"明细查询",
@ -297,5 +296,8 @@ export default {
kaihuhangweikong:"开户行不能为空",
shensu:"申诉",
querenquxiao: "您确认取消直播吗?",
tianjiatixian: "添加提现账户"
tianjiatixian: "添加提现账户",
shichangtishi:"",
renshutishi: '',
tixianzhu:"",
}

5
src/import-png.d.ts vendored
View File

@ -13,4 +13,9 @@ declare module "ant-design-vue/es/locale/zh_CN" {
export default value;
}
declare module 'tim-js-sdk'{
const value: any;
export default value;
}
declare var FB: any;

View File

@ -195,7 +195,7 @@ export default defineComponent({
align-items: center;
position: fixed;
top: 0;
z-index: 9999;
z-index: 99;
.navcontent{
width: 910px;
margin: 0 auto;

View File

@ -188,7 +188,7 @@ export default defineComponent({
}
lock = true;
console.log(myquhao.value,"quhao")
sendsms(myquhao.value + phone.value, 0);
sendsms(myquhao.value, phone.value);
const timestep = setInterval(() => {
console.log(11112);

View File

@ -138,7 +138,7 @@ export default defineComponent({
return;
}
lock = true;
sendsms(uinfo.value.quhao + uinfo.value.phone, 0);
sendsms(uinfo.value.quhao, uinfo.value.phone);
const timestep = setInterval(() => {
console.log(11112);
time.value = time.value - 1;

View File

@ -285,7 +285,7 @@ export default defineComponent({
return;
}
lock = true;
sendsms(phone.value.quhao + phone.value.phone, 0);
sendsms(phone.value.quhao, phone.value.phone);
const timestep = setInterval(() => {
console.log(phone);
time.value = time.value - 1;

View File

@ -348,7 +348,7 @@
<div
@click="
sendVerificationCode(
userinfo.code + userinfo.mobile
userinfo.code , userinfo.mobile
)
"
class="confirm-btn"
@ -411,7 +411,7 @@
/>
<div
@click="
sendVerificationCode(myquhao + mynewtel)
sendVerificationCode(myquhao , mynewtel)
"
class="confirm-btn"
>
@ -678,11 +678,11 @@ export default defineComponent({
/**
* 发送验证码
*/
function sendVerificationCode(tel: string): void {
function sendVerificationCode(code: string ,tel: string): void {
if (remainTime.value === 0) {
computedVerificationCode();
console.log(tel, "send");
sendsms(tel, 0);
sendsms(code, tel);
}
}
//

View File

@ -126,7 +126,7 @@
</template>
<script lang="ts">
import { defineComponent, onMounted, ref, toRaw } from "vue";
import { computed, defineComponent, onMounted, ref, toRaw } from "vue";
import NavBottom from "@/components/NavBottom.vue";
import { cashout, getwallect } from "@/api";
import store from "@/store";
@ -154,7 +154,7 @@ export default defineComponent({
console.log(e);
};
const yue=ref<number>(store.state.userinfo.moneyValue)
const danwei = ref(store.state.userinfo.symbol)
const danwei = computed(() => store.state.userinfo.symbol)
// const yue = ref<number>(10000);
// yue.value=store.state.userinfo.money
const accountlist = ref<Array<any>>([]);

View File

@ -143,7 +143,7 @@
type="number"
/>
<span class="unit">{{ lan.$t("fenzhong") }}</span>
<div style="color: red;font-size: 0.12rem;line-height: 1.3;">*最短30min, 最长120min</div>
<div style="color: red;font-size: 0.12rem;line-height: 1.3;">*{{ lan.$t('shichangtishi') }}</div>
</a-form-item>
<a-form-item
:label="lan.$t('zhiborenshu')"
@ -156,7 +156,7 @@
:placeholder="lan.$t('shuruzhiborenshu')"
type="number"
/>
<div style="color: red;font-size: 0.12rem;line-height: 1.3;">*最少1人, 最多4人</div>
<div style="color: red;font-size: 0.12rem;line-height: 1.3;">*{{ lan.$t('renshutishi') }}</div>
</a-form-item>
<a-form-item :label="lan.$t('zhibojianjie')" class="brief">

View File

@ -187,7 +187,7 @@ export default defineComponent({
setup() {
const lan: any = useI18n();
const page = ref(1);
const tabindex = ref(1);
const tabindex = ref<number | string>(1);
const livelist = ref<LivelistInfo>({
code: 0,
total: 0,
@ -200,7 +200,11 @@ export default defineComponent({
});
async function tab(){
input.value = '';
livelist.value = await getlivelist({ status: tabindex.value});
let index: string | number = '';
if(tabindex.value != 1){
index = tabindex.value
}
livelist.value = await getlivelist({ status: index});
}
function tabchange(e: number): void {

View File

@ -9,7 +9,7 @@
</div>
</div>
<div class="info">
<LiveingWatcher></LiveingWatcher>
<LiveingWatcher :list="roominfo.studentlist" @cameta="sendtext" @vol="senvol"></LiveingWatcher>
<div class="LivePlaying">
<LivePlaying></LivePlaying>
<div class="comment">
@ -190,7 +190,7 @@
}
</style>
<script lang="ts">
import { defineComponent, onMounted, ref } from "vue";
import { defineComponent, onMounted, ref, resolveComponent } from "vue";
import LivePlaying from "@/components/LivePlaying.vue";
import LiveingWatcher from "@/components/LiveingWatcher.vue";
import TRTC from "trtc-js-sdk"
@ -199,6 +199,7 @@ import { useRoute } from 'vue-router';
import store from '@/store';
import { message } from 'ant-design-vue';
import { useI18n } from '@/utils/i18n';
import TIM from 'tim-js-sdk';
export default defineComponent({
components: {
@ -217,6 +218,7 @@ export default defineComponent({
const roominfo = ref<any>([]);
console.log(useRoute())
const id = useRoute().query.id;
let tim: any;
TRTC.checkSystemRequirements().then((result: any) => {
if(!result) {
message.error(lan.$t('buzhichitonghua'))
@ -323,7 +325,7 @@ export default defineComponent({
client = TRTC.createClient({
mode: 'rtc',
sdkAppId: '1400400340',
sdkAppId: '1400435767',
userId: store.state.userinfo.memberid,
userSig: userSig
});
@ -351,6 +353,87 @@ export default defineComponent({
// }
fun()
});
// im
tim = TIM.create({
SDKAppID: 1400400340
}); // SDK tim
tim.setLogLevel(0);
tim.on(TIM.EVENT.MESSAGE_RECEIVED, function(event: any) {
// event.data
// event.name - TIM.EVENT.MESSAGE_RECEIVED
// event.data - Message - [Message]
for(const i in event.data){
console.log(event.data[i])
}
});
tim.on(TIM.EVENT.GROUP_LIST_UPDATED, function(event: any) {
// event.data
// event.name - TIM.EVENT.GROUP_LIST_UPDATED
// event.data - Group - [Group]
console.log(event.data)
});
tim.login({userID: store.state.userinfo.memberid.toString(), userSig: userSig}).then((res: any)=>{
console.log(res.data); //
if (res.data.repeatLogin === true) {
// v2.5.1
console.log(res.data.errorInfo);
}
}).catch(function(imError: any) {
console.warn('login error:', imError); //
});
tim.on(TIM.EVENT.SDK_READY, function (){
const promise = tim.createGroup({
type: TIM.TYPES.GRP_AVCHATROOM,
name: 'live',
groupID: roominfo.value.roomid
});
promise.then(function(imResponse: any) { //
console.log(imResponse.data.group); //
tim.joinGroup({
groupID: roominfo.value.roomid,
type: TIM.TYPES.GRP_AVCHATROOM
}).then((res: any)=>{
switch (res.data.status) {
case TIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: //
break;
case TIM.TYPES.JOIN_STATUS_SUCCESS: //
console.log(res.data.group); //
break;
case TIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: //
break;
default:
break;
}
}).catch((err: any)=>{
console.log(err)
})
}).catch(function(imError: any) {
console.warn('createGroup error:', imError); //
tim.joinGroup({
groupID: roominfo.value.roomid,
type: TIM.TYPES.GRP_AVCHATROOM
}).then((res: any)=>{
switch (res.data.status) {
case TIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: //
break;
case TIM.TYPES.JOIN_STATUS_SUCCESS: //
console.log(res.data.group); //
break;
case TIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: //
break;
default:
break;
}
}).catch((err: any)=>{
console.log(err)
})
});
});
}
async function fenxiang(){
console.log(localStream)
@ -387,6 +470,46 @@ export default defineComponent({
});
}
function sendtext(id: number){
const m = tim.createTextMessage({
to: roominfo.value.roomid,
conversationType: TIM.TYPES.CONV_GROUP,
payload: {
text: `beelinkMuteUserId:${id},isClose:0`
}
});
const promise = tim.sendMessage(m);
promise.then(function(imResponse: any) {
//
console.log(imResponse);
message.success("发送命令成功")
}).catch(function(imError: any) {
//
message.error("发送命令失败")
console.warn('sendMessage error:', imError);
});
}
function sendvol(id: number){
const m = tim.createTextMessage({
to: roominfo.value.roomid,
conversationType: TIM.TYPES.CONV_GROUP,
payload: {
text: `beelinkTurnOffTheCameraUserId:${id},isClose:1
0`
}
});
const promise = tim.sendMessage(m);
promise.then(function(imResponse: any) {
//
console.log(imResponse);
message.success("发送命令成功")
}).catch(function(imError: any) {
//
message.error("发送命令失败")
console.warn('sendMessage error:', imError);
});
}
onMounted(async ()=>{
const si = setInterval(async ()=>{
if(store.state.userinfo.memberid != 0 && store.state.userinfo.memberid){
@ -405,7 +528,8 @@ export default defineComponent({
roominfo,
guanbi,
visible,
lan
lan,
sendtext
}
},
});

View File

@ -4,7 +4,7 @@
<VideoPlay :url="result.fileurl"></VideoPlay>
<VideoCont :videoid="result.videoid" :date="result.createdAt" :watch="result.watch" :share="result.share" :status="result.status"></VideoCont>
</div>
<VideoReview class="review"></VideoReview>
<VideoReview class="review" v-if="result.status == 1"></VideoReview>
</div>
</template>
<style lang="scss" scoped>