Commit 0bbd1caa by kaisa

feat:更新

parent 7de5ee2e
import request from "@/utils/request"; import request from "@/utils/requestAct";
import type { ReturnReq } from "../types"; import type { ReturnReq } from "../types";
import { handleQueryParams } from '@/utils/common' import { handleQueryParams } from '@/utils/common'
const queryParams = handleQueryParams() const queryParams = handleQueryParams()
...@@ -10,14 +10,32 @@ if (queryParams.lang == '0' || queryParams.lang == '2') { ...@@ -10,14 +10,32 @@ if (queryParams.lang == '0' || queryParams.lang == '2') {
lang = 1 lang = 1
} }
// 获取用户信息 // 获取主播签约页面
export const getUser = (data: { target: number }): Promise<ReturnReq> => { export const getSignView = (): Promise<ReturnReq> => {
return request({ return request({
method: "post", method: "get",
url: "/data/getUser", url: "/webSopAnchor/getSignView",
data: { params: {
lang, lang,
target: data.target
} }
}); });
} }
//主播进行签约
export const anchorSign = (params: {
platform: string,
micName: string,
idCard: string
}): Promise<ReturnReq> => {
return request({
method: "get",
url: "/webSopAnchor/sign",
params: {
lang,
platform: params.platform,
micName: params.micName,
idCard: params.idCard
}
});
}
// src/utils/request.ts
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";
import { showToast } from 'vant';
import { getQueryParams } from "./common";
// 创建 axios 实例
const service = axios.create({
// baseURL: import.meta.env.VITE_APP_BASE_API,
baseURL: import.meta.env.VITE_APP_API_URL,
timeout: 30000,
/* "application/json;charset=utf-8" */
headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" },
});
// 请求拦截器
service.interceptors.request.use(
(config: InternalAxiosRequestConfig) => {
// console.log("配置", config)
// get请求映射params参数
const queryParams = getQueryParams();
const requestParams = {
token: queryParams.token,
uid: queryParams.uid,
lang: queryParams?.lang || 2,
cid: queryParams?.cid || "web_gw",
os: "WEB",
};
console.log(config);
if (config.params) {
let url = config.url + "?";
for (const propName of Object.keys(config.params)) {
const value = config.params[propName];
var part = encodeURIComponent(propName) + "=";
if (value !== null && typeof value !== "undefined") {
if (typeof value === "object") {
for (const key of Object.keys(value)) {
let params = propName + "[" + key + "]";
var subPart = encodeURIComponent(params) + "=";
url += subPart + encodeURIComponent(value[key]) + "&";
}
} else {
url += part + encodeURIComponent(value) + "&";
}
}
}
url = url.slice(0, -1);
config.params = { ...config.params, ...requestParams };
config.url = url;
} else if(config.data) {
config.data = { ...config.data, ...requestParams };
} else {
config.params = requestParams;
}
// console.log("config.url==========", config.url)
return config;
},
(error: any) => {
return Promise.reject(error);
}
);
// 响应拦截器
service.interceptors.response.use(
(response: AxiosResponse) => {
// console.log("response", response)
// 检查配置的响应类型是否为二进制类型('blob' 或 'arraybuffer'), 如果是,直接返回响应对象
if (
response.config.responseType === "blob" ||
response.config.responseType === "arraybuffer"
) {
return response;
}
// console.log("response", response.data.code);
const { code, msg } = response.data;
return response.data;
// if (code === 1) {
// return response.data;
// }
// showToast (msg || "請求失敗,請稍後重試");
// return Promise.reject(new Error(response.data));
},
(error: any) => {
console.log("error", error);
if (error.response && error.response.data) {
const { code, msg } = error.response.data;
showToast (msg || "請求失敗,請稍後重試");
}
return Promise.reject(error.message);
}
);
// 导出 axios 实例
export default service;
...@@ -4,13 +4,11 @@ import { handleQueryParams } from "./common"; ...@@ -4,13 +4,11 @@ import { handleQueryParams } from "./common";
// 创建 axios 实例 // 创建 axios 实例
const service = axios.create({ const service = axios.create({
baseURL: import.meta.env.VITE_APP_ACTIVE_URL, baseURL: import.meta.env.VITE_APP_API_URL,
timeout: 30000, timeout: 30000,
headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" },
}); });
console.log(import.meta.env.VITE_APP_ACTIVE_URL,'import.meta.env.VITE_APP_ACTIVE_URL+');
// 请求拦截器 // 请求拦截器
service.interceptors.request.use( service.interceptors.request.use(
(config: InternalAxiosRequestConfig) => { (config: InternalAxiosRequestConfig) => {
...@@ -19,7 +17,7 @@ service.interceptors.request.use( ...@@ -19,7 +17,7 @@ service.interceptors.request.use(
const queryParams = handleQueryParams(); const queryParams = handleQueryParams();
const newParams = { const newParams = {
token: queryParams?.token || "debug", token: queryParams?.token || "debug",
uid: queryParams?.uid || 123456, micId: queryParams?.uid || 123456,
lang: queryParams?.lang || 2, lang: queryParams?.lang || 2,
cid: queryParams?.cid || "web_gw", cid: queryParams?.cid || "web_gw",
vest: queryParams?.vest || 0, vest: queryParams?.vest || 0,
......
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";
import { showToast } from 'vant';
import { handleQueryParams } from "./common";
// 创建 axios 实例\
const service = axios.create({
baseURL: import.meta.env.VITE_APP_GAME_API_URL,
timeout: 30000,
headers: { "Content-Type": "application/json;charset=utf-8" },
});
// 请求拦截器
service.interceptors.request.use(
(config: InternalAxiosRequestConfig) => {
// 配置统一请求必传参数
const queryParams = handleQueryParams();
const newParams = {
token: queryParams?.token || "debug",
uid: queryParams?.uid || 123456,
roomId: queryParams?.roomId || "",
lang: queryParams?.lang || 2,
cid: queryParams?.cid || "web_gw",
vest: queryParams?.vest || 0,
os: "WEB",
pkg: queryParams?.pkg || "",
appname: queryParams?.appname || "",
version: queryParams?.appversion || "",
};
if (config.method == 'post') {
config.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8";
config.data = { ...newParams, ...config.data };
} else {
config.params = { ...newParams, ...config.params };
}
return config;
},
(error: any) => {
return Promise.reject(error);
}
);
// 响应拦截器
service.interceptors.response.use(
(response: AxiosResponse) => {
const { code, msg } = response.data
if (code === 1) {
return response.data;
} else {
showToast(msg || "請求失敗,請稍後重試");
return response.data;
}
},
(error: any) => {
console.log("error", error);
if (error.response && error.response.data) {
const { code, msg } = error.response.data;
showToast(msg || "請求失敗,請稍後重試");
}
return Promise.reject(error.message);
}
);
// 导出 axios 实例
export default service;
...@@ -2,6 +2,26 @@ ...@@ -2,6 +2,26 @@
const isSuccess = ref(false) const isSuccess = ref(false)
const isFail = ref(false) const isFail = ref(false)
const isJudge = ref(false) const isJudge = ref(false)
interface Props {
resultLevel: number;
}
const props = withDefaults(defineProps<Props>(), {
resultLevel: 0
});
// 监听签约状态
watch(() => props.resultLevel, (newVal) => {
// 签约状态 -1 签约驳回 0 审核中 1 签约成功
if (newVal === -1) {
isFail.value = true
} else if (newVal === 0) {
isJudge.value = true
} else if (newVal === 1) {
isSuccess.value = true
}
}, { deep: true });
</script> </script>
<template> <template>
<div class="review-wrap"> <div class="review-wrap">
......
<script setup lang="ts"> <script setup lang="ts">
import {
anchorSign
} from "@/api/activity/recruitmentApi";
interface Props {
signLevel: number;
}
const props = withDefaults(defineProps<Props>(), {
signLevel: 0
});
/* 主播信息表單 */ /* 主播信息表單 */
const formData = ref({ const formData = ref({
platform: '', platform: '',
...@@ -23,6 +34,11 @@ const stages = [ ...@@ -23,6 +34,11 @@ const stages = [
]; ];
const stageIndex = ref(0) const stageIndex = ref(0)
// 监听合作状态 0 试合作 1 中期合作 2 长期合作
watch(() => props.signLevel, (newVal) => {
stageIndex.value = newVal;
}, { deep: true });
const onConfirm = ({ selectedValues }: any) => { const onConfirm = ({ selectedValues }: any) => {
formData.value.platform = selectedValues; formData.value.platform = selectedValues;
showPlatformPicker.value = false; showPlatformPicker.value = false;
...@@ -33,6 +49,15 @@ const onSubmit = async () => { ...@@ -33,6 +49,15 @@ const onSubmit = async () => {
try { try {
await formRef.value.validate(); await formRef.value.validate();
console.log('表单验证通过', formData.value); console.log('表单验证通过', formData.value);
const { code, msg, data } = await anchorSign({
platform: formData.value.platform,
micName: formData.value.userName,
idCard: formData.value.idNum
});
console.log(data,'data~');
} catch (error) { } catch (error) {
} }
}; };
...@@ -442,11 +467,11 @@ const onSubmit = async () => { ...@@ -442,11 +467,11 @@ const onSubmit = async () => {
} }
} }
.marker:nth-child(1){ .marker:nth-child(1) {
padding-left: 53px; padding-left: 53px;
} }
.marker:nth-child(3){ .marker:nth-child(3) {
padding-left: 30px; padding-left: 30px;
} }
} }
......
<script setup lang="ts"> <script setup lang="ts">
import review from './components/review/index.vue' import review from './components/review/index.vue'
import sign from './components/sign/index.vue' import sign from './components/sign/index.vue'
import {
getSignView,
} from "@/api/activity/recruitmentApi";
const isShowReview = ref(false) const isShowReview = ref(false)
const signLevel = ref(0)
const resultLevel = ref(0)
// 获取页面信息
const getAnchorSignView = async () => {
const { code, msg, data } = await getSignView();
// 签约状态 0 需要签约页面 1 签约结果页面
if (data.signInfo == 1) {
isShowReview.value = true
} else {
isShowReview.value = false
}
// 合作状态
signLevel.value = data.levelInfo;
// 签约状态
resultLevel.value = data.signInfo;
};
onMounted(() => {
getAnchorSignView()
})
</script> </script>
<template> <template>
<sign v-if="!isShowReview" /> <sign v-if="!isShowReview" :signLevel="signLevel" />
<review v-else /> <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