Commit a8f6ee4e by kaisa

feat:接口联调更新

parent 0bbd1caa
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
"@vant/use": "^1.6.0", "@vant/use": "^1.6.0",
"@vueuse/core": "^10.11.1", "@vueuse/core": "^10.11.1",
"axios": "^1.7.7", "axios": "^1.7.7",
"crypto-js": "^4.2.0",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"jquery": "^3.7.1", "jquery": "^3.7.1",
...@@ -2349,6 +2350,12 @@ ...@@ -2349,6 +2350,12 @@
"typescript": ">=5" "typescript": ">=5"
} }
}, },
"node_modules/crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
"license": "MIT"
},
"node_modules/css-line-break": { "node_modules/css-line-break": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
"@vant/use": "^1.6.0", "@vant/use": "^1.6.0",
"@vueuse/core": "^10.11.1", "@vueuse/core": "^10.11.1",
"axios": "^1.7.7", "axios": "^1.7.7",
"crypto-js": "^4.2.0",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"jquery": "^3.7.1", "jquery": "^3.7.1",
......
...@@ -11,12 +11,15 @@ if (queryParams.lang == '0' || queryParams.lang == '2') { ...@@ -11,12 +11,15 @@ if (queryParams.lang == '0' || queryParams.lang == '2') {
} }
// 获取主播签约页面 // 获取主播签约页面
export const getSignView = (): Promise<ReturnReq> => { export const getSignView = (params: {
type: Number,
}): Promise<ReturnReq> => {
return request({ return request({
method: "get", method: "get",
url: "/webSopAnchor/getSignView", url: "/webSopAnchor/getSignView",
params: { params: {
lang, lang,
type: params.type
} }
}); });
} }
...@@ -25,7 +28,8 @@ export const getSignView = (): Promise<ReturnReq> => { ...@@ -25,7 +28,8 @@ export const getSignView = (): Promise<ReturnReq> => {
export const anchorSign = (params: { export const anchorSign = (params: {
platform: string, platform: string,
micName: string, micName: string,
idCard: string idCard: string,
signuid: string
}): Promise<ReturnReq> => { }): Promise<ReturnReq> => {
return request({ return request({
method: "get", method: "get",
...@@ -34,7 +38,8 @@ export const anchorSign = (params: { ...@@ -34,7 +38,8 @@ export const anchorSign = (params: {
lang, lang,
platform: params.platform, platform: params.platform,
micName: params.micName, micName: params.micName,
idCard: params.idCard idCard: params.idCard,
signuid: params.signuid
} }
}); });
} }
......
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios"; import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";
import { showToast } from 'vant'; import { showToast } from 'vant';
import { handleQueryParams } from "./common"; import CryptoJS from 'crypto-js';
// 创建 axios 实例 // 创建 axios 实例
const service = axios.create({ const service = axios.create({
...@@ -9,12 +9,45 @@ const service = axios.create({ ...@@ -9,12 +9,45 @@ const service = axios.create({
headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" },
}); });
// 获取地址栏参数对象
function handleEncryptionQueryParams() {
const search = window.location.search;
// 移除开头的问号
const encryptedParam = search.substring(1);
if (encryptedParam) {
try {
const decryptedStr = decryptAES(encryptedParam, 'mySecretKey01117');
const params = new URLSearchParams(decryptedStr);
return {
uid: params.get('uid'),
};
} catch (error) {
console.error('解密失败:', error);
return null;
}
}
return null;
}
// AES解密函数
function decryptAES(encryptedStr: string, key: string) {
const keyHex = CryptoJS.enc.Utf8.parse(key);
const decrypted = CryptoJS.AES.decrypt(encryptedStr, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
// 请求拦截器 // 请求拦截器
service.interceptors.request.use( service.interceptors.request.use(
(config: InternalAxiosRequestConfig) => { (config: InternalAxiosRequestConfig) => {
// 配置统一请求必传参数 // 配置统一请求必传参数
const queryParams = handleQueryParams(); const queryParams = handleEncryptionQueryParams();
const newParams = { const newParams = {
token: queryParams?.token || "debug", token: queryParams?.token || "debug",
micId: queryParams?.uid || 123456, micId: queryParams?.uid || 123456,
......
...@@ -5,9 +5,11 @@ import { ...@@ -5,9 +5,11 @@ import {
interface Props { interface Props {
signLevel: number; signLevel: number;
platformList: any[];
} }
const props = withDefaults(defineProps<Props>(), { const props = withDefaults(defineProps<Props>(), {
signLevel: 0 signLevel: 0,
platformList: []
}); });
/* 主播信息表單 */ /* 主播信息表單 */
...@@ -22,9 +24,13 @@ const isShowWriteId = ref(false) ...@@ -22,9 +24,13 @@ const isShowWriteId = ref(false)
const showPlatformPicker = ref(false); const showPlatformPicker = ref(false);
const pickerValue = ref([]) const pickerValue = ref([])
const columns = [ const selectPlatform = ref('FIREFLY ID')
{ text: 'FIREFLY Live 螢火蟲', value: 'FIREFLY Live 螢火蟲' }, interface ColumnItem {
]; text: string;
value: string;
nickName: string;
}
const columns = ref<ColumnItem[]>([])
// 进度条 // 进度条
const stages = [ const stages = [
...@@ -39,7 +45,19 @@ watch(() => props.signLevel, (newVal) => { ...@@ -39,7 +45,19 @@ watch(() => props.signLevel, (newVal) => {
stageIndex.value = newVal; stageIndex.value = newVal;
}, { deep: true }); }, { deep: true });
// 监听合作平台数据
watch(() => props.platformList, (newVal) => {
newVal.map(item => {
columns.value.push({ text: item.platform, value: item.context, nickName: item.value })
})
}, { deep: true });
const onConfirm = ({ selectedValues }: any) => { const onConfirm = ({ selectedValues }: any) => {
const selectedItem = columns.value.find(item => item.value === selectedValues);
if (selectedItem) {
selectPlatform.value = selectedItem.nickName;
}
formData.value.platform = selectedValues; formData.value.platform = selectedValues;
showPlatformPicker.value = false; showPlatformPicker.value = false;
isShowWriteId.value = true; isShowWriteId.value = true;
...@@ -53,11 +71,12 @@ const onSubmit = async () => { ...@@ -53,11 +71,12 @@ const onSubmit = async () => {
const { code, msg, data } = await anchorSign({ const { code, msg, data } = await anchorSign({
platform: formData.value.platform, platform: formData.value.platform,
micName: formData.value.userName, micName: formData.value.userName,
idCard: formData.value.idNum idCard: formData.value.idNum,
signuid: formData.value.uid
}); });
console.log(data,'data~'); console.log(data, 'data~');
} catch (error) { } catch (error) {
} }
}; };
...@@ -265,8 +284,9 @@ const onSubmit = async () => { ...@@ -265,8 +284,9 @@ const onSubmit = async () => {
is-link @click="showPlatformPicker = true" is-link @click="showPlatformPicker = true"
:rules="[{ required: true, message: '请選擇平臺' }]" /> :rules="[{ required: true, message: '请選擇平臺' }]" />
<van-field v-show="isShowWriteId" v-model="formData.uid" name="id" label="FIREFLY ID: " <van-field v-show="isShowWriteId" v-model="formData.uid" name="id"
placeholder="請輸入" :rules="[{ required: true, message: '请輸入FIREFLY ID' }]" /> :label="`${selectPlatform}:`" placeholder="請輸入"
:rules="[{ required: true, message: `请輸入${selectPlatform}` }]" />
<span v-show="isShowWriteId" class="platform-tips">主播僅允許選定一個合作平台,多平台合作模式後續開放,敬請期待 <span v-show="isShowWriteId" class="platform-tips">主播僅允許選定一個合作平台,多平台合作模式後續開放,敬請期待
</span> </span>
......
...@@ -8,10 +8,13 @@ import { ...@@ -8,10 +8,13 @@ import {
const isShowReview = ref(false) const isShowReview = ref(false)
const signLevel = ref(0) const signLevel = ref(0)
const resultLevel = ref(0) const resultLevel = ref(0)
const platformList = ref([])
// 获取页面信息 // 获取页面信息
const getAnchorSignView = async () => { const getAnchorSignView = async () => {
const { code, msg, data } = await getSignView(); const { code, msg, data } = await getSignView({
type: 0
});
// 签约状态 0 需要签约页面 1 签约结果页面 // 签约状态 0 需要签约页面 1 签约结果页面
if (data.signInfo == 1) { if (data.signInfo == 1) {
...@@ -25,6 +28,9 @@ const getAnchorSignView = async () => { ...@@ -25,6 +28,9 @@ const getAnchorSignView = async () => {
// 签约状态 // 签约状态
resultLevel.value = data.signInfo; resultLevel.value = data.signInfo;
// 签约平台
platformList.value = data.list;
}; };
onMounted(() => { onMounted(() => {
...@@ -32,7 +38,7 @@ onMounted(() => { ...@@ -32,7 +38,7 @@ onMounted(() => {
}) })
</script> </script>
<template> <template>
<sign v-if="!isShowReview" :signLevel="signLevel" /> <sign v-if="!isShowReview" :signLevel="signLevel" :platformList="platformList" />
<review v-else :resultLevel="resultLevel" /> <review v-else :resultLevel="resultLevel" />
</template> </template>
<style scoped lang="scss"></style> <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