| @ -0,0 +1,2 @@ | |||||
| /node_modules | |||||
| /unpackage | |||||
| @ -0,0 +1,22 @@ | |||||
| <script> | |||||
| export default { | |||||
| onLaunch: function() { | |||||
| console.log('App Launch') | |||||
| }, | |||||
| onShow: function() { | |||||
| }, | |||||
| onHide: function() { | |||||
| console.log('App Hide') | |||||
| }, | |||||
| methods:{ | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss"> | |||||
| /*每个页面公共css */ | |||||
| @import url("@/styles/common.css"); | |||||
| @import url("@/styles/init.css"); | |||||
| @import "uview-ui/index.scss"; | |||||
| </style> | |||||
| @ -1,3 +1,3 @@ | |||||
| # dianpin-h5-4000-0827 | |||||
| # bin-yuan-uniapp | |||||
| 公众号项目 | |||||
| 兼职招聘信息公众号 | |||||
| @ -0,0 +1,13 @@ | |||||
| export default{ | |||||
| displayNav(){ | |||||
| let iswx = navigator.userAgent.toLowerCase().indexOf('micromessenger') != -1; | |||||
| //#ifdef H5 | |||||
| if (iswx) { | |||||
| let pageNav = document.getElementsByTagName("uni-page-head"); | |||||
| if (pageNav && pageNav[0]) { | |||||
| pageNav[0].style.display = "none"; | |||||
| } | |||||
| } | |||||
| //#endif | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,5 @@ | |||||
| import Vue from 'vue' | |||||
| // import Navbar from '@/components/comm-navbar/comm-navbar.vue' | |||||
| // Vue.component('comm-navbar', Navbar) | |||||
| @ -0,0 +1,145 @@ | |||||
| <template> | |||||
| <view class="active-card"> | |||||
| <view class="active-title">【{{item.name}}】</view> | |||||
| <view class="active-time flex align-center"> | |||||
| <text>【电话】{{item.phone}}</text> | |||||
| </view> | |||||
| <view class="active-time flex align-center"> | |||||
| <text>【地址】{{item.region}}</text> | |||||
| </view> | |||||
| <view class="active-time flex align-center"> | |||||
| <text>【详细地址】{{item.detailAddress}}</text> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default{ | |||||
| props:{ | |||||
| text:{ | |||||
| type:String, | |||||
| default:'查看详情' | |||||
| }, | |||||
| item:{ | |||||
| type:Object, | |||||
| }, | |||||
| i:{ | |||||
| type:Number, | |||||
| } | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| seeDetail(){ | |||||
| this.$emit('seeDetail',this.item) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .active-card { | |||||
| background: #ffffff; | |||||
| border-radius: 12rpx; | |||||
| box-shadow: 3rpx 3rpx 6rpx 5rpx rgba(0,0,0,0.16); | |||||
| overflow: hidden; | |||||
| padding-bottom: 10rpx; | |||||
| margin-bottom: 20rpx; | |||||
| .active-title { | |||||
| word-wrap:break-word; | |||||
| word-break:break-all; | |||||
| font-size: 32rpx; | |||||
| color: #000; | |||||
| font-weight: 700; | |||||
| margin-top: 20rpx; | |||||
| line-height: 60rpx; | |||||
| white-space: nowrap; | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| } | |||||
| .active-time { | |||||
| word-wrap:break-word; | |||||
| word-break:break-all; | |||||
| color: #707070; | |||||
| font-size: 28rpx; | |||||
| margin: 20rpx 0; | |||||
| image { | |||||
| width: 33rpx; | |||||
| height: 33rpx; | |||||
| margin-right: 27rpx; | |||||
| } | |||||
| /* 文本不会换行显示 */ | |||||
| white-space: nowrap; | |||||
| /* 超出盒子部分隐藏 */ | |||||
| overflow: hidden; | |||||
| /* 文本超出的部分打点显示 */ | |||||
| text-overflow: ellipsis; | |||||
| } | |||||
| .active-add { | |||||
| color: #707070; | |||||
| font-size: 28rpx; | |||||
| word-wrap:break-word; | |||||
| word-break:break-all; | |||||
| /* 文本不会换行显示 */ | |||||
| white-space: nowrap; | |||||
| /* 超出盒子部分隐藏 */ | |||||
| overflow: hidden; | |||||
| /* 文本超出的部分打点显示 */ | |||||
| text-overflow: ellipsis; | |||||
| // overflow: hidden;/*这个参数根据需求来决定要不要*/ | |||||
| image { | |||||
| width: 30rpx; | |||||
| height: 35rpx; | |||||
| margin-right: 27rpx; | |||||
| } | |||||
| } | |||||
| .active-time2 { | |||||
| color: #707070; | |||||
| font-size: 28rpx; | |||||
| margin: 20rpx 0; | |||||
| image { | |||||
| width: 33rpx; | |||||
| height: 33rpx; | |||||
| margin-right: 27rpx; | |||||
| } | |||||
| } | |||||
| .active-menu { | |||||
| margin-top: 21rpx; | |||||
| padding: 0 10rpx; | |||||
| .menu-price { | |||||
| font-size: 32rpx; | |||||
| .price { | |||||
| color: #D33D3E; | |||||
| font-size: 34rpx; | |||||
| font-weight: 500; | |||||
| } | |||||
| } | |||||
| .menu-btn { | |||||
| width: 213rpx; | |||||
| height: 79rpx; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| color: #00CCCC; | |||||
| font-size: 30rpx; | |||||
| font-weight: 500; | |||||
| } | |||||
| .menu-btn::after { | |||||
| content: " "; | |||||
| width: 15rpx; | |||||
| height: 15rpx; | |||||
| border-bottom: 3rpx solid #00CCCC; | |||||
| border-right: 3rpx solid #00CCCC; | |||||
| transform: rotate(-45deg); | |||||
| margin-left: 8rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,159 @@ | |||||
| <template> | |||||
| <view class="active-card"> | |||||
| <view class="active-title">【{{item.title}}】</view> | |||||
| <view class="active-time flex align-center"> | |||||
| <text>【商品】{{item.shopName}}</text> | |||||
| </view> | |||||
| <view class="active-add flex align-center"> | |||||
| <text>【地址】{{item.addressText}}</text> | |||||
| </view> | |||||
| <view class="active-add flex align-center"> | |||||
| <text>【价格】{{item.price}}</text> | |||||
| </view> | |||||
| <view class="active-add flex align-center"> | |||||
| <text>【数量】{{item.num}}</text> | |||||
| </view> | |||||
| <view class="active-add flex align-center" v-if="item.type == 1"> | |||||
| <text>【类型】微信订单</text> | |||||
| </view> | |||||
| <view class="active-add flex align-center" v-else> | |||||
| <text>【类型】积分订单</text> | |||||
| </view> | |||||
| <view class="active-time2 flex align-center"> | |||||
| <text>【下单时间】{{item.createTime}}</text> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default{ | |||||
| props:{ | |||||
| text:{ | |||||
| type:String, | |||||
| default:'查看详情' | |||||
| }, | |||||
| item:{ | |||||
| type:Object, | |||||
| }, | |||||
| i:{ | |||||
| type:Number, | |||||
| } | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| seeDetail(){ | |||||
| this.$emit('seeDetail',this.item) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .active-card { | |||||
| background: #ffffff; | |||||
| border-radius: 12rpx; | |||||
| box-shadow: 3rpx 3rpx 6rpx 5rpx rgba(0,0,0,0.16); | |||||
| overflow: hidden; | |||||
| padding-bottom: 10rpx; | |||||
| margin-bottom: 20rpx; | |||||
| .active-title { | |||||
| word-wrap:break-word; | |||||
| word-break:break-all; | |||||
| font-size: 32rpx; | |||||
| color: #000; | |||||
| font-weight: 700; | |||||
| margin-top: 20rpx; | |||||
| line-height: 60rpx; | |||||
| white-space: nowrap; | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| } | |||||
| .active-time { | |||||
| word-wrap:break-word; | |||||
| word-break:break-all; | |||||
| color: #707070; | |||||
| font-size: 28rpx; | |||||
| margin: 20rpx 0; | |||||
| image { | |||||
| width: 33rpx; | |||||
| height: 33rpx; | |||||
| margin-right: 27rpx; | |||||
| } | |||||
| /* 文本不会换行显示 */ | |||||
| white-space: nowrap; | |||||
| /* 超出盒子部分隐藏 */ | |||||
| overflow: hidden; | |||||
| /* 文本超出的部分打点显示 */ | |||||
| text-overflow: ellipsis; | |||||
| } | |||||
| .active-add { | |||||
| color: #707070; | |||||
| font-size: 28rpx; | |||||
| word-wrap:break-word; | |||||
| word-break:break-all; | |||||
| /* 文本不会换行显示 */ | |||||
| white-space: nowrap; | |||||
| /* 超出盒子部分隐藏 */ | |||||
| overflow: hidden; | |||||
| /* 文本超出的部分打点显示 */ | |||||
| text-overflow: ellipsis; | |||||
| // overflow: hidden;/*这个参数根据需求来决定要不要*/ | |||||
| image { | |||||
| width: 30rpx; | |||||
| height: 35rpx; | |||||
| margin-right: 27rpx; | |||||
| } | |||||
| } | |||||
| .active-time2 { | |||||
| color: #707070; | |||||
| font-size: 28rpx; | |||||
| margin: 20rpx 0; | |||||
| image { | |||||
| width: 33rpx; | |||||
| height: 33rpx; | |||||
| margin-right: 27rpx; | |||||
| } | |||||
| } | |||||
| .active-menu { | |||||
| margin-top: 21rpx; | |||||
| padding: 0 10rpx; | |||||
| .menu-price { | |||||
| font-size: 32rpx; | |||||
| .price { | |||||
| color: #D33D3E; | |||||
| font-size: 34rpx; | |||||
| font-weight: 500; | |||||
| } | |||||
| } | |||||
| .menu-btn { | |||||
| width: 213rpx; | |||||
| height: 79rpx; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| color: #00CCCC; | |||||
| font-size: 30rpx; | |||||
| font-weight: 500; | |||||
| } | |||||
| .menu-btn::after { | |||||
| content: " "; | |||||
| width: 15rpx; | |||||
| height: 15rpx; | |||||
| border-bottom: 3rpx solid #00CCCC; | |||||
| border-right: 3rpx solid #00CCCC; | |||||
| transform: rotate(-45deg); | |||||
| margin-left: 8rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,69 @@ | |||||
| <template> | |||||
| </template> | |||||
| <script> | |||||
| export default{ | |||||
| props:{ | |||||
| }, | |||||
| data(){ | |||||
| return { | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| onclick:() => { | |||||
| window.location = "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=Mzg3NzkzMTg3NQ==#wechat_redirect" | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .transp{ | |||||
| width: 100vw; | |||||
| height: 154rpx; | |||||
| z-index: 99999; | |||||
| box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); | |||||
| background-color: #000; | |||||
| display: flex; | |||||
| flex-wrap: wrap; | |||||
| } | |||||
| .left-content { | |||||
| color: #777; | |||||
| font-size: 26rpx; | |||||
| width: 480rpx; | |||||
| line-height: 30rpx; | |||||
| padding: 25rpx; | |||||
| } | |||||
| .right-box{ | |||||
| color: #aaa; | |||||
| font-size: 30rpx; | |||||
| padding: 35rpx 0; | |||||
| width: 220rpx; | |||||
| } | |||||
| .font-btn-after { | |||||
| content: " "; | |||||
| width: 12rpx; | |||||
| height: 12rpx; | |||||
| border-bottom: 3rpx solid #aaa; | |||||
| border-right: 3rpx solid #aaa; | |||||
| transform: rotate(-45deg); | |||||
| position: absolute; | |||||
| right: 25rpx; | |||||
| top: 42rpx; | |||||
| } | |||||
| .btn-box { | |||||
| position: fixed; | |||||
| bottom: 0; | |||||
| left: 0; | |||||
| right: 0; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,45 @@ | |||||
| <template> | |||||
| <view class="page"> | |||||
| <view class="box"> | |||||
| <image class="img" :src="src"></image> | |||||
| 正在为您拉起微信授权... | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default{ | |||||
| props:{ | |||||
| src: require('@/static/img/wechat-icon.png') | |||||
| }, | |||||
| data(){ | |||||
| return { | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .page { | |||||
| width: 100vw; | |||||
| background-color: #fff; | |||||
| } | |||||
| .box { | |||||
| width: 500rpx; | |||||
| height: 800rpx; | |||||
| margin: 80rpx auto; | |||||
| text-align: center; | |||||
| } | |||||
| .img{ | |||||
| width: 500rpx; | |||||
| height: 500rpx; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,26 @@ | |||||
| // .env.js 文件 | |||||
| // 不同环境访问不同的路径 | |||||
| // import store from '@/common/store/index' | |||||
| const ENV_API_URL = { | |||||
| development: 'https://jobadmin.java996.icu', //开发环境 | |||||
| production: 'https://jobadmin.java996.icu', //生产环境 | |||||
| } | |||||
| const ENV_BASE_URL = { | |||||
| development: 'https://jobadmin.java996.icu', //开发环境 | |||||
| production: 'https://jobadmin.java996.icu', //生产环境 | |||||
| } | |||||
| // const ENV_API_URL = { | |||||
| // development: 'http://localhost:8091', //开发环境 | |||||
| // production: 'http://localhost:8091', //生产环境 | |||||
| // } | |||||
| // const ENV_BASE_URL = { | |||||
| // development: 'http://localhost:8091', //开发环境 | |||||
| // production: 'http://localhost:8091', //生产环境 | |||||
| // } | |||||
| export const BASE_URL = ENV_BASE_URL[process.env.NODE_ENV || 'development']; //后台根域名 | |||||
| export const API_URL = ENV_API_URL[process.env.NODE_ENV || 'development']; //后台接口域名 | |||||
| export const HAS_LIVE = false; //后台是否开通直播权限,根据情况在manifest.json中,开启注释相应组件的引入。 | |||||
| @ -0,0 +1,48 @@ | |||||
| import Vue from 'vue' | |||||
| import App from './App' | |||||
| import '@/common/components' | |||||
| // import util from '@/common/utils/common' | |||||
| import { | |||||
| API_URL | |||||
| } from './env.js'//这里是接口api | |||||
| import api from '@/request/index' | |||||
| import com from '@/common/com.js' | |||||
| Vue.prototype.$api = api; | |||||
| Vue.prototype.$API_URL = API_URL; | |||||
| Vue.prototype.$com = com; | |||||
| Vue.config.productionTip = false | |||||
| import uView from "uview-ui"; | |||||
| import store from './store/index.js' | |||||
| import jweixin from 'jweixin-module' | |||||
| Vue.prototype.$jweixin = jweixin | |||||
| Vue.prototype.$store = store | |||||
| Vue.prototype.$base_img = 'https://bag.3iot.top' | |||||
| // Vue.prototype.$util = util | |||||
| Vue.use(uView); | |||||
| Vue.prototype.$Toast = function(title) { | |||||
| return uni.showToast({ | |||||
| title:title, | |||||
| icon:'none' | |||||
| }) | |||||
| } | |||||
| //全局混入 | |||||
| Vue.mixin({ | |||||
| data() { | |||||
| return { | |||||
| } | |||||
| }, | |||||
| onTabItemTap(e){ | |||||
| let token = uni.getStorageSync('userToken') | |||||
| }, | |||||
| }) | |||||
| App.mpType = 'app' | |||||
| const app = new Vue({ | |||||
| store, | |||||
| ...App | |||||
| }) | |||||
| app.$mount() | |||||
| @ -0,0 +1,98 @@ | |||||
| { | |||||
| "name" : "兼兼街", | |||||
| "appid" : "__UNI__278B20D", | |||||
| "description" : "", | |||||
| "versionName" : "1.0.0", | |||||
| "versionCode" : "100", | |||||
| "transformPx" : false, | |||||
| /* 5+App特有相关 */ | |||||
| "app-plus" : { | |||||
| "usingComponents" : true, | |||||
| "nvueCompiler" : "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.READ_CONTACTS\"/>", | |||||
| "<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.WRITE_CONTACTS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |||||
| "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", | |||||
| "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", | |||||
| "<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.CALL_PHONE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |||||
| ] | |||||
| }, | |||||
| /* ios打包配置 */ | |||||
| "ios" : {}, | |||||
| /* SDK配置 */ | |||||
| "sdkConfigs" : {} | |||||
| } | |||||
| }, | |||||
| /* 快应用特有相关 */ | |||||
| "quickapp" : {}, | |||||
| /* 小程序特有相关 */ | |||||
| "mp-weixin" : { | |||||
| "appid" : "wx6fb4a17b28186d58", | |||||
| "setting" : { | |||||
| "urlCheck" : false, | |||||
| "es6" : true, | |||||
| "minified" : true | |||||
| }, | |||||
| "usingComponents" : true, | |||||
| "permission" : { | |||||
| "scope.userLocation" : { | |||||
| "desc" : "获取地理位置" | |||||
| } | |||||
| } | |||||
| }, | |||||
| "h5" : { | |||||
| "optimization" : { | |||||
| "treeShaking" : { | |||||
| "enable" : true //启用摇树优化 | |||||
| } | |||||
| }, | |||||
| "devServer" : { | |||||
| "disableHostCheck" : true | |||||
| }, | |||||
| "router" : { | |||||
| "mode" : "history" | |||||
| } | |||||
| }, | |||||
| "mp-alipay" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-baidu" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-toutiao" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "uniStatistics" : { | |||||
| "enable" : false | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,59 @@ | |||||
| { | |||||
| "requires": true, | |||||
| "lockfileVersion": 1, | |||||
| "dependencies": { | |||||
| "base64-arraybuffer": { | |||||
| "version": "1.0.2", | |||||
| "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", | |||||
| "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" | |||||
| }, | |||||
| "css-line-break": { | |||||
| "version": "2.1.0", | |||||
| "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", | |||||
| "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", | |||||
| "requires": { | |||||
| "utrie": "^1.0.2" | |||||
| } | |||||
| }, | |||||
| "html2canvas": { | |||||
| "version": "1.4.1", | |||||
| "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", | |||||
| "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", | |||||
| "requires": { | |||||
| "css-line-break": "^2.1.0", | |||||
| "text-segmentation": "^1.0.3" | |||||
| } | |||||
| }, | |||||
| "jweixin-module": { | |||||
| "version": "1.6.0", | |||||
| "resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz", | |||||
| "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==" | |||||
| }, | |||||
| "text-segmentation": { | |||||
| "version": "1.0.3", | |||||
| "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", | |||||
| "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", | |||||
| "requires": { | |||||
| "utrie": "^1.0.2" | |||||
| } | |||||
| }, | |||||
| "utrie": { | |||||
| "version": "1.0.2", | |||||
| "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", | |||||
| "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", | |||||
| "requires": { | |||||
| "base64-arraybuffer": "^1.0.2" | |||||
| } | |||||
| }, | |||||
| "uview-ui": { | |||||
| "version": "2.0.34", | |||||
| "resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.34.tgz", | |||||
| "integrity": "sha512-usJHnPCtk45yLTWTXTpLX9Vuqhzjth/+4t/m+S3J5bZuahv49mVQ126rtSnuAWWVkOUtKCX4CU83gFHZj8nP5g==" | |||||
| }, | |||||
| "weixin-js-sdk": { | |||||
| "version": "1.6.0", | |||||
| "resolved": "https://registry.npmjs.org/weixin-js-sdk/-/weixin-js-sdk-1.6.0.tgz", | |||||
| "integrity": "sha512-3IYQH7aalJGFJrwdT3epvTdR1MboMiH7vIZ5BRL2eYOJ12BNah7csoMkmSZzkq1+l92sSq29XdTCVjCJoK2sBQ==" | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,8 @@ | |||||
| { | |||||
| "dependencies": { | |||||
| "html2canvas": "^1.4.1", | |||||
| "jweixin-module": "^1.6.0", | |||||
| "uview-ui": "^2.0.31", | |||||
| "weixin-js-sdk": "^1.6.0" | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,70 @@ | |||||
| { | |||||
| "easycom": { | |||||
| "autoscan": true, | |||||
| "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" | |||||
| }, | |||||
| "pages": [ | |||||
| { | |||||
| "path": "pages/home/index", | |||||
| "name": "home", | |||||
| "style": { | |||||
| "navigationBarTitleText": "汇智文化学苑", | |||||
| "enablePullDownRefresh": true | |||||
| } | |||||
| }, | |||||
| { | |||||
| "path": "pages/my/login-kehu", | |||||
| "style": { | |||||
| "navigationBarTitleText": "登录" | |||||
| } | |||||
| },{ | |||||
| "path": "pages/my/my-order-list", | |||||
| "style": { | |||||
| "navigationBarTitleText": "订阅历史" | |||||
| } | |||||
| },{ | |||||
| "path": "pages/my/my-order-details", | |||||
| "style": { | |||||
| "navigationBarTitleText": "订单详情" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "path": "pages/my/my-kanwu-list", | |||||
| "style": { | |||||
| "navigationBarTitleText": "刊物目录" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "path": "pages/my/my-kanwu-details", | |||||
| "style": { | |||||
| "navigationBarTitleText": "刊物详情" | |||||
| } | |||||
| } | |||||
| ], | |||||
| "globalStyle": { | |||||
| "navigationBarTextStyle": "black", | |||||
| "navigationBarTitleText": "", | |||||
| "navigationBarBackgroundColor": "#F8F8F8", | |||||
| "backgroundColor": "#F8F8F8" | |||||
| }, | |||||
| "condition" : { | |||||
| "current": 0, | |||||
| "list": [ | |||||
| { | |||||
| "name": "", | |||||
| "path": "pages/student-information/student-information", | |||||
| "query": "" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| "tabBar": { | |||||
| "borderStyle": "white", | |||||
| "color": "#4D4D4D", | |||||
| "selectedColor": "#00CCCC;", | |||||
| "backgroundColor": "#ffffff", | |||||
| "list": [ | |||||
| ] | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,312 @@ | |||||
| <template> | |||||
| <view> | |||||
| <view class="home-pages"> | |||||
| <view style="position: absolute;top: 0; left: 0; height: 188rpx; width: 100%; z-index: 100; background-color: #FFFFFF; box-shadow: 0px 15px 10px -15px #E8E8E8;"> | |||||
| <view style="margin: 28rpx 24rpx; display: flex;" @click="newDetail()"> | |||||
| <image :showLoading="true" :src="userInfo?userInfo.headImage : morenSrc" style="width: 148rpx;height: 148rpx;border-radius: 50%;"></image> | |||||
| <view style="padding: 28rpx;"> | |||||
| <view style="font-size: 32rpx;font-weight: 600">{{userInfo?userInfo.nickName: '点击登录'}}</view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="home-content"> | |||||
| <view class="pay-btn-2" @click="seeDetail()"> | |||||
| 刊物介绍 | |||||
| </view> | |||||
| <view style="margin: 10rpx; font-weight: 200;"> | |||||
| <span >订阅申请</span> | |||||
| </view> | |||||
| <view class="from"> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">姓名:</span> | |||||
| <view><input v-model="release.name" placeholder="请输入学生姓名"/></view> | |||||
| </view> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">电话:</span> | |||||
| <view><input v-model="release.address" placeholder="请输入手机号码"/></view> | |||||
| </view> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">地区:</span> | |||||
| <view class="uni-list-cell-left"> | |||||
| <picker @change="selectedVs" @columnchange="selectedVs" mode="multiSelector" :range="vsc"> | |||||
| <input v-model="release.vsClass" placeholder="请选择地区"/> | |||||
| </picker> | |||||
| </view> | |||||
| </view> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">学历:</span> | |||||
| <view class="uni-list-cell-left"> | |||||
| <picker @change="selectedXl" :range="xls"> | |||||
| <input v-model="release.xl" placeholder="请选择学历"/> | |||||
| </picker> | |||||
| </view> | |||||
| </view> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">学校:</span> | |||||
| <view><input v-model="release.unit" placeholder="请选择学校"/></view> | |||||
| </view> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">年级:</span> | |||||
| <view><input v-model="release.unit" placeholder="请选择年级"/></view> | |||||
| </view> | |||||
| <view class="from-line"> | |||||
| <span class="label-class">班级:</span> | |||||
| <view><input v-model="release.unit" placeholder="请选择班级"/></view> | |||||
| </view> | |||||
| <view class="home-modal" v-show="showj"> | |||||
| <view class="title">订阅项目</view> | |||||
| <view @click='clickLable(0)' class="label-class" :class="{'active': release.topid === 0}"> ¥43.88 语文 </view> | |||||
| <view @click='clickLable(1)' class="label-class" :class="{'active': release.topid === 1}"> ¥43.88 数学 </view> | |||||
| <view @click='clickLable(2)' class="label-class" :class="{'active': release.topid === 2}"> ¥43.88 英语 </view> | |||||
| <view @click='clickLable(3)' class="label-class" :class="{'active': release.topid === 3}"> ¥43.88 化学 </view> | |||||
| <view @click='clickLable(4)' class="label-class" :class="{'active': release.topid === 4}"> ¥43.88 物理 </view> | |||||
| <view @click='clickLable(5)' class="label-class" :class="{'active': release.topid === 5}"> ¥43.88 历史 </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="pay-btn" @click="fabujianzhi()"> | |||||
| 提交申请 | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default{ | |||||
| data(){ | |||||
| return{ | |||||
| isChecked:false, | |||||
| morenSrc:require('@/static/img/logon-icon.png'), | |||||
| userInfo:null, | |||||
| showj: false, | |||||
| xls: ['小学','初中','高中'], | |||||
| vsc: [['广东省','湖南省'], ['怀山区','广州区']], | |||||
| release:{ | |||||
| name:"", | |||||
| address:"", | |||||
| vsClass:"", | |||||
| money:"", | |||||
| unit:"", | |||||
| startTime:"", | |||||
| endTime:"", | |||||
| phone:"", | |||||
| wx:"", | |||||
| myValue:"", | |||||
| xl:"", | |||||
| topid: "" | |||||
| } | |||||
| } | |||||
| }, | |||||
| onShow() { | |||||
| }, | |||||
| onLoad() { | |||||
| }, | |||||
| onPullDownRefresh() { | |||||
| }, | |||||
| onReachBottom() { | |||||
| }, | |||||
| onPullDownRefresh() { | |||||
| }, | |||||
| // 隐藏微信h5的标题栏 | |||||
| onReady() { | |||||
| this.$com.displayNav() | |||||
| }, | |||||
| methods:{ | |||||
| // 单个复选框事件 | |||||
| checkboxChange(e) { | |||||
| let values = e.detail.value; | |||||
| if (values[0] == 1) { | |||||
| this.isChecked = true; | |||||
| } else { | |||||
| this.isChecked = false; | |||||
| } | |||||
| }, | |||||
| getmyInfo(){ | |||||
| this.$api('myInfo') | |||||
| .then(res=>{ | |||||
| if(res.code == 200){ | |||||
| this.role = res.result.role; | |||||
| this.userInfo = res.result; | |||||
| this.$store.commit('set_userInfo',res.result) | |||||
| }else{ | |||||
| this.userInfo = null | |||||
| } | |||||
| }) | |||||
| }, | |||||
| //跳转刊物介绍 | |||||
| seeDetail(){ | |||||
| uni.navigateTo({ | |||||
| url:`/pages/my/my-kanwu-list` | |||||
| }) | |||||
| }, | |||||
| //跳转订阅记录 | |||||
| newDetail(){ | |||||
| uni.navigateTo({ | |||||
| url:`/pages/my/my-order-list` | |||||
| }) | |||||
| }, | |||||
| lower(){ | |||||
| }, | |||||
| selectedXl(event){ | |||||
| if(event.detail.value){ | |||||
| this.release.xl = this.xls[event.detail.value] | |||||
| if(this.release.xl === '高中'){ | |||||
| this.showj = true | |||||
| } | |||||
| } | |||||
| }, | |||||
| selectedVs(event){ | |||||
| if(event.type === 'columnchange'){ | |||||
| if(event.detail.column === 0){ | |||||
| const value = this.vsc[event.detail.column][event.detail.value]; | |||||
| console.log("选中:" + value); | |||||
| if(1 === event.detail.value){ | |||||
| this.vsc[1] = ["永州教育区","长沙教育区"] | |||||
| } | |||||
| } | |||||
| } else { | |||||
| if(event.detail){ | |||||
| this.release.vsClass = "" | |||||
| event.detail.value.forEach((v,k) => { | |||||
| this.release.vsClass += (this.vsc[k][v] + " "); | |||||
| }) | |||||
| } | |||||
| } | |||||
| }, | |||||
| clickLable(id){ | |||||
| this.release.topid = id | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .home-content { | |||||
| .from { | |||||
| margin-top: 20rpx; | |||||
| background-color: #F7F7F7; | |||||
| } | |||||
| .from-line { | |||||
| height: 108rpx; | |||||
| display: flex; | |||||
| background-color: #FFFFFF; | |||||
| .label-class{ | |||||
| text-align: justify; | |||||
| text-align-last: justify; | |||||
| line-height: 68rpx; | |||||
| width: 68rpx; | |||||
| padding: 0 24rpx; | |||||
| } | |||||
| input{ | |||||
| padding-left: 10rpx; | |||||
| height: 68rpx; | |||||
| } | |||||
| } | |||||
| .from-line-box { | |||||
| background-color: #FFFFFF; | |||||
| height: 328rpx; | |||||
| margin-right: 50rpx; | |||||
| display: flex; | |||||
| .label-class{ | |||||
| text-align: justify; | |||||
| text-align-last: justify; | |||||
| line-height: 128rpx; | |||||
| width: 128rpx; | |||||
| padding: 0 24rpx; | |||||
| } | |||||
| input{ | |||||
| padding-left: 20rpx; | |||||
| } | |||||
| } | |||||
| .pay-btn{ | |||||
| text-align: center; | |||||
| border-radius: 12rpx; | |||||
| line-height: 78rpx; | |||||
| background-color: #00CCCC; | |||||
| color: #FFFFFF; | |||||
| } | |||||
| .pay-btn-2{ | |||||
| margin:10rpx auto; | |||||
| text-align: center; | |||||
| border-radius: 12rpx; | |||||
| height: 78rpx; | |||||
| line-height: 78rpx; | |||||
| font-size: 48; | |||||
| background-color: #FFFFFF; | |||||
| } | |||||
| } | |||||
| .home-pages { | |||||
| padding: 188rpx 10rpx 0; | |||||
| background-color: #F7F7F7; | |||||
| .scroll-Y { | |||||
| height: calc(100vh - 200rpx); | |||||
| padding-top: 20rpx; | |||||
| } | |||||
| } | |||||
| .home-modal { | |||||
| width: 100vw; | |||||
| min-height: 20vh; | |||||
| .title { | |||||
| line-height: 100rpx; | |||||
| margin-top: 40rpx; | |||||
| background-color: #FFF; | |||||
| } | |||||
| .label-class { | |||||
| line-height: 100rpx; | |||||
| padding: 0 26rpx; | |||||
| background-color: #FFF; | |||||
| position: relative; | |||||
| } | |||||
| .label-class::after { | |||||
| content: " "; | |||||
| width: 30rpx; | |||||
| height: 30rpx; | |||||
| border-radius: 50%; | |||||
| border: 1rpx solid #888; | |||||
| position: absolute; | |||||
| right: 36rpx; | |||||
| top: calc((100rpx - 32rpx) / 2); | |||||
| } | |||||
| .label-class.active::after { | |||||
| background-color: #544AFF; | |||||
| border-color: #544AFF; | |||||
| } | |||||
| .label-class.active::before { | |||||
| background-color: #FFF; | |||||
| border: none; | |||||
| content: ' '; | |||||
| width: 12rpx; | |||||
| height: 12rpx; | |||||
| border-radius: 50%; | |||||
| z-index: 1; | |||||
| position: absolute; | |||||
| top: calc((100rpx - 12rpx) / 2); | |||||
| right: 46rpx; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,194 @@ | |||||
| <template> | |||||
| <view> | |||||
| <WxBLogin v-if="code === ''"/> | |||||
| <view v-else class="login"> | |||||
| <view class="login-img flex align-center justify-center"> | |||||
| <image src="@/static/img/logon-icon.png" mode=""></image> | |||||
| </view> | |||||
| <view class="login-title">兼职尽在兼兼街</view> | |||||
| <view class="btn-box"> | |||||
| <u-button v-if="code !== ''" text="微信授权登录" :round="true" openType="getUserInfo" @click="logionClick" :customStyle="baomingStyle" :hairline="false" color="#00CCCC"></u-button> | |||||
| <u-button v-else="code === ''" text="获取登录权限" :round="true" openType="getUserInfo" @click="logionClick" :customStyle="baomingStyle" :hairline="false" color="#00CCCC"></u-button> | |||||
| </view> | |||||
| <view class="tips flex align-center justify-between" @click="xieyiChoose = !xieyiChoose"> | |||||
| <view> | |||||
| 注册/登录即代表同意 | |||||
| <text class="xieyi" @click.stop="seeXieyi">《用户协议与隐私政策》</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import WxBLogin from '@/components/run-component/wx-b-login.vue' | |||||
| export default{ | |||||
| components: { | |||||
| WxBLogin | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| xieyiChoose:true, | |||||
| code: '', | |||||
| did: '', | |||||
| vid:'', | |||||
| baomingStyle: { | |||||
| fontSize:"30rpx", | |||||
| fontWeight:"700", | |||||
| height: "100rpx", | |||||
| width: "480rpx" | |||||
| }, | |||||
| baomingStyleQuxiao:{ | |||||
| fontSize:"30rpx", | |||||
| fontWeight:"700", | |||||
| height: "100rpx", | |||||
| width: "480rpx", | |||||
| marginTop : "40rpx" | |||||
| } | |||||
| } | |||||
| }, | |||||
| onLoad(err){ | |||||
| if (err.vid) { | |||||
| this.$store.commit('set_ivcode', err.vid); | |||||
| } | |||||
| if (err.did) { | |||||
| uni.setStorageSync("did", err.did); | |||||
| } | |||||
| this.code = this.GetQueryString('code'); | |||||
| if(!this.code){ | |||||
| this.getwx_authorize(); | |||||
| } | |||||
| }, | |||||
| // 隐藏微信h5的标题栏 | |||||
| onReady() { | |||||
| this.$com.displayNav(); | |||||
| }, | |||||
| methods:{ | |||||
| seeXieyi(){ | |||||
| uni.navigateTo({ | |||||
| url:'/pages/my/xieyi' | |||||
| }) | |||||
| }, | |||||
| logionClick(){ | |||||
| // let actoken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2OTA4NjAxNjgsInVzZXJuYW1lIjoib2ROdHc2dEJVNmMxenlnU1lmb2d4ZWdTX2xxbyJ9.OfGbI5WQJYA_wMUUz-BlGHunkLTO0aNoTyOgEdyt8UQ"; | |||||
| // this.$store.commit('set_userToken',actoken); | |||||
| // uni.switchTab({ | |||||
| // url:'/pages/my/index' | |||||
| // }) | |||||
| // let did = uni.getStorageSync("did"); | |||||
| // if (did) { | |||||
| // uni.navigateTo({ | |||||
| // url:'/pages/home/course-detial?id=' + did | |||||
| // }) | |||||
| // } else { | |||||
| // uni.switchTab({ | |||||
| // url:'/pages/my/index' | |||||
| // }) | |||||
| // } | |||||
| if(this.code){ | |||||
| //直接去登录发起请求 | |||||
| this.toWxLogin() | |||||
| } else { | |||||
| //获取code 静默授权 | |||||
| this.getwx_authorize(); | |||||
| } | |||||
| }, | |||||
| toWxLogin(code){ | |||||
| this.vid= uni.getStorageSync("ivcode"); | |||||
| this.$api('wxLogin',{code:this.code, vid: this.vid}) | |||||
| .then(res=>{ | |||||
| if(res.code == 200){ | |||||
| this.$store.commit('set_userToken',res.result.token); | |||||
| this.$store.commit('set_userInfo',res.result.userInfo); | |||||
| let did = uni.getStorageSync("did"); | |||||
| if (did) { | |||||
| uni.setStorageSync("did", null); | |||||
| uni.navigateTo({ | |||||
| url:'/pages/home/course-detial?id=' + did | |||||
| }) | |||||
| } else { | |||||
| uni.navigateTo({ | |||||
| url:'/pages/my/my-xiansuo-now' | |||||
| }) | |||||
| } | |||||
| }else{ | |||||
| this.$Toast(res.message) | |||||
| } | |||||
| }).catch(error=>{ | |||||
| uni.showModal({ | |||||
| content:JSON.stringify(error) | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| getwx_authorize(){ | |||||
| console.log("进入了这") | |||||
| // this.logionClick() | |||||
| let vid = uni.getStorageSync("ivcode"); | |||||
| //授权的回调地址 | |||||
| let redirect_uri = encodeURIComponent('https://job.java996.icu/pages/my/login-kehu'); | |||||
| //这是我们公众号的appid | |||||
| let appid = 'wx6fb4a17b28186d58'; | |||||
| //修改授权参数 | |||||
| window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+'&redirect_uri='+redirect_uri+'&response_type=code&scope=snsapi_userinfo&state='+vid+'&connect_redirect=1#wechat_redirect'; | |||||
| }, | |||||
| //获取url中参数的方法 | |||||
| GetQueryString(name) { | |||||
| var url = window.location.href; | |||||
| try { | |||||
| var cs = url.split('?')[1]; //获取?之后的参数字符串 | |||||
| var cs_arr = cs.split('&'); //参数字符串分割为数组 | |||||
| for (var i = 0; i < cs_arr.length; i++) { //遍历数组,拿到json对象 | |||||
| if (cs_arr[i].split('=')[0] == name) { | |||||
| return cs_arr[i].split('=')[1]; | |||||
| } | |||||
| } | |||||
| return ""; | |||||
| } catch { | |||||
| return ""; | |||||
| } | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .login { | |||||
| background-size: 100% 100%; | |||||
| height: 70vh; | |||||
| padding-top: 154rpx; | |||||
| .login-title { | |||||
| margin-top: 40rpx; | |||||
| font-size: 34rpx; | |||||
| font-weight: 700; | |||||
| text-align: center; | |||||
| padding-bottom: 30rpx; | |||||
| } | |||||
| .login-img { | |||||
| image { | |||||
| border-radius: 50%; | |||||
| width:248rpx; | |||||
| height: 248rpx; | |||||
| } | |||||
| } | |||||
| .btn-box { | |||||
| margin-top: 136rpx; | |||||
| } | |||||
| .tips { | |||||
| width: 500rpx; | |||||
| position: fixed; | |||||
| bottom: 52rpx; | |||||
| left: 51%; | |||||
| transform: translate(-50%,0); | |||||
| font-size: 24rpx; | |||||
| color: #707070; | |||||
| .xieyi { | |||||
| color: #00CCFF; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,22 @@ | |||||
| <template> | |||||
| <view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,111 @@ | |||||
| <template> | |||||
| <view class="home-pages"> | |||||
| <view style="color: #707070; | |||||
| font-size: 28rpx;"> | |||||
| </view> | |||||
| <view class="home-content"> | |||||
| <scroll-view scroll-y="true" class="scroll-y" | |||||
| <card v-for="(item,i) in list" :item="item" :key="i" :i="i" @seeDetail="seeDetail"></card> | |||||
| </scroll-view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import card from '@/components/active-card/address-list.vue' | |||||
| export default{ | |||||
| components:{ | |||||
| card, | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| params:{ | |||||
| pageNo:1, | |||||
| pageSize:10, | |||||
| total: null, | |||||
| isLock: true | |||||
| }, | |||||
| list:[ | |||||
| { | |||||
| name:"刊物名称", | |||||
| text:"刊物信息" | |||||
| }, | |||||
| { | |||||
| name:"刊物名称", | |||||
| text:"刊物信息" | |||||
| },{ | |||||
| name:"刊物名称", | |||||
| text:"刊物信息" | |||||
| } | |||||
| ] | |||||
| } | |||||
| }, | |||||
| onLoad() { | |||||
| // this.list = []; | |||||
| this.params.pageNo = 1; | |||||
| this.params.total = null; | |||||
| this.params.isLock = true; | |||||
| }, | |||||
| // 隐藏微信h5的标题栏 | |||||
| onReady() { | |||||
| this.$com.displayNav() | |||||
| }, | |||||
| onPullDownRefresh() { | |||||
| this.list = []; | |||||
| this.params.pageNo = 1; | |||||
| this.params.total = null; | |||||
| this.params.isLock = true; | |||||
| }, | |||||
| onReachBottom() { | |||||
| if(this.params.isLock){ | |||||
| this.params.isLock = false; | |||||
| if(this.params.total !== null && this.params.pageNo * this.params.pageSize >= this.params.total){ | |||||
| this.$Toast('没有更多数据了哦!'); | |||||
| setTimeout(()=>{ | |||||
| this.params.isLock = true; | |||||
| },3000) | |||||
| return | |||||
| } | |||||
| this.params.pageNo+=1; | |||||
| this.$Toast('数据加载成功!'); | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .home-pages { | |||||
| padding: 28rpx 29rpx 0; | |||||
| background-color: #F7F7F7; | |||||
| .swiper{ | |||||
| position: relative; | |||||
| height: calc(100% -7vh); | |||||
| width: 100%; | |||||
| height: 1800px; | |||||
| } | |||||
| .scroll-Y { | |||||
| height: calc(300vh - 660rpx); | |||||
| padding-top: 20rpx; | |||||
| } | |||||
| .home-content { | |||||
| .active-card{ | |||||
| margin-top: 20rpx;; | |||||
| border-radius: 0; | |||||
| border: none; | |||||
| border-style: none; | |||||
| box-shadow: none; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,22 @@ | |||||
| <template> | |||||
| <view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,172 @@ | |||||
| <template> | |||||
| <view class="home-pages"> | |||||
| <view style="color: #707070; | |||||
| font-size: 28rpx;"> | |||||
| </view> | |||||
| <view class="home-content"> | |||||
| <u-tabs | |||||
| :list="tabList" | |||||
| lineWidth="70" | |||||
| lineHeight="3" | |||||
| lineColor= "#00CCCC" | |||||
| :activeStyle="{ | |||||
| color: '#000000', | |||||
| fontWeight: 'bold', | |||||
| transform: 'scale(1.35)' | |||||
| }" | |||||
| :inactiveStyle="{ | |||||
| color: '#000000', | |||||
| transform: 'scale(1)' | |||||
| }" | |||||
| itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;" | |||||
| @click="tabClick" | |||||
| > | |||||
| </u-tabs> | |||||
| <scroll-view scroll-y="true" class="scroll-y" | |||||
| <card v-for="(item,i) in list" :item="item" :key="i" :i="i" @seeDetail="seeDetail"></card> | |||||
| </scroll-view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import card from '@/components/active-card/order-list.vue' | |||||
| export default{ | |||||
| components:{ | |||||
| card, | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| params:{ | |||||
| pageNo:1, | |||||
| state:'0', | |||||
| pageSize:10, | |||||
| total: null, | |||||
| isLock: true | |||||
| }, | |||||
| current:0, | |||||
| list:[], | |||||
| tabList: [ | |||||
| { | |||||
| id:'0', | |||||
| name:'未支付' | |||||
| }, | |||||
| { | |||||
| id:'1', | |||||
| name:'已支付' | |||||
| }, | |||||
| { | |||||
| id:'2', | |||||
| name:'已发货' | |||||
| }, | |||||
| { | |||||
| id:'3', | |||||
| name:'已收货' | |||||
| } | |||||
| ] | |||||
| } | |||||
| }, | |||||
| onLoad() { | |||||
| this.list = []; | |||||
| this.params.state = "0"; | |||||
| this.params.pageNo = 1; | |||||
| this.params.total = null; | |||||
| this.params.isLock = true; | |||||
| this.queryPageListJobRelease(); | |||||
| }, | |||||
| // 隐藏微信h5的标题栏 | |||||
| onReady() { | |||||
| this.$com.displayNav() | |||||
| }, | |||||
| onPullDownRefresh() { | |||||
| this.list = []; | |||||
| this.params.pageNo = 1; | |||||
| this.params.total = null; | |||||
| this.params.isLock = true; | |||||
| this.queryPageListJobRelease() | |||||
| }, | |||||
| onReachBottom() { | |||||
| if(this.params.isLock){ | |||||
| this.params.isLock = false; | |||||
| if(this.params.total !== null && this.params.pageNo * this.params.pageSize >= this.params.total){ | |||||
| this.$Toast('没有更多数据了哦!'); | |||||
| setTimeout(()=>{ | |||||
| this.params.isLock = true; | |||||
| },3000) | |||||
| return | |||||
| } | |||||
| this.params.pageNo+=1; | |||||
| this.$Toast('数据加载成功!'); | |||||
| this.queryPageListJobRelease(); | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| queryPageListJobRelease(){//学习列表 | |||||
| if(this.pageNo>1){ | |||||
| uni.showLoading({}) | |||||
| } | |||||
| this.$api('getOrderList',this.params) | |||||
| .then(res=>{ | |||||
| if(res.code == 200){ | |||||
| if(this.params.total== null) { | |||||
| this.params.total = res.result.total | |||||
| } | |||||
| if(this.params.pageNo>1){ | |||||
| uni.hideLoading(); | |||||
| } | |||||
| this.list = this.list.concat(res.result.records); | |||||
| this.params.isLock = true; | |||||
| }else { | |||||
| if(this.params.pageNo>1){ | |||||
| uni.hideLoading(); | |||||
| } | |||||
| this.params.isLock = true; | |||||
| } | |||||
| }) | |||||
| }, | |||||
| tabClick(e){ | |||||
| this.params.state = e.id; | |||||
| this.params.pageNo =1; | |||||
| this.list = []; | |||||
| this.queryPageListJobRelease(); | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .home-pages { | |||||
| padding: 28rpx 29rpx 0; | |||||
| background-color: #F7F7F7; | |||||
| .swiper{ | |||||
| position: relative; | |||||
| height: calc(100% -7vh); | |||||
| width: 100%; | |||||
| height: 1800px; | |||||
| } | |||||
| .scroll-Y { | |||||
| height: calc(300vh - 660rpx); | |||||
| padding-top: 20rpx; | |||||
| } | |||||
| .home-content { | |||||
| .active-card{ | |||||
| margin-top: 20rpx;; | |||||
| border-radius: 0; | |||||
| border: none; | |||||
| border-style: none; | |||||
| box-shadow: none; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,69 @@ | |||||
| import Request from './request' | |||||
| import apiList from './shopro' | |||||
| // import store from '@/common/store/index.js' | |||||
| export default function api(url, data = {}) { | |||||
| const request = new Request(); | |||||
| let api = getApiObj(url); | |||||
| request.interceptor.request((config, cancel) => { /* 请求之前拦截器 */ | |||||
| if (api.auth) { | |||||
| let userToken = uni.getStorageSync('userToken'); | |||||
| if (!userToken) { | |||||
| // store.commit('LOGIN_TIP', true) | |||||
| // store.commit('OUT_LOGIN'); | |||||
| throw('暂未登录,已阻止此次API请求~'); | |||||
| } | |||||
| } | |||||
| if (uni.getStorageSync('userToken')) { | |||||
| config.header['X-Access-Token'] = uni.getStorageSync('userToken'); | |||||
| } | |||||
| return config | |||||
| }); | |||||
| request.interceptor.response((response) => { /* 请求之后拦截器 */ | |||||
| // if (response.data.code === 0) { // 服务端返回的状态码不等于200,则reject() | |||||
| // uni.showToast({ | |||||
| // title: response.data.msg || '请求出错,稍后重试', | |||||
| // icon: 'none', | |||||
| // duration: 1000, | |||||
| // mask: true | |||||
| // }); | |||||
| // } | |||||
| if (response.data.status === 7001) { // 服务端返回的状态码不等于200,则reject() | |||||
| uni.clearStorageSync() | |||||
| uni.showToast({ | |||||
| title: '登录过期,请重新登录' | |||||
| }) | |||||
| uni.reLaunch({ | |||||
| url: '/pages/login/login' | |||||
| }) | |||||
| // store.commit('LOGIN_TIP', true) | |||||
| } | |||||
| // if (response.config.custom.verification) { // 演示自定义参数的作用 | |||||
| // return response.data | |||||
| // } | |||||
| return response | |||||
| }, (response) => { // 预留可以日志上报 | |||||
| return response | |||||
| }) | |||||
| let option = { | |||||
| url: api.url, | |||||
| data, | |||||
| method: api.method | |||||
| } | |||||
| if (api.headers!=null){ | |||||
| option.header = api.headers | |||||
| } | |||||
| return request.request(option) | |||||
| } | |||||
| function getApiObj(url) { | |||||
| let apiArray = url.split("."); | |||||
| let api = apiList; | |||||
| apiArray.forEach(v => { | |||||
| api = api[v]; | |||||
| }); | |||||
| return api; | |||||
| } | |||||
| @ -0,0 +1,280 @@ | |||||
| import { | |||||
| API_URL | |||||
| } from '@/env' | |||||
| export default class Request { | |||||
| config = { | |||||
| baseUrl: API_URL, | |||||
| header: { | |||||
| 'content-type': 'application/x-www-form-urlencoded', | |||||
| 'platform': uni.getStorageSync('platform'), | |||||
| }, | |||||
| method: 'GET', | |||||
| dataType: 'json', | |||||
| // #ifndef MP-ALIPAY || APP-PLUS | |||||
| responseType: 'text', | |||||
| // #endif | |||||
| custom: {}, | |||||
| // #ifdef MP-ALIPAY | |||||
| timeout: 30000, | |||||
| // #endif | |||||
| // #ifdef APP-PLUS | |||||
| sslVerify: true | |||||
| // #endif | |||||
| } | |||||
| static posUrl(url) { /* 判断url是否为绝对路径 */ | |||||
| return /(http|https):\/\/([\w.]+\/?)\S*/.test(url) | |||||
| } | |||||
| static addQueryString(params) { | |||||
| let paramsData = '' | |||||
| Object.keys(params).forEach(function(key) { | |||||
| paramsData += key + '=' + encodeURIComponent(params[key]) + '&' | |||||
| }) | |||||
| return paramsData.substring(0, paramsData.length - 1) | |||||
| } | |||||
| /** | |||||
| * @property {Function} request 请求拦截器 | |||||
| * @property {Function} response 响应拦截器 | |||||
| * @type {{request: Request.interceptor.request, response: Request.interceptor.response}} | |||||
| */ | |||||
| interceptor = { | |||||
| /** | |||||
| * @param {Request~requestCallback} cb - 请求之前拦截,接收一个函数(config, cancel)=> {return config}。第一个参数为全局config,第二个参数为函数,调用则取消本次请求。 | |||||
| */ | |||||
| request: (cb) => { | |||||
| if (cb) { | |||||
| this.requestBeforeFun = cb | |||||
| } | |||||
| }, | |||||
| /** | |||||
| * @param {Request~responseCallback} cb 响应拦截器,对响应数据做点什么 | |||||
| * @param {Request~responseErrCallback} ecb 响应拦截器,对响应错误做点什么 | |||||
| */ | |||||
| response: (cb, ecb) => { | |||||
| if (cb && ecb) { | |||||
| this.requestComFun = cb | |||||
| this.requestComFail = ecb | |||||
| } | |||||
| } | |||||
| } | |||||
| requestBeforeFun(config) { | |||||
| return config | |||||
| } | |||||
| requestComFun(response) { | |||||
| return response | |||||
| } | |||||
| requestComFail(response) { | |||||
| return response | |||||
| } | |||||
| /** | |||||
| * 自定义验证器,如果返回true 则进入响应拦截器的响应成功函数(resolve),否则进入响应拦截器的响应错误函数(reject) | |||||
| * @param { Number } statusCode - 请求响应体statusCode(只读) | |||||
| * @return { Boolean } 如果为true,则 resolve, 否则 reject | |||||
| */ | |||||
| validateStatus(statusCode) { | |||||
| return statusCode === 200 | |||||
| } | |||||
| /** | |||||
| * @Function | |||||
| * @param {Request~setConfigCallback} f - 设置全局默认配置 | |||||
| */ | |||||
| setConfig(f) { | |||||
| this.config = f(this.config) | |||||
| } | |||||
| /** | |||||
| * @Function | |||||
| * @param {Object} options - 请求配置项 | |||||
| * @prop {String} options.url - 请求路径 | |||||
| * @prop {Object} options.data - 请求参数 | |||||
| * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型 | |||||
| * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse | |||||
| * @prop {Object} [options.header = config.header] - 请求header | |||||
| * @prop {Object} [options.method = config.method] - 请求方法 | |||||
| * @returns {Promise<unknown>} | |||||
| */ | |||||
| async request(options = {}) { | |||||
| options.baseUrl = this.config.baseUrl | |||||
| options.dataType = options.dataType || this.config.dataType | |||||
| // #ifndef MP-ALIPAY || APP-PLUS | |||||
| options.responseType = options.responseType || this.config.responseType | |||||
| // #endif | |||||
| // #ifdef MP-ALIPAY | |||||
| options.timeout = options.timeout || this.config.timeout | |||||
| // #endif | |||||
| options.url = options.url || '' | |||||
| options.data = options.data || {} | |||||
| options.params = options.params || {} | |||||
| options.header = options.header || this.config.header | |||||
| options.method = options.method || this.config.method | |||||
| options.custom = { ...this.config.custom, | |||||
| ...(options.custom || {}) | |||||
| } | |||||
| // #ifdef APP-PLUS | |||||
| options.sslVerify = options.sslVerify === undefined ? this.config.sslVerify : options.sslVerify | |||||
| // #endif | |||||
| // uni.showToast({ | |||||
| // icon: "loading", | |||||
| // image: "/static/imgs//logo/logo.gif" | |||||
| // }) | |||||
| return new Promise((resolve, reject) => { | |||||
| let next = true | |||||
| let handleRe = {} | |||||
| options.complete = (response) => { | |||||
| response.config = handleRe | |||||
| if (this.validateStatus(response.statusCode)) { // 成功 | |||||
| response = this.requestComFun(response) | |||||
| resolve(response.data) | |||||
| } else if (401 === response.statusCode) { | |||||
| response = this.requestComFun(response) | |||||
| resolve(response.data) | |||||
| } else if (500 === response.statusCode) { | |||||
| resolve(response.data) | |||||
| } else { | |||||
| response = this.requestComFail(response) | |||||
| reject(response) | |||||
| } | |||||
| } | |||||
| const cancel = (t = 'handle cancel', config = options) => { | |||||
| const err = { | |||||
| errMsg: t, | |||||
| config: config | |||||
| } | |||||
| reject(err) | |||||
| next = false | |||||
| } | |||||
| handleRe = { ...this.requestBeforeFun(options, cancel) | |||||
| } | |||||
| const _config = { ...handleRe | |||||
| } | |||||
| if (!next) return | |||||
| delete _config.custom | |||||
| let mergeUrl = Request.posUrl(_config.url) ? _config.url : (_config.baseUrl + _config.url) | |||||
| if (JSON.stringify(_config.params) !== '{}') { | |||||
| const paramsH = Request.addQueryString(_config.params); | |||||
| mergeUrl += mergeUrl.indexOf('?') === -1 ? `?${paramsH}` : `&${paramsH}` | |||||
| } | |||||
| _config.url = mergeUrl | |||||
| uni.request(_config) | |||||
| }) | |||||
| } | |||||
| get(url, options = {}) { | |||||
| return this.request({ | |||||
| url, | |||||
| method: 'GET', | |||||
| ...options | |||||
| }) | |||||
| } | |||||
| post(url, data, options = {}) { | |||||
| return this.request({ | |||||
| url, | |||||
| data, | |||||
| method: 'POST', | |||||
| ...options | |||||
| }) | |||||
| } | |||||
| upload(url, { | |||||
| // #ifdef APP-PLUS | |||||
| files, | |||||
| // #endif | |||||
| // #ifdef MP-ALIPAY | |||||
| fileType, | |||||
| // #endif | |||||
| filePath, | |||||
| name, | |||||
| header, | |||||
| formData, | |||||
| custom | |||||
| }) { | |||||
| return new Promise((resolve, reject) => { | |||||
| let next = true | |||||
| let handleRe = {} | |||||
| const globalHeader = { ...this.config.header | |||||
| } | |||||
| delete globalHeader['content-type'] | |||||
| const pubConfig = { | |||||
| baseUrl: this.config.baseUrl, | |||||
| url, | |||||
| // #ifdef APP-PLUS | |||||
| files, | |||||
| // #endif | |||||
| // #ifdef MP-ALIPAY | |||||
| fileType, | |||||
| // #endif | |||||
| filePath, | |||||
| method: 'UPLOAD', | |||||
| name, | |||||
| header: header || globalHeader, | |||||
| formData, | |||||
| custom: { ...this.config.custom, | |||||
| ...(custom || {}) | |||||
| }, | |||||
| complete: (response) => { | |||||
| response.config = handleRe | |||||
| if (response.statusCode === 200) { // 成功 | |||||
| response = this.requestComFun(response) | |||||
| resolve(response) | |||||
| } else { | |||||
| response = this.requestComFail(response) | |||||
| reject(response) | |||||
| } | |||||
| } | |||||
| } | |||||
| const cancel = (t = 'handle cancel', config = pubConfig) => { | |||||
| const err = { | |||||
| errMsg: t, | |||||
| config: config | |||||
| } | |||||
| reject(err) | |||||
| next = false | |||||
| } | |||||
| handleRe = { ...this.requestBeforeFun(pubConfig, cancel) | |||||
| } | |||||
| const _config = { ...handleRe | |||||
| } | |||||
| if (!next) return | |||||
| delete _config.custom | |||||
| _config.url = Request.posUrl(_config.url) ? _config.url : (_config.baseUrl + _config.url) | |||||
| uni.uploadFile(_config) | |||||
| }) | |||||
| } | |||||
| } | |||||
| /** | |||||
| * setConfig回调 | |||||
| * @return {Object} - 返回操作后的config | |||||
| * @callback Request~setConfigCallback | |||||
| * @param {Object} config - 全局默认config | |||||
| */ | |||||
| /** | |||||
| * 请求拦截器回调 | |||||
| * @return {Object} - 返回操作后的config | |||||
| * @callback Request~requestCallback | |||||
| * @param {Object} config - 全局config | |||||
| * @param {Function} [cancel] - 取消请求钩子,调用会取消本次请求 | |||||
| */ | |||||
| /** | |||||
| * 响应拦截器回调 | |||||
| * @return {Object} - 返回操作后的response | |||||
| * @callback Request~responseCallback | |||||
| * @param {Object} response - 请求结果 response | |||||
| */ | |||||
| /** | |||||
| * 响应错误拦截器回调 | |||||
| * @return {Object} - 返回操作后的response | |||||
| * @callback Request~responseErrCallback | |||||
| * @param {Object} response - 请求结果 response | |||||
| */ | |||||
| @ -0,0 +1,12 @@ | |||||
| /** | |||||
| * 接口列表文件 | |||||
| */ | |||||
| export default { | |||||
| myInfo: {url:'/han-hai-dev/sm/index/getUserInfo',auth:false,method:'GET'}, | |||||
| //用户-微信公众号授权登录 | |||||
| wxLogin: {url:'/han-hai-dev/sm/index/wxLogin',auth:false,method:'POST'}, | |||||
| //微信支付 | |||||
| create: {url:'/job-dev/job/pay/create',auth:false,method:'GET'}, | |||||
| //创建分享 | |||||
| creteFenxian: {url:'/job-dev/binYuan/pay/creteFenXian',auth:false,method:'POST'}, | |||||
| }; | |||||
| @ -0,0 +1,37 @@ | |||||
| import Vue from 'vue' | |||||
| import Router from 'uni-simple-router' | |||||
| import store from '../store' | |||||
| Vue.use(Router) | |||||
| //初始化 | |||||
| const router = new Router({ | |||||
| APP: { | |||||
| animation: { | |||||
| animationType: 'pop-in', | |||||
| animationDuration: 300 | |||||
| } | |||||
| }, | |||||
| encodeURI: false, | |||||
| routes: ROUTES //路由表 | |||||
| }); | |||||
| //全局路由前置守卫 | |||||
| // router.beforeEach((to, from, next) => { | |||||
| // // 有两个个判断条件,一个是token,还有一个路由元信息 | |||||
| // let userInfo = Boolean(uni.getStorageSync('userInfo')); | |||||
| // let token = uni.getStorageSync('userToken'); | |||||
| // // 权限控制 | |||||
| // if(!token){ | |||||
| // uni.reLaunch({ | |||||
| // url: '/pages/login/login' | |||||
| // }); | |||||
| // } | |||||
| // next() | |||||
| // // if (to.meta && to.meta.auth && !userInfo) { | |||||
| // // store.commit('LOGIN_TIP', true) | |||||
| // // } else { | |||||
| // // } | |||||
| // }) | |||||
| // 全局路由后置守卫 | |||||
| router.afterEach((to, from) => {}) | |||||
| export default router; | |||||
| @ -0,0 +1 @@ | |||||
| export default {} | |||||
| @ -0,0 +1 @@ | |||||
| export default {} | |||||
| @ -0,0 +1,16 @@ | |||||
| import Vue from "vue" | |||||
| import Vuex from "vuex" | |||||
| import state from './state.js' | |||||
| import actions from './actions.js' | |||||
| import getters from './getters.js' | |||||
| import mutations from './mutations.js' | |||||
| Vue.use(Vuex) | |||||
| export default new Vuex.Store({ | |||||
| state, | |||||
| actions, | |||||
| getters, | |||||
| mutations, | |||||
| modules:{ | |||||
| } | |||||
| }) | |||||
| @ -0,0 +1,18 @@ | |||||
| export default { | |||||
| 'set_userToken' (state, userToken) {//存储 userToken | |||||
| state.userToken = userToken | |||||
| uni.setStorageSync('userToken', userToken) | |||||
| }, | |||||
| 'set_userInfo' (state, userInfo) {//存储 userToken | |||||
| state.userInfo = JSON.stringify(userInfo) | |||||
| uni.setStorageSync('userInfo', JSON.stringify(userInfo)) | |||||
| }, | |||||
| 'set_geographyStatus' (state, flag) { | |||||
| state.geographyStatus = flag | |||||
| uni.setStorageSync('geographyStatus', flag) | |||||
| }, | |||||
| 'set_ivcode' (state, ivcode) { | |||||
| state.ivcode = ivcode | |||||
| uni.setStorageSync('ivcode', ivcode) | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,6 @@ | |||||
| export default { | |||||
| userToken: uni.getStorageSync('userToken') || '', | |||||
| userInfo: uni.getStorageSync('userInfo') || '', | |||||
| ivcode: uni.getStorageSync('ivcode') || '', | |||||
| geographyStatus: uni.getStorageSync('geographyStatus') || '', | |||||
| } | |||||
| @ -0,0 +1,453 @@ | |||||
| /* 1. 页面背景色 */ | |||||
| .page{ | |||||
| background-color: #EDEDED; | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| min-height: 100%; | |||||
| height: auto; | |||||
| /* #endif */ | |||||
| /* #ifdef APP-PLUS-NVUE */ | |||||
| flex: 1; | |||||
| /* #endif */ | |||||
| } | |||||
| /* 2. 主背景色(原谅绿) */ | |||||
| .main-bg-color{ | |||||
| background-color: #F6F7F8 !important; | |||||
| } | |||||
| /* 3. 主文字色(原谅绿) */ | |||||
| .main-text-color{ | |||||
| color: #333333; | |||||
| } | |||||
| /* 4. 主边框颜色(原谅绿) */ | |||||
| .border-main{ | |||||
| border-color: #08C060 !important; | |||||
| } | |||||
| /* 防止图片闪一下 */ | |||||
| image{will-change: transform;width: 100%; } | |||||
| /* scroll-view 横向 */ | |||||
| .scroll-row{ width: 100%;white-space: nowrap; } | |||||
| .scroll-row-item{ display: inline-block; } | |||||
| /* 图标 */ | |||||
| .iconfont{ | |||||
| font-family:iconfont; | |||||
| } | |||||
| .view,.text{ | |||||
| font-size:24rpx; | |||||
| line-height:1.8; | |||||
| color:#0E151D; | |||||
| } | |||||
| /* 宽度 */ | |||||
| .w-100{ width: 750rpx; } | |||||
| .h-100 {height: 100%;} | |||||
| .min-h-100 {min-height: 100vh;} | |||||
| /* flex 布局 */ | |||||
| .flex{ | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| display:flex; | |||||
| /* #endif */ | |||||
| flex-direction:row; | |||||
| } | |||||
| .flex-row{ flex-direction:row!important; } | |||||
| .flex-column{ flex-direction:column!important; } | |||||
| .flex-row-reverse{ flex-direction:row-reverse!important; } | |||||
| .flex-column-reverse{ flex-direction:column-reverse!important; } | |||||
| .flex-wrap{ flex-wrap:wrap;} | |||||
| .flex-nowrap{ flex-wrap:nowrap;} | |||||
| .justify-start{justify-content:flex-start;} | |||||
| .justify-end{justify-content:flex-end;} | |||||
| .justify-between{justify-content:space-between;} | |||||
| .justify-center{justify-content:center;} | |||||
| .align-center{ align-items: center; } | |||||
| .align-stretch{ align-items: stretch; } | |||||
| .align-start{ align-items: flex-start; } | |||||
| .align-end{ align-items: flex-end; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .content-start {align-content: flex-start;} | |||||
| .content-end {align-content: flex-end;} | |||||
| .content-center {align-content: center;} | |||||
| .content-between {align-content: space-between;} | |||||
| .content-around {align-content: space-around;} | |||||
| .content-stretch {align-content: stretch;} | |||||
| /* #endif */ | |||||
| .flex-1{ flex: 1 !important; } | |||||
| .flex-2{ flex: 2 !important; } | |||||
| .flex-3{ flex: 3 !important; } | |||||
| .flex-4{ flex: 4 !important; } | |||||
| .flex-5{ flex: 5 !important; } | |||||
| .flex-6{ flex: 6 !important; } | |||||
| .flex-7{ flex: 7 !important; } | |||||
| .flex-8{ flex: 8 !important; } | |||||
| .flex-9{ flex: 9 !important; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .flex-shrink{ flex-shrink: 0; } | |||||
| /* #endif */ | |||||
| .container { | |||||
| padding-right: 20rpx; | |||||
| padding-left: 20rpx; | |||||
| } | |||||
| /* -- 内外边距 -- */ | |||||
| .m-0 { margin: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .m-auto{ margin: auto; } | |||||
| /* #endif */ | |||||
| .m-1 { margin: 10rpx; } | |||||
| .m-2 { margin: 20rpx; } | |||||
| .m-3 { margin: 30rpx; } | |||||
| .m-4 { margin: 40rpx; } | |||||
| .m-5 { margin: 50rpx; } | |||||
| .mt-0 { margin-top: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .mt-auto { margin-top: auto; } | |||||
| /* #endif */ | |||||
| .mt-1 { margin-top: 10rpx; } | |||||
| .mt-2 { margin-top: 20rpx; } | |||||
| .mt-3 { margin-top: 30rpx; } | |||||
| .mt-4 { margin-top: 40rpx; } | |||||
| .mt-5 { margin-top: 50rpx; } | |||||
| .mb-0 { margin-bottom: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .mb-auto { margin-bottom: auto; } | |||||
| /* #endif */ | |||||
| .mb-1 { margin-bottom: 10rpx; } | |||||
| .mb-2 { margin-bottom: 20rpx; } | |||||
| .mb-3 { margin-bottom: 30rpx; } | |||||
| .mb-4 { margin-bottom: 40rpx; } | |||||
| .mb-5 { margin-bottom: 50rpx; } | |||||
| .ml-0 { margin-left: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .ml-auto { margin-left: auto; } | |||||
| /* #endif */ | |||||
| .ml-1 { margin-left: 10rpx; } | |||||
| .ml-2 { margin-left: 20rpx; } | |||||
| .ml-3 { margin-left: 30rpx; } | |||||
| .ml-4 { margin-left: 40rpx; } | |||||
| .ml-5 { margin-left: 50rpx; } | |||||
| .mr-0 { margin-right: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .mr-auto { margin-right: auto; } | |||||
| /* #endif */ | |||||
| .mr-1 { margin-right: 10rpx; } | |||||
| .mr-2 { margin-right: 20rpx; } | |||||
| .mr-3 { margin-right: 30rpx; } | |||||
| .mr-4 { margin-right: 40rpx; } | |||||
| .mr-5 { margin-right: 50rpx; } | |||||
| .my-0 { margin-top: 0; margin-bottom: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .my-auto { margin-top: auto; margin-bottom: auto; } | |||||
| /* #endif */ | |||||
| .my-1 { margin-top: 10rpx; margin-bottom: 10rpx; } | |||||
| .my-2 { margin-top: 20rpx; margin-bottom: 20rpx; } | |||||
| .my-3 { margin-top: 30rpx; margin-bottom: 30rpx; } | |||||
| .my-4 { margin-top: 40rpx; margin-bottom: 40rpx; } | |||||
| .my-5 { margin-top: 50rpx; margin-bottom: 50rpx; } | |||||
| .mx-0 { margin-left: 0; margin-right: 0; } | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .mx-auto { margin-left: auto; margin-right: auto; } | |||||
| /* #endif */ | |||||
| .mx-1 { margin-left: 10rpx; margin-right: 10rpx;} | |||||
| .mx-2 { margin-left: 20rpx; margin-right: 20rpx;} | |||||
| .mx-3 { margin-left: 30rpx; margin-right: 30rpx;} | |||||
| .mx-4 { margin-left: 40rpx; margin-right: 40rpx;} | |||||
| .mx-5 { margin-left: 50rpx; margin-right: 50rpx;} | |||||
| .p-0 { padding: 0; } | |||||
| .p { padding: 5rpx; } | |||||
| .p-1 { padding: 10rpx; } | |||||
| .p-2 { padding: 20rpx; } | |||||
| .p-3 { padding: 30rpx; } | |||||
| .p-4 { padding: 40rpx; } | |||||
| .p-5 { padding: 50rpx; } | |||||
| .pt-0 { padding-top: 0; } | |||||
| .pt { padding-top: 5rpx; } | |||||
| .pt-1 { padding-top: 10rpx; } | |||||
| .pt-2 { padding-top: 20rpx; } | |||||
| .pt-3 { padding-top: 30rpx; } | |||||
| .pt-4 { padding-top: 40rpx; } | |||||
| .pt-5 { padding-top: 50rpx; } | |||||
| .pb-0 { padding-bottom: 0; } | |||||
| .pb-1 { padding-bottom: 10rpx; } | |||||
| .pb { padding-bottom: 5rpx; } | |||||
| .pb-2 { padding-bottom: 20rpx; } | |||||
| .pb-3 { padding-bottom: 30rpx; } | |||||
| .pb-4 { padding-bottom: 40rpx; } | |||||
| .pb-5 { padding-bottom: 50rpx; } | |||||
| .pl-0 { padding-left: 0; } | |||||
| .pl { padding-left: 5rpx; } | |||||
| .pl-1 { padding-left: 10rpx; } | |||||
| .pl-2 { padding-left: 20rpx; } | |||||
| .pl-3 { padding-left: 30rpx; } | |||||
| .pl-4 { padding-left: 40rpx; } | |||||
| .pl-5 { padding-left: 50rpx; } | |||||
| .pr-0 { padding-right: 0; } | |||||
| .pr { padding-right: 5rpx; } | |||||
| .pr-1 { padding-right: 10rpx; } | |||||
| .pr-2 { padding-right: 20rpx; } | |||||
| .pr-3 { padding-right: 30rpx; } | |||||
| .pr-4 { padding-right: 40rpx; } | |||||
| .pr-5 { padding-right: 50rpx; } | |||||
| .py-0 { padding-top: 0; padding-bottom: 0; } | |||||
| .py { padding-top: 5rpx; padding-bottom: 5rpx; } | |||||
| .py-1 { padding-top: 10rpx; padding-bottom: 10rpx; } | |||||
| .py-2 { padding-top: 20rpx; padding-bottom: 20rpx; } | |||||
| .py-3 { padding-top: 30rpx; padding-bottom: 30rpx; } | |||||
| .py-4 { padding-top: 40rpx; padding-bottom: 40rpx; } | |||||
| .py-5 { padding-top: 50rpx; padding-bottom: 50rpx; } | |||||
| .px-0 { padding-left: 0; padding-right: 0; } | |||||
| .px-1 { padding-left: 10rpx; padding-right: 10rpx;} | |||||
| .px { padding-left: 5rpx; padding-right: 5rpx;} | |||||
| .px-2 { padding-left: 20rpx; padding-right: 20rpx;} | |||||
| .px-3 { padding-left: 30rpx; padding-right: 30rpx;} | |||||
| .px-4 { padding-left: 40rpx; padding-right: 40rpx;} | |||||
| .px-5 { padding-left: 50rpx; padding-right: 50rpx;} | |||||
| /* 文字大小 */ | |||||
| .font-lg { font-size: 40rpx;} | |||||
| .font-38 { font-size: 38rpx;} | |||||
| .font-36 { font-size: 36rpx;} | |||||
| .font-md { font-size: 35rpx;} | |||||
| .font-34 { font-size: 34rpx;} | |||||
| .font-32 {font-size: 32rpx} | |||||
| .font { font-size: 30upx;} | |||||
| .font-main {font-size: 28rpx;} | |||||
| .font-26 {font-size: 26rpx} | |||||
| .font-sm { font-size: 25upx;} | |||||
| .font-24 {font-size: 24rpx} | |||||
| .font-22 {font-size: 22rpx} | |||||
| .font-small { font-size: 20upx;} | |||||
| .font-10 {font-size: 24rpx; transform:scale(0.81);} | |||||
| .h1{font-size:80upx; line-height:1.8;} | |||||
| .h2{font-size:60upx; line-height:1.8;} | |||||
| .h3{font-size:45upx; line-height:1.8;} | |||||
| .h4{font-size:32upx; line-height:1.8;} | |||||
| .h5{font-size:30upx; line-height:1.8;} | |||||
| .h6{font-size:28upx; line-height:1.8;} | |||||
| /* 文字缩进 */ | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .text-indent{text-indent:2;} | |||||
| /* #endif */ | |||||
| /* 文字划线 */ | |||||
| .text-through{text-decoration:line-through;} | |||||
| /* 文字对齐 */ | |||||
| .text-left { text-align: left;} | |||||
| .text-right { text-align: right;} | |||||
| .text-center { text-align: center;} | |||||
| /* 文字换行溢出处理 */ | |||||
| .text-ellipsis { | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| overflow: hidden;text-overflow: ellipsis;white-space: nowrap; | |||||
| /* #endif */ | |||||
| /* #ifdef APP-PLUS-NVUE */ | |||||
| lines: 1; | |||||
| /* #endif */ | |||||
| } | |||||
| /* 文字粗细和斜体 */ | |||||
| .font-weight-light {font-weight: 300;} /*细*/ | |||||
| .font-weight-lighter {font-weight: 100;}/*更细*/ | |||||
| .font-weight-normal { font-weight: 500;} /*正常*/ | |||||
| .font-weight-bold { font-weight: 700;} /*粗*/ | |||||
| .font-weight-bolder { font-weight: bold;} /*更粗*/ | |||||
| .font-italic { font-style: italic;} /*斜体*/ | |||||
| /* 文字颜色 */ | |||||
| .text-red {color: #FF0000} | |||||
| .text-white {color: #ffffff;} | |||||
| .text-primary {color: #007bff;} | |||||
| .text-hover-primary { color: #0056b3;} | |||||
| .text-secondary {color: #6c757d;} | |||||
| .text-hover-secondary { color: #494f54;} | |||||
| .text-success {color: #28a745;} | |||||
| .text-hover-success{color: #19692c;} | |||||
| .text-info { color: #17a2b8;} | |||||
| .text-hover-info {color: #0f6674;} | |||||
| .text-warning {color: #ffc107;} | |||||
| .text-hover-warning { color: #ba8b00;} | |||||
| .text-danger { color: #dc3545;} | |||||
| .text-hover-danger { color: #a71d2a;} | |||||
| .text-light { color: #f8f9fa;} | |||||
| .text-hover-light { color: #cbd3da;} | |||||
| .text-dark { color: #343a40;} | |||||
| .text-hover-dark{ color: #121416;} | |||||
| .text-body { color: #212529;} | |||||
| .text-muted { color: #999999;} | |||||
| .text-EE8414 {color: #EE8414;} | |||||
| .text-FE6347 {color:#FE6347} | |||||
| .text-blue {color: #0175FF} | |||||
| .text-black {color: #000} | |||||
| .text-light-muted { color: #A9A5A0;} | |||||
| .text-light-black { color: rgba(0, 0, 0, 0.5);} | |||||
| .text-light-white { color: rgba(255, 255, 255, 0.5);} | |||||
| /* 背景颜色 */ | |||||
| .bg-primary { background-color: #007bff;} | |||||
| .bg-hover-primary:hover{ background-color: #0062cc !important;} | |||||
| .bg-secondary { background-color: #6c757d;} | |||||
| .bg-hover-secondary:hover{ background-color: #545b62 !important;} | |||||
| .bg-success { background-color: #28a745;} | |||||
| .bg-hover-success { background-color: #1e7e34 !important;} | |||||
| .bg-info { background-color: #17a2b8;} | |||||
| .bg-hover-info { background-color: #117a8b !important;} | |||||
| .bg-warning { background-color: #ffc107;} | |||||
| .bg-FFE9E5 {background-color:#FFE9E5 !important;} | |||||
| .bg-hover-warning { background-color: #d39e00 !important;} | |||||
| .bg-hover-f1f1f1 {background-color: #f1f1f1 !important;} | |||||
| .bg-hover-dc563e {background-color: #ef5d43 !important;} | |||||
| .bg-danger { background-color: #dc3545;} | |||||
| .bg-FE6347 {background-color: #FE6347 !important;} | |||||
| .bg-hover-danger{ background-color: #bd2130 !important;} | |||||
| .bg-light { background-color: #f8f9fa;} | |||||
| .bg-hover-light{ background-color: #dae0e5 !important;} | |||||
| .bg-dark { background-color: #343a40;} | |||||
| .bg-hover-dark { background-color: #1d2124 !important;} | |||||
| .bg-white { background-color: #ffffff;} | |||||
| .bg-hover-main {background-color: #F6F7F8 !important;} | |||||
| .bg-transparent { background-color: transparent;} | |||||
| /* 边框 */ | |||||
| .border { border-width: 1rpx;border-style: solid;border-color: #dee2e6;} | |||||
| .border-top { | |||||
| border-top-width: 1rpx; | |||||
| border-top-style: solid; | |||||
| border-top-color: #dee2e6; | |||||
| } | |||||
| .border-right { | |||||
| border-right-width: 1rpx; | |||||
| border-right-style: solid; | |||||
| border-right-color: #dee2e6; | |||||
| } | |||||
| .border-bottom { | |||||
| border-bottom-width: 1rpx; | |||||
| border-bottom-style: solid; | |||||
| border-bottom-color: #dee2e6; | |||||
| } | |||||
| .border-bottom-ee { | |||||
| border-bottom-width: 1rpx; | |||||
| border-bottom-style: solid; | |||||
| border-bottom-color: #EEEEEE; | |||||
| } | |||||
| .border-bottom-dashed { | |||||
| border-bottom-width: 2rpx; | |||||
| border-bottom-style: dashed; | |||||
| border-bottom-color: #F2F2F2; | |||||
| } | |||||
| .border-top-dashed { | |||||
| border-top-width: 2rpx; | |||||
| border-top-style: dashed; | |||||
| border-top-color: #F2F2F2; | |||||
| } | |||||
| .border-left { | |||||
| border-left-width: 1rpx; | |||||
| border-left-style: solid; | |||||
| border-left-color: #dee2e6; | |||||
| } | |||||
| .border-0 { border-width: 0!important;} | |||||
| .border-top-0 { border-top-width: 0!important;} | |||||
| .border-right-0 {border-right-width: 0!important;} | |||||
| .border-bottom-0 {border-bottom-width: 0!important;} | |||||
| .border-left-0 {border-left-width: 0!important;} | |||||
| .border-primary { border-color: #007bff;} | |||||
| .border-secondary {border-color: #6c757d;} | |||||
| .border-light-secondary {border-color: #E9E8E5;} | |||||
| .border-success {border-color: #28a745;} | |||||
| .border-info {border-color: #17a2b8;} | |||||
| .border-warning {border-color: #ffc107;} | |||||
| .border-danger {border-color: #dc3545;} | |||||
| .border-light {border-color: #f8f9fa;} | |||||
| .border-dark {border-color: #343a40;} | |||||
| .border-white {border-color: #FFFFFF;} | |||||
| /* 圆角 */ | |||||
| .rounded { border-radius: 8rpx;} | |||||
| .rounded-top { | |||||
| border-top-left-radius: 8rpx; | |||||
| border-top-right-radius: 8rpx; | |||||
| } | |||||
| .rounded-right { | |||||
| border-top-right-radius: 8rpx; | |||||
| border-bottom-right-radius: 8rpx; | |||||
| } | |||||
| .rounded-bottom { | |||||
| border-bottom-right-radius: 8rpx; | |||||
| border-bottom-left-radius: 8rpx; | |||||
| } | |||||
| .rounded-left { | |||||
| border-top-left-radius: 8rpx; | |||||
| border-bottom-left-radius: 8rpx; | |||||
| } | |||||
| .rounded-circle { border-radius: 100rpx;} | |||||
| .rounded-0 { border-radius: 0;} | |||||
| /* 显示 */ | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .d-none{ display: none; } | |||||
| .d-inline-block{ display: inline-block; } | |||||
| .d-block{ display: block; } | |||||
| /* #endif */ | |||||
| /* 内容溢出 */ | |||||
| .overflow-hidden { overflow: hidden;} | |||||
| /* 定位 */ | |||||
| .position-relative { position: relative;} | |||||
| .position-absolute { position: absolute;} | |||||
| .position-fixed { position: fixed;} | |||||
| /* 定位 - 固定顶部 */ | |||||
| .fixed-top { | |||||
| position: fixed !important; | |||||
| top: 0; | |||||
| right: 0; | |||||
| left: 0; | |||||
| z-index: 1030; | |||||
| } | |||||
| /* 定位 - 固定底部 */ | |||||
| .fixed-bottom { | |||||
| position: fixed; | |||||
| right: 0; | |||||
| bottom: 0; | |||||
| left: 0; | |||||
| z-index: 1030; | |||||
| } | |||||
| .top-0 { top: 0; } | |||||
| .left-0 { left: 0; } | |||||
| .right-0 { right: 0; } | |||||
| .bottom-0 { bottom: 0; } | |||||
| /* 阴影 */ | |||||
| /* #ifndef APP-PLUS-NVUE */ | |||||
| .shadow { box-shadow: 0 2upx 12upx rgba(0, 0, 0, 0.15);} | |||||
| .shadow-lg { box-shadow: 0upx 40upx 100upx 0upx rgba(0, 0, 0, 0.175);} | |||||
| .shadow-none { box-shadow: none !important;} | |||||
| .shadow-sm { | |||||
| box-shadow: 0 2upx 4upx rgba(114, 130, 138, 0.2)!important; | |||||
| } | |||||
| .shadow { | |||||
| box-shadow: 0 8upx 16upx rgba(114, 130, 138, 0.2)!important; | |||||
| } | |||||
| .shadow-md { | |||||
| box-shadow: 0 12upx 20upx rgba(114, 130, 138, 0.2)!important; | |||||
| } | |||||
| .shadow-lg { | |||||
| box-shadow: 0 16upx 48upx rgba(114, 130, 138, 0.2)!important; | |||||
| } | |||||
| .shadow-qm { | |||||
| box-shadow: 10rpx 10rpx 10rpx rgba(0, 0, 0, 0.02), 10rpx -10rpx 10rpx rgba(0, 0, 0, 0.02), -10rpx 10rpx 10rpx rgba(0, 0, 0, 0.02), -10rpx -10rpx 10rpx rgba(0, 0, 0, 0.02) !important; | |||||
| } | |||||
| /* #endif */ | |||||
| .user-msg-r{ | |||||
| width: 150rpx; | |||||
| height: 60rpx; | |||||
| background: #F0F0F7; | |||||
| border-radius: 30rpx; | |||||
| text-align: center; | |||||
| line-height: 60rpx; | |||||
| font-weight: bold; | |||||
| font-size: 30rpx; | |||||
| color: #0175FF; | |||||
| margin-top: 13rpx; | |||||
| } | |||||
| @ -0,0 +1,44 @@ | |||||
| html, body, div, span, applet, object, iframe, | |||||
| h1, h2, h3, h4, h5, h6, p, blockquote, pre, | |||||
| a, abbr, acronym, address, big, cite, code, | |||||
| del, dfn, em, img, ins, kbd, q, s, samp, | |||||
| small, strike, strong, sub, sup, tt, var, | |||||
| b, u, i, center, | |||||
| dl, dt, dd, ol, ul, li, | |||||
| fieldset, form, label, legend, | |||||
| table, caption, tbody, tfoot, thead, tr, th, td, | |||||
| article, aside, canvas, details, embed, | |||||
| figure, figcaption, footer, header, hgroup, | |||||
| menu, nav, output, ruby, section, summary, | |||||
| time, mark, audio, video { | |||||
| margin: 0; | |||||
| padding: 0; | |||||
| border: 0; | |||||
| font-size: 100%; | |||||
| font: inherit; | |||||
| vertical-align: baseline; | |||||
| font-family: PingFang SC; | |||||
| } | |||||
| /* HTML5 display-role reset for older browsers */ | |||||
| article, aside, details, figcaption, figure, | |||||
| footer, header, hgroup, menu, nav, section { | |||||
| display: block; | |||||
| } | |||||
| body { | |||||
| line-height: 1; | |||||
| } | |||||
| ol, ul { | |||||
| list-style: none; | |||||
| } | |||||
| blockquote, q { | |||||
| quotes: none; | |||||
| } | |||||
| blockquote:before, blockquote:after, | |||||
| q:before, q:after { | |||||
| content: ''; | |||||
| content: none; | |||||
| } | |||||
| table { | |||||
| border-collapse: collapse; | |||||
| border-spacing: 0; | |||||
| } | |||||
| @ -0,0 +1,75 @@ | |||||
| /** | |||||
| * 这里是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:24rpx; | |||||
| $uni-font-size-base:28rpx; | |||||
| $uni-font-size-lg:32rpx; | |||||
| /* 图片尺寸 */ | |||||
| $uni-img-size-sm:40rpx; | |||||
| $uni-img-size-base:52rpx; | |||||
| $uni-img-size-lg:80rpx; | |||||
| /* Border Radius */ | |||||
| $uni-border-radius-sm: 4rpx; | |||||
| $uni-border-radius-base: 6rpx; | |||||
| $uni-border-radius-lg: 12rpx; | |||||
| $uni-border-radius-circle: 50%; | |||||
| /* 水平间距 */ | |||||
| $uni-spacing-row-sm: 10px; | |||||
| $uni-spacing-row-base: 20rpx; | |||||
| $uni-spacing-row-lg: 30rpx; | |||||
| /* 垂直间距 */ | |||||
| $uni-spacing-col-sm: 8rpx; | |||||
| $uni-spacing-col-base: 16rpx; | |||||
| $uni-spacing-col-lg: 24rpx; | |||||
| /* 透明度 */ | |||||
| $uni-opacity-disabled: 0.3; // 组件禁用态的透明度 | |||||
| /* 文章场景相关 */ | |||||
| $uni-theme-color: #0175FF; | |||||
| $uni-text-color: #FF0000; | |||||
| @import 'uview-ui/theme.scss'; | |||||