Compare commits

..

No commits in common. '前端' and 'master' have entirely different histories.

@ -0,0 +1,16 @@
{ // launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version": "0.0",
"configurations": [{
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

@ -0,0 +1,17 @@
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style>
/*每个页面公共css */
</style>

@ -0,0 +1,167 @@
# 教师:随机点名且提问,学生:签到且回答
## 调用后端接口的代码
<template>
<view>
<view v-if="role === 'teacher'">
<button @click="randomCall" class="button">随机点名</button>
<button @click="askQuestion" class="button">发布问题: 1+1=</button>
</view>
<view class="list">
<view class="list-header">
<text>签到学生名单</text>
<text>状态</text>
</view>
<view v-for="(student, index) in selectedStudents" :key="index" class="list-item">
<text>{{ student.name }}</text>
<text>{{ student.signed ? '✔' : '' }}</text>
</view>
</view>
<view v-if="role === 'student'" class="button-container">
<button :disabled="!canSignIn" @click="signIn" class="button">签到</button>
<button @click="answerQuestion" class="button">回答问题: 1+1=</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
role: '', // 用户角色teacher 或 student从后端获取
currentStudent: 'jywsd', // 当前学生姓名
students: [
{ name: 'jywsd', signed: false },
{ name: 'sserjs', signed: false },
{ name: 'shsjsh', signed: false },
{ name: 'wwkks', signed: false }
],
selectedStudents: []
};
},
computed: {
canSignIn() {
// 判断当前学生是否在被点名的名单中
return this.selectedStudents.some(s => s.name === this.currentStudent);
}
},
methods: {
fetchUserRole() {
// 假设从后端获取用户信息
uni.request({
url: 'http://10.133.28.65:3000/api/students', // 替换为实际的后端接口
method: 'GET',
success: (res) => {
this.role = res.data.role; // 获取用户角色
}
});
},
randomCall() {
// 随机选择学生进行点名
let numberOfStudents = Math.floor(Math.random() * this.students.length) + 1;
this.selectedStudents = [...this.students]
.sort(() => 0.5 - Math.random())
.slice(0, numberOfStudents)
.map(student => ({ ...student, signed: false }));
},
signIn() {
// 学生签到逻辑
this.selectedStudents = this.selectedStudents.map(student => {
if (student.name === this.currentStudent) {
return { ...student, signed: true };
}
return student;
});
uni.showToast({
title: '签到完成',
icon: 'success'
});
},
askQuestion() {
// 教师发布问题
uni.showToast({
title: '问题已发布: 1+1=',
icon: 'none'
});
},
answerQuestion() {
// 学生回答问题
let answer = prompt("请输入你的答案: 1+1=");
if (answer === "2") {
uni.showToast({
title: '回答正确',
icon: 'success'
});
} else {
uni.showToast({
title: '回答错误',
icon: 'none'
});
}
}
},
created() {
this.fetchUserRole(); // 页面加载时获取用户角色
}
}
</script>
<style>
.button {
display: block;
width: 80%;
margin: 10px auto;
padding: 10px;
background-color: #1E90FF;
color: white;
text-align: center;
border-radius: 5px;
}
.button:disabled {
background-color: grey;
}
.list {
margin: 20px;
background-color: #f0f0f0;
padding: 10px;
}
.list-header, .list-item {
display: flex;
justify-content: space-between;
padding: 5px 0;
}
.button-container {
display: flex;
justify-content: center;
}
</style>
# rank调用
<script setup>
import { ref, onMounted } from 'vue';
const rankData = ref([]); // 定义 rankData 为响应式数据
const getStudents = async () => {
let res = await uni.request({
url: "http://10.133.60.255:3000/api/students",
});
if (res && res.data) {
rankData.value = res.data; // 假设返回的数据格式正确并赋值给 rankData
}
};
onMounted(() => {
getStudents(); // 组件挂载时调用获取学生数据的函数
});
</script>

@ -1,2 +0,0 @@
# llll

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>

@ -0,0 +1,22 @@
import App from './App'
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif

@ -0,0 +1,82 @@
{
"name" : "randomcall",
"appid" : "__UNI__A58238D",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* */
"modules" : {},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {
"dSYMs" : false
},
/* SDK */
"sdkConfigs" : {
"ad" : {}
},
"icons" : {
"android" : {
"xxhdpi" : "static/logo.png"
}
}
}
},
/* */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wx0874fe247e4282a3",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"permission" : {}
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3"
}

