Commit e4781d92 by kaisa

Merge branch 'test'

parents fbcf6264 d3849dd4
......@@ -50,7 +50,7 @@ service.interceptors.request.use(
const newParams = {
token: queryParams?.token || "debug",
micId: queryParams?.uid || 123456,
micId: queryParams?.uid || 1,
lang: queryParams?.lang || 2,
cid: queryParams?.cid || "web_gw",
vest: queryParams?.vest || 0,
......@@ -74,8 +74,6 @@ service.interceptors.request.use(
service.interceptors.response.use(
(response: AxiosResponse) => {
const { code, msg } = response.data
console.log(response.data,'response.data?');
if (code === 1) {
return response.data;
} else {
......
import { usePkStore } from '@/stores/pkStore';
const pkStore = usePkStore();
function url_get_params(url_path) {
let url = url_path;
let theRequest = new Object();
if (url.indexOf("?") != -1) {
let str = url.substr(url.indexOf("?") + 1);
strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
let wsTimer = null;
let wsReconnect = null;
let mUrlParam = url_get_params(location.href);
pkStore.setMurlParam(mUrlParam);
console.log(mUrlParam, 'mUrlParam');
let ws = null;
export function WebSocketGo() {
/* 測試: ws://47.75.50.13:5300/ws */
/* 正式: wss://firefly-cloud-websocket.yabolive.net/ws */
ws = new WebSocket(
`${import.meta.env.VITE_APP_WS_URL}?type=4&uid=` +
mUrlParam.uid +
"&token=debug" +
"&roomid=" +
mUrlParam.roomId +
"&lang=" +
mUrlParam.lang
);
console.log("建立链接");
pkStore.setWsLocation("WS建立连接中...")
ws.onopen = function () {
clearInterval(wsReconnect);
clearInterval(wsTimer);
wsTimer = setInterval(function () {
heartbeat();
}, 4500);
};
ws.onmessage = function (event) {
let msg = JSON.parse(event.data);
console.log("推流", msg);
// 存储游戏推流数据
if (msg.content) {
const parseData = JSON.parse(msg.content);
if (parseData.wsdata) {
pkStore.setGameData(JSON.parse(msg.content).wsdata);
}
}
};
ws.onclose = function (error) {
clearInterval(wsReconnect);
wsReconnect = setInterval(function () {
console.log("断了", error);
pkStore.setWsLocation("WS断开连接...")
WebSocketGo();
}, 3000);
};
function heartbeat() {
if (ws.readyState == WebSocket.OPEN) {
pkStore.setWsLocation("WS发送心跳...")
var msg = new WsMsg(1000, "ping", 0, mUrlParam.uid);
ws.send(JSON.stringify(msg));
}
}
function WsMsg(cid, content, extend, uid) {
this.time = new Date().getTime();
this.msgid = Math.random().toString(36).slice(-8);
this.cid = cid;
this.content = content;
this.extend = extend;
this.uid = uid;
}
}
export function closeWebSocket() {
if (ws) {
clearInterval(wsTimer);
clearInterval(wsReconnect);
ws.close();
ws = null;
}
}
......@@ -93,7 +93,7 @@ watch(() => props.resultLevel, (newVal) => {
font-family: PingFang SC;
font-weight: bold;
font-size: 52px;
color: #111;
color: #444444;
padding: 40px 0 34px 0;
}
......
......@@ -2,6 +2,7 @@
import {
anchorSign
} from "@/api/activity/recruitmentApi";
import { showToast } from 'vant';
interface Props {
signLevel: number;
......@@ -12,6 +13,8 @@ const props = withDefaults(defineProps<Props>(), {
platformList: []
});
const emits = defineEmits(['refreshView'])
/* 主播信息表單 */
const formData = ref({
platform: '',
......@@ -34,23 +37,27 @@ const columns = ref<ColumnItem[]>([])
// 进度条
const stages = [
{ label: '試合作', time: "15天" },
{ label: '中期合作', time: "180天或收穫200w螢火" },
{ label: '長期合作', time: "365天" }
{ label: '試合作', time: "15天", msg: "第一階段", require: "試合作期間15天內開播3小時以上超過12天" },
{ label: '中期合作', time: "180天或收穫200w螢火", msg: "第二階段", require: "中期合作期間內開播天數超過26天" },
{ label: '長期合作', time: "365天", msg: "第三階段", require: "長期合作期間內每個月開播天數超過26天" }
];
const stageIndex = ref(0)
// 监听合作状态 0 试合作 1 中期合作 2 长期合作
watch(() => props.signLevel, (newVal) => {
stageIndex.value = newVal;
}, { deep: true });
}, { deep: true, immediate: true });
// 监听合作平台数据
watch(() => props.platformList, (newVal) => {
console.log(newVal, 'newVal~');
if (newVal) {
newVal.map(item => {
columns.value.push({ text: item.platform, value: item.context, nickName: item.value })
})
}, { deep: true });
}
}, { deep: true, immediate: true });
const onConfirm = ({ selectedValues }: any) => {
const selectedItem = columns.value.find(item => item.value === selectedValues);
......@@ -74,6 +81,13 @@ const onSubmit = async () => {
signuid: formData.value.uid
});
if (code == 1) {
showToast('簽約成功')
emits('refreshView')
} else {
showToast(msg)
}
} catch (error) {
}
};
......@@ -222,13 +236,14 @@ const onSubmit = async () => {
<div class="dot"></div>
開播時長
</div>
<div class="require-content">試合作期間15天內開播3小時以上超過12天</div>
<div class="require-content">{{ stages[stageIndex].require }}</div>
</div>
<div class="require-item">
<div class="require-title">
<div class="dot"></div>溝通配合
</div>
<div class="require-content">試合作期間內每天16:00-23:00需保持與公會的社交媒體對接</div>
<div class="require-content">{{ stages[stageIndex].label }}期間內每天16:00-23:00需保持與公會的社交媒體對接
</div>
</div>
<div class="require-item">
<div class="require-title">
......@@ -236,6 +251,12 @@ const onSubmit = async () => {
</div>
<div class="require-content">提供個人資料(生活照、職業、興趣愛好等),公會將幫助您進行形象包裝</div>
</div>
<div class="require-item" v-show="stageIndex == 2">
<div class="require-title">
<div class="dot"></div>上播助手
</div>
<div class="require-content">在FIREFLY Live中將公會賬號設定為「上播助手」</div>
</div>
</div>
</div>
<div class="rule-item-bottom"></div>
......@@ -263,6 +284,18 @@ const onSubmit = async () => {
</div>
<div class="require-content">長時間不迴應公會的社交媒體對接,公會方有權終止合作。並將通過平台申請賬號資產凍結。</div>
</div>
<div class="require-item" v-show="stageIndex == 2">
<div class="require-title">
<div class="dot"></div>條款四
</div>
<div class="require-content">若需停播3天以上,需要提前至少3天告知公會對接人員。</div>
</div>
<div class="require-item" v-show="stageIndex == 2">
<div class="require-title">
<div class="dot"></div>條款五
</div>
<div class="require-content">主播與公會經紀人之間禁止任何形式的禮物返利,一經發現,停止主播合作。</div>
</div>
</div>
</div>
<div class="rule-item-bottom"></div>
......@@ -305,7 +338,9 @@ const onSubmit = async () => {
<div class="info-bottom"></div>
</div>
<div class="confirm">
<span class="message">我們希望能和您開啟第一階段「試合作」,讓我們與你一起經營直播間。 </span>
<span class="message">我們希望能和您開啟{{ stages[stageIndex].msg }}
<span class="message-info">{{ stages[stageIndex].label }}</span>
,讓我們與你一起經營直播間。 </span>
<img src="../../image/btn.png" alt="" @click="onSubmit">
<span class="tips">簽約將在24小時內完成審核</span>
</div>
......@@ -324,10 +359,9 @@ const onSubmit = async () => {
background-size: 100% 100%;
.content {
padding: 859px 49px 24px 49px;
padding: 679px 35px 24px 35px;
.stage {
width: 652px;
height: 100%;
.stage-title {
......@@ -342,7 +376,7 @@ const onSubmit = async () => {
background-size: 100% 100%;
width: 430px;
height: 89px;
margin: 0 107px 0 115px;
margin: 0 107px 0 120px;
position: relative;
top: -35px;
display: flex;
......@@ -351,8 +385,8 @@ const onSubmit = async () => {
span {
position: absolute;
top: 8px;
transform: skewX(-15deg); // 只保留倾斜效果
top: 12px;
transform: skewX(-15deg);
font-family: "FZZ";
font-weight: bold;
font-size: 44px;
......@@ -365,7 +399,7 @@ const onSubmit = async () => {
.text-content {
background-image: url(../../image/dialogCenter.png);
background-size: 100%;
min-height: 200px;
min-height: 220px;
.content-overflow {
background-image: url(../../image/contentBg.png);
......@@ -374,7 +408,7 @@ const onSubmit = async () => {
.content-wrap {
height: 100%;
padding: 12px 16px 25px 46px;
padding: 12px 46px 25px 46px;
box-sizing: border-box;
display: flex;
flex-direction: column;
......@@ -451,7 +485,7 @@ const onSubmit = async () => {
.progress-markers {
display: flex;
gap: 55px;
gap: 65px;
color: rgba(255, 255, 255, 0.5);
font-size: 26px;
font-family: PingFang SC;
......@@ -503,7 +537,6 @@ const onSubmit = async () => {
}
.sign {
width: 652px;
height: 100%;
padding-top: 30px;
......@@ -520,7 +553,7 @@ const onSubmit = async () => {
background-size: 100% 100%;
width: 529px;
height: 89px;
margin: 0 64px 0 59px;
margin: 0 64px 0 80px;
position: relative;
top: -35px;
display: flex;
......@@ -529,7 +562,7 @@ const onSubmit = async () => {
span {
position: absolute;
top: 8px;
top: 12px;
transform: skewX(-15deg); // 只保留倾斜效果
font-family: "FZZ";
font-weight: bold;
......@@ -550,14 +583,14 @@ const onSubmit = async () => {
img {
width: 529px;
height: 51px;
padding: 0px 67px 16px 56px;
padding: 0px 67px 16px 66px;
}
.text-wrap {
display: flex;
flex-direction: row;
gap: 58px;
padding-left: 23px;
padding-left: 33px;
.sign-item {
width: 107px;
......@@ -611,22 +644,21 @@ const onSubmit = async () => {
span {
display: block;
padding-top: 15px;
font-family: 'FZZ';
font-weight: bold;
font-size: 34px;
color: #48FEC1;
text-shadow: 0px 4px 7px #2170D3;
font-style: italic;
padding-right: 8px;
padding-top: 23px;
padding-top: 30px;
transform: skewX(-10deg);
}
&::before {
content: '';
position: absolute;
left: 185px;
top: 32px;
left: 200px;
top: 34px;
width: 64px;
height: 41px;
background-image: url(../../image/leftArrow.png);
......@@ -637,8 +669,8 @@ const onSubmit = async () => {
&::after {
content: '';
position: absolute;
right: 193px;
top: 32px;
right: 213px;
top: 34px;
width: 64px;
height: 41px;
background-image: url(../../image/rightArrow.png);
......@@ -786,7 +818,7 @@ const onSubmit = async () => {
background-image: url(../../image/dialogBottom.png);
background-repeat: no-repeat;
background-size: 100%;
min-height: 70px;
min-height: 75px;
}
}
}
......@@ -806,20 +838,21 @@ const onSubmit = async () => {
display: block;
padding-top: 15px;
font-family: 'FZZ';
transform: skewX(-10deg);
font-weight: bold;
font-size: 34px;
color: #48FEC1;
text-shadow: 0px 4px 7px #2170D3;
font-style: italic;
padding-right: 8px;
padding-top: 23px;
padding-top: 30px;
}
&::before {
content: '';
position: absolute;
left: 185px;
top: 32px;
left: 200px;
top: 34px;
width: 64px;
height: 41px;
background-image: url(../../image/leftArrow.png);
......@@ -830,8 +863,8 @@ const onSubmit = async () => {
&::after {
content: '';
position: absolute;
right: 193px;
top: 32px;
right: 213px;
top: 34px;
width: 64px;
height: 41px;
background-image: url(../../image/rightArrow.png);
......@@ -859,7 +892,7 @@ const onSubmit = async () => {
background-image: url(../../image/dialogBottom.png);
background-repeat: no-repeat;
background-size: 100%;
min-height: 70px;
min-height: 75px;
}
}
......@@ -878,6 +911,11 @@ const onSubmit = async () => {
width: 592px;
height: 60px;
text-align: center;
}
.message-info {
color: #FFF000;
}
img {
......@@ -911,7 +949,7 @@ const onSubmit = async () => {
:deep(.van-form) {
width: 601px;
background: rgba(0, 0, 0, 0.2);
margin-left: 24px;
margin-left: 40px;
.van-cell-group {
background: transparent;
......

156 KB | W: | H:

26.9 KB | W: | H:

src/views/activity/recruitment/image/btn.png
src/views/activity/recruitment/image/btn.png
src/views/activity/recruitment/image/btn.png
src/views/activity/recruitment/image/btn.png
  • 2-up
  • Swipe
  • Onion skin

126 KB | W: | H:

27.6 KB | W: | H:

src/views/activity/recruitment/image/contentBg.png
src/views/activity/recruitment/image/contentBg.png
src/views/activity/recruitment/image/contentBg.png
src/views/activity/recruitment/image/contentBg.png
  • 2-up
  • Swipe
  • Onion skin

5.17 KB | W: | H:

2.13 KB | W: | H:

src/views/activity/recruitment/image/dialogBottom.png
src/views/activity/recruitment/image/dialogBottom.png
src/views/activity/recruitment/image/dialogBottom.png
src/views/activity/recruitment/image/dialogBottom.png
  • 2-up
  • Swipe
  • Onion skin

1.87 KB | W: | H:

521 Bytes | W: | H:

src/views/activity/recruitment/image/dialogCenter.png
src/views/activity/recruitment/image/dialogCenter.png
src/views/activity/recruitment/image/dialogCenter.png
src/views/activity/recruitment/image/dialogCenter.png
  • 2-up
  • Swipe
  • Onion skin

24.7 KB | W: | H:

7.94 KB | W: | H:

src/views/activity/recruitment/image/dialogTop.png
src/views/activity/recruitment/image/dialogTop.png
src/views/activity/recruitment/image/dialogTop.png
src/views/activity/recruitment/image/dialogTop.png
  • 2-up
  • Swipe
  • Onion skin

443 Bytes | W: | H:

232 Bytes | W: | H:

src/views/activity/recruitment/image/down.png
src/views/activity/recruitment/image/down.png
src/views/activity/recruitment/image/down.png
src/views/activity/recruitment/image/down.png
  • 2-up
  • Swipe
  • Onion skin

186 KB | W: | H:

35 KB | W: | H:

src/views/activity/recruitment/image/fail.png
src/views/activity/recruitment/image/fail.png
src/views/activity/recruitment/image/fail.png
src/views/activity/recruitment/image/fail.png
  • 2-up
  • Swipe
  • Onion skin

212 KB | W: | H:

40.1 KB | W: | H:

src/views/activity/recruitment/image/judge.png
src/views/activity/recruitment/image/judge.png
src/views/activity/recruitment/image/judge.png
src/views/activity/recruitment/image/judge.png
  • 2-up
  • Swipe
  • Onion skin

11.6 KB | W: | H:

3.69 KB | W: | H:

src/views/activity/recruitment/image/leftArrow.png
src/views/activity/recruitment/image/leftArrow.png
src/views/activity/recruitment/image/leftArrow.png
src/views/activity/recruitment/image/leftArrow.png
  • 2-up
  • Swipe
  • Onion skin

1.09 KB | W: | H:

376 Bytes | W: | H:

src/views/activity/recruitment/image/leftLine.png
src/views/activity/recruitment/image/leftLine.png
src/views/activity/recruitment/image/leftLine.png
src/views/activity/recruitment/image/leftLine.png
  • 2-up
  • Swipe
  • Onion skin

2.58 KB | W: | H:

978 Bytes | W: | H:

src/views/activity/recruitment/image/money.png
src/views/activity/recruitment/image/money.png
src/views/activity/recruitment/image/money.png
src/views/activity/recruitment/image/money.png
  • 2-up
  • Swipe
  • Onion skin

1.29 KB | W: | H:

654 Bytes | W: | H:

src/views/activity/recruitment/image/pop.png
src/views/activity/recruitment/image/pop.png
src/views/activity/recruitment/image/pop.png
src/views/activity/recruitment/image/pop.png
  • 2-up
  • Swipe
  • Onion skin

12.4 KB | W: | H:

3.74 KB | W: | H:

src/views/activity/recruitment/image/progress.png
src/views/activity/recruitment/image/progress.png
src/views/activity/recruitment/image/progress.png
src/views/activity/recruitment/image/progress.png
  • 2-up
  • Swipe
  • Onion skin

11.5 KB | W: | H:

3.7 KB | W: | H:

src/views/activity/recruitment/image/rightArrow.png
src/views/activity/recruitment/image/rightArrow.png
src/views/activity/recruitment/image/rightArrow.png
src/views/activity/recruitment/image/rightArrow.png
  • 2-up
  • Swipe
  • Onion skin

1.09 KB | W: | H:

372 Bytes | W: | H:

src/views/activity/recruitment/image/rightLine.png
src/views/activity/recruitment/image/rightLine.png
src/views/activity/recruitment/image/rightLine.png
src/views/activity/recruitment/image/rightLine.png
  • 2-up
  • Swipe
  • Onion skin

2.01 KB | W: | H:

849 Bytes | W: | H:

src/views/activity/recruitment/image/service.png
src/views/activity/recruitment/image/service.png
src/views/activity/recruitment/image/service.png
src/views/activity/recruitment/image/service.png
  • 2-up
  • Swipe
  • Onion skin

187 KB | W: | H:

36 KB | W: | H:

src/views/activity/recruitment/image/success.png
src/views/activity/recruitment/image/success.png
src/views/activity/recruitment/image/success.png
src/views/activity/recruitment/image/success.png
  • 2-up
  • Swipe
  • Onion skin

117 KB | W: | H:

19.7 KB | W: | H:

src/views/activity/recruitment/image/titleBg.png
src/views/activity/recruitment/image/titleBg.png
src/views/activity/recruitment/image/titleBg.png
src/views/activity/recruitment/image/titleBg.png
  • 2-up
  • Swipe
  • Onion skin

121 KB | W: | H:

20.5 KB | W: | H:

src/views/activity/recruitment/image/titleBgLong.png
src/views/activity/recruitment/image/titleBgLong.png
src/views/activity/recruitment/image/titleBgLong.png
src/views/activity/recruitment/image/titleBgLong.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -16,13 +16,6 @@ const getAnchorSignView = async () => {
type: 0
});
// 签约状态 0 需要签约页面 1 签约结果页面
if (data.signInfo == 1) {
isShowReview.value = true
} else {
isShowReview.value = false
}
// 合作状态
signLevel.value = data.levelInfo;
......@@ -31,14 +24,25 @@ const getAnchorSignView = async () => {
// 签约平台
platformList.value = data.list;
// 签约状态 0 需要签约页面 1 签约结果页面
if (data.signInfo == 1) {
isShowReview.value = true
} else {
isShowReview.value = false
}
};
const refresh = () => {
getAnchorSignView()
}
onMounted(() => {
getAnchorSignView()
})
</script>
<template>
<sign v-if="isShowReview === false" :signLevel="signLevel" :platformList="platformList" />
<sign v-if="isShowReview === false" :signLevel="signLevel" :platformList="platformList" @refreshView="refresh" />
<review v-else-if="isShowReview === true" :resultLevel="resultLevel" />
</template>
<style scoped lang="scss"></style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment