diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..99057ba --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +unpackage/ \ No newline at end of file diff --git a/1.txt b/1.txt deleted file mode 100644 index 9d60796..0000000 --- a/1.txt +++ /dev/null @@ -1 +0,0 @@ -11 \ No newline at end of file diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..ec6994d --- /dev/null +++ b/App.vue @@ -0,0 +1,20 @@ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..b5d330d --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/lib/baseUrl.js b/lib/baseUrl.js new file mode 100644 index 0000000..6f53dcf --- /dev/null +++ b/lib/baseUrl.js @@ -0,0 +1,3 @@ +// const BASE_URL = 'https://u.batiao8.com' //测试 +const BASE_URL = 'https://pay.batiao8.com' //正式 +export default BASE_URL \ No newline at end of file diff --git a/lib/request.js b/lib/request.js new file mode 100644 index 0000000..31e0027 --- /dev/null +++ b/lib/request.js @@ -0,0 +1,47 @@ +import BASE_URL from './baseUrl.js' + +const request = async ({ + url, + method, + data +}) => { + try { + const app = getApp(); + const globalData = app.globalData || {} + let header = {}; + if (globalData.token) { + header['x-token'] = globalData.token; + } + let res = await uni.request({ + url: BASE_URL + url, + method: method, + data: data, + // header: header + }) + console.log('--res', res) + if (res.data) { + if(res.data.code && res.data.code !== 200) { + uni.showToast({ + title: res.data.message.split(',')[0], + icon: 'none', + }) + } + return res.data + } else { + uni.showToast({ + title: res.data.message, + icon: 'none', + }) + return {} + } + } catch (err) { + console.log('--err', err) + uni.showToast({ + title: err.errMsg, + icon: 'none', + }) + return {} + } +} + +export default request \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..c1caf36 --- /dev/null +++ b/main.js @@ -0,0 +1,22 @@ +import App from './App' + +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { createSSRApp } from 'vue' +export function createApp() { + const app = createSSRApp(App) + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..d8a5b9c --- /dev/null +++ b/manifest.json @@ -0,0 +1,73 @@ +{ + "name" : "batiao-pay", + "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" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wxb0e5bc0e275ba55c", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true, + "appid" : "2021005194639068" + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3" +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..c119ea5 --- /dev/null +++ b/pages.json @@ -0,0 +1,17 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "uniIdRouter": {} +} diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..e586826 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,412 @@ + + + + + \ No newline at end of file diff --git a/static/app.css b/static/app.css new file mode 100644 index 0000000..4778a93 --- /dev/null +++ b/static/app.css @@ -0,0 +1,167 @@ +body, page { + font-family: -apple-system, BlinkMacSystemFont, sans-serif; + text-align: center; + background-color: #f2f2f2; + margin: 0; + padding: 0; + height: 100vh; + overflow: hidden; +} + +.wrapper { + width: 100%; + height: 100%; + box-sizing: border-box; + display: flex; + flex-flow: column; + align-items: center; +} + +.item-name { + /* width: 160rpx; */ + height: 56rpx; + margin-top: 140rpx; + font-family: PingFang SC, PingFang SC; + font-weight: 500; + font-size: 40rpx; + color: #1A1A1A; + line-height: 56rpx; + text-align: center; + font-style: normal; + text-transform: none; +} + +.item-count { + /* width: 250rpx; */ + height: 92rpx; + font-family: D-DIN-PRO, D-DIN-PRO; + font-weight: 500; + font-size: 80rpx; + color: #FF2C2C; + line-height: 72rpx; + text-align: center; + font-style: normal; + text-transform: none; + margin: 12rpx 0 16rpx 0; +} + +.company { + /* width: 280rpx; */ + height: 40rpx; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + font-size: 28rpx; + color: #53896D; + line-height: 40rpx; + text-align: center; + font-style: normal; + text-transform: none; +} + +.pay-methods { + margin-top: 80rpx; + margin-bottom: 120rpx; +} + +.pay-method-item { + width: 640rpx; + height: 120rpx; + background: #FFFFFF; + box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(36, 36, 36, 0.05); + border-radius: 16rpx; + padding: 0 28rpx; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20rpx; +} + +.pay-method-item:last-child { + margin-bottom: 0; +} + +.pay-method-item-left { + display: flex; + align-items: center; +} + +.pay-method-name { + margin-left: 16rpx; +} + +#pay-btn { + width: 686rpx; + height: 104rpx; + border-radius: 1842rpx; + display: flex; + align-items: center; + justify-content: center; + font-family: PingFang SC, PingFang SC; + font-weight: 500; + font-size: 32rpx; + color: #FFFFFF; + line-height: 48rpx; + text-align: center; + font-style: normal; + text-transform: none; +} + +.weixin-btn { + background: #06BF5E; +} + +.alipay-btn { + background: #2c78fe; +} + +.pay-result-container { + margin-top: 140rpx; + display: flex; + flex-flow: column; + justify-content: center; + align-items: center; +} + +.pay-result-text { + font-family: PingFang SC, PingFang SC; + font-weight: 400; + font-size: 36rpx; + color: #1A1A1A; + line-height: 52rpx; + text-align: center; + font-style: normal; + text-transform: none; + margin: 52rpx 0 140rpx 0; +} + +.back-btn { + width: 312rpx; + height: 104rpx; + background: #E7E7E7; + border-radius: 1842rpx; + display: flex; + align-items: center; + justify-content: center; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + font-size: 32rpx; + color: #666666; + line-height: 48rpx; + text-align: center; + font-style: normal; + text-transform: none; +} + +.env-err-text { + margin-top: 82rpx; + width: 504rpx; + height: 112rpx; + font-family: AlibabaPuHuiTi, AlibabaPuHuiTi; + font-weight: 500; + font-size: 36rpx; + color: #F64F50; + line-height: 56rpx; + text-align: center; + font-style: normal; + text-transform: none; +} \ No newline at end of file diff --git a/static/image/ali-check.png b/static/image/ali-check.png new file mode 100644 index 0000000..4007987 Binary files /dev/null and b/static/image/ali-check.png differ diff --git a/static/image/ali-logo.png b/static/image/ali-logo.png new file mode 100644 index 0000000..654ed6f Binary files /dev/null and b/static/image/ali-logo.png differ diff --git a/static/image/ali-payok.png b/static/image/ali-payok.png new file mode 100644 index 0000000..021ea69 Binary files /dev/null and b/static/image/ali-payok.png differ diff --git a/static/image/payerr.png b/static/image/payerr.png new file mode 100644 index 0000000..cc9cc0b Binary files /dev/null and b/static/image/payerr.png differ diff --git a/static/image/wx-check.png b/static/image/wx-check.png new file mode 100644 index 0000000..26e2518 Binary files /dev/null and b/static/image/wx-check.png differ diff --git a/static/image/wx-logo.png b/static/image/wx-logo.png new file mode 100644 index 0000000..455de1b Binary files /dev/null and b/static/image/wx-logo.png differ diff --git a/static/image/wx-payok.png b/static/image/wx-payok.png new file mode 100644 index 0000000..e616e95 Binary files /dev/null and b/static/image/wx-payok.png differ diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js new file mode 100644 index 0000000..5fec4f3 --- /dev/null +++ b/uni.promisify.adaptor.js @@ -0,0 +1,13 @@ +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) => { + if (!res) return resolve(res) + return res[0] ? reject(res[0]) : resolve(res[1]) + }); + }); + }, +}); \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..b9249e9 --- /dev/null +++ b/uni.scss @@ -0,0 +1,76 @@ +/** + * 这里是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;