Merge branch 'develop' of http://25.13.9.101:9000/K17_AITS/tra-app into develop
@@ -32,4 +32,4 @@ VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001'
|
||||
# dev
|
||||
# VITE_APP_BASE_H5_API_Url = 'http://25.18.122.65:7001'
|
||||
# sit
|
||||
# VITE_APP_BASE_H5_API_Url = 'http://25.18.122.65:7001'
|
||||
#VITE_APP_BASE_H5_API_Url = 'http://25.18.122.91:9786'
|
||||
@@ -234,6 +234,7 @@
|
||||
text-align: center;
|
||||
// 隐藏展开时超过30天的样式
|
||||
&.hide.expand {
|
||||
|
||||
.calendar-day-title {
|
||||
width: 70rpx;
|
||||
color: #fff;
|
||||
@@ -367,6 +368,7 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 130rpx;
|
||||
overflow: hidden;
|
||||
transition: height 0.3s ease;
|
||||
&.expand {
|
||||
height: 650rpx;
|
||||
|
||||
@@ -114,8 +114,17 @@
|
||||
});
|
||||
|
||||
const emit = defineEmits(['submit']);
|
||||
const open = (status, inPaths) => {
|
||||
console.log('传入的数据', inPaths);
|
||||
if (Array.isArray(inPaths) && inPaths.length > 0) {
|
||||
selectedPaths.value = inPaths;
|
||||
} else {
|
||||
selectedPaths.value = [{ orgName: '全部', orgId: 'A', parentId: '' }];
|
||||
}
|
||||
openDialog(true);
|
||||
};
|
||||
defineExpose({
|
||||
open: () => openDialog(true),
|
||||
open,
|
||||
close: () => openDialog(false)
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="tree-selector" :id="`item-${props.level}`">
|
||||
<view class="tree-child-selector" :class="{ fl1: props.level === 0}">
|
||||
<view class="tree-child-selector" :class="{ fl1: props.level === 0 }">
|
||||
<view class="level" v-for="item in props.node" @click="click_node(item)">
|
||||
<view class="node" :class="classList(item.orgId)">
|
||||
{{ item.orgName }}
|
||||
@@ -47,7 +47,7 @@
|
||||
const selectedPathsOrgCodeList = computed(() => selectedPaths.value.map((res) => res.orgId));
|
||||
// 设置子列表的数据
|
||||
const childNode = computed(() => {
|
||||
const lastItem = selectedPaths.value.at(-1);
|
||||
const lastItem = selectedPaths.value[selectedPaths.value.length - 1];
|
||||
const selectItem = props.node.find((res) => selectedPathsOrgCodeList.value.includes(res.orgId));
|
||||
if (selectItem) return selectItem['children'] || [];
|
||||
return [];
|
||||
@@ -59,7 +59,7 @@
|
||||
if (selectedPathsOrgCodeList.value.includes(orgId) || props.level === selectedPathsOrgCodeList.value.length) {
|
||||
a.push('select-bg');
|
||||
}
|
||||
if (selectedPathsOrgCodeList.value.at(-1) === orgId) {
|
||||
if (selectedPathsOrgCodeList.value[selectedPathsOrgCodeList.value.length - 1] === orgId) {
|
||||
a.push('select-text');
|
||||
}
|
||||
return a;
|
||||
@@ -83,12 +83,10 @@
|
||||
display: flex;
|
||||
min-height: 600rpx;
|
||||
max-height: 800rpx;
|
||||
display: flex;
|
||||
transition: all 0.3s ease 2s; /* 关键配置 */
|
||||
}
|
||||
|
||||
|
||||
.tree-child-selector {
|
||||
|
||||
display: inline-block;
|
||||
// 每一级树形容器
|
||||
min-width: 6rem;
|
||||
@@ -101,8 +99,6 @@
|
||||
.level {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.node {
|
||||
@@ -124,7 +120,6 @@
|
||||
|
||||
&.select-bg {
|
||||
background: #fff;
|
||||
|
||||
}
|
||||
&.select-text {
|
||||
color: #0066ff;
|
||||
|
||||
@@ -33,7 +33,8 @@
|
||||
</view>
|
||||
<view class="avatar-name-div">{{ data_info.isAnony === 'N' ? data_info.userName : formatName(data_info.userName) }}</view>
|
||||
</view>
|
||||
<view class="select-div" :class="{ hidden: challengeLoading }" @click="selectionInstitutionsRef.open(true)">
|
||||
|
||||
<view class="select-div" :class="{ hidden: challengeLoading }" @click="openSelectOrg()">
|
||||
<view class="select-institution-div">
|
||||
{{ data_info.orgName }}
|
||||
<image class="img" :src="switchIcon()"></image>
|
||||
@@ -177,11 +178,9 @@
|
||||
const currentTime = Date.now();
|
||||
practiceTime.value = Math.floor((currentTime - practiceStartTime) / 1000);
|
||||
}, 1000);
|
||||
|
||||
// 生成匹配延迟时间
|
||||
// const delayTime = 0;
|
||||
const delayTime = MatchTimeGenerator.generateInSeconds();
|
||||
|
||||
console.log('delayTime', delayTime);
|
||||
// 匹配定时器
|
||||
matchTimer = setTimeout(async () => {
|
||||
try {
|
||||
@@ -190,9 +189,6 @@
|
||||
const papersId = data_info.papersId;
|
||||
const comId = data_info.comId;
|
||||
const pkDataBody = await queryTraCompetitionInfoByPkUser({
|
||||
// orgId:510121,
|
||||
// papersId:'COMPETITION_PAPERS0250640321542025101615442400000003107',
|
||||
// comId:'TRA_COMPETITION_INFO0250640321542025101615442400000003099'
|
||||
orgId,
|
||||
papersId,
|
||||
comId
|
||||
@@ -208,7 +204,6 @@
|
||||
data_info.pkOrgIdName = pkData.pkOrgIdName;
|
||||
data_info.pkImgAddr = pkData.pkImgAddr;
|
||||
data_info.pkIsAnony = pkData.pkIsAnony;
|
||||
console.log('上一页数据', pkData);
|
||||
common.setPageCache('competition_pk', pkData);
|
||||
// 1. 显示匹配成功状态
|
||||
isMatchingSuccess.value = true;
|
||||
@@ -232,10 +227,10 @@
|
||||
} finally {
|
||||
resetChallengeState();
|
||||
}
|
||||
}, delayTime * 100);
|
||||
}, delayTime * 1000);
|
||||
} else {
|
||||
// 取消挑战
|
||||
// resetChallengeState();
|
||||
resetChallengeState();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -249,10 +244,9 @@
|
||||
const selectionInstitutionsSubmit = (options: [InstitutionItem, ...InstitutionItem[]]) => {
|
||||
// 缓存起来
|
||||
common.setValue('cache_selection_institutions' + data_info.userId, options);
|
||||
const lastItem = options.at(-1);
|
||||
const lastItem = options[options.length - 1];
|
||||
data_info.orgName = lastItem.orgName;
|
||||
data_info.orgId = lastItem.orgId;
|
||||
|
||||
selectionInstitutionsRef.value.close();
|
||||
};
|
||||
const anonyConfirm = (e) => {
|
||||
@@ -274,6 +268,12 @@
|
||||
common.hideLoading();
|
||||
});
|
||||
};
|
||||
|
||||
const openSelectOrg = () => {
|
||||
const selectOptions = common.getValue('cache_selection_institutions' + data_info.userId);
|
||||
selectionInstitutionsRef.value.open(true, selectOptions)
|
||||
}
|
||||
|
||||
const click_top_icon = (type: number) => {
|
||||
// 匿名切换
|
||||
if (type === 1) {
|
||||
@@ -302,7 +302,7 @@
|
||||
isMatchingSuccess.value = false;
|
||||
practiceTime.value = 0;
|
||||
};
|
||||
|
||||
|
||||
onLoad((e) => {
|
||||
const lastData = common.getPageCache('competition_list');
|
||||
console.log('lastData', lastData);
|
||||
@@ -318,13 +318,9 @@
|
||||
});
|
||||
const selectOptions = common.getValue('cache_selection_institutions' + data_info.userId);
|
||||
if (Array.isArray(selectOptions) && selectOptions.length > 0) {
|
||||
const lastItem = selectOptions.at(-1);
|
||||
const lastItem = selectOptions[selectOptions.length - 1];
|
||||
data_info.orgName = lastItem.orgName;
|
||||
data_info.orgId = lastItem.orgId;
|
||||
// const orgTreeInit = common.getValue('orgTree');
|
||||
// if (Array.isArray(orgTreeInit) && orgTreeInit.length > 0) {
|
||||
// console.log('selectOptions', selectOptions);
|
||||
// }
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -26,7 +26,14 @@
|
||||
<view class="main-title">物品图片</view>
|
||||
<view class="main-picture">
|
||||
<image-preview class="img" :src="data.ossAddr" mode="heightFix" :previewDetail="true"></image-preview>
|
||||
<!-- <image src="" alt="" mode="heightFix"/> -->
|
||||
</view>
|
||||
<view class="main-title">兑换条件</view>
|
||||
<view class="points-div">
|
||||
<image src="@/static/images/me/points.png" class="img"></image>
|
||||
<view class="points-title">积分</view>
|
||||
<view class="points-number">
|
||||
{{ data.excPoints }}
|
||||
</view>
|
||||
</view>
|
||||
<template v-if="data.itemTyp === '1'">
|
||||
<view class="main-title">填写地址</view>
|
||||
@@ -39,6 +46,7 @@
|
||||
></uv-textarea>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
</view>
|
||||
<template #bottom>
|
||||
<uv-button
|
||||
@@ -69,7 +77,7 @@
|
||||
};
|
||||
const buttonText = computed(() => {
|
||||
if (data.actStatus === 'Y') {
|
||||
return data.excPoints + '积分兑换';
|
||||
return '兑换';
|
||||
} else if (data.actStatus === 'N') {
|
||||
return data.actStatusText || '正在获取';
|
||||
}
|
||||
@@ -131,6 +139,26 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.points-div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.points-title {
|
||||
font-weight: 400;
|
||||
font-size: 34rpx;
|
||||
color: #333333;
|
||||
margin-left: 14rpx;
|
||||
margin-right: 28rpx;
|
||||
}
|
||||
.points-number {
|
||||
font-weight: bold;
|
||||
font-size: 34rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.img {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
}
|
||||
#textarea {
|
||||
background-color: red;
|
||||
}
|
||||
@@ -171,7 +199,8 @@
|
||||
/* 隐藏超出容器的背景图部分 */
|
||||
overflow: hidden;
|
||||
/* 使用 padding-top 实现 78:35 的宽高比(计算公式:35/78*100% ≈ 44.87%) */
|
||||
padding-top: 44.87%;
|
||||
padding-top: calc(var(--status-bar-height) + 44.87%);
|
||||
|
||||
/* 背景图设置,确保图片覆盖且不重复 */
|
||||
background-image: url('@/static/images/pointsAndRank/bg.png');
|
||||
background-size: cover;
|
||||
|
||||
|
Before Width: | Height: | Size: 248 KiB |
|
Before Width: | Height: | Size: 305 KiB |
|
Before Width: | Height: | Size: 297 KiB |
|
Before Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 300 KiB |
|
Before Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 150 KiB |
|
After Width: | Height: | Size: 1012 B |