├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── public └── index.html ├── src ├── App.vue ├── global │ ├── request │ │ ├── api.ts │ │ └── request.ts │ └── service │ │ └── commonService.ts ├── main.ts ├── manifest.json ├── pages.json ├── pages │ └── index │ │ └── index.vue ├── request.ts ├── response │ └── responseData.ts ├── sfc.d.ts ├── static │ └── logo.png └── uni.scss └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | unpackage/ 4 | dist/ 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | 15 | # Editor directories and files 16 | .project 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw* 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Project setup 2 | 3 | ``` 4 | npm install 5 | ``` 6 | 7 | ### Compiles and hot-reloads for development 8 | 9 | ``` 10 | npm run dev:mp-weixin 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | 15 | ``` 16 | npm run build:mp-weixin 17 | ``` 18 | 19 | ### Customize configuration 20 | 21 | See [Configuration Reference](https://cli.vuejs.org/config/). 22 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | const plugins = [] 2 | 3 | if (process.env.UNI_OPT_TREESHAKINGNG) { 4 | plugins.push(require('@dcloudio/vue-cli-plugin-uni-optimize/packages/babel-plugin-uni-api/index.js')) 5 | } 6 | 7 | if ( 8 | ( 9 | process.env.UNI_PLATFORM === 'app-plus' && 10 | process.env.UNI_USING_V8 11 | ) || 12 | ( 13 | process.env.UNI_PLATFORM === 'h5' && 14 | process.env.UNI_H5_BROWSER === 'builtin' 15 | ) 16 | ) { 17 | const path = require('path') 18 | 19 | const isWin = /^win/.test(process.platform) 20 | 21 | const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path) 22 | 23 | const input = normalizePath(process.env.UNI_INPUT_DIR) 24 | try { 25 | plugins.push([ 26 | require('@dcloudio/vue-cli-plugin-hbuilderx/packages/babel-plugin-console'), 27 | { 28 | file (file) { 29 | file = normalizePath(file) 30 | if (file.indexOf(input) === 0) { 31 | return path.relative(input, file) 32 | } 33 | return false 34 | } 35 | } 36 | ]) 37 | } catch (e) {} 38 | } 39 | 40 | process.UNI_LIBRARIES = process.UNI_LIBRARIES || ['@dcloudio/uni-ui'] 41 | process.UNI_LIBRARIES.forEach(libraryName => { 42 | plugins.push([ 43 | 'import', 44 | { 45 | 'libraryName': libraryName, 46 | 'customName': (name) => { 47 | return `${libraryName}/lib/${name}/${name}` 48 | } 49 | } 50 | ]) 51 | }) 52 | module.exports = { 53 | presets: [ 54 | [ 55 | '@vue/app', 56 | { 57 | modules: 'commonjs', 58 | useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry' 59 | } 60 | ] 61 | ], 62 | plugins 63 | } 64 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ts-uni-mini", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "npm run dev:h5", 7 | "build": "npm run build:h5", 8 | "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build", 9 | "build:custom": "cross-env NODE_ENV=production uniapp-cli custom", 10 | "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build", 11 | "build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build", 12 | "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build", 13 | "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build", 14 | "build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build", 15 | "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build", 16 | "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build", 17 | "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build", 18 | "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build", 19 | "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build", 20 | "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build", 21 | "build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build", 22 | "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch", 23 | "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom", 24 | "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve", 25 | "dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch", 26 | "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch", 27 | "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch", 28 | "dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch", 29 | "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch", 30 | "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch", 31 | "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch", 32 | "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch", 33 | "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch", 34 | "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch", 35 | "dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch", 36 | "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js", 37 | "serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js", 38 | "test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i", 39 | "test:h5": "cross-env UNI_PLATFORM=h5 jest -i", 40 | "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i", 41 | "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i", 42 | "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i" 43 | }, 44 | "dependencies": { 45 | "@dcloudio/uni-app-plus": "^2.0.0-29820201110001", 46 | "@dcloudio/uni-h5": "^2.0.0-29820201110001", 47 | "@dcloudio/uni-helper-json": "*", 48 | "@dcloudio/uni-mp-360": "^2.0.0-29820201110001", 49 | "@dcloudio/uni-mp-alipay": "^2.0.0-29820201110001", 50 | "@dcloudio/uni-mp-baidu": "^2.0.0-29820201110001", 51 | "@dcloudio/uni-mp-qq": "^2.0.0-29820201110001", 52 | "@dcloudio/uni-mp-toutiao": "^2.0.0-29820201110001", 53 | "@dcloudio/uni-mp-vue": "^2.0.0-29820201110001", 54 | "@dcloudio/uni-mp-weixin": "^2.0.0-29820201110001", 55 | "@dcloudio/uni-quickapp-native": "^2.0.0-29820201110001", 56 | "@dcloudio/uni-quickapp-webview": "^2.0.0-29820201110001", 57 | "@dcloudio/uni-stat": "^2.0.0-29820201110001", 58 | "@vue/shared": "^3.0.0", 59 | "core-js": "^3.6.5", 60 | "css-scss": "^0.1.1", 61 | "flyio": "^0.6.2", 62 | "regenerator-runtime": "^0.12.1", 63 | "uview-ui": "^1.8.2", 64 | "vue": "^2.6.11", 65 | "vue-class-component": "^6.3.2", 66 | "vue-property-decorator": "^8.0.0", 67 | "vuex": "^3.2.0" 68 | }, 69 | "devDependencies": { 70 | "@babel/plugin-syntax-typescript": "^7.2.0", 71 | "@dcloudio/types": "*", 72 | "@dcloudio/uni-automator": "^2.0.0-29820201110001", 73 | "@dcloudio/uni-cli-shared": "^2.0.0-29820201110001", 74 | "@dcloudio/uni-migration": "^2.0.0-29820201110001", 75 | "@dcloudio/uni-template-compiler": "^2.0.0-29820201110001", 76 | "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.0-29820201110001", 77 | "@dcloudio/vue-cli-plugin-uni": "^2.0.0-29820201110001", 78 | "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.0-29820201110001", 79 | "@dcloudio/webpack-uni-mp-loader": "^2.0.0-29820201110001", 80 | "@dcloudio/webpack-uni-pages-loader": "^2.0.0-29820201110001", 81 | "@vue/cli-plugin-babel": "~4.5.0", 82 | "@vue/cli-plugin-typescript": "*", 83 | "@vue/cli-service": "~4.5.0", 84 | "babel-plugin-import": "^1.11.0", 85 | "cross-env": "^7.0.2", 86 | "jest": "^25.4.0", 87 | "mini-types": "*", 88 | "miniprogram-api-typings": "*", 89 | "postcss-comment": "^2.0.0", 90 | "sass-loader": "^10.1.0", 91 | "typescript": "^3.0.0", 92 | "vue-template-compiler": "^2.6.11" 93 | }, 94 | "browserslist": [ 95 | "Android >= 4", 96 | "ios >= 8" 97 | ], 98 | "uni-app": { 99 | "scripts": {} 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | module.exports = { 3 | parser: require('postcss-comment'), 4 | plugins: [ 5 | require('postcss-import')({ 6 | resolve (id, basedir, importOptions) { 7 | if (id.startsWith('~@/')) { 8 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) 9 | } else if (id.startsWith('@/')) { 10 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) 11 | } else if (id.startsWith('/') && !id.startsWith('//')) { 12 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) 13 | } 14 | return id 15 | } 16 | }), 17 | require('autoprefixer')({ 18 | remove: process.env.UNI_PLATFORM !== 'h5' 19 | }), 20 | require('@dcloudio/vue-cli-plugin-uni/packages/postcss') 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 17 | 18 | 19 | 20 | 21 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 25 | -------------------------------------------------------------------------------- /src/global/request/api.ts: -------------------------------------------------------------------------------- 1 | const MODE = process.env.NODE_ENV 2 | const PRODUCTION_PREFIX = ""; 3 | const DEVELOPMENT_PREFIX = ""; //填写服务器地址 4 | const PREFIX = MODE === "production" ? PRODUCTION_PREFIX : DEVELOPMENT_PREFIX; 5 | 6 | export default { 7 | MODE, 8 | // 用户 9 | user: `${PREFIX}/v1/user`, 10 | // 商品详情 11 | productDetail: (id: number) => `${PREFIX}/v1/mini/products/${id}`, 12 | // 收藏商品 13 | collectProduct: `${PREFIX}/v1/collection`, 14 | }; 15 | -------------------------------------------------------------------------------- /src/global/request/request.ts: -------------------------------------------------------------------------------- 1 | export interface Response { 2 | code: number; 3 | msg: string; 4 | page?: { 5 | index: number; 6 | size: number; 7 | count?: number; 8 | total?: number; 9 | }; 10 | } 11 | 12 | export interface ResponseData extends Response { 13 | data: T; 14 | } 15 | 16 | const globalError = (response:Response) => { 17 | uni.showModal({ 18 | title: String(response.code), 19 | content: response.msg, 20 | confirmText: "确定", 21 | showCancel: false 22 | }); 23 | }; 24 | 25 | const showError = (error_code: string, message: string, successCallback?: Function) => { 26 | uni.showModal({ 27 | title: String(error_code), 28 | content: message, 29 | confirmText: "确定", 30 | showCancel: false, 31 | success: res => { 32 | successCallback && 33 | typeof successCallback === "function" && 34 | successCallback(); 35 | } 36 | }); 37 | }; 38 | 39 | const interceptorsRequest = (method: UniApp.RequestOptions['method'], url: string, data: N, header = {}) => { 40 | let params = { method, url, data, header }; 41 | return params; 42 | }; 43 | 44 | const request = (method: UniApp.RequestOptions['method'], url: string, data: Object, header: N) => { 45 | let params = interceptorsRequest(method, url, data, header); 46 | params.header = { 47 | 'content-type': 'application/json; charset=utf-8', 48 | 'cookie': wx.getStorageSync("cookie") 49 | } 50 | return new Promise((resolve, reject) => { 51 | uni.request({ 52 | method, 53 | url: params.url, 54 | header: params.header, 55 | data: params.data, 56 | success: (res) => { 57 | let cookie = res.cookies; 58 | if (cookie.length > 0 ) { 59 | wx.setStorageSync("cookie", cookie[cookie.length - 1]); 60 | } 61 | const resData = res.data as ResponseData 62 | if (res.statusCode === 200) { 63 | if(resData.code === 500) { 64 | let message = resData.msg 65 | showError("提示", message); 66 | reject(res.data); 67 | }else if(resData.code === 401) { 68 | //登录过期过期逻辑 69 | showError("登录过期", "请重新登录", () => { 70 | uni.reLaunch({ url: "/pages/index/index" }); 71 | }); 72 | reject(resData); 73 | } 74 | else { 75 | resolve(resData.data); 76 | } 77 | }else { 78 | reject(resData.msg); 79 | globalError({code:500, msg:'500'}); 80 | } 81 | }, 82 | fail: err => { 83 | uni.showModal({ 84 | title: "网络", 85 | content: "网络出现问题,请检查网络是否连接畅通!", 86 | confirmText: "确定", 87 | showCancel: false 88 | }); 89 | reject(err); 90 | } 91 | }); 92 | }); 93 | }; 94 | 95 | /* [请求库] 96 | ** @params url { string } @default => '' [接口地址,统一在 api 文件中] 97 | ** @params data/params { object } @default => {} [发送数据] 98 | ** @params header { object } @default => {} [请求 Header 配置] 99 | */ 100 | 101 | export default { 102 | post: function(url = "", data = {}, header = {}) { 103 | return request("POST", url, data, header); 104 | }, 105 | put: function(url = "", data = {}, header = {}) { 106 | return request("PUT", url, data, header); 107 | }, 108 | get: function(url = "", data = {}, header = {}) { 109 | return request("GET", url, data, header); 110 | }, 111 | delete: function(url = "", data = {}, header = {}) { 112 | return request("DELETE", url, data, header); 113 | } 114 | }; 115 | -------------------------------------------------------------------------------- /src/global/service/commonService.ts: -------------------------------------------------------------------------------- 1 | import request from '../request/request' 2 | import API from '../request/api' 3 | 4 | const commonApi = { 5 | //更新用户信息 6 | updateUser(params = {}) { 7 | return request.put(API.user, params) ; 8 | }, 9 | //获取商品详情 10 | productDetail( id: number ) { 11 | return request.get(API.productDetail(id)) ; 12 | }, 13 | //收藏商品 14 | collectProduct(params = {}) { 15 | return request.post(API.collectProduct, params) ; 16 | }, 17 | } 18 | 19 | export default commonApi 20 | 21 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import uView from "uview-ui"; 4 | 5 | Vue.use(uView); 6 | 7 | Vue.config.productionTip = false 8 | 9 | new App().$mount() 10 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ts-uni-mini", 3 | "appid": "", 4 | "description": "", 5 | "versionName": "1.0.0", 6 | "versionCode": "100", 7 | "transformPx":false, 8 | "app-plus": { /* 5+App特有相关 */ 9 | "modules": { /* 模块配置 */ 10 | 11 | }, 12 | "distribute": { /* 应用发布信息 */ 13 | "android": { /* android打包配置 */ 14 | "permissions": ["", 15 | "", 16 | "", 17 | "", 18 | "", 19 | "", 20 | "", 21 | "", 22 | "", 23 | "", 24 | "", 25 | "", 26 | "", 27 | "", 28 | "", 29 | "", 30 | "", 31 | "", 32 | "", 33 | "", 34 | "", 35 | "" 36 | ] 37 | }, 38 | "ios": { /* ios打包配置 */ 39 | 40 | }, 41 | "sdkConfigs": { /* SDK配置 */ 42 | 43 | } 44 | }, 45 | "usingComponents":true 46 | }, 47 | "quickapp": { /* 快应用特有相关 */ 48 | 49 | }, 50 | "mp-weixin": { /* 小程序特有相关 */ 51 | "usingComponents":true, 52 | "appid": "", 53 | "setting" : { 54 | "urlCheck" : true 55 | } 56 | }, 57 | "mp-alipay" : { 58 | "usingComponents" : true 59 | }, 60 | "mp-baidu" : { 61 | "usingComponents" : true 62 | }, 63 | "mp-toutiao" : { 64 | "usingComponents" : true 65 | }, 66 | "mp-qq" : { 67 | "usingComponents" : true 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/pages.json: -------------------------------------------------------------------------------- 1 | { 2 | "easycom": { 3 | "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" 4 | }, 5 | "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages 6 | { 7 | "path": "pages/index/index", 8 | "style": { 9 | "navigationBarTitleText": "uni-app" 10 | } 11 | } 12 | ], 13 | "globalStyle": { 14 | "navigationBarTextStyle": "black", 15 | "navigationBarTitleText": "uni-app", 16 | "navigationBarBackgroundColor": "#F8F8F8", 17 | "backgroundColor": "#F8F8F8" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/index/index.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 26 | 27 | 51 | -------------------------------------------------------------------------------- /src/request.ts: -------------------------------------------------------------------------------- 1 | type N = Record -------------------------------------------------------------------------------- /src/response/responseData.ts: -------------------------------------------------------------------------------- 1 | declare namespace Res{ 2 | 3 | // 商品详情 4 | interface ProductDetail { 5 | banner: string[]; 6 | content: string; 7 | id: number; 8 | img: string; 9 | importantNote: string; 10 | isCollected: boolean; 11 | marketPrice: number; 12 | productName: string; 13 | productNo: number; 14 | saleCount: number; 15 | saleEndDateV: number; 16 | salePrice: number; 17 | storeCount: number; 18 | type: number; 19 | userNote: string; 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /src/sfc.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | 6 | declare module 'uview-ui' -------------------------------------------------------------------------------- /src/static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ysm27/TypeScript-uniApp-uView-wechat/8875a8cc58b0f786c96a83e83b4095ec813d10f9/src/static/logo.png -------------------------------------------------------------------------------- /src/uni.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 这里是uni-app内置的常用样式变量 3 | * 4 | * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 5 | * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App 6 | * 7 | */ 8 | 9 | /** 10 | * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 11 | * 12 | * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 13 | */ 14 | 15 | /* 颜色变量 */ 16 | 17 | @import "uview-ui/theme.scss"; 18 | 19 | /* 行为相关颜色 */ 20 | $uni-color-primary: #007aff; 21 | $uni-color-success: #4cd964; 22 | $uni-color-warning: #f0ad4e; 23 | $uni-color-error: #dd524d; 24 | 25 | /* 文字基本颜色 */ 26 | $uni-text-color: #333; //基本色 27 | $uni-text-color-inverse: #fff; //反色 28 | $uni-text-color-grey: #999; //辅助灰色,如加载更多的提示信息 29 | $uni-text-color-placeholder: #808080; 30 | $uni-text-color-disable: #c0c0c0; 31 | 32 | /* 背景颜色 */ 33 | $uni-bg-color: #ffffff; 34 | $uni-bg-color-grey: #f8f8f8; 35 | $uni-bg-color-hover: #f1f1f1; //点击状态颜色 36 | $uni-bg-color-mask: rgba(0, 0, 0, 0.4); //遮罩颜色 37 | 38 | /* 边框颜色 */ 39 | $uni-border-color: #c8c7cc; 40 | 41 | /* 尺寸变量 */ 42 | 43 | /* 文字尺寸 */ 44 | $uni-font-size-sm: 24rpx; 45 | $uni-font-size-base: 28rpx; 46 | $uni-font-size-lg: 32rpx; 47 | 48 | /* 图片尺寸 */ 49 | $uni-img-size-sm: 40rpx; 50 | $uni-img-size-base: 52rpx; 51 | $uni-img-size-lg: 80rpx; 52 | 53 | /* Border Radius */ 54 | $uni-border-radius-sm: 4rpx; 55 | $uni-border-radius-base: 6rpx; 56 | $uni-border-radius-lg: 12rpx; 57 | $uni-border-radius-circle: 50%; 58 | 59 | /* 水平间距 */ 60 | $uni-spacing-row-sm: 10px; 61 | $uni-spacing-row-base: 20rpx; 62 | $uni-spacing-row-lg: 30rpx; 63 | 64 | /* 垂直间距 */ 65 | $uni-spacing-col-sm: 8rpx; 66 | $uni-spacing-col-base: 16rpx; 67 | $uni-spacing-col-lg: 24rpx; 68 | 69 | /* 透明度 */ 70 | $uni-opacity-disabled: 0.3; // 组件禁用态的透明度 71 | 72 | /* 文章场景相关 */ 73 | $uni-color-title: #2c405a; // 文章标题颜色 74 | $uni-font-size-title: 40rpx; 75 | $uni-color-subtitle: #555555; // 二级标题颜色 76 | $uni-font-size-subtitle: 36rpx; 77 | $uni-color-paragraph: #3f536e; // 文章段落颜色 78 | $uni-font-size-paragraph: 30rpx; 79 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "importHelpers": true, 8 | "moduleResolution": "node", 9 | "esModuleInterop": true, 10 | "allowSyntheticDefaultImports": true, 11 | "experimentalDecorators":true, 12 | "sourceMap": true, 13 | "skipLibCheck": true, 14 | "baseUrl": ".", 15 | "types": [ 16 | "webpack-env", 17 | "@dcloudio/types", 18 | "miniprogram-api-typings", 19 | "mini-types" 20 | ], 21 | "paths": { 22 | "@/*": [ 23 | "./src/*" 24 | ] 25 | }, 26 | "lib": [ 27 | "esnext", 28 | "dom", 29 | "dom.iterable", 30 | "scripthost" 31 | ] 32 | }, 33 | "exclude": [ 34 | "node_modules", 35 | "unpackage", 36 | "src/**/*.nvue" 37 | ] 38 | } 39 | --------------------------------------------------------------------------------