Initial import: H5 front-end and houtai backend (exclude secrets and uploads).

Made-with: Cursor
This commit is contained in:
apple
2026-04-04 17:04:55 +08:00
commit 4853406e88
130 changed files with 5086 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
.DS_Store
**/.DS_Store
.user.ini
**/.user.ini
houtai/runtime/
houtai/public/upload/

34
docs/change-hapr191.md Executable file
View File

@@ -0,0 +1,34 @@
新项目需要修改项:
1.新项目公司名称eg鹏然商贸
2.需要用公司名称的HTML十进制数字实体编码修改wa_options表中name=system_config中的value值里的title信息
3.相关配置项:
A. **寄卖商城API地址**eghttps://admin.hapengran.com/api
B. **寄卖商城后台地址**eghttps://admin.hapengran.com
C. **H5地址**eghttps://hapengran.com/
D. **积分商城地址**eghttps://jf.hapengran.com
E. **云服务器积分商城目录**eg/www/wwwroot/jf.hapengran.com
F. **云服务器寄卖商城H5目录**eg/www/wwwroot/hapengran.com
G. **云服务器寄卖商城后台目录**eg/www/wwwroot/admin.hapengran.com
4. 需要修改文件
**寄卖商城H5**
A. **static/configs.js**
TITLE: '鹏然商贸',
BASE_URL: 'https://admin.hapengran.com/api',
IMG_URL: 'https://admin.hapengran.com',
H5_URL: 'https://hapengran.com/',
**sn_id**、**appStr**必须修改
B. **static/js/pages-personal-index.6f5415f9.js**
第270行https://jf.hapengran.com/pages/integral/points?username=
C. **static/js/pages-sub-pages-webview-index.1042489b.js**
第15行https://jf.hapengran.com/?sn_id
第43行https://jf.hapengran.com/?user_id=

61
docs/change-list.md Executable file
View File

@@ -0,0 +1,61 @@
新项目需要修改项:
1.新项目公司名称eg聚伽源商贸
2.需要用公司名称的HTML十进制数字实体编码修改wa_options表中name=system_config中的value值里的title信息
3.相关配置项:
A. **寄卖商城API地址**eghttps://jjyadmin.fwxgpt.com/api
B. **寄卖商城后台地址**eghttps://jjyadmin.fwxgpt.com
C. **H5地址**eghttps://jjy.fwxgpt.com/
D. **积分商城地址**eghttps://jjy-jf.fwxgpt.com
E. **云服务器积分商城目录**eg/www/wwwroot/jjy-jf.fwxgpt.com
F. **云服务器寄卖商城H5目录**eg/www/wwwroot/jjy.fwxgpt.com
G. **云服务器寄卖商城后台目录**eg/www/wwwroot/jjyadmin.fwxgpt.com
4. 需要修改文件
**寄卖商城H5**
A. **static/configs.js**
TITLE: '博森元',
BASE_URL: 'https://shopadmin.bosenyuan.com/api',
IMG_URL: 'https://shopadmin.bosenyuan.com',
H5_URL: 'https://shop.bosenyuan.com/',
**sn_id**、**appStr**必须修改
B. **static/js/pages-personal-index.6f5415f9.js**
第270行https://jf.bosenyuan.com/pages/integral/points?username=
C. **static/js/pages-sub-pages-webview-index.1042489b.js**
第15行https://jf.bosenyuan.com/?sn_id
第43行https://jf.bosenyuan.com/?user_id=
upstream qianggou2026 {
server 127.0.0.1:8785;
keepalive 10240;
}
#后端api
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://qianggou2026;
}
}
# 伪静态
location / {
try_files $uri $uri/ /index.html;
}
# 后端API
location /api/admin {
proxy_pass http://127.0.0.1:30032/api/admin;
}
# 前端API
location /api/front {
proxy_pass http://127.0.0.1:30031/api/front;
}

27
docs/company-info.md Normal file
View File

@@ -0,0 +1,27 @@
## 公司名称:淮安鹏然商贸
host ip: 114.55.232.191
### crmeb-front模块变更
- 1. profile: hapr191
- 2. profile file: application-hapr191.yml
- 3. PDF合同模板文件路径pdf/sign_contract_pengran.pdf
- 4. 用户合同url地址前缀/落库域名https://hapengran.com/
- 5. imagePath: /www/wwwroot/hapengran.com/
### uniapp前端配置变更
- 1. 积分商城domainhttps://jf.hapengran.com
- 2. 抢购页面跳转地址https://hapengran.com
- 2. /static/sign_contract_pengran.pdf
### 修改任务
- 新建hapr191分支合并shjjy153分支的最新代码到该分支并根据上述信息修改相关需要变更项使符合该新公司项目环境
## 相关文件
- change-list.md

BIN
docs/sign_contract_jjy.docx Executable file

Binary file not shown.

BIN
docs/sign_contract_pengran.docx Executable file

Binary file not shown.

Binary file not shown.

1
h5/.htaccess Executable file
View File

@@ -0,0 +1 @@

24
h5/change-list.md Executable file
View File

@@ -0,0 +1,24 @@
新项目需要修改项:
1.新项目公司名称eg聚伽源商贸
2.需要用公司名称的HTML 数字实体编码修改wa_options表中name=system_config中的value值里的title信息
3.相关配置项:
A. **寄卖商城API地址**eghttps://jjyadmin.fwxgpt.com/api
B. **寄卖商城后台地址**eghttps://jjyadmin.fwxgpt.com
C. **H5地址**eghttps://jjy.fwxgpt.com/
D. **积分商城地址**eghttps://jjy-jf.fwxgpt.com
E. **云服务器积分商城目录**eg/www/wwwroot/jjy-jf.fwxgpt.com
F. **云服务器寄卖商城H5目录**eg/www/wwwroot/jjy.fwxgpt.com
G. **云服务器寄卖商城后台目录**eg/www/wwwroot/jjyadmin.fwxgpt.com
4. 需要修改文件
**寄卖商城H5**
A. **static/configs.js**
TITLE: '博森元',
BASE_URL: 'https://shopadmin.bosenyuan.com/api',
IMG_URL: 'https://shopadmin.bosenyuan.com',
H5_URL: 'https://shop.bosenyuan.com/',
B. **static/js/pages-personal-index.6f5415f9.js**
第270行https://jf.bosenyuan.com/pages/integral/points?username=
C. **static/js/pages-sub-pages-webview-index.1042489b.js**
第15行https://jf.bosenyuan.com/?sn_id
第43行https://jf.bosenyuan.com/?user_id=

2
h5/index.html Executable file
View File

@@ -0,0 +1,2 @@
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><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><script src=./static/configs.js></script><link rel=stylesheet href=/static/index.2da1efab.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.4d47960d.js></script><script src=/static/js/index.6d11616b.js></script></body></html>

11
h5/static/configs.js Executable file
View File

@@ -0,0 +1,11 @@
"use strict"
const configs = {
TITLE: '博森元',
BASE_URL: 'https://shopadmin.bosenyuan.com/api',
IMG_URL: 'https://shopadmin.bosenyuan.com',
H5_URL: 'https://shop.bosenyuan.com/',
contractPage: 10012,
sn_id: 1753363479,
appStr: 'ZFyTNQTWEkCBczKzyUDJWE9Ecxtjjzwg',
// appKey: ,
}

BIN
h5/static/images/404.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
h5/static/images/app-ico.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
h5/static/images/bg1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

BIN
h5/static/images/coupon-ico.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
h5/static/images/cover1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
h5/static/images/empty.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
h5/static/images/empty1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

BIN
h5/static/images/exchange-ico.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
h5/static/images/invite-bg.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 KiB

BIN
h5/static/images/kong1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5/static/images/kong2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
h5/static/images/kong3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
h5/static/images/kong4.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
h5/static/images/kong5.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5/static/images/kong6.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5/static/images/kong7.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
h5/static/images/kong8.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
h5/static/images/kong9.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
h5/static/images/login-ico1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
h5/static/images/new-ico1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

BIN
h5/static/images/new-ico2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

BIN
h5/static/images/new-ico3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

BIN
h5/static/images/new-ico4.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

BIN
h5/static/images/notice-ico.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
h5/static/images/order-bg.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
h5/static/images/pay-ico1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

BIN
h5/static/images/pay-ico2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
h5/static/images/pay-ico3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
h5/static/images/pay-ico4.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
h5/static/images/pay-result.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
h5/static/images/s-ico1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
h5/static/images/s-ico2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
h5/static/images/tip1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
h5/static/images/tool-ico1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
h5/static/images/tool-ico2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
h5/static/images/tool-ico3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5/static/images/tool-ico4.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
h5/static/images/tool-ico5.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5/static/images/tool-ico6.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
h5/static/images/tool-ico7.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5/static/images/tool-ico8.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
h5/static/images/up-ico1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5/static/images/user-bg.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
h5/static/images/zfb-cover.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

1
h5/static/index.2da1efab.css Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,713 @@
# chunk-vendors.4d47960d.js 详细分析
## 文件信息
- **文件名**: chunk-vendors.4d47960d.js
- **大小**: 1.18MB (1,181,721 bytes)
- **类型**: Webpack第三方依赖打包文件
- **压缩**: 高度压缩约26行
- **模块数**: 约200+个模块
## 文件用途
这是Webpack打包的第三方依赖库文件包含应用所需的所有外部库和polyfills。主要包括
- uni-simple-router完整路由库
- 加密库HMAC, SHA, MD5等
- Buffer实现
- 各种Polyfills
---
## 主要库分类
### 1. uni-simple-router 路由库
这是核心依赖,占据了大部分代码量。
#### 核心模块
| 模块ID | 名称 | 功能 |
|--------|------|------|
| **607** | 主入口 | 导出createRouter, RouterMount等 |
| **366** | 常量定义 | hookToggle, navtypeToggle等 |
| **309** | 类型定义 | TypeScript类型声明 |
| **169** | 钩子调用 | loopCallHook, transitionTo等 |
| **890** | 导航跳转 | navjump, lockNavjump, createRoute |
| **845** | 页面钩子 | proxyPageHook, createFullPath |
| **99** | 查询参数 | queryPageToMap, parseQuery |
| **314** | 方法重写 | rewriteMethod |
| **963** | 路由创建 | createRouter, RouterMount |
| **809** | 原生跳转 | uniOriginJump |
| **662** | 钩子注册 | registerEachHooks |
| **460** | Mixins | initMixins, getMixins |
| **789** | 工具函数 | deepClone, getDataType等 |
| **883** | 日志工具 | err, warn, log |
| **282** | 配置常量 | baseConfig, proxyHookName |
| **801** | 路由映射 | createRouteMap |
| **814** | 加载页面 | registerLoddingPage |
| **334** | 路径获取 | getEnterPath |
| **779** | 路径匹配 | pathToRegexp |
#### 功能详解
##### 路由创建 (模块 963)
```javascript
function createRouter(options) {
return {
// 配置
options,
mount: [],
Vue: null,
routesMap: {},
// 导航方法
push(location) { ... },
replace(location) { ... },
replaceAll(location) { ... },
pushTab(location) { ... },
back(delta, options) { ... },
// 守卫
beforeEach(fn) { ... },
afterEach(fn) { ... },
// 安装
install(Vue) { ... }
};
}
```
##### 导航跳转 (模块 890)
```javascript
// 核心导航函数
function navjump(rule, router, NAVTYPE, forceNav, uniActualData, callback, passthrough) {
// 1. 处理back类型
if (NAVTYPE === "back") {
// 构建返回参数
}
// 2. 解析路由
var query = queryPageToMap(rule, router).rule;
query.type = navtypeToggle[NAVTYPE];
// 3. 处理params到query
var finalRule = paramsToQuery(router, query);
var resolvedRule = resolveQuery(finalRule, router);
// 4. H5平台特殊处理
if (router.options.platform === "h5") {
if (NAVTYPE !== "push") NAVTYPE = "replace";
if (forceNav != null) {
forceNav.next({ replace: NAVTYPE !== "push", ...resolvedRule });
} else {
router.$route[NAVTYPE](resolvedRule);
}
}
// 5. 小程序/App平台
else {
// 创建to和from
var to = createToFrom(resolvedRule, router);
var from = getCurrentRoute(router);
createFullPath(resolvedRule, from);
if (!passthrough) {
return resolvedRule;
}
// 触发守卫
transitionTo(router, resolvedRule, from, NAVTYPE, HOOKLIST, function(next) {
uni[navtypeToggle[NAVTYPE]](resolvedRule, true, next, callback);
});
}
}
// 带锁的导航
function lockNavjump(rule, router, NAVTYPE, forceNav, uniActualData) {
lockDetectWarn(router, rule, NAVTYPE, function() {
// H5不锁定
if (router.options.platform !== "h5") {
router.$lockStatus = true;
}
navjump(rule, router, NAVTYPE, void 0, forceNav, uniActualData);
}, uniActualData);
}
```
##### 路由守卫 (模块 169)
```javascript
// 守卫钩子列表
var HOOKLIST = [
// 1. 全局前置守卫
function(router, to, from, route, next) {
callHook(router.lifeCycle.routerBeforeHooks[0], to, from, router, next);
},
// 2. 组件beforeRouteLeave
function(router, to, from, route, next) {
callBeforeRouteLeave(router, to, from, next);
},
// 3. 路由beforeHooks
function(router, to, from, route, next) {
callHook(router.lifeCycle.beforeHooks[0], to, from, router, next);
},
// 4. 路由独享守卫beforeEnter
function(router, to, from, route, next) {
callHook(route.beforeEnter, to, from, router, next);
},
// 5. 路由afterHooks
function(router, to, from, route, next) {
router.$lockStatus = false;
if (router.options.platform === "h5") {
proxyH5Mount(router);
}
callHook(router.lifeCycle.afterHooks[0], to, from, router, next, false);
},
// 6. 全局后置守卫
function(router, to, from, route, next) {
router.$lockStatus = false;
if (router.options.platform === "h5") {
proxyH5Mount(router);
}
callHook(router.lifeCycle.routerAfterHooks[0], to, from, router, next, false);
}
];
// 循环调用钩子
function loopCallHook(hooks, index, next, router, to, from, NAVTYPE) {
// 如果所有钩子都执行完了
if (hooks.length - 1 < index) {
return next();
}
var hook = hooks[index];
var errorHook = ERRORHOOK[0];
// 调用钩子
hook(router, to, from, route, function(nextRule) {
// App平台tab切换特殊处理
if (router.options.platform === "app-plus") {
if (nextRule !== false &&
typeof nextRule !== "string" &&
typeof nextRule !== "object") {
tabIndexSelect(to, from);
}
}
// 1. next(false) - 终止导航
if (nextRule === false) {
if (router.options.platform === "h5") {
next(false);
}
errorHook({
type: 0,
msg: "管道函数传递 false 导航被终止!",
matTo: to,
matFrom: from,
nextTo: nextRule
}, router);
}
// 2. next(string|object) - 重定向
else if (typeof nextRule === "string" || typeof nextRule === "object") {
var redirectNAVTYPE = NAVTYPE;
var redirectRule = nextRule;
if (typeof nextRule === "object") {
var NAVTYPE_OVERRIDE = nextRule.NAVTYPE;
redirectRule = objectWithoutProperties(nextRule, ["NAVTYPE"]);
if (NAVTYPE_OVERRIDE != null) {
redirectNAVTYPE = NAVTYPE_OVERRIDE;
}
}
navjump(redirectRule, router, redirectNAVTYPE, { from, next });
}
// 3. next() - 继续
else if (nextRule == null) {
index++;
loopCallHook(hooks, index, next, router, to, from, NAVTYPE);
}
// 4. 其他 - 错误
else {
errorHook({
type: 1,
msg: "管道函数传递未知类型,无法被识别。导航被终止!",
matTo: to,
matFrom: from,
nextTo: nextRule
}, router);
}
});
}
// 转换导航
function transitionTo(router, to, from, NAVTYPE, hooks, finalCallback) {
var formattedRoutes = forMatNextToFrom(router, to, from);
var matTo = formattedRoutes.matTo;
var matFrom = formattedRoutes.matFrom;
// H5平台
if (router.options.platform === "h5") {
loopCallHook(hooks, 0, finalCallback, router, matTo, matFrom, NAVTYPE);
}
// 小程序/App平台
else {
// 分两步执行钩子
// 第一步前4个钩子
loopCallHook(hooks.slice(0, 4), 0, function() {
// 第二步后2个钩子在导航完成后
finalCallback(function() {
loopCallHook(hooks.slice(4), 0, voidFun, router, matTo, matFrom, NAVTYPE);
});
}, router, matTo, matFrom, NAVTYPE);
}
}
```
##### 页面钩子代理 (模块 845)
```javascript
// 代理页面生命周期钩子
function proxyPageHook(vueInstance, router, mpType) {
var proxyHookDeps = router.proxyHookDeps;
var options = vueInstance.$options;
var proxyHookNames = [
"onLoad", "onShow", "onReady", "onHide",
"onUnload", "onPullDownRefresh", "onReachBottom"
];
for (var i = 0; i < proxyHookNames.length; i++) {
var hookName = proxyHookNames[i];
var hooks = options[hookName];
if (hooks) {
for (var j = 0; j < hooks.length; j++) {
// 跳过已代理的钩子
if (hooks[j].toString().includes("UNI-SIMPLE-ROUTER")) {
continue;
}
var hookId = Object.keys(proxyHookDeps.hooks).length + 1;
// 创建代理函数
var proxyHook = function() {
var args = Array.prototype.slice.call(arguments);
proxyHookDeps.resetIndex.push(hookId);
proxyHookDeps.options[hookId] = args;
};
// 保存原始钩子
var originalHook = hooks.splice(j, 1, proxyHook)[0];
// 保存钩子信息
proxyHookDeps.hooks[hookId] = {
proxyHook: proxyHook,
callHook: function(path) {
// 只在匹配路径时调用
if (router.enterPath.replace(/^\//, "") === path.replace(/^\//, "") ||
mpType === "app") {
var args = proxyHookDeps.options[hookId];
originalHook.apply(vueInstance, args);
}
},
resetHook: function() {
hooks.splice(j, 1, originalHook);
}
};
}
}
}
}
// 重置并调用页面钩子
function resetAndCallPageHook(router, path, reset) {
if (reset === void 0) reset = true;
// 解析路径
var match = path.trim().match(/^(\/?[^\?\s]+)(\?[\s\S]*$)?$/);
if (match == null) {
throw new Error("还原hook失败。请检查 【" + path + "】 路径是否正确。");
}
path = match[1];
var proxyHookDeps = router.proxyHookDeps;
var resetIndex = proxyHookDeps.resetIndex;
// 调用所有钩子
for (var i = 0; i < resetIndex.length; i++) {
var hookId = resetIndex[i];
proxyHookDeps.hooks[hookId].callHook(path);
}
// 重置钩子
if (reset) {
resetPageHook(router);
}
}
```
---
### 2. 加密库
#### HMAC (模块 0116)
```javascript
/**
* HMAC - Hash-based Message Authentication Code
*
* 算法:
* HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))
*
* 其中:
* - K: 密钥
* - m: 消息
* - H: 哈希函数
* - ⊕: XOR运算
* - ||: 连接
* - ipad: 0x36重复blocksize次
* - opad: 0x5C重复blocksize次
*/
function Hmac(alg, key) {
// 1. 如果key是字符串转为Buffer
if (typeof key === "string") {
key = Buffer.from(key);
}
// 2. 确定blocksize
var blocksize = (alg === "sha512" || alg === "sha384") ? 128 : 64;
// 3. 处理key长度
if (key.length > blocksize) {
// key太长先hash
var hash = (alg === "rmd160") ? new rmd160() : sha(alg);
key = hash.update(key).digest();
} else if (key.length < blocksize) {
// key太短填充0
key = Buffer.concat([key, zeroBuffer], blocksize);
}
// 4. 计算ipad和opad
var ipad = Buffer.allocUnsafe(blocksize);
var opad = Buffer.allocUnsafe(blocksize);
for (var i = 0; i < blocksize; i++) {
ipad[i] = key[i] ^ 0x36;
opad[i] = key[i] ^ 0x5C;
}
// 5. 初始化内部hash
this._hash = (alg === "rmd160") ? new rmd160() : sha(alg);
this._hash.update(ipad);
}
Hmac.prototype._final = function() {
// 1. 计算内部hash
var innerHash = this._hash.digest();
// 2. 计算外部hash
var hash = (this._alg === "rmd160") ? new rmd160() : sha(this._alg);
return hash.update(this._opad).update(innerHash).digest();
};
```
支持的算法:
- MD5
- SHA1, SHA256, SHA384, SHA512
- RIPEMD160
#### Cipher (模块 0168)
加密/解密基类,提供:
- 缓冲区管理
- 分块处理
- 填充处理
#### Buffer (模块 5f79)
Node.js Buffer在浏览器环境的实现。
---
### 3. 核心Polyfills
#### Object方法
| 模块ID | 方法 | 说明 |
|--------|------|------|
| **00ca** | getOwnPropertyNames | 获取对象自身属性名 |
| **036b** | indexOf | 数组indexOf |
| **338c** | hasOwnProperty | 检查自身属性 |
| **f660** | toIndexedObject | 转为索引对象 |
#### Array方法
| 模块ID | 方法 | 说明 |
|--------|------|------|
| **bb80** | push | 数组push |
| **00c2** | keys | 对象键名 |
#### 工具函数
| 模块ID | 功能 | 说明 |
|--------|------|------|
| **2c2e** | inherits | 继承工具 |
| **cfef** | Transform | 流转换 |
| **d3c2** | assert | 断言 |
---
### 4. uni-simple-router 详细功能
#### 路由配置选项
```javascript
{
// 平台类型
platform: "h5" | "app-plus" | "mp-weixin" | "mp-alipay" | ...,
// 路由表
routes: [
{
path: "/pages/index/index",
name: "index",
aliasPath: "/",
meta: {},
beforeEnter: function(to, from, next) {}
}
],
// H5配置
h5: {
vueRouterDev: false,
vueNext: false,
paramsToQuery: false
},
// 小程序配置
applet: {
animationDuration: 300
},
// App配置
APP: {
animation: {
animationType: "pop-in",
animationDuration: 300
},
launchedHook: function() {}
},
// 调试
debugger: false | true | { err: true, warn: true, log: false },
// 守卫
routerBeforeEach: function(to, from, next) {},
routerAfterEach: function(to, from) {},
routerErrorEach: function(error, router) {},
// 查询处理
resolveQuery: function(query) { return query; },
parseQuery: function(query) { return query; },
// 检测锁
detectBeforeLock: function(router, to, navType) {}
}
```
#### 路由对象结构
```javascript
{
name: "index", // 路由名称
path: "/pages/index/index", // 路径
fullPath: "/pages/index/index?id=1", // 完整路径
query: { id: "1" }, // 查询参数
params: {}, // 路由参数
meta: {}, // 元信息
NAVTYPE: "push", // 导航类型
BACKTYPE: "" // 返回类型
}
```
#### API方法
```javascript
// 导航方法
router.push(location)
router.replace(location)
router.replaceAll(location)
router.pushTab(location)
router.back(delta, options)
// 守卫方法
router.beforeEach(fn)
router.afterEach(fn)
// 强制触发
router.forceGuardEach(NAVTYPE, passthrough)
// Vue实例访问
this.$Router // 路由器实例
this.$Route // 当前路由
this.$AppReady // App准备完成Promise
```
#### 原生方法重写
```javascript
// 重写uni原生导航方法
uni.navigateTo(options) router.push()
uni.redirectTo(options) router.replace()
uni.reLaunch(options) router.replaceAll()
uni.switchTab(options) router.pushTab()
uni.navigateBack(options) router.back()
```
---
## 模块依赖关系
```
607 (主入口)
├── 366 (常量)
├── 309 (类型)
├── 814 (加载页面)
└── 963 (创建路由)
├── 282 (配置)
├── 789 (工具)
├── 662 (钩子注册)
├── 460 (Mixins)
│ ├── 801 (路由映射)
│ ├── 844 (Vue路由)
│ ├── 147 (代理)
│ └── 814 (加载页面)
├── 890 (导航)
│ ├── 366 (常量)
│ ├── 99 (查询)
│ ├── 789 (工具)
│ ├── 169 (钩子调用)
│ └── 845 (页面钩子)
└── 314 (方法重写)
└── 809 (原生跳转)
```
---
## 性能优化
### 1. 代码分割
- 将第三方库独立打包
- 减少主bundle大小
- 利用浏览器缓存
### 2. 懒加载
- 页面组件按需加载
- 减少首屏加载时间
### 3. 压缩
- UglifyJS压缩
- 变量名混淆
- 移除注释和空格
---
## 建议
### 1. 优化建议
- ✅ 使用CDN加载常用库
- ✅ 启用Gzip/Brotli压缩
- ✅ 考虑按需引入uni-simple-router功能
- ✅ 分析是否所有加密库都需要
### 2. 调试建议
- 使用Source Map调试
- 启用路由debugger选项
- 查看原始源代码
### 3. 升级建议
- 检查依赖库版本
- 及时更新安全补丁
- 关注性能优化
---
## 总结
`chunk-vendors.4d47960d.js` 是一个包含所有第三方依赖的大型文件:
**主要内容**:
1. ✅ uni-simple-router (约70%代码量)
2. ✅ 加密库 (HMAC, SHA, MD5等)
3. ✅ Buffer实现
4. ✅ Polyfills (Object, Array方法)
5. ✅ 工具函数
**特点**:
- 📦 高度压缩1.18MB → 约26行
- 🔒 变量混淆
- ⚡ 模块化设计
- 🎯 独立打包
**用途**:
- 提供路由功能
- 提供加密功能
- 兼容性支持
- 工具函数库
由于文件过大且高度压缩,完整反编译需要原始源代码和构建配置。建议查看:
- uni-simple-router GitHub仓库
- 项目的package.json
- Webpack配置文件
---
## 附录模块ID速查表
### uni-simple-router核心模块
- 607: 主入口
- 366: 常量定义
- 963: 创建路由器
- 890: 导航跳转
- 169: 钩子调用
- 845: 页面钩子
- 789: 工具函数
- 99: 查询参数
- 314: 方法重写
- 662: 钩子注册
- 460: Mixins
- 282: 配置常量
### 加密相关
- 0116: HMAC
- 0168: Cipher
- 5f79: Buffer
- 1177: MD5
- 2d81: RMD160
- 25a4: SHA
### Polyfills
- 00c2: indexOf
- 00ca: getOwnPropertyNames
- bb80: array push
- 338c: hasOwnProperty
- f660: toIndexedObject
完整模块列表约200+个,这里仅列出主要模块。

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,622 @@
// ============================================
// 反编译后的可读版本
// 原文件: chunk-vendors.4d47960d.js
// 文件: Webpack第三方库打包文件
// 大小: 1.18MB (1,181,721 bytes)
// 说明: 包含所有第三方依赖库
// ============================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
["chunk-vendors"],
{
// ==================== 核心工具模块 ====================
/**
* 模块 00c2: Array indexOf实现
* 用于不支持原生indexOf的环境
*/
"00c2": function(module, exports, require) {
"use strict";
var arrayPush = require("bb80"); // 数组push方法
var hasOwnProperty = require("338c"); // hasOwnProperty检查
var toIndexedObject = require("f660"); // 转索引对象
var indexOf = require("036b").indexOf; // indexOf方法
var hiddenKeys = require("11bf"); // 隐藏键
var push = arrayPush([].push);
module.exports = function(object, names) {
var key;
var result = toIndexedObject(object);
var index = 0;
var keys = [];
// 遍历对象
for (key in result) {
if (!hasOwnProperty(hiddenKeys, key) &&
hasOwnProperty(result, key)) {
push(keys, key);
}
}
// 遍历传入的names
while (names.length > index) {
if (hasOwnProperty(result, key = names[index++])) {
if (~indexOf(keys, key)) {
push(keys, key);
}
}
}
return keys;
};
},
/**
* 模块 00ca: Object.getOwnPropertyNames polyfill
* 获取对象自身的所有属性名
*/
"00ca": function(module, exports, require) {
var internalObjectKeys = require("56c8");
var enumBugKeys = require("da1d");
var hiddenKeys = enumBugKeys.concat("length", "prototype");
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return internalObjectKeys(O, hiddenKeys);
};
},
// ==================== 加密相关模块 ====================
/**
* 模块 0116: HMAC实现
* Hash-based Message Authentication Code
*/
"0116": function(module, exports, require) {
"use strict";
var inherits = require("2c2e");
var Legacy = require("610c");
var Transform = require("cfef");
var Buffer = require("5f79").Buffer;
var md5 = require("1177");
var rmd160 = require("2d81");
var sha = require("25a4");
var zeroBuffer = Buffer.alloc(128);
/**
* HMAC构造函数
* @param {string} alg - 算法名称
* @param {Buffer} key - 密钥
*/
function Hmac(alg, key) {
Transform.call(this, "digest");
if (typeof key === "string") {
key = Buffer.from(key);
}
var blocksize = (alg === "sha512" || alg === "sha384") ? 128 : 64;
this._alg = alg;
this._key = key;
// 如果key长度大于blocksize先hash
if (key.length > blocksize) {
var hash = (alg === "rmd160") ? new rmd160() : sha(alg);
key = hash.update(key).digest();
} else if (key.length < blocksize) {
// 如果key长度小于blocksize填充0
key = Buffer.concat([key, zeroBuffer], blocksize);
}
// 创建ipad和opad
var ipad = this._ipad = Buffer.allocUnsafe(blocksize);
var opad = this._opad = Buffer.allocUnsafe(blocksize);
for (var i = 0; i < blocksize; i++) {
ipad[i] = key[i] ^ 0x36; // XOR with 0x36
opad[i] = key[i] ^ 0x5C; // XOR with 0x5C
}
this._hash = (alg === "rmd160") ? new rmd160() : sha(alg);
this._hash.update(ipad);
}
inherits(Hmac, Transform);
Hmac.prototype._update = function(data) {
this._hash.update(data);
};
Hmac.prototype._final = function() {
var innerHash = this._hash.digest();
var hash = (this._alg === "rmd160") ? new rmd160() : sha(this._alg);
return hash.update(this._opad).update(innerHash).digest();
};
module.exports = function createHmac(alg, key) {
alg = alg.toLowerCase();
if (alg === "rmd160" || alg === "ripemd160") {
return new Hmac("rmd160", key);
}
if (alg === "md5") {
return new Legacy(md5, key);
}
return new Hmac(alg, key);
};
},
/**
* 模块 0168: Cipher基类
* 加密/解密的基础类
*/
"0168": function(module, exports, require) {
"use strict";
var assert = require("d3c2");
/**
* Cipher构造函数
* @param {Object} options - 配置选项
*/
function Cipher(options) {
this.options = options;
this.type = this.options.type;
this.blockSize = 8;
this._init();
this.buffer = new Array(this.blockSize);
this.bufferOff = 0;
}
module.exports = Cipher;
Cipher.prototype._init = function() {
// 子类实现
};
/**
* 更新数据
* @param {Array} data - 输入数据
*/
Cipher.prototype.update = function(data) {
if (data.length === 0) {
return [];
}
if (this.type === "decrypt") {
return this._updateDecrypt(data);
} else {
return this._updateEncrypt(data);
}
};
/**
* 缓冲数据
*/
Cipher.prototype._buffer = function(data, off) {
var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);
for (var i = 0; i < min; i++) {
this.buffer[this.bufferOff + i] = data[off + i];
}
this.bufferOff += min;
return min;
};
/**
* 刷新缓冲区
*/
Cipher.prototype._flushBuffer = function(out, off) {
this._update(this.buffer, 0, out, off);
this.bufferOff = 0;
return this.blockSize;
};
},
// ==================== uni-simple-router 路由库 ====================
/**
* 模块 607: uni-simple-router 主入口
* 完整的路由库实现
*/
"607": function(module, exports, require) {
"use strict";
var __createBinding = (Object.create ? function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, {
enumerable: true,
get: function() { return m[k]; }
});
} : function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
var __exportStar = function(m, exports) {
for (var p in m) {
if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
__createBinding(exports, m, p);
}
}
};
Object.defineProperty(exports, "__esModule", { value: true });
// 导出所有模块
exports.createRouter = void 0;
exports.RouterMount = void 0;
exports.runtimeQuit = void 0;
__exportStar(require("366"), exports); // 常量定义
__exportStar(require("309"), exports); // 类型定义
var registerLoddingPage = require("814");
Object.defineProperty(exports, "runtimeQuit", {
enumerable: true,
get: function() {
return registerLoddingPage.runtimeQuit;
}
});
var createRouter_1 = require("963");
Object.defineProperty(exports, "RouterMount", {
enumerable: true,
get: function() {
return createRouter_1.RouterMount;
}
});
Object.defineProperty(exports, "createRouter", {
enumerable: true,
get: function() {
return createRouter_1.createRouter;
}
});
},
/**
* 模块 366: 路由常量定义
*/
"366": function(module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hookToggle = void 0;
exports.navtypeToggle = void 0;
exports.rewriteMethodToggle = void 0;
// 钩子类型切换
var hookToggle;
(function(hookToggle) {
hookToggle["beforeHooks"] = "beforeEach";
hookToggle["afterHooks"] = "afterEach";
hookToggle["enterHooks"] = "beforeEnter";
})(hookToggle = exports.hookToggle || (exports.hookToggle = {}));
// 导航类型切换
var navtypeToggle;
(function(navtypeToggle) {
navtypeToggle["push"] = "navigateTo";
navtypeToggle["replace"] = "redirectTo";
navtypeToggle["replaceAll"] = "reLaunch";
navtypeToggle["pushTab"] = "switchTab";
navtypeToggle["back"] = "navigateBack";
})(navtypeToggle = exports.navtypeToggle || (exports.navtypeToggle = {}));
// 方法重写映射
var rewriteMethodToggle;
(function(rewriteMethodToggle) {
rewriteMethodToggle["navigateTo"] = "push";
rewriteMethodToggle["navigate"] = "push";
rewriteMethodToggle["redirectTo"] = "replace";
rewriteMethodToggle["reLaunch"] = "replaceAll";
rewriteMethodToggle["switchTab"] = "pushTab";
rewriteMethodToggle["navigateBack"] = "back";
})(rewriteMethodToggle = exports.rewriteMethodToggle || (exports.rewriteMethodToggle = {}));
},
/**
* 模块 963: 创建路由器
*/
"963": function(module, exports, require) {
"use strict";
var __assign = (Object.assign || function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
});
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRouter = void 0;
exports.RouterMount = void 0;
var baseConfig = require("282");
var utils = require("789");
var registerHooks = require("662");
var mixins = require("460");
var navjump = require("890");
var rewriteMethod = require("314");
/**
* 创建路由器实例
* @param {Object} options - 路由配置
*/
function createRouter(options) {
var config = utils.assertNewOptions(options);
var router = {
// 配置选项
options: config,
// 挂载队列
mount: [],
// Vue实例
Vue: null,
// 代理钩子依赖
proxyHookDeps: baseConfig.proxyHookDeps,
// App主实例
appMain: {},
// 进入路径
enterPath: "",
// 当前路由
$route: null,
// 锁定状态
$lockStatus: false,
// 路由映射
routesMap: {},
// 生命周期
lifeCycle: registerHooks.registerRouterHooks(
baseConfig.lifeCycle,
config
),
// ========== 导航方法 ==========
/**
* Push导航
* @param {Object|string} location - 目标位置
*/
push: function(location) {
navjump.lockNavjump(location, router, "push");
},
/**
* Replace导航
* @param {Object|string} location - 目标位置
*/
replace: function(location) {
navjump.lockNavjump(location, router, "replace");
},
/**
* ReplaceAll导航
* @param {Object|string} location - 目标位置
*/
replaceAll: function(location) {
navjump.lockNavjump(location, router, "replaceAll");
},
/**
* PushTab导航
* @param {Object|string} location - 目标位置
*/
pushTab: function(location) {
navjump.lockNavjump(location, router, "pushTab");
},
/**
* 返回导航
* @param {number} delta - 返回层数
* @param {Object} options - 选项
*/
back: function(delta, options) {
if (delta === void 0) delta = 1;
if (utils.getDataType(options) !== "[object Object]") {
options = { from: "navigateBack" };
} else if (!Reflect.has(options, "from")) {
options = __assign(__assign({}, options), { from: "navigateBack" });
}
navjump.lockNavjump(delta + "", router, "back", void 0, options);
},
/**
* 强制触发守卫
* @param {string} NAVTYPE - 导航类型
* @param {boolean} passthrough - 是否穿透
*/
forceGuardEach: function(NAVTYPE, passthrough) {
navjump.forceGuardEach(router, NAVTYPE, passthrough);
},
// ========== 路由守卫 ==========
/**
* 前置守卫
* @param {Function} fn - 守卫函数
*/
beforeEach: function(fn) {
registerHooks.registerEachHooks(router, "beforeHooks", fn);
},
/**
* 后置守卫
* @param {Function} fn - 守卫函数
*/
afterEach: function(fn) {
registerHooks.registerEachHooks(router, "afterHooks", fn);
},
/**
* 安装到Vue
* @param {Vue} Vue - Vue构造函数
*/
install: function(Vue) {
router.Vue = Vue;
// 重写uni方法
rewriteMethod.rewriteMethod(router);
// 初始化mixins
mixins.initMixins(Vue, router);
// 定义$Router属性
Object.defineProperty(Vue.prototype, "$Router", {
get: function() {
var routerInstance = router;
Object.defineProperty(this, "$Router", {
value: routerInstance,
writable: false,
configurable: false,
enumerable: false
});
Object.seal(routerInstance);
return routerInstance;
}
});
// 定义$Route属性
Object.defineProperty(Vue.prototype, "$Route", {
get: function() {
return navjump.createRoute(router);
}
});
// 定义$AppReady属性
Object.defineProperty(Vue.prototype, "$AppReady", {
get: function() {
if (router.options.platform === "h5") {
return Promise.resolve();
}
return appReadyPromise;
},
set: function(val) {
if (val === true) {
resolveAppReady();
}
}
});
}
};
// 定义currentRoute只读属性
utils.def(router, "currentRoute", function() {
return navjump.createRoute(router);
});
// 注册默认守卫
router.beforeEach(function(to, from, next) {
return next();
});
router.afterEach(function() {});
return router;
}
exports.createRouter = createRouter;
/**
* 挂载路由到Vue实例
* @param {Vue} app - Vue实例
* @param {Router} router - 路由器实例
* @param {string} el - 挂载元素
*/
function RouterMount(app, router, el) {
if (el === void 0) el = "#app";
if (utils.getDataType(router.mount) !== "[object Array]") {
throw new Error("挂载路由失败router.app 应该为数组类型。当前类型:" +
typeof router.mount);
}
router.mount.push({
app: app,
el: el
});
// H5平台特殊处理
if (router.options.platform === "h5") {
var vueRouter = router.$route;
vueRouter.replace({
path: vueRouter.currentRoute.fullPath
});
}
}
exports.RouterMount = RouterMount;
var appReadyPromise = new Promise(function(resolve) {
resolveAppReady = resolve;
});
var resolveAppReady;
},
// ==================== 更多模块... ====================
// 由于文件过大,以下省略其他模块
// 完整模块列表见 chunk-vendors.4d47960d.ANALYSIS.md
}
]);
// ==================== 说明 ====================
/**
* 此文件包含以下主要库:
*
* 1. uni-simple-router (路由库)
* - 模块 607, 366, 963, 890, 845, 169, 789, etc.
* - 完整的路由管理功能
* - 页面导航、守卫、生命周期
*
* 2. 加密库
* - 模块 0116 (HMAC)
* - 模块 0168 (Cipher)
* - 模块 5f79 (Buffer)
* - 模块 1177 (MD5)
* - 模块 2d81 (RMD160)
* - 模块 25a4 (SHA)
*
* 3. 核心Polyfills
* - 模块 00c2 (indexOf)
* - 模块 00ca (getOwnPropertyNames)
* - 其他Object/Array方法
*
* 4. 工具函数
* - 对象操作
* - 数组操作
* - 类型判断
* - 继承工具
*
* 总共包含约200+个模块
* 完整列表和详细说明见分析文档
*/

1
h5/static/js/index.6d11616b.js Executable file

File diff suppressed because one or more lines are too long

1
h5/static/js/index.8bc32d98.js Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,350 @@
// ============================================
// 反编译后的可读版本
// 原文件: index.8bc32d98.js
// 文件: Webpack H5应用主入口
// 大小: 281KB
// ============================================
// ==================== Webpack Bootstrap ====================
(function(modules) {
/**
* Webpack模块加载器
* @param {Array} chunkData - [chunkIds, moreModules, executeModules]
*/
function webpackJsonpCallback(chunkData) {
var chunkIds = chunkData[0];
var moreModules = chunkData[1];
var executeModules = chunkData[2];
var moduleId, chunkId, resolves = [];
// 标记所有chunk为已加载
for (var i = 0; i < chunkIds.length; i++) {
chunkId = chunkIds[i];
if (Object.prototype.hasOwnProperty.call(installedChunks, chunkId) &&
installedChunks[chunkId]) {
resolves.push(installedChunks[chunkId][0]);
}
installedChunks[chunkId] = 0;
}
// 添加新模块到modules对象
for (moduleId in moreModules) {
if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
modules[moduleId] = moreModules[moduleId];
}
}
// 执行父chunk回调
if (parentJsonpFunction) {
parentJsonpFunction(chunkData);
}
// 解析所有promise
while (resolves.length) {
resolves.shift()();
}
// 添加入口模块到延迟列表
return deferredModules.push.apply(deferredModules, executeModules || []),
checkDeferredModules();
}
/**
* 检查延迟模块
*/
function checkDeferredModules() {
var result;
for (var i = 0; i < deferredModules.length; i++) {
var deferredModule = deferredModules[i];
var fulfilled = true;
for (var j = 1; j < deferredModule.length; j++) {
var depId = deferredModule[j];
if (0 !== installedChunks[depId]) {
fulfilled = false;
}
}
if (fulfilled) {
deferredModules.splice(i--, 1);
result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
}
}
return result;
}
// 模块缓存
var installedModules = {};
// Chunk加载状态
// 0 = 已加载, Promise = 加载中, undefined = 未加载
var installedChunks = {
index: 0
};
// 延迟模块
var deferredModules = [];
/**
* Webpack require函数
* @param {string} moduleId - 模块ID
*/
function __webpack_require__(moduleId) {
// 检查缓存
if (installedModules[moduleId]) {
return installedModules[moduleId].exports;
}
// 创建新模块并放入缓存
var module = installedModules[moduleId] = {
i: moduleId,
l: false,
exports: {}
};
// 执行模块函数
modules[moduleId].call(
module.exports,
module,
module.exports,
__webpack_require__
);
// 标记模块为已加载
module.l = true;
// 返回模块导出
return module.exports;
}
/**
* 异步加载chunk
* @param {string} chunkId - Chunk ID
*/
__webpack_require__.e = function requireEnsure(chunkId) {
var promises = [];
var installedChunkData = installedChunks[chunkId];
if (0 !== installedChunkData) {
if (installedChunkData) {
promises.push(installedChunkData[2]);
} else {
// 创建Promise
var promise = new Promise(function(resolve, reject) {
installedChunkData = installedChunks[chunkId] = [resolve, reject];
});
promises.push(installedChunkData[2] = promise);
// 开始加载chunk
var script = document.createElement('script');
var onScriptComplete;
script.charset = 'utf-8';
script.timeout = 120;
if (__webpack_require__.nc) {
script.setAttribute("nonce", __webpack_require__.nc);
}
script.src = jsonpScriptSrc(chunkId);
// 创建错误处理
var error = new Error();
onScriptComplete = function(event) {
// 避免内存泄漏
script.onerror = script.onload = null;
clearTimeout(timeout);
var chunk = installedChunks[chunkId];
if (0 !== chunk) {
if (chunk) {
var errorType = event && (event.type === 'load' ? 'missing' : event.type);
var realSrc = event && event.target && event.target.src;
error.message = 'Loading chunk ' + chunkId + ' failed.\n(' +
errorType + ': ' + realSrc + ')';
error.name = 'ChunkLoadError';
error.type = errorType;
error.request = realSrc;
chunk[1](error);
}
installedChunks[chunkId] = undefined;
}
};
var timeout = setTimeout(function() {
onScriptComplete({ type: 'timeout', target: script });
}, 120000);
script.onerror = script.onload = onScriptComplete;
document.head.appendChild(script);
}
}
return Promise.all(promises);
};
/**
* 获取chunk的script src
*/
function jsonpScriptSrc(chunkId) {
// Chunk名称映射
var chunkMap = {
"pages-index-index~pages-personal-index~pages-rushing-detail~pages-rushing-index~pages-sub-pages-addr~7968e06c":
"pages-index-index~pages-personal-index~pages-rushing-detail~pages-rushing-index~pages-sub-pages-addr~7968e06c",
"pages-index-index~pages-sub-pages-search-index":
"pages-index-index~pages-sub-pages-search-index",
"pages-index-index": "pages-index-index",
"pages-sub-pages-search-index": "pages-sub-pages-search-index",
"pages-personal-index": "pages-personal-index",
"pages-rushing-detail~pages-rushing-index": "pages-rushing-detail~pages-rushing-index",
"pages-rushing-index": "pages-rushing-index",
"pages-rushing-detail~pages-sub-pages-balance-index~pages-sub-pages-coupon-index~pages-sub-pages-my-f~58831170":
"pages-rushing-detail~pages-sub-pages-balance-index~pages-sub-pages-coupon-index~pages-sub-pages-my-f~58831170",
"pages-rushing-detail~pages-sub-pages-balance-index~pages-sub-pages-coupon-index~pages-sub-pages-priz~0d2429df":
"pages-rushing-detail~pages-sub-pages-balance-index~pages-sub-pages-coupon-index~pages-sub-pages-priz~0d2429df",
"pages-rushing-detail": "pages-rushing-detail",
"pages-sub-pages-rushing-order-detail~pages-sub-pages-rushing-order-index":
"pages-sub-pages-rushing-order-detail~pages-sub-pages-rushing-order-index",
"pages-sub-pages-rushing-order-index": "pages-sub-pages-rushing-order-index",
"pages-sub-pages-my-fans-index": "pages-sub-pages-my-fans-index",
"pages-sub-pages-shop-order-index": "pages-sub-pages-shop-order-index",
"pages-sub-pages-address-detail~pages-sub-pages-login-change-pwd~pages-sub-pages-login-index~pages-su~3512e57f":
"pages-sub-pages-address-detail~pages-sub-pages-login-change-pwd~pages-sub-pages-login-index~pages-su~3512e57f",
"pages-sub-pages-address-detail": "pages-sub-pages-address-detail",
"pages-sub-pages-login-change-pwd~pages-sub-pages-login-register~pages-sub-pages-login-reset-account":
"pages-sub-pages-login-change-pwd~pages-sub-pages-login-register~pages-sub-pages-login-reset-account",
"pages-sub-pages-login-change-pwd": "pages-sub-pages-login-change-pwd",
"pages-sub-pages-login-register": "pages-sub-pages-login-register",
"pages-sub-pages-login-reset-account": "pages-sub-pages-login-reset-account",
"pages-sub-pages-login-index": "pages-sub-pages-login-index",
"pages-sub-pages-my-payee-yl-detail": "pages-sub-pages-my-payee-yl-detail",
"pages-sub-pages-my-payee-zfb-detail": "pages-sub-pages-my-payee-zfb-detail",
"pages-sub-pages-address-index": "pages-sub-pages-address-index",
"pages-sub-pages-rushing-order-detail": "pages-sub-pages-rushing-order-detail",
"pages-sub-pages-setting-index": "pages-sub-pages-setting-index",
"pages-sub-pages-user-info-index": "pages-sub-pages-user-info-index",
"pages-sub-pages-balance-index": "pages-sub-pages-balance-index",
"pages-sub-pages-coupon-index": "pages-sub-pages-coupon-index",
"pages-sub-pages-prize-index": "pages-sub-pages-prize-index",
"pages-sub-pages-promote-prize-index": "pages-sub-pages-promote-prize-index",
"pages-sub-pages-withdraw-list": "pages-sub-pages-withdraw-list",
"pages-sub-pages-withdraw-index": "pages-sub-pages-withdraw-index",
"pages-sub-pages-agreement-contract~pages-sub-pages-agreement-contract1~pages-sub-pages-agreement-index":
"pages-sub-pages-agreement-contract~pages-sub-pages-agreement-contract1~pages-sub-pages-agreement-index",
"pages-sub-pages-agreement-contract": "pages-sub-pages-agreement-contract",
"pages-sub-pages-agreement-contract1": "pages-sub-pages-agreement-contract1",
"pages-sub-pages-agreement-index": "pages-sub-pages-agreement-index",
"pages-sub-pages-agreement-my-contract": "pages-sub-pages-agreement-my-contract",
"pages-sub-pages-good-good-detail": "pages-sub-pages-good-good-detail",
"pages-sub-pages-invite-index": "pages-sub-pages-invite-index",
"pages-sub-pages-my-payee-index": "pages-sub-pages-my-payee-index",
"pages-sub-pages-setting-404": "pages-sub-pages-setting-404",
"pages-sub-pages-webview-index": "pages-sub-pages-webview-index",
"pages-sub-pages-webview-sign": "pages-sub-pages-webview-sign",
"pages-sub-pages-webview-sign-preview": "pages-sub-pages-webview-sign-preview"
};
// Hash映射实际从构建中生成
var hashMap = {
// 这里是各chunk对应的hash值
// 实际内容从原文件中提取
};
return __webpack_require__.p + "static/js/" +
(chunkMap[chunkId] || chunkId) + "." +
(hashMap[chunkId] || "未知") + ".js";
}
// 公共路径
__webpack_require__.p = "/";
// 错误处理函数
__webpack_require__.oe = function(err) {
console.error(err);
throw err;
};
// jsonp数组
var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
jsonpArray.push = webpackJsonpCallback;
jsonpArray = jsonpArray.slice();
for (var i = 0; i < jsonpArray.length; i++) {
webpackJsonpCallback(jsonpArray[i]);
}
var parentJsonpFunction = oldJsonpFunction;
// 运行延迟模块
checkDeferredModules();
})({
// ==================== 应用模块 ====================
// 以下是实际的应用模块代码
// 由于篇幅限制,仅列出主要模块结构
// ... 模块定义在这里 ...
// 详见 CORE-FILES-ANALYSIS.md
});
// ==================== 主要模块说明 ====================
/**
* 模块 9cc7: 应用主入口
* - 初始化Vue应用
* - 挂载路由
* - 注册全局插件
* - 启动应用
*/
/**
* 模块 ec29: 路由配置
* - 创建路由实例
* - 定义所有页面路由34个
* - 配置路由守卫
* - 错误处理
*/
/**
* 模块 cf50: API管理
* - 所有后端接口定义
* - 请求拦截器
* - 响应处理
*/
/**
* 模块 b454: Vuex Store
* - 状态管理
* - Actions/Mutations/Getters
* - 持久化存储
*/
/**
* 模块 b2e4: 全局插件
* - 工具函数注册
* - Mixins注册
* - 过滤器注册
*/
/**
* 模块 8118: 工具函数
* - 图片处理
* - 扫码
* - 电话/复制
* - 数值计算
*/
/**
* 模块 b8d2: uni-app配置
* - 应用信息
* - TabBar配置
* - 页面配置
* - 全局样式
*/
// ==================== 结束 ====================

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,929 @@
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
["pages-personal-index"], {
"0e2b": function(t, e, n) {
"use strict";
n.d(e, "b", (function() {
return A
})), n.d(e, "c", (function() {
return a
})), n.d(e, "a", (function() {
return i
}));
var i = {
uIcon: n("8ed3").default
},
A = function() {
var t = this,
e = t.$createElement,
n = t._self._c || e;
return n("v-uni-view", {}, [n("v-uni-view", {
staticClass: "u-navbar",
class: {
"u-navbar-fixed": t.isFixed,
"u-border-bottom": t.borderBottom
},
style: [t.navbarStyle]
}, [n("v-uni-view", {
staticClass: "u-status-bar",
style: {
height: t.statusBarHeight + "px"
}
}), n("v-uni-view", {
staticClass: "u-navbar-inner",
style: [t.navbarInnerStyle]
}, [t.isBack ? n("v-uni-view", {
staticClass: "u-back-wrap",
on: {
click: function(e) {
arguments[0] = e = t.$handleEvent(e), t
.goBack.apply(void 0, arguments)
}
}
}, [n("v-uni-view", {
staticClass: "u-icon-wrap"
}, [n("u-icon", {
attrs: {
name: t.backIconName,
color: t.backIconColor,
size: t.backIconSize
}
})], 1), t.backText ? n("v-uni-view", {
staticClass: "u-icon-wrap u-back-text u-line-1",
style: [t.backTextStyle]
}, [t._v(t._s(t.backText))]) : t._e()], 1) : t._e(), t
.title ? n("v-uni-view", {
staticClass: "u-navbar-content-title",
style: [t.titleStyle]
}, [n("v-uni-view", {
staticClass: "u-title u-line-1",
style: {
color: t.titleColor,
fontSize: t.titleSize + "rpx",
fontWeight: t.titleBold ? "bold" :
"normal"
}
}, [t._v(t._s(t.title))])], 1) : t._e(), n("v-uni-view", {
staticClass: "u-slot-content"
}, [t._t("default")], 2), n("v-uni-view", {
staticClass: "u-slot-right"
}, [t._t("right")], 2)
], 1)], 1), t.isFixed && !t.immersive ? n("v-uni-view", {
staticClass: "u-navbar-placeholder",
style: {
width: "100%",
height: Number(t.navbarHeight) + t.statusBarHeight + "px"
}
}) : t._e()], 1)
},
a = []
},
"1c09": function(t, e, n) {
var i = n("fc1c");
i.__esModule && (i = i.default), "string" === typeof i && (i = [
[t.i, i, ""]
]), i.locals && (t.exports = i.locals);
var A = n("967d").default;
A("b42e9256", i, !0, {
sourceMap: !1,
shadowMode: !1
})
},
2828: function(t, e, n) {
var i = n("5f48");
i.__esModule && (i = i.default), "string" === typeof i && (i = [
[t.i, i, ""]
]), i.locals && (t.exports = i.locals);
var A = n("967d").default;
A("17cc7236", i, !0, {
sourceMap: !1,
shadowMode: !1
})
},
2979: function(t, e, n) {
"use strict";
n.d(e, "b", (function() {
return A
})), n.d(e, "c", (function() {
return a
})), n.d(e, "a", (function() {
return i
}));
var i = {
uNavbar: n("9ea9").default,
uAvatar: n("5c7a").default
},
A = function() {
var t = this,
e = t.$createElement,
n = t._self._c || e;
return n("v-uni-view", {
staticClass: "content"
}, [n("v-uni-view", {
staticClass: "user-bg u-p-b-20 u-m-b-30"
}, [n("u-navbar", {
attrs: {
"is-back": !1,
"border-bottom": !1,
background: {
background: "transparent"
}
}
}), n("v-uni-view", {
staticClass: "b-flex-x b-flex-space u-p-lr-30 u-m-b-40 b-text-white"
}, [t.userInfo.nickname ? n("v-uni-view", {
staticClass: "b-text-white"
}, [n("v-uni-view", {
staticClass: "b-text-36 b-text-B nickname u-m-b-50"
}, [t._v(t._s(t.userInfo.nickname))]), n(
"v-uni-view", {}, [n("v-uni-text", [t._v(
"邀请码:" + t._s(t.userInfo.invite)
)]), n("v-uni-text", {
staticClass: "b-icon icon-file-copy u-m-l-10",
on: {
click: function(e) {
arguments[0] = e = t
.$handleEvent(e), t
.$tools.clipboard(t
.userInfo.invite
)
}
}
})], 1)], 1) : n("v-uni-view", {
staticClass: "b-text-white"
}, [n("v-uni-view", {
staticClass: "b-text-36 b-text-B nickname",
on: {
click: function(e) {
arguments[0] = e = t
.$handleEvent(e), t.toPage(
"/pages/sub-pages/login/index"
)
}
}
}, [t._v("注册/登录")])], 1), n("u-avatar", {
staticClass: "mr-30",
attrs: {
src: t._f("imgFormat")(t.userInfo.avatar),
size: "140"
}
})], 1), n("v-uni-view", {
staticClass: "b-bg-white b-radius-16 u-m-lr-20 "
}, [n("v-uni-view", {
staticClass: "u-p-30"
}, [t._v("买方")]), n("v-uni-view", {
staticClass: "b-flex-x b-flex-4 u-p-b-30"
}, t._l(t.buyTool, (function(e, i) {
return n("v-uni-button", {
key: i,
staticClass: "ptb-30 b-flex-col",
attrs: {
"open-type": e.opentype
},
on: {
click: function(n) {
arguments[0] = n = t
.$handleEvent(
n), t.clickTool(
e)
}
}
}, [n("v-uni-image", {
staticClass: "mr-20",
staticStyle: {
width: "84rpx"
},
attrs: {
src: e.icon,
mode: "widthFix"
}
}), n("v-uni-view", {
staticClass: "b-text-30"
}, [t._v(t._s(e.name))])], 1)
})), 1)], 1)], 1), n("v-uni-view", {
staticClass: "b-bg-white b-radius-16 u-m-lr-20 u-m-b-20"
}, [n("v-uni-view", {
staticClass: "u-p-30"
}, [t._v("卖方")]), n("v-uni-view", {
staticClass: "b-flex-x b-flex-4 u-p-b-30"
}, t._l(t.saleTool, (function(e, i) {
return n("v-uni-button", {
key: i,
staticClass: "ptb-30 b-flex-col",
attrs: {
"open-type": e.opentype
},
on: {
click: function(n) {
arguments[0] = n = t
.$handleEvent(n), t
.clickTool(e)
}
}
}, [n("v-uni-image", {
staticClass: "mr-20",
staticStyle: {
width: "84rpx"
},
attrs: {
src: e.icon,
mode: "widthFix"
}
}), n("v-uni-view", {
staticClass: "b-text-30"
}, [t._v(t._s(e.name))])], 1)
})), 1)], 1), n("v-uni-view", {
staticClass: "b-bg-white b-radius-16 u-p-t-30 u-m-lr-20 u-m-b-20"
}, [n("v-uni-view", {
staticClass: "b-flex-x b-flex-2 b-flex-wrap u-p-l-30"
}, [n("v-uni-view", {
staticClass: "b-flex-col b-flex-x b-flex-space u-p-b-30 u-p-r-20",
on: {
click: function(e) {
arguments[0] = e = t.$handleEvent(e), t
.toPage(
"/pages/sub-pages/balance/index"
)
}
}
}, [n("v-uni-text", [t._v("余额:" + t._s(t.userInfo
.money))]), n("v-uni-text", {
staticClass: "b-icon icon-right "
})], 1), n("v-uni-view", {
staticClass: "b-flex-col b-flex-x b-flex-space u-p-b-30 u-p-r-20",
on: {
click: function(e) {
arguments[0] = e = t.$handleEvent(e), t
.toPage(
"/pages/sub-pages/coupon/index")
}
}
}, [n("v-uni-text", [t._v("优惠券:" + t._s(t.userInfo
.coupon))]), n("v-uni-text", {
staticClass: "b-icon icon-right "
})], 1), n("v-uni-view", {
staticClass: "b-flex-col b-flex-x b-flex-space u-p-b-30 u-p-r-20",
on: {
click: function(e) {
// http://jf.suzhouyuqi.com/pages/integral/points?username=
arguments[0] = e = t.$handleEvent(e),
window.location.href =
"https://jf.bosenyuan.com/pages/integral/points?username=" +
t.userInfo.mobile + "#/pages/integral/points"
}
}
}, [n("v-uni-text", [t._v("我的奖金:" + t._s(t.userInfo
.self_bonus))]), n("v-uni-text", {
staticClass: "b-icon icon-right "
})], 1), n("v-uni-view", {
staticClass: "b-flex-col b-flex-x b-flex-space u-p-b-30 u-p-r-20",
on: {
click: function(e) {
arguments[0] = e = t.$handleEvent(e), t
.toPage(
"/pages/sub-pages/promote-prize/index"
)
}
}
}, [n("v-uni-text", [t._v("推广奖金:" + t._s(t.userInfo
.share_bonus))]), n("v-uni-text", {
staticClass: "b-icon icon-right "
})], 1)], 1)], 1), n("v-uni-view", {
staticClass: "u-p-lr-20 b-bg-white b-radius-16 u-m-lr-20 u-m-b-20"
}, t._l(t.myTool, (function(e, i) {
return n("v-uni-button", {
key: i,
staticClass: "u-p-tb-20 b-flex-x b-flex-space",
attrs: {
"open-type": e.opentype
},
on: {
click: function(n) {
arguments[0] = n = t.$handleEvent(
n), t.clickTool(e)
}
}
}, [n("v-uni-view", {
staticClass: "b-flex-x"
}, [n("v-uni-image", {
staticClass: "u-m-r-10",
staticStyle: {
width: "48rpx",
height: "48rpx"
},
attrs: {
src: e.icon,
mode: "aspectFit"
}
}), n("v-uni-text", {
staticClass: "b-text-30"
}, [t._v(t._s(e.name))])], 1), n("v-uni-text", {
staticClass: "b-icon icon-right "
})], 1)
})), 1)], 1)
},
a = []
},
"3a5b": function(t, e, n) {
"use strict";
n.r(e);
var i = n("54ca"),
A = n.n(i);
for (var a in i)["default"].indexOf(a) < 0 && function(t) {
n.d(e, t, (function() {
return i[t]
}))
}(a);
e["default"] = A.a
},
"4fe0": function(t, e, n) {
"use strict";
n.r(e);
var i = n("77ce"),
A = n.n(i);
for (var a in i)["default"].indexOf(a) < 0 && function(t) {
n.d(e, t, (function() {
return i[t]
}))
}(a);
e["default"] = A.a
},
5259: function(t, e, n) {
"use strict";
var i = n("7ae0"),
A = n.n(i);
A.a
},
"526b": function(t, e, n) {
"use strict";
var i = n("1c09"),
A = n.n(i);
A.a
},
"54ca": function(t, e, n) {
"use strict";
n("6a54"), Object.defineProperty(e, "__esModule", {
value: !0
}), e.default = void 0, n("64aa");
var i =
"data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCADIAMgDAREAAhEBAxEB/8QAcQABAQEAAwEBAAAAAAAAAAAAAAUEAQMGAgcBAQAAAAAAAAAAAAAAAAAAAAAQAAIBAwICBgkDBQAAAAAAAAABAhEDBCEFMVFBYXGREiKBscHRMkJSEyOh4XLxYjNDFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHbHFyZ/Dam+yLA+Z2L0Pjtyj2poD4AAAAAAAAAAAAAAAAAAAAAAAAKWFs9y6lcvvwQeqj8z9wFaziY1n/HbUX9XF97A7QAGXI23EvJ1goyfzR0YEfN269jeZ+a03pNe0DIAAAAAAAAAAAAAAAAAAAACvtO3RcVkXlWutuL9YFYAAAAAOJRjKLjJVi9GmB5/csH/mu1h/in8PU+QGMAAAAAAAAAAAAAAAAAAaMDG/6MmMH8C80+xAelSSVFolwQAAAAAAAHVlWI37ErUulaPk+hgeYnCUJuElSUXRrrQHAAAAAAAAAAAAAAAAABa2Oz4bM7r4zdF2ICmAAAAAAAAAg7zZ8GX41wuJP0rRgYAAAAAAAAAAAAAAAAAD0m2R8ODaXU33tsDSAAAAAAAAAlb9HyWZcnJd9PcBHAAAAAAAAAAAAAAAAAPS7e64Vn+KA0AAAAAAAAAJm+v8Ftf3ewCKAAAAAAAAAAAAAAAAAX9muqeGo9NttP06+0DcAAAAAAAAAjb7dTu2ra+VOT9P8AQCWAAAAAAAAAAAAAAAAAUNmyPt5Ltv4bui/kuAF0AAAAAAADiUlGLlJ0SVW+oDzOXfd/Ind6JPRdS0QHSAAAAAAAAAAAAAAAAAE2nVaNcGB6Lbs6OTao9LsF51z60BrAAAAAABJ3jOVHjW3r/sa9QEgAAAAAAAAAAAAAAAAAAAPu1duWriuW34ZR4MC9hbnZyEoy8l36XwfYBsAAADaSq9EuLAlZ+7xSdrGdW9Hc5dgEdtt1erfFgAAAAAAAAAAAAAAAAADVjbblX6NR8MH80tEBRs7HYivyzlN8lovaBPzduvY0m6eK10TXtAyAarO55lpJK54orolr+4GqO/Xaea1FvqbXvA+Z77kNeW3GPbV+4DJfzcm/pcm3H6Vou5AdAFLC2ed2Pjv1txa8sV8T6wOL+yZEKu1JXFy4MDBOE4ScZxcZLinoB8gAAAAAAAAAAAB242LeyJ+C3GvN9C7QLmJtePYpKS+5c+p8F2IDYAANJqj1T4oCfk7Nj3G5Wn9qXJax7gJ93Z82D8sVNc4v30A6Xg5i42Z+iLfqARwcyT0sz9MWvWBps7LlTf5Grce9/oBTxdtxseklHxT+uWr9AGoAB138ezfj4bsFJdD6V2MCPm7RdtJzs1uW1xXzL3gTgAAAAAAAAADRhYc8q74I6RWs5ckB6GxYtWLat21SK731sDsAAAAAAAAAAAAAAAASt021NO/YjrxuQXT1oCOAAAAAAABzGLlJRSq26JAelwsWONYjbXxcZvmwO8AAAAAAAAAAAAAAAAAAef3TEWPkVivx3NY9T6UBiAAAAAABo2+VmGXblddIJ8eivRUD0oAAAAAAAAAAAAAAAAAAAYt4tKeFKVNYNSXfRgefAAAAAAAAr7VuSSWPedKaW5v1MCsAAAAAAAAAAAAAAAAAAIe6bj96Ts2n+JPzSXzP3ATgAAAAAAAAFbbt1UUrOQ9FpC4/UwK6aaqtU+DAAAAAAAAAAAAAAA4lKMIuUmoxWrb4ARNx3R3q2rLpa4Sl0y/YCcAAAAAAAAAAANmFud7G8r89r6X0dgFvGzLGRGtuWvTF6NAdwAAAAAAAAAAAy5W442PVN+K59EePp5ARMvOv5MvO6QXCC4AZwAAAAAAAAAAAAAcxlKLUotprg1owN+PvORborq+7Hnwl3gUbO74VzRydt8pKn68ANcJwmqwkpLmnUDkAAAAfNy9atqtyagut0AxXt5xIV8Fbj6lRd7Am5G65V6qUvtwfyx94GMAAAAAAAAAAAAAAAAAAAOU2nVOj5gdsc3LiqRvTpyqwOxbnnrhdfpSfrQB7pnv/AGvuS9gHXPMy5/Fem1yq0v0A6W29XqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//Z",
A = {
name: "u-avatar",
props: {
bgColor: {
type: String,
default: "transparent"
},
src: {
type: String,
default: ""
},
size: {
type: [String, Number],
default: "default"
},
mode: {
type: String,
default: "circle"
},
text: {
type: String,
default: ""
},
imgMode: {
type: String,
default: "aspectFill"
},
index: {
type: [String, Number],
default: ""
},
sexIcon: {
type: String,
default: "man"
},
levelIcon: {
type: String,
default: "level"
},
levelBgColor: {
type: String,
default: ""
},
sexBgColor: {
type: String,
default: ""
},
showSex: {
type: Boolean,
default: !1
},
showLevel: {
type: Boolean,
default: !1
}
},
data: function() {
return {
error: !1,
avatar: this.src ? this.src : i
}
},
watch: {
src: function(t) {
t ? (this.avatar = t, this.error = !1) : (this.avatar = i, this.error = !0)
}
},
computed: {
wrapStyle: function() {
var t = {};
return t.height = "large" == this.size ? "120rpx" : "default" == this.size ?
"90rpx" : "mini" == this.size ? "70rpx" : this.size + "rpx", t.width = t
.height, t.flex = "0 0 ".concat(t.height), t.backgroundColor = this
.bgColor, t.borderRadius = "circle" == this.mode ? "500px" : "5px", this
.text && (t.padding = "0 6rpx"), t
},
imgStyle: function() {
var t = {};
return t.borderRadius = "circle" == this.mode ? "500px" : "5px", t
},
uText: function() {
return String(this.text)[0]
},
uSexStyle: function() {
var t = {};
return this.sexBgColor && (t.backgroundColor = this.sexBgColor), t
},
uLevelStyle: function() {
var t = {};
return this.levelBgColor && (t.backgroundColor = this.levelBgColor), t
}
},
methods: {
loadError: function() {
this.error = !0, this.avatar = i
},
click: function() {
this.$emit("click", this.index)
}
}
};
e.default = A
},
5518: function(t, e, n) {
"use strict";
n("6a54");
var i = n("f5bd").default;
Object.defineProperty(e, "__esModule", {
value: !0
}), e.default = void 0;
var A = i(n("2634")),
a = i(n("2fdc")),
r = {
data: function() {
var t = this;
return {
userInfo: {
id: "",
avatar_url: "",
nickname: "",
invite: ""
},
buyTool: [{
id: 1,
name: "买方仓库",
icon: "/static/images/tool-ico1.png",
url: "/pages/sub-pages/rushing-order/index"
}, {
id: 2,
name: "交易中",
icon: "/static/images/tool-ico2.png",
url: "/pages/sub-pages/rushing-order/index",
urlquery: {
current: 1
}
}, {
id: 2,
name: "已完成",
icon: "/static/images/tool-ico3.png",
url: "/pages/sub-pages/rushing-order/index",
urlquery: {
current: 2
}
}],
saleTool: [{
id: 1,
name: "卖方仓库",
icon: "/static/images/tool-ico1.png",
url: "/pages/sub-pages/rushing-order/index",
urlquery: {
cate: 2
}
}, {
id: 2,
name: "交易中",
icon: "/static/images/tool-ico2.png",
url: "/pages/sub-pages/rushing-order/index",
urlquery: {
cate: 2,
current: 1
}
}, {
id: 2,
name: "已完成",
icon: "/static/images/tool-ico3.png",
url: "/pages/sub-pages/rushing-order/index",
urlquery: {
cate: 2,
current: 2
}
}],
myTool: [{
id: 2,
name: "邀请好友",
icon: "/static/images/tool-ico5.png",
opentype: "",
url: "/pages/sub-pages/invite/index"
}, {
id: 3,
name: "我的粉丝",
icon: "/static/images/tool-ico6.png",
opentype: "",
url: "/pages/sub-pages/my-fans/index"
}, {
id: 4,
name: "收款方式",
icon: "/static/images/tool-ico7.png",
opentype: "",
url: "/pages/sub-pages/my-payee/index"
}, {
id: 5,
name: "我的合同",
icon: "/static/images/tool-ico8.png",
opentype: "",
custom: function() {
var e;
return t.toPage(
"/pages/sub-pages/webview/sign-preview", {
passback: null === (e = t.userInfo) ||
void 0 === e ? void 0 : e.id
})
}
}, {
id: 6,
name: "设置",
icon: "/static/images/tool-ico8.png",
opentype: "",
url: "/pages/sub-pages/setting/index"
}]
}
},
onShow: function() {
this.getUser()
},
methods: {
getUser: function() {
var t = this;
return (0, a.default)((0, A.default)().mark((function e() {
var n, i, a, r;
return (0, A.default)().wrap((function(e) {
while (1) switch (e.prev = e.next) {
case 0:
return e.next = 2, t.$api
.user();
case 2:
n = e.sent, 0 == n.code && (
t.userInfo = n.data,
(null === (i = n
.data) ||
void 0 === i ?
void 0 : i.level
) != t.level &&
t.setLevel(null ===
(a = n.data) ||
void 0 === a ?
void 0 : a.level
), t.$store
.dispatch(
"setSignature",
null === (r = n
.data) ||
void 0 === r ?
void 0 : r
.contract), t
.$store.state
.token && !t.$store
.state.signature &&
t.$tools.showModal(
"请签署平台用户合同", !0,
(function() {
t.toPage(
"/pages/sub-pages/webview/index", {
title: "平台用户合同"
}
)
})));
case 4:
case "end":
return e.stop()
}
}), e)
})))()
},
toUser: function() {
this.toPage("/pages/sub-pages/user-info/index")
}
}
};
e.default = r
},
5883: function(t, e, n) {
"use strict";
n.d(e, "b", (function() {
return A
})), n.d(e, "c", (function() {
return a
})), n.d(e, "a", (function() {
return i
}));
var i = {
uIcon: n("8ed3").default
},
A = function() {
var t = this,
e = t.$createElement,
n = t._self._c || e;
return n("v-uni-view", {
staticClass: "u-avatar",
style: [t.wrapStyle],
on: {
click: function(e) {
arguments[0] = e = t.$handleEvent(e), t.click.apply(void 0,
arguments)
}
}
}, [!t.uText && t.avatar ? n("v-uni-image", {
staticClass: "u-avatar__img",
style: [t.imgStyle],
attrs: {
src: t.avatar,
mode: t.imgMode
},
on: {
error: function(e) {
arguments[0] = e = t.$handleEvent(e), t.loadError.apply(
void 0, arguments)
}
}
}) : t.uText ? n("v-uni-text", {
staticClass: "u-line-1",
style: {
fontSize: "38rpx"
}
}, [t._v(t._s(t.uText))]) : t._t("default"), t.showSex ? n("v-uni-view", {
staticClass: "u-avatar__sex",
class: ["u-avatar__sex--" + t.sexIcon],
style: [t.uSexStyle]
}, [n("u-icon", {
attrs: {
name: t.sexIcon,
size: "20"
}
})], 1) : t._e(), t.showLevel ? n("v-uni-view", {
staticClass: "u-avatar__level",
style: [t.uLevelStyle]
}, [n("u-icon", {
attrs: {
name: t.levelIcon,
size: "20"
}
})], 1) : t._e()], 2)
},
a = []
},
"5c7a": function(t, e, n) {
"use strict";
n.r(e);
var i = n("5883"),
A = n("3a5b");
for (var a in A)["default"].indexOf(a) < 0 && function(t) {
n.d(e, t, (function() {
return A[t]
}))
}(a);
n("526b");
var r = n("828b"),
s = Object(r["a"])(A["default"], i["b"], i["c"], !1, null, "760fcdf2", null, !1, i["a"],
void 0);
e["default"] = s.exports
},
"5f48": function(t, e, n) {
var i = n("c86c");
e = i(!1), e.push([t.i,
'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.user-bg[data-v-737de0a1]{position:relative;width:100%;background:#ea6254}',
""
]), t.exports = e
},
"76fa": function(t, e, n) {
"use strict";
n.r(e);
var i = n("2979"),
A = n("7946");
for (var a in A)["default"].indexOf(a) < 0 && function(t) {
n.d(e, t, (function() {
return A[t]
}))
}(a);
n("ff6d");
var r = n("828b"),
s = Object(r["a"])(A["default"], i["b"], i["c"], !1, null, "737de0a1", null, !1, i["a"],
void 0);
e["default"] = s.exports
},
"77ce": function(t, e, n) {
"use strict";
n("6a54"), Object.defineProperty(e, "__esModule", {
value: !0
}), e.default = void 0, n("64aa");
var i = uni.getSystemInfoSync(),
A = {},
a = {
name: "u-navbar",
props: {
height: {
type: [String, Number],
default: ""
},
backIconColor: {
type: String,
default: "#606266"
},
backIconName: {
type: String,
default: "nav-back"
},
backIconSize: {
type: [String, Number],
default: "44"
},
backText: {
type: String,
default: ""
},
backTextStyle: {
type: Object,
default: function() {
return {
color: "#606266"
}
}
},
title: {
type: String,
default: ""
},
titleWidth: {
type: [String, Number],
default: "250"
},
titleColor: {
type: String,
default: "#606266"
},
titleBold: {
type: Boolean,
default: !1
},
titleSize: {
type: [String, Number],
default: 32
},
isBack: {
type: [Boolean, String],
default: !0
},
background: {
type: Object,
default: function() {
return {
background: "#ffffff"
}
}
},
isFixed: {
type: Boolean,
default: !0
},
immersive: {
type: Boolean,
default: !1
},
borderBottom: {
type: Boolean,
default: !0
},
zIndex: {
type: [String, Number],
default: ""
},
customBack: {
type: Function,
default: null
}
},
data: function() {
return {
menuButtonInfo: A,
statusBarHeight: i.statusBarHeight
}
},
computed: {
navbarInnerStyle: function() {
var t = {};
return t.height = this.navbarHeight + "px", t
},
navbarStyle: function() {
var t = {};
return t.zIndex = this.zIndex ? this.zIndex : this.$u.zIndex.navbar, Object
.assign(t, this.background), t
},
titleStyle: function() {
var t = {};
return t.left = (i.windowWidth - uni.upx2px(this.titleWidth)) / 2 + "px", t
.right = (i.windowWidth - uni.upx2px(this.titleWidth)) / 2 + "px", t
.width = uni.upx2px(this.titleWidth) + "px", t
},
navbarHeight: function() {
return this.height ? this.height : 44
}
},
created: function() {},
methods: {
goBack: function() {
"function" === typeof this.customBack ? this.customBack.bind(this.$u.$parent
.call(this))() : uni.navigateBack()
}
}
};
e.default = a
},
7946: function(t, e, n) {
"use strict";
n.r(e);
var i = n("5518"),
A = n.n(i);
for (var a in i)["default"].indexOf(a) < 0 && function(t) {
n.d(e, t, (function() {
return i[t]
}))
}(a);
e["default"] = A.a
},
"7ae0": function(t, e, n) {
var i = n("8198");
i.__esModule && (i = i.default), "string" === typeof i && (i = [
[t.i, i, ""]
]), i.locals && (t.exports = i.locals);
var A = n("967d").default;
A("0a0b5e36", i, !0, {
sourceMap: !1,
shadowMode: !1
})
},
8198: function(t, e, n) {
var i = n("c86c");
e = i(!1), e.push([t.i,
'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.u-navbar[data-v-2920cc37]{width:100%}.u-navbar-fixed[data-v-2920cc37]{position:fixed;left:0;right:0;top:0;z-index:991}.u-status-bar[data-v-2920cc37]{width:100%}.u-navbar-inner[data-v-2920cc37]{display:flex;flex-direction:row;justify-content:space-between;position:relative;align-items:center}.u-back-wrap[data-v-2920cc37]{display:flex;flex-direction:row;align-items:center;flex:1;flex-grow:0;padding:%?14?% %?14?% %?14?% %?24?%}.u-back-text[data-v-2920cc37]{padding-left:%?4?%;font-size:%?30?%}.u-navbar-content-title[data-v-2920cc37]{display:flex;flex-direction:row;align-items:center;justify-content:center;flex:1;position:absolute;left:0;right:0;height:%?60?%;text-align:center;flex-shrink:0}.u-navbar-centent-slot[data-v-2920cc37]{flex:1}.u-title[data-v-2920cc37]{line-height:%?60?%;font-size:%?32?%;flex:1}.u-navbar-right[data-v-2920cc37]{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-end}.u-slot-content[data-v-2920cc37]{flex:1;display:flex;flex-direction:row;align-items:center}',
""
]), t.exports = e
},
"9ea9": function(t, e, n) {
"use strict";
n.r(e);
var i = n("0e2b"),
A = n("4fe0");
for (var a in A)["default"].indexOf(a) < 0 && function(t) {
n.d(e, t, (function() {
return A[t]
}))
}(a);
n("5259");
var r = n("828b"),
s = Object(r["a"])(A["default"], i["b"], i["c"], !1, null, "2920cc37", null, !1, i["a"],
void 0);
e["default"] = s.exports
},
fc1c: function(t, e, n) {
var i = n("c86c");
e = i(!1), e.push([t.i,
'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.u-avatar[data-v-760fcdf2]{display:inline-flex;align-items:center;justify-content:center;font-size:%?28?%;color:#606266;border-radius:10px;position:relative}.u-avatar__img[data-v-760fcdf2]{width:100%;height:100%}.u-avatar__sex[data-v-760fcdf2]{position:absolute;width:%?32?%;color:#fff;height:%?32?%;display:flex;flex-direction:row;justify-content:center;align-items:center;border-radius:%?100?%;top:5%;z-index:1;right:-7%;border:1px #fff solid}.u-avatar__sex--man[data-v-760fcdf2]{background-color:#2979ff}.u-avatar__sex--woman[data-v-760fcdf2]{background-color:#fa3534}.u-avatar__sex--none[data-v-760fcdf2]{background-color:#f90}.u-avatar__level[data-v-760fcdf2]{position:absolute;width:%?32?%;color:#fff;height:%?32?%;display:flex;flex-direction:row;justify-content:center;align-items:center;border-radius:%?100?%;bottom:5%;z-index:1;right:-7%;border:1px #fff solid;background-color:#f90}',
""
]), t.exports = e
},
ff6d: function(t, e, n) {
"use strict";
var i = n("2828"),
A = n.n(i);
A.a
}
}
]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-sub-pages-agreement-my-contract"],{2973:function(t,n,e){"use strict";e.r(n);var a=e("dc46"),u=e("c201");for(var r in u)["default"].indexOf(r)<0&&function(t){e.d(n,t,(function(){return u[t]}))}(r);var i=e("828b"),c=Object(i["a"])(u["default"],a["b"],a["c"],!1,null,"9ae4f964",null,!1,a["a"],void 0);n["default"]=c.exports},"56cf":function(t,n,e){"use strict";e("6a54");var a=e("f5bd").default;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u=a(e("2634")),r=a(e("2fdc")),i={data:function(){var t;return{parseContent:"",IMG_URL:uni.$IMG_URL,contractPage:null!==(t=uni.$contractPage)&&void 0!==t?t:13,uid:0}},onLoad:function(){this.getUser()},methods:{getUser:function(){var t=this;return(0,r.default)((0,u.default)().mark((function n(){var e,a,r;return(0,u.default)().wrap((function(n){while(1)switch(n.prev=n.next){case 0:return n.next=2,t.$api.user();case 2:e=n.sent,0==e.code&&(t.uid=null===(a=e.data)||void 0===a||null===(r=a.userinfo)||void 0===r?void 0:r.id);case 4:case"end":return n.stop()}}),n)})))()}}};n.default=i},c201:function(t,n,e){"use strict";e.r(n);var a=e("56cf"),u=e.n(a);for(var r in a)["default"].indexOf(r)<0&&function(t){e.d(n,t,(function(){return a[t]}))}(r);n["default"]=u.a},dc46:function(t,n,e){"use strict";e.d(n,"b",(function(){return a})),e.d(n,"c",(function(){return u})),e.d(n,"a",(function(){}));var a=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-uni-view",{staticClass:"content page-bg white-bg"},[e("v-uni-view",{},t._l(t.contractPage,(function(n,a){return e("v-uni-image",{key:a,attrs:{src:t.IMG_URL+"/uploads/pdfimages/"+t.uid+"_page"+(a+1)+".png",mode:"widthFix"}})})),1)],1)},u=[]}}]);

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-sub-pages-balance-index"],{"72e5":function(t,e,n){var a=n("c86c");e=a(!1),e.push([t.i,'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.logout-btn[data-v-ed31e75e]{background:#ff5733;color:#fff}',""]),t.exports=e},"86d1":function(t,e,n){"use strict";n("6a54");var a=n("f5bd").default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=a(n("2634")),i=a(n("2fdc")),s={data:function(){return{current:0,cateList:[{id:1,name:"收入明细"},{id:2,name:"支出明细"}],dataList:[],userinfo:{money:0}}},onShow:function(){this.getUser()},onLoad:function(){},methods:{getUser:function(){var t=this;return(0,i.default)((0,r.default)().mark((function e(){var n;return(0,r.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.$api.user();case 2:n=e.sent,0==n.code&&(t.userinfo=n.data);case 4:case"end":return e.stop()}}),e)})))()},getMoneyLog:function(t,e){var n=this;return(0,i.default)((0,r.default)().mark((function a(){var i,s,u,c;return(0,r.default)().wrap((function(a){while(1)switch(a.prev=a.next){case 0:return s={cate:1,type:null===(i=n.cateList[n.current])||void 0===i?void 0:i.id,page:t,limit:e,loading:!0},a.next=3,n.$api.moneyLog(s);case 3:u=a.sent,0==u.code&&n.$refs.paging.complete(null===(c=u.data)||void 0===c?void 0:c.list);case 5:case"end":return a.stop()}}),a)})))()},changeTab:function(t){this.current=t,this.$refs.paging.reload()}}};e.default=s},"9b6d":function(t,e,n){"use strict";n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){return a}));var a={zPaging:n("a943").default,uTabs:n("2a38").default},r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("z-paging",{ref:"paging",attrs:{"auto-scroll-to-top-when-reload":!1,"auto-clean-list-when-reload":!1},on:{query:function(e){arguments[0]=e=t.$handleEvent(e),t.getMoneyLog.apply(void 0,arguments)}},scopedSlots:t._u([{key:"top",fn:function(){return[n("v-uni-view",{staticClass:"b-bg-white "},[n("v-uni-view",{staticClass:"b-text-42 b-text-c u-p-tb-50 b-text-B-d"},[t._v("全部余额:"+t._s(t.userinfo.money))]),n("v-uni-view",{staticClass:"b-bg-white"},[n("u-tabs",{attrs:{list:t.cateList,"is-scroll":!1,current:t.current,"active-color":"#333333","inactive-color":"#666666","bg-color":"transparent","bar-style":{background:"#ea6254"},"bar-width":"80"},on:{change:function(e){arguments[0]=e=t.$handleEvent(e),t.changeTab.apply(void 0,arguments)}}})],1)],1)]},proxy:!0}]),model:{value:t.dataList,callback:function(e){t.dataList=e},expression:"dataList"}},[n("v-uni-view",{staticClass:"u-p-lr-10 u-p-t-20"},t._l(t.dataList,(function(e,a){return n("v-uni-view",{key:a,staticClass:"b-flex-x b-flex-space u-p-20 b-line-d card-box u-m-b-20"},[n("v-uni-view",{staticClass:"b-flex-x"},[n("v-uni-view",{},[n("v-uni-view",{staticClass:"u-m-b-10 b-text-32"},[t._v(t._s(e.memo))]),n("v-uni-text",{staticClass:"b-text-black-dd"},[t._v(t._s(e.created_at))])],1)],1),n("v-uni-text",{class:[{"b-text-green":0==t.current},{"b-text-red":1==t.current}]},[t._v(t._s(0==t.current?"+"+e.money:e.money))])],1)})),1)],1)},i=[]},a238:function(t,e,n){"use strict";n.r(e);var a=n("9b6d"),r=n("b076");for(var i in r)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(i);n("e1a6");var s=n("828b"),u=Object(s["a"])(r["default"],a["b"],a["c"],!1,null,"ed31e75e",null,!1,a["a"],void 0);e["default"]=u.exports},b076:function(t,e,n){"use strict";n.r(e);var a=n("86d1"),r=n.n(a);for(var i in a)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(i);e["default"]=r.a},c8d9:function(t,e,n){var a=n("72e5");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var r=n("967d").default;r("bbcc310c",a,!0,{sourceMap:!1,shadowMode:!1})},e1a6:function(t,e,n){"use strict";var a=n("c8d9"),r=n.n(a);r.a}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,613 @@
// ============================================
// 反编译后的可读版本
// 原文件: pages-sub-pages-login-index.a9a3e737.js
// 页面: 登录页面
// ============================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
["pages-sub-pages-login-index"],
{
// ==================== 模块 fa57: 页面逻辑 ====================
"fa57": function(module, exports, require) {
"use strict";
require("6a54");
var asyncToGenerator = require("f5bd").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var objectWithoutProperties = asyncToGenerator(require("a823"));
var regeneratorRuntime = asyncToGenerator(require("2634"));
var objectSpread = asyncToGenerator(require("9b1b"));
var _asyncToGenerator = asyncToGenerator(require("2fdc"));
require("5c47");
require("0506");
require("4682"); // 第三方登录相关
var excludedFields = ["is_reg", "openid"];
// 表单验证规则
var formRules = {
account: [
{
required: true,
message: "请输入账号",
trigger: ["blur", "change"]
},
{
validator: function(rule, value, callback) {
return uni.$u.test.mobile(value);
},
message: "手机号码不正确",
trigger: ["change", "blur"]
}
],
password: [
{
required: true,
message: "请输入密码",
trigger: ["blur", "change"]
}
]
};
// Vue组件配置
var component = {
// 数据
data: function() {
return {
formRules: formRules,
form: {
account: "", // 账号(手机号)
password: "" // 密码
}
};
},
// 页面准备完成
onReady: function() {
// 设置表单验证规则
this.$refs.uForm.setRules(this.formRules);
},
// 页面加载
onLoad: function() {
// 空方法
},
// 方法
methods: {
// 账号密码登录
accountlogin: function() {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var params, response;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = (0, objectSpread.default)(
(0, objectSpread.default)({}, self.form),
{},
{ loading: true }
);
// 调用登录API
return context.next = 3, self.$api.accountlogin(params);
case 3:
response = context.sent;
// 登录成功
if (0 == response.code) {
self.$u.toast(response.msg, (function() {
return self.setLogin(response.data);
}));
}
case 5:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 微信登录
wechatLogin: function(code) {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var params, response, data, isReg, openid, userInfo;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = {
code: code,
loading: true
};
// 调用微信登录API
return context.next = 3, self.$api.wechatLogin(params);
case 3:
response = context.sent;
// 登录失败
if (0 != response.code) {
context.next = 11;
break;
}
data = response.data;
isReg = data.is_reg; // 是否已注册
openid = data.openid; // 微信openid
// 排除 is_reg 和 openid 字段,获取用户信息
userInfo = (0, objectWithoutProperties.default)(data, excludedFields);
// 未注册,跳转到绑定手机号页面
if (!isReg) {
context.next = 9;
break;
}
self.toBindPhone(openid);
return context.abrupt("return");
case 9:
// 已注册,登录成功
self.$u.toast(response.msg);
setTimeout((function() {
return self.setLogin(userInfo);
}), 1000);
case 11:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 设置登录信息
setLogin: function(data) {
var userinfo, token, contract, userId;
// 获取token
token = null === data || void 0 === data ||
null === (userinfo = data.userinfo) || void 0 === userinfo ?
void 0 : userinfo.token;
// 获取合同签署状态
contract = null === data || void 0 === data ||
null === (userinfo = data.userinfo) || void 0 === userinfo ?
void 0 : userinfo.contract;
// 获取用户ID
userId = null === data || void 0 === data ||
null === (userinfo = data.userinfo) || void 0 === userinfo ?
void 0 : userinfo.id;
// 保存token到store
this.$store.dispatch("setToken", token);
// 保存用户信息到store
this.$store.dispatch("setUser", null === data || void 0 === data ? void 0 : data.userinfo);
// 保存签字状态到store
this.$store.dispatch("setSignature", contract);
// 生成并保存黑名单用户标识
var randomNum = this.$u.random(100, 999);
var blackUserId = "".concat("" + randomNum + userId + Date.now());
this.$store.dispatch("setBlackUser", blackUserId);
// 跳转到首页
this.toPageTab("/pages/index/index");
},
// 处理登录按钮点击
handleLogin: function() {
var self = this;
// 表单验证
this.$refs.uForm.validate((function(valid) {
if (valid) {
console.log("验证通过");
self.accountlogin();
} else {
console.log("验证失败");
}
}));
},
// 跳转到绑定手机号页面
toBindPhone: function(openid) {
this.toPage("/pages/sub-pages/login/bind-phone", {
openid: openid
});
},
// 跳转到注册页面
toRegisterPage: function() {
this.toPageRedirect("/pages/sub-pages/login/register");
},
// 跳转到重置密码页面
toResetPage: function() {
this.toPage("/pages/sub-pages/login/reset-account");
}
}
};
exports.default = component;
},
// ==================== 模块 4682: 第三方登录工具 ====================
"4682": function(module, exports, require) {
"use strict";
require("6a54");
var asyncToGenerator = require("f5bd").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.authLogin = void 0;
exports.getProvider = getProvider;
exports.invokePayment = void 0;
var objectSpread = asyncToGenerator(require("9b1b"));
var regeneratorRuntime = asyncToGenerator(require("2634"));
var _asyncToGenerator = asyncToGenerator(require("2fdc"));
require("bf0f");
require("4626");
require("5ac7");
require("d4b5");
// 获取服务提供商
function getProvider(service, provider) {
return new Promise((function(resolve, reject) {
uni.getProvider({
service: service,
success: function(result) {
console.log(result, provider, 111);
var providerList = result.provider;
// 检查指定的提供商是否存在
if (!providerList.includes(provider)) {
uni.showToast({
title: "服务商不存在",
icon: "none"
});
resolve(false);
return;
}
resolve(true);
}
});
}));
}
// 授权登录
var authLogin = function() {
var func = (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc(provider) {
var hasProvider;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 检查服务提供商
return context.next = 2, getProvider("oauth", provider);
case 2:
hasProvider = context.sent;
if (hasProvider) {
context.next = 5;
break;
}
return context.abrupt("return");
case 5:
// 执行登录
return context.abrupt("return", new Promise((function(resolve, reject) {
uni.login({
provider: provider,
onlyAuthorize: "weixin" == provider, // 微信只授权
success: function(result) {
// Apple登录特殊处理
if ("apple" == provider) {
var appleInfo = result.appleInfo;
result.code = null === appleInfo || void 0 === appleInfo ?
void 0 : appleInfo.user;
}
resolve(result);
},
fail: function(error) {
console.log(error, 2);
reject(error);
}
});
})));
case 6:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
);
return function(provider) {
return func.apply(this, arguments);
};
}();
exports.authLogin = authLogin;
// 发起支付
var invokePayment = function() {
var func = (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc(provider, paymentData) {
var hasProvider;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 检查支付服务提供商
return context.next = 2, getProvider("payment", provider);
case 2:
hasProvider = context.sent;
if (hasProvider) {
context.next = 5;
break;
}
return context.abrupt("return");
case 5:
// 发起支付
return context.abrupt("return", new Promise((function(resolve, reject) {
uni.requestPayment(
(0, objectSpread.default)(
(0, objectSpread.default)({
provider: provider
}, paymentData),
{},
{
success: function(result) {
console.log(result, "支付成功");
resolve({
code: 1,
errMsg: result.errMsg
});
},
fail: function(error) {
console.log(error, "支付失败");
// 用户取消支付
if ("requestPayment:fail cancel" == error.errMsg) {
uni.showToast({
title: "您已取消支付",
icon: "none"
});
resolve({
code: 0,
errMsg: error.errMsg
});
} else {
reject(false);
}
}
}
)
);
})));
case 6:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
);
return function(provider, paymentData) {
return func.apply(this, arguments);
};
}();
exports.invokePayment = invokePayment;
},
// ==================== 模块 8461: 渲染函数 ====================
"8461": function(module, exports, require) {
"use strict";
require.d(exports, "b", (function() {
return render;
}));
require.d(exports, "c", (function() {
return staticRenderFns;
}));
require.d(exports, "a", (function() {
return components;
}));
// 组件依赖
var components = {
uForm: require("e8a2").default,
uFormItem: require("dd75").default
};
// 渲染函数
var render = function() {
var vm = this;
var createElement = vm.$createElement;
var createVNode = vm._self._c || createElement;
return createVNode("v-uni-view", {
staticClass: "page-bg white-bg content"
}, [
// 头部区域
createVNode("v-uni-view", {
staticClass: "head"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-42 u-p-b-30 b-text-B-d"
}, [vm._v("现在登录")]),
createVNode("v-uni-text", {
staticClass: "b-text-black-dd"
}, [vm._v("欢迎回来,有好多小伙伴在思念你!")])
], 1),
// 主体区域
createVNode("v-uni-view", {
staticClass: "main relative"
}, [
// 表单
createVNode("u-form", {
ref: "uForm",
staticClass: "u-m-b-30 u-form",
attrs: {
model: vm.form,
"error-type": ["toast", "border-bottom"]
}
}, [
// 账号输入框
createVNode("u-form-item", {
staticClass: "u-m-b-30",
attrs: {
prop: "account",
"border-bottom": false
}
}, [
createVNode("v-uni-view", {
staticClass: "flex-column w-full"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-48 b-text-B-d u-m-b-20"
}, [vm._v("账号")]),
createVNode("v-uni-view", {
staticClass: "b-bg-gray-dd u-p-20 b-radius-12"
}, [
createVNode("v-uni-input", {
staticClass: "b-form-input",
attrs: {
placeholder: "请输入手机号"
},
model: {
value: vm.form.account,
callback: function(value) {
vm.$set(vm.form, "account", value);
},
expression: "form.account"
}
})
], 1)
], 1)
], 1),
// 密码输入框
createVNode("u-form-item", {
staticClass: "u-m-b-30",
attrs: {
prop: "password",
"border-bottom": false
}
}, [
createVNode("v-uni-view", {
staticClass: "flex-column w-full"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-48 b-text-B-d u-m-b-20"
}, [vm._v("密码")]),
createVNode("v-uni-view", {
staticClass: "b-bg-gray-dd u-p-20 b-radius-12 b-flex-x b-flex-space"
}, [
createVNode("v-uni-input", {
staticClass: "b-form-input",
attrs: {
type: "password",
placeholder: "请输入密码"
},
model: {
value: vm.form.password,
callback: function(value) {
vm.$set(vm.form, "password", value);
},
expression: "form.password"
}
}),
// 忘记密码链接
createVNode("v-uni-text", {
staticClass: "b-flex-shrink b-text-theme-d",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toPage("/pages/sub-pages/login/reset-account");
}
}
}, [vm._v("忘记")])
], 1)
], 1)
], 1)
], 1),
// 登录按钮
createVNode("v-uni-button", {
staticClass: "b-btn b-btn-block b-btn-round disable_btn activeBtn u-m-t-10 u-m-b-30",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.handleLogin.apply(void 0, arguments);
}
}
}, [vm._v("登录")]),
// 注册链接
createVNode("v-uni-view", {
staticClass: "b-text-c b-text-theme-d b-text-24",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toPage("/pages/sub-pages/login/register");
}
}
}, [vm._v("还没有账号?注册")])
], 1)
], 1);
};
var staticRenderFns = [];
},
// ==================== 其他模块(样式等)====================
// ... 省略样式相关模块
}
]);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,559 @@
// ============================================
// 反编译后的可读版本
// 原文件: pages-sub-pages-login-register.90ee3c46.js
// 页面: 注册页面
// ============================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
["pages-sub-pages-login-register"],
{
// ==================== 模块 5b14: 页面逻辑 ====================
"5b14": function(module, exports, require) {
"use strict";
require("6a54");
var asyncToGenerator = require("f5bd").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var objectSpread = asyncToGenerator(require("9b1b"));
var regeneratorRuntime = asyncToGenerator(require("2634"));
var _asyncToGenerator = asyncToGenerator(require("2fdc"));
require("5c47");
require("0506");
// 表单初始值
var formInitialData = {
mobile: "", // 手机号
code: "", // 验证码
invite: "", // 邀请码
password: "" // 密码
};
// 表单验证规则
var formRules = {
mobile: [
{
required: true,
message: "请输入手机号",
trigger: ["blur", "change"]
},
{
validator: function(rule, value, callback) {
return uni.$u.test.mobile(value);
},
message: "手机号码不正确",
trigger: ["change", "blur"]
}
],
code: [
{
required: true,
message: "请输入验证码",
trigger: ["blur", "change"]
}
],
invite: [
{
required: true,
message: "请输入邀请码",
trigger: ["blur", "change"]
}
],
password: [
{
required: true,
message: "请输入密码",
trigger: ["blur", "change"]
}
]
};
// Vue组件配置
var component = {
// 数据
data: function() {
return {
formRules: formRules,
form: formInitialData,
isAgree: true, // 是否同意协议
codeText: "", // 验证码按钮文字
seconds: 60 // 倒计时秒数
};
},
// 页面准备完成
onReady: function() {
// 设置表单验证规则
this.$refs.uForm.setRules(this.formRules);
},
// 页面加载
onLoad: function() {
var queryInvite, routeQuery;
// 从路由参数中获取邀请码
routeQuery = this.$Route.query;
queryInvite = null !== (routeQuery = null === routeQuery || void 0 === routeQuery ?
void 0 : routeQuery.invite) && void 0 !== routeQuery ?
routeQuery : "";
this.form.invite = queryInvite;
},
// 方法
methods: {
// 验证码变化回调
codeChange: function(text) {
this.codeText = text;
},
// 获取验证码
getCode: function() {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var mobile;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
mobile = self.form.mobile;
// 验证手机号
if (mobile) {
context.next = 4;
break;
}
self.$u.toast("手机号不能为空");
return context.abrupt("return");
case 4:
// 检查是否可以发送验证码
if (self.$refs.uCode.canGetCode) {
self.$u.toast("验证码已发送");
self.sendSms();
} else {
self.$u.toast("倒计时结束后再发送");
}
case 5:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 发送短信验证码
sendSms: function() {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var params, response;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = {
mobile: self.form.mobile,
event: "register" // 注册事件
};
// 调用发送短信API
return context.next = 3, self.$api.smsSend(params);
case 3:
response = context.sent;
// 发送成功
if (0 == response.code) {
uni.hideLoading();
self.$u.toast(response.msg);
// 开始倒计时
self.$refs.uCode.start();
}
case 5:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 点击注册按钮
clickRegister: function() {
var self = this;
// 检查是否同意协议
if (this.isAgree) {
// 表单验证
this.$refs.uForm.validate((function(valid) {
if (valid) {
console.log("验证通过");
// 使用节流函数防止重复提交
self.$u.throttle(self.register, 1000);
} else {
console.log("验证失败");
}
}));
} else {
this.$u.toast("请勾选用户协议和购买委托代卖协议");
}
},
// 执行注册
register: function() {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var params, response;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = (0, objectSpread.default)(
(0, objectSpread.default)({}, self.form),
{},
{ loading: true }
);
// 调用注册API
return context.next = 3, self.$api.register(params);
case 3:
response = context.sent;
// 注册成功
if (0 == response.code) {
// 重置表单
self.$refs.uForm.resetFields();
// 显示成功提示并跳转
self.$u.toast(response.msg, (function() {
return self.toPageTabAll("/pages/index/index");
}));
}
case 5:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
}
}
};
exports.default = component;
},
// ==================== 模块 6ad2: 渲染函数 ====================
"6ad2": function(module, exports, require) {
"use strict";
require.d(exports, "b", (function() {
return render;
}));
require.d(exports, "c", (function() {
return staticRenderFns;
}));
require.d(exports, "a", (function() {
return components;
}));
// 组件依赖
var components = {
uForm: require("e8a2").default,
uFormItem: require("dd75").default,
uInput: require("106a").default,
uVerificationCode: require("1142").default
};
// 渲染函数
var render = function() {
var vm = this;
var createElement = vm.$createElement;
var createVNode = vm._self._c || createElement;
return createVNode("v-uni-view", {
staticClass: "content page-bg white-bg"
}, [
// 头部区域
createVNode("v-uni-view", {
staticClass: "head"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-42 pb-30 b-text-B-d"
}, [vm._v("创建您的账号")])
], 1),
// 主体区域
createVNode("v-uni-view", {
staticClass: "main"
}, [
// 表单
createVNode("u-form", {
ref: "uForm",
staticClass: "u-form u-m-b-30",
attrs: {
model: vm.form,
"error-type": ["toast", "border-bottom"]
}
}, [
// 手机号输入框
createVNode("u-form-item", {
staticClass: "flex-column u-m-b-20",
attrs: {
prop: "mobile"
}
}, [
createVNode("v-uni-view", {
staticClass: "line-default"
}, [
createVNode("v-uni-text", {
staticClass: "b-icon icon-phone"
}),
createVNode("v-uni-text", {}, [vm._v("手机号")])
], 1),
createVNode("u-input", {
staticClass: "w-full",
attrs: {
type: "number",
clearable: false,
placeholder: "请输入您的手机号"
},
model: {
value: vm.form.mobile,
callback: function(value) {
vm.$set(vm.form, "mobile", value);
},
expression: "form.mobile"
}
})
], 1),
// 验证码输入框
createVNode("u-form-item", {
staticClass: "flex-column u-m-b-20",
attrs: {
prop: "code"
}
}, [
createVNode("v-uni-view", {
staticClass: "line-default"
}, [
createVNode("v-uni-text", {
staticClass: "b-icon icon-safetycertificate"
}),
createVNode("v-uni-text", {}, [vm._v("验证码")])
], 1),
createVNode("v-uni-view", {
staticClass: "b-flex-x b-flex-space w-full"
}, [
createVNode("u-input", {
staticClass: "w-full",
attrs: {
clearable: false,
placeholder: "请输入验证码"
},
model: {
value: vm.form.code,
callback: function(value) {
vm.$set(vm.form, "code", value);
},
expression: "form.code"
}
}),
// 获取验证码按钮
createVNode("v-uni-view", {
staticClass: "b-flex-shrink b-text-theme-d",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.getCode.apply(void 0, arguments);
}
}
}, [vm._v(vm._s(vm.codeText))])
], 1)
], 1),
// 邀请码输入框
createVNode("u-form-item", {
staticClass: "flex-column u-m-b-20",
attrs: {
prop: "invite"
}
}, [
createVNode("v-uni-view", {
staticClass: "line-default"
}, [
createVNode("v-uni-text", {
staticClass: "b-icon icon-qrcode"
}),
createVNode("v-uni-text", {}, [vm._v("邀请码")])
], 1),
createVNode("u-input", {
staticClass: "w-full",
attrs: {
clearable: false,
placeholder: "请输入邀请码 (必填)"
},
model: {
value: vm.form.invite,
callback: function(value) {
vm.$set(vm.form, "invite", value);
},
expression: "form.invite"
}
})
], 1),
// 密码输入框
createVNode("u-form-item", {
staticClass: "flex-column u-m-b-20",
attrs: {
prop: "password"
}
}, [
createVNode("v-uni-view", {
staticClass: "line-default"
}, [
createVNode("v-uni-text", {
staticClass: "b-icon icon-lock"
}),
createVNode("v-uni-text", {}, [vm._v("登录密码")])
], 1),
createVNode("u-input", {
staticClass: "w-full",
attrs: {
clearable: false,
type: "password",
placeholder: "请输入登录密码"
},
model: {
value: vm.form.password,
callback: function(value) {
vm.$set(vm.form, "password", value);
},
expression: "form.password"
}
})
], 1)
], 1),
// 协议勾选
createVNode("v-uni-view", {
staticClass: "b-flex-x u-m-b-40"
}, [
// 复选框
createVNode("v-uni-view", {
staticClass: "check-box shape u-m-r-10",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.isAgree = !vm.isAgree;
}
}
}, [
createVNode("v-uni-text", {
directives: [{
name: "show",
rawName: "v-show",
value: vm.isAgree,
expression: "isAgree"
}],
staticClass: "b-icon icon-check-circle-fill theme-text"
})
], 1),
// 协议文字
createVNode("v-uni-view", {
staticClass: "b-text-black-dd b-text-24"
}, [
vm._v("同意"),
// 用户协议链接
createVNode("v-uni-text", {
staticClass: "link-text",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toAgreement("用户协议");
}
}
}, [vm._v("《用户协议》")]),
vm._v("和"),
// 购买委托代卖协议链接
createVNode("v-uni-text", {
staticClass: "link-text",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toAgreement("购买委托代卖协议");
}
}
}, [vm._v("《购买委托代卖协议》")]),
vm._v("登录平台")
], 1)
], 1),
// 注册按钮
createVNode("v-uni-button", {
staticClass: "b-btn b-btn-block b-btn-round disable_btn mt-10 mb-50",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.clickRegister.apply(void 0, arguments);
}
}
}, [vm._v("注册")])
], 1),
// 验证码组件
createVNode("u-verification-code", {
ref: "uCode",
attrs: {
seconds: vm.seconds
},
on: {
change: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.codeChange.apply(void 0, arguments);
}
}
})
], 1);
};
var staticRenderFns = [];
},
// ==================== 其他模块(样式等)====================
// ... 省略样式相关模块
}
]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-sub-pages-prize-index"],{6679:function(t,e,n){var a=n("f18b");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var r=n("967d").default;r("3bce4a01",a,!0,{sourceMap:!1,shadowMode:!1})},8617:function(t,e,n){"use strict";n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){return a}));var a={zPaging:n("a943").default,uTabs:n("2a38").default},r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("z-paging",{ref:"paging",attrs:{auto:!1,"auto-scroll-to-top-when-reload":!1,"auto-clean-list-when-reload":!1},on:{query:function(e){arguments[0]=e=t.$handleEvent(e),t.getMoneyLog.apply(void 0,arguments)}},scopedSlots:t._u([{key:"top",fn:function(){return[n("v-uni-view",{staticClass:"b-bg-white "},[n("v-uni-view",{staticClass:"b-text-42 b-text-c u-p-tb-50 b-text-B-d"},[t._v("我的全部奖金:"+t._s(t.userinfo.self_bonus))]),n("v-uni-view",{staticClass:"b-bg-white"},[n("u-tabs",{attrs:{list:t.cateList,"is-scroll":!1,current:t.current,"active-color":"#333333","inactive-color":"#666666","bg-color":"transparent","bar-style":{background:"#ea6254"},"bar-width":"80"},on:{change:function(e){arguments[0]=e=t.$handleEvent(e),t.changeTab.apply(void 0,arguments)}}})],1)],1)]},proxy:!0}]),model:{value:t.dataList,callback:function(e){t.dataList=e},expression:"dataList"}},[n("v-uni-view",{staticClass:"u-p-lr-10 u-p-t-20"},t._l(t.dataList,(function(e,a){return n("v-uni-view",{key:a,staticClass:"b-flex-x b-flex-space u-p-20 card-box u-m-b-20"},[n("v-uni-view",{staticClass:"b-flex-x"},[n("v-uni-view",{},[n("v-uni-view",{staticClass:"u-m-b-10 b-text-32"},[t._v(t._s(e.memo))]),n("v-uni-text",{staticClass:"b-text-black-dd"},[t._v(t._s(e.created_at))])],1)],1),n("v-uni-text",{class:[{"b-text-green":0==t.current},{"b-text-red":1==t.current}]},[t._v(t._s(0==t.current?"+"+e.money:e.money))])],1)})),1)],1)},i=[]},d194:function(t,e,n){"use strict";n("6a54");var a=n("f5bd").default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=a(n("2634")),i=a(n("2fdc")),s={data:function(){return{current:0,cateList:[{id:1,name:"收入明细"},{id:2,name:"支出明细"}],dataList:[],userinfo:{self_bonus:0}}},onShow:function(){var t=this;this.getUser(),this.$nextTick((function(){return t.$refs.paging.reload()}))},onLoad:function(){},methods:{getUser:function(){var t=this;return(0,i.default)((0,r.default)().mark((function e(){var n;return(0,r.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.$api.user();case 2:n=e.sent,0==n.code&&(t.userinfo=n.data);case 4:case"end":return e.stop()}}),e)})))()},getMoneyLog:function(t,e){var n=this;return(0,i.default)((0,r.default)().mark((function a(){var i,s,u,o;return(0,r.default)().wrap((function(a){while(1)switch(a.prev=a.next){case 0:return s={cate:3,type:null===(i=n.cateList[n.current])||void 0===i?void 0:i.id,page:t,limit:e,loading:!0},a.next=3,n.$api.moneyLog(s);case 3:u=a.sent,0==u.code&&n.$refs.paging.complete(null===(o=u.data)||void 0===o?void 0:o.list);case 5:case"end":return a.stop()}}),a)})))()},changeTab:function(t){this.current=t,this.$refs.paging.reload()}}};e.default=s},da2a:function(t,e,n){"use strict";n.r(e);var a=n("8617"),r=n("fdae");for(var i in r)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(i);n("ff26");var s=n("828b"),u=Object(s["a"])(r["default"],a["b"],a["c"],!1,null,"7cbd4f7e",null,!1,a["a"],void 0);e["default"]=u.exports},f18b:function(t,e,n){var a=n("c86c");e=a(!1),e.push([t.i,'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.logout-btn[data-v-7cbd4f7e]{background:#ef5a25;color:#fff}',""]),t.exports=e},fdae:function(t,e,n){"use strict";n.r(e);var a=n("d194"),r=n.n(a);for(var i in a)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(i);e["default"]=r.a},ff26:function(t,e,n){"use strict";var a=n("6679"),r=n.n(a);r.a}}]);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,411 @@
// ============================================
// 反编译后的可读版本
// 原文件: pages-sub-pages-promote-prize-index.710193f9.js
// 页面: 推广奖金明细页
// ============================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
["pages-sub-pages-promote-prize-index"],
{
// ==================== 模块 04d0: 页面逻辑 ====================
"04d0": function(module, exports, require) {
"use strict";
require("6a54");
var asyncToGenerator = require("f5bd").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var regeneratorRuntime = asyncToGenerator(require("2634"));
var _asyncToGenerator = asyncToGenerator(require("2fdc"));
// Vue组件配置对象
var component = {
// 数据
data: function() {
return {
current: 0, // 当前选中的标签索引
cateList: [
{ id: 1, name: "收入明细" },
{ id: 2, name: "支出明细" }
],
dataList: [], // 数据列表
userinfo: {
share_bonus: 0, // 推广奖金
today_share: 0 // 今日推广奖金
}
}
},
// 页面显示时触发
onShow: function() {
var self = this;
this.getUser();
this.$nextTick((function() {
return self.$refs.paging.reload();
}))
},
// 页面加载时触发
onLoad: function() {
// 空方法
},
// 方法
methods: {
// 获取用户信息
getUser: function() {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var response;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 调用API获取用户信息
return context.next = 2, self.$api.user();
case 2:
response = context.sent;
// 如果返回成功,更新用户信息
if (0 == response.code) {
self.userinfo = response.data;
}
case 4:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 获取资金记录
getMoneyLog: function(page, limit) {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var currentCate, params, response, responseData;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = {
cate: 4, // 推广奖金类型
type: null === (currentCate = self.cateList[self.current]) ||
void 0 === currentCate ? void 0 : currentCate.id,
page: page,
limit: limit,
loading: true
};
// 调用API
return context.next = 3, self.$api.moneyLog(params);
case 3:
response = context.sent;
// 如果成功,完成分页加载
if (0 == response.code) {
self.$refs.paging.complete(
null === (responseData = response.data) ||
void 0 === responseData ? void 0 : responseData.list
);
}
case 5:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 切换标签
changeTab: function(index) {
this.current = index;
this.$refs.paging.reload();
}
}
};
exports.default = component;
},
// ==================== 模块 1b9a: 主导出 ====================
"1b9a": function(module, exports, require) {
"use strict";
require.r(exports);
var render = require("568c");
var script = require("3e7e");
// 合并模块
for (var key in script) {
if (["default"].indexOf(key) < 0) {
(function(k) {
require.d(exports, k, (function() {
return script[k];
}));
})(key);
}
}
require("c153"); // 样式
var componentNormalizer = require("828b");
var component = Object(componentNormalizer["a"])(
script["default"],
render["b"],
render["c"],
false,
null,
"6dabb4ce",
null,
false,
render["a"],
void 0
);
exports["default"] = component.exports;
},
// ==================== 模块 3e7e: 脚本导出 ====================
"3e7e": function(module, exports, require) {
"use strict";
require.r(exports);
var component = require("04d0");
var componentDefault = require.n(component);
for (var key in component) {
if (["default"].indexOf(key) < 0) {
(function(k) {
require.d(exports, k, (function() {
return component[k];
}));
})(key);
}
}
exports["default"] = componentDefault.a;
},
// ==================== 模块 568c: 渲染函数 ====================
"568c": function(module, exports, require) {
"use strict";
// 导出渲染函数
require.d(exports, "b", (function() {
return render;
}));
require.d(exports, "c", (function() {
return staticRenderFns;
}));
require.d(exports, "a", (function() {
return components;
}));
// 组件依赖
var components = {
zPaging: require("a943").default,
uTabs: require("2a38").default
};
// 主渲染函数
var render = function() {
var vm = this;
var createElement = vm.$createElement;
var createVNode = vm._self._c || createElement;
return createVNode("z-paging", {
ref: "paging",
attrs: {
auto: false,
"auto-scroll-to-top-when-reload": false,
"auto-clean-list-when-reload": false
},
on: {
query: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.getMoneyLog.apply(void 0, arguments);
}
},
scopedSlots: vm._u([{
key: "top",
fn: function() {
return [
createVNode("v-uni-view", {
staticClass: "b-bg-white "
}, [
// 显示推广奖金总额
createVNode("v-uni-view", {
staticClass: "b-text-48 b-text-c u-p-tb-30 b-text-B-d"
}, [vm._v(vm._s(vm.userinfo.share_bonus))]),
// 今日推广和提现按钮区域
createVNode("v-uni-view", {
staticClass: "u-p-b-50 u-p-lr-20 b-flex-x b-flex-wrap b-flex-space b-text-30"
}, [
createVNode("v-uni-view", {}, [
createVNode("v-uni-view", {
staticClass: "u-p-b-10"
}, [vm._v("当天推广奖金:" + vm._s(vm.userinfo.today_share))]),
createVNode("v-uni-view", {}, [
vm._v("全部推广奖金:" + vm._s(vm.userinfo.total_share))
])
], 1),
// 提现按钮
createVNode("v-uni-button", {
staticClass: "b-btn b-btn-round withdraw-btn ",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toPage("/pages/sub-pages/withdraw/index", {
cate: 4
});
}
}
}, [vm._v("提现")])
], 1),
// 标签切换
createVNode("v-uni-view", {
staticClass: "b-bg-white"
}, [
createVNode("u-tabs", {
attrs: {
list: vm.cateList,
"is-scroll": false,
current: vm.current,
"active-color": "#333333",
"inactive-color": "#666666",
"bg-color": "transparent",
"bar-style": {
background: "#ea6254"
},
"bar-width": "80"
},
on: {
change: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.changeTab.apply(void 0, arguments);
}
}
})
], 1)
], 1)
];
},
proxy: true
}]),
model: {
value: vm.dataList,
callback: function(value) {
vm.dataList = value;
},
expression: "dataList"
}
}, [
// 列表内容
createVNode("v-uni-view", {
staticClass: "u-p-lr-10 u-p-t-20"
}, vm._l(vm.dataList, (function(item, index) {
return createVNode("v-uni-view", {
key: index,
staticClass: "b-flex-x b-flex-space u-p-20 card-box u-m-b-20"
}, [
createVNode("v-uni-view", {
staticClass: "b-flex-x"
}, [
createVNode("v-uni-view", {}, [
// 备注
createVNode("v-uni-view", {
staticClass: "u-m-b-10 b-text-32"
}, [vm._v(vm._s(item.memo))]),
// 时间
createVNode("v-uni-text", {
staticClass: "b-text-black-dd"
}, [vm._v(vm._s(item.created_at))])
], 1)
], 1),
// 金额(根据类型显示不同颜色)
createVNode("v-uni-text", {
class: [{
"b-text-green": 0 == vm.current
}, {
"b-text-red": 1 == vm.current
}]
}, [
vm._v(vm._s(0 == vm.current ? "+" + item.money : item.money))
])
], 1);
})), 1)
], 1);
};
// 静态渲染函数
var staticRenderFns = [];
},
// ==================== 模块 c153: 样式导入 ====================
"c153": function(module, exports, require) {
"use strict";
var style = require("d893");
var styleDefault = require.n(style);
styleDefault.a;
},
// ==================== 模块 d893: 样式加载器 ====================
"d893": function(module, exports, require) {
var cssLoader = require("e156");
cssLoader.__esModule && (cssLoader = cssLoader.default);
if ("string" === typeof cssLoader) {
cssLoader = [[module.i, cssLoader, ""]];
}
cssLoader.locals && (module.exports = cssLoader.locals);
var addStylesClient = require("967d").default;
addStylesClient("197d05df", cssLoader, true, {
sourceMap: false,
shadowMode: false
});
},
// ==================== 模块 e156: CSS内容 ====================
"e156": function(module, exports, require) {
var api = require("c86c");
exports = api(false);
exports.push([
module.i,
'@charset "UTF-8";' +
'/* 提现按钮样式 */' +
'.withdraw-btn[data-v-6dabb4ce]{' +
'background:#ea6254;' +
'color:#fff;' +
'min-width:%?160?%;' +
'height:%?60?%' +
'}',
""
]);
module.exports = exports;
}
}
]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More