完成我的页和搜索页,完成首页滑动后的搜索框样式
@@ -1,48 +1,42 @@
|
||||
<template>
|
||||
<view class="nav-bar-div" v-if="isEnabled" :style="{height: height, backgroundColor: backgroundColor}">
|
||||
<!-- 导航栏内容 -->
|
||||
<view class="nav-bar-div" >
|
||||
<view class="nav-bar" v-if="is_fixed" :style="{ backgroundColor: backgroundColor }"></view>
|
||||
<view class="nav-bar-seat" v-if="is_seat" :style="{ backgroundColor: backgroundColor }"></view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'nav-bar',
|
||||
props: {
|
||||
isEnabled: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
height: {
|
||||
type: String,
|
||||
default: 'var(--status-bar-height)'
|
||||
},
|
||||
backgroundColor: {
|
||||
type: String,
|
||||
default: 'transparent' // 默认背景颜色为白色
|
||||
}
|
||||
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
is_fixed: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
created() {
|
||||
// 可以在这里添加状态栏高度计算逻辑
|
||||
// const systemInfo = uni.getSystemInfoSync()
|
||||
// this.statusBarHeight = systemInfo.statusBarHeight + 'px'
|
||||
is_seat: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// statusBarHeight: '0px'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
backgroundColor: {
|
||||
type: String,
|
||||
default: 'transparent'
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.nav-bar-div {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 999;
|
||||
// 可以添加其他默认样式
|
||||
}
|
||||
</style>
|
||||
.nav-bar {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.nav-bar-seat {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
}
|
||||
|
||||
.nav-bar-div {
|
||||
z-index: 1900;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
@@ -42,7 +42,8 @@
|
||||
"navigationBarTitleText": "我的",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
},
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -71,6 +72,15 @@
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/search/search",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"tabBar": {
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
// 静态样式配置
|
||||
export const customStyles = {
|
||||
backgroundColor: "#DCE9FF",
|
||||
paddingLeft: "40rpx",
|
||||
paddingTop: "5px",
|
||||
paddingBottom: "5px",
|
||||
}
|
||||
export const fixedCustomStyles = {
|
||||
backgroundColor: "#ffffff",
|
||||
paddingLeft: "40rpx",
|
||||
paddingTop: "5px",
|
||||
paddingBottom: "5px",
|
||||
border: "none"
|
||||
}
|
||||
export const placeholderStyle = 'color:#76A3EB;font-size:26rpx'
|
||||
export const suffixIconStyle = {
|
||||
color: "#2c8ef2",
|
||||
fontSize: "28px"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,25 @@
|
||||
<template>
|
||||
<view class="main_div max_page">
|
||||
<nav-bar></nav-bar>
|
||||
<nav-bar :is_seat="false" :backgroundColor="bgOpacity"></nav-bar>
|
||||
<view class="bg_div">
|
||||
<!-- 背景图 -->
|
||||
<image src="@/static/images/index/bg.png" class="bg_img"></image>
|
||||
<view class="fixed_search_div" v-show="opacity" :style="{ opacity: opacity }">
|
||||
<view class="fixed_search_input_div" @click="goto_search_page">
|
||||
<uv-input shape="circle" :customStyle="fixedCustomStyles"
|
||||
placeholderStyle='color:#999999;font-size:26rpx' placeholder="请输入关键字" suffixIcon="search"
|
||||
:suffixIconStyle="suffixIconStyle" :readonly="true">
|
||||
</uv-input>
|
||||
</view>
|
||||
<view class="message_div">
|
||||
<image src="@/static/images/index/message_b.png" class="message_img"></image>
|
||||
<view class="message_text">消息</view>
|
||||
<view class="message_num">
|
||||
30
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 文字logo -->
|
||||
<view class="title_logo" @click="common.navigateTo('/pages/login/login')">
|
||||
<image src="@/static/images/index/logo_text.png" class="log_img"></image>
|
||||
@@ -11,8 +27,8 @@
|
||||
</view>
|
||||
<!-- 搜索框 -->
|
||||
<view class="search_div">
|
||||
<uv-input shape="circle" :customStyle="customStyles" :placeholderStyle="placeholderStyle"
|
||||
placeholder="请输入关键字" suffixIcon="search" :suffixIconStyle="suffixIconStyle">
|
||||
<uv-input shape="circle" @click="goto_search_page" :customStyle="customStyles" :placeholderStyle="placeholderStyle"
|
||||
placeholder="请输入关键字" suffixIcon="search" :suffixIconStyle="suffixIconStyle" :readonly="true">
|
||||
</uv-input>
|
||||
<view class="message_div">
|
||||
<image src="@/static/images/index/message.png" class="message_img"></image>
|
||||
@@ -35,24 +51,26 @@
|
||||
</view>
|
||||
<!-- 学习时长 -->
|
||||
<view class="study_duration_div">
|
||||
|
||||
<view class="item">
|
||||
<view class="top">年度学习时长</view>
|
||||
<view class="bottom">
|
||||
<uv-count-to :startVal="0" :endVal="256" :useEasing="true" :decimals="0"></uv-count-to>h
|
||||
<uv-count-to :startVal="150" :endVal="256.2" :useEasing="true" :decimals="1"></uv-count-to>h
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="top">累计训练时长</view>
|
||||
<view class="bottom">
|
||||
<uv-count-to :startVal="0" :endVal="224" :useEasing="true"></uv-count-to>h</view>
|
||||
<uv-count-to :startVal="100" :endVal="224.5" :useEasing="true" :decimals="1"></uv-count-to>h
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="top">累计考试次数</view>
|
||||
<view class="bottom"><uv-count-to :startVal="0" :endVal="25" :useEasing="true"></uv-count-to></view>
|
||||
<view class="bottom"><uv-count-to :startVal="0" :endVal="25" :useEasing="true"></uv-count-to>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 8个导航 -->
|
||||
<view class="navigation_div">
|
||||
<view class="group">
|
||||
<view class="item">
|
||||
@@ -93,8 +111,8 @@
|
||||
</view>
|
||||
<!-- 热门课程分模块标题 -->
|
||||
<view class="module_title_div">
|
||||
<view class="icon">
|
||||
<image class="img_100" src="@/static/images/index/hot.png"></image>
|
||||
<view class="icon icon_1">
|
||||
<image class="img" src="@/static/images/index/hot.png"></image>
|
||||
</view>
|
||||
<view class="text font_pf">热门课程</view>
|
||||
</view>
|
||||
@@ -126,8 +144,8 @@
|
||||
|
||||
<!-- 推荐课程分模块标题 -->
|
||||
<view class="module_title_div">
|
||||
<view class="icon">
|
||||
<image class="img_100" src="@/static/images/index/recommend.png"></image>
|
||||
<view class="icon icon_2">
|
||||
<image class="img" src="@/static/images/index/recommend.png"></image>
|
||||
</view>
|
||||
<view class="text font_pf">推荐课程</view>
|
||||
</view>
|
||||
@@ -156,11 +174,10 @@
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<!-- 最新课程分模块标题 -->
|
||||
<view class="module_title_div">
|
||||
<view class="icon">
|
||||
<image class="img_100" src="@/static/images/index/new.png"></image>
|
||||
<view class="icon icon_3">
|
||||
<image class="img" src="@/static/images/index/new.png"></image>
|
||||
</view>
|
||||
<view class="text font_pf">最新课程</view>
|
||||
</view>
|
||||
@@ -193,37 +210,47 @@
|
||||
<uv-divider text='我是有底线的' lineColor="#9cB0DC" :hairline="true"></uv-divider>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<tabbar-shadow></tabbar-shadow>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
computed,
|
||||
onMounted,
|
||||
ref
|
||||
} from 'vue'
|
||||
import {
|
||||
onShow
|
||||
onShow,
|
||||
onPageScroll
|
||||
} from '@dcloudio/uni-app'
|
||||
import {
|
||||
customStyles,
|
||||
fixedCustomStyles,
|
||||
placeholderStyle,
|
||||
suffixIconStyle
|
||||
} from './index.js'
|
||||
import common from '@/common/common'
|
||||
import {
|
||||
getStatisticsData
|
||||
} from '@/api/index.js'
|
||||
|
||||
// 静态样式配置
|
||||
const customStyles = {
|
||||
backgroundColor: "#DCE9FF",
|
||||
paddingLeft: "40rpx",
|
||||
paddingTop: "5px",
|
||||
paddingBottom: "5px",
|
||||
}
|
||||
const placeholderStyle = 'color:#76A3EB;font-size:26rpx'
|
||||
const suffixIconStyle = {
|
||||
color: "#2c8ef2",
|
||||
fontSize: "28px"
|
||||
}
|
||||
const scrollTop = ref(0);
|
||||
// 计算透明度
|
||||
const opacity = computed(() => {
|
||||
if (scrollTop.value <= 130) return 0;
|
||||
return Math.min(3, (scrollTop.value - 130) / 30);
|
||||
});
|
||||
const bgOpacity = computed(() => {
|
||||
return `rgba(246,248,255,${opacity.value})`;
|
||||
});
|
||||
// 首页滑动事件监听
|
||||
onPageScroll((e) => {
|
||||
scrollTop.value = e.scrollTop
|
||||
})
|
||||
// 滚动消息
|
||||
const notice_text = ref(['绿色金融政策解析与商业银行绿色水水水水水水水水水水水水水', '绿色金融政策解析与商业银行红色'])
|
||||
// 热门课程
|
||||
const hot_class_list = ref([{
|
||||
img: '',
|
||||
title: '',
|
||||
@@ -252,31 +279,30 @@
|
||||
// 暂时设置10分钟
|
||||
if (time_now - statistics_data['request_time'] > 600 * 1000) {
|
||||
statistics_data['request_time'] = time_now
|
||||
const data = await getStatisticsData()
|
||||
|
||||
// const data = await getStatisticsData()
|
||||
// console.log(data);
|
||||
}
|
||||
}
|
||||
const goto_search_page = () => {
|
||||
common.navigateTo('/pages/search/search')
|
||||
}
|
||||
onShow(() => {
|
||||
get_statistics_data() // 获取首页统计数据
|
||||
console.log('onShow');
|
||||
})
|
||||
onMounted(() => {
|
||||
|
||||
setTimeout(() => {
|
||||
hot_class_list.value = [{
|
||||
img: '11',
|
||||
title: '最新课程最新课程最新课程程最新课程程最新课程程最新课程',
|
||||
date: '2025/4/21',
|
||||
num: '44'
|
||||
},
|
||||
{
|
||||
img: '1124',
|
||||
title: '最新课程',
|
||||
date: '2025/4/21',
|
||||
num: '31'
|
||||
}
|
||||
]
|
||||
}, 1000)
|
||||
img: '11',
|
||||
title: '最新课程最新课程最新课程程最新课程程最新课程程最新课程',
|
||||
date: '2025/4/21',
|
||||
num: '44'
|
||||
}, {
|
||||
img: '',
|
||||
title: '',
|
||||
date: '',
|
||||
num: ''
|
||||
}]
|
||||
}, 100)
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -287,21 +313,19 @@
|
||||
// :deep(.uni-scroll-view-content) {
|
||||
// display: flex;
|
||||
// }
|
||||
|
||||
// :deep(.uv-skeleton__wrapper__avatar) {
|
||||
// height: 146rpx !important;
|
||||
// width: 146rpx !important;
|
||||
// border-radius: 16rpx;
|
||||
// }
|
||||
|
||||
// 设置骨架屏左侧图片框的大小,设置成和图片大小一致,否则横向滑动会串行(对不齐)
|
||||
:deep(.uv-skeleton__wrapper__avatar) {
|
||||
height: 146rpx !important;
|
||||
width: 146rpx !important;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
// 底线样式
|
||||
.bottom_line {
|
||||
|
||||
margin: 0 auto;
|
||||
width: 240rpx;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 热门课程等三个横向滑动模块的样式
|
||||
.hot_class_div {
|
||||
margin-left: $bg-margin-left;
|
||||
|
||||
@@ -392,7 +416,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.bg_div {
|
||||
height: 100%;
|
||||
padding-bottom: 30rpx;
|
||||
@@ -425,6 +449,62 @@
|
||||
}
|
||||
}
|
||||
|
||||
// 固定的搜索框
|
||||
.fixed_search_div {
|
||||
position: fixed;
|
||||
background-color: #f6f8ff;
|
||||
margin-top: var(--status-bar-height);
|
||||
padding: 0 $bg-margin-left 20rpx $bg-margin-left;
|
||||
height: 70rpx;
|
||||
width: calc(100% - 2* $bg-margin-left);
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 4rpx solid #efefef;
|
||||
|
||||
.fixed_search_input_div {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.message_div {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-left: 33rpx;
|
||||
|
||||
.message_img {
|
||||
width: 32rpx;
|
||||
height: 36rpx;
|
||||
}
|
||||
|
||||
.message_text {
|
||||
margin-top: 4rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
line-height: 24rpx;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.message_num {
|
||||
position: absolute;
|
||||
top: 2rpx;
|
||||
right: -4rpx;
|
||||
padding: 1rpx 1rpx 1rpx 2rpx;
|
||||
background-color: #ff1926;
|
||||
border-radius: 10rpx;
|
||||
width: 22rpx;
|
||||
height: 20rpx;
|
||||
font-size: 10rpx;
|
||||
color: #ffffff;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 搜索框
|
||||
.search_div {
|
||||
margin-top: 26rpx;
|
||||
@@ -486,24 +566,23 @@
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
|
||||
:deep(.uv-notice-bar) {
|
||||
padding: 9px 2px;
|
||||
}
|
||||
|
||||
|
||||
:deep(.uv-notice__swiper__item__text) {
|
||||
font-size: 20rpx !important;
|
||||
}
|
||||
|
||||
:deep(.uv-notice__left-icon) .uv-icon__icon {
|
||||
font-size: 24rpx !important;
|
||||
}
|
||||
|
||||
|
||||
// ::v-deep .u-notice-bar {
|
||||
// padding: 14rpx 0;
|
||||
// font-size: 22rpx;
|
||||
// }
|
||||
|
||||
|
||||
// :deep(.u-notice__left-icon) {
|
||||
// margin-right: 5rpx;
|
||||
@@ -536,7 +615,7 @@
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
z-index: 20;
|
||||
|
||||
|
||||
.item {
|
||||
flex: 1;
|
||||
// background-color: red;
|
||||
@@ -553,7 +632,7 @@
|
||||
text-align: center;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
.bottom {
|
||||
margin-top: 5%;
|
||||
font-weight: bold;
|
||||
@@ -563,8 +642,9 @@
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
text-align: center;
|
||||
|
||||
// 数字滚动组件
|
||||
:deep(.uv-count-num) {
|
||||
:deep(.uv-count-num) {
|
||||
font-weight: bold !important;
|
||||
font-size: 50rpx !important;
|
||||
color: #000000 !important;
|
||||
@@ -623,16 +703,41 @@
|
||||
align-items: center;
|
||||
|
||||
.icon {
|
||||
width: 34rpx;
|
||||
height: 38rpx;
|
||||
margin-right: 6rpx;
|
||||
|
||||
}
|
||||
|
||||
.icon_1 {
|
||||
|
||||
.img {
|
||||
width: 31rpx;
|
||||
height: 36rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.icon_2 {
|
||||
margin-top: 10rpx;
|
||||
|
||||
.img {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.icon_3 {
|
||||
|
||||
// margin-top: 10rpx;
|
||||
.img {
|
||||
width: 38rpx;
|
||||
height: 31rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 34rpx;
|
||||
color: #323E57;
|
||||
|
||||
font-weight: 700;
|
||||
line-height: 46rpx;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -50,12 +50,10 @@
|
||||
<view class="ysxy_tip font_pf">
|
||||
已阅读并同意
|
||||
<!-- #ifdef APP -->
|
||||
<span class="ysxy_term"
|
||||
@click="common.navigateTo('/pages/login/ysxy')">《服务条款》</span>
|
||||
<span class="ysxy_term" @click="common.navigateTo('/pages/login/ysxy')">《服务条款》</span>
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef APP -->
|
||||
<span class="ysxy_term"
|
||||
@click="common.navigateTo('/pages/login/ysxy')">《服务条款》</span>
|
||||
<span class="ysxy_term" @click="common.navigateTo('/pages/login/ysxy')">《服务条款》</span>
|
||||
<!-- #endif -->
|
||||
与
|
||||
<span class="ysxy_term">《隐私权政策》</span>
|
||||
@@ -68,16 +66,16 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
// import { v4 as uuid4 } from 'uuid'
|
||||
import { ref, computed } from 'vue'
|
||||
import { ref, computed, onMounted } from 'vue'
|
||||
import common from '@/common/common'
|
||||
import { useAccountLoginApp, queryCurrentUser } from '@/api/login.js'
|
||||
import { encryptByAES } from '@/api/encryptAndDecryptData.js'
|
||||
|
||||
const show_password = ref<Boolean>(false)
|
||||
const account = ref<string>('admin')
|
||||
const password = ref<string>('123456')
|
||||
const account = ref<string>('')
|
||||
const password = ref<string>('')
|
||||
const read_text_state = ref<Array<unknown>>([])
|
||||
|
||||
|
||||
// 登录按钮状态
|
||||
const login_button_status = computed<boolean>(() => !read_text_state.value.length)
|
||||
|
||||
@@ -91,11 +89,19 @@
|
||||
common.loading('登录中')
|
||||
const secretKey = 'EtBzqj+ln5tSTof1SDhpTg==';
|
||||
const cipherText = encryptByAES(password.value, secretKey);
|
||||
useAccountLoginApp({ loginName: account.value, password: cipherText }).then(async (res) => {
|
||||
useAccountLoginApp({ loginName: account.value, password: cipherText }).then(async () => {
|
||||
common.hideLoading()
|
||||
common.msg('登录成功')
|
||||
// 登陆成功,缓存账号密码
|
||||
common.setPageCache('loginAccountData', {
|
||||
account: account.value,
|
||||
password: password.value
|
||||
});
|
||||
// setTimeout(() => {
|
||||
// this.$common.reLaunch('/pages/homepage/index');
|
||||
// }, this.GLOBAL_TIMER_SUBMIT_DELAY_TIME);
|
||||
const pages = getCurrentPages()
|
||||
if (pages.length ===1) { // 页面栈只有一页,没有返回页,那就返回首页
|
||||
if (pages.length === 1) { // 页面栈只有一页,没有返回页,那就返回首页
|
||||
common.switchTab('/pages/index/index')
|
||||
} else {
|
||||
common.navigateBack() // 返回登录的上一页
|
||||
@@ -113,6 +119,13 @@
|
||||
common.hideLoading()
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
let loginAccountData = common.getPageCache('loginAccountData');
|
||||
if (loginAccountData) {
|
||||
account.value = loginAccountData.account;
|
||||
password.value = loginAccountData.password;
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 885 B |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1002 B |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 86 KiB |
@@ -0,0 +1,13 @@
|
||||
## 1.0.5(2023-12-06)
|
||||
1. 修复uv-cell right-icon插槽编译到APP端不显示的BUG,问题来源:https://gitee.com/climblee/uv-ui/issues/I8LXZI
|
||||
## 1.0.4(2023-09-19)
|
||||
1. 增加cellStyle参数,方便自定义单元格的样式
|
||||
## 1.0.3(2023-07-03)
|
||||
去除插槽判断,避免某些平台不显示的BUG
|
||||
## 1.0.2(2023-06-21)
|
||||
1. 优化
|
||||
## 1.0.1(2023-05-16)
|
||||
1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
|
||||
2. 优化部分功能
|
||||
## 1.0.0(2023-05-10)
|
||||
uv-cell 单元格
|
||||
@@ -0,0 +1,15 @@
|
||||
export default {
|
||||
props: {
|
||||
// 分组标题
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否显示外边框
|
||||
border: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
...uni.$uv?.props?.cellGroup
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<view :style="[$uv.addStyle(customStyle)]" :class="[customClass]" class="uv-cell-group">
|
||||
<view v-if="title" class="uv-cell-group__title">
|
||||
<slot name="title">
|
||||
<text class="uv-cell-group__title__text">{{ title }}</text>
|
||||
</slot>
|
||||
</view>
|
||||
<view class="uv-cell-group__wrapper">
|
||||
<uv-line v-if="border"></uv-line>
|
||||
<slot />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js'
|
||||
import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js'
|
||||
import props from './props.js';
|
||||
/**
|
||||
* cellGroup 单元格
|
||||
* @description cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。
|
||||
* @tutorial https://www.uvui.cn/components/cell.html
|
||||
*
|
||||
* @property {String} title 分组标题
|
||||
* @property {Boolean} border 是否显示外边框 (默认 true )
|
||||
* @property {Object} customStyle 定义需要用到的外部样式
|
||||
*
|
||||
* @event {Function} click 点击cell列表时触发
|
||||
* @example <uv-cell-group title="设置喜好">
|
||||
*/
|
||||
export default {
|
||||
name: 'uv-cell-group',
|
||||
mixins: [mpMixin, mixin, props]
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@/uni_modules/uv-ui-tools/libs/css/components.scss';
|
||||
@import '@/uni_modules/uv-ui-tools/libs/css/color.scss';
|
||||
$uv-cell-group-title-padding: 16px 16px 8px !default;
|
||||
$uv-cell-group-title-font-size: 15px !default;
|
||||
$uv-cell-group-title-line-height: 16px !default;
|
||||
$uv-cell-group-title-color: $uv-main-color !default;
|
||||
|
||||
.uv-cell-group {
|
||||
flex: 1;
|
||||
|
||||
&__title {
|
||||
padding: $uv-cell-group-title-padding;
|
||||
|
||||
&__text {
|
||||
font-size: $uv-cell-group-title-font-size;
|
||||
line-height: $uv-cell-group-title-line-height;
|
||||
color: $uv-cell-group-title-color;
|
||||
}
|
||||
}
|
||||
|
||||
&__wrapper {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
export default {
|
||||
props: {
|
||||
// 标题
|
||||
title: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
// 标题下方的描述信息
|
||||
label: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
// 右侧的内容
|
||||
value: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
// 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)
|
||||
icon: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否禁用cell
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否显示下边框
|
||||
border: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 内容是否垂直居中(主要是针对右侧的value部分)
|
||||
center: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 点击后跳转的URL地址
|
||||
url: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 链接跳转的方式,内部使用的是uvui封装的route方法,可能会进行拦截操作
|
||||
linkType: {
|
||||
type: String,
|
||||
default: 'navigateTo'
|
||||
},
|
||||
// 是否开启点击反馈(表现为点击时加上灰色背景)
|
||||
clickable: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否展示右侧箭头并开启点击反馈
|
||||
isLink: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件)
|
||||
required: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 右侧的图标箭头
|
||||
rightIcon: {
|
||||
type: String,
|
||||
default: 'arrow-right'
|
||||
},
|
||||
// 右侧箭头的方向,可选值为:left,up,down
|
||||
arrowDirection: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 左侧图标样式
|
||||
iconStyle: {
|
||||
type: [Object, String],
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
// 右侧箭头图标的样式
|
||||
rightIconStyle: {
|
||||
type: [Object, String],
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
// 标题的样式
|
||||
titleStyle: {
|
||||
type: [Object, String],
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
// 单位元的大小,可选值为large
|
||||
size: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 点击cell是否阻止事件传播
|
||||
stop: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 标识符,cell被点击时返回
|
||||
name: {
|
||||
type: [Number, String],
|
||||
default: ''
|
||||
},
|
||||
// 单元格自定义样式
|
||||
cellStyle: {
|
||||
type: [Object, String],
|
||||
default: () => {}
|
||||
},
|
||||
...uni.$uv?.props?.cell
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
<template>
|
||||
<view class="uv-cell" :class="[customClass]" :style="[$uv.addStyle(customStyle)]"
|
||||
:hover-class="(!disabled && (clickable || isLink)) ? 'uv-cell--clickable' : ''" :hover-stay-time="250"
|
||||
@click="clickHandler">
|
||||
<view class="uv-cell__body"
|
||||
:class="[ center && 'uv-cell--center', size === 'large' && 'uv-cell__body--large']"
|
||||
:style="[cellStyle]"
|
||||
>
|
||||
<view class="uv-cell__body__content">
|
||||
<view class="uv-cell__left-icon-wrap">
|
||||
<slot name="icon">
|
||||
<uv-icon v-if="icon" :name="icon" :custom-style="iconStyle" :size="size === 'large' ? 22 : 18"></uv-icon>
|
||||
</slot>
|
||||
</view>
|
||||
<view class="uv-cell__title">
|
||||
<slot name="title">
|
||||
<text v-if="title" class="uv-cell__title-text" :style="[titleTextStyle]"
|
||||
:class="[disabled && 'uv-cell--disabled', size === 'large' && 'uv-cell__title-text--large']">{{ title }}</text>
|
||||
</slot>
|
||||
<slot name="label">
|
||||
<text class="uv-cell__label" v-if="label"
|
||||
:class="[disabled && 'uv-cell--disabled', size === 'large' && 'uv-cell__label--large']">{{ label }}</text>
|
||||
</slot>
|
||||
</view>
|
||||
</view>
|
||||
<slot name="value">
|
||||
<text class="uv-cell__value"
|
||||
:class="[disabled && 'uv-cell--disabled', size === 'large' && 'uv-cell__value--large']"
|
||||
v-if="!$uv.test.empty(value)">{{ value }}</text>
|
||||
</slot>
|
||||
<view class="uv-cell__right-icon-wrap"
|
||||
:class="[`uv-cell__right-icon-wrap--${arrowDirection}`]">
|
||||
<slot name="right-icon">
|
||||
<uv-icon v-if="isLink" :name="rightIcon" :custom-style="rightIconStyle" :color="disabled ? '#c8c9cc' : 'info'"
|
||||
:size="size === 'large' ? 18 : 16"></uv-icon>
|
||||
</slot>
|
||||
</view>
|
||||
</view>
|
||||
<uv-line v-if="border"></uv-line>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js'
|
||||
import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js'
|
||||
import props from './props.js';
|
||||
/**
|
||||
* cell 单元格
|
||||
* @description cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。
|
||||
* @tutorial https://www.uvui.cn/components/cell.html
|
||||
* @property {String | Number} title 标题
|
||||
* @property {String | Number} label 标题下方的描述信息
|
||||
* @property {String | Number} value 右侧的内容
|
||||
* @property {String} icon 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)
|
||||
* @property {Boolean} disabled 是否禁用cell
|
||||
* @property {Boolean} border 是否显示下边框 (默认 true )
|
||||
* @property {Boolean} center 内容是否垂直居中(主要是针对右侧的value部分) (默认 false )
|
||||
* @property {String} url 点击后跳转的URL地址
|
||||
* @property {String} linkType 链接跳转的方式,内部使用的是uvui封装的route方法,可能会进行拦截操作 (默认 'navigateTo' )
|
||||
* @property {Boolean} clickable 是否开启点击反馈(表现为点击时加上灰色背景) (默认 false )
|
||||
* @property {Boolean} isLink 是否展示右侧箭头并开启点击反馈 (默认 false )
|
||||
* @property {Boolean} required 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件) (默认 false )
|
||||
* @property {String} rightIcon 右侧的图标箭头 (默认 'arrow-right')
|
||||
* @property {String} arrowDirection 右侧箭头的方向,可选值为:left,up,down
|
||||
* @property {Object | String} rightIconStyle 右侧箭头图标的样式
|
||||
* @property {Object | String} titleStyle 标题的样式
|
||||
* @property {Object | String} iconStyle 左侧图标样式
|
||||
* @property {String} size 单位元的大小,可选值为 large,normal,mini
|
||||
* @property {Boolean} stop 点击cell是否阻止事件传播 (默认 true )
|
||||
* @property {Object | String} cellStyle 单元格自定义样式
|
||||
* @property {Object} customStyle 定义需要用到的外部样式
|
||||
*
|
||||
* @event {Function} click 点击cell列表时触发
|
||||
* @example 该组件需要搭配cell-group组件使用,见官方文档示例
|
||||
*/
|
||||
export default {
|
||||
name: 'uv-cell',
|
||||
emits: ['click'],
|
||||
mixins: [mpMixin, mixin, props],
|
||||
computed: {
|
||||
titleTextStyle() {
|
||||
return this.$uv.addStyle(this.titleStyle)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 点击cell
|
||||
clickHandler(e) {
|
||||
if (this.disabled) return
|
||||
this.$emit('click', {
|
||||
name: this.name
|
||||
})
|
||||
// 如果配置了url(此props参数通过mixin引入)参数,跳转页面
|
||||
this.openPage()
|
||||
// 是否阻止事件传播
|
||||
this.stop && this.preventEvent(e)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@/uni_modules/uv-ui-tools/libs/css/components.scss';
|
||||
@import '@/uni_modules/uv-ui-tools/libs/css/color.scss';
|
||||
$uv-cell-padding: 10px 15px !default;
|
||||
$uv-cell-font-size: 15px !default;
|
||||
$uv-cell-line-height: 24px !default;
|
||||
$uv-cell-color: $uv-main-color !default;
|
||||
$uv-cell-icon-size: 16px !default;
|
||||
$uv-cell-title-font-size: 15px !default;
|
||||
$uv-cell-title-line-height: 22px !default;
|
||||
$uv-cell-title-color: $uv-main-color !default;
|
||||
$uv-cell-label-font-size: 12px !default;
|
||||
$uv-cell-label-color: $uv-tips-color !default;
|
||||
$uv-cell-label-line-height: 18px !default;
|
||||
$uv-cell-value-font-size: 14px !default;
|
||||
$uv-cell-value-color: $uv-content-color !default;
|
||||
$uv-cell-clickable-color: $uv-bg-color !default;
|
||||
$uv-cell-disabled-color: #c8c9cc !default;
|
||||
$uv-cell-padding-top-large: 13px !default;
|
||||
$uv-cell-padding-bottom-large: 13px !default;
|
||||
$uv-cell-value-font-size-large: 15px !default;
|
||||
$uv-cell-label-font-size-large: 14px !default;
|
||||
$uv-cell-title-font-size-large: 16px !default;
|
||||
$uv-cell-left-icon-wrap-margin-right: 4px !default;
|
||||
$uv-cell-right-icon-wrap-margin-left: 4px !default;
|
||||
$uv-cell-title-flex: 1 !default;
|
||||
$uv-cell-label-margin-top: 5px !default;
|
||||
.uv-cell {
|
||||
&__body {
|
||||
@include flex();
|
||||
/* #ifndef APP-NVUE */
|
||||
box-sizing: border-box;
|
||||
/* #endif */
|
||||
padding: $uv-cell-padding;
|
||||
font-size: $uv-cell-font-size;
|
||||
color: $uv-cell-color;
|
||||
&__content {
|
||||
@include flex(row);
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
&--large {
|
||||
padding-top: $uv-cell-padding-top-large;
|
||||
padding-bottom: $uv-cell-padding-bottom-large;
|
||||
}
|
||||
}
|
||||
&__left-icon-wrap,
|
||||
&__right-icon-wrap {
|
||||
@include flex();
|
||||
align-items: center;
|
||||
// height: $uv-cell-line-height;
|
||||
font-size: $uv-cell-icon-size;
|
||||
}
|
||||
&__left-icon-wrap {
|
||||
margin-right: $uv-cell-left-icon-wrap-margin-right;
|
||||
}
|
||||
&__right-icon-wrap {
|
||||
margin-left: $uv-cell-right-icon-wrap-margin-left;
|
||||
transition: transform 0.3s;
|
||||
&--up {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
&--down {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
&__title {
|
||||
flex: $uv-cell-title-flex;
|
||||
&-text {
|
||||
font-size: $uv-cell-title-font-size;
|
||||
line-height: $uv-cell-title-line-height;
|
||||
color: $uv-cell-title-color;
|
||||
&--large {
|
||||
font-size: $uv-cell-title-font-size-large;
|
||||
}
|
||||
}
|
||||
}
|
||||
&__label {
|
||||
margin-top: $uv-cell-label-margin-top;
|
||||
font-size: $uv-cell-label-font-size;
|
||||
color: $uv-cell-label-color;
|
||||
line-height: $uv-cell-label-line-height;
|
||||
&--large {
|
||||
font-size: $uv-cell-label-font-size-large;
|
||||
}
|
||||
}
|
||||
&__value {
|
||||
text-align: right;
|
||||
font-size: $uv-cell-value-font-size;
|
||||
line-height: $uv-cell-line-height;
|
||||
color: $uv-cell-value-color;
|
||||
&--large {
|
||||
font-size: $uv-cell-value-font-size-large;
|
||||
}
|
||||
}
|
||||
&--clickable {
|
||||
background-color: $uv-cell-clickable-color;
|
||||
}
|
||||
&--disabled {
|
||||
color: $uv-cell-disabled-color;
|
||||
/* #ifndef APP-NVUE */
|
||||
cursor: not-allowed;
|
||||
/* #endif */
|
||||
}
|
||||
&--center {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"id": "uv-cell",
|
||||
"displayName": "uv-cell 单元格 全面兼容小程序、nvue、vue2、vue3等多端",
|
||||
"version": "1.0.5",
|
||||
"description": "cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。",
|
||||
"keywords": [
|
||||
"uv-cell",
|
||||
"uvui",
|
||||
"uv-ui",
|
||||
"单元格",
|
||||
"设置页"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.1.0"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "component-vue",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "0.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": ""
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "插件不采集任何数据",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"dependencies": [
|
||||
"uv-ui-tools",
|
||||
"uv-icon",
|
||||
"uv-line"
|
||||
],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "y",
|
||||
"vue3": "y"
|
||||
},
|
||||
"App": {
|
||||
"app-vue": "y",
|
||||
"app-nvue": "y"
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "y",
|
||||
"Android Browser": "y",
|
||||
"微信浏览器(Android)": "y",
|
||||
"QQ浏览器(Android)": "y"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "y",
|
||||
"IE": "y",
|
||||
"Edge": "y",
|
||||
"Firefox": "y",
|
||||
"Safari": "y"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "y",
|
||||
"阿里": "y",
|
||||
"百度": "y",
|
||||
"字节跳动": "y",
|
||||
"QQ": "y",
|
||||
"钉钉": "u",
|
||||
"快手": "u",
|
||||
"飞书": "u",
|
||||
"京东": "u"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "u",
|
||||
"联盟": "u"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
## Cell 单元格
|
||||
|
||||
> **组件名:uv-cell**
|
||||
|
||||
cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。
|
||||
|
||||
### <a href="https://www.uvui.cn/components/cell.html" target="_blank">查看文档</a>
|
||||
|
||||
### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
||||
|
||||
#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:<a href="https://ext.dcloud.net.cn/plugin?id=12287" target="_blank">uv-ui</a>、<a href="https://www.uvui.cn/components/addQQGroup.html" target="_blank">官方QQ群</a>
|
||||
@@ -2,24 +2,14 @@
|
||||
"hash": "ddb2c76c",
|
||||
"configHash": "29b76f39",
|
||||
"lockfileHash": "b751b87c",
|
||||
"browserHash": "4970fb6a",
|
||||
"browserHash": "377c5def",
|
||||
"optimized": {
|
||||
"uuid": {
|
||||
"src": "../../../../../node_modules/uuid/dist/esm-browser/index.js",
|
||||
"file": "uuid.js",
|
||||
"fileHash": "347d5f8e",
|
||||
"needsInterop": false
|
||||
},
|
||||
"crypto-js": {
|
||||
"src": "../../../../../node_modules/crypto-js/index.js",
|
||||
"file": "crypto-js.js",
|
||||
"fileHash": "ee0a0490",
|
||||
"fileHash": "95462204",
|
||||
"needsInterop": true
|
||||
}
|
||||
},
|
||||
"chunks": {
|
||||
"chunk-Y2F7D3TJ": {
|
||||
"file": "chunk-Y2F7D3TJ.js"
|
||||
}
|
||||
}
|
||||
"chunks": {}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __commonJS = (cb, mod) => function __require() {
|
||||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||||
};
|
||||
|
||||
export {
|
||||
__commonJS
|
||||
};
|
||||
//# sourceMappingURL=chunk-Y2F7D3TJ.js.map
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
__commonJS
|
||||
} from "./chunk-Y2F7D3TJ.js";
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __commonJS = (cb, mod) => function __require() {
|
||||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||||
};
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/crypto-js/core.js
|
||||
var require_core = __commonJS({
|
||||
|
||||
@@ -1,549 +0,0 @@
|
||||
import "./chunk-Y2F7D3TJ.js";
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/max.js
|
||||
var max_default = "ffffffff-ffff-ffff-ffff-ffffffffffff";
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/nil.js
|
||||
var nil_default = "00000000-0000-0000-0000-000000000000";
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/regex.js
|
||||
var regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/validate.js
|
||||
function validate(uuid) {
|
||||
return typeof uuid === "string" && regex_default.test(uuid);
|
||||
}
|
||||
var validate_default = validate;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/parse.js
|
||||
function parse(uuid) {
|
||||
if (!validate_default(uuid)) {
|
||||
throw TypeError("Invalid UUID");
|
||||
}
|
||||
let v;
|
||||
return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, v >>> 16 & 255, v >>> 8 & 255, v & 255, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 255, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 255, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 255, (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255, v / 4294967296 & 255, v >>> 24 & 255, v >>> 16 & 255, v >>> 8 & 255, v & 255);
|
||||
}
|
||||
var parse_default = parse;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/stringify.js
|
||||
var byteToHex = [];
|
||||
for (let i = 0; i < 256; ++i) {
|
||||
byteToHex.push((i + 256).toString(16).slice(1));
|
||||
}
|
||||
function unsafeStringify(arr, offset = 0) {
|
||||
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
||||
}
|
||||
function stringify(arr, offset = 0) {
|
||||
const uuid = unsafeStringify(arr, offset);
|
||||
if (!validate_default(uuid)) {
|
||||
throw TypeError("Stringified UUID is invalid");
|
||||
}
|
||||
return uuid;
|
||||
}
|
||||
var stringify_default = stringify;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/rng.js
|
||||
var getRandomValues;
|
||||
var rnds8 = new Uint8Array(16);
|
||||
function rng() {
|
||||
if (!getRandomValues) {
|
||||
if (typeof crypto === "undefined" || !crypto.getRandomValues) {
|
||||
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
||||
}
|
||||
getRandomValues = crypto.getRandomValues.bind(crypto);
|
||||
}
|
||||
return getRandomValues(rnds8);
|
||||
}
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v1.js
|
||||
var _state = {};
|
||||
function v1(options, buf, offset) {
|
||||
var _a;
|
||||
let bytes;
|
||||
const isV6 = (options == null ? void 0 : options._v6) ?? false;
|
||||
if (options) {
|
||||
const optionsKeys = Object.keys(options);
|
||||
if (optionsKeys.length === 1 && optionsKeys[0] === "_v6") {
|
||||
options = void 0;
|
||||
}
|
||||
}
|
||||
if (options) {
|
||||
bytes = v1Bytes(options.random ?? ((_a = options.rng) == null ? void 0 : _a.call(options)) ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);
|
||||
} else {
|
||||
const now = Date.now();
|
||||
const rnds = rng();
|
||||
updateV1State(_state, now, rnds);
|
||||
bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? void 0 : _state.clockseq, isV6 ? void 0 : _state.node, buf, offset);
|
||||
}
|
||||
return buf ?? unsafeStringify(bytes);
|
||||
}
|
||||
function updateV1State(state, now, rnds) {
|
||||
state.msecs ?? (state.msecs = -Infinity);
|
||||
state.nsecs ?? (state.nsecs = 0);
|
||||
if (now === state.msecs) {
|
||||
state.nsecs++;
|
||||
if (state.nsecs >= 1e4) {
|
||||
state.node = void 0;
|
||||
state.nsecs = 0;
|
||||
}
|
||||
} else if (now > state.msecs) {
|
||||
state.nsecs = 0;
|
||||
} else if (now < state.msecs) {
|
||||
state.node = void 0;
|
||||
}
|
||||
if (!state.node) {
|
||||
state.node = rnds.slice(10, 16);
|
||||
state.node[0] |= 1;
|
||||
state.clockseq = (rnds[8] << 8 | rnds[9]) & 16383;
|
||||
}
|
||||
state.msecs = now;
|
||||
return state;
|
||||
}
|
||||
function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {
|
||||
if (rnds.length < 16) {
|
||||
throw new Error("Random bytes length must be >= 16");
|
||||
}
|
||||
if (!buf) {
|
||||
buf = new Uint8Array(16);
|
||||
offset = 0;
|
||||
} else {
|
||||
if (offset < 0 || offset + 16 > buf.length) {
|
||||
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
||||
}
|
||||
}
|
||||
msecs ?? (msecs = Date.now());
|
||||
nsecs ?? (nsecs = 0);
|
||||
clockseq ?? (clockseq = (rnds[8] << 8 | rnds[9]) & 16383);
|
||||
node ?? (node = rnds.slice(10, 16));
|
||||
msecs += 122192928e5;
|
||||
const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
|
||||
buf[offset++] = tl >>> 24 & 255;
|
||||
buf[offset++] = tl >>> 16 & 255;
|
||||
buf[offset++] = tl >>> 8 & 255;
|
||||
buf[offset++] = tl & 255;
|
||||
const tmh = msecs / 4294967296 * 1e4 & 268435455;
|
||||
buf[offset++] = tmh >>> 8 & 255;
|
||||
buf[offset++] = tmh & 255;
|
||||
buf[offset++] = tmh >>> 24 & 15 | 16;
|
||||
buf[offset++] = tmh >>> 16 & 255;
|
||||
buf[offset++] = clockseq >>> 8 | 128;
|
||||
buf[offset++] = clockseq & 255;
|
||||
for (let n = 0; n < 6; ++n) {
|
||||
buf[offset++] = node[n];
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
var v1_default = v1;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v1ToV6.js
|
||||
function v1ToV6(uuid) {
|
||||
const v1Bytes2 = typeof uuid === "string" ? parse_default(uuid) : uuid;
|
||||
const v6Bytes = _v1ToV6(v1Bytes2);
|
||||
return typeof uuid === "string" ? unsafeStringify(v6Bytes) : v6Bytes;
|
||||
}
|
||||
function _v1ToV6(v1Bytes2) {
|
||||
return Uint8Array.of((v1Bytes2[6] & 15) << 4 | v1Bytes2[7] >> 4 & 15, (v1Bytes2[7] & 15) << 4 | (v1Bytes2[4] & 240) >> 4, (v1Bytes2[4] & 15) << 4 | (v1Bytes2[5] & 240) >> 4, (v1Bytes2[5] & 15) << 4 | (v1Bytes2[0] & 240) >> 4, (v1Bytes2[0] & 15) << 4 | (v1Bytes2[1] & 240) >> 4, (v1Bytes2[1] & 15) << 4 | (v1Bytes2[2] & 240) >> 4, 96 | v1Bytes2[2] & 15, v1Bytes2[3], v1Bytes2[8], v1Bytes2[9], v1Bytes2[10], v1Bytes2[11], v1Bytes2[12], v1Bytes2[13], v1Bytes2[14], v1Bytes2[15]);
|
||||
}
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/md5.js
|
||||
function md5(bytes) {
|
||||
const words = uint8ToUint32(bytes);
|
||||
const md5Bytes = wordsToMd5(words, bytes.length * 8);
|
||||
return uint32ToUint8(md5Bytes);
|
||||
}
|
||||
function uint32ToUint8(input) {
|
||||
const bytes = new Uint8Array(input.length * 4);
|
||||
for (let i = 0; i < input.length * 4; i++) {
|
||||
bytes[i] = input[i >> 2] >>> i % 4 * 8 & 255;
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
function getOutputLength(inputLength8) {
|
||||
return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
|
||||
}
|
||||
function wordsToMd5(x, len) {
|
||||
const xpad = new Uint32Array(getOutputLength(len)).fill(0);
|
||||
xpad.set(x);
|
||||
xpad[len >> 5] |= 128 << len % 32;
|
||||
xpad[xpad.length - 1] = len;
|
||||
x = xpad;
|
||||
let a = 1732584193;
|
||||
let b = -271733879;
|
||||
let c = -1732584194;
|
||||
let d = 271733878;
|
||||
for (let i = 0; i < x.length; i += 16) {
|
||||
const olda = a;
|
||||
const oldb = b;
|
||||
const oldc = c;
|
||||
const oldd = d;
|
||||
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||
a = safeAdd(a, olda);
|
||||
b = safeAdd(b, oldb);
|
||||
c = safeAdd(c, oldc);
|
||||
d = safeAdd(d, oldd);
|
||||
}
|
||||
return Uint32Array.of(a, b, c, d);
|
||||
}
|
||||
function uint8ToUint32(input) {
|
||||
if (input.length === 0) {
|
||||
return new Uint32Array();
|
||||
}
|
||||
const output = new Uint32Array(getOutputLength(input.length * 8)).fill(0);
|
||||
for (let i = 0; i < input.length; i++) {
|
||||
output[i >> 2] |= (input[i] & 255) << i % 4 * 8;
|
||||
}
|
||||
return output;
|
||||
}
|
||||
function safeAdd(x, y) {
|
||||
const lsw = (x & 65535) + (y & 65535);
|
||||
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return msw << 16 | lsw & 65535;
|
||||
}
|
||||
function bitRotateLeft(num, cnt) {
|
||||
return num << cnt | num >>> 32 - cnt;
|
||||
}
|
||||
function md5cmn(q, a, b, x, s, t) {
|
||||
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||
}
|
||||
function md5ff(a, b, c, d, x, s, t) {
|
||||
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
||||
}
|
||||
function md5gg(a, b, c, d, x, s, t) {
|
||||
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
||||
}
|
||||
function md5hh(a, b, c, d, x, s, t) {
|
||||
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||
}
|
||||
function md5ii(a, b, c, d, x, s, t) {
|
||||
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||
}
|
||||
var md5_default = md5;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v35.js
|
||||
function stringToBytes(str) {
|
||||
str = unescape(encodeURIComponent(str));
|
||||
const bytes = new Uint8Array(str.length);
|
||||
for (let i = 0; i < str.length; ++i) {
|
||||
bytes[i] = str.charCodeAt(i);
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
|
||||
var URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
|
||||
function v35(version2, hash, value, namespace, buf, offset) {
|
||||
const valueBytes = typeof value === "string" ? stringToBytes(value) : value;
|
||||
const namespaceBytes = typeof namespace === "string" ? parse_default(namespace) : namespace;
|
||||
if (typeof namespace === "string") {
|
||||
namespace = parse_default(namespace);
|
||||
}
|
||||
if ((namespace == null ? void 0 : namespace.length) !== 16) {
|
||||
throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
|
||||
}
|
||||
let bytes = new Uint8Array(16 + valueBytes.length);
|
||||
bytes.set(namespaceBytes);
|
||||
bytes.set(valueBytes, namespaceBytes.length);
|
||||
bytes = hash(bytes);
|
||||
bytes[6] = bytes[6] & 15 | version2;
|
||||
bytes[8] = bytes[8] & 63 | 128;
|
||||
if (buf) {
|
||||
offset = offset || 0;
|
||||
for (let i = 0; i < 16; ++i) {
|
||||
buf[offset + i] = bytes[i];
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
return unsafeStringify(bytes);
|
||||
}
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v3.js
|
||||
function v3(value, namespace, buf, offset) {
|
||||
return v35(48, md5_default, value, namespace, buf, offset);
|
||||
}
|
||||
v3.DNS = DNS;
|
||||
v3.URL = URL;
|
||||
var v3_default = v3;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/native.js
|
||||
var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||
var native_default = { randomUUID };
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v4.js
|
||||
function v4(options, buf, offset) {
|
||||
var _a;
|
||||
if (native_default.randomUUID && !buf && !options) {
|
||||
return native_default.randomUUID();
|
||||
}
|
||||
options = options || {};
|
||||
const rnds = options.random ?? ((_a = options.rng) == null ? void 0 : _a.call(options)) ?? rng();
|
||||
if (rnds.length < 16) {
|
||||
throw new Error("Random bytes length must be >= 16");
|
||||
}
|
||||
rnds[6] = rnds[6] & 15 | 64;
|
||||
rnds[8] = rnds[8] & 63 | 128;
|
||||
if (buf) {
|
||||
offset = offset || 0;
|
||||
if (offset < 0 || offset + 16 > buf.length) {
|
||||
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
||||
}
|
||||
for (let i = 0; i < 16; ++i) {
|
||||
buf[offset + i] = rnds[i];
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
return unsafeStringify(rnds);
|
||||
}
|
||||
var v4_default = v4;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/sha1.js
|
||||
function f(s, x, y, z) {
|
||||
switch (s) {
|
||||
case 0:
|
||||
return x & y ^ ~x & z;
|
||||
case 1:
|
||||
return x ^ y ^ z;
|
||||
case 2:
|
||||
return x & y ^ x & z ^ y & z;
|
||||
case 3:
|
||||
return x ^ y ^ z;
|
||||
}
|
||||
}
|
||||
function ROTL(x, n) {
|
||||
return x << n | x >>> 32 - n;
|
||||
}
|
||||
function sha1(bytes) {
|
||||
const K = [1518500249, 1859775393, 2400959708, 3395469782];
|
||||
const H = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
|
||||
const newBytes = new Uint8Array(bytes.length + 1);
|
||||
newBytes.set(bytes);
|
||||
newBytes[bytes.length] = 128;
|
||||
bytes = newBytes;
|
||||
const l = bytes.length / 4 + 2;
|
||||
const N = Math.ceil(l / 16);
|
||||
const M = new Array(N);
|
||||
for (let i = 0; i < N; ++i) {
|
||||
const arr = new Uint32Array(16);
|
||||
for (let j = 0; j < 16; ++j) {
|
||||
arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
|
||||
}
|
||||
M[i] = arr;
|
||||
}
|
||||
M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
|
||||
M[N - 1][14] = Math.floor(M[N - 1][14]);
|
||||
M[N - 1][15] = (bytes.length - 1) * 8 & 4294967295;
|
||||
for (let i = 0; i < N; ++i) {
|
||||
const W = new Uint32Array(80);
|
||||
for (let t = 0; t < 16; ++t) {
|
||||
W[t] = M[i][t];
|
||||
}
|
||||
for (let t = 16; t < 80; ++t) {
|
||||
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
|
||||
}
|
||||
let a = H[0];
|
||||
let b = H[1];
|
||||
let c = H[2];
|
||||
let d = H[3];
|
||||
let e = H[4];
|
||||
for (let t = 0; t < 80; ++t) {
|
||||
const s = Math.floor(t / 20);
|
||||
const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
|
||||
e = d;
|
||||
d = c;
|
||||
c = ROTL(b, 30) >>> 0;
|
||||
b = a;
|
||||
a = T;
|
||||
}
|
||||
H[0] = H[0] + a >>> 0;
|
||||
H[1] = H[1] + b >>> 0;
|
||||
H[2] = H[2] + c >>> 0;
|
||||
H[3] = H[3] + d >>> 0;
|
||||
H[4] = H[4] + e >>> 0;
|
||||
}
|
||||
return Uint8Array.of(H[0] >> 24, H[0] >> 16, H[0] >> 8, H[0], H[1] >> 24, H[1] >> 16, H[1] >> 8, H[1], H[2] >> 24, H[2] >> 16, H[2] >> 8, H[2], H[3] >> 24, H[3] >> 16, H[3] >> 8, H[3], H[4] >> 24, H[4] >> 16, H[4] >> 8, H[4]);
|
||||
}
|
||||
var sha1_default = sha1;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v5.js
|
||||
function v5(value, namespace, buf, offset) {
|
||||
return v35(80, sha1_default, value, namespace, buf, offset);
|
||||
}
|
||||
v5.DNS = DNS;
|
||||
v5.URL = URL;
|
||||
var v5_default = v5;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v6.js
|
||||
function v6(options, buf, offset) {
|
||||
options ?? (options = {});
|
||||
offset ?? (offset = 0);
|
||||
let bytes = v1_default({ ...options, _v6: true }, new Uint8Array(16));
|
||||
bytes = v1ToV6(bytes);
|
||||
if (buf) {
|
||||
for (let i = 0; i < 16; i++) {
|
||||
buf[offset + i] = bytes[i];
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
return unsafeStringify(bytes);
|
||||
}
|
||||
var v6_default = v6;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v6ToV1.js
|
||||
function v6ToV1(uuid) {
|
||||
const v6Bytes = typeof uuid === "string" ? parse_default(uuid) : uuid;
|
||||
const v1Bytes2 = _v6ToV1(v6Bytes);
|
||||
return typeof uuid === "string" ? unsafeStringify(v1Bytes2) : v1Bytes2;
|
||||
}
|
||||
function _v6ToV1(v6Bytes) {
|
||||
return Uint8Array.of((v6Bytes[3] & 15) << 4 | v6Bytes[4] >> 4 & 15, (v6Bytes[4] & 15) << 4 | (v6Bytes[5] & 240) >> 4, (v6Bytes[5] & 15) << 4 | v6Bytes[6] & 15, v6Bytes[7], (v6Bytes[1] & 15) << 4 | (v6Bytes[2] & 240) >> 4, (v6Bytes[2] & 15) << 4 | (v6Bytes[3] & 240) >> 4, 16 | (v6Bytes[0] & 240) >> 4, (v6Bytes[0] & 15) << 4 | (v6Bytes[1] & 240) >> 4, v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]);
|
||||
}
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/v7.js
|
||||
var _state2 = {};
|
||||
function v7(options, buf, offset) {
|
||||
var _a;
|
||||
let bytes;
|
||||
if (options) {
|
||||
bytes = v7Bytes(options.random ?? ((_a = options.rng) == null ? void 0 : _a.call(options)) ?? rng(), options.msecs, options.seq, buf, offset);
|
||||
} else {
|
||||
const now = Date.now();
|
||||
const rnds = rng();
|
||||
updateV7State(_state2, now, rnds);
|
||||
bytes = v7Bytes(rnds, _state2.msecs, _state2.seq, buf, offset);
|
||||
}
|
||||
return buf ?? unsafeStringify(bytes);
|
||||
}
|
||||
function updateV7State(state, now, rnds) {
|
||||
state.msecs ?? (state.msecs = -Infinity);
|
||||
state.seq ?? (state.seq = 0);
|
||||
if (now > state.msecs) {
|
||||
state.seq = rnds[6] << 23 | rnds[7] << 16 | rnds[8] << 8 | rnds[9];
|
||||
state.msecs = now;
|
||||
} else {
|
||||
state.seq = state.seq + 1 | 0;
|
||||
if (state.seq === 0) {
|
||||
state.msecs++;
|
||||
}
|
||||
}
|
||||
return state;
|
||||
}
|
||||
function v7Bytes(rnds, msecs, seq, buf, offset = 0) {
|
||||
if (rnds.length < 16) {
|
||||
throw new Error("Random bytes length must be >= 16");
|
||||
}
|
||||
if (!buf) {
|
||||
buf = new Uint8Array(16);
|
||||
offset = 0;
|
||||
} else {
|
||||
if (offset < 0 || offset + 16 > buf.length) {
|
||||
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
||||
}
|
||||
}
|
||||
msecs ?? (msecs = Date.now());
|
||||
seq ?? (seq = rnds[6] * 127 << 24 | rnds[7] << 16 | rnds[8] << 8 | rnds[9]);
|
||||
buf[offset++] = msecs / 1099511627776 & 255;
|
||||
buf[offset++] = msecs / 4294967296 & 255;
|
||||
buf[offset++] = msecs / 16777216 & 255;
|
||||
buf[offset++] = msecs / 65536 & 255;
|
||||
buf[offset++] = msecs / 256 & 255;
|
||||
buf[offset++] = msecs & 255;
|
||||
buf[offset++] = 112 | seq >>> 28 & 15;
|
||||
buf[offset++] = seq >>> 20 & 255;
|
||||
buf[offset++] = 128 | seq >>> 14 & 63;
|
||||
buf[offset++] = seq >>> 6 & 255;
|
||||
buf[offset++] = seq << 2 & 255 | rnds[10] & 3;
|
||||
buf[offset++] = rnds[11];
|
||||
buf[offset++] = rnds[12];
|
||||
buf[offset++] = rnds[13];
|
||||
buf[offset++] = rnds[14];
|
||||
buf[offset++] = rnds[15];
|
||||
return buf;
|
||||
}
|
||||
var v7_default = v7;
|
||||
|
||||
// E:/jlyh/tra-app/node_modules/uuid/dist/esm-browser/version.js
|
||||
function version(uuid) {
|
||||
if (!validate_default(uuid)) {
|
||||
throw TypeError("Invalid UUID");
|
||||
}
|
||||
return parseInt(uuid.slice(14, 15), 16);
|
||||
}
|
||||
var version_default = version;
|
||||
export {
|
||||
max_default as MAX,
|
||||
nil_default as NIL,
|
||||
parse_default as parse,
|
||||
stringify_default as stringify,
|
||||
v1_default as v1,
|
||||
v1ToV6,
|
||||
v3_default as v3,
|
||||
v4_default as v4,
|
||||
v5_default as v5,
|
||||
v6_default as v6,
|
||||
v6ToV1,
|
||||
v7_default as v7,
|
||||
validate_default as validate,
|
||||
version_default as version
|
||||
};
|
||||
//# sourceMappingURL=uuid.js.map
|
||||
@@ -2,7 +2,7 @@
|
||||
;(function(){
|
||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","titleView":false,"bounce":"none","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"AI智能培训","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"tra-app","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.66","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"tabBar":{"position":"bottom","color":"#666666","selectedColor":"#0066FF","borderStyle":"white","blurEffect":"none","fontSize":"16px","iconWidth":"24px","spacing":"10px","height":"70px","list":[{"text":"首页","pagePath":"pages/index/index"},{"text":"学习","pagePath":"pages/study/index"},{"text":"场景","pagePath":"pages/scene/index"},{"text":"我的","pagePath":"pages/me/index"}],"borderColor":"#ffffff","midButton":{"iconPath":"/static/images/icon/fawn.png","width":"86px","height":"86px","iconWidth":"90px"},"selectedIndex":0,"shown":true},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":0,"titleNView":false,"navigationBar":{"titleText":"首页","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/study/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":1,"titleNView":false,"navigationBar":{"titleText":"学习","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/intelligent_answering/index","meta":{"titleNView":false,"navigationBar":{"titleText":"智能问答","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/scene/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":2,"titleNView":false,"navigationBar":{"titleText":"场景","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/me/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":3,"titleNView":false,"navigationBar":{"titleText":"我的","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/login/login","meta":{"titleNView":false,"navigationBar":{"titleText":"登录","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/other/web_view","meta":{"titleNView":false,"navigationBar":{"titleText":"","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/login/ysxy","meta":{"titleNView":false,"navigationBar":{"titleText":"","type":"default","style":"custom"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":0,"titleNView":false,"navigationBar":{"titleText":"首页","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/study/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":1,"titleNView":false,"navigationBar":{"titleText":"学习","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/intelligent_answering/index","meta":{"titleNView":false,"navigationBar":{"titleText":"智能问答","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/scene/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":2,"titleNView":false,"navigationBar":{"titleText":"场景","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/me/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":3,"enablePullDownRefresh":true,"titleNView":false,"navigationBar":{"titleText":"我的","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/login/login","meta":{"titleNView":false,"navigationBar":{"titleText":"登录","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/other/web_view","meta":{"titleNView":false,"navigationBar":{"titleText":"","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/login/ysxy","meta":{"titleNView":false,"navigationBar":{"titleText":"","type":"default","style":"custom"},"isNVue":false}},{"path":"pages/search/search","meta":{"titleNView":false,"navigationBar":{"titleText":"","type":"default","style":"custom"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
__uniConfig.styles=[];//styles
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
|
||||
@@ -23,12 +23,19 @@
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.nav-bar-div[data-v-e9345f2e] {
|
||||
.nav-bar[data-v-e9345f2e] {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 999;
|
||||
}
|
||||
.nav-bar-seat[data-v-e9345f2e] {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
}
|
||||
.nav-bar-div[data-v-e9345f2e] {
|
||||
z-index: 1900;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
@@ -681,6 +688,11 @@ uni-view[data-v-222d1a38], uni-scroll-view[data-v-222d1a38], uni-swiper-item[dat
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
[data-v-1cf27b2a] .uv-skeleton__wrapper__avatar {
|
||||
height: 4.5625rem !important;
|
||||
width: 4.5625rem !important;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
.bottom_line[data-v-1cf27b2a] {
|
||||
margin: 0 auto;
|
||||
width: 7.5rem;
|
||||
@@ -785,6 +797,53 @@ uni-view[data-v-222d1a38], uni-scroll-view[data-v-222d1a38], uni-swiper-item[dat
|
||||
width: 9.375rem;
|
||||
height: 1.4375rem;
|
||||
}
|
||||
.bg_div .fixed_search_div[data-v-1cf27b2a] {
|
||||
position: fixed;
|
||||
background-color: #f6f8ff;
|
||||
margin-top: var(--status-bar-height);
|
||||
padding: 0 1.5625rem 0.625rem 1.5625rem;
|
||||
height: 2.1875rem;
|
||||
width: calc(100% - 3.125rem);
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 0.125rem solid #efefef;
|
||||
}
|
||||
.bg_div .fixed_search_div .fixed_search_input_div[data-v-1cf27b2a] {
|
||||
flex: 1;
|
||||
}
|
||||
.bg_div .fixed_search_div .message_div[data-v-1cf27b2a] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-left: 1.03125rem;
|
||||
}
|
||||
.bg_div .fixed_search_div .message_div .message_img[data-v-1cf27b2a] {
|
||||
width: 1rem;
|
||||
height: 1.125rem;
|
||||
}
|
||||
.bg_div .fixed_search_div .message_div .message_text[data-v-1cf27b2a] {
|
||||
margin-top: 0.125rem;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 0.6875rem;
|
||||
color: #333333;
|
||||
line-height: 0.75rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.bg_div .fixed_search_div .message_div .message_num[data-v-1cf27b2a] {
|
||||
position: absolute;
|
||||
top: 0.0625rem;
|
||||
right: -0.125rem;
|
||||
padding: 0.03125rem 0.03125rem 0.03125rem 0.0625rem;
|
||||
background-color: #ff1926;
|
||||
border-radius: 0.3125rem;
|
||||
width: 0.6875rem;
|
||||
height: 0.625rem;
|
||||
font-size: 0.3125rem;
|
||||
color: #ffffff;
|
||||
}
|
||||
.bg_div .search_div[data-v-1cf27b2a] {
|
||||
margin-top: 0.8125rem;
|
||||
margin-left: 1.5625rem;
|
||||
@@ -940,13 +999,27 @@ uni-view[data-v-222d1a38], uni-scroll-view[data-v-222d1a38], uni-swiper-item[dat
|
||||
align-items: center;
|
||||
}
|
||||
.bg_div .module_title_div .icon[data-v-1cf27b2a] {
|
||||
width: 1.0625rem;
|
||||
height: 1.1875rem;
|
||||
margin-right: 0.1875rem;
|
||||
}
|
||||
.bg_div .module_title_div .icon_1 .img[data-v-1cf27b2a] {
|
||||
width: 0.96875rem;
|
||||
height: 1.125rem;
|
||||
}
|
||||
.bg_div .module_title_div .icon_2[data-v-1cf27b2a] {
|
||||
margin-top: 0.3125rem;
|
||||
}
|
||||
.bg_div .module_title_div .icon_2 .img[data-v-1cf27b2a] {
|
||||
width: 1.1875rem;
|
||||
height: 1.1875rem;
|
||||
}
|
||||
.bg_div .module_title_div .icon_3 .img[data-v-1cf27b2a] {
|
||||
width: 1.1875rem;
|
||||
height: 0.96875rem;
|
||||
}
|
||||
.bg_div .module_title_div .title[data-v-1cf27b2a] {
|
||||
font-size: 1.0625rem;
|
||||
color: #323E57;
|
||||
font-weight: 700;
|
||||
line-height: 1.4375rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -23,30 +23,540 @@
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.main_div[data-v-c8e26b33] {
|
||||
background-color: #f9faff;
|
||||
.nav-bar[data-v-e9345f2e] {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
position: fixed;
|
||||
}
|
||||
.nav-bar-seat[data-v-e9345f2e] {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
}
|
||||
.nav-bar-div[data-v-e9345f2e] {
|
||||
z-index: 1900;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
uni-view[data-v-8f2e1838], uni-scroll-view[data-v-8f2e1838], uni-swiper-item[data-v-8f2e1838] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.uv-count-num[data-v-8f2e1838] {
|
||||
display: inline-flex;
|
||||
text-align: center;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
uni-view[data-v-b7a6dd5d], uni-scroll-view[data-v-b7a6dd5d], uni-swiper-item[data-v-b7a6dd5d] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "uvicon-iconfont";
|
||||
src: url("../../assets/uvicons.04d281cc.ttf") format("truetype");
|
||||
}
|
||||
.uv-icon[data-v-b7a6dd5d] {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon--left[data-v-b7a6dd5d] {
|
||||
flex-direction: row-reverse;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon--right[data-v-b7a6dd5d] {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon--top[data-v-b7a6dd5d] {
|
||||
flex-direction: column-reverse;
|
||||
justify-content: center;
|
||||
}
|
||||
.uv-icon--bottom[data-v-b7a6dd5d] {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.uv-icon__icon[data-v-b7a6dd5d] {
|
||||
font-family: uvicon-iconfont;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon__icon--primary[data-v-b7a6dd5d] {
|
||||
color: #3c9cff;
|
||||
}
|
||||
.uv-icon__icon--success[data-v-b7a6dd5d] {
|
||||
color: #5ac725;
|
||||
}
|
||||
.uv-icon__icon--error[data-v-b7a6dd5d] {
|
||||
color: #f56c6c;
|
||||
}
|
||||
.uv-icon__icon--warning[data-v-b7a6dd5d] {
|
||||
color: #f9ae3d;
|
||||
}
|
||||
.uv-icon__icon--info[data-v-b7a6dd5d] {
|
||||
color: #909399;
|
||||
}
|
||||
.uv-icon__img[data-v-b7a6dd5d] {
|
||||
height: auto;
|
||||
will-change: transform;
|
||||
}
|
||||
.uv-icon__label[data-v-b7a6dd5d] {
|
||||
line-height: 1;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.uv-line[data-v-dcf8cb8f] {
|
||||
vertical-align: middle;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
uni-view[data-v-565cfae0], uni-scroll-view[data-v-565cfae0], uni-swiper-item[data-v-565cfae0] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.uv-cell__body[data-v-565cfae0] {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
box-sizing: border-box;
|
||||
padding: 10px 15px;
|
||||
font-size: 15px;
|
||||
color: #303133;
|
||||
}
|
||||
.uv-cell__body__content[data-v-565cfae0] {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
.uv-cell__body--large[data-v-565cfae0] {
|
||||
padding-top: 13px;
|
||||
padding-bottom: 13px;
|
||||
}
|
||||
.uv-cell__left-icon-wrap[data-v-565cfae0], .uv-cell__right-icon-wrap[data-v-565cfae0] {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
}
|
||||
.uv-cell__left-icon-wrap[data-v-565cfae0] {
|
||||
margin-right: 4px;
|
||||
}
|
||||
.uv-cell__right-icon-wrap[data-v-565cfae0] {
|
||||
margin-left: 4px;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
.uv-cell__right-icon-wrap--up[data-v-565cfae0] {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
.uv-cell__right-icon-wrap--down[data-v-565cfae0] {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
.uv-cell__title[data-v-565cfae0] {
|
||||
flex: 1;
|
||||
}
|
||||
.uv-cell__title-text[data-v-565cfae0] {
|
||||
font-size: 15px;
|
||||
line-height: 22px;
|
||||
color: #303133;
|
||||
}
|
||||
.uv-cell__title-text--large[data-v-565cfae0] {
|
||||
font-size: 16px;
|
||||
}
|
||||
.uv-cell__label[data-v-565cfae0] {
|
||||
margin-top: 5px;
|
||||
font-size: 12px;
|
||||
color: #909193;
|
||||
line-height: 18px;
|
||||
}
|
||||
.uv-cell__label--large[data-v-565cfae0] {
|
||||
font-size: 14px;
|
||||
}
|
||||
.uv-cell__value[data-v-565cfae0] {
|
||||
text-align: right;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
color: #606266;
|
||||
}
|
||||
.uv-cell__value--large[data-v-565cfae0] {
|
||||
font-size: 15px;
|
||||
}
|
||||
.uv-cell--clickable[data-v-565cfae0] {
|
||||
background-color: #f3f4f6;
|
||||
}
|
||||
.uv-cell--disabled[data-v-565cfae0] {
|
||||
color: #c8c9cc;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.uv-cell--center[data-v-565cfae0] {
|
||||
align-items: center;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
uni-view[data-v-400210fd], uni-scroll-view[data-v-400210fd], uni-swiper-item[data-v-400210fd] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.uv-cell-group[data-v-400210fd] {
|
||||
flex: 1;
|
||||
}
|
||||
.uv-cell-group__title[data-v-400210fd] {
|
||||
padding: 16px 16px 8px;
|
||||
}
|
||||
.uv-cell-group__title__text[data-v-400210fd] {
|
||||
font-size: 15px;
|
||||
line-height: 16px;
|
||||
color: #303133;
|
||||
}
|
||||
.uv-cell-group__wrapper[data-v-400210fd] {
|
||||
position: relative;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.tabbar-shadow[data-v-d22390bb] {
|
||||
position: fixed;
|
||||
bottom: -14px;
|
||||
z-index: 3333;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.cell_div[data-v-c8e26b33] {
|
||||
margin: 0.9375rem 1.5625rem 0 1.5625rem;
|
||||
background: #FFFFFF;
|
||||
border-radius: 0.46875rem;
|
||||
z-index: 101;
|
||||
overflow: hidden;
|
||||
}
|
||||
.cell_div[data-v-c8e26b33] .uv-line {
|
||||
width: calc(100% - 1.5rem) !important;
|
||||
margin: 0 0.75rem !important;
|
||||
}
|
||||
.cell_div[data-v-c8e26b33] .uv-cell__body {
|
||||
padding: 12px 15px;
|
||||
}
|
||||
.navigation_div[data-v-c8e26b33] {
|
||||
margin: 0.9375rem 1.5625rem 0 1.5625rem;
|
||||
padding: 0.75rem 0 0.625rem 0;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 0.71875rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
z-index: 101;
|
||||
}
|
||||
.navigation_div .group[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.empty_div[data-v-c8e26b33] {
|
||||
.navigation_div .item[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.empty_div .img[data-v-c8e26b33] {
|
||||
width: 12.125rem;
|
||||
height: 10.46875rem;
|
||||
.navigation_div .item .icon[data-v-c8e26b33] {
|
||||
width: 2.75rem;
|
||||
height: 2.6875rem;
|
||||
}
|
||||
.empty_div .text[data-v-c8e26b33] {
|
||||
margin-top: 0.625rem;
|
||||
height: 1.25rem;
|
||||
.navigation_div .item .title[data-v-c8e26b33] {
|
||||
margin-top: 0.3125rem;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 0.90625rem;
|
||||
color: #4375C9;
|
||||
font-size: 0.78125rem;
|
||||
color: #323E57;
|
||||
line-height: 1.09375rem;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
.bg_div[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
padding: 0 1.5625rem;
|
||||
z-index: 50;
|
||||
}
|
||||
.bg_div .bg_img[data-v-c8e26b33] {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: -1;
|
||||
height: 26.8125rem;
|
||||
}
|
||||
.bg_div .user_data_div[data-v-c8e26b33] {
|
||||
margin-top: 4.9375rem;
|
||||
background: linear-gradient(180deg, rgba(241, 245, 255, 0.5) 0%, #F6F9FE 50%, #FFFFFF 100%);
|
||||
border-radius: 0.4375rem;
|
||||
border: 0.0625rem solid #ffffff;
|
||||
box-shadow: #F6F8FF 0 0 0.0625rem;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information[data-v-c8e26b33] {
|
||||
padding: 0.625rem 0 0 0.8125rem;
|
||||
display: flex;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information .profile[data-v-c8e26b33] {
|
||||
border-radius: 100%;
|
||||
border: 2px solid #ffffff;
|
||||
width: 3.375rem;
|
||||
height: 3.375rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information .personal_information_data[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 0.8125rem;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information .personal_information_data .name_sex_div[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
margin-top: 0.1875rem;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information .personal_information_data .name_sex_div .name[data-v-c8e26b33] {
|
||||
font-family: PingFangSC;
|
||||
font-weight: 600;
|
||||
font-size: 0.875rem;
|
||||
color: #000000;
|
||||
line-height: 1.25rem;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information .personal_information_data .name_sex_div .sex[data-v-c8e26b33] {
|
||||
margin-left: 0.3125rem;
|
||||
width: 0.9375rem;
|
||||
height: 0.9375rem;
|
||||
}
|
||||
.bg_div .user_data_div .personal_information .personal_information_data .work_number_div[data-v-c8e26b33] {
|
||||
font-family: PingFangSC;
|
||||
font-weight: 400;
|
||||
font-size: 0.78125rem;
|
||||
color: #666666;
|
||||
line-height: 1.1875rem;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
.bg_div .user_data_div .study_information[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
z-index: 20;
|
||||
margin: 0.9375rem 1.5625rem;
|
||||
}
|
||||
.bg_div .user_data_div .study_information .item[data-v-c8e26b33] {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.bg_div .user_data_div .study_information .item .top[data-v-c8e26b33] {
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 0.78125rem;
|
||||
color: #666666;
|
||||
line-height: 1.09375rem;
|
||||
text-align: center;
|
||||
font-style: normal;
|
||||
}
|
||||
.bg_div .user_data_div .study_information .item .bottom[data-v-c8e26b33] {
|
||||
margin-top: 5%;
|
||||
font-weight: bold;
|
||||
font-size: 1.5625rem;
|
||||
color: #000000;
|
||||
line-height: 1.8125rem;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
text-align: center;
|
||||
}
|
||||
.bg_div .user_data_div .study_information .item .bottom[data-v-c8e26b33] .uv-count-num {
|
||||
font-weight: bold !important;
|
||||
font-size: 1.5625rem !important;
|
||||
color: #000000 !important;
|
||||
}
|
||||
.main_div[data-v-c8e26b33] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #F6F8FF;
|
||||
}
|
||||
@@ -0,0 +1,298 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.nav-bar[data-v-e9345f2e] {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
position: fixed;
|
||||
}
|
||||
.nav-bar-seat[data-v-e9345f2e] {
|
||||
width: 100%;
|
||||
height: var(--status-bar-height);
|
||||
}
|
||||
.nav-bar-div[data-v-e9345f2e] {
|
||||
z-index: 1900;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
uni-view[data-v-b7a6dd5d], uni-scroll-view[data-v-b7a6dd5d], uni-swiper-item[data-v-b7a6dd5d] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "uvicon-iconfont";
|
||||
src: url("../../assets/uvicons.04d281cc.ttf") format("truetype");
|
||||
}
|
||||
.uv-icon[data-v-b7a6dd5d] {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon--left[data-v-b7a6dd5d] {
|
||||
flex-direction: row-reverse;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon--right[data-v-b7a6dd5d] {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon--top[data-v-b7a6dd5d] {
|
||||
flex-direction: column-reverse;
|
||||
justify-content: center;
|
||||
}
|
||||
.uv-icon--bottom[data-v-b7a6dd5d] {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.uv-icon__icon[data-v-b7a6dd5d] {
|
||||
font-family: uvicon-iconfont;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.uv-icon__icon--primary[data-v-b7a6dd5d] {
|
||||
color: #3c9cff;
|
||||
}
|
||||
.uv-icon__icon--success[data-v-b7a6dd5d] {
|
||||
color: #5ac725;
|
||||
}
|
||||
.uv-icon__icon--error[data-v-b7a6dd5d] {
|
||||
color: #f56c6c;
|
||||
}
|
||||
.uv-icon__icon--warning[data-v-b7a6dd5d] {
|
||||
color: #f9ae3d;
|
||||
}
|
||||
.uv-icon__icon--info[data-v-b7a6dd5d] {
|
||||
color: #909399;
|
||||
}
|
||||
.uv-icon__img[data-v-b7a6dd5d] {
|
||||
height: auto;
|
||||
will-change: transform;
|
||||
}
|
||||
.uv-icon__label[data-v-b7a6dd5d] {
|
||||
line-height: 1;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.uv-border[data-v-651602aa] {
|
||||
border-width: 0.5px !important;
|
||||
border-color: #dadbde !important;
|
||||
border-style: solid;
|
||||
}
|
||||
.uv-border-bottom[data-v-651602aa] {
|
||||
border-bottom-width: 0.5px !important;
|
||||
border-color: #dadbde !important;
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
uni-view[data-v-651602aa], uni-scroll-view[data-v-651602aa], uni-swiper-item[data-v-651602aa] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.uv-input[data-v-651602aa] {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex: 1;
|
||||
}
|
||||
.uv-input--radius[data-v-651602aa], .uv-input--square[data-v-651602aa] {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.uv-input--no-radius[data-v-651602aa] {
|
||||
border-radius: 0;
|
||||
}
|
||||
.uv-input--circle[data-v-651602aa] {
|
||||
border-radius: 100px;
|
||||
}
|
||||
.uv-input__content[data-v-651602aa] {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.uv-input__content__field-wrapper[data-v-651602aa] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
.uv-input__content__field-wrapper__field[data-v-651602aa] {
|
||||
line-height: 26px;
|
||||
text-align: left;
|
||||
color: #303133;
|
||||
height: 24px;
|
||||
font-size: 15px;
|
||||
flex: 1;
|
||||
}
|
||||
.uv-input__content__clear[data-v-651602aa] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100px;
|
||||
background-color: #c6c7cb;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: scale(0.82);
|
||||
margin-left: 15px;
|
||||
}
|
||||
.uv-input__content__subfix-icon[data-v-651602aa] {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.uv-input__content__prefix-icon[data-v-651602aa] {
|
||||
margin-right: 4px;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.search_content[data-v-c10c040c] {
|
||||
background-color: #fff;
|
||||
min-height: 12.5rem;
|
||||
margin-top: -0.1875rem;
|
||||
border-radius: 0.375rem 0.375rem 0 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.search_content .bg_img[data-v-c10c040c] {
|
||||
width: 84%;
|
||||
margin: 0.625rem auto;
|
||||
}
|
||||
.fixed_search_div[data-v-c10c040c] {
|
||||
padding: calc(0.3125rem + var(--status-bar-height)) 0.46875rem 0.75rem 0.9375rem;
|
||||
background: linear-gradient(90deg, #F1F7FF 0%, #D8EDFF 50%, #C3E6FF 100%);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.fixed_search_div .back_div[data-v-c10c040c] {
|
||||
margin-right: 0.3125rem;
|
||||
}
|
||||
.fixed_search_div .back_div .back-icon[data-v-c10c040c] {
|
||||
position: relative;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
.fixed_search_div .back_div .back-icon[data-v-c10c040c]::before,
|
||||
.fixed_search_div .back_div .back-icon[data-v-c10c040c]::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
.fixed_search_div .back_div .back-icon[data-v-c10c040c]::after {
|
||||
top: 25%;
|
||||
left: 25%;
|
||||
width: 40%;
|
||||
height: 40%;
|
||||
border-top: 0.125rem solid #2B2C2E;
|
||||
border-left: 0.125rem solid #2B2C2E;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
.main_div[data-v-c10c040c] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 885 B |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1002 B |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 86 KiB |