feat: 添加静态资源文件及基础组件

- 新增大量图片资源,包括图标、背景图、海报等,用于页面展示
- 添加字体文件及样式配置,支持自定义字体
- 引入 uni-ui 组件库,包括图标、弹窗、日期选择器等常用组件
- 添加网络状态监听、加密工具等基础工具函数
- 配置 Vuex 状态管理,包括购物车数量、热门搜索词等
- 增加页面组件,如用户协议、分销信息、提现状态等
- 配置项目构建和忽略文件,优化开发体验
This commit is contained in:
2026-02-26 17:59:51 +08:00
commit a5c5d753b6
720 changed files with 178840 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
<!-- 数字滚动效果 -->
<template>
<view class="pengke-scroll" :style="[penkeStyle]">
<view v-for="(item, index) in digitalData" :key="index"
:class="{'digital': true, 'digital-str': isNaN(item.num)}">
<!-- 符号显示 -->
<view v-if="isNaN(item.num)">{{item.num}}</view>
<!-- 滚动的列表 -->
<view v-else class="scroll-num">
<view class="tra-num" :style="item.style">0123456789</view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
// 数值
value: {
type: [Number, String],
default: '9.99'
},
// 字体大小
size: {
type: [Number, String],
default: '14'
},
// 字体颜色
color: {
type: String,
default: '#333'
},
// 文字居中
textAlign: {
type: String,
default: 'center' // left, center, right
},
//动画时间
time: {
type: Number,
default: 2
}
},
data() {
return {
digitalData: []
}
},
computed:{
penkeStyle(){
return {
'font-size': this.size + 'px',
'color': this.color,
}
}
},
watch: {
value: {
handler(val) {
const digitalArr = String(val).split('')
const dataList = []
digitalArr.forEach((num) => {
const obj = {
num: isNaN(num) ? num : Number(num),
style: ''
}
dataList.push(obj)
})
this.digitalData = dataList
this.setScrollNum()
},
immediate: true
}
},
methods: {
// 滚动数字
setScrollNum() {
const defData = JSON.parse(JSON.stringify(this.digitalData))
defData.forEach((item, index) => {
// 设置移动距离
item.style = `transform: translateY(-${item.num}em);transition:all ${this.time}s;`
})
setTimeout(() => {
this.digitalData = defData
}, 10)
}
}
}
</script>
<style lang="scss" scoped>
.pengke-scroll {
font-size: 28rpx;
font-weight: bold;
display: flex;
align-items: center;
.digital {
display: flex;
justify-content: center;
width: 0.5em; // 文本间隔
height: 1em;
line-height: 0.7em;
overflow: hidden;
.scroll-num {
// 文本竖直排列
writing-mode: vertical-rl;
text-orientation: upright;
.tra-num {
transition: all 1s;
}
}
}
.digital-str {
width: auto;
line-height: 1em;
}
}
</style>