@ -0,0 +1,123 @@
{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "小课堂"
}
},
{
"path": "pages/shop/shop",
"style": {
"navigationBarTitleText": "商城"
}
},
{
"path": "pages/information/information",
"style": {
"navigationBarTitleText": "个人信息"
}
},
{
"path" : "pages/rank/rank",
"style" :
{
"navigationBarTitleText" : "排行榜"
}
},
{
"path" : "pages/rank/mine rank/mine rank",
"style" :
{
"navigationBarTitleText" : "我的排名"
}
},
{
"path" : "pages/index/question/question",
"style" :
{
"navigationBarTitleText" : "学生签到"
}
},
{
"path" : "pages/index/attendance/attendance",
"style" :
{
"navigationBarTitleText" : "随机点名"
}
},
{
"path" : "pages/login/zhuce/shenfen",
"style" :
{
"navigationBarTitleText" : "注册"
}
},
{
"path" : "pages/login/zhuce/register/register",
"style" :
{
"navigationBarTitleText" : "注册"
}
},
{
"path" : "pages/login/zhuce/register/teacher",
"style" :
{
"navigationBarTitleText" : "注册"
}
},
{
"path" : "pages/login/stulogin",
"style" :
{
"navigationBarTitleText" : "登录"
}
},
{
"path" : "pages/login/login",
"style" :
{
"navigationBarTitleText" : "登录"
}
}
],
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "static/home2.png",
"selectedIconPath": "static/home1.png"
},
{
"pagePath": "pages/shop/shop",
"text": "商城",
"iconPath": "static/shop2.png",
"selectedIconPath":"static/shop1.png"
},
{
"pagePath": "pages/rank/rank",
"text": "排行榜",
"iconPath":"static/rank2.png",
"selectedIconPath": "static/rank1.png"
},
{
"pagePath": "pages/information/information",
"text": "我的",
"iconPath": "static/my2.png",
"selectedIconPath": "static/my1.png"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "小课堂",
"navigationBarBackgroundColor": "#f8f8f8",
"backgroundColor": "#f8f8f8"
}
}

@ -38,56 +38,56 @@
</script>
<style>
.begin{
font-size: 38rpx;
font-weight: bold;
margin-top: 10px;
margin-bottom: 10px;
margin-left: 8px;
}
.page-body {
display: flex;
justify-content: center;
}
.btn-area {
width: 90%;
height: 320rpx;
}
.btn-with-icon {
height: 95px;
padding-left: 10rpx;
border-radius: 5px;
display: flex;
align-items: center; /* 使内容在垂直方向上居中 */
justify-content: space-between; /* 图标与文本分开并推到两端 */
margin-bottom: 18px; /* 在每个按钮之间添加间隔 */
}
.btn-content {
display: flex;
flex-direction: column; /* 垂直排列 */
align-items: flex-start; /* 靠左对齐 */
}
.btn-icon {
width: 50rpx;
height: 50rpx;
margin-top: 20rpx;
margin-bottom: 5rpx; /* 图标和上课次数之间的间距 */
}
.shangke {
font-size: 12px;
margin-top: auto; /* 将上课次数推到底部 */
}
.btn-text {
text-align: left; /* 文字水平靠左 */
font-size: 40rpx;
margin-left: 60rpx; /* 根据需要调整左边距,以使其与图标齐平 */
margin-top: 0; /* 可根据需要调整上边距 */
}
.forward-icon {
width: 32rpx;
height: 32rpx;
margin-left: auto; /* 推到右侧 */
}
.begin{
font-size: 38rpx;
font-weight: bold;
margin-top: 10px;
margin-bottom: 10px;
margin-left: 8px;
}
.page-body {
display: flex;
justify-content: center;
}
.btn-area {
width: 90%;
height: 320rpx;
}
.btn-with-icon {
height: 95px;
padding-left: 10rpx;
border-radius: 5px;
display: flex;
align-items: center; /* 使内容在垂直方向上居中 */
justify-content: space-between; /* 图标与文本分开并推到两端 */
margin-bottom: 18px; /* 在每个按钮之间添加间隔 */
}
.btn-content {
display: flex;
flex-direction: column; /* 垂直排列 */
align-items: flex-start; /* 靠左对齐 */
}
.btn-icon {
width: 50rpx;
height: 50rpx;
margin-top: 20rpx;
margin-bottom: 5rpx; /* 图标和上课次数之间的间距 */
}
.shangke {
font-size: 12px;
margin-top: auto; /* 将上课次数推到底部 */
}
.btn-text {
text-align: left; /* 文字水平靠左 */
font-size: 40rpx;
margin-left: 60rpx; /* 根据需要调整左边距,以使其与图标齐平 */
margin-top: 0; /* 可根据需要调整上边距 */
}
.forward-icon {
width: 32rpx;
height: 32rpx;
margin-left: auto; /* 推到右侧 */
}
</style>

@ -1,11 +1,11 @@
<template>
<view class="header">
<navigator url="/pages/login/login">
<image src="../../static/exit.png" class="exit" style="height: 32px;width: 32px;"></image>
</navigator>
</view>
<template>
<view class="header">
<navigator url="/pages/login/login">
<image src="../../static/exit.png" class="exit" style="height: 32px;width: 32px;"></image>
</navigator>
</view>
<view class="profile-container">
<!-- Static Avatar -->
@ -13,8 +13,8 @@
<view class="avatar-display">
<image src='../../static/ava.png' mode="aspectFit" class="avatar-image" />
</view>
</navigator>
</navigator>
<!-- Editable Personal Information -->
<view class="form">
<view class="input-group">
@ -66,17 +66,17 @@ export default {
};
</script>
<style scoped>
.header{
display: flex;
justify-content: right;
margin: 10px 10px;
}
.exit{
font-weight: bold;
cursor: pointer;
}
<style scoped>
.header{
display: flex;
justify-content: right;
margin: 10px 10px;
}
.exit{
font-weight: bold;
cursor: pointer;
}
.profile-container {
padding: 20px;

@ -55,16 +55,16 @@ const login = async () => {
},
});
console.log("响应数据:", res.data); //
console.log("响应数据:", res.data); //
console.log("登录信息:",form.value);
if (res && res.data) {
loginData.value = res.data; //
if(res.data.message === "登录成功"){
uni.switchTab({
url:"/pages/index/index"/* 跳转到导航栏页面 */
})
console.log("登录成功!");
loginData.value = res.data; //
if(res.data.message === "登录成功"){
uni.switchTab({
url:"/pages/index/index"/* 跳转到导航栏页面 */
})
console.log("登录成功!");
}
}
} catch (error) {
@ -162,7 +162,7 @@ const login = async () => {
margin-top: 20px;
}
</style>
</style>

@ -58,12 +58,12 @@ const login = async () => {
console.log("响应数据:", res.data); //
if (res && res.data) {
loginData.value = res.data; //
if(res.data.message === "登录成功"){
console.log("登录成功!");
uni.switchTab({
url:"/pages/index/index"
})
loginData.value = res.data; //
if(res.data.message === "登录成功"){
console.log("登录成功!");
uni.switchTab({
url:"/pages/index/index"
})
}
}
} catch (error) {

@ -5,10 +5,10 @@
<view class="input-group">
<text class="icon">👤</text>
<input class="input" v-model="form.name" placeholder="请输入账号" />
</view>
<view class="input-group">
<text class="icon"></text>
<input class="input" v-model="form.studentId" placeholder="请输入学号" />
</view>
<view class="input-group">
<text class="icon"></text>
<input class="input" v-model="form.studentId" placeholder="请输入学号" />
</view>
<view class="input-group">
<text class="icon">🔒</text>
@ -31,7 +31,7 @@
import { ref } from 'vue';
const form = ref({
name: '',
name: '',
studentId:'',
password: '',
confirmPassword: ''
@ -60,7 +60,7 @@ const register = async () => {
"Content-Type": "application/json", // JSON
},
data: { //
name: form.value.name,
name: form.value.name,
studentId: form.value.studentId,
password: form.value.password,
confirmPassword: form.value.confirmPassword,
@ -72,9 +72,9 @@ const register = async () => {
if (res && res.data) {
registerData.value = res.data;
if (res.data.message === "注册成功,欢迎同学") {
console.log("注册成功!");
uni.navigateTo({
url: "/pages/login/stulogin",
console.log("注册成功!");
uni.navigateTo({
url: "/pages/login/stulogin",
});
}
}
@ -83,7 +83,7 @@ const register = async () => {
}
}
</script>
<style scoped>
.login-container {

@ -66,9 +66,9 @@ const register = async () => {
if (res && res.data) {
registerData.value = res.data;
if (res.data.message === "注册成功,欢迎老师") {
console.log("注册成功!");
uni.navigateTo({
url: '/pages/login/login',
console.log("注册成功!");
uni.navigateTo({
url: '/pages/login/login',
});
}
}
@ -77,7 +77,7 @@ const register = async () => {
}
}
</script>
<style scoped>
.login-container {

@ -1,22 +1,22 @@
<template>
<view class="container">
<!-- Teacher Section -->
<navigator url="/pages/login/zhuce/register/teacher">
<view class="section">
<image src='../../../static/teacher.png' mode="aspectFit" class="identity-image" />
<button class="identity-button" @click="selectIdentity('teacher')"></button>
</view>
<!-- Teacher Section -->
<navigator url="/pages/login/zhuce/register/teacher">
<view class="section">
<image src='../../../static/teacher.png' mode="aspectFit" class="identity-image" />
<button class="identity-button" @click="selectIdentity('teacher')"></button>
</view>
</navigator>
<view class="divider"></view>
<!-- Student Section -->
<navigator url="/pages/login/zhuce/register/register">
<view class="section">
<image src='../../../static/student.png' mode="aspectFit" class="identity-image" />
<button class="identity-button" @click="selectIdentity('student')"></button>
</view>
<!-- Student Section -->
<navigator url="/pages/login/zhuce/register/register">
<view class="section">
<image src='../../../static/student.png' mode="aspectFit" class="identity-image" />
<button class="identity-button" @click="selectIdentity('student')"></button>
</view>
</navigator>
</view>
@ -37,7 +37,7 @@ export default {
.container {
display: flex;
flex-direction: column;
align-items: center;
align-items: center;
height: 100%;
justify-content: flex-start; /* 更改为向上对齐 */
padding-top: 100px; /*

@ -10,8 +10,8 @@
<text class="count">{{ signInCount }}</text>
</view>
<view class="stat-item">
<text>回答问题次数: </text>
<text class="count">{{Answers}}</text>
<text>回答问题次数: </text>
<text class="count">{{Answers}}</text>
</view>
</view>
</view>
@ -25,10 +25,10 @@
Answers: 0, //
}
},
computed:{
totalPoints(){
return this.signInCount*2+this.Answers*3;
}
computed:{
totalPoints(){
return this.signInCount*2+this.Answers*3;
}
}
}
</script>
@ -59,7 +59,7 @@
align-items: center;
font-size: 38px; /* 积分字体大小 */
font-style: italic;
font-weight: bold; /* 粗体 */
font-weight: bold; /* 粗体 */
padding-right: 12px;
}
@ -68,7 +68,7 @@
padding-top: 8rpx;
}
.stats {
.stats {
margin-top: 20px;
display: flex;
flex-direction: column;
@ -81,13 +81,13 @@
align-items: center;
font-size: 18px; /* 统计项字体大小 */
margin-bottom: 20px; /* 项间距 */
padding: 0 16px; /* 左右内边距 */
padding: 0 16px; /* 左右内边距 */
border-bottom: 1px solid #eee;
}
.count {
font-style: italic;
font-weight: 550;
.count {
font-style: italic;
font-weight: 550;
margin-left: auto;
}
</style>

@ -43,8 +43,8 @@ const getStudents = async () => {
rankData.value = res.data.map(student => ({
name: student.name,
score: student.points
}));
// score
}));
// score
rankData.value.sort((a, b) => b.score - a.score);
}
} catch (error) {
@ -83,7 +83,7 @@ onMounted(() => {
}
.rtop-scole {
text-align: center; /* 中间对齐 */
text-align: center; /* 中间对齐 */
padding-right: 40px;
flex-grow: 1;
}
@ -94,10 +94,10 @@ onMounted(() => {
.rtop-left {
text-align: left; /* 姓名列靠左 */
}
.rtop-scole,.rtop-rank{
text-align: right;
}
.rtop-scole,.rtop-rank{
text-align: right;
}
.rrpage-body {
@ -107,8 +107,8 @@ onMounted(() => {
flex-direction: column;
}
.rank-list {
display: flex;
.rank-list {
display: flex;
flex-direction: column;
overflow-y: auto; /* 允许纵向滚动 */
border: 1px solid #ccc;
@ -139,21 +139,21 @@ onMounted(() => {
overflow: hidden; /* 防止溢出 */
text-overflow: ellipsis; /* 溢出时显示省略号 */
white-space: nowrap; /* 不换行 */
text-align: left; /* 姓名列靠左 */
text-align: left; /* 姓名列靠左 */
flex: 6;
}
.rank-score{
text-align: center; /* 中间对齐 */
padding-left: 110px;
flex: 1;
}
.rank-position{
text-align: center;
padding-left: 55px;
flex:1;
}
.rank-score{
text-align: center; /* 中间对齐 */
padding-left: 110px;
flex: 1;
}
.rank-position{
text-align: center;
padding-left: 55px;
flex:1;
}
.rank-score, .rank-position {
font-size: 36rpx;

@ -0,0 +1,28 @@
{
"appid": "wx0874fe247e4282a3",
"compileType": "miniprogram",
"libVersion": "3.5.8",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"coverView": true,
"es6": true,
"postcss": true,
"minified": true,
"enhance": true,
"showShadowRootInWxmlPanel": true,
"packNpmRelationList": [],
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
}

@ -0,0 +1,7 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "miniapp-demo1",
"setting": {
"compileHotReLoad": true
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -0,0 +1,10 @@
uni.addInterceptor({
returnValue (res) {
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
return res;
}
return new Promise((resolve, reject) => {
res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
});
},
});

@ -0,0 +1,76 @@
/**
* uni-app
*
* uni-app https://ext.dcloud.net.cn使
* 使scss使 import 便App
*
*/
/**
* App使
*
* 使scss scss 使 import
*/
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//
$uni-text-color-inverse:#fff;//
$uni-text-color-grey:#999;//
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16px;
/* 图片尺寸 */
$uni-img-size-sm:20px;
$uni-img-size-base:26px;
$uni-img-size-lg:40px;
/* Border Radius */
$uni-border-radius-sm: 2px;
$uni-border-radius-base: 3px;
$uni-border-radius-lg: 6px;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 5px;
$uni-spacing-row-base: 10px;
$uni-spacing-row-lg: 15px;
/* 垂直间距 */
$uni-spacing-col-sm: 4px;
$uni-spacing-col-base: 8px;
$uni-spacing-col-lg: 12px;
/* 透明度 */
$uni-opacity-disabled: 0.3; //
/* 文章场景相关 */
$uni-color-title: #2C405A; //
$uni-font-size-title:20px;
$uni-color-subtitle: #555555; //
$uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; //
$uni-font-size-paragraph:15px;

Binary file not shown.

@ -0,0 +1 @@
https://app.liuyingyong.cn/build/download/55093ea0-877a-11ef-a4a5-2b5b6ba7f9cb

@ -0,0 +1 @@
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

@ -0,0 +1,3 @@
andrCertfile=D:/miniApp/HBuilderX.4.24.2024072208/HBuilderX/plugins/app-safe-pack/Test.keystore
andrCertAlias=android
andrCertPass=ep/Tdjka4Y7WYqDB6/S7dw==

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>View</title>
<link rel="stylesheet" href="app.css" />
<script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script>
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
</head>
<body>
<div id="app"></div>
<script src="uni-app-view.umd.js"></script>
</body>
</html>

@ -0,0 +1,11 @@
;(function(){
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#f8f8f8","navigationBar":{"backgroundColor":"#f8f8f8","titleText":"小课堂","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"randomcall","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.24","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"tabBar":{"position":"bottom","color":"#999","selectedColor":"#007aff","borderStyle":"black","blurEffect":"none","fontSize":"10px","iconWidth":"24px","spacing":"3px","height":"50px","list":[{"pagePath":"pages/index/index","text":"首页","iconPath":"/static/home2.png","selectedIconPath":"/static/home1.png"},{"pagePath":"pages/shop/shop","text":"商城","iconPath":"/static/shop2.png","selectedIconPath":"/static/shop1.png"},{"pagePath":"pages/rank/rank","text":"排行榜","iconPath":"/static/rank2.png","selectedIconPath":"/static/rank1.png"},{"pagePath":"pages/information/information","text":"我的","iconPath":"/static/my2.png","selectedIconPath":"/static/my1.png"}],"selectedIndex":0,"shown":true},"locales":{},"darkmode":false,"themeConfig":{}};
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":0,"navigationBar":{"titleText":"小课堂","type":"default"},"isNVue":false}},{"path":"pages/shop/shop","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":1,"navigationBar":{"titleText":"商城","type":"default"},"isNVue":false}},{"path":"pages/information/information","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":3,"navigationBar":{"titleText":"个人信息","type":"default"},"isNVue":false}},{"path":"pages/rank/rank","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":2,"navigationBar":{"titleText":"排行榜","type":"default"},"isNVue":false}},{"path":"pages/rank/mine rank/mine rank","meta":{"navigationBar":{"titleText":"我的排名","type":"default"},"isNVue":false}},{"path":"pages/index/question/question","meta":{"navigationBar":{"titleText":"学生签到","type":"default"},"isNVue":false}},{"path":"pages/index/attendance/attendance","meta":{"navigationBar":{"titleText":"随机点名","type":"default"},"isNVue":false}},{"path":"pages/login/zhuce/shenfen","meta":{"navigationBar":{"titleText":"注册","type":"default"},"isNVue":false}},{"path":"pages/login/zhuce/register/register","meta":{"navigationBar":{"titleText":"注册","type":"default"},"isNVue":false}},{"path":"pages/login/zhuce/register/teacher","meta":{"navigationBar":{"titleText":"注册","type":"default"},"isNVue":false}},{"path":"pages/login/stulogin","meta":{"navigationBar":{"titleText":"登录","type":"default"},"isNVue":false}},{"path":"pages/login/login","meta":{"navigationBar":{"titleText":"登录","type":"default"},"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()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}});
})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__A58238D","name":"randomcall","version":{"name":"1.0.0","code":"100"},"description":"","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"xxhdpi":"icon-android-xxhdpi.png"}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"packagename":"uni.UNIA58238D","aliasname":"","password":"","keystore":"html5plus://test","custompermissions":true},"apple":{"dSYMs":false,"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}},"orientation":"portrait-primary"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#f8f8f8"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"4.24","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}},"tabBar":{"position":"bottom","color":"#999","selectedColor":"#007aff","borderStyle":"rgba(0,0,0,0.4)","blurEffect":"none","fontSize":"10px","iconWidth":"24px","spacing":"3px","height":"50px","list":[{"pagePath":"pages/index/index","text":"首页","iconPath":"/static/home2.png","selectedIconPath":"/static/home1.png"},{"pagePath":"pages/shop/shop","text":"商城","iconPath":"/static/shop2.png","selectedIconPath":"/static/shop1.png"},{"pagePath":"pages/rank/rank","text":"排行榜","iconPath":"/static/rank2.png","selectedIconPath":"/static/rank1.png"},{"pagePath":"pages/information/information","text":"我的","iconPath":"/static/my2.png","selectedIconPath":"/static/my1.png"}],"selectedIndex":0,"shown":true,"child":["lauchwebview"],"selected":0},"adid":"127352090210"},"launch_path":"__uniappview.html"}

@ -0,0 +1 @@
.button[data-v-6aae2cc9]{display:block;width:80%;height:60px;margin:10px auto;padding:10px;background-color:#1e90ff;color:#fff;text-align:center;border-radius:5px}.list[data-v-6aae2cc9]{margin:20px;background-color:#f9f9f9;border-bottom:1px solid #ccc;padding:10px}.list-header[data-v-6aae2cc9]{display:flex;justify-content:space-between}.list-left[data-v-6aae2cc9]{flex-grow:2}.list-mid[data-v-6aae2cc9]{text-align:center;flex-grow:1}.list-right[data-v-6aae2cc9]{padding-left:15px;padding-right:8px}.list-item[data-v-6aae2cc9]{display:flex;justify-content:space-between;padding:5px 0}.item-left[data-v-6aae2cc9]{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:6}.item-mid[data-v-6aae2cc9]{text-align:center;padding-left:60px;padding-right:45px;flex:1}.item-right[data-v-6aae2cc9]{text-align:center;padding-right:10px;flex:1}.button-container[data-v-6aae2cc9]{display:flex;justify-content:center}

@ -0,0 +1 @@
.begin{font-size:1.1875rem;font-weight:700;margin-top:10px;margin-bottom:10px;margin-left:8px}.page-body{display:flex;justify-content:center}.btn-area{width:90%;height:10rem}.btn-with-icon{height:95px;padding-left:.3125rem;border-radius:5px;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.btn-content{display:flex;flex-direction:column;align-items:flex-start}.btn-icon{width:1.5625rem;height:1.5625rem;margin-top:.625rem;margin-bottom:.15625rem}.shangke{font-size:12px;margin-top:auto}.btn-text{text-align:left;font-size:1.25rem;margin-left:1.875rem;margin-top:0}.forward-icon{width:1rem;height:1rem;margin-left:auto}

@ -0,0 +1 @@
.button[data-v-445667fd]{display:block;width:320px;height:60px;margin:25px auto 10px;padding:10px;background-color:#1e90ff;color:#fff;text-align:center;border-radius:5px}.answer-input[data-v-445667fd]{width:90%;padding:10px;margin:10px auto;border:1px solid #ccc;border-radius:5px}.question-container[data-v-445667fd]{display:flex;flex-direction:column;align-items:center;margin:20px;padding:10px}.txzz[data-v-445667fd]{display:flex;flex-direction:column;align-items:center}.atten[data-v-445667fd]{display:flex;align-content:center;bottom:40px}

@ -0,0 +1 @@
.header[data-v-d68e552e]{display:flex;justify-content:right;margin:10px}.exit[data-v-d68e552e]{font-weight:700;cursor:pointer}.profile-container[data-v-d68e552e]{padding:20px}.avatar-display[data-v-d68e552e]{margin-top:20px;display:flex;justify-content:center;margin-bottom:20px}.avatar-image[data-v-d68e552e]{width:100px;height:100px;border-radius:50%}.form[data-v-d68e552e]{margin-top:40px;display:flex;flex-direction:column;justify-content:center;align-items:center}.input-group[data-v-d68e552e]{margin-bottom:15px;width:90%}.label[data-v-d68e552e]{font-weight:700}.info-input[data-v-d68e552e]{margin:5px auto;border:1px solid #ccc;padding:5px;border-radius:4px}.info[data-v-d68e552e]{margin-left:5px}.save-button[data-v-d68e552e]{margin-top:30px;background-color:#1e90ff;width:320px;height:60px;color:#fff;padding:10px;border:none;border-radius:5px;text-align:center}

@ -0,0 +1 @@
.login-container[data-v-4958dc7a]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;height:760px}.title[data-v-4958dc7a]{font-size:30px;font-weight:700}.subtitle[data-v-4958dc7a]{font-size:16px;margin-top:10px}.form[data-v-4958dc7a]{width:100%;max-width:300px;margin-bottom:20px;margin-top:140px}.input-group[data-v-4958dc7a]{border:1px solid #ccc;display:flex;align-items:center;height:36px;margin-bottom:15px;background-color:#fff;border-radius:25px;padding:10px}.icon[data-v-4958dc7a]{margin-right:10px;font-size:18px}.input[data-v-4958dc7a]{flex:1;border:none;outline:none}.login-button[data-v-4958dc7a]{display:flex;align-items:center;justify-content:center;width:100%;max-width:300px;padding:10px;height:48px;background-color:#4caf50;color:#fff;border:none;border-radius:25px;text-align:center;margin-bottom:10px}.register-button[data-v-4958dc7a]{display:flex;align-items:center;justify-content:center;height:48px;width:100%;max-width:300px;padding:10px;background-color:transparent;color:#4caf50;border:1px solid #4CAF50;border-radius:25px;text-align:center}.error-message[data-v-4958dc7a]{color:red;margin-top:20px}

@ -0,0 +1 @@
.login-container[data-v-2cad1412]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;height:760px}.title[data-v-2cad1412]{font-size:30px;font-weight:700}.subtitle[data-v-2cad1412]{font-size:16px;margin-top:10px}.form[data-v-2cad1412]{width:100%;max-width:300px;margin-bottom:20px;margin-top:140px}.input-group[data-v-2cad1412]{border:1px solid #ccc;display:flex;align-items:center;height:36px;margin-bottom:15px;background-color:#fff;border-radius:25px;padding:10px}.icon[data-v-2cad1412]{margin-right:10px;font-size:18px}.input[data-v-2cad1412]{flex:1;border:none;outline:none}.login-button[data-v-2cad1412]{display:flex;align-items:center;justify-content:center;width:100%;max-width:300px;padding:10px;height:48px;background-color:#4caf50;color:#fff;border:none;border-radius:25px;text-align:center;margin-bottom:10px}.register-button[data-v-2cad1412]{display:flex;align-items:center;justify-content:center;height:48px;width:100%;max-width:300px;padding:10px;background-color:transparent;color:#4caf50;border:1px solid #4CAF50;border-radius:25px;text-align:center}.error-message[data-v-2cad1412]{color:red;margin-top:20px}

@ -0,0 +1 @@
.login-container[data-v-ad0bcc4e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;height:760px}.title[data-v-ad0bcc4e]{font-size:30px;font-weight:700}.subtitle[data-v-ad0bcc4e]{font-size:16px;margin-top:10px}.form[data-v-ad0bcc4e]{width:100%;max-width:300px;margin-bottom:20px;margin-top:140px}.input-group[data-v-ad0bcc4e]{border:1px solid #ccc;display:flex;align-items:center;height:36px;margin-bottom:15px;background-color:#fff;border-radius:25px;padding:10px}.icon[data-v-ad0bcc4e]{margin-right:10px;font-size:18px}.input[data-v-ad0bcc4e]{flex:1;border:none;outline:none}.login-button[data-v-ad0bcc4e]{display:flex;align-items:center;justify-content:center;width:100%;max-width:300px;padding:10px;height:48px;background-color:#4caf50;color:#fff;border:none;border-radius:25px;text-align:center;margin-bottom:10px}.register-button[data-v-ad0bcc4e]{display:flex;align-items:center;justify-content:center;height:48px;width:100%;max-width:300px;padding:10px;background-color:transparent;color:#4caf50;border:1px solid #4CAF50;border-radius:25px;text-align:center}.error-message[data-v-ad0bcc4e]{color:red;margin-top:20px}

@ -0,0 +1 @@
.login-container[data-v-76bca410]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;height:760px}.title[data-v-76bca410]{font-size:30px;font-weight:700}.subtitle[data-v-76bca410]{font-size:16px;margin-top:10px}.form[data-v-76bca410]{width:100%;max-width:300px;margin-bottom:20px;margin-top:140px}.input-group[data-v-76bca410]{border:1px solid #ccc;display:flex;align-items:center;height:36px;margin-bottom:15px;background-color:#fff;border-radius:25px;padding:10px}.icon[data-v-76bca410]{margin-right:10px;font-size:18px}.input[data-v-76bca410]{flex:1;border:none;outline:none}.login-button[data-v-76bca410]{display:flex;align-items:center;justify-content:center;width:100%;max-width:300px;padding:10px;height:48px;background-color:#4caf50;color:#fff;border:none;border-radius:25px;text-align:center;margin-bottom:10px}.register-button[data-v-76bca410]{display:flex;align-items:center;justify-content:center;height:48px;width:100%;max-width:300px;padding:10px;background-color:transparent;color:#4caf50;border:1px solid #4CAF50;border-radius:25px;text-align:center}.error-message[data-v-76bca410]{color:red;margin-top:20px}

@ -0,0 +1 @@
.container{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-start;padding-top:100px}.section{display:flex;flex-direction:column;align-items:center;margin:20px 0}.identity-image{width:120px;height:120px;margin-bottom:20px}.identity-button{width:150px;padding:5px;background-color:#4caf50;color:#fff;border:none;border-radius:25px;text-align:center}.divider{width:80%;height:1px;background-color:#ccc;margin:20px 0}

@ -0,0 +1 @@
.container{display:flex;flex-direction:column;align-items:center;padding:20px}.circle{width:160px;height:160px;border-radius:50%;background-color:#1e90ff;display:flex;flex-direction:column;justify-content:center;align-items:center;margin-bottom:1.25rem}.total-points{display:flex;justify-content:center;align-items:center;font-size:38px;font-style:italic;font-weight:700;padding-right:12px}.points-label{font-size:18px;padding-top:.25rem}.stats{margin-top:20px;display:flex;flex-direction:column;width:100%}.stat-item{display:flex;justify-content:space-between;align-items:center;font-size:18px;margin-bottom:20px;padding:0 16px;border-bottom:1px solid #eee}.count{font-style:italic;font-weight:550;margin-left:auto}

@ -0,0 +1 @@
.rrpage[data-v-49fd074f]{display:flex;flex-direction:column}.rtop-nav[data-v-49fd074f]{display:flex;flex-direction:row;position:fixed;top:0;width:100%;height:2.5rem;background-color:#f9f9f9;border-bottom:1px solid #ccc;font-size:1.125rem;font-weight:700;justify-content:space-between}.rtop-left[data-v-49fd074f]{padding-left:1.40625rem;flex-grow:1}.rtop-scole[data-v-49fd074f]{text-align:center;padding-right:40px;flex-grow:1}.rtop-rank[data-v-49fd074f]{padding-right:20px}.rtop-left[data-v-49fd074f]{text-align:left}.rtop-scole[data-v-49fd074f],.rtop-rank[data-v-49fd074f]{text-align:right}.rrpage-body[data-v-49fd074f]{width:100%;margin-top:2.1875rem;margin-bottom:.9375rem;flex-direction:column}.rank-list[data-v-49fd074f]{display:flex;flex-direction:column;overflow-y:auto;border:1px solid #ccc;border-radius:5px;padding:10px;background-color:#fff}.rank-item[data-v-49fd074f]{display:flex;flex-direction:row;padding:10px;border-bottom:1px solid #eee;justify-content:space-between}.rank-item[data-v-49fd074f]:last-child{border-bottom:none}.rank-info[data-v-49fd074f]{display:flex;align-items:center}.rank-name[data-v-49fd074f]{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:6}.rank-score[data-v-49fd074f]{text-align:center;padding-left:110px;flex:1}.rank-position[data-v-49fd074f]{text-align:center;padding-left:55px;flex:1}.rank-score[data-v-49fd074f],.rank-position[data-v-49fd074f]{font-size:1.125rem}.rbtn-area[data-v-49fd074f]{position:fixed;bottom:0;left:0;width:100%;height:36px;background-color:#1e90ff;text-align:center;border-top:1px solid #ccc;padding:10px 0;font-size:1.1875rem}.navigator[data-v-49fd074f]{display:inline-block}

@ -0,0 +1 @@
.product-list[data-v-60c61bc9]{max-width:600px;margin:auto;padding:20px;background:#fff;border-radius:5px}.product-item[data-v-60c61bc9]{margin-bottom:15px;padding:10px;border:1px solid #ddd;border-radius:5px}.shop-pri[data-v-60c61bc9]{display:flex;flex-direction:row;justify-content:center;align-items:center;margin-top:5px}.message[data-v-60c61bc9]{margin-top:10px;color:green;font-weight:700}.shop-btn[data-v-60c61bc9]{margin-top:.625rem}

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,11 @@
var __getOwnPropNames = Object.getOwnPropertyNames;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var require_app_css = __commonJS({
"app.css.js"(exports) {
const _style_0 = {};
exports.styles = [_style_0];
}
});
export default require_app_css();

@ -0,0 +1,2 @@
Promise.resolve("./app.css.js").then(() => {
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save