This commit is contained in:
小李 2026-06-12 14:49:22 +08:00
parent d54877fb85
commit ab1b4b48c8
31 changed files with 4577 additions and 4 deletions

View File

@ -0,0 +1,29 @@
## 自定义水印添加
***
一款声明版权立场的组件
该组件参考了 [315500033@qq.com](https://ext.dcloud.net.cn/plugin?id=362) 大神的组件 修改后符合自己的编码习惯 让水印有更多的展示方式
### 使用方式
#### 在 ``script`` 中引入组件:
```javascript
import wmWatermark from '../../components/wm-watermark.vue';
export default {
components: {wmWatermark}
}
```
#### 在 ``template`` 中使用组件:
```html
<wm-watermark text="这是水印信息"></wm-watermark>
```
### **属性说明**
| 属性 | 类型 | 默认值 | 说明 |
| :---: | :---: | :---: | :--------: |
| text | String | 无 | 设置水印文字 注:(文字优先图片) |
| imgUrl | String | 无 | 设置水印图片链接 注:(文字优先图片) |
| opacity | Number,String | 0.6 | 设置显示透明度 |
| num | Number | 20 | 设置水印数量 |

View File

@ -0,0 +1,72 @@
<template>
<!-- 水印 -->
<view class="watermark">
<block v-for="(item,index) in num" :key="index">
<view class="watermark-text" v-if="text != ''" :style="{opacity:opacity}">{{text}}</view>
<image class="watermark-img" :src="imgUrl" mode="aspectFill" v-if="imgUrl !='' && text ==''" :style="{opacity:opacity}"></image>
</block>
</view>
</template>
<script>
export default {
name:'wm-watermark',
props:{
text:{ //
type:String,
default:''
},
imgUrl:{ //
type:String,
default:''
},
opacity:{ //
type:[Number,String],
default:0.6
},
num:{ //
type:Number,
default:30
}
},
data() {
return {
};
}
}
</script>
<style lang="scss">
.watermark{
position: fixed;
width: 1200upx;
height: 100%;
top:0;
left: 0;
bottom: 0;
right: 0;
pointer-events: none;
z-index: 9999999;
display: flex;
flex-wrap: wrap;
overflow: hidden;
transform: rotate(-33deg) translateX(-20px);
.watermark-text{
width: 350upx;
height: 80upx;
display: flex;
justify-content: center;
align-items: center;
// color: red;
color: rgba(0,0,0,0.1);
font-size: 18upx;
white-space: nowrap;
}
.watermark-img{
width: 375upx;
height: 375upx;
z-index: 1;
}
}
</style>

View File

@ -29,7 +29,7 @@ export function createApp() {
app.config.globalProperties.$system = plus.os.name;
// #endif
app.config.globalProperties.$systemInfo = systemInfo
uni.setStorageSync('version', '1.0.6.sp9')
uni.setStorageSync('version', '1.0.6.sp10')
app.config.globalProperties.$version = uni.getStorageSync('version')
app.use(globalMethods);
return {

View File

@ -436,6 +436,46 @@
"navigationBarTitleText" : "微信支付成功",
"navigationStyle": "custom"
}
},
{
"path" : "score/index",
"style" :
{
"navigationBarTitleText" : "高考分数",
"navigationStyle": "custom"
}
},
{
"path" : "score/center",
"style" :
{
"navigationBarTitleText" : "查询中心",
"navigationStyle": "custom"
}
},
{
"path" : "score/chongqing",
"style" :
{
"navigationBarTitleText" : "重庆",
"navigationStyle": "custom"
}
},
{
"path" : "score/hebei",
"style" :
{
"navigationBarTitleText" : "河北",
"navigationStyle": "custom"
}
},
{
"path" : "score/guandong",
"style" :
{
"navigationBarTitleText" : "广东",
"navigationStyle": "custom"
}
}
]
},

View File

@ -315,6 +315,11 @@ const otherList = [{
name: "从夯倒拉排名",
path: "/pages/other/ranking/ranking"
},
{
icon: "/static/image/other/score/gaokao.png",
name: "高考",
path: "/pages/other/score/index"
},
]
const data = reactive({

View File

@ -6,6 +6,9 @@
<c-lottie ref="cLottieRef" :src='$watermark()' width="94px" height='74px' :loop="true"></c-lottie>
</liu-drag-button>
</view>
<NavBar v-if="selectedImage" title="拼图" bgColor="#EFEFEF" noBack @back="closeImageEdit" isRightButton
@right-click="confirmImage">
</NavBar>
<view class="group_45764">
<!-- ,'backgroundColor':data.navbar.bgColor -->
<view class="flexcontainer_box" v-if="!selectedImage">
@ -61,9 +64,6 @@
</view>
</view>
</view>
<NavBar v-if="selectedImage" title="拼图" bgColor="#EFEFEF" noBack @back="closeImageEdit" isRightButton
@right-click="confirmImage">
</NavBar>
<view class="group_48190">
<view class="rectangle_23318">
<image class="group_13999" src="/static/image/other/bank/jsyh/rightIcon.png" />
@ -233,6 +233,7 @@
onPageScroll
} from "@dcloudio/uni-app";
import NavBar from '@/components/nav-bar/nav-bar'
const CACHE_KEY = 'jsyh_account_info';
const FOOTER_IMAGE_KEY = 'jsyh_footer_image';

View File

@ -0,0 +1,977 @@
<script setup>
import { reactive, ref, onMounted, computed } from 'vue';
const CACHE_KEY = 'score_center_info';
const data = reactive({
form: {
examYear: '2016',
idNumber: '***********1234',
name: '肖战',
chinese: '113',
math: '123',
english: '116',
comprehensive: '195'
}
});
const total = computed(() => {
const sum = Number(data.form.chinese || 0) + Number(data.form.math || 0) + Number(data.form.english || 0) + Number(data.form.comprehensive || 0);
return sum || '';
});
const editDialog = reactive({
show: false,
data: {}
});
onMounted(() => {
loadCache();
});
function loadCache() {
const cache = uni.getStorageSync(CACHE_KEY);
if (cache) {
data.form = { ...data.form, ...cache };
}
}
function saveCache() {
uni.setStorageSync(CACHE_KEY, data.form);
}
function openEditDialog() {
editDialog.data = JSON.parse(JSON.stringify(data.form));
editDialog.show = true;
}
function saveEdit() {
data.form = { ...data.form, ...editDialog.data };
saveCache();
editDialog.show = false;
uni.showToast({
title: '保存成功',
icon: 'success'
});
}
const editTotal = computed(() => {
const sum = Number(editDialog.data.chinese || 0) + Number(editDialog.data.math || 0) + Number(editDialog.data.english || 0) + Number(editDialog.data.comprehensive || 0);
return sum || '';
});
function back(){
uni.navigateBack()
}
</script>
<template>
<view class="div">
<view v-if="$isVip()" >
<watermark dark="light" source="uni_alipay_other_score" />
<liu-drag-button :canDocking="false" @clickBtn="$goRechargePage('watermark', 'uni_alipay_other_score')">
<c-lottie ref="cLottieRef" :src='$watermark()' width="94px" height='74px' :loop="true"></c-lottie>
</liu-drag-button>
</view>
<view class="headerBox" :style="{'padding-top':$systemInfo.statusBarHeight+'px'}">
<view class="header" >
<view class="left" @click="back()">
<image src="/static/image/other/score/center/home.png" mode=""></image>
</view>
<view class="center">
查询专区
</view>
<view class="right">
<image src="/static/image/other/score/center/rightBtn.png" mode=""></image>
</view>
</view>
</view>
<view class="" :style="{height:$systemInfo.statusBarHeight*2+88+'rpx'}">
</view>
<view class="flexcontainer" @click="openEditDialog">
<view class="rectangle_23375">
<text class="text_2"> 普通高考成绩查询 </text>
</view>
<view class="rectangle_23377">
<view class="flexcontainer_1"><text class="text_3"> 考试年份: </text><text class="text_4"> {{data.form.examYear}} </text></view>
<view class="div_424"></view>
<view class="flexcontainer_2"><text class="text_5"> 身份证号: </text><text class="text_6"> {{data.form.idNumber}} </text></view>
<view class="div_425"></view>
<view class="flexcontainer_3"><text class="text_7"> : </text><text class="text_8"> {{data.form.name}} </text></view>
<view class="div_426"></view>
<text class="text_9"> 科目成绩: </text>
<view class="group_48319">
<text class="text_10"> 语文 </text>
<view class="div_427"></view>
<text class="text_11"> {{data.form.chinese}} </text>
</view>
<view class="group_48320">
<text class="text_12"> 数学 </text>
<view class="div_427_1"></view>
<text class="text_13"> {{data.form.math}} </text>
</view>
<view class="group_48321">
<text class="text_14"> 外语 </text>
<view class="div_427_2"></view>
<text class="text_15"> {{data.form.english}} </text>
</view>
<view class="group_48322">
<text class="text_16"> 综合 </text>
<view class="div_427_3"></view>
<text class="text_17"> {{data.form.comprehensive}} </text>
</view>
<view class="group_48323">
<text class="text_18"> 总分 </text>
<view class="div_427_4"></view>
<text class="text_19"> {{total}} </text>
</view>
</view>
</view>
<view class="group_48324">
<text class="text_20"> 返回查询页 </text>
</view>
<view class="home">
<view class="home_indicator"></view>
</view>
<!-- 编辑弹窗 -->
<view v-if="editDialog.show" class="editDialog">
<view class="editDialog_bg">
<view class="editDialog_header">
<text class="title">编辑成绩信息</text>
</view>
<view class="editDialog_body">
<view class="formItem">
<text>考试年份</text>
<input v-model="editDialog.data.examYear" type="digit" placeholder="如: 2016" />
</view>
<view class="formItem">
<text>身份证号</text>
<input v-model="editDialog.data.idNumber" placeholder="如: ***********1234" />
</view>
<view class="formItem">
<text>姓名</text>
<input v-model="editDialog.data.name" placeholder="请输入姓名" />
</view>
<view class="formItem">
<text>语文</text>
<input v-model="editDialog.data.chinese" type="digit" placeholder="请输入语文成绩" />
</view>
<view class="formItem">
<text>数学</text>
<input v-model="editDialog.data.math" type="digit" placeholder="请输入数学成绩" />
</view>
<view class="formItem">
<text>外语</text>
<input v-model="editDialog.data.english" type="digit" placeholder="请输入外语成绩" />
</view>
<view class="formItem">
<text>综合</text>
<input v-model="editDialog.data.comprehensive" type="digit" placeholder="请输入综合成绩" />
</view>
<view class="formItem">
<text>总分</text>
<text style="flex:1;text-align:right;font-size:28rpx;color:#333;">{{editTotal}}</text>
</view>
</view>
<view class="popup-footer">
<view class="btn-cancel" @click="editDialog.show=false">取消</view>
<view class="btn-save" @click="saveEdit">保存</view>
</view>
</view>
</view>
</view>
</template>
<style lang="scss">
* {
box-sizing: border-box;
}
.flex-row {
display: flex;
flex-direction: row;
}
.flex-col {
display: flex;
flex-direction: column;
}
.justify-start {
display: flex;
justify-content: flex-start;
}
.justify-center {
display: flex;
justify-content: center;
}
.justify-end {
display: flex;
justify-content: flex-end;
}
.justify-between {
display: flex;
justify-content: space-between;
}
.items-start {
display: flex;
align-items: flex-start;
}
.items-end {
display: flex;
align-items: flex-end;
}
.items-center {
display: flex;
align-items: center;
}
.no-shrink {
flex-shrink: 0;
}
/* 编辑弹窗样式 */
.editDialog {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.editDialog_bg {
width: 680rpx;
max-height: 80vh;
background-color: #ffffff;
border-radius: 20rpx;
overflow: hidden;
display: flex;
flex-direction: column;
}
.editDialog_header {
padding: 30rpx;
border-bottom: 1rpx solid #eee;
text-align: center;
.title {
font-size: 32rpx;
font-weight: bold;
color: #333;
}
}
.editDialog_body {
padding: 20rpx 30rpx;
overflow-y: auto;
max-height: 60vh;
}
.formItem {
display: flex;
align-items: center;
padding: 20rpx 0;
border-bottom: 1rpx solid #f5f5f5;
text {
width: 200rpx;
font-size: 28rpx;
color: #666;
flex-shrink: 0;
}
input {
flex: 1;
font-size: 28rpx;
color: #333;
text-align: right;
}
}
.popup-footer {
display: flex;
padding: 20rpx 30rpx;
border-top: 1rpx solid #eee;
gap: 20rpx;
.btn-cancel,
.btn-save {
flex: 1;
height: 80rpx;
line-height: 80rpx;
text-align: center;
border-radius: 10rpx;
font-size: 28rpx;
}
.btn-cancel {
background-color: #f5f5f5;
color: #666;
}
.btn-save {
background-color: #187AFF;
color: #fff;
}
}
</style>
<style lang="scss" scoped>
/* 查询中心 */
.div {
position: relative;
width: 750rpx;
// height: 1624rpx;
overflow: hidden;
background-color: #f4f7fb;
display: flex;
flex-direction: column;
align-items: flex-start;
isolation: isolate;
.headerBox{
position: fixed;
left: 0;
top: 0;
background-color: #fff;
z-index: 999 !important;
width: 100%;
}
.header{
min-height: 88rpx;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.center{
font-weight: bold;
font-size: 17px;
color: #1A1A1A;
}
.left,.right{
width: 200rpx;
display: flex;
align-items: center;
}
.left{
margin-left: 30rpx;
image{
width: 42rpx;
height: 42rpx;
}
}
.right{
margin-right: 30rpx;
image{
width: 200rpx;
height: 66rpx;
}
}
}
/* flexContainer */
.flexcontainer {
position: relative;
display: flex;
width: 750rpx;
height: 1222rpx;
flex-direction: column;
align-items: flex-start;
isolation: isolate;
z-index: 2;
margin-top: 0;
margin-left: 0;
/* 矩形 23375 */
.rectangle_23375 {
position: relative;
width: 750rpx;
height: 260rpx;
background-color: #1a92ef;
margin-left: auto;
margin-right: auto;
display: flex;
flex-direction: column;
align-items: flex-start;
z-index: 0;
margin-top: 0;
border-radius: 0 0 24rpx 24rpx;
/* 消息类型设置 */
.text_2 {
position: relative;
text-align: center;
font-size: 36rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 50rpx;
color: #ffffff;
white-space: pre;
height: 50rpx;
margin-top: 24rpx;
margin-bottom: -7rpx;
width: max-content;
margin-left: auto;
margin-right: auto;
}
}
/* 矩形 23377 */
.rectangle_23377 {
position: relative;
width: 688rpx;
height: 1056rpx;
border-radius: 20rpx;
background-color: #ffffff;
margin-left: auto;
margin-right: auto;
display: flex;
flex-direction: column;
align-items: flex-start;
isolation: isolate;
z-index: 2;
margin-top: -94rpx;
/* flexContainer */
.flexcontainer_1 {
position: relative;
display: flex;
width: 344rpx;
height: 32rpx;
flex-direction: row;
align-items: flex-start;
z-index: 0;
margin-top: 32rpx;
margin-left: 30rpx;
/* 考试年份: */
.text_3 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: 0.34em;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 0;
margin-bottom: -6rpx;
position: relative;
margin-left: 0;
}
/* 2016 年 */
.text_4 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #333333;
white-space: pre;
height: 44rpx;
margin-top: 0;
margin-bottom: -6rpx;
position: relative;
margin-left: 42rpx;
}
}
/* 直线 424 */
.div_424 {
width: 626rpx;
height: 0;
border: 1rpx solid #f1f1f1;
z-index: 4;
position: relative;
margin-top: 46rpx;
margin-left: 30rpx;
}
/* flexContainer */
.flexcontainer_2 {
position: relative;
display: flex;
width: 482rpx;
height: 32rpx;
flex-direction: row;
align-items: flex-start;
z-index: 1;
margin-top: 32rpx;
margin-left: 30rpx;
/* 身份证号: */
.text_5 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: 0.34em;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 0;
margin-bottom: -6rpx;
position: relative;
margin-left: 0;
}
/* ***********1234 */
.text_6 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #333333;
white-space: pre;
height: 44rpx;
margin-top: 0;
margin-bottom: -6rpx;
position: relative;
margin-left: 42rpx;
}
}
/* 直线 425 */
.div_425 {
width: 626rpx;
height: 0;
border: 1rpx solid #f1f1f1;
z-index: 5;
position: relative;
margin-top: 46rpx;
margin-left: 30rpx;
}
/* flexContainer */
.flexcontainer_3 {
position: relative;
display: flex;
width: 288rpx;
height: 32rpx;
flex-direction: row;
align-items: flex-start;
z-index: 3;
margin-top: 34rpx;
margin-left: 30rpx;
/* 姓 名: */
.text_7 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: 0.34em;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 0;
margin-bottom: -6rpx;
position: relative;
margin-left: 0;
}
/* 肖战 */
.text_8 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #333333;
white-space: pre;
height: 44rpx;
margin-top: 0;
margin-bottom: -6rpx;
position: relative;
margin-left: 42rpx;
}
}
/* 直线 426 */
.div_426 {
width: 626rpx;
height: 0;
border: 1rpx solid #f1f1f1;
z-index: 6;
position: relative;
margin-top: 46rpx;
margin-left: 30rpx;
}
/* 科目成绩: */
.text_9 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: 0.34em;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 32rpx;
margin-bottom: -6rpx;
z-index: 2;
position: relative;
margin-left: 30rpx;
}
/* 组 48319 */
.group_48319 {
width: 626rpx;
height: 90rpx;
position: relative;
display: flex;
flex-direction: row;
align-items: flex-start;
z-index: 7;
margin-top: 48rpx;
margin-left: 30rpx;
border-radius: 16rpx;
background-color: #f4f7f9;
isolation: isolate;
/* 语文 */
.text_10 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 0;
position: relative;
margin-left: 128rpx;
}
/* 直线 427 */
.div_427 {
width: 40rpx;
height: 0;
transform: rotate(90deg);
border: 1rpx solid #e5e8ea;
z-index: 2;
position: relative;
margin-left: 84rpx;
margin-top: 44rpx;
}
/* 113 */
.text_11 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: -0.04em;
color: #0087cf;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 1;
position: relative;
margin-left: 122rpx;
}
}
/* 组 48320 */
.group_48320 {
width: 626rpx;
height: 90rpx;
position: relative;
display: flex;
flex-direction: row;
align-items: flex-start;
z-index: 9;
margin-top: 32rpx;
margin-left: 30rpx;
border-radius: 16rpx;
background-color: #f4f7f9;
isolation: isolate;
/* 数学 */
.text_12 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 0;
position: relative;
margin-left: 128rpx;
}
/* 直线 427 */
.div_427_1 {
width: 40rpx;
height: 0;
transform: rotate(90deg);
border: 1rpx solid #e5e8ea;
z-index: 2;
position: relative;
margin-left: 84rpx;
margin-top: 44rpx;
}
/* 123 */
.text_13 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: -0.04em;
color: #0087cf;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 1;
position: relative;
margin-left: 122rpx;
}
}
/* 组 48321 */
.group_48321 {
width: 626rpx;
height: 90rpx;
position: relative;
display: flex;
flex-direction: row;
align-items: flex-start;
z-index: 8;
margin-top: 32rpx;
margin-left: 30rpx;
border-radius: 16rpx;
background-color: #f4f7f9;
isolation: isolate;
/* 外语 */
.text_14 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 0;
position: relative;
margin-left: 128rpx;
}
/* 直线 427 */
.div_427_2 {
width: 40rpx;
height: 0;
transform: rotate(90deg);
border: 1rpx solid #e5e8ea;
z-index: 2;
position: relative;
margin-left: 84rpx;
margin-top: 44rpx;
}
/* 116 */
.text_15 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: -0.04em;
color: #0087cf;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 1;
position: relative;
margin-left: 122rpx;
}
}
/* 组 48322 */
.group_48322 {
width: 626rpx;
height: 90rpx;
position: relative;
display: flex;
flex-direction: row;
align-items: flex-start;
z-index: 10;
margin-top: 32rpx;
margin-left: 30rpx;
border-radius: 16rpx;
background-color: #f4f7f9;
isolation: isolate;
/* 综合 */
.text_16 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 0;
position: relative;
margin-left: 128rpx;
}
/* 直线 427 */
.div_427_3 {
width: 40rpx;
height: 0;
transform: rotate(90deg);
border: 1rpx solid #e5e8ea;
z-index: 2;
position: relative;
margin-left: 84rpx;
margin-top: 44rpx;
}
/* 195 */
.text_17 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: -0.04em;
color: #0087cf;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 1;
position: relative;
margin-left: 122rpx;
}
}
/* 组 48323 */
.group_48323 {
width: 626rpx;
height: 90rpx;
position: relative;
display: flex;
flex-direction: row;
align-items: flex-start;
z-index: 11;
margin-top: 32rpx;
margin-left: 30rpx;
border-radius: 16rpx;
background-color: #f4f7f9;
isolation: isolate;
/* 总分 */
.text_18 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
color: #6f6f6f;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 0;
position: relative;
margin-left: 128rpx;
}
/* 直线 427 */
.div_427_4 {
width: 40rpx;
height: 0;
transform: rotate(90deg);
border: 1rpx solid #e5e8ea;
z-index: 2;
position: relative;
margin-left: 84rpx;
margin-top: 44rpx;
}
/* 549 */
.text_19 {
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 44rpx;
letter-spacing: -0.04em;
color: #0087cf;
white-space: pre;
height: 44rpx;
margin-top: 26rpx;
margin-bottom: -6rpx;
z-index: 1;
position: relative;
margin-left: 122rpx;
}
}
}
}
/* 组 48324 */
.group_48324 {
width: 688rpx;
height: 90rpx;
position: relative;
font-size: 28rpx;
font-family: 'PingFang SC';
font-weight: 400;
line-height: 40rpx;
color: #ffffff;
white-space: pre;
display: flex;
flex-direction: column;
align-items: flex-start;
z-index: 3;
margin-top: 48rpx;
margin-left: 32rpx;
border-radius: 298rpx;
background-color: #1689f9;
/* 返回查询页 */
.text_20 {
height: 40rpx;
margin-top: 32rpx;
margin-bottom: -6rpx;
position: relative;
margin-left: 274rpx;
}
}
/* home */
.home {
position: absolute;
width: 750rpx;
height: 68rpx;
top: auto;
left: 0;
background-color: rgba(255, 255, 255, 0);
right: 0;
margin-left: auto;
margin-right: auto;
bottom: 0;
display: flex;
flex-direction: column;
align-items: flex-start;
.home_indicator {}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,560 @@
<script setup>
import wmWatermark from "@/components/wm-watermark/wm-watermark.vue"
import DateTimePicker from '@/components/dengrq-datetime-picker/dateTimePicker/index.vue';
import {
reactive,
ref,
onMounted,
computed
} from 'vue';
const CACHE_KEY = 'score_guandong_info';
const data = reactive({
form: {
avatar: '',
name: '大王',
idNumber: '',
examNumber: '123456789',
chinese: '116',
math: '104',
english: '104',
history: '104',
politics: '104',
geography: '104',
total: '104',
undergraduateTotal: '104',
ranking: '104',
technicalTotal: '104',
technicalRanking: '1455',
time: '2025-6-25'
}
});
const total = computed(() => {
const sum = Number(data.form.chinese || 0) + Number(data.form.math || 0) + Number(data.form.english || 0) +
Number(data.form.history || 0) + Number(data.form.politics || 0) + Number(data.form.geography || 0);
return sum || '';
});
const editDialog = reactive({
show: false,
data: {}
});
onMounted(() => {
loadCache();
});
function loadCache() {
const cache = uni.getStorageSync(CACHE_KEY);
if (cache) {
data.form = {
...data.form,
...cache
};
}
}
function saveCache() {
uni.setStorageSync(CACHE_KEY, data.form);
}
function openEditDialog() {
editDialog.data = JSON.parse(JSON.stringify(data.form));
editDialog.show = true;
}
function saveEdit() {
data.form = {
...data.form,
...editDialog.data
};
saveCache();
editDialog.show = false;
uni.showToast({
title: '保存成功',
icon: 'success'
});
}
const editTotal = computed(() => {
const sum = Number(editDialog.data.chinese || 0) + Number(editDialog.data.math || 0) + Number(editDialog.data
.english || 0) + Number(editDialog.data.history || 0) + Number(editDialog.data.politics || 0) + Number(
editDialog.data.geography || 0);
return sum || '';
});
function back(){
uni.navigateBack()
}
function onChangeStartDate(e){
editDialog.data.time=e
console.log(e)
}
function getTime(times,status){
if(status){
return times.substring(0,4)+'年'
}else{
return times.substring(0,7).replace('-','年')+'月'
}
}
</script>
<template>
<wmWatermark :text="'广东省教育考试院'+data.form.time"/>
<view v-if="$isVip()" >
<watermark dark="light" source="uni_alipay_other_score" />
<liu-drag-button :canDocking="false" @clickBtn="$goRechargePage('watermark', 'uni_alipay_other_score')">
<c-lottie ref="cLottieRef" :src='$watermark()' width="94px" height='74px' :loop="true"></c-lottie>
</liu-drag-button>
</view>
<view class="container">
<view class="header" :style="{'padding-top':$systemInfo.statusBarHeight+'px'}">
<view class="left" @click="back()">
<image src="/static/image/other/score/guandong/leftIcon.png" mode=""></image>
</view>
<view class="center">
考试成绩结果
</view>
<view class="right">
<image src="/static/image/other/score/guandong/rightIcon.png" mode=""></image>
</view>
</view>
<view class="" :style="{height:$systemInfo.statusBarHeight*2+88+'rpx'}">
</view>
<view class="content">
<view class="title">
{{ getTime(data.form.time,0) }}
</view>
<view class="dec">
{{ getTime(data.form.time,1) }}年广东省普通高等学校招生全国统一考试
</view>
</view>
<image class="bgimg" src="/static/image/other/score/guandong/guandongbg.png" mode="widthFix"></image>
<view class="list" @click="openEditDialog">
<view class="item">
<view class="text1">
姓名
</view>
<view class="text2">
{{data.form.name}}
</view>
</view>
<view class="item">
<view class="text1">
考生号
</view>
<view class="text2">
{{data.form.examNumber}}
</view>
</view>
<view class="item">
<view class="text1">
语文
</view>
<view class="text2">
{{data.form.chinese}}
</view>
</view>
<view class="item">
<view class="text1">
数学
</view>
<view class="text2">
{{data.form.math}}
</view>
</view>
<view class="item">
<view class="text1">
英语
</view>
<view class="text2">
{{data.form.english}}
</view>
</view>
<view class="item">
<view class="text1">
历史
</view>
<view class="text2">
{{data.form.history}}
</view>
</view>
<view class="item">
<view class="text1">
思想政治
</view>
<view class="text2">
{{data.form.politics}}
</view>
</view>
<view class="item">
<view class="text1">
地理
</view>
<view class="text2">
{{data.form.geography}}
</view>
</view>
<view class="item">
<view class="text1">
普通类 (历史)总分
</view>
<view class="text2">
{{data.form.total}}
</view>
</view>
<view class="item">
<view class="text1">
本科普通类 (历史)总分 (含加分)
</view>
<view class="text2">
{{data.form.undergraduateTotal}}
</view>
</view>
<view class="item">
<view class="text1">
排位
</view>
<view class="text2">
{{data.form.ranking}}
</view>
</view>
<view class="item">
<view class="text1">
专科普通类 (历史)总分 (含加分)
</view>
<view class="text2">
{{data.form.technicalTotal}}
</view>
</view>
<view class="item">
<view class="text1">
排位
</view>
<view class="text2">
{{data.form.technicalRanking}}
</view>
</view>
</view>
</view>
<!-- 编辑弹窗 -->
<view v-if="editDialog.show" class="editDialog">
<view class="editDialog_bg">
<view class="editDialog_header">
<text class="title">编辑成绩信息</text>
</view>
<view class="editDialog_body">
<view class="formItem">
<text>姓名</text>
<input v-model="editDialog.data.name" placeholder="请输入姓名" />
</view>
<view class="formItem">
<text>证件号</text>
<input v-model="editDialog.data.idNumber" placeholder="请输入证件号" />
</view>
<view class="formItem">
<text>考生号</text>
<input v-model="editDialog.data.examNumber" placeholder="请输入考生号" />
</view>
<view class="formItem">
<text>语文</text>
<input v-model="editDialog.data.chinese" type="digit" placeholder="请输入语文成绩" />
</view>
<view class="formItem">
<text>数学</text>
<input v-model="editDialog.data.math" type="digit" placeholder="请输入数学成绩" />
</view>
<view class="formItem">
<text>英语</text>
<input v-model="editDialog.data.english" type="digit" placeholder="请输入英语成绩" />
</view>
<view class="formItem">
<text>历史</text>
<input v-model="editDialog.data.history" type="digit" placeholder="请输入历史成绩" />
</view>
<view class="formItem">
<text>思想政治</text>
<input v-model="editDialog.data.politics" type="digit" placeholder="请输入思想政治成绩" />
</view>
<view class="formItem">
<text>地理</text>
<input v-model="editDialog.data.geography" type="digit" placeholder="请输入地理成绩" />
</view>
<view class="formItem">
<text>普通类 (历史)总分</text>
<text style="flex:1;text-align:right;font-size:28rpx;color:#333;">{{editTotal}}</text>
</view>
<view class="formItem">
<text>本科普通类 (历史)总分 (含加分)</text>
<input v-model="editDialog.data.undergraduateTotal" type="digit" placeholder="请输入本科总分" />
</view>
<view class="formItem">
<text>排位</text>
<input v-model="editDialog.data.ranking" type="digit" placeholder="请输入排位" />
</view>
<view class="formItem">
<text>专科普通类 (历史)总分 (含加分)</text>
<input v-model="editDialog.data.technicalTotal" type="digit" placeholder="请输入专科总分" />
</view>
<view class="formItem">
<text>排位</text>
<input v-model="editDialog.data.technicalRanking" type="digit" placeholder="请输入排位" />
</view>
<view class="formItem">
<text>时间</text>
<view style="width:100%;">
<DateTimePicker :defaultDate="editDialog.data.time" :mode="1" @onChange="onChangeStartDate" />
</view>
</view>
</view>
<view class="popup-footer">
<view class="btn-cancel" @click="editDialog.show=false">取消</view>
<view class="btn-save" @click="saveEdit">保存</view>
</view>
</view>
</view>
</template>
<style lang="scss">
page{
background-color: #F3F8FB;
}
* {
box-sizing: border-box;
}
.flex-row {
display: flex;
flex-direction: row;
}
.flex-col {
display: flex;
flex-direction: column;
}
.justify-start {
display: flex;
justify-content: flex-start;
}
.justify-center {
display: flex;
justify-content: center;
}
.justify-end {
display: flex;
justify-content: flex-end;
}
.justify-between {
display: flex;
justify-content: space-between;
}
.items-start {
display: flex;
align-items: flex-start;
}
.items-end {
display: flex;
align-items: flex-end;
}
.items-center {
display: flex;
align-items: center;
}
.no-shrink {
flex-shrink: 0;
}
/* 编辑弹窗样式 */
.editDialog {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.editDialog_bg {
width: 680rpx;
max-height: 80vh;
background-color: #ffffff;
border-radius: 20rpx;
overflow: hidden;
display: flex;
flex-direction: column;
}
.editDialog_header {
padding: 30rpx;
border-bottom: 1rpx solid #eee;
text-align: center;
.title {
font-size: 32rpx;
font-weight: bold;
color: #333;
}
}
.editDialog_body {
padding: 20rpx 30rpx;
overflow-y: auto;
max-height: 60vh;
}
.formItem {
display: flex;
align-items: center;
padding: 20rpx 0;
border-bottom: 1rpx solid #f5f5f5;
text {
width: 200rpx;
font-size: 28rpx;
color: #666;
flex-shrink: 0;
}
input {
flex: 1;
font-size: 28rpx;
color: #333;
text-align: right;
}
}
.popup-footer {
display: flex;
padding: 20rpx 30rpx;
border-top: 1rpx solid #eee;
gap: 20rpx;
.btn-cancel,
.btn-save {
flex: 1;
height: 80rpx;
line-height: 80rpx;
text-align: center;
border-radius: 10rpx;
font-size: 28rpx;
}
.btn-cancel {
background-color: #f5f5f5;
color: #666;
}
.btn-save {
background-color: #187AFF;
color: #fff;
}
}
</style>
<style lang="scss" scoped>
.header{
z-index: 999;
position: fixed;
left: 0;
top: 0;
height: 88rpx;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.left{
width: 216rpx;
height: 88rpx;
image{
width: 36rpx;
height: 36rpx;
margin-left: 30rpx;
margin-top:46rpx;
}
}
.center{
font-weight: 400;
font-size: 19px;
color: #FFFFFF;
padding-top: 30rpx;
}
.right{
width: 216rpx;
display: flex;
align-items: center;
image{
width: 200rpx;
height: 64rpx;
}
}
}
.bgimg{
position: fixed;
width: 100%;
left: 0;
top: 0;
}
.content{
position: relative;
z-index: 9;
padding-left: 40rpx;
margin-top: 100rpx;
.title{
font-weight: 400;
font-size: 25px;
color: #FFFFFF;
}
.dec{
font-weight: 400;
font-size: 16px;
color: #FFFFFF;
white-space: nowrap;
}
}
.list{
position: relative;
z-index: 9;
margin: 72rpx 40rpx 0;
background: #FFFFFF;
box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.1);
border-radius: 12px 12px 12px 12px;
padding-left: 32rpx;
.item{
height: 72rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1rpx solid #F2F2F2;
.text1{
font-weight: 400;
font-size: 12px;
color: #898D96;
}
.text2{
font-weight: 400;
font-size: 12px;
color: #1A1A1A;
margin-right: 28rpx;
}
}
}
</style>

1434
pages/other/score/hebei.vue Normal file

File diff suppressed because it is too large Load Diff

173
pages/other/score/index.vue Normal file
View File

@ -0,0 +1,173 @@
<template>
<view>
<NavBar :title="data.navBar.title" :bgColor="data.navBar.bgColor" />
<view class="list-container">
<view class="item" v-for="item in source" :key="item.id" @click="goPage(item.callUrl,item.name)"
:style="{ 'background-image': `url('/static/image/other/score/${item.icon}bg.png')` }">
<view class="content flex flex-align-center">
<image class="logo" :src="`/static/image/other/score/${item.icon}.png`" mode=""></image>
<view class="name flex-1">{{ item.name }}</view>
<view class="right-button">
<!-- <uni-icons type="right" size="16"></uni-icons> -->
</view>
</view>
<!-- <view class="line" :style="{ background: item.color.lineColor }"></view> -->
</view>
</view>
</view>
</template>
<script setup>
import NavBar from '@/components/nav-bar/nav-bar.vue'
import {
ref,
reactive,
getCurrentInstance
} from 'vue'
import {
onLoad
} from "@dcloudio/uni-app";
import {
util
} from '@/utils/common.js';
const {
appContext,
proxy
} = getCurrentInstance();
//
const source = ref([{
name: '查询中心',
color: {
bgColor: '#F3EAFF',
lineColor: '#B78EF5',
buttonColor: '#BA8DFF',
},
icon: 'icon1',
callUrl: "/pages/other/score/center"
},
{
name: '广东省',
color: {
bgColor: '#FFE9E9',
lineColor: '#FF6969',
buttonColor: '#FB6767',
},
icon: 'guandong',
callUrl: "/pages/other/score/guandong"
},
{
name: '重庆市',
color: {
bgColor: '#FFF0DD',
lineColor: '#FFA143',
buttonColor: '#FFA64D',
},
icon: 'chongqing',
callUrl: "/pages/other/score/chongqing"
},
{
name: '河北省',
color: {
bgColor: '#E0FFD9',
lineColor: '#56B745',
buttonColor: '#5DCD49',
},
icon: 'hebei',
callUrl: "/pages/other/score/hebei"
}
])
const data = reactive({
navBar: {
title: '高考成绩',
bgColor: '#F0F4F9',
},
type: "message"
})
onLoad((options) => {
if (options.type) {
data.type = options.type
}
proxy.$apiUserEvent('all', {
type: 'event',
key: 'score',
prefix: '.uni.other.',
value:'高考查询'
})
})
function goPage(url,name) {
if (url) {
proxy.$apiUserEvent('all', {
type: 'event',
key: 'score',
prefix: '.uni.other.',
value:name
})
util.goPage(url)
} else {
uni.showToast({
title: '开发中',
icon: 'none'
})
}
}
</script>
<style>
@import '@/common/main.css';
</style>
<style lang="less">
.list-container {
background-color: #F0F4F9;
padding: 24rpx 32rpx;
}
.item {
width: 100%;
height: 160rpx;
border-radius: 24rpx;
margin-bottom: 24rpx;
padding: 40rpx 36rpx 24rpx 28rpx;
background-repeat: no-repeat;
background-size: 100% 100%;
.content {
.logo {
width: 96rpx;
height: 96rpx;
flex-shrink: 0;
}
.name {
margin-left: 32rpx;
color: #1A1A1A;
font-size: 36rpx;
font-weight: 500;
}
.right-button {
width: 140rpx;
height: 64rpx;
border-radius: 16rpx;
color: #ffffff;
font-size: 28rpx;
line-height: 64rpx !important;
text-align: right;
// display: flex;
// align-items: center;
// justify-content: center;
}
}
.line {
width: 100rpx;
height: 8rpx;
filter: blur(5px);
opacity: 0.5;
margin-top: 4rpx;
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB