Commit a8f6ee4e by kaisa

feat:接口联调更新

parent 0bbd1caa
......@@ -11,6 +11,7 @@
"@vant/use": "^1.6.0",
"@vueuse/core": "^10.11.1",
"axios": "^1.7.7",
"crypto-js": "^4.2.0",
"echarts": "^5.5.1",
"html2canvas": "^1.4.1",
"jquery": "^3.7.1",
......@@ -2349,6 +2350,12 @@
"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": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
......
......@@ -12,6 +12,7 @@
"@vant/use": "^1.6.0",
"@vueuse/core": "^10.11.1",
"axios": "^1.7.7",
"crypto-js": "^4.2.0",
"echarts": "^5.5.1",
"html2canvas": "^1.4.1",
"jquery": "^3.7.1",
......
......@@ -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({
method: "get",
url: "/webSopAnchor/getSignView",
params: {
lang,
type: params.type
}
});
}
......@@ -25,7 +28,8 @@ export const getSignView = (): Promise<ReturnReq> => {
export const anchorSign = (params: {
platform: string,
micName: string,
idCard: string
idCard: string,
signuid: string
}): Promise<ReturnReq> => {
return request({
method: "get",
......@@ -34,7 +38,8 @@ export const anchorSign = (params: {
lang,
platform: params.platform,
micName: params.micName,
idCard: params.idCard
idCard: params.idCard,
signuid: params.signuid
}
});
}
......
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";
import { showToast } from 'vant';
import { handleQueryParams } from "./common";
import CryptoJS from 'crypto-js';
// 创建 axios 实例
const service = axios.create({
......@@ -9,12 +9,45 @@ const service = axios.create({
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(
(config: InternalAxiosRequestConfig) => {
// 配置统一请求必传参数
const queryParams = handleQueryParams();
const queryParams = handleEncryptionQueryParams();
const newParams = {
token: queryParams?.token || "debug",
micId: queryParams?.uid || 123456,
......
......@@ -5,9 +5,11 @@ import {
interface Props {
signLevel: number;
platformList: any[];
}
const props = withDefaults(defineProps<Props>(), {
signLevel: 0
signLevel: 0,
platformList: []
});
/* 主播信息表單 */
......@@ -22,9 +24,13 @@ const isShowWriteId = ref(false)
const showPlatformPicker = ref(false);
const pickerValue = ref([])
const columns = [
{ text: 'FIREFLY Live 螢火蟲', value: 'FIREFLY Live 螢火蟲' },
];
const selectPlatform = ref('FIREFLY ID')
interface ColumnItem {
text: string;
value: string;
nickName: string;
}
const columns = ref<ColumnItem[]>([])
// 进度条
const stages = [
......@@ -39,7 +45,19 @@ watch(() => props.signLevel, (newVal) => {
stageIndex.value = newVal;
}, { 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 selectedItem = columns.value.find(item => item.value === selectedValues);
if (selectedItem) {
selectPlatform.value = selectedItem.nickName;
}
formData.value.platform = selectedValues;
showPlatformPicker.value = false;
isShowWriteId.value = true;
......@@ -53,11 +71,12 @@ const onSubmit = async () => {
const { code, msg, data } = await anchorSign({
platform: formData.value.platform,
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) {
}
};
......@@ -265,8 +284,9 @@ const onSubmit = async () => {
is-link @click="showPlatformPicker = true"
:rules="[{ required: true, message: '请選擇平臺' }]" />
<van-field v-show="isShowWriteId" v-model="formData.uid" name="id" label="FIREFLY ID: "
placeholder="請輸入" :rules="[{ required: true, message: '请輸入FIREFLY ID' }]" />
<van-field v-show="isShowWriteId" v-model="formData.uid" name="id"
:label="`${selectPlatform}:`" placeholder="請輸入"
:rules="[{ required: true, message: `请輸入${selectPlatform}` }]" />
<span v-show="isShowWriteId" class="platform-tips">主播僅允許選定一個合作平台,多平台合作模式後續開放,敬請期待
</span>
......
......@@ -8,10 +8,13 @@ import {
const isShowReview = ref(false)
const signLevel = ref(0)
const resultLevel = ref(0)
const platformList = ref([])
// 获取页面信息
const getAnchorSignView = async () => {
const { code, msg, data } = await getSignView();
const { code, msg, data } = await getSignView({
type: 0
});
// 签约状态 0 需要签约页面 1 签约结果页面
if (data.signInfo == 1) {
......@@ -25,6 +28,9 @@ const getAnchorSignView = async () => {
// 签约状态
resultLevel.value = data.signInfo;
// 签约平台
platformList.value = data.list;
};
onMounted(() => {
......@@ -32,7 +38,7 @@ onMounted(() => {
})
</script>
<template>
<sign v-if="!isShowReview" :signLevel="signLevel" />
<sign v-if="!isShowReview" :signLevel="signLevel" :platformList="platformList" />
<review v-else :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