├── .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 |
2 |
3 |
4 |
5 | {{title}}
6 |
7 | uView 按钮
8 |
9 |
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 |
--------------------------------------------------------------------------------