xbx #134
@ -19,6 +19,7 @@
 | 
			
		||||
    "trtc-js-sdk": "^4.6.5",
 | 
			
		||||
    "vod-js-sdk-v6": "^1.4.10",
 | 
			
		||||
    "vue": "^3.0.0-0",
 | 
			
		||||
    "vue-cropper": "^0.5.5",
 | 
			
		||||
    "vue-router": "^4.0.0-0",
 | 
			
		||||
    "vuex": "^4.0.0-0"
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ html{
 | 
			
		||||
body{
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    font-family: Futura,sans-serif;
 | 
			
		||||
}
 | 
			
		||||
video{
 | 
			
		||||
 | 
			
		||||
@ -7,15 +7,15 @@
 | 
			
		||||
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
 | 
			
		||||
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
 | 
			
		||||
    <title><%= htmlWebpackPlugin.options.title %></title>
 | 
			
		||||
    <link href="http://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.css" rel="stylesheet">
 | 
			
		||||
    <link href="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.css" rel="stylesheet">
 | 
			
		||||
        <!-- 如需在IE8、9浏览器中初始化播放器,浏览器需支持Flash并在页面中引入 -->
 | 
			
		||||
        <!--[if lt IE 9]>
 | 
			
		||||
        <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/ie8/videojs-ie8.js"></script>
 | 
			
		||||
        <![endif]-->
 | 
			
		||||
        <!-- 如果需要在 Chrome Firefox 等现代浏览器中通过H5播放hls,需要引入 hls.js -->
 | 
			
		||||
        <script src="http://imgcache.qq.com/open/qcloud/video/tcplayer/lib/hls.min.0.8.8.js"></script>
 | 
			
		||||
        <script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/lib/hls.min.0.8.8.js"></script>
 | 
			
		||||
        <!-- 引入播放器 js 文件 -->
 | 
			
		||||
        <script src="http://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.js"></script>
 | 
			
		||||
        <script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.js"></script>
 | 
			
		||||
    <script>
 | 
			
		||||
        //designWidth:设计稿的实际宽度值,需要根据实际设置
 | 
			
		||||
        //maxWidth:制作稿的最大宽度值,需要根据实际设置
 | 
			
		||||
@ -79,7 +79,7 @@
 | 
			
		||||
            position: fixed;
 | 
			
		||||
            top: 0;
 | 
			
		||||
            left: 0;
 | 
			
		||||
            z-index: 999;
 | 
			
		||||
            z-index: 1001;
 | 
			
		||||
            display: none;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
 | 
			
		||||
@ -267,11 +267,12 @@
 | 
			
		||||
            <!-- content -->
 | 
			
		||||
            <div class="row-div" style="height: 100%; width: 100%; padding: 10px">
 | 
			
		||||
                <div class="col-div" style="width: 340px; height: 100%; padding: 10px">
 | 
			
		||||
                    <div class="col-div card" style="width: 100%; height: 100%">
 | 
			
		||||
                    <div class="col-div card" style="width: 100%; height: 100%; padding: 23px">
 | 
			
		||||
                        <!-- 成员列表 -->
 | 
			
		||||
                        <div style="width: 100%;">上课人员</div>
 | 
			
		||||
                        <div id="member-list" class="col-div" style="width: 100%; justify-content: flex-start; flex: 1">
 | 
			
		||||
                            <!-- member -->
 | 
			
		||||
                            <div id="member-me" style="width: 100%; padding-left: 20px">
 | 
			
		||||
                            <!-- <div id="member-me" style="width: 100%; padding-left: 20px">
 | 
			
		||||
                                <div class="row-div member"
 | 
			
		||||
                                    style="width: 100%; height: 50px; justify-content: space-between">
 | 
			
		||||
                                    <div class="member-id">(我)</div>
 | 
			
		||||
@ -283,7 +284,7 @@
 | 
			
		||||
                                            alt="">
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                            </div> -->
 | 
			
		||||
                        </div>
 | 
			
		||||
                       
 | 
			
		||||
                    </div>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/App.vue
									
									
									
									
									
								
							@ -16,12 +16,13 @@ import { provideI18n } from "@/utils/i18n"
 | 
			
		||||
import i18ninit from "@/i18n/init"
 | 
			
		||||
import enUS from 'ant-design-vue/es/locale/en_US';
 | 
			
		||||
import zhCN from 'ant-design-vue/es/locale/zh_CN';
 | 
			
		||||
import dayjs from 'dayjs';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  setup(){
 | 
			
		||||
    console.log(i18ninit)
 | 
			
		||||
    const len = provideI18n(i18ninit);
 | 
			
		||||
    len.locale.value = !getValue("Lanvuage") ? 'zh' : getValue("Lanvuage");
 | 
			
		||||
    // len.locale.value = !getValue("Lanvuage") ? 'zh' : getValue("Lanvuage");
 | 
			
		||||
    if(getValue('token')){
 | 
			
		||||
      store.commit("login", true)
 | 
			
		||||
      store.dispatch("setUserInfo");
 | 
			
		||||
@ -34,6 +35,14 @@ export default defineComponent({
 | 
			
		||||
    }
 | 
			
		||||
    const zh = zhCN
 | 
			
		||||
    const en = enUS
 | 
			
		||||
    /* eslint-disable */
 | 
			
		||||
    const utc = require('dayjs/plugin/utc') // dependent on utc plugin
 | 
			
		||||
    /* eslint-disable */
 | 
			
		||||
    const timezone = require('dayjs/plugin/timezone')
 | 
			
		||||
    const days: any = dayjs;
 | 
			
		||||
    dayjs.extend(utc)
 | 
			
		||||
    dayjs.extend(timezone)
 | 
			
		||||
    console.log(days.tz.guess())
 | 
			
		||||
    return{
 | 
			
		||||
      zh,
 | 
			
		||||
      en,
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,25 @@ export interface Get {
 | 
			
		||||
let login: MessageType;
 | 
			
		||||
let count = 0;
 | 
			
		||||
const div: any = document.getElementById("make");
 | 
			
		||||
export function countadd(){
 | 
			
		||||
    if(count == 0){
 | 
			
		||||
        login = message.loading('加载中..', 0)
 | 
			
		||||
        div.style.display = "block"
 | 
			
		||||
    }
 | 
			
		||||
    count++;
 | 
			
		||||
}
 | 
			
		||||
export function countdel(){
 | 
			
		||||
    if(count != 0){
 | 
			
		||||
        setTimeout(()=>{
 | 
			
		||||
            count--;
 | 
			
		||||
            if(count == 0){
 | 
			
		||||
                login();
 | 
			
		||||
                div.style.display = "none"
 | 
			
		||||
            }
 | 
			
		||||
            console.log(count)
 | 
			
		||||
        }, 1000)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
axios.interceptors.request.use((config)=>{
 | 
			
		||||
    if(count == 0){
 | 
			
		||||
        login = message.loading('加载中..', 0)
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@ import store from '@/store';
 | 
			
		||||
import { LiveList, LivelistInfo, LoginData, UserInfo } from '@/types';
 | 
			
		||||
import { getValue, saveValue } from '@/utils/common';
 | 
			
		||||
import { message } from 'ant-design-vue';
 | 
			
		||||
import dayjs from 'dayjs';
 | 
			
		||||
import { del, get, post, put, setToken } from './base'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -885,6 +886,14 @@ export async function checksmscode(phone: string, smscode: string){
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export async function register(data: any){
 | 
			
		||||
    /* eslint-disable */
 | 
			
		||||
    const utc = require('dayjs/plugin/utc') // dependent on utc plugin
 | 
			
		||||
    /* eslint-disable */
 | 
			
		||||
    const timezone = require('dayjs/plugin/timezone')
 | 
			
		||||
    const days: any = dayjs;
 | 
			
		||||
    dayjs.extend(utc)
 | 
			
		||||
    dayjs.extend(timezone)
 | 
			
		||||
 | 
			
		||||
    const res = await post<any>("register",{
 | 
			
		||||
        mobile: data.phone,
 | 
			
		||||
        code: data.quhao,
 | 
			
		||||
@ -893,7 +902,10 @@ export async function register(data: any){
 | 
			
		||||
        name: data.name,
 | 
			
		||||
        email: data.emil,
 | 
			
		||||
        mtongue: data.muyu,
 | 
			
		||||
        tlanguage: data.jiaoshou
 | 
			
		||||
        tlanguage: data.jiaoshou,
 | 
			
		||||
        language: getValue("Lanvuage") || 'zh',
 | 
			
		||||
        zoneid: days.tz.guess()
 | 
			
		||||
 | 
			
		||||
    })
 | 
			
		||||
    if(res.code == 0){
 | 
			
		||||
        message.success(res.msg)
 | 
			
		||||
@ -1022,17 +1034,22 @@ export async function getaddr() {
 | 
			
		||||
    const res = await get<any>('ip');
 | 
			
		||||
    const gj = res.data.address.split("|")[0];
 | 
			
		||||
    const lan = getValue("Lanvuage");
 | 
			
		||||
    const qh = await get<any>('countryCode', {
 | 
			
		||||
        longitude: res.data.content.point.x,
 | 
			
		||||
        latitude: res.data.content.point.y
 | 
			
		||||
    });
 | 
			
		||||
    console.log(qh) 
 | 
			
		||||
    if(lan != null && lan){
 | 
			
		||||
        if(gj == "CN"){
 | 
			
		||||
            return ['人民币¥'];
 | 
			
		||||
            return {hb: '人民币¥', qh};
 | 
			
		||||
        }else {
 | 
			
		||||
            return [ '美元$']
 | 
			
		||||
            return {hb: '美元$'}
 | 
			
		||||
        }
 | 
			
		||||
    }else{
 | 
			
		||||
        if(gj == "CN"){
 | 
			
		||||
            return ["zh", "中文", '人民币¥'];
 | 
			
		||||
            return {yy: "zh", yyx: "中文", hb: '人民币¥', qh};
 | 
			
		||||
        }else {
 | 
			
		||||
            return ['en', 'English', '美元$']
 | 
			
		||||
            return {yy: 'en', yyx: 'English', hb: '美元$', qh}
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,10 @@
 | 
			
		||||
    <div class="menu">
 | 
			
		||||
        <div class="user" style="overflow: hidden;">
 | 
			
		||||
            <div class="user" :class="{'seltop': selnum == 0}">
 | 
			
		||||
                <img :src="userinfo.img" alt="" class="head">
 | 
			
		||||
                <!-- <img :src="userinfo.img" alt="" class="head"> -->
 | 
			
		||||
                <a-avatar :size="85" shape="circle" class="head" :src="userinfo.img">
 | 
			
		||||
                    <template v-slot:icon><UserOutlined /></template>
 | 
			
		||||
                </a-avatar>
 | 
			
		||||
                <div class="name">{{userinfo.name}}</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@ -20,7 +23,7 @@
 | 
			
		||||
            <div style="overflow: hidden;">
 | 
			
		||||
                <div class="item" :class="{'selbottom': selnum == list.length - 1}"></div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="item loginout" @click="logout">
 | 
			
		||||
            <div class="item loginout" @click="visible = true">
 | 
			
		||||
                <div class="route">
 | 
			
		||||
                    <img src="../static/images/tuichu.png" alt="" class="icon">
 | 
			
		||||
                    <div class="title">
 | 
			
		||||
@ -29,6 +32,9 @@
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <a-modal v-model:visible="visible" :title="lan.$t('tishi')" @ok="logout">
 | 
			
		||||
            <p>{{lan.$t('querentuichu')}}</p>
 | 
			
		||||
        </a-modal>
 | 
			
		||||
    </div>
 | 
			
		||||
</template>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
@ -220,6 +226,8 @@ export default defineComponent({
 | 
			
		||||
            selnum.value = index;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const visible = ref(false);
 | 
			
		||||
 | 
			
		||||
        function logout(): void{
 | 
			
		||||
            console.log("退出")
 | 
			
		||||
            store.commit("login", false)
 | 
			
		||||
@ -237,6 +245,7 @@ export default defineComponent({
 | 
			
		||||
            logout,
 | 
			
		||||
            mouse,
 | 
			
		||||
            lan,
 | 
			
		||||
            visible,
 | 
			
		||||
            jiantou: require('../static/images/jiantou.png'),
 | 
			
		||||
            jiantous: require('../static/images/kuozhan1.png')
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -41,34 +41,7 @@
 | 
			
		||||
                </template>
 | 
			
		||||
            </a-dropdown>
 | 
			
		||||
            
 | 
			
		||||
            <a-dropdown :trigger="['click']" :getPopupContainer="triggerNode => triggerNode.parentNode" v-if="islogin">
 | 
			
		||||
                <div class="item" @click="e => e.preventDefault()">
 | 
			
		||||
                    <img src="@/static/images/qianbi.png" alt="" class="icon">
 | 
			
		||||
                    <div class="name">{{userinfo.currency}}</div>
 | 
			
		||||
                    <img src="@/static/images/jiantou2.png" alt="" class="down">
 | 
			
		||||
                </div>
 | 
			
		||||
                <template v-slot:overlay>
 | 
			
		||||
                    <a-menu style="max-height:70vh;overflow: auto;">
 | 
			
		||||
                        <!-- 货币 -->
 | 
			
		||||
                        <a-menu-item  v-for="(i,j) in currencylist" :key="j" style="position: relative;">
 | 
			
		||||
                            <div class="selitem" @click="currencychange(i.value)">
 | 
			
		||||
                                <span :style="{'color': i.name == userinfo.currency ? '#06C7AE' : ''}">{{i.name}} </span>
 | 
			
		||||
                                <img src="@/static/images/duihao.png" alt="" v-if="i.name == userinfo.currency" class="duihao">
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </a-menu-item>
 | 
			
		||||
                        <!-- <a-menu-item key="1">
 | 
			
		||||
                            <div class="selitem">
 | 
			
		||||
                                <span>时区2b</span>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </a-menu-item>
 | 
			
		||||
                        <a-menu-item key="3">
 | 
			
		||||
                            <div class="selitem">
 | 
			
		||||
                                <span>时区3b</span>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </a-menu-item> -->
 | 
			
		||||
                    </a-menu>
 | 
			
		||||
                </template>
 | 
			
		||||
            </a-dropdown>
 | 
			
		||||
          
 | 
			
		||||
            <a-dropdown :trigger="['click']" :getPopupContainer="triggerNode => triggerNode.parentNode">
 | 
			
		||||
                <div class="item" @click="e => e.preventDefault()">
 | 
			
		||||
                    <img src="@/static/images/yuyan.png" alt="" class="icon">
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
    <div class="video">
 | 
			
		||||
        
 | 
			
		||||
        <div class="title">{{title}}</div>
 | 
			
		||||
        <video style="width:100%; height:100%;" :id="'a' + url" ></video>
 | 
			
		||||
    </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -10,12 +10,21 @@
 | 
			
		||||
    height: 563px;
 | 
			
		||||
    border-radius: 17px;
 | 
			
		||||
    background: white;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    // background-color: #0f0;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    >video{
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
    }
 | 
			
		||||
    .title{
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 23px;
 | 
			
		||||
        left: 51px;
 | 
			
		||||
        font-size: 13px;
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        z-index: 999;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
@ -25,8 +34,11 @@ import { onBeforeRouteLeave, useRouter } from 'vue-router';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
    props:{
 | 
			
		||||
        url:{
 | 
			
		||||
            type:String
 | 
			
		||||
        url: {
 | 
			
		||||
            type: String
 | 
			
		||||
        },
 | 
			
		||||
        title: {
 | 
			
		||||
            type: String
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    setup(props, ctx){
 | 
			
		||||
 | 
			
		||||
@ -42,6 +42,7 @@ export default {
 | 
			
		||||
    banquan: "Copyright Beelink Inc. All rights reserved 2019-2022",
 | 
			
		||||
    zhanghao: "accounts",
 | 
			
		||||
    shuruzhanghao: "Please enter your email or mobile phone number",
 | 
			
		||||
    shuruzhanghaol: "Please enter your email address or country number + mobile phone number(34690xxx)",
 | 
			
		||||
    mima: "password",
 | 
			
		||||
    shurumima: "Please enter your password",
 | 
			
		||||
    wangjimima: "Forget the password?",
 | 
			
		||||
@ -90,7 +91,7 @@ export default {
 | 
			
		||||
    shuliandu: "Proficiency",
 | 
			
		||||
    jixutianjia: "Continue adding",
 | 
			
		||||
    xindemuyu: "Please enter your new mother tongue",
 | 
			
		||||
    duanshipin: "Short video",
 | 
			
		||||
    duanshipin: "Short video introduction",
 | 
			
		||||
    shipinyaoqiu: "Video requirements:",
 | 
			
		||||
    shipinyaoqiu1: "The time required for uploading video is within 30s",
 | 
			
		||||
    shipinyaoqiu2: "Support file size 100m",
 | 
			
		||||
@ -190,7 +191,7 @@ export default {
 | 
			
		||||
    tixianjine: "Withdrawal amount",
 | 
			
		||||
    quanbujine: "Total amount",
 | 
			
		||||
    yueshu: "Your balance is only",
 | 
			
		||||
    zuiditixian: "Minimum withdrawal amount ¥ 100",
 | 
			
		||||
    zuiditixian: "Minimum withdrawal amount",
 | 
			
		||||
    mingxichaxun: "Details inquiry",
 | 
			
		||||
    kaishiriqi: "Please select the start date",
 | 
			
		||||
    jieshuriqi: "Please select the end date",
 | 
			
		||||
@ -301,6 +302,15 @@ export default {
 | 
			
		||||
    shijishichang: "Actual live broadcast duration",
 | 
			
		||||
    cshipinyaoqiu1: "The video should be no longer than 10 minutes",
 | 
			
		||||
    cshipinyaoqiu2: "Video size cannot exceed 500M",
 | 
			
		||||
    shangchuanwancheng: "Please wait for the file to be uploaded",
 | 
			
		||||
    zhanghaocunzai: "account already exists",
 | 
			
		||||
    shouruguize: "Description of revenue rules",
 | 
			
		||||
    shouru1: "Live Revenue=Actual attendess x Actual duration x unit price",
 | 
			
		||||
    shouru2: "1 on 1, 20€/hour; 1 on N, 10€/hour/person, (1<N<=4)",
 | 
			
		||||
    shouru3: "Attention! You can only change the currency once!",
 | 
			
		||||
    tishi: "tip",
 | 
			
		||||
    querentuichu: "You confirm to exit?",
 | 
			
		||||
    huobitishi: "Attention! You can only change the currency once!",
 | 
			
		||||
    shichangtishi:"",
 | 
			
		||||
    renshutishi: '',
 | 
			
		||||
    tixianzhu: "",
 | 
			
		||||
 | 
			
		||||
@ -2,24 +2,28 @@ import zh from "./zh"
 | 
			
		||||
import en from "./en"
 | 
			
		||||
import { getset } from '@/api';
 | 
			
		||||
import { geti18n } from '@/utils/i18n';
 | 
			
		||||
import store from '@/store';
 | 
			
		||||
import { getValue } from '@/utils/common';
 | 
			
		||||
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`
 | 
			
		||||
    // 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;
 | 
			
		||||
    zh.zuiditixian = "最低提现金额" + res.symbol + res.minwithdraw
 | 
			
		||||
    en.zuiditixian = "Minimum withdrawal amount " + res.symbol + res.minwithdraw
 | 
			
		||||
    const i18n = geti18n();
 | 
			
		||||
    const loc = i18n.locale.value;
 | 
			
		||||
    i18n.locale.value = '';
 | 
			
		||||
    i18n.locale.value = loc;
 | 
			
		||||
    console.log('i18n')
 | 
			
		||||
 | 
			
		||||
    store.commit("setseting", res)
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    locale: "zh", //默认语言
 | 
			
		||||
    locale: getValue("Lanvuage") || 'zh', //默认语言
 | 
			
		||||
    messages: {
 | 
			
		||||
        zh: zh,
 | 
			
		||||
        en: en
 | 
			
		||||
 | 
			
		||||
@ -42,6 +42,7 @@ export default {
 | 
			
		||||
    banquan:"Beelink公司版权所有 2019—2022",
 | 
			
		||||
    zhanghao:"帐号",
 | 
			
		||||
    shuruzhanghao:"请输入您的邮箱或者手机号",
 | 
			
		||||
    shuruzhanghaol:"请输入您的邮箱或者国家号+手机号(86186xxx)",
 | 
			
		||||
    mima:"密码",
 | 
			
		||||
    shurumima:"请输入您的密码",
 | 
			
		||||
    wangjimima:"忘记密码?",
 | 
			
		||||
@ -90,7 +91,7 @@ export default {
 | 
			
		||||
    shuliandu:"熟练度",
 | 
			
		||||
    jixutianjia:"继续添加",
 | 
			
		||||
    xindemuyu:"请输入新的母语",
 | 
			
		||||
    duanshipin:"短视频",
 | 
			
		||||
    duanshipin:"短视频介绍",
 | 
			
		||||
    shipinyaoqiu:"视频要求:",
 | 
			
		||||
    shipinyaoqiu1:"上传视频时间要求为30s之内",
 | 
			
		||||
    shipinyaoqiu2:"支持文件大小100M",
 | 
			
		||||
@ -193,7 +194,7 @@ export default {
 | 
			
		||||
    tixianjine:"提现金额",
 | 
			
		||||
    quanbujine:"全部金额",
 | 
			
		||||
    yueshu:"您的余额只有",
 | 
			
		||||
    zuiditixian:"最低提现金额¥100",
 | 
			
		||||
    zuiditixian:"最低提现金额",
 | 
			
		||||
    mingxichaxun:"明细查询",
 | 
			
		||||
    kaishiriqi:"请选择开始日期",
 | 
			
		||||
    jieshuriqi:"请选择结束日期",
 | 
			
		||||
@ -301,6 +302,15 @@ export default {
 | 
			
		||||
    shijishichang: "实际直播时长",
 | 
			
		||||
    cshipinyaoqiu1: "视频长度不能超过10分钟",
 | 
			
		||||
    cshipinyaoqiu2: "视频大小不能超过500m",
 | 
			
		||||
    shangchuanwancheng: "请等待文件上传完成",
 | 
			
		||||
    zhanghaocunzai: "帐号已存在",
 | 
			
		||||
    shuoruguize: "收入规则说明",
 | 
			
		||||
    shouru1: "直播收入=实际参加学生数x参加时长x单价",
 | 
			
		||||
    shouru2: "单价:1对1,20欧/小时;1对N,10欧/小时/人(1<N<=4)",
 | 
			
		||||
    shouru3: "请注意,货币一旦修改,不能变动",
 | 
			
		||||
    tishi: "提示",
 | 
			
		||||
    querentuichu: "您确认退出?",
 | 
			
		||||
    huobitishi: "请注意,货币一旦修改,不能变动。",
 | 
			
		||||
    shichangtishi:"",
 | 
			
		||||
    renshutishi: '',
 | 
			
		||||
    tixianzhu:"",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								src/import-png.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								src/import-png.d.ts
									
									
									
									
										vendored
									
									
								
							@ -18,6 +18,14 @@ declare module 'tim-js-sdk'{
 | 
			
		||||
    export default value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare module 'vue-cropper'{
 | 
			
		||||
    const VueCropper: any
 | 
			
		||||
    export {
 | 
			
		||||
        VueCropper
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
declare var FB: any;
 | 
			
		||||
 | 
			
		||||
declare var TCPlayer: any;
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
    <div class="mine" :style="{height:height + 'px'}">
 | 
			
		||||
        <NavTop :type="1" style="flex-shrink:0"></NavTop>
 | 
			
		||||
        <div class="body">
 | 
			
		||||
        <div class="body" id="rbody">
 | 
			
		||||
            <router-view/>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								src/static/images/wenhao.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/static/images/wenhao.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 5.4 KiB  | 
@ -1,6 +1,7 @@
 | 
			
		||||
import { getaddr, userinfo } from '@/api';
 | 
			
		||||
import { setLanvuage } from '@/api/base';
 | 
			
		||||
import { getValue, saveValue } from '@/utils/common';
 | 
			
		||||
import { geti18n } from '@/utils/i18n';
 | 
			
		||||
import { isProxy } from 'vue';
 | 
			
		||||
import { createStore } from 'vuex'
 | 
			
		||||
 | 
			
		||||
@ -50,11 +51,32 @@ export default createStore({
 | 
			
		||||
      willsayValue: [{name: "0", level: 0}],
 | 
			
		||||
      zoneStr: "中途岛GMT-11:00",
 | 
			
		||||
      zoneid: 1,
 | 
			
		||||
      symbol: "$"
 | 
			
		||||
      symbol: "$",
 | 
			
		||||
      zoneValue:"",
 | 
			
		||||
      currencytag: 0
 | 
			
		||||
    },
 | 
			
		||||
    islogin: false
 | 
			
		||||
    islogin: false,
 | 
			
		||||
    seting:{
 | 
			
		||||
      lowerLimit: "",
 | 
			
		||||
      minmoney: 0,
 | 
			
		||||
      minwithdraw: "",
 | 
			
		||||
      numberCeiling: "",
 | 
			
		||||
      sxf: "",
 | 
			
		||||
      symbol: "",
 | 
			
		||||
      timeCeiling: "",
 | 
			
		||||
      timeLowerLimit: "",
 | 
			
		||||
    },
 | 
			
		||||
    qh: {
 | 
			
		||||
      code: "86",
 | 
			
		||||
      ename: "China",
 | 
			
		||||
      name: "中国",
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  mutations: {
 | 
			
		||||
    setseting(state, info){
 | 
			
		||||
      console.log(info, 112)
 | 
			
		||||
      state.seting = info
 | 
			
		||||
    },
 | 
			
		||||
    setUserInfo(state, userinfo){
 | 
			
		||||
      userinfo.money = userinfo.money.toString()
 | 
			
		||||
      state.userinfo = userinfo
 | 
			
		||||
@ -67,19 +89,20 @@ export default createStore({
 | 
			
		||||
      const split = new Date().toString().split(" ");
 | 
			
		||||
      const timeZoneFormatted = split[split.length - 2] + " " + split[split.length - 1];
 | 
			
		||||
      const lan = getValue("Lanvuage");
 | 
			
		||||
      state.qh = data.qh.data;
 | 
			
		||||
      if(lan != null && lan){
 | 
			
		||||
        // state.userinfo.language = data[1] // English 中文
 | 
			
		||||
        // state.userinfo.languageValue = data[0] // 'en' 'zh'
 | 
			
		||||
        state.userinfo.zoneStr = timeZoneFormatted;
 | 
			
		||||
        state.userinfo.currency = data[0];
 | 
			
		||||
        state.userinfo.currency = data.hb;
 | 
			
		||||
      }else{
 | 
			
		||||
        console.log(data, 111)
 | 
			
		||||
        state.userinfo.language = data[1] // English 中文
 | 
			
		||||
        state.userinfo.languageValue = data[0] // 'en' 'zh'
 | 
			
		||||
        state.userinfo.language = data.yyx // English 中文
 | 
			
		||||
        state.userinfo.languageValue = data.yy // 'en' 'zh'
 | 
			
		||||
        state.userinfo.zoneStr = timeZoneFormatted;
 | 
			
		||||
        state.userinfo.currency = data[2];
 | 
			
		||||
        saveValue("Lanvuage", data[0]);
 | 
			
		||||
        if( data[0] != 'zh'){
 | 
			
		||||
        state.userinfo.currency = data.hb;
 | 
			
		||||
        saveValue("Lanvuage", data.yy);
 | 
			
		||||
        if( data.yy != geti18n().$s()){
 | 
			
		||||
          location.reload()
 | 
			
		||||
        }
 | 
			
		||||
        // setLanvuage(data[0]);
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,5 @@
 | 
			
		||||
import { message } from 'ant-design-vue';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 图片转Base64
 | 
			
		||||
 */
 | 
			
		||||
@ -64,6 +66,11 @@ export function provenimg(file: any): boolean | void{
 | 
			
		||||
    const ntypearr = file.name.split('.');
 | 
			
		||||
    const ntype = ntypearr[ntypearr.length - 1];
 | 
			
		||||
    console.log(ntype)
 | 
			
		||||
    const size = 2 * 1024 * 1024;
 | 
			
		||||
    if(file.size > size){
 | 
			
		||||
        message.error("最大2MB")
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    let istype = false
 | 
			
		||||
    for(const i in type){
 | 
			
		||||
        if(type[i] == ntype){
 | 
			
		||||
@ -79,14 +86,27 @@ export function provenimg(file: any): boolean | void{
 | 
			
		||||
 * @param name 图片名字
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
export function provenvideo(file: any): boolean{
 | 
			
		||||
export function provenvideo(file: any, isvideo?: boolean): boolean{
 | 
			
		||||
    const type = ['flv', 'mp4', 'wmv', 'mov', 'avi'];
 | 
			
		||||
    const ntypearr = file.name.split('.');
 | 
			
		||||
    const ntype = ntypearr[ntypearr.length - 1];
 | 
			
		||||
    if(isvideo){
 | 
			
		||||
        const size = 500 * 1024 * 1024;
 | 
			
		||||
        if(file.size > size){
 | 
			
		||||
            message.error("最大500MB")
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }else{
 | 
			
		||||
        const size = 100 * 1024 * 1024;
 | 
			
		||||
        if(file.size > size){
 | 
			
		||||
            message.error("最大100MB")
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    for(const i in type){
 | 
			
		||||
        if(type[i] == ntype){
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
@ -64,8 +64,18 @@ export function getdate(yue?: number): GetDate{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export function getweek(time: string,zhou?: number){
 | 
			
		||||
    let now = dayjs((!time ? undefined : time))
 | 
			
		||||
export function getweek(time: string, id: string,zhou?: number){
 | 
			
		||||
    /* eslint-disable */
 | 
			
		||||
    const utc = require('dayjs/plugin/utc') // dependent on utc plugin
 | 
			
		||||
    /* eslint-disable */
 | 
			
		||||
    const timezone = require('dayjs/plugin/timezone')
 | 
			
		||||
    dayjs.extend(utc)
 | 
			
		||||
    dayjs.extend(timezone)
 | 
			
		||||
    const days: any = dayjs;
 | 
			
		||||
    console.log(id, 11111)
 | 
			
		||||
    let now = days((!time ? undefined : time)).tz(id)
 | 
			
		||||
    console.log(now, 11111)
 | 
			
		||||
 | 
			
		||||
    if(zhou != undefined){
 | 
			
		||||
        now = now.day(now.day() + (zhou * 6));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
                  </a-select-option>
 | 
			
		||||
                  <a-select-option value="Jiangsu"> Jiangsu </a-select-option>
 | 
			
		||||
                </a-select> -->
 | 
			
		||||
                 <a-select :default-value="quhaolist[0].name + '+' + quhaolist[0].code" size="small" option-label-prop="label"  @change="getquhao" class="getcode" show-search >
 | 
			
		||||
                 <a-select :default-value="mrqh.name + '+' + mrqh.code" size="small" option-label-prop="label"  @change="getquhao" class="getcode" show-search >
 | 
			
		||||
                    <a-select-option  v-for="(i,j) in quhaolist" :key="j" :value="i.name + '+' + i.code" :label="'+' + i.code">
 | 
			
		||||
                        {{i.name}}+{{i.code}}
 | 
			
		||||
                    </a-select-option>
 | 
			
		||||
@ -53,7 +53,7 @@
 | 
			
		||||
              <a-input-group compact>
 | 
			
		||||
                <a-input
 | 
			
		||||
                  style="width: 80%"
 | 
			
		||||
                  :placeholder="lan.$t('shuruzhanghao')"
 | 
			
		||||
                  :placeholder="lan.$t('shuruzhanghaol')"
 | 
			
		||||
                  v-model:value="userinfo.phone"
 | 
			
		||||
                />
 | 
			
		||||
              </a-input-group>
 | 
			
		||||
@ -117,13 +117,14 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent, onMounted, reactive, ref } from "vue";
 | 
			
		||||
import { computed, defineComponent, onMounted, reactive, ref } from "vue";
 | 
			
		||||
import LoginTab from "@/components/login/LoginTab.vue";
 | 
			
		||||
import NavTop from "@/components/NavTop.vue"
 | 
			
		||||
import { checksmscode, getquhaolist, getwebvideolist, loginpass, sendsms } from '@/api';
 | 
			
		||||
import { message } from 'ant-design-vue';
 | 
			
		||||
import router from '@/router';
 | 
			
		||||
import { useI18n } from '@/utils/i18n';
 | 
			
		||||
import store from '@/store';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  name: "Login",
 | 
			
		||||
@ -146,6 +147,7 @@ export default defineComponent({
 | 
			
		||||
      phone: '13152639856',
 | 
			
		||||
      password: '123456'
 | 
			
		||||
    })
 | 
			
		||||
    const mrqh = computed(() => store.state.qh)
 | 
			
		||||
    const quhaolist = ref<any>([
 | 
			
		||||
    {
 | 
			
		||||
      code: "86",
 | 
			
		||||
@ -281,7 +283,8 @@ export default defineComponent({
 | 
			
		||||
      tovideoxq,
 | 
			
		||||
      navto,
 | 
			
		||||
      lan,
 | 
			
		||||
      slogin
 | 
			
		||||
      slogin,
 | 
			
		||||
      mrqh
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
                        >
 | 
			
		||||
                            <a-input-group compact>
 | 
			
		||||
                                <a-select
 | 
			
		||||
                                    :default-value="quhaolist[0].name + '+' + quhaolist[0].code"
 | 
			
		||||
                                    :default-value="mrqh.name + '+' + mrqh.code"
 | 
			
		||||
                                    size="small"
 | 
			
		||||
                                    @change="getquhao"
 | 
			
		||||
                                    class="getcode"
 | 
			
		||||
@ -221,10 +221,11 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent, onMounted, reactive, ref, toRaw } from "vue";
 | 
			
		||||
import { computed, defineComponent, onMounted, reactive, ref, toRaw } from "vue";
 | 
			
		||||
import NavTop from "@/components/NavTop.vue";
 | 
			
		||||
import {
 | 
			
		||||
    checksmscode,
 | 
			
		||||
    checkuser,
 | 
			
		||||
    getquhaolist,
 | 
			
		||||
    getwillsay,
 | 
			
		||||
    interests,
 | 
			
		||||
@ -234,6 +235,7 @@ import {
 | 
			
		||||
import { message } from "ant-design-vue";
 | 
			
		||||
import router from "@/router";
 | 
			
		||||
import { useI18n } from "@/utils/i18n";
 | 
			
		||||
import store from '@/store';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
    name: "Sign",
 | 
			
		||||
@ -259,6 +261,7 @@ export default defineComponent({
 | 
			
		||||
            jiaoshou: "",
 | 
			
		||||
        });
 | 
			
		||||
        const willsay = ref<any>();
 | 
			
		||||
        const mrqh = computed(() => store.state.qh)
 | 
			
		||||
        const quhaolist = ref<any>([
 | 
			
		||||
            {
 | 
			
		||||
                code: "86",
 | 
			
		||||
@ -278,8 +281,9 @@ export default defineComponent({
 | 
			
		||||
         * 点击获取验证码  触发60S倒计时
 | 
			
		||||
         */
 | 
			
		||||
        let lock = false;
 | 
			
		||||
        const getcode: () => void = () => {
 | 
			
		||||
        const getcode = async () => {
 | 
			
		||||
            console.log(11111);
 | 
			
		||||
            
 | 
			
		||||
            if (lock) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
@ -287,6 +291,11 @@ export default defineComponent({
 | 
			
		||||
                message.error(lan.$t('shoujihaoweikong'));
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            const iszc =  await checkuser({phone: phone.value.phone})
 | 
			
		||||
            if(iszc.code == 0){
 | 
			
		||||
                message.error(lan.$t('zhanghaocunzai'))
 | 
			
		||||
                return ;
 | 
			
		||||
            }
 | 
			
		||||
            lock = true;
 | 
			
		||||
            sendsms(phone.value.quhao, phone.value.phone);
 | 
			
		||||
            const timestep = setInterval(() => {
 | 
			
		||||
@ -371,7 +380,9 @@ export default defineComponent({
 | 
			
		||||
                        phone.value.quhao + phone.value.phone,
 | 
			
		||||
                        phone.value.code
 | 
			
		||||
                    );
 | 
			
		||||
                    
 | 
			
		||||
                    if (res) {
 | 
			
		||||
                       
 | 
			
		||||
                        stepnow.value = e;
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@ -417,7 +428,8 @@ export default defineComponent({
 | 
			
		||||
            navto,
 | 
			
		||||
            lan,
 | 
			
		||||
            quhaolist,
 | 
			
		||||
            getquhao
 | 
			
		||||
            getquhao,
 | 
			
		||||
            mrqh
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@ -283,6 +283,7 @@
 | 
			
		||||
                            "
 | 
			
		||||
                            @change="currencychange"
 | 
			
		||||
                            v-model:value="currencyindex"
 | 
			
		||||
                            :disabled="userinfo.currencytag == 1"
 | 
			
		||||
                        >
 | 
			
		||||
                            <a-select-option
 | 
			
		||||
                                v-for="(item, index) in currencylist"
 | 
			
		||||
@ -383,7 +384,7 @@
 | 
			
		||||
                                <!-- <a-input size="small" v-model:value="bindPhone.number" /> -->
 | 
			
		||||
                                <a-input-group compact class="telbox">
 | 
			
		||||
                                    <a-select
 | 
			
		||||
                                        :default-value="quhaolist[0].name + '+' + quhaolist[0].code"
 | 
			
		||||
                                        :default-value="mrqh.name + '+' + mrqh.code"
 | 
			
		||||
                                        size="small"
 | 
			
		||||
                                        @change="getquhao"
 | 
			
		||||
                                        option-label-prop="label"
 | 
			
		||||
@ -493,6 +494,9 @@
 | 
			
		||||
                {{ lan.$t("baocun") }}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <a-modal v-model:visible="huobi" :footer="null" :title="lan.$t('tishi')" >
 | 
			
		||||
            <p>{{lan.$t('huobitishi')}}</p>
 | 
			
		||||
        </a-modal>
 | 
			
		||||
        <nav-bottom></nav-bottom>
 | 
			
		||||
    </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -542,6 +546,7 @@ export default defineComponent({
 | 
			
		||||
        NavBottom,
 | 
			
		||||
    },
 | 
			
		||||
    setup() {
 | 
			
		||||
        let issum = true;
 | 
			
		||||
        const lan: any = useI18n();
 | 
			
		||||
        interface SpeakItem {
 | 
			
		||||
            lang: string;
 | 
			
		||||
@ -556,6 +561,7 @@ export default defineComponent({
 | 
			
		||||
        const userinfo = computed(() => {
 | 
			
		||||
            return store.state.userinfo;
 | 
			
		||||
        });
 | 
			
		||||
        const huobi = ref(false);
 | 
			
		||||
        // 表单数据
 | 
			
		||||
        const currencyindex = ref<string>(userinfo.value.currency);
 | 
			
		||||
        const formData = ref(toRaw(userinfo.value));
 | 
			
		||||
@ -573,6 +579,8 @@ export default defineComponent({
 | 
			
		||||
        const chiveslist = ref<any>([[], []]);
 | 
			
		||||
        const languages = ref<unknown>([]);
 | 
			
		||||
        const quhaolist = ref<any>([]);
 | 
			
		||||
        const mrqh = computed(() => store.state.qh)
 | 
			
		||||
        
 | 
			
		||||
        const myquhao = ref<string>("");
 | 
			
		||||
 | 
			
		||||
        const mynewtel = ref<string>("");
 | 
			
		||||
@ -812,6 +820,10 @@ export default defineComponent({
 | 
			
		||||
            //  for(let i in toRaw(formData.value).willsay){
 | 
			
		||||
            //     console.log(toRaw(formData.value).willsay[i])
 | 
			
		||||
            // }
 | 
			
		||||
            if(!issum){
 | 
			
		||||
                message.error(lan.$t("shangchuanwancheng"))
 | 
			
		||||
                return; 
 | 
			
		||||
            }
 | 
			
		||||
            const uesrinfo = toRaw(formData.value);
 | 
			
		||||
            // for (let m = 0; m < toRaw(chiveslist.value).length; m++) {
 | 
			
		||||
            //     for (const i in uesrinfo.willsayValue) {
 | 
			
		||||
@ -925,14 +937,16 @@ export default defineComponent({
 | 
			
		||||
        const uploadprogress: Ref<number> = ref(0);
 | 
			
		||||
        async function uploads(file: AntUpload) {
 | 
			
		||||
 | 
			
		||||
            uploadprogress.value = 0;
 | 
			
		||||
 | 
			
		||||
            uploadprogress.value = 1;
 | 
			
		||||
            issum = false;
 | 
			
		||||
            const res = await uploadflie(file.file, (info: any) => {
 | 
			
		||||
                console.log(info);
 | 
			
		||||
                uploadprogress.value = info.percent.toFixed(2) * 100;
 | 
			
		||||
                const jindu = info.percent.toFixed(2) * 100
 | 
			
		||||
                uploadprogress.value =  jindu > 0 ? jindu : 1;
 | 
			
		||||
            });
 | 
			
		||||
            userinfo.value.video = res.video.url;
 | 
			
		||||
            userinfo.value.videoid = res.fileId;
 | 
			
		||||
            issum = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (formData.value.video != "") {
 | 
			
		||||
@ -963,6 +977,7 @@ export default defineComponent({
 | 
			
		||||
 | 
			
		||||
        function currencychange(e?: any) {
 | 
			
		||||
            console.log(e);
 | 
			
		||||
            huobi.value = true;
 | 
			
		||||
            userinfo.value.currencyValue = e;
 | 
			
		||||
            // editsystemsetting({currency:e})
 | 
			
		||||
        }
 | 
			
		||||
@ -1049,7 +1064,9 @@ export default defineComponent({
 | 
			
		||||
            isdisabled,
 | 
			
		||||
            setname,
 | 
			
		||||
            video,
 | 
			
		||||
            imgs
 | 
			
		||||
            imgs,
 | 
			
		||||
            mrqh,
 | 
			
		||||
            huobi
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
});
 | 
			
		||||
@ -1340,6 +1357,9 @@ export default defineComponent({
 | 
			
		||||
            line-height: 23px;
 | 
			
		||||
            cursor: pointer;
 | 
			
		||||
            user-select: none;
 | 
			
		||||
            position: fixed;
 | 
			
		||||
            bottom: 100px;
 | 
			
		||||
            right: 300px;
 | 
			
		||||
        }
 | 
			
		||||
        // .submit-btn:hover {
 | 
			
		||||
        //     background: #08ae98;
 | 
			
		||||
 | 
			
		||||
@ -61,7 +61,7 @@
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <div class="zhanghao">
 | 
			
		||||
                                        {{lan.$t('zhanghao')}}:6217 **** **** **** 175
 | 
			
		||||
                                        {{lan.$t('zhanghao')}}:{{i.account}}
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </a-radio>
 | 
			
		||||
@ -153,7 +153,7 @@ export default defineComponent({
 | 
			
		||||
        const moneychange: (e: number) => void = (e: number) => {
 | 
			
		||||
            console.log(e);
 | 
			
		||||
        };
 | 
			
		||||
        const yue=ref<number>(store.state.userinfo.moneyValue)
 | 
			
		||||
        const yue=computed( () => store.state.userinfo.moneyValue)
 | 
			
		||||
        const danwei = computed(() => store.state.userinfo.symbol)
 | 
			
		||||
        // const yue = ref<number>(10000);
 | 
			
		||||
        // yue.value=store.state.userinfo.money
 | 
			
		||||
@ -180,7 +180,7 @@ export default defineComponent({
 | 
			
		||||
            if (accountlist.value.length == 0) {
 | 
			
		||||
                message.error(lan.$t('kongzhanghaoliebiao'));
 | 
			
		||||
                return;
 | 
			
		||||
            } else if (payinfo.value.money < 100) {
 | 
			
		||||
            } else if (payinfo.value.money < store.state.seting.minwithdraw) {
 | 
			
		||||
                message.error(lan.$t('zuiditixian'));
 | 
			
		||||
                return;
 | 
			
		||||
            } else if (payinfo.value.money > yue.value) {
 | 
			
		||||
 | 
			
		||||
@ -6,14 +6,14 @@
 | 
			
		||||
            <div class="hits">视频点击量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="list-body">
 | 
			
		||||
            <div class="rank-item" v-for="item in rankData" :key="item.uid" :class="{'mine-item': item.uid === 5 }">
 | 
			
		||||
                <div class="other-rank" :class="{'mine-rank': item.uid === 5 }">
 | 
			
		||||
            <div class="rank-item" v-for="(item,index) in list" :key="index" :class="{'mine-item': item.isme }">
 | 
			
		||||
                <div class="other-rank" :class="{'mine-rank': item.isme }">
 | 
			
		||||
                    <div class="ranking-number">
 | 
			
		||||
                        <span v-if="item.uid === 5" class="mine">我的成绩</span>
 | 
			
		||||
                        <span v-if="item.isme" class="mine">我的成绩</span>
 | 
			
		||||
                        <div v-else>
 | 
			
		||||
                            <img src="@/static/images/rank_first.png" class="rank-img" v-if="item.id === 1" />
 | 
			
		||||
                            <img src="@/static/images/rank_second.png" class="rank-img" v-else-if="item.id === 2" />
 | 
			
		||||
                            <img src="@/static/images/rank_third.png" class="rank-img" v-else-if="item.id === 3" />
 | 
			
		||||
                            <img src="@/static/images/rank_first.png" class="rank-img" v-if="index === 0" />
 | 
			
		||||
                            <img src="@/static/images/rank_second.png" class="rank-img" v-else-if="index === 1" />
 | 
			
		||||
                            <img src="@/static/images/rank_third.png" class="rank-img" v-else-if="index === 2" />
 | 
			
		||||
                            <span class="other" v-else>{{ item.id }}</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
@ -45,6 +45,11 @@ export default defineComponent({
 | 
			
		||||
    components: {
 | 
			
		||||
        UserOutlined
 | 
			
		||||
    },
 | 
			
		||||
    props:{
 | 
			
		||||
        list: {
 | 
			
		||||
            type: Object
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    setup() {
 | 
			
		||||
        interface RankItem {
 | 
			
		||||
            uid: number;
 | 
			
		||||
 | 
			
		||||
@ -147,6 +147,7 @@ export default defineComponent({
 | 
			
		||||
        NavBottom,
 | 
			
		||||
    },
 | 
			
		||||
    setup() {
 | 
			
		||||
        let issum= true;
 | 
			
		||||
        const lan: any = useI18n();
 | 
			
		||||
        interface FileItem {
 | 
			
		||||
            video: Array<string>;
 | 
			
		||||
@ -254,20 +255,24 @@ export default defineComponent({
 | 
			
		||||
        const uploadprogress: Ref<number> = ref(0);
 | 
			
		||||
        const ifallowvideo = ref<boolean>(false);
 | 
			
		||||
         async function uploads(file: AntUpload) {
 | 
			
		||||
                issum = false;
 | 
			
		||||
                console.log(file);
 | 
			
		||||
                videofile.value = file.file;
 | 
			
		||||
                uploadprogress.value = 1;
 | 
			
		||||
                videos.value[0].addEventListener("durationchange", () => {
 | 
			
		||||
                    console.log(videos.value[0].duration);
 | 
			
		||||
                    form.value.fileduration = videos.value[0].duration;
 | 
			
		||||
                });
 | 
			
		||||
                const res = await uploadflie(file.file, (info: any) => {
 | 
			
		||||
                    console.log(info);
 | 
			
		||||
                    uploadprogress.value = info.percent.toFixed(2) * 100;
 | 
			
		||||
                    const jindu = info.percent.toFixed(2) * 100
 | 
			
		||||
                    uploadprogress.value = jindu > 0 ? jindu : 1;
 | 
			
		||||
                });
 | 
			
		||||
                console.log(res);
 | 
			
		||||
 | 
			
		||||
                form.value.fileid = res.fileId;
 | 
			
		||||
                form.value.fileurl = res.video.url;
 | 
			
		||||
                issum = true;
 | 
			
		||||
        } 
 | 
			
		||||
 | 
			
		||||
        function beforeVideoUpload(info?: any) {
 | 
			
		||||
@ -285,6 +290,10 @@ export default defineComponent({
 | 
			
		||||
         */
 | 
			
		||||
        const routes = useRoute();
 | 
			
		||||
        const onSubmit = async (e: FromSend) => {
 | 
			
		||||
            if(!issum){
 | 
			
		||||
                message.error(lan.$t("shangchuanwancheng"))
 | 
			
		||||
                return; 
 | 
			
		||||
            }
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            console.log(toRaw(form.value), 111);
 | 
			
		||||
            console.log(toRaw(form.value).video[0].length);
 | 
			
		||||
@ -323,7 +332,7 @@ export default defineComponent({
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        function video(file: any){
 | 
			
		||||
            return provenvideo(file)
 | 
			
		||||
            return provenvideo(file, true)
 | 
			
		||||
        }
 | 
			
		||||
         function imgs(file: any){
 | 
			
		||||
            return provenimg(file)
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@
 | 
			
		||||
                    size="small"
 | 
			
		||||
                    v-model:value="form.title"
 | 
			
		||||
                    :placeholder="lan.$t('shuruzhibobiaoti')"
 | 
			
		||||
                    @click="isEntitled = jinzhi"
 | 
			
		||||
                />
 | 
			
		||||
            </a-form-item>
 | 
			
		||||
            <a-form-item :label="lan.$t('zhibofengmian')" class="item-cover" :rules="{ required: true, message: 'Please input Activity name', trigger: 'blur'}">
 | 
			
		||||
@ -110,7 +111,7 @@
 | 
			
		||||
                    </p>
 | 
			
		||||
                </div> -->
 | 
			
		||||
            </a-form-item>
 | 
			
		||||
            <a-form-item :label="lan.$t('kaishishijian')" :rules="{ required: true, message: 'Please input Activity name', trigger: 'blur'}">
 | 
			
		||||
            <a-form-item :label="lan.$t('kaishishijian')" @click="isEntitled = jinzhi" :rules="{ required: true, message: 'Please input Activity name', trigger: 'blur'}">
 | 
			
		||||
                
 | 
			
		||||
                <!-- <a-input
 | 
			
		||||
          size="small"
 | 
			
		||||
@ -123,6 +124,7 @@
 | 
			
		||||
                    format="YYYY-MM-DD HH:mm"
 | 
			
		||||
                    :value="form.dateline"
 | 
			
		||||
                    :disabled-date="disabledDate"
 | 
			
		||||
                    @click="isEntitled = jinzhi"
 | 
			
		||||
                    @change="startchange"
 | 
			
		||||
                    :placeholder="lan.$t('shezhikaishishijian')"
 | 
			
		||||
                    :getCalendarContainer="
 | 
			
		||||
@ -139,6 +141,7 @@
 | 
			
		||||
                <a-input
 | 
			
		||||
                    size="small"
 | 
			
		||||
                    v-model:value="form.livetime"
 | 
			
		||||
                    @click="isEntitled = jinzhi"
 | 
			
		||||
                    :placeholder="lan.$t('shuruzhiboshijian')"
 | 
			
		||||
                    type="number"
 | 
			
		||||
                />
 | 
			
		||||
@ -153,6 +156,7 @@
 | 
			
		||||
                <a-input
 | 
			
		||||
                    size="small"
 | 
			
		||||
                    v-model:value="form.livenumber"
 | 
			
		||||
                    @click="isEntitled = jinzhi"
 | 
			
		||||
                    :placeholder="lan.$t('shuruzhiborenshu')"
 | 
			
		||||
                    type="number"
 | 
			
		||||
                />
 | 
			
		||||
@ -162,6 +166,7 @@
 | 
			
		||||
            <a-form-item :label="lan.$t('zhibojianjie')" class="brief">
 | 
			
		||||
                <a-textarea
 | 
			
		||||
                    v-model:value="form.desc"
 | 
			
		||||
                    @click="isEntitled = jinzhi"
 | 
			
		||||
                    :autoSize="true"
 | 
			
		||||
                    class="brief-textarea"
 | 
			
		||||
                    :maxlength="200"
 | 
			
		||||
@ -221,6 +226,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import {
 | 
			
		||||
    computed,
 | 
			
		||||
    defineComponent,
 | 
			
		||||
    onBeforeUpdate,
 | 
			
		||||
    onMounted,
 | 
			
		||||
@ -242,6 +248,7 @@ import dayjs from "dayjs";
 | 
			
		||||
import { message } from "ant-design-vue";
 | 
			
		||||
import router from "@/router";
 | 
			
		||||
import { useI18n } from "@/utils/i18n";
 | 
			
		||||
import store from '@/store';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
    name: "ReleaseWebcast",
 | 
			
		||||
@ -252,6 +259,7 @@ export default defineComponent({
 | 
			
		||||
        RankList,
 | 
			
		||||
    },
 | 
			
		||||
    setup() {
 | 
			
		||||
        let issum = true;
 | 
			
		||||
        const lan: any = useI18n();
 | 
			
		||||
        // 表单数据
 | 
			
		||||
        const form = ref({
 | 
			
		||||
@ -271,6 +279,9 @@ export default defineComponent({
 | 
			
		||||
        const videofile = ref<File>();
 | 
			
		||||
        const videos = ref<Array<any>>([]);
 | 
			
		||||
        const lives = ref<any>({});
 | 
			
		||||
        const jinzhi = ref(false)
 | 
			
		||||
        const isEntitled: Ref<boolean> = ref(false);
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * 验证直播时间
 | 
			
		||||
         */
 | 
			
		||||
@ -360,10 +371,21 @@ export default defineComponent({
 | 
			
		||||
                form.value = res;
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        const seting = computed(() => store.state.seting)
 | 
			
		||||
        const onSubmit = (e: FromSend) => {
 | 
			
		||||
            if(jinzhi.value){
 | 
			
		||||
                isEntitled.value = true;
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            if(!issum){
 | 
			
		||||
                message.error(lan.$t("shangchuanwancheng"))
 | 
			
		||||
                return; 
 | 
			
		||||
            }
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            validate()
 | 
			
		||||
                .then(() => {
 | 
			
		||||
                        console.log(seting.value)
 | 
			
		||||
 | 
			
		||||
                    console.log(toRaw(form), 111);
 | 
			
		||||
                    const subdata: any = toRaw(form.value);
 | 
			
		||||
                    if (subdata.title == "") {
 | 
			
		||||
@ -385,12 +407,13 @@ export default defineComponent({
 | 
			
		||||
                        message.error(lan.$t('zhiborenshuweikong'));
 | 
			
		||||
                        return;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        if(subdata.livetime < 30 || subdata.livetime > 120){
 | 
			
		||||
                            message.error("直播时长最短30min, 最长120min");
 | 
			
		||||
                        if(subdata.livetime < parseInt(seting.value.timeLowerLimit) || subdata.livetime > parseInt(seting.value.timeCeiling)){
 | 
			
		||||
                            // console.log(subdata.livetime, subdata.livetime < seting.value.timeLowerLimit || subdata.livetime > seting.value.timeCeiling)
 | 
			
		||||
                            message.error(lan.$t('shichangtishi'));
 | 
			
		||||
                            return ;
 | 
			
		||||
                        }
 | 
			
		||||
                        if(subdata.livenumber > 4 || subdata.livenumber < 1){
 | 
			
		||||
                            message.error("直播人数最少1人, 最多4人");
 | 
			
		||||
                        if(subdata.livenumber > parseInt(seting.value.numberCeiling) || subdata.livenumber < parseInt(seting.value.lowerLimit)){
 | 
			
		||||
                            message.error(lan.$t('renshutishi'));
 | 
			
		||||
                            return ;
 | 
			
		||||
                        }
 | 
			
		||||
                        if (!lives.value.status) {
 | 
			
		||||
@ -415,7 +438,6 @@ export default defineComponent({
 | 
			
		||||
                    console.log("error", err);
 | 
			
		||||
                });
 | 
			
		||||
        };
 | 
			
		||||
        const isEntitled: Ref<boolean> = ref(false);
 | 
			
		||||
        /**
 | 
			
		||||
         * 隐藏无资格提示
 | 
			
		||||
         */
 | 
			
		||||
@ -475,20 +497,24 @@ export default defineComponent({
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        async function uploads(file: AntUpload) {
 | 
			
		||||
                issum = false;
 | 
			
		||||
                console.log(file);
 | 
			
		||||
                videofile.value = file.file;
 | 
			
		||||
                videos.value[0].addEventListener("durationchange", () => {
 | 
			
		||||
                    console.log(videos.value[0].duration);
 | 
			
		||||
                    form.value.fileduration = videos.value[0].duration;
 | 
			
		||||
                });
 | 
			
		||||
                uploadprogress.value = 1;
 | 
			
		||||
                const res = await uploadflie(file.file, (info: any) => {
 | 
			
		||||
                    console.log(info);
 | 
			
		||||
                    uploadprogress.value = info.percent.toFixed(2) * 100;
 | 
			
		||||
                    const jindu = info.percent.toFixed(2) * 100
 | 
			
		||||
                    uploadprogress.value = jindu > 0 ? jindu : 1;
 | 
			
		||||
                });
 | 
			
		||||
                console.log(res);
 | 
			
		||||
 | 
			
		||||
                form.value.fileid = res.fileId;
 | 
			
		||||
                form.value.fileurl = res.video.url;
 | 
			
		||||
                issum = true;
 | 
			
		||||
        }
 | 
			
		||||
        const ifallowpic = ref<boolean>(false);
 | 
			
		||||
        async function uploadspic(file: AntUpload) {
 | 
			
		||||
@ -502,11 +528,11 @@ export default defineComponent({
 | 
			
		||||
                //  picinfo.url=res.video.url
 | 
			
		||||
                form.value.img = res.video.url;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        getlivest().then((res) => {
 | 
			
		||||
            if (res) {
 | 
			
		||||
                isEntitled.value = true;
 | 
			
		||||
                lives.value = res;
 | 
			
		||||
                jinzhi.value = true;
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        function beforeUploadpic(info?: any) {
 | 
			
		||||
@ -537,9 +563,17 @@ export default defineComponent({
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        function video(file: any){
 | 
			
		||||
            if(jinzhi.value){
 | 
			
		||||
                isEntitled.value = true;
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return provenvideo(file)
 | 
			
		||||
        }
 | 
			
		||||
         function imgs(file: any){
 | 
			
		||||
             if(jinzhi.value){
 | 
			
		||||
                isEntitled.value = true;
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return provenimg(file)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -578,7 +612,8 @@ export default defineComponent({
 | 
			
		||||
            onquxiao,
 | 
			
		||||
            isquxiao,
 | 
			
		||||
            video,
 | 
			
		||||
            imgs
 | 
			
		||||
            imgs,
 | 
			
		||||
            jinzhi
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@ -157,7 +157,7 @@
 | 
			
		||||
    <div class="mingxilist" v-if="ifchina && listindex==2">
 | 
			
		||||
      <div class="mingxitop">
 | 
			
		||||
        <div class="tabs">
 | 
			
		||||
          <span class="tabtitle">{{lan.$t('mingxichaxun')}}</span>
 | 
			
		||||
          <span class="tabtitle">{{lan.$t('mingxichaxun')}}<img src="@/static/images/wenhao.png" @click="visible = true" /></span>
 | 
			
		||||
 | 
			
		||||
          <div :class="tabindex == 0 ? 'on' : ''" @click="tabchange(0)">
 | 
			
		||||
            {{lan.$t('quanbu')}}
 | 
			
		||||
@ -201,6 +201,12 @@
 | 
			
		||||
        <a-pagination v-if="salelist.total" v-model:current="page" :total="salelist.total" :showLessItems="true" @change="pagechange"/>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <a-modal v-model:visible="visible" :footer="null" :title="lan.$t('shuoruguize')" @cancel="visible = false">
 | 
			
		||||
      <p>{{lan.$t('shouru1')}}</p>
 | 
			
		||||
      <p>{{lan.$t('shouru2')}}</p>
 | 
			
		||||
      <p style="color:#D12C2E">{{lan.$t('shouru3')}}</p>
 | 
			
		||||
    
 | 
			
		||||
    </a-modal>
 | 
			
		||||
    <NavBottom class="navbottom"></NavBottom>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -228,6 +234,7 @@ export default defineComponent({
 | 
			
		||||
    const state=ref<number>(0)
 | 
			
		||||
    const dates=ref<Array<string>>(["",""])
 | 
			
		||||
    const page = ref(1);
 | 
			
		||||
    const visible = ref(true);
 | 
			
		||||
    onMounted(async () => {
 | 
			
		||||
      console.log(useRoute().query)
 | 
			
		||||
      listindex.value=1
 | 
			
		||||
@ -311,7 +318,8 @@ export default defineComponent({
 | 
			
		||||
      del,
 | 
			
		||||
      store,
 | 
			
		||||
      pagechange,
 | 
			
		||||
      lan
 | 
			
		||||
      lan,
 | 
			
		||||
      visible
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
@ -341,7 +349,7 @@ export default defineComponent({
 | 
			
		||||
    color: #111;
 | 
			
		||||
    padding: 11px 0;
 | 
			
		||||
    .tabtitle {
 | 
			
		||||
      width: 60px;
 | 
			
		||||
      // width: 60px;
 | 
			
		||||
      margin-right: 30px;
 | 
			
		||||
    }
 | 
			
		||||
    > div {
 | 
			
		||||
@ -354,6 +362,15 @@ export default defineComponent({
 | 
			
		||||
        color: #08ae98;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    >span{
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      >img{
 | 
			
		||||
        margin-left: 8px;
 | 
			
		||||
        width: 13px;
 | 
			
		||||
        height: 13px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .on {
 | 
			
		||||
      color: #08ae98;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
    <div class="videoinfo">
 | 
			
		||||
        <div class="info">
 | 
			
		||||
            <VideoPlay :url="result.fileid"></VideoPlay>
 | 
			
		||||
            <VideoPlay :title="result.title" :url="result.fileid"></VideoPlay>
 | 
			
		||||
            <VideoCont :videoid="result.videoid" :yuanyin="result.statusdesc" :date="result.createdAt" :watch="result.watch" :share="result.share" :status="result.status"></VideoCont>
 | 
			
		||||
        </div>
 | 
			
		||||
        <VideoReview :videoinfo="result.score" class="review" v-if="result.status == 1"></VideoReview>
 | 
			
		||||
 | 
			
		||||
@ -99,6 +99,9 @@
 | 
			
		||||
            width: 1320px;
 | 
			
		||||
            height: 63px;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            position: sticky; 
 | 
			
		||||
            top: -23px;
 | 
			
		||||
            z-index: 1000;
 | 
			
		||||
            >div{
 | 
			
		||||
                width: 100%;
 | 
			
		||||
                height: 100%;
 | 
			
		||||
@ -214,10 +217,14 @@ export default defineComponent({
 | 
			
		||||
                    const day = getDay(res[i].dateline)
 | 
			
		||||
                    for(const j in month.value.date){
 | 
			
		||||
                        for(const k in month.value.date[j]){
 | 
			
		||||
                            if(yue.value == 0 && month.value.date[j][k].day == month.value.day){
 | 
			
		||||
                                month.value.date[j][k].s = 1
 | 
			
		||||
                            } 
 | 
			
		||||
                            if(month.value.date[j][k].day == day){
 | 
			
		||||
                                if(month.value.date[j][k].list == undefined){
 | 
			
		||||
                                    month.value.date[j][k].list = [];
 | 
			
		||||
                                }
 | 
			
		||||
                             
 | 
			
		||||
                                if(!month.value.date[j][k].s){
 | 
			
		||||
                                    month.value.date[j][k].s = res[i].livestatus
 | 
			
		||||
                                }else if(month.value.date[j][k].s != 1){
 | 
			
		||||
 | 
			
		||||
@ -122,6 +122,9 @@
 | 
			
		||||
            width: 1320px;
 | 
			
		||||
            height: 63px;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            position: sticky; 
 | 
			
		||||
            top: -23px;
 | 
			
		||||
            z-index: 1000;
 | 
			
		||||
            > div {
 | 
			
		||||
                width: 100%;
 | 
			
		||||
                height: 100%;
 | 
			
		||||
@ -239,7 +242,7 @@
 | 
			
		||||
            }
 | 
			
		||||
            .times{
 | 
			
		||||
                font-size: 11px;
 | 
			
		||||
                color: #FFFA18;
 | 
			
		||||
                color: #D12C2E;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -259,7 +262,7 @@ export default defineComponent({
 | 
			
		||||
    setup() {
 | 
			
		||||
        const zhou = ref(0);
 | 
			
		||||
        const time: any = useRoute().query.time;
 | 
			
		||||
        const week = ref<any>(getweek(time));
 | 
			
		||||
        const week = ref<any>(getweek(time, store.state.userinfo.zoneValue));
 | 
			
		||||
        const userid = store.state.userinfo.memberid;
 | 
			
		||||
        console.log(week.value);
 | 
			
		||||
        function getdates(userid: number){
 | 
			
		||||
@ -291,7 +294,14 @@ export default defineComponent({
 | 
			
		||||
        const times = ref('');
 | 
			
		||||
        const xs = ref(0);
 | 
			
		||||
        setInterval(()=>{
 | 
			
		||||
            const now = dayjs();
 | 
			
		||||
            /* eslint-disable */
 | 
			
		||||
            const utc = require('dayjs/plugin/utc') // dependent on utc plugin
 | 
			
		||||
            /* eslint-disable */
 | 
			
		||||
            const timezone = require('dayjs/plugin/timezone')
 | 
			
		||||
            dayjs.extend(utc)
 | 
			
		||||
            dayjs.extend(timezone)
 | 
			
		||||
            const days: any = dayjs;
 | 
			
		||||
            const now = days().tz(store.state.userinfo.zoneValue)
 | 
			
		||||
            const xiaoshi = now.hour()
 | 
			
		||||
            const fenzhong = now.minute()
 | 
			
		||||
            top.value = (xiaoshi + (fenzhong / 60)) * 0.63;
 | 
			
		||||
@ -300,7 +310,7 @@ export default defineComponent({
 | 
			
		||||
        }, 2000)
 | 
			
		||||
 | 
			
		||||
        watch(zhou, (value) => {
 | 
			
		||||
            week.value = getweek(time, value);
 | 
			
		||||
            week.value = getweek(time, store.state.userinfo.zoneValue, value);
 | 
			
		||||
            console.log(week.value);
 | 
			
		||||
            getdates(userid)
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "defaultSeverity": "error",
 | 
			
		||||
  "compilerOptions": {
 | 
			
		||||
    "target": "esnext",
 | 
			
		||||
    "module": "esnext",
 | 
			
		||||
@ -35,6 +36,10 @@
 | 
			
		||||
    "tests/**/*.tsx"
 | 
			
		||||
  ],
 | 
			
		||||
  "exclude": [
 | 
			
		||||
    "node_modules"
 | 
			
		||||
  ]
 | 
			
		||||
    "node_modules",
 | 
			
		||||
    "tslint:recommended"
 | 
			
		||||
  ],
 | 
			
		||||
  "rules": {
 | 
			
		||||
    "no-var-requires": false
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -9245,6 +9245,11 @@ vod-js-sdk-v6@^1.4.10:
 | 
			
		||||
    js-sha1 "^0.6.0"
 | 
			
		||||
    uuid "^3.3.2"
 | 
			
		||||
 | 
			
		||||
vue-cropper@^0.5.5:
 | 
			
		||||
  version "0.5.5"
 | 
			
		||||
  resolved "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.5.tgz#9bd1ba563c7faa268abd52fb2af4c6c28d33c962"
 | 
			
		||||
  integrity sha512-5mGaBlS1EwLxUFwHHX2Q8zOZSiVfBUjOfolR+ZNKwu7Rh3u+GhwHYOyFkgZHhhoQBBNdyVB28O6W+MpMimhCbA==
 | 
			
		||||
 | 
			
		||||
vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.1.1:
 | 
			
		||||
  version "7.1.1"
 | 
			
		||||
  resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.1.tgz#c43c1c715ff50778b9a7e9a4e16921185f3425d3"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user