commit
14a88f3944
1260 changed files with 475305 additions and 0 deletions
@ -0,0 +1,8 @@ |
|||
/dist/ |
|||
/node_modules/ |
|||
/.idea/artisan.iml |
|||
/.idea/misc.xml |
|||
/.idea/modules.xml |
|||
/.idea/inspectionProfiles/Project_Default.xml |
|||
/.idea/.gitignore |
|||
/.idea/vcs.xml |
@ -0,0 +1,20 @@ |
|||
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ |
|||
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 |
|||
"version": "0.0", |
|||
"configurations": [{ |
|||
"app-plus" : |
|||
{ |
|||
"launchtype" : "local" |
|||
}, |
|||
"default" : |
|||
{ |
|||
"launchtype" : "local" |
|||
}, |
|||
"mp-weixin" : |
|||
{ |
|||
"launchtype" : "local" |
|||
}, |
|||
"type" : "uniCloud" |
|||
} |
|||
] |
|||
} |
Binary file not shown.
@ -0,0 +1,20 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<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="/src/main.ts"></script> |
|||
</body> |
|||
</html> |
Binary file not shown.
File diff suppressed because it is too large
@ -0,0 +1,88 @@ |
|||
{ |
|||
"name": "uni-preset-vue", |
|||
"version": "0.0.0", |
|||
"scripts": { |
|||
"dev:app": "uni -p app", |
|||
"dev:app-android": "uni -p app-android", |
|||
"dev:app-ios": "uni -p app-ios", |
|||
"dev:custom": "uni -p", |
|||
"dev:h5": "uni", |
|||
"dev:h5:ssr": "uni --ssr", |
|||
"dev:mp-alipay": "uni -p mp-alipay", |
|||
"dev:mp-baidu": "uni -p mp-baidu", |
|||
"dev:mp-jd": "uni -p mp-jd", |
|||
"dev:mp-kuaishou": "uni -p mp-kuaishou", |
|||
"dev:mp-lark": "uni -p mp-lark", |
|||
"dev:mp-qq": "uni -p mp-qq", |
|||
"dev:mp-toutiao": "uni -p mp-toutiao", |
|||
"dev:mp-weixin": "uni -p mp-weixin", |
|||
"dev:mp-xhs": "uni -p mp-xhs", |
|||
"dev:quickapp-webview": "uni -p quickapp-webview", |
|||
"dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei", |
|||
"dev:quickapp-webview-union": "uni -p quickapp-webview-union", |
|||
"build:app": "uni build -p app", |
|||
"build:app-android": "uni build -p app-android", |
|||
"build:app-ios": "uni build -p app-ios", |
|||
"build:custom": "uni build -p", |
|||
"build:h5": "uni build", |
|||
"build:h5:ssr": "uni build --ssr", |
|||
"build:mp-alipay": "uni build -p mp-alipay", |
|||
"build:mp-baidu": "uni build -p mp-baidu", |
|||
"build:mp-jd": "uni build -p mp-jd", |
|||
"build:mp-kuaishou": "uni build -p mp-kuaishou", |
|||
"build:mp-lark": "uni build -p mp-lark", |
|||
"build:mp-qq": "uni build -p mp-qq", |
|||
"build:mp-toutiao": "uni build -p mp-toutiao", |
|||
"build:mp-weixin": "uni build -p mp-weixin", |
|||
"build:mp-xhs": "uni build -p mp-xhs", |
|||
"build:quickapp-webview": "uni build -p quickapp-webview", |
|||
"build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei", |
|||
"build:quickapp-webview-union": "uni build -p quickapp-webview-union", |
|||
"type-check": "vue-tsc --noEmit" |
|||
}, |
|||
"dependencies": { |
|||
"@dcloudio/uni-app": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-app-harmony": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-app-plus": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-components": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-h5": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-alipay": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-baidu": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-jd": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-kuaishou": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-lark": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-qq": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-toutiao": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-weixin": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-mp-xhs": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-quickapp-webview": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-ui": "^1.5.6", |
|||
"@hyoga/uni-socket.io": "^3.0.4", |
|||
"@rollup/rollup-darwin-arm64": "^4.19.0", |
|||
"@types/socket.io-client": "^3.0.0", |
|||
"crypto-js": "^4.2.0", |
|||
"dayjs": "^1.11.11", |
|||
"decimal.js": "^10.4.3", |
|||
"js-md5": "^0.8.3", |
|||
"luch-request": "^3.1.1", |
|||
"pinia": "2.0.36", |
|||
"pinia-plugin-persistedstate": "2.3.0", |
|||
"socket.io-client": "^4.7.5", |
|||
"vue": "3.4.21", |
|||
"vue-i18n": "9.13.1" |
|||
}, |
|||
"devDependencies": { |
|||
"@dcloudio/types": "3.4.12", |
|||
"@dcloudio/uni-automator": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-cli-shared": "3.0.0-4020420240722002", |
|||
"@dcloudio/uni-stacktracey": "3.0.0-4020420240722002", |
|||
"@dcloudio/vite-plugin-uni": "3.0.0-4020420240722002", |
|||
"@vue/runtime-core": "3.4.33", |
|||
"@vue/tsconfig": "^0.1.3", |
|||
"sass": "^1.77.8", |
|||
"sass-loader": "^10.5.2", |
|||
"typescript": "^4.9.5", |
|||
"vite": "5.2.8", |
|||
"vue-tsc": "^1.8.27" |
|||
} |
|||
} |
@ -0,0 +1,10 @@ |
|||
/// <reference types='@dcloudio/types' />
|
|||
import 'vue' |
|||
|
|||
declare module '@vue/runtime-core' { |
|||
type Hooks = App.AppInstance & Page.PageInstance; |
|||
|
|||
interface ComponentCustomOptions extends Hooks { |
|||
|
|||
} |
|||
} |
@ -0,0 +1,16 @@ |
|||
<script setup lang="ts"> |
|||
import {onLaunch, onShow, onHide} from "@dcloudio/uni-app"; |
|||
|
|||
onLaunch(() => { |
|||
console.log("App Launch"); |
|||
}); |
|||
onShow(() => { |
|||
console.log("App Show"); |
|||
}); |
|||
onHide(() => { |
|||
console.log("App Hide"); |
|||
}); |
|||
</script> |
|||
<style lang="scss"> |
|||
@import "@/static/css/common.scss"; |
|||
</style> |
@ -0,0 +1,7 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const pageMatchActivity = data => http.post('/match/match-activity/page-for-front', data) |
|||
|
|||
export const infoMatchActivity = data => http.post('/match/match-activity/info', data) |
|||
|
|||
export const matchActivityJoin = data => http.post('/match/match-activity-people-list/join', data) |
@ -0,0 +1,13 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const userAddressListReq = () => http.post('/shop/user-address/list') |
|||
|
|||
export const userAddressInfoReq = data => http.post('/shop/user-address/info', data) |
|||
|
|||
export const userAddressActionReq = data => http.post('/shop/user-address/action', data) |
|||
|
|||
export const userAddressDelReq = data => http.post('/shop/user-address/del', data) |
|||
|
|||
export const userAddressSetDefaultReq = data => http.post('/shop/user-address/set-default', data) |
|||
|
|||
export const userAddressDefaultReq = data => http.post('/shop/user-address/default', data) |
@ -0,0 +1,29 @@ |
|||
import http from './index.js'; |
|||
|
|||
// 分页查询文章评论
|
|||
export const pageArticleComment = (params) => http.get('/cms/article-comment/page', {params}) |
|||
|
|||
// 查询文章评论
|
|||
export const getArticleComment = (ArticleCommentId) => http.get('/cms/article-comment/' + ArticleCommentId) |
|||
|
|||
// 查询全部评论
|
|||
export const listArticleComment = (params) => http.get('/cms/article-comment', {params}) |
|||
|
|||
// 添加文章评论
|
|||
export const addArticleComment = (data) => http.post('/cms/article-comment', data) |
|||
|
|||
// 删除文章评论
|
|||
export const removeArticleComment = (id) => http.delete('/cms/article-comment/' + id) |
|||
|
|||
|
|||
// 未读评论数
|
|||
export const getArticleCommentUnreadCount = () => http.get('/cms/article-comment/unread') |
|||
|
|||
export default { |
|||
pageArticleComment, |
|||
listArticleComment, |
|||
getArticleComment, |
|||
addArticleComment, |
|||
removeArticleComment, |
|||
getArticleCommentUnreadCount |
|||
} |
@ -0,0 +1,24 @@ |
|||
import http from './index.js'; |
|||
|
|||
// 分页查询文章点赞
|
|||
export const pageArticleLike = (params) => http.get('/cms/article-like/page', {params}) |
|||
|
|||
// 查询文章点赞
|
|||
export const getArticleLike = (ArticleLikeId) => http.get('/cms/article-like/' + ArticleLikeId) |
|||
|
|||
// 查询全部文字
|
|||
export const listArticleLike = (params) => http.get('/cms/article-like', {params}) |
|||
|
|||
// 添加文章点赞
|
|||
export const addArticleLike = (data) => http.post('/cms/article-like', data) |
|||
|
|||
// 删除文章点赞
|
|||
export const removeArticleLike = (id) => http.delete('/cms/article-like/' + id) |
|||
|
|||
export default { |
|||
pageArticleLike, |
|||
listArticleLike, |
|||
getArticleLike, |
|||
addArticleLike, |
|||
removeArticleLike |
|||
} |
@ -0,0 +1,43 @@ |
|||
import http from './index.js'; |
|||
// import http from '@/api/index';
|
|||
|
|||
// 分页查询文章
|
|||
export const pageArticle = (params) => http.get('/cms/article/page', {params}) |
|||
|
|||
// 查询文章
|
|||
export const getArticle = (articleId) => http.get('/cms/article/' + articleId) |
|||
|
|||
// 查询全部文字
|
|||
export const listArticle = (params) => http.get('/cms/article', {params}) |
|||
|
|||
// 添加文章
|
|||
export const addArticle = (data) => http.post('/cms/article', data) |
|||
|
|||
// 添加文章
|
|||
export const updateArticle = (data) => http.put('/cms/article', data) |
|||
|
|||
// 删除文章
|
|||
export const removeArticle = (id) => http.delete('/cms/article/' + id) |
|||
|
|||
// 用户最新文章
|
|||
export const userLatestArticle = (params) => http.get('/cms/article/latest', {params}) |
|||
|
|||
export const articlePageByTopReq = (params) => http.get('/cms/article/page-by-top', {params}) |
|||
|
|||
export const articleListForPolicyReq = (params) => http.get('/cms/article/list-for-policy', {params}) |
|||
|
|||
export const pageMatchArticleReq = (params) => http.post('/match/match-article/page-for-front', params) |
|||
export const matchArticleActionReq = (params) => http.post('/match/match-article/action', params) |
|||
export const matchArticleLikeAction = (params) => http.post('/match/match-article-like/action', params) |
|||
export const matchArticleCommentListReq = (params) => http.post('/match/match-article-comment/list-for-front', params) |
|||
export const matchArticleCommentActionReq = (params) => http.post('/match/match-article-comment/action', params) |
|||
|
|||
export default { |
|||
pageArticle, |
|||
listArticle, |
|||
getArticle, |
|||
addArticle, |
|||
updateArticle, |
|||
removeArticle, |
|||
userLatestArticle, |
|||
} |
@ -0,0 +1,21 @@ |
|||
import http from './index.js'; |
|||
|
|||
// 分页查询商品分类
|
|||
export const pageCategory = (params) => http.get('/cms/article-category/page', {params}) |
|||
|
|||
// 分页查询全部商品分类
|
|||
export const listCategory = (params) => http.get('/cms/article-category', {params}) |
|||
|
|||
// 查询商品分类
|
|||
export const getCategory = (categoryId) => http.get('/cms/article-category/' + categoryId) |
|||
|
|||
// 添加商品分类
|
|||
export const addCategory = (data) => http.post('/cms/article-category', data) |
|||
|
|||
|
|||
export default { |
|||
pageCategory, |
|||
listCategory, |
|||
getCategory, |
|||
addCategory |
|||
} |
@ -0,0 +1,17 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const swiperListReq = data => http.post('/common.system/index-swiper/list', data) |
|||
|
|||
export const sysSettingInfoReq = data => http.post('/system/setting/info', data) |
|||
|
|||
export const dictDataReq = data => http.post('/system/dict-data/data', data) |
|||
|
|||
export const dictDataListReq = data => http.post('/system/dict-data/list', data) |
|||
|
|||
export const albumListByTypeReq = data => http.post('/cms/album/list-by-type', data) |
|||
|
|||
export const areaInfoByNameReq = data => http.post('/common/area/area-info-by-name', data) |
|||
|
|||
export const areaListReq = data => http.post('/common/area/list-by-level', data) |
|||
|
|||
|
@ -0,0 +1,10 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const courseListReq = data => http.get('/exam/course', data) |
|||
export const addUserCoursePlanReq = data => http.post('/train/train-user-course-plan', data) |
|||
export const userCoursePlanListReq = data => http.get('/train/train-user-course-plan', {data}) |
|||
export const userCoursePlanDelReq = id => http.delete(`/train/train-user-course-plan/${id}`) |
|||
|
|||
export const addUserCoursePaperReq = data => http.post('/train/train-user-course-paper', data) |
|||
export const userCoursePaperListReq = data => http.get('/train/train-user-course-paper', {data}) |
|||
export const userCoursePaperDelReq = id => http.delete(`/train/train-user-course-paper/${id}`) |
@ -0,0 +1,16 @@ |
|||
import http from './index.js'; |
|||
import {SERVER_API_URL} from "@/config"; |
|||
|
|||
// 读取字典数据
|
|||
export const getDictionaryOptions = (params) => http.get(`${SERVER_API_URL}/system/dict-data`, {params}) |
|||
|
|||
export const listDictionary = (params) => http.get(`${SERVER_API_URL}/system/dict/tree`, {params}) |
|||
|
|||
export const dictionaryPage = (params) => http.get(`${SERVER_API_URL}/system/dict-data/page`, {params}) |
|||
|
|||
|
|||
export default { |
|||
getDictionaryOptions, |
|||
listDictionary, |
|||
dictionaryPage, |
|||
} |
@ -0,0 +1,58 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const examListInCourseReq = data => http.post('/exam/exam-detail/list-in-course', data) |
|||
|
|||
export const examListInKnowledgeReq = data => http.post('/exam/exam-detail/list-in-knowledge', data) |
|||
|
|||
export const userWrongListReq = data => http.post('/exam/user-wrong-list/list-for-user', data) |
|||
|
|||
export const examDetailRandListReq = data => http.post('/exam/exam-detail/rand-list', data) |
|||
|
|||
export const examDetailRandOneReq = data => http.post('/exam/exam-detail/rand-one', data) |
|||
|
|||
export const examKnowledgeStructureListReq = data => http.post('/exam/knowledge-structure/list-by-course', data) |
|||
export const knowledgeStructureListInTrainReq = data => http.post('/exam/knowledge-structure/list-in-train', data) |
|||
|
|||
export const examCourseInfoReq = data => http.post('/exam/course/info', data) |
|||
|
|||
export const examCourseNextLevelReq = data => http.post('/exam/course/next-level', data) |
|||
|
|||
export const examCourseGroupLevelReq = data => http.post('/exam/course/group-level', data) |
|||
|
|||
export const trainSimExamListReq = data => http.post('/train/train-sim-exam-list/list-for-front', data) |
|||
|
|||
export const paperDetailListReq = data => http.post('/exam/paper-detail/list-for-front', data) |
|||
|
|||
export const examResultActionReq = data => http.post('/exam/result/action', data) |
|||
|
|||
export const examResultUserListReq = data => http.post('/exam/result/user-list', data) |
|||
|
|||
export const paperInfoReq = data => http.post('/exam/paper/info', data) |
|||
|
|||
|
|||
export const TASK_TYPE_LIST = [ |
|||
{value: 'judge', label: '判断题'}, |
|||
{value: 'single', label: '单选题'}, |
|||
{value: 'single_discrete', label: '单选离散题'}, |
|||
{value: 'multi', label: '多选题'}, |
|||
{value: 'multi_discrete', label: '多选离散题'}, |
|||
{value: 'sort', label: '排序题'}, |
|||
{value: 'match', label: '匹配题'}, |
|||
{value: 'simple_fill', label: '简单填空'}, |
|||
{value: 'answer', label: '简答题'}, |
|||
{value: 'fill', label: '填空题'}, |
|||
{value: 'cal', label: '计算题'}, |
|||
{value: 'essay', label: '论述题'}, |
|||
{value: 'explain', label: '名词解释'}, |
|||
{value: 'drafting', label: '制图题'}, |
|||
{value: 'correct', label: '改错题'}, |
|||
{value: 'design', label: '方案设计'}, |
|||
{value: 'action', label: '操作题'}, |
|||
{value: 'sim', label: '模拟题'}, |
|||
{value: 'example', label: '案例题'}, |
|||
{value: 'context', label: '情境题'}, |
|||
{value: 'cal-analysis', label: '计算分析'}, |
|||
{value: 'drag', label: '拖拽题'}, |
|||
] |
|||
|
|||
export const ANSWER_CHAR = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] |
@ -0,0 +1,5 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const examUserWrongActionReq = data => http.post('/exam/user-wrong-list/action', data) |
|||
|
|||
export const examUserWrongListForUserReq = data => http.post('/exam/user-wrong-list/list-for-user', data) |
@ -0,0 +1,7 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const formListInTrainReq = data => http.post('/cms/form/list-in-train', data) |
|||
|
|||
export const formInfoReq = data => http.post('/cms/form/info', data) |
|||
|
|||
export const formActionReq = data => http.post('/cms/form/action', data) |
@ -0,0 +1,6 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const trainGroupAlbumListReq = params => http.get('/train/train-group-album', {params}) |
|||
|
|||
export const trainGroupAlbumActionReq = data => http.post('/train/train-group-album', data) |
|||
|
@ -0,0 +1,5 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const trainGroupKnowledgeListReq = params => http.get('/train/train-group-knowledge', {params}) |
|||
|
|||
export const trainGroupKnowledgeActionReq = data => http.post('/train/train-group-knowledge', data) |
@ -0,0 +1,88 @@ |
|||
import Request from 'luch-request' |
|||
import { tenantId, apiUrl, appSecret } from '@/config' |
|||
import { |
|||
getSign |
|||
} from '@/utils/util' |
|||
import {getUserInfo} from "@/utils/user"; |
|||
import {$toast} from "@/utils"; |
|||
|
|||
const http = new Request(); |
|||
|
|||
|
|||
/** |
|||
* @description 修改全局默认配置 |
|||
* @param {Function} |
|||
*/ |
|||
http.setConfig((config) => { |
|||
/* config 为默认全局配置*/ |
|||
config.baseURL = apiUrl; /* 根域名 */ |
|||
|
|||
return config |
|||
}) |
|||
|
|||
// 拦截器(请求之前拦截)
|
|||
http.interceptors.request.use((config) => { // 可使用async await 做异步操作
|
|||
const token = getUserInfo().token |
|||
config.header = { |
|||
...config.header, |
|||
tenantId |
|||
} |
|||
if(token){ |
|||
config.header.Authorization = token |
|||
} |
|||
if (config.data) { |
|||
config.data.tenantId = tenantId |
|||
} |
|||
// console.log(config)
|
|||
if (!token) { |
|||
// 如果token不存在,需要加签
|
|||
config.params.tenantId = tenantId |
|||
config.params.sign = getSign(config.params,appSecret); |
|||
}else { |
|||
|
|||
} |
|||
/** |
|||
/* 演示 |
|||
if (!token) { // 如果token不存在,return Promise.reject(config) 会取消本次请求
|
|||
return Promise.reject(config) |
|||
} |
|||
**/ |
|||
return config |
|||
}, config => { // 可使用async await 做异步操作
|
|||
return Promise.reject(config) |
|||
}) |
|||
|
|||
// 拦截器(请求之后拦截)
|
|||
http.interceptors.response.use((response) => { |
|||
/* 对响应成功做点什么 可使用async await 做异步操作*/ |
|||
// if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject()
|
|||
// return Promise.reject(response) // return Promise.reject 可使promise状态进入catch
|
|||
// if (response.config.custom.verification) { // 演示自定义参数的作用
|
|||
// return response.data
|
|||
// }
|
|||
|
|||
// token过期
|
|||
if (response.data.code == 401) { |
|||
$toast('请重新登录') |
|||
} |
|||
if (response.data.code == 1) { |
|||
$toast(response.data.message) |
|||
return Promise.reject(response.data) |
|||
} |
|||
return response.data |
|||
}, (response) => { |
|||
/* 对响应错误做点什么 (statusCode !== 200)*/ |
|||
return Promise.reject(response) |
|||
}) |
|||
|
|||
export const post = (url, data) => { |
|||
return new Promise(resolve => { |
|||
console.log(data) |
|||
http.post(url, data).then(res => { |
|||
console.log(res) |
|||
resolve(res) |
|||
}) |
|||
}) |
|||
} |
|||
|
|||
export default http |
@ -0,0 +1,61 @@ |
|||
import http from './index.js'; |
|||
// 获取图形验证码
|
|||
export const getCaptcha = (params) => http.get('/captcha', { |
|||
params |
|||
}) |
|||
|
|||
// 发送短信验证码
|
|||
export const sendSmsCaptcha = (data) => http.post('/sendSmsCaptcha', data) |
|||
|
|||
// 获取微信openId
|
|||
export const getWxOpenId = (data) => http.post('/wx-login/getWxOpenId', data) |
|||
|
|||
// 获取客户端ID用于个推的消息推送
|
|||
export const saveClientId = (data) => http.post('/wx-login/saveClientId',data) |
|||
|
|||
// 支付宝授权码换取userId
|
|||
export const getAuthCode = (data) => http.post('/open/login-alipay/getAuthCode', data) |
|||
|
|||
// 微信手机号码登录
|
|||
export const loginMpWxMobile = (data) => http.post('/wx-login/loginByMpWxPhone', data) |
|||
|
|||
// 获取支付宝手机号码
|
|||
export const getPhoneNumber = (data, config) => http.post('/shop/payment/getPhoneNumber', data, config) |
|||
|
|||
// 支付宝登录
|
|||
export const alipayLogin = (data) => http.post('/login-alipay/login', data) |
|||
|
|||
// 手机短信验证码登录
|
|||
export const loginBySms = (data) => http.post('/loginBySms', data) |
|||
|
|||
// 支付宝用户注册
|
|||
export const register = (data) => http.post('/login-alipay/register', data) |
|||
|
|||
// 手机号码注册
|
|||
export const registerByPhone = (data) => http.post('/registerBySms',data) |
|||
|
|||
export const existence = (params) => http.get('/existence', {params}) |
|||
|
|||
// 游客登录
|
|||
export const loginReq = (data) => http.post('/login', data) |
|||
|
|||
// APP骗审接口
|
|||
export const applyVerifyStatus = () => http.get('/wx-login/applyVerifyStatus') |
|||
|
|||
// 小程序骗审接口
|
|||
export const applyVerifyStatusMp = () => http.get('/wx-login/applyVerifyStatusMp') |
|||
|
|||
export default { |
|||
getWxOpenId, |
|||
getCaptcha, |
|||
sendSmsCaptcha, |
|||
getAuthCode, |
|||
getPhoneNumber, |
|||
alipayLogin, |
|||
loginBySms, |
|||
loginReq, |
|||
existence, |
|||
registerByPhone, |
|||
applyVerifyStatus, |
|||
saveClientId |
|||
} |
@ -0,0 +1,59 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const userHasJoinMatchReq = data => http.post('/match/match-people-list/has-join-match', data) |
|||
|
|||
export const matchTotalPeopleNumReq = data => http.post('/match/match-people-list/total-num', data) |
|||
|
|||
export const matchListReq = data => http.post('/match/match-info/list-for-front', data) |
|||
|
|||
export const matchAllReq = data => http.post('/match/match-info/list-all', data) |
|||
|
|||
export const matchInfoReq = data => http.post('/match/match-info/info', data) |
|||
|
|||
export const matchJoinReq = data => http.post('/match/match-people-list/join', data) |
|||
|
|||
export const matchPathInfoByTrainReq = data => http.post('/match/match-path-rule/info-by-train', data) |
|||
|
|||
export const matchPathInfoReq = data => http.post('/match/match-path-rule/info', data) |
|||
|
|||
export const matchAdventureLogActionReq = data => http.post('/match/match-adventure-log/action', data) |
|||
|
|||
export const matchAdventureLogUserListReq = data => http.post('/match/match-adventure-log/list-for-user', data) |
|||
|
|||
export const matchSingleRuleGetRuleReq = data => http.post('/match/match-single-rule/get-rule', data) |
|||
|
|||
export const matchSingleRuleGetRuleByMatchReq = data => http.post('/match/match-single-rule/get-rule-by-match', data) |
|||
|
|||
export const matchMultiRuleGetRuleReq = data => http.post('/match/match-multi-rule/get-rule', data) |
|||
|
|||
export const matchMultiRuleGetRuleByMatchReq = data => http.post('/match/match-multi-rule/get-rule-by-match', data) |
|||
|
|||
export const matchAnswerLogActionReq = data => http.post('/match/match-answer-log/action', data) |
|||
|
|||
export const matchDailyTrainInfoByMatchReq = data => http.post('/match/match-daily-train/info-by-match', data) |
|||
|
|||
export const matchUserDailyTrainActionReq = data => http.post('/match/match-user-daily-train/action', data) |
|||
|
|||
export const matchUserPointLogCheckReq = data => http.post('/match/match-user-point-log/check', data) |
|||
|
|||
export const matchUserPointLogListReq = data => http.post('/match/match-user-point-log/user-list', data) |
|||
|
|||
export const matchAnswerLogCheckReq = data => http.post('/match/match-answer-log/check', data) |
|||
|
|||
export const matchExamListInfoByMatchReq = data => http.post('/match/match-exam-list/info-by-match', data) |
|||
|
|||
export const matchExamScoreConfigListByMatchReq = data => http.post('/match/match-exam-score-config/list-by-match', data) |
|||
|
|||
export const matchPathRuleCheckpointInfoReq = data => http.post('/match/match-path-checkpoint/info', data) |
|||
|
|||
export const matchPeopleRankReq = data => http.post('/match/match-people-list/rank', data) |
|||
|
|||
export const matchPassedListReq = data => http.post('/match/match-info/list-passed', data) |
|||
|
|||
export const matchNoticeListReq = data => http.post('/match/match-notice/list-for-front', data) |
|||
|
|||
export const matchNoticeInfoReq = data => http.post('/match/match-notice/info', data) |
|||
|
|||
export const matchTeamPkUserTeamReq = data => http.post('/match/match-team-pk/user-team', data) |
|||
|
|||
export const matchTaskListReq = data => http.post('/match/match-task-list/list-for-front', data) |
@ -0,0 +1,5 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const matchQaListReq = () => http.get('/match/match-qa/list-for-user') |
|||
|
|||
export const matchQaActionReq = data => http.post('/match/match-qa', data) |
@ -0,0 +1,11 @@ |
|||
import http from './index.js'; |
|||
|
|||
// 获取商户详情
|
|||
export const getSetting = (settingKey) => http.get('/open/system/setting/' + settingKey) |
|||
|
|||
export const getLastVersion = () => http.get('/love/application-version/last') |
|||
|
|||
export default { |
|||
getSetting, |
|||
getLastVersion |
|||
} |
@ -0,0 +1,13 @@ |
|||
import http from './index.js'; |
|||
// import http from '@/api/index';
|
|||
|
|||
// 分页查询文章
|
|||
export const goodsCateTreeReq = (params) => http.get('/shop/goods-category/listCategoryTree', {params}) |
|||
|
|||
export const goodsPageReq = (params) => http.get('/shop/goods/page', {params}) |
|||
|
|||
export const goodsDetailReq = (id) => http.get(`/shop/goods/${id}`) |
|||
|
|||
export const addCartReq = (data) => http.post(`/shop/cart`, data) |
|||
|
|||
export const cartListReq = (id) => http.get(`/shop/cart?id=${id}`) |
@ -0,0 +1,24 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const userTrainListReq = data => http.post('/train/train-info-list/user-list', data) |
|||
export const trainCourseListForFrontReq = data => http.post('/train/train-course/list-for-front', data) |
|||
|
|||
export const trainTaskListReq = data => http.post('/train/train-task-list/list-for-front', data) |
|||
|
|||
export const trainUserLearnLogActionReq = data => http.post('/train/train-user-learn-log/action', data) |
|||
|
|||
export const trainUserExamLogActionReq = data => http.post('/train/train-user-exam-log/action', data) |
|||
|
|||
export const trainBrushingListReq = data => http.post('/train/train-brushing/list-by-course', data) |
|||
|
|||
export const trainUserAbilityListInTrainReq = data => http.post('/train/train-user-ability/user-list-in-train', data) |
|||
|
|||
export const trainDeclareListReq = data => http.post('/train/train-declare/list-for-front', data) |
|||
|
|||
export const trainDeclareInfoReq = data => http.post('/train/train-declare/info', data) |
|||
|
|||
export const trainDeclareUserDataActionReq = data => http.post('/train/train-declare-user-data/action', data) |
|||
|
|||
export const trainUserLearnLogDataReq = data => http.post('/train/train-user-learn-log/data', data) |
|||
|
|||
export const trainUserPaperListReq = data => http.post('/train/train-user-paper/list-for-user', data) |
@ -0,0 +1,40 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const trainInfoUserListReq = data => http.post('/train/train-people-list/user-list', data) |
|||
export const trainPeopleChartDataReq = id => http.post(`/train/train-people-list/chart-data/${id}`) |
|||
|
|||
export const trainInfoReq = data => http.post('/train/train-info-list/info', data) |
|||
|
|||
export const trainInfoRankReq = data => http.post('/train/train-info-list/rank', data) |
|||
|
|||
export const trainTaskInfoReq = data => http.post('/train/train-task-info/info', data) |
|||
|
|||
export const trainInfoTaskListReq = data => http.post('/train/train-task-info/task-list-in-train', data) |
|||
|
|||
export const trainTaskInfoForUserReq = data => http.post('/train/train-task-info/task-list-for-user', data) |
|||
|
|||
export const trainExamListReq = data => http.post('/train/train-exam-list/list-in-train', data) |
|||
|
|||
|
|||
export const TRAIN_TASK_TYPE_LIST = [ |
|||
{ |
|||
label: '视频', |
|||
value: 'video' |
|||
}, |
|||
{ |
|||
label: '音频', |
|||
value: 'audio' |
|||
}, |
|||
{ |
|||
label: '课件', |
|||
value: 'file' |
|||
}, |
|||
{ |
|||
label: '教案', |
|||
value: 'learnFile' |
|||
}, |
|||
{ |
|||
label: '题目', |
|||
value: 'exam' |
|||
} |
|||
] |
@ -0,0 +1,56 @@ |
|||
import http from './index.js'; |
|||
import { |
|||
fileUrl |
|||
} from '@/config'; |
|||
import storage from '@/utils/storage' |
|||
import dayjs from "dayjs" |
|||
import appConfig from '@/config' |
|||
|
|||
// 文件服务器
|
|||
// export const uploadFile = (file) => http.upload(fileUrl + '/api/file/upload', file)
|
|||
|
|||
// 阿里云OSS
|
|||
// export const uploadFile = (file) => http.upload('/oss/upload', file)
|
|||
export const uploadFile = async ({filePath}) => { |
|||
|
|||
// 获取临时凭证
|
|||
let sts = storage.get('sts'); |
|||
if(!sts){ |
|||
const stsRes = await http.get('/oss/getPostForm') |
|||
sts = stsRes.data |
|||
storage.set('sts', sts, 60) |
|||
} |
|||
const {polocyBase64,signature} = sts; |
|||
var suffix = filePath.substring(filePath.lastIndexOf(".")); //.txt
|
|||
const fileName = dayjs().format('YYYYMMDD') + '/'+ uni.$u.guid() + suffix; |
|||
return new Promise((reso, rej) => { |
|||
uni.uploadFile({ |
|||
url: appConfig.fileUrl, // 开发者服务器的URL。
|
|||
filePath: filePath, |
|||
name: 'file', // 必须填file。
|
|||
formData: { |
|||
key: fileName, |
|||
'policy': polocyBase64, |
|||
'OSSAccessKeyId': 'LTAI5t8UTh8CTXEi2dYxobhj', |
|||
'success_action_status': '200', //让服务端返回200,不然,默认会返回204
|
|||
'signature': signature, |
|||
// 'x-oss-security-token': this.stsToken,
|
|||
}, |
|||
success: (res) => { |
|||
const webUrl = appConfig.fileUrl + '/' + fileName; |
|||
reso({data: {url: webUrl,thumb: webUrl}}) |
|||
}, |
|||
fail: err => { |
|||
rej(err) |
|||
} |
|||
}); |
|||
}) |
|||
|
|||
|
|||
} |
|||
|
|||
export const getTempOssToken = () => http.get('/oss/getTempToken') |
|||
export default { |
|||
uploadFile, |
|||
getTempOssToken |
|||
} |
@ -0,0 +1,3 @@ |
|||
import http from './index.js'; |
|||
|
|||
export const followActionReq = (data) => http.post('/sys/user-follow/action', data) |
@ -0,0 +1,43 @@ |
|||
import http from './index.js'; |
|||
|
|||
// 获取用户资料
|
|||
export const getUser = (params) => http.get('/auth/user', {params}) |
|||
|
|||
// 修改用户资料
|
|||
export const updateUser = (data) => http.put('/system/user', data) |
|||
|
|||
export const getMyQrCode = (data) => http.post('/open/user/myQrCode',data) |
|||
// 获取用户资料
|
|||
export const getAgentUser = (id) => http.get('/open/user/agentUser/' + id) |
|||
// 分页查询用户
|
|||
export const pageUser = (params) => http.get('/system/user/page', {params}) |
|||
|
|||
export const updatePassword = (data) => http.put('/auth/password',data) |
|||
|
|||
export const getGiftLog = (params) => http.get('/shop/user-gift-log/page', {params}) |
|||
|
|||
export const trainUserPaperListReq = (data) => http.post('/train/train-user-paper/list-for-user', data) |
|||
|
|||
export const remove = (id) => http.delete('/system/user/' + id) |
|||
|
|||
export const registerAsync = (data) => http.post('/wx-login/registerAsync', data) |
|||
|
|||
export const matchUserSignLogActionReq = (data) => http.post('/match/match-user-sign-log/action', data) |
|||
|
|||
export const matchUserSignLogByDateReq = (data) => http.post('/match/match-user-sign-log/by-date', data) |
|||
|
|||
export const userRankReq = (data) => http.post('/sys/user-detail/rank', data) |
|||
|
|||
export const userInfoReq = (data) => http.post('/sys/user-detail/info', data) |
|||
|
|||
export default { |
|||
getUser, |
|||
updateUser, |
|||
getMyQrCode, |
|||
getAgentUser, |
|||
pageUser, |
|||
updatePassword, |
|||
getGiftLog, |
|||
remove, |
|||
registerAsync, |
|||
} |
@ -0,0 +1,16 @@ |
|||
import http from './index.js'; |
|||
const checkSize = src => { |
|||
return new Promise((resolve, reject) => { |
|||
uni.getImageInfo({ |
|||
src, |
|||
success: async ({width, height}) => { |
|||
console.log(width > 4000, height > 4000) |
|||
if (width > 4000 || height > 4000) return reject('图片尺寸过大,请上传小于4000*4000的图片') |
|||
resolve(true) |
|||
}, |
|||
complete: res => { |
|||
console.log(res) |
|||
} |
|||
}) |
|||
}) |
|||
} |
@ -0,0 +1,39 @@ |
|||
<template> |
|||
<uv-navbar fixed :auto-back="false" :bgColor="bgColor" :status-bar-bg-color="bgColor" placeholder :title="title" |
|||
:title-style="{color: 'white'}" auto-back left-icon-color="white" @leftClick="leftClick"> |
|||
<template slot="left"> |
|||
<uv-icon :name="currentPages.length > 1 ? 'arrow-left' : 'home'" size="20" color="white" |
|||
v-if="showBack"/> |
|||
</template> |
|||
</uv-navbar> |
|||
</template> |
|||
|
|||
<script> |
|||
import {LINEAR} from "@/config/color"; |
|||
|
|||
export default { |
|||
name: "HeaderItem", |
|||
props: { |
|||
title: String, |
|||
showBack: { |
|||
type: Boolean, |
|||
default: true |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
bgColor: LINEAR, |
|||
currentPages: [] |
|||
} |
|||
}, |
|||
methods: { |
|||
leftClick() { |
|||
if (getCurrentPages().length === 1) uni.switchTab({url: '/pages/index/index'}) |
|||
else uni.navigateBack() |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.currentPages = getCurrentPages() |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,209 @@ |
|||
<template> |
|||
<view> |
|||
<view class="progress" :style="{ width: width + 'px', height: width + 'px' }"> |
|||
<view class="progress__bar" :style="{ background: `conic-gradient(${activeColor} ${currentValue}%, ${inactiveColor} ${currentValue}% 100%)` }" id="progress__bar"></view> |
|||
<view class="circle" id="circle" :style="{ width: 'calc(100% - ' + borderWidth + 'px)', height: 'calc(100% - ' + borderWidth + 'px)',background:bgColor }"></view> |
|||
<view class="circle1" :style="{ width: borderWidth / 2 + 'px', height: borderWidth / 2 + 'px' ,background:activeColor}"></view> |
|||
<view class="circle2" :style="{ transform: `translateX(-50%) rotate(${currentValue * 3.6}deg)`, width: borderWidth / 2 + 'px' }"> |
|||
<view class="circle2-r" :style="{ width: borderWidth / 2 + 'px', height: borderWidth / 2 + 'px',background:activeColor }"></view> |
|||
</view> |
|||
<span class="progress__value" v-show="showValue" :style="{color:valueColor,fontSize:(valueFontSize+'px'),fontWeight:valueFontWeight}"> |
|||
{{ valueText }} |
|||
</span> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: { |
|||
activeColor: { |
|||
default: '#009dff', |
|||
type: String |
|||
}, |
|||
showValue:{ |
|||
default:true, |
|||
type:Boolean |
|||
}, |
|||
valueText: { |
|||
default: '', |
|||
type: String |
|||
}, |
|||
valueColor:{ |
|||
default: '#009dff', |
|||
type: String |
|||
}, |
|||
valueFontWeight:{ |
|||
default: 400, |
|||
type: Number |
|||
}, |
|||
valueFontSize:{ |
|||
default: 18, |
|||
type: Number |
|||
}, |
|||
inactiveColor: { |
|||
default: '#ececec', |
|||
type: String |
|||
}, |
|||
bgColor: { |
|||
default: '#ffffff', |
|||
type: String |
|||
}, |
|||
// duration: { |
|||
// default: 900, |
|||
// type: Number |
|||
// }, |
|||
progress: { |
|||
default: 0, |
|||
type: Number |
|||
}, |
|||
width: { |
|||
default: 100, |
|||
type: Number |
|||
}, |
|||
borderWidth: { |
|||
default: 18, |
|||
type: Number |
|||
}, |
|||
done:{ |
|||
default:()=>{}, |
|||
type:Function |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
currentValue: 0, |
|||
startTime: 0, |
|||
inter: null, |
|||
duration: 900 |
|||
}; |
|||
}, |
|||
watch: { |
|||
progress() { |
|||
this.progress = parseInt(this.progress); |
|||
this.startCount(); |
|||
} |
|||
}, |
|||
created() { |
|||
if (this.progress > 0) { |
|||
this.startCount(); |
|||
} |
|||
}, |
|||
methods: { |
|||
startCount() { |
|||
this.reset(); |
|||
this.updateValue(); |
|||
}, |
|||
reset() { |
|||
this.startTime = 0; |
|||
this.currentValue = 0; |
|||
this.duration = parseInt(this.duration); |
|||
clearTimeout(this.inter); |
|||
this.inter = null; |
|||
}, |
|||
updateValue(timestamp = 30) { |
|||
if (this.currentValue > this.progress) return; |
|||
if (!this.startTime) this.startTime = timestamp; |
|||
const progress = (timestamp - this.startTime) / (this.duration + 1000); |
|||
this.currentValue = Math.min(this.currentValue + Math.floor((this.progress - this.currentValue) * this.easeOutCubic(progress)), this.progress); |
|||
if (progress < 1) { |
|||
this.inter = setTimeout(() => { |
|||
this.updateValue(timestamp + 30); |
|||
}, 30); |
|||
} else { |
|||
this.currentValue = this.progress; |
|||
this.loadComplete(); |
|||
} |
|||
}, |
|||
//加载完成 |
|||
loadComplete() { |
|||
this.$emit('done',this.progress) |
|||
}, |
|||
easeOutCubic(x) { |
|||
return 1 - Math.pow(1 - x, 2); |
|||
} |
|||
} |
|||
}; |
|||
</script> |
|||
|
|||
<style > |
|||
.progress { |
|||
position: relative; |
|||
color: #000; |
|||
} |
|||
.circle { |
|||
position: absolute; |
|||
width: 80%; |
|||
height: 80%; |
|||
left: 50%; |
|||
top: 50%; |
|||
background: #fff; |
|||
transform: translateX(-50%) translateY(-50%); |
|||
border-radius: 50%; |
|||
z-index: 99; |
|||
transition: 0.2s; |
|||
} |
|||
.circle.done { |
|||
width: 0%; |
|||
height: 0%; |
|||
} |
|||
|
|||
.circle1 { |
|||
position: absolute; |
|||
width: 10%; |
|||
height: 10%; |
|||
border-radius: 50%; |
|||
} |
|||
|
|||
.circle2 { |
|||
height: 100%; |
|||
width: 10%; |
|||
left: 50%; |
|||
position: absolute; |
|||
border-radius: 50%; |
|||
|
|||
} |
|||
.circle2-r { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
border-radius: 50%; |
|||
} |
|||
|
|||
.circle1 { |
|||
top: 0; |
|||
left: 50%; |
|||
transform: translateX(-50%); |
|||
} |
|||
|
|||
.progress__bar { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
border-radius: 50%; |
|||
background-size: contain; |
|||
background-origin: border-box; |
|||
background-clip: content-box; |
|||
transition: 0.5s ease-out; |
|||
/* mask: radial-gradient(transparent, transparent 59.5%, #fff 40.5%, #fff 0); */ |
|||
} |
|||
.progress__bar.done { |
|||
background: #34d190 !important; |
|||
} |
|||
.progress__bar.done.fail { |
|||
background: #ff4a32 !important; |
|||
} |
|||
|
|||
.progress__value { |
|||
position: absolute; |
|||
top: 50%; |
|||
left: 50%; |
|||
transform: translate(-50%, -50%); |
|||
width: 100%; |
|||
text-align: center; |
|||
font-size: 10px; |
|||
z-index: 999; |
|||
} |
|||
</style> |
@ -0,0 +1,27 @@ |
|||
export const ORANGE = '#DD5E27' |
|||
export const ORANGE_LIGHT = '#E7916C' |
|||
export const GREEN = '#50e3c2' |
|||
export const GREEN_LIGHT = '#96b0a3' |
|||
export const BLUE = '#00b6ff' |
|||
export const BLUE_LIGHT = '#4ec6f6' |
|||
export const RED = '#A11E28' |
|||
export const RED_LIGHT = '#94434a' |
|||
export const PURPLE = '#7F6CDE' |
|||
export const PINK = '#FE5397' |
|||
export const PURPLE_DARK = '#7F6CDE' |
|||
export const PUBLISH = '#FDCB05' |
|||
export const GRAY = '#999' |
|||
export const PURPLE_LIGHT = '#7F6CDE' |
|||
|
|||
export const MAIN = BLUE |
|||
export const LINEAR = 'linear-gradient(90deg, #00b6ff, #4ec6f6)' |
|||
|
|||
export const MAIN_BTN_STYLE = { |
|||
background: 'linear-gradient(180deg, #00b6ff, #4ec6f6)', |
|||
color: 'white' |
|||
} |
|||
|
|||
export const SUCCESS_BTN_STYLE = { |
|||
background: 'linear-gradient(180deg, #00D2A3FF, #50e3c2)', |
|||
color: 'white' |
|||
} |
@ -0,0 +1,16 @@ |
|||
// 租户ID
|
|||
export const name = "工匠基地"; |
|||
export const tenantId = 10159; |
|||
export const appSecret = ''; |
|||
export const fileUrl = 'https://oss.wsdns.cn'; |
|||
// 核心模块接口
|
|||
// export const API_BASE_URL: string = 'http://127.0.0.1:9091/api';
|
|||
// 主节点
|
|||
export const SERVER_API_URL = 'https://server.gxwebsoft.com/api'; |
|||
// 模块接口地址
|
|||
// export const MODULES_API_URL = 'https://modules.gxwebsoft.com/api';
|
|||
// export const MODULES_API_URL = 'http://192.168.50.71:9099/api';
|
|||
// export const MODULES_API_URL = 'http://127.0.0.1:9099/api';
|
|||
export const MODULES_API_URL = 'http://120.78.78.131:9335/api'; |
|||
|
|||
export const apiUrl = MODULES_API_URL; |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 12 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
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
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> |
|||
<script src="app-wxs.js"></script> |
|||
|
|||
|
|||
</body> |
|||
</html> |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||
(function(){})(); |
File diff suppressed because it is too large
@ -0,0 +1,37 @@ |
|||
var __wxsModules={}; |
|||
|
|||
__wxsModules["812594ec"] = (() => { |
|||
var __getOwnPropNames = Object.getOwnPropertyNames; |
|||
var __commonJS = (cb, mod) => function __require() { |
|||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; |
|||
}; |
|||
|
|||
// <stdin>
|
|||
var require_stdin = __commonJS({ |
|||
"<stdin>"(exports, module) { |
|||
var inlineTags = { |
|||
abbr: true, |
|||
b: true, |
|||
big: true, |
|||
code: true, |
|||
del: true, |
|||
em: true, |
|||
i: true, |
|||
ins: true, |
|||
label: true, |
|||
q: true, |
|||
small: true, |
|||
span: true, |
|||
strong: true, |
|||
sub: true, |
|||
sup: true |
|||
}; |
|||
module.exports = { |
|||
isInline: function(tagName, style) { |
|||
return inlineTags[tagName] || (style || "").indexOf("display:inline") !== -1; |
|||
} |
|||
}; |
|||
} |
|||
}); |
|||
return require_stdin(); |
|||
})(); |
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,159 @@ |
|||
|
|||
/* a 标签默认效果 */ |
|||
._a[data-v-c65e823d] { |
|||
padding: 1.5px 0 1.5px 0; |
|||
color: #366092; |
|||
word-break: break-all; |
|||
} |
|||
|
|||
/* a 标签点击态效果 */ |
|||
._hover[data-v-c65e823d] { |
|||
text-decoration: underline; |
|||
opacity: 0.7; |
|||
} |
|||
|
|||
/* 图片默认效果 */ |
|||
._img[data-v-c65e823d] { |
|||
max-width: 100%; |
|||
-webkit-touch-callout: none; |
|||
} |
|||
|
|||
/* 内部样式 */ |
|||
._block[data-v-c65e823d] { |
|||
display: block; |
|||
} |
|||
._b[data-v-c65e823d], |
|||
._strong[data-v-c65e823d] { |
|||
font-weight: bold; |
|||
} |
|||
._code[data-v-c65e823d] { |
|||
font-family: monospace; |
|||
} |
|||
._del[data-v-c65e823d] { |
|||
text-decoration: line-through; |
|||
} |
|||
._em[data-v-c65e823d], |
|||
._i[data-v-c65e823d] { |
|||
font-style: italic; |
|||
} |
|||
._h1[data-v-c65e823d] { |
|||
font-size: 2em; |
|||
} |
|||
._h2[data-v-c65e823d] { |
|||
font-size: 1.5em; |
|||
} |
|||
._h3[data-v-c65e823d] { |
|||
font-size: 1.17em; |
|||
} |
|||
._h5[data-v-c65e823d] { |
|||
font-size: 0.83em; |
|||
} |
|||
._h6[data-v-c65e823d] { |
|||
font-size: 0.67em; |
|||
} |
|||
._h1[data-v-c65e823d], |
|||
._h2[data-v-c65e823d], |
|||
._h3[data-v-c65e823d], |
|||
._h4[data-v-c65e823d], |
|||
._h5[data-v-c65e823d], |
|||
._h6[data-v-c65e823d] { |
|||
display: block; |
|||
font-weight: bold; |
|||
} |
|||
._image[data-v-c65e823d] { |
|||
height: 1px; |
|||
} |
|||
._ins[data-v-c65e823d] { |
|||
text-decoration: underline; |
|||
} |
|||
._li[data-v-c65e823d] { |
|||
display: list-item; |
|||
} |
|||
._ol[data-v-c65e823d] { |
|||
list-style-type: decimal; |
|||
} |
|||
._ol[data-v-c65e823d], |
|||
._ul[data-v-c65e823d] { |
|||
display: block; |
|||
padding-left: 40px; |
|||
margin: 1em 0; |
|||
} |
|||
._q[data-v-c65e823d]::before { |
|||
content: '"'; |
|||
} |
|||
._q[data-v-c65e823d]::after { |
|||
content: '"'; |
|||
} |
|||
._sub[data-v-c65e823d] { |
|||
font-size: smaller; |
|||
vertical-align: sub; |
|||
} |
|||
._sup[data-v-c65e823d] { |
|||
font-size: smaller; |
|||
vertical-align: super; |
|||
} |
|||
._thead[data-v-c65e823d], |
|||
._tbody[data-v-c65e823d], |
|||
._tfoot[data-v-c65e823d] { |
|||
display: table-row-group; |
|||
} |
|||
._tr[data-v-c65e823d] { |
|||
display: table-row; |
|||
} |
|||
._td[data-v-c65e823d], |
|||
._th[data-v-c65e823d] { |
|||
display: table-cell; |
|||
vertical-align: middle; |
|||
} |
|||
._th[data-v-c65e823d] { |
|||
font-weight: bold; |
|||
text-align: center; |
|||
} |
|||
._ul[data-v-c65e823d] { |
|||
list-style-type: disc; |
|||
} |
|||
._ul ._ul[data-v-c65e823d] { |
|||
margin: 0; |
|||
list-style-type: circle; |
|||
} |
|||
._ul ._ul ._ul[data-v-c65e823d] { |
|||
list-style-type: square; |
|||
} |
|||
._abbr[data-v-c65e823d], |
|||
._b[data-v-c65e823d], |
|||
._code[data-v-c65e823d], |
|||
._del[data-v-c65e823d], |
|||
._em[data-v-c65e823d], |
|||
._i[data-v-c65e823d], |
|||
._ins[data-v-c65e823d], |
|||
._label[data-v-c65e823d], |
|||
._q[data-v-c65e823d], |
|||
._span[data-v-c65e823d], |
|||
._strong[data-v-c65e823d], |
|||
._sub[data-v-c65e823d], |
|||
._sup[data-v-c65e823d] { |
|||
display: inline; |
|||
} |
|||
._video[data-v-c65e823d] { |
|||
width: 300px; |
|||
height: 225px; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
/* 根节点样式 */ |
|||
._root[data-v-73e89447] { |
|||
padding: 1px 0; |
|||
overflow-x: auto; |
|||
overflow-y: hidden; |
|||
-webkit-overflow-scrolling: touch; |
|||
} |
|||
|
|||
/* 长按复制 */ |
|||
._select[data-v-73e89447] { |
|||
-webkit-user-select: text; |
|||
-moz-user-select: text; |
|||
user-select: text; |
|||
} |
|||
|
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,74 @@ |
|||
|
|||
.progress[data-v-9c77e614] { |
|||
position: relative; |
|||
color: #000; |
|||
} |
|||
.circle[data-v-9c77e614] { |
|||
position: absolute; |
|||
width: 80%; |
|||
height: 80%; |
|||
left: 50%; |
|||
top: 50%; |
|||
background: #fff; |
|||
transform: translateX(-50%) translateY(-50%); |
|||
border-radius: 50%; |
|||
z-index: 99; |
|||
transition: 0.2s; |
|||
} |
|||
.circle.done[data-v-9c77e614] { |
|||
width: 0%; |
|||
height: 0%; |
|||
} |
|||
.circle1[data-v-9c77e614] { |
|||
position: absolute; |
|||
width: 10%; |
|||
height: 10%; |
|||
border-radius: 50%; |
|||
} |
|||
.circle2[data-v-9c77e614] { |
|||
height: 100%; |
|||
width: 10%; |
|||
left: 50%; |
|||
position: absolute; |
|||
border-radius: 50%; |
|||
} |
|||
.circle2-r[data-v-9c77e614] { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
border-radius: 50%; |
|||
} |
|||
.circle1[data-v-9c77e614] { |
|||
top: 0; |
|||
left: 50%; |
|||
transform: translateX(-50%); |
|||
} |
|||
.progress__bar[data-v-9c77e614] { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
border-radius: 50%; |
|||
background-size: contain; |
|||
background-origin: border-box; |
|||
background-clip: content-box; |
|||
transition: 0.5s ease-out; |
|||
/* mask: radial-gradient(transparent, transparent 59.5%, #fff 40.5%, #fff 0); */ |
|||
} |
|||
.progress__bar.done[data-v-9c77e614] { |
|||
background: #34d190 !important; |
|||
} |
|||
.progress__bar.done.fail[data-v-9c77e614] { |
|||
background: #ff4a32 !important; |
|||
} |
|||
.progress__value[data-v-9c77e614] { |
|||
position: absolute; |
|||
top: 50%; |
|||
left: 50%; |
|||
transform: translate(-50%, -50%); |
|||
width: 100%; |
|||
text-align: center; |
|||
font-size: 10px; |
|||
z-index: 999; |
|||
} |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,758 @@ |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
h6 { |
|||
font-weight: bolder !important; |
|||
font-size: 0.625rem; |
|||
} |
|||
.pos-r { |
|||
position: relative; |
|||
} |
|||
.pos-a, .del-wrap, .required { |
|||
position: absolute; |
|||
} |
|||
.bg { |
|||
background-color: #F8F8F8; |
|||
} |
|||
.bg-gray { |
|||
background-color: #F3F6FB; |
|||
} |
|||
.bg-gray-light { |
|||
background-color: #F7F7F7; |
|||
} |
|||
.bg-white, .card { |
|||
background-color: white; |
|||
} |
|||
.bg-main { |
|||
background-color: #00b6ff; |
|||
} |
|||
.bg-red { |
|||
background-color: #E55744; |
|||
} |
|||
.bg-orange { |
|||
background-color: #FFCB7E; |
|||
} |
|||
.bg-orange-light { |
|||
background-color: #fffcf6; |
|||
} |
|||
.bg-blue { |
|||
background-color: #00b6ff; |
|||
} |
|||
.bg-gold { |
|||
background-color: #B68320; |
|||
} |
|||
.bg-main-light { |
|||
background-color: #FFF0D3; |
|||
} |
|||
.bg-fff0 { |
|||
background-color: #f0f0f0; |
|||
} |
|||
.shadow { |
|||
box-shadow: 1px 1px 10px #ccc; |
|||
} |
|||
.shadow-top { |
|||
box-shadow: 0px -2px 10px #ccc; |
|||
} |
|||
.shadow-light { |
|||
box-shadow: 0 0.125rem 0.375rem 0 rgb(206, 206, 206); |
|||
} |
|||
.shadow-50 { |
|||
box-shadow: -0.0625rem 0.125rem 0.4375rem 0.125rem rgb(206, 206, 206); |
|||
} |
|||
.font-bold { |
|||
font-weight: bold; |
|||
} |
|||
.text-center { |
|||
text-align: center; |
|||
} |
|||
.text-left { |
|||
text-align: left; |
|||
} |
|||
.text-right { |
|||
text-align: right; |
|||
} |
|||
.tips { |
|||
font-size: 0.625rem; |
|||
color: #c1bfbf; |
|||
} |
|||
.text-main { |
|||
color: #00b6ff; |
|||
} |
|||
.text-orange { |
|||
color: #fd7600; |
|||
} |
|||
.text-blue { |
|||
color: #00b6ff; |
|||
} |
|||
.text-green { |
|||
color: #50e3c2; |
|||
} |
|||
.text-gold { |
|||
color: #B68320; |
|||
} |
|||
.text-red { |
|||
color: #E55744; |
|||
} |
|||
.text-gray { |
|||
color: #c1bfbf; |
|||
} |
|||
.text-gray-weight { |
|||
color: #666; |
|||
} |
|||
.text-black { |
|||
color: #333; |
|||
} |
|||
.color-6C { |
|||
color: #6C6C6C; |
|||
} |
|||
.text-white { |
|||
color: white; |
|||
} |
|||
.text-line-through { |
|||
text-decoration: line-through; |
|||
} |
|||
.color-9A { |
|||
color: #9A9A9A; |
|||
} |
|||
.color-333 { |
|||
color: #333333; |
|||
} |
|||
.flex, .album-item { |
|||
display: flex; |
|||
} |
|||
.flex-wrap { |
|||
flex-wrap: wrap; |
|||
} |
|||
.justify-center, .album-item { |
|||
justify-content: center; |
|||
} |
|||
.justify-start { |
|||
justify-content: flex-start; |
|||
} |
|||
.justify-end { |
|||
justify-content: flex-end; |
|||
} |
|||
.justify-between { |
|||
justify-content: space-between; |
|||
} |
|||
.justify-around { |
|||
justify-content: space-around; |
|||
} |
|||
.items-center, .album-item { |
|||
align-items: center; |
|||
} |
|||
.items-start { |
|||
align-items: flex-start; |
|||
} |
|||
.items-end { |
|||
align-items: flex-end; |
|||
} |
|||
.item-self { |
|||
align-self: flex-end; |
|||
} |
|||
.flex-col { |
|||
flex-direction: column; |
|||
} |
|||
.flex-rev { |
|||
flex-direction: row-reverse; |
|||
} |
|||
.flex-1 { |
|||
flex: 1; |
|||
} |
|||
.flex-2 { |
|||
flex: 2; |
|||
} |
|||
.flex-shrink { |
|||
flex-shrink: 0; |
|||
} |
|||
.flex-none { |
|||
flex: none; |
|||
} |
|||
.flex-grow { |
|||
flex-grow: 1; |
|||
} |
|||
.flex-grow-0 { |
|||
flex-grow: 0; |
|||
} |
|||
.h-100 { |
|||
height: 100vh; |
|||
} |
|||
.h-100p { |
|||
height: 100%; |
|||
} |
|||
.h-90p { |
|||
height: 90%; |
|||
} |
|||
.h-50p { |
|||
height: 50%; |
|||
} |
|||
.h-10p { |
|||
height: 10%; |
|||
} |
|||
.w-100 { |
|||
width: 100vw; |
|||
} |
|||
.w-100p, .footer { |
|||
width: 100%; |
|||
} |
|||
.w-5p { |
|||
width: 5%; |
|||
} |
|||
.w-10p { |
|||
width: 10%; |
|||
} |
|||
.w-15p { |
|||
width: 15%; |
|||
} |
|||
.w-20p { |
|||
width: 20%; |
|||
} |
|||
.w-25p { |
|||
width: 25%; |
|||
} |
|||
.w-30p { |
|||
width: 30%; |
|||
} |
|||
.w-33p { |
|||
width: 33%; |
|||
} |
|||
.w-40p { |
|||
width: 40%; |
|||
} |
|||
.w-45p { |
|||
width: 45%; |
|||
} |
|||
.w-50p { |
|||
width: 50%; |
|||
} |
|||
.w-60p { |
|||
width: 60%; |
|||
} |
|||
.w-67p { |
|||
width: 67%; |
|||
} |
|||
.w-75p { |
|||
width: 75%; |
|||
} |
|||
.w-80p { |
|||
width: 80%; |
|||
} |
|||
.w-85p { |
|||
width: 85%; |
|||
} |
|||
.w-90p { |
|||
width: 90%; |
|||
} |
|||
.p-10 { |
|||
padding: 0.3125rem; |
|||
} |
|||
.p-15 { |
|||
padding: 0.46875rem; |
|||
} |
|||
.pb-15 { |
|||
padding-bottom: 0.46875rem; |
|||
} |
|||
.pb-20 { |
|||
padding-bottom: 0.625rem; |
|||
} |
|||
.pb-30 { |
|||
padding-bottom: 0.9375rem; |
|||
} |
|||
.p-20, .card { |
|||
padding: 0.625rem; |
|||
} |
|||
.p-25 { |
|||
padding: 0.78125rem; |
|||
} |
|||
.p-30 { |
|||
padding: 0.9375rem; |
|||
} |
|||
.px-20 { |
|||
padding: 0 0.625rem; |
|||
} |
|||
.px-25 { |
|||
padding-left: 0.78125rem; |
|||
padding-right: 0.78125rem; |
|||
} |
|||
.px-40 { |
|||
padding: 0 1.25rem; |
|||
} |
|||
.p-50 { |
|||
padding: 1.5625rem; |
|||
} |
|||
.py-10 { |
|||
padding-top: 0.3125rem; |
|||
padding-bottom: 0.3125rem; |
|||
} |
|||
.py-15 { |
|||
padding-top: 0.46875rem; |
|||
padding-bottom: 0.46875rem; |
|||
} |
|||
.py-20 { |
|||
padding-top: 0.625rem; |
|||
padding-bottom: 0.625rem; |
|||
} |
|||
.py-25 { |
|||
padding: 0.78125rem 0; |
|||
} |
|||
.py-30 { |
|||
padding-top: 0.9375rem; |
|||
padding-bottom: 0.9375rem; |
|||
} |
|||
.py-50 { |
|||
padding-top: 1.5625rem; |
|||
padding-bottom: 1.5625rem; |
|||
} |
|||
.px-15 { |
|||
padding-left: 0.46875rem; |
|||
padding-right: 0.46875rem; |
|||
} |
|||
.px-20 { |
|||
padding: 0 0.46875rem; |
|||
} |
|||
.px-30 { |
|||
padding: 0 0.9375rem; |
|||
} |
|||
.pl-15 { |
|||
padding-left: 0.46875rem; |
|||
} |
|||
.pl-20 { |
|||
padding-left: 0.625rem; |
|||
} |
|||
.pr-15 { |
|||
padding-right: 0.46875rem; |
|||
} |
|||
.pr-20 { |
|||
padding-right: 0.625rem; |
|||
} |
|||
.pt-10 { |
|||
padding-top: 0.3125rem; |
|||
} |
|||
.pt-20 { |
|||
padding-top: 0.625rem; |
|||
} |
|||
.pr-25 { |
|||
padding-right: 0.78125rem; |
|||
} |
|||
.m-a { |
|||
margin: auto; |
|||
} |
|||
.m-10, .album-item { |
|||
margin: 0.3125rem; |
|||
} |
|||
.m-15 { |
|||
margin: 0.46875rem; |
|||
} |
|||
.m-20 { |
|||
margin: 0.625rem; |
|||
} |
|||
.m-25 { |
|||
margin: 0.78125rem; |
|||
} |
|||
.m-30 { |
|||
margin: 0.9375rem; |
|||
} |
|||
.m-35 { |
|||
margin: 1.09375rem; |
|||
} |
|||
.ml-10 { |
|||
margin-left: 0.3125rem; |
|||
} |
|||
.ml-15 { |
|||
margin-left: 0.46875rem; |
|||
} |
|||
.ml-25 { |
|||
margin-left: 0.78125rem; |
|||
} |
|||
.ml-35 { |
|||
margin-left: 1.09375rem; |
|||
} |
|||
.mt-10 { |
|||
margin-top: 0.3125rem; |
|||
} |
|||
.mt-15 { |
|||
margin-top: 0.46875rem; |
|||
} |
|||
.mt-20 { |
|||
margin-top: 0.625rem; |
|||
} |
|||
.mt-25 { |
|||
margin-top: 0.78125rem; |
|||
} |
|||
.mt-30 { |
|||
margin-top: 0.9375rem; |
|||
} |
|||
.mt-40 { |
|||
margin-top: 1.25rem; |
|||
} |
|||
.mt-50 { |
|||
margin-top: 1.5625rem; |
|||
} |
|||
.mb-25 { |
|||
margin-bottom: 0.78125rem; |
|||
} |
|||
.mb-40 { |
|||
margin-bottom: 1.25rem; |
|||
} |
|||
.my-10 { |
|||
margin-top: 0.3125rem; |
|||
margin-bottom: 0.3125rem; |
|||
} |
|||
.my-15 { |
|||
margin-top: 0.46875rem; |
|||
margin-bottom: 0.46875rem; |
|||
} |
|||
.my-20 { |
|||
margin-top: 0.625rem; |
|||
margin-bottom: 0.625rem; |
|||
} |
|||
.my-25 { |
|||
margin-top: 0.78125rem; |
|||
margin-bottom: 0.78125rem; |
|||
} |
|||
.mx-10 { |
|||
margin-left: 0.3125rem; |
|||
margin-right: 0.3125rem; |
|||
} |
|||
.mx-15 { |
|||
margin-left: 0.46875rem; |
|||
margin-right: 0.46875rem; |
|||
} |
|||
.mx-20 { |
|||
margin-left: 0.625rem; |
|||
margin-right: 0.625rem; |
|||
} |
|||
.mx-25 { |
|||
margin-left: 0.78125rem; |
|||
margin-right: 0.78125rem; |
|||
} |
|||
.mx-30 { |
|||
margin-left: 0.9375rem; |
|||
margin-right: 0.9375rem; |
|||
} |
|||
.mb-10 { |
|||
margin-bottom: 0.3125rem; |
|||
} |
|||
.mb-15 { |
|||
margin-bottom: 0.46875rem; |
|||
} |
|||
.mb-20 { |
|||
margin-bottom: 0.625rem; |
|||
} |
|||
.mr-10 { |
|||
margin-right: 0.3125rem; |
|||
} |
|||
.mr-15 { |
|||
margin-right: 0.46875rem; |
|||
} |
|||
.ml-20 { |
|||
margin-left: 0.625rem; |
|||
} |
|||
.mr-25 { |
|||
margin-right: 0.78125rem; |
|||
} |
|||
.mr-35 { |
|||
margin-right: 1.09375rem; |
|||
} |
|||
.text-15 { |
|||
font-size: 0.46875rem; |
|||
} |
|||
.text-20 { |
|||
font-size: 0.625rem; |
|||
line-height: 0.625rem; |
|||
} |
|||
.text-24 { |
|||
font-size: 0.75rem; |
|||
} |
|||
.text-25 { |
|||
font-size: 0.78125rem; |
|||
line-height: 0.9375rem; |
|||
} |
|||
.text-26 { |
|||
font-size: 0.8125rem; |
|||
} |
|||
.text-28 { |
|||
font-size: 0.875rem; |
|||
line-height: 1.03125rem; |
|||
} |
|||
.text-30 { |
|||
font-size: 0.9375rem; |
|||
line-height: 1.09375rem; |
|||
} |
|||
.text-35 { |
|||
font-size: 1.09375rem; |
|||
line-height: 1.25rem; |
|||
} |
|||
.text-40 { |
|||
font-size: 1.25rem; |
|||
line-height: 1.40625rem; |
|||
} |
|||
.rounded, .card { |
|||
border-radius: 10px; |
|||
} |
|||
.rounded-16 { |
|||
border-radius: 0.5rem; |
|||
} |
|||
.rounded-bottom { |
|||
border-radius: 0 0 10px 10px; |
|||
} |
|||
.rounded-top { |
|||
border-radius: 10px 10px 0 0; |
|||
} |
|||
.circle { |
|||
border-radius: 31.21875rem; |
|||
} |
|||
.border-top { |
|||
border-top: 1px solid #BBB; |
|||
} |
|||
.border-bottom { |
|||
border-bottom: 1px solid #efecec; |
|||
} |
|||
.border-bottom-light { |
|||
border-bottom: 1px solid rgba(187, 187, 187, 0.37); |
|||
} |
|||
.border-left { |
|||
border-left: 1px solid rgba(187, 187, 187, 0); |
|||
} |
|||
.border-right { |
|||
border-right: 1px solid #BBB; |
|||
} |
|||
.border { |
|||
border: 1px solid #c1bfbf; |
|||
} |
|||
.border-light { |
|||
border: 1px solid #C1BFBF; |
|||
} |
|||
.border-orange { |
|||
border: 1px solid #DD5E27; |
|||
} |
|||
.footer { |
|||
position: fixed; |
|||
left: 0; |
|||
bottom: 0; |
|||
z-index: 10; |
|||
} |
|||
.public-sub-btn { |
|||
background: #FDCA00; |
|||
font-weight: bold; |
|||
color: #000; |
|||
border-radius: 1.5625rem; |
|||
text-align: center; |
|||
padding: 0.75rem 0; |
|||
} |
|||
.b-20 { |
|||
bottom: 0.625rem; |
|||
} |
|||
.p-button { |
|||
background: linear-gradient(#E5CB98, #FBEDBC); |
|||
color: #B68320; |
|||
} |
|||
@font-face { |
|||
font-family: "iconfont"; |
|||
src: url("data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAeYAAsAAAAADlAAAAdLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCEAgqOYItrATYCJAMkCxQABCAFhG0HcBv/CzOjdoNyEiD7nwnxpstuRCLrGmPTaffv/hnWZJHUNtWZeOD/3t03mks73vmC/3jA8SRom0aatimgfv7d9M8lBEJCIHRBKua0E7EEOqedMBEJm8N7js0MWpgq9PlMkGcTsS8NgH3X/AEbFaFGZNFvH+xR2uYofWlu9NO9ypmTgvNlW8CitMbdT7rHpgAXaKxBOfzWBdQCFgyrMV3kKtMLUFGd7GEC0JSkACq79OKAIMbDAW2W48z1QESSiQsUARGRZFyYAZ0AR8Q1ogsAjs7vhy+UBQIgwhPwR83HdB4F7R6gR25M+CrAUEwAobtM6LuBBBRA1qlLZvYO80KFg8isxmImAH1xHwzc0UPpQ/ph9cNLD+8+cn/9mnAgGQwUGkVj0B1kUhL4EP94IgQIVeCoDc62pg7uyLCRwUMCauARlsQ0ElWAq5EoAV9CogB8FzYieLq7qQM0rM5DYAriAik/Li6hNpHBj2knBBuokIJWymUizhppEknSNKNTIHnPfnR5WRIjFnmB0MgyTh9CFr9W5WgCNNfq00hdfi0KEVVL7I0kQvMYjy8OUbDAQIFwzDiGGzMKX+/PVu1sih2FbLk8PneQ0e84zT9a9GckbXu06x/h1C0hw45Twmlb0BLgUtCw7qqMfsqCGhV6bZl8tzTOhwXIwI1ZQCJLIIvccUoHE88h4XC2eGu4M/1XNB3fedRypMHlpyhbEwA5zn0qQ+4JIFxpmvQRIqHR6kOYxT8yRF6DufwjDl1JEG+8Wqk8ej0Z33StarLSdvb0fhAL+06dIRXWc4EDCLccDJ7nRTRGNUgi5S3sUk8hG4BAIuuqdJzCcXaWtWpZK0O7I0Mqs9SeBk6HJs+pMZ3cqWSo18Up8nh2vcql1drvYnRZfFaWawwlbAjnNuUeD0fz47f2GNsa/fF7o5EiX96JqiMhfWMOZ3c32aoWarUuu1GgZb3ZijxTszPBoebYYVU51WtjNSTXad3ekZzB2YUmmynf7Frv87CjOrjBApsDIHqPD//DhUKGSMSAEKRwBgqH+XDUGI0YIlaOKiYk2EnSqUEWF7XAageI3OVCf/PhsDEaNSKnhrSzKBTiQlVdDbJsPEl0ONSUS4ssTnLO4dOJ8O/y7lwLIsG9w6MxwIZTFYojgSR8c7B6ksJqZ8UOB6W0ubb0SifPuQb42mUpNFyJuQI0OLvELTPRSN5ODs3CBUKIBoDa1xrz1K/SNy3fVPVDMKK2XqdM6a9QLFycnZWRVUJ89QUvJOjZoAOfr7zKhGDrb79CEfP5M8/DTEvPngRh8AWBr9OZ66+89rX3tVtZ8tVf0r2fhur6+fMn0ALooJU7KIuS79+fpFNWX018UNVONCAU6vv7QGWHX5rbxpdvCW5JI9sFt9aUVW1pjXfr1K+5X6dOeOsts8vm/p1Iq+glCpUiObh4EVm2JbClPL5V603DrqjoTQomnlFsolUURBISwDpcroJ7b0oA02NQonc6VOv1iZVzBiYiduCcysTgHXF6OAN6GftRd0b3kZV9q0+AxEQ+IRESEvhEqIl262o2d+ZSUQfnmQcNY2dMXbp06rKxDTkJDJeW6vN3QmnfdO+etSJLmp0tSazIHjphQaZo7r6Dq2MZ3eom36nkLlp5St+X1jcrBkv4xK/79qbGfer3tXOWL0+NzJUNjuev1m2r8TwarGszs8uaVXMJRufavYvjGRWXNvLMw4a6hqnTp+OWddN3rFg+ixl4/IR5XXolag7ZzhxpDtvDmd17wTeo3HzocG+79mhzQ6GYS6SY3AUFNu1aUC5jsE6YcVIdLZk+YIqhI161tOWSVwtt2jUJey9Kv5VI+tWYJCCe8U3j1Nhp6t/ry8zF48oidd2GdLkxpPOAeiG9UXgmkpyh9YWSltIkJvUm3/2XckNk/emn1TPGhuRv5ddp5qpQ5XLRDWCzQqyzQ4tWrMxPsIRfxsInjYr7g9evq5O7w5KQAvAPYk1YW0p4kkSoGpozaS3WThNOfixfE8B+wzrpbqcdWAzzu1akq+jGw+IgeIpNPUYoW30gqPdHzI3c6qeif0AMzVuoE4HK3keDt+KE/PXzUOM3K4anQW5D40VTGYGmWAAeCflDN7ulJpW9TyBKHUAklQgJIYOROQVQQamAKkJbaMrX9fKWFqYDBmUZgJkVDBDGXhBRCAKGcdEJJzg3AKfxAiSYgAHJgFrckJIVVqPJSTBWzCD5AKVcG5mmE7ftHW1TxhL2O+o/lEBlsJjO43U3rFG6OCU87VLVgBGu4Moeh2XJ4IVzTHXqVP1xNjNZp05TrlqTVkfBWC3zDJKPPaVcm611kvj5O9qmjKVgyI/9H0qg7cNiOq/AuKG60pBT6RyedqmUacDoLVzBlTKxFNUMPnu/HFOdugaV/jijqUxVNB2eqs41gtM3LCcta4sQhsQIRxIkRQSSIRLEim8daOMprvsqcXCDRdX2cFgMy8TbcsJh6vBNMY++jmv7bXgQHHmqWy0A") format("woff2"); |
|||
} |
|||
.iconfont { |
|||
flex: 1; |
|||
text-align: center; |
|||
font-family: "iconfont" !important; |
|||
font-size: 22px; |
|||
font-style: normal; |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
.icon-undo:before { |
|||
content: "\e607"; |
|||
} |
|||
.icon-redo:before { |
|||
content: "\e606"; |
|||
} |
|||
.icon-img:before { |
|||
content: "\e6e2"; |
|||
} |
|||
.icon-video:before { |
|||
content: "\e798"; |
|||
} |
|||
.icon-link:before { |
|||
content: "\e60d"; |
|||
} |
|||
.icon-text:before { |
|||
content: "\e6ce"; |
|||
} |
|||
.icon-clear:before { |
|||
content: "\e637"; |
|||
} |
|||
.icon-save:before { |
|||
content: "\e501"; |
|||
} |
|||
.required { |
|||
left: -9px; |
|||
color: #f56c6c; |
|||
line-height: 20px; |
|||
font-size: 20px; |
|||
top: 15px; |
|||
} |
|||
.overflow-y { |
|||
overflow-y: auto; |
|||
} |
|||
.album-item { |
|||
width: 5.9375rem; |
|||
height: 5.9375rem; |
|||
} |
|||
.del-wrap { |
|||
right: 0; |
|||
top: 0; |
|||
border-radius: 0 10px 0 10px; |
|||
padding: 0.3125rem; |
|||
background-color: #E55744; |
|||
z-index: 1000; |
|||
} |
|||
.min-height { |
|||
min-height: 100vh; |
|||
} |
|||
.share-btn { |
|||
border: none; |
|||
background: none; |
|||
margin: 0; |
|||
padding: 0; |
|||
} |
|||
.share-btn::after { |
|||
border: none; |
|||
} |
|||
.popup-close { |
|||
bottom: -2.5rem; |
|||
left: calc(50% - 0.625rem); |
|||
} |
|||
.line-2 { |
|||
display: -webkit-box; |
|||
-webkit-line-clamp: 2; |
|||
-webkit-box-orient: vertical; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
} |
|||
|
|||
/* 自定义 */ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
.layout-blue { |
|||
padding: 0.625rem 0.9375rem 2.5rem; |
|||
border-radius: 0 0 1.5625rem 1.5625rem; |
|||
background: #00b6ff; |
|||
} |
|||
.layout-blue .title { |
|||
padding: 2px 0 5px; |
|||
font-size: 0.875rem; |
|||
line-height: 1rem; |
|||
color: #fff; |
|||
} |
|||
.layout-blue .blod { |
|||
font-weight: 600; |
|||
} |
|||
.layout-blue .p { |
|||
padding: 2px 0; |
|||
font-size: 0.75rem; |
|||
line-height: 1rem; |
|||
color: #fff; |
|||
} |
|||
.layout-result { |
|||
margin: -1.5625rem 0.9375rem 0.9375rem; |
|||
padding: 0.625rem 0.9375rem; |
|||
border-radius: 0.375rem; |
|||
background: #fff; |
|||
} |
|||
.th { |
|||
display: flex; |
|||
align-items: center; |
|||
padding-bottom: 0.3125rem; |
|||
border-bottom: 1px dashed #999; |
|||
} |
|||
.th .td { |
|||
font-size: 0.8125rem; |
|||
line-height: 1.5rem; |
|||
color: #999; |
|||
} |
|||
.row { |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
.row .td { |
|||
padding: 0.3125rem 0; |
|||
font-size: 0.8125rem; |
|||
font-weight: 600; |
|||
line-height: 1.5rem; |
|||
color: #000; |
|||
} |
|||
.row .td:nth-child(3) { |
|||
color: #00b6ff; |
|||
} |
|||
.td:nth-child(1) { |
|||
width: 50%; |
|||
} |
|||
.td:nth-child(2) { |
|||
width: 25%; |
|||
text-align: center; |
|||
} |
|||
.td:nth-child(3) { |
|||
width: 25%; |
|||
text-align: right; |
|||
} |
|||
.layout-fixed { |
|||
position: fixed; |
|||
left: 0; |
|||
bottom: 0; |
|||
padding-bottom: constant(safe-area-inset-bottom); |
|||
padding-bottom: env(safe-area-inset-bottom); |
|||
z-index: 9; |
|||
width: 100%; |
|||
height: auto; |
|||
display: flex; |
|||
align-items: center; |
|||
padding: 0.625rem 0.9375rem; |
|||
background: #fff; |
|||
box-sizing: border-box; |
|||
} |
|||
.layout-fixed .huan { |
|||
margin-right: 0.9375rem; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
} |
|||
.layout-fixed .huan .icon { |
|||
width: 1.25rem; |
|||
height: 1.25rem; |
|||
} |
|||
.layout-fixed .huan .text { |
|||
margin-top: 2px; |
|||
font-size: 0.75rem; |
|||
line-height: 1rem; |
|||
color: #999; |
|||
} |
|||
.layout-fixed .cha { |
|||
flex: 1; |
|||
height: 2.5rem; |
|||
font-size: 0.875rem; |
|||
line-height: 2.5rem; |
|||
text-align: center; |
|||
color: #fff; |
|||
border-radius: 1.25rem; |
|||
background: #00b6ff; |
|||
} |
File diff suppressed because it is too large
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue