Browse Source

要酒注册页面

zhanghui 5 months ago
commit
ee1f580eb0

+ 5 - 0
.idea/.gitignore

@@ -0,0 +1,5 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/

+ 6 - 0
.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JavaScriptSettings">
+    <option name="languageLevel" value="ES6" />
+  </component>
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/yaojiu.iml" filepath="$PROJECT_DIR$/.idea/yaojiu.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 12 - 0
.idea/yaojiu.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 12 - 0
.idea/yj-register.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 18 - 0
App.vue

@@ -0,0 +1,18 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style lang="scss">
+    /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
+    @import "uview-ui/index.scss";
+</style>

+ 83 - 0
common/css/common.css

@@ -0,0 +1,83 @@
+* {
+	margin: 0;
+	padding: 0;
+}
+
+.flex-col {
+	display: flex;
+	flex-direction: column;
+}
+
+.flex-row {
+	display: flex;
+	flex-direction: row;
+}
+
+.flex-row-reverse {
+	display: flex;
+	flex-direction: row-reverse;
+}
+
+.bord {
+	border: 1px solid red;
+}
+
+.justify-start {
+	display: flex;
+	justify-content: flex-start;
+}
+
+.justify-center {
+	display: flex;
+	justify-content: center;
+}
+
+.justify-end {
+	display: flex;
+	justify-content: flex-end;
+}
+
+.justify-evenly {
+	display: flex;
+	justify-content: space-evenly;
+}
+
+.justify-around {
+	display: flex;
+	justify-content: space-around;
+}
+
+.justify-between {
+	display: flex;
+	justify-content: space-between;
+}
+
+.align-start {
+	display: flex;
+	align-items: flex-start;
+}
+
+.align-center {
+	display: flex;
+	align-items: center;
+}
+
+.align-end {
+	display: flex;
+	align-items: flex-end;
+}
+
+.sticky {
+	/* #ifndef APP-PLUS-NVUE */
+	display: flex;
+	position: -webkit-sticky;
+	/* #endif */
+	position: sticky;
+	top: 0rpx;
+	z-index: 99;
+
+}
+
+.bord {
+	border: 1px solid red;
+}

+ 6 - 0
common/js/api.js

@@ -0,0 +1,6 @@
+// 引用网络请求中间件
+import service from "../js/service.js";
+
+export default {
+	service
+}

+ 15 - 0
common/js/env.js

@@ -0,0 +1,15 @@
+"use strict";
+
+let baseUrl = `http://admin.yaojiuapp.com/api`
+
+
+
+
+// 变量可自行添加修改
+export default { //存放变量的容器
+	appid: '__UNI__1EEA945',
+	baseUrl,
+
+	uploadUrl: '/v1/file/put-file'
+
+}

+ 71 - 0
common/js/request.js

@@ -0,0 +1,71 @@
+import env from '../js/env.js';
+
+function service(options = {},flag) {
+	options.url = `${env.baseUrl}${options.url}`;
+	// 判断本地是否存在token,如果存在则带上请求头
+	let access_token = uni.getStorageSync('accessToken')
+	let refresh_token = uni.getStorageSync('refresh_token')
+
+	if (flag){
+		options.header = {
+			'Authorization': 'Bearer '+ access_token,
+			'content-type':'application/x-www-form-urlencoded'
+		};
+	}else {
+		options.header = {
+			'Authorization': 'Bearer '+ access_token,
+			'content-type':'application/json'
+		};
+	}
+
+
+	// resolved是返回成功数据,rejected返回错误数据
+	return new Promise((resolved, rejected) => {
+		options.success = (res) => {
+			// 如果请求回来的状态码不是200则执行以下操作
+			if (res.data.code !== 200) {
+				// 非成功状态码弹窗
+				console.log('错误信息:+++',res.data.msg)
+
+				// 这里可以做一些状态码判断以及操作
+				if(res.data.code === 401){
+					uni.showToast({
+						icon: 'none',
+						duration: 3000,
+						title: '登录过期,即将跳转登录页'
+					});
+					setTimeout(()=>{
+						uni.navigateTo({
+							url:'/pages/login/login'
+						})
+					},3000)
+
+				}else{
+					uni.showToast({
+						icon: 'none',
+						duration: 3000,
+						title: res.data.msg || '系统繁忙,请重试!'
+					});
+				}
+				// 返回错误信息
+				rejected(res)
+			} else {
+				// 请求回来的状态码为200则返回内容
+				resolved(res)
+			}
+		};
+		options.fail = (err) => {
+			console.log('错误信息:+++',err)
+			// 请求失败弹窗
+			uni.showToast({
+				icon: 'none',
+				duration: 3000,
+				title: '服务器连接失败,请检查网络'
+			});
+			rejected(err);
+		};
+		uni.request(options);
+	});
+}
+
+export default service;

+ 31 - 0
common/js/service.js

@@ -0,0 +1,31 @@
+import request from '../js/request.js';
+
+
+export default {
+
+    // get请求,获取手机验证码
+    getSmsCode(data) {
+        return request({
+            url: '/v1/common/send-validate?phone='+ data.phone,
+            method: 'POST'
+        })
+    },
+
+    register(data) {
+        return request({
+            url: '/v1/user-register',
+            method: 'POST',
+            data: data
+        },true)
+    },
+
+    versionUpgrade() {
+        return request({
+            url: '/v1/versionUpgrade',
+            method: 'GET',
+        })
+    },
+
+
+
+}

+ 20 - 0
index.html

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

+ 16 - 0
main.js

@@ -0,0 +1,16 @@
+import App from './App'
+
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+import uView from "uview-ui";
+import api from './common/js/api'
+Vue.prototype.$api = api;
+Vue.prototype.$phonePattern = '^1[3-9][0-9]\\d{8}$';
+Vue.use(uView);
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+  ...App
+})
+app.$mount()
+

+ 72 - 0
manifest.json

@@ -0,0 +1,72 @@
+{
+    "name" : "yaojiu",
+    "appid" : "",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}

+ 31 - 0
package-lock.json

@@ -0,0 +1,31 @@
+{
+  "name": "yaojiu",
+  "version": "1.0.0",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "yaojiu",
+      "version": "1.0.0",
+      "license": "ISC",
+      "dependencies": {
+        "uview-ui": "^2.0.36"
+      }
+    },
+    "node_modules/uview-ui": {
+      "version": "2.0.36",
+      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.36.tgz",
+      "integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA==",
+      "engines": {
+        "HBuilderX": "^3.1.0"
+      }
+    }
+  },
+  "dependencies": {
+    "uview-ui": {
+      "version": "2.0.36",
+      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.36.tgz",
+      "integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA=="
+    }
+  }
+}

+ 15 - 0
package.json

@@ -0,0 +1,15 @@
+{
+  "name": "yaojiu",
+  "version": "1.0.0",
+  "description": "",
+  "main": "main.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC",
+  "dependencies": {
+    "uview-ui": "^2.0.36"
+  }
+}

+ 22 - 0
pages.json

@@ -0,0 +1,22 @@
+{
+	"easycom": {
+		"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
+	},
+
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationStyle": "custom",
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	},
+	"uniIdRouter": {}
+}

+ 259 - 0
pages/index/index.vue

@@ -0,0 +1,259 @@
+<template>
+    <view class="page">
+        <image class="bg" :src="'/static/img/bg1.jpg'"></image>
+        <view class="content">
+
+            <view>
+                <u--form labelPosition="left" :model="form" :rules="rules"  ref="uForm">
+                    <view class="flex-col justify-center inputView">
+                        <u-form-item prop="phone" ref="item1">
+                            <u-input v-model="form.phone" placeholder="请输入手机号" placeholderStyle="color:#333333" border="none"></u-input>
+                        </u-form-item>
+                    </view>
+
+                    <view class="flex-col justify-center inputView">
+                        <u-form-item prop="captchaCode" ref="item1">
+                            <u-input v-model="form.captchaCode" placeholder="请输入验证码" placeholderStyle="color:#333333" border="none"></u-input>
+                            <text class="tips" @click="getCode" >{{tips}}</text>
+                        </u-form-item>
+                    </view>
+
+                    <view class="flex-col justify-center inputView">
+                        <u-form-item prop="password" ref="item1">
+                            <u-input v-model="form.password" placeholder="请输入您的密码" placeholderStyle="color:#333333" border="none"></u-input>
+                        </u-form-item>
+                    </view>
+
+                    <view class="flex-col justify-center inputView">
+                        <u-form-item prop="password1" ref="item1">
+                            <u-input v-model="form.password1" placeholder="请再次输入您的密码" placeholderStyle="color:#333333" border="none"></u-input>
+                        </u-form-item>
+                    </view>
+
+                    <view class="flex-col justify-center inputView inputView1">
+                        <u-form-item prop="inviteCode" ref="item1">
+                            <u-input v-model="form.inviteCode" placeholder="请输入邀请码" placeholderStyle="color:#333333" border="none"></u-input>
+                        </u-form-item>
+                    </view>
+
+                </u--form>
+            </view>
+            <view class="flex-row justify-center read">
+                <view class="icon">
+                    <u-icon :name="'/static/img/xuanzhong.png'" size="16" v-if="select" @click="selectRead"></u-icon>
+                    <u-icon :name="'/static/img/weixuanzhong.png'"  size="16" v-else  @click="selectRead"></u-icon>
+                </view>
+                <text :style="{'margin-left':'10rpx'}">
+                    我已阅读并同意《要酒用户协议》
+                </text>
+            </view>
+            <view class="zcbtn" @click="register">注册</view>
+
+            <view class="xiazai">
+                <text >注册完成:</text>
+                <text class="xiazaiText" @click="versionUpgrade">下载安装包</text>
+            </view>
+
+        </view>
+        <u-code ref="uCode" @change="codeChange" seconds="60" @start="disabled1 = true" @end="disabled1 = false"></u-code>
+    </view>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                disabled1: false,
+                tips: '',
+                select:false,
+                form: {
+                    captchaId:'',
+                    phone: '',
+                    captchaCode: '',
+                    password: '',
+                    password1: '',
+                    inviteCode:''
+                },
+                rules: {
+                    'phone': {
+                        type: 'string',
+                        required: true,
+                        min: 11,
+                        max: 11,
+                        message: '请输入正确的手机号',
+                        trigger: ['blur']
+                    },
+                    'captchaCode': {
+                        type: 'string',
+                        min: 4,
+                        max: 6,
+                        required: true,
+                        message: '请输入正确的验证码',
+                        trigger: ['blur']
+                    },
+                    'password': {
+                        type: 'string',
+                        min: 6,
+                        max: 16,
+                        required: true,
+                        message: '请输入6-16位密码',
+                        trigger: ['blur']
+                    },
+                    'password1': {
+                        type: 'string',
+                        min: 6,
+                        max: 16,
+                        required: true,
+                        message: '请再次输入6-16位密码',
+                        trigger: ['blur']
+                    },
+
+                },
+            }
+        },
+        onLoad() {
+
+        },
+        methods: {
+
+            versionUpgrade(){
+                this.$api.service.versionUpgrade().then(res=>{
+                    console.log(res)
+
+                })
+            },
+
+            downloadFile(){
+                uni.downloadFile({
+                    url: 'https://www.example.com/file/test', //仅为示例,并非真实的资源
+                    success: (res) => {
+                        if (res.statusCode === 200) {
+                            console.log('下载成功');
+                        }
+                    }
+                })
+            },
+
+            selectRead(){
+                this.select = !this.select
+            },
+            register(){
+                if (!this.select){
+                    uni.$u.toast('请阅读并同意《要酒用户协议》')
+                    return
+                }
+
+
+                this.$refs.uForm.validate().then(r=>{
+                    this.$api.service.register(this.form).then(res=>{
+                        uni.showToast({
+                            icon: 'success',
+                            duration: 3000,
+                            title: '注册成功!'
+                        });
+                    })
+                })
+            },
+            getCode() {
+
+				console.log('6666666666666666666666')
+				let regExp = new RegExp(this.$phonePattern);
+                let b = regExp.test(this.form.phone)
+                if (!b) {
+                    uni.$u.toast('请输入正确的手机号')
+                    return
+                }
+                if (this.$refs.uCode.canGetCode) {
+                    // 模拟向后端请求验证码
+                    uni.showLoading({
+                        title: '正在获取验证码'
+                    })
+                    this.$api.service.getSmsCode(this.form).then(res => {
+                        this.form.captchaId= res.data.data.id
+                        uni.hideLoading();
+                        // 这里此提示会被this.start()方法中的提示覆盖
+                        uni.$u.toast('验证码已发送');
+                        // 通知验证码组件内部开始倒计时
+                        this.$refs.uCode.start();
+                    })
+                } else {
+                    uni.$u.toast('倒计时结束后再发送');
+                }
+            },
+            codeChange(text) {
+                this.tips = text;
+            },
+        }
+    }
+</script>
+
+<style>
+    .page {
+        width: 100vw;
+        height: 100vh;
+        position: relative;
+    }
+
+    .bg {
+        width: 100%;
+        height: 100%;
+    }
+
+    .content {
+        width: 100vw;
+        position: absolute;
+        bottom: 100rpx;
+        left: 0;
+    }
+
+
+    .inputView {
+        width: 646rpx;
+        min-height: 50rpx;
+        background: white;
+        margin-top: 20rpx;
+        margin-left: 32rpx;
+        border-radius: 15rpx;
+        overflow: hidden;
+        padding: 10rpx 20rpx;
+    }
+    .inputView1 {
+        background-color: rgba(255, 255, 255, 0.5)
+    }
+
+    .tips {
+        color: #b63a3a;
+
+
+    }
+	.zcbtn{
+		background: #fed09e;
+		width: 686rpx;
+		height: 80rpx;
+		border-radius: 40rpx;
+		text-align: center;
+		color: #bc372b;
+		line-height: 80rpx;
+		font-size: 36rpx;
+        margin-top: 20rpx;
+		margin-left: 32rpx;
+	}
+    .read{
+        color: white;
+        font-size: 22rpx;
+        margin-top: 20rpx;
+    }
+    .icon{
+        margin-top: 5rpx;
+    }
+    .xiazai{
+        width: 686rpx;
+        margin-top: 20rpx;
+        margin-left: 32rpx;
+        font-size: 26rpx;
+    }
+    .xiazaiText{
+        color: #007aff;
+    }
+</style>
+

BIN
static/img/bg1.jpg


BIN
static/img/bg2.jpg


BIN
static/img/weixuanzhong.png


BIN
static/img/xuanzhong.png


BIN
static/logo.png


+ 10 - 0
uni.promisify.adaptor.js

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

+ 78 - 0
uni.scss

@@ -0,0 +1,78 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
+@import 'uview-ui/theme.scss';
+@import "/common/css/common.css";