From e9e5c6b88e172ed19cce42c4dbc42b675080a5e7 Mon Sep 17 00:00:00 2001
From: TM <923727421@qq.com>
Date: Mon, 14 Dec 2020 13:54:08 +0800
Subject: [PATCH] 小程序上传

---
 components/fitler/fitler.axml                 |   55 
 pages/order/shskOrder/shskOrder.acss          |   53 
 utils/md5.js                                  |  179 ++
 pages/shskPage/orderInfo/orderInfo.js         |  107 +
 pages/paypage/paypage.json                    |    1 
 .tea/entryFiles-development/config$.js        |    7 
 pages/hbfqPage/qrCode/qrCode.acss             |    8 
 pages/changePassword/changePassword.js        |   58 
 pages/hbfqPage/orderInfo/orderInfo.axml       |   45 
 test.jpg                                      |    0 
 pages/changePassword/changePassword.acss      |   29 
 pages/order/shskOrder/shskOrder.axml          |   14 
 pages/paypage/paypage.acss                    |    0 
 static/ali-icon/iconfont.ttf                  |    0 
 .kaitian/launch.json                          |    7 
 pages/order/shskOrder/shskOrder.json          |   12 
 static/img/nodata.png                         |    0 
 .tea/entryFiles-production/index$.worker.js   |   72 
 pages/hbfqPage/orderInfo/orderInfo.acss       |   93 +
 pages/icon/ywsj.png                           |    0 
 pages/changePassword/changePassword.json      |   12 
 pages/order/hbfqOrder/hbfqOrder.js            |   27 
 pages/paypage/paypage.axml                    |    6 
 static/img/logo.png                           |    0 
 pages/hbfqPage/qrCode/qrCode.axml             |    6 
 package-lock.json                             |  307 ++++
 .tea/entryFiles-development/index$.worker.js  |   74 +
 pages/paypage/paypage.js                      |   48 
 pages/order/shskOrder/shskOrder.js            |   27 
 app.acss                                      |    6 
 static/img/backpic.png                        |    0 
 pages/icon/grzx.png                           |    0 
 pages/index/index.js                          |  165 ++
 .tea/entryFiles-development/index$.web.js     |   40 
 .tea/entryFiles-production/importScripts$.js  |    4 
 static/ali-icon/iconfont.acss                 |   19 
 pages/shskPage/orderInfo/orderInfo.axml       |   21 
 components/fitler/fitler.js                   |  109 +
 pages/userCenter/userCenter.js                |   61 
 utils/date.js                                 |   66 
 app.json                                      |   46 
 components/fitler/fitler.json                 |   11 
 components/fitler/fitler.acss                 |   85 +
 pages/changePassword/changePassword.axml      |   10 
 pages/home/home.acss                          |   51 
 pages/icon/ywbl.png                           |    0 
 components/orderTrial/orderTrial.axml         |   28 
 components/QRCodeView/QRCodeView.acss         |   57 
 pages/shskPage/orderInfo/orderInfo.acss       |   92 +
 pages/changeUser/changeUser.js                |   59 
 pages/forgetPassword/forgetPassword.json      |   10 
 pages/icon/ywbl_h.png                         |    0 
 pages/userCenter/userCenter.axml              |   43 
 static/ali-icon/stylesheet.acss               |  117 +
 components/orderTrial/orderTrial.js           |   14 
 pages/hbfqPage/qrCode/qrCode.js               |  101 +
 pages/order/hbfqOrder/hbfqOrder.axml          |   20 
 pages/businessData/businessData.acss          |  174 ++
 .tea/entryFiles-production/index$.web.js      |   40 
 components/QRCodeView/QRCodeView.js           |   12 
 pages/home/home.json                          |    6 
 components/QRCodeView/QRCodeView.json         |    3 
 pages/userCenter/userCenter.acss              |   81 +
 pages/icon/ywsj_h.png                         |    0 
 pages/order/hbfqOrder/hbfqOrder.acss          |   53 
 pages/changeUser/changeUser.axml              |   36 
 components/QRCodeView/QRCodeView.axml         |   16 
 pages/businessData/businessData.axml          |  128 +
 pages/forgetPassword/forgetPassword.js        |  110 +
 pages/shskPage/orderInfo/orderInfo.json       |   12 
 pages/home/home.js                            |   72 
 .gitignore                                    |   13 
 pages/changeUser/changeUser.acss              |   84 +
 pages/hbfqPage/orderInfo/orderInfo.json       |   12 
 pages/index/index.json                        |    9 
 pages/order/hbfqOrder/hbfqOrder.json          |   13 
 pages/userCenter/userCenter.json              |    7 
 .tea/entryFiles-production/config$.js         |    7 
 app.js                                        |  112 +
 pages/shskPage/qrCode/qrCode.json             |    6 
 static/img/backcircl.png                      |    0 
 static/img/shsk.png                           |    0 
 pages/forgetPassword/forgetPassword.axml      |   13 
 pages/icon/grzx_h.png                         |    0 
 pages/hbfqPage/orderInfo/orderInfo.js         |  206 ++
 pages/changeUser/changeUser.json              |    8 
 pages/index/index.acss                        |   82 +
 pages/shskPage/qrCode/qrCode.axml             |    6 
 pages/businessData/businessData.json          |   12 
 pages/hbfqPage/qrCode/qrCode.json             |    6 
 pages/home/home.axml                          |   14 
 mini.project.json                             |    3 
 components/orderTrial/orderTrial.json         |    3 
 pages/shskPage/qrCode/qrCode.acss             |    8 
 pages/shskPage/qrCode/qrCode.js               |   98 +
 static/img/hbfq.png                           |    0 
 .tea/entryFiles-development/importScripts$.js |    4 
 pages/forgetPassword/forgetPassword.acss      |   24 
 components/orderTrial/orderTrial.acss         |   87 +
 package.json                                  |    7 
 utils/ajaxFn.js                               |   99 +
 pages/businessData/businessData.js            |  233 +++
 pages/index/index.axml                        |   30 
 103 files changed, 4,431 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d3d5eef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
diff --git a/.kaitian/launch.json b/.kaitian/launch.json
new file mode 100644
index 0000000..ec899f6
--- /dev/null
+++ b/.kaitian/launch.json
@@ -0,0 +1,7 @@
+{
+  // 使用 IntelliSense 了解相关属性。 
+  // 悬停以查看现有属性的描述。
+  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
+  "version": "0.2.0",
+  "configurations": []
+}
diff --git a/.tea/entryFiles-development/config$.js b/.tea/entryFiles-development/config$.js
new file mode 100644
index 0000000..39fdc19
--- /dev/null
+++ b/.tea/entryFiles-development/config$.js
@@ -0,0 +1,7 @@
+
+const g = typeof global !== 'undefined' ? global : self;
+g.appXAppJson = {
+  "app": {
+    "$homepage": "pages/home/home"
+  }
+};
diff --git a/.tea/entryFiles-development/importScripts$.js b/.tea/entryFiles-development/importScripts$.js
new file mode 100644
index 0000000..5e02d03
--- /dev/null
+++ b/.tea/entryFiles-development/importScripts$.js
@@ -0,0 +1,4 @@
+if(!self.Map || !self.Set || !self.Symbol) {
+    importScripts('https://gw.alipayobjects.com/as/g/appx_release/deps/1.0.3/es6-set-map-symbol.js');
+     }
+     
\ No newline at end of file
diff --git a/.tea/entryFiles-development/index$.web.js b/.tea/entryFiles-development/index$.web.js
new file mode 100644
index 0000000..3c0d51a
--- /dev/null
+++ b/.tea/entryFiles-development/index$.web.js
@@ -0,0 +1,40 @@
+require('@alipay/appx-compiler/lib/sjsEnvInit');
+require('./config$');
+
+require('../../node_modules/mini-ali-ui/es/badge/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-icon/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/tabs/index?hash=4a98b35daa3eee1b62960d4d5bbcbf254cbf11e3');
+require('../../node_modules/mini-ali-ui/es/tabs/tab-content/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/search-bar/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/popup/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/collapse/index?hash=a11fdcdff8ea970c65f185a8731cafe48f67047c');
+require('../../node_modules/mini-ali-ui/es/collapse/collapse-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/fitler/fitler?hash=354cb92cdc6053453b91b49e22977b08efde6a61');
+require('../../node_modules/mini-ali-ui/es/loading/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/input-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/verify-code/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/long-password/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/avatar/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/button/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/modal/index?hash=febd4c40992222524e0db12a74760a28f8f9b339');
+require('../../node_modules/mini-ali-ui/es/picker-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/orderTrial/orderTrial?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../components/QRCodeView/QRCodeView?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-radio/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/list/auto-size-img/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/list-item/index?hash=a5465b8c889360e3f854461d3ac41cf414aec633');
+require('../../pages/home/home?hash=9676af08f02ab6877f66c88a5599f6228f076a67');
+require('../../pages/index/index?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/paypage/paypage?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/forgetPassword/forgetPassword?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/userCenter/userCenter?hash=c0825856d8ab7db321bdd0ebdd2606fa94d544f0');
+require('../../pages/businessData/businessData?hash=02e5d22beb4d8b5ce9fe01e2245252aaa9b53562');
+require('../../pages/hbfqPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/hbfqPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/shskPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/shskPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/changePassword/changePassword?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/changeUser/changeUser?hash=3930b793bedbb5bce57252b2568d4e1a9ad8ea1b');
+require('../../pages/order/hbfqOrder/hbfqOrder?hash=b7340e58f6e63dafeccfeef5e60d8e039095703c');
+require('../../pages/order/shskOrder/shskOrder?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
diff --git a/.tea/entryFiles-development/index$.worker.js b/.tea/entryFiles-development/index$.worker.js
new file mode 100644
index 0000000..e9e1456
--- /dev/null
+++ b/.tea/entryFiles-development/index$.worker.js
@@ -0,0 +1,74 @@
+if(!self.__appxInited) {
+self.__appxInited = 1;
+require('@alipay/appx-compiler/lib/sjsEnvInit');
+
+require('./config$');
+
+
+      if( navigator.userAgent && (navigator.userAgent.indexOf('LyraVM') > 0 || navigator.userAgent.indexOf('AlipayIDE') > 0) ) {
+        var AFAppX = self.AFAppX.getAppContext ? self.AFAppX.getAppContext().AFAppX : self.AFAppX;
+      } else {
+        importScripts('https://appx/af-appx.worker.min.js');
+        var AFAppX = self.AFAppX;
+      }
+      self.getCurrentPages = AFAppX.getCurrentPages;
+      self.getApp = AFAppX.getApp;
+      self.Page = AFAppX.Page;
+      self.App = AFAppX.App;
+      self.my = AFAppX.bridge || AFAppX.abridge;
+      self.abridge = self.my;
+      self.Component = AFAppX.WorkerComponent || function(){};
+      self.$global = AFAppX.$global;
+      self.requirePlugin = AFAppX.requirePlugin;
+    
+
+if(AFAppX.registerApp) {
+  AFAppX.registerApp({
+    appJSON: appXAppJson,
+  });
+}
+
+if(AFAppX.compilerConfig){ AFAppX.compilerConfig.component2 = true; }
+
+function success() {
+require('../../app');
+require('../../node_modules/mini-ali-ui/es/badge/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-icon/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/tabs/index?hash=4a98b35daa3eee1b62960d4d5bbcbf254cbf11e3');
+require('../../node_modules/mini-ali-ui/es/tabs/tab-content/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/search-bar/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/popup/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/collapse/index?hash=a11fdcdff8ea970c65f185a8731cafe48f67047c');
+require('../../node_modules/mini-ali-ui/es/collapse/collapse-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/fitler/fitler?hash=354cb92cdc6053453b91b49e22977b08efde6a61');
+require('../../node_modules/mini-ali-ui/es/loading/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/input-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/verify-code/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/long-password/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/avatar/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/button/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/modal/index?hash=febd4c40992222524e0db12a74760a28f8f9b339');
+require('../../node_modules/mini-ali-ui/es/picker-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/orderTrial/orderTrial?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../components/QRCodeView/QRCodeView?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-radio/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/list/auto-size-img/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/list-item/index?hash=a5465b8c889360e3f854461d3ac41cf414aec633');
+require('../../pages/home/home?hash=9676af08f02ab6877f66c88a5599f6228f076a67');
+require('../../pages/index/index?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/paypage/paypage?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/forgetPassword/forgetPassword?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/userCenter/userCenter?hash=c0825856d8ab7db321bdd0ebdd2606fa94d544f0');
+require('../../pages/businessData/businessData?hash=02e5d22beb4d8b5ce9fe01e2245252aaa9b53562');
+require('../../pages/hbfqPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/hbfqPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/shskPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/shskPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/changePassword/changePassword?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/changeUser/changeUser?hash=3930b793bedbb5bce57252b2568d4e1a9ad8ea1b');
+require('../../pages/order/hbfqOrder/hbfqOrder?hash=b7340e58f6e63dafeccfeef5e60d8e039095703c');
+require('../../pages/order/shskOrder/shskOrder?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+}
+self.bootstrapApp ? self.bootstrapApp({ success }) : success();
+}
\ No newline at end of file
diff --git a/.tea/entryFiles-production/config$.js b/.tea/entryFiles-production/config$.js
new file mode 100644
index 0000000..39fdc19
--- /dev/null
+++ b/.tea/entryFiles-production/config$.js
@@ -0,0 +1,7 @@
+
+const g = typeof global !== 'undefined' ? global : self;
+g.appXAppJson = {
+  "app": {
+    "$homepage": "pages/home/home"
+  }
+};
diff --git a/.tea/entryFiles-production/importScripts$.js b/.tea/entryFiles-production/importScripts$.js
new file mode 100644
index 0000000..8b9b3af
--- /dev/null
+++ b/.tea/entryFiles-production/importScripts$.js
@@ -0,0 +1,4 @@
+if(!self.Map || !self.Set || !self.Symbol) {
+    importScripts('https://gw.alipayobjects.com/as/g/appx_release/deps/1.0.3/es6-set-map-symbol.js');
+     }
+     importScripts(`https://appx/af-appx.worker.min.js`);
diff --git a/.tea/entryFiles-production/index$.web.js b/.tea/entryFiles-production/index$.web.js
new file mode 100644
index 0000000..3c0d51a
--- /dev/null
+++ b/.tea/entryFiles-production/index$.web.js
@@ -0,0 +1,40 @@
+require('@alipay/appx-compiler/lib/sjsEnvInit');
+require('./config$');
+
+require('../../node_modules/mini-ali-ui/es/badge/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-icon/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/tabs/index?hash=4a98b35daa3eee1b62960d4d5bbcbf254cbf11e3');
+require('../../node_modules/mini-ali-ui/es/tabs/tab-content/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/search-bar/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/popup/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/collapse/index?hash=a11fdcdff8ea970c65f185a8731cafe48f67047c');
+require('../../node_modules/mini-ali-ui/es/collapse/collapse-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/fitler/fitler?hash=354cb92cdc6053453b91b49e22977b08efde6a61');
+require('../../node_modules/mini-ali-ui/es/loading/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/input-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/verify-code/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/long-password/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/avatar/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/button/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/modal/index?hash=febd4c40992222524e0db12a74760a28f8f9b339');
+require('../../node_modules/mini-ali-ui/es/picker-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/orderTrial/orderTrial?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../components/QRCodeView/QRCodeView?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-radio/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/list/auto-size-img/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/list-item/index?hash=a5465b8c889360e3f854461d3ac41cf414aec633');
+require('../../pages/home/home?hash=9676af08f02ab6877f66c88a5599f6228f076a67');
+require('../../pages/index/index?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/paypage/paypage?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/forgetPassword/forgetPassword?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/userCenter/userCenter?hash=c0825856d8ab7db321bdd0ebdd2606fa94d544f0');
+require('../../pages/businessData/businessData?hash=02e5d22beb4d8b5ce9fe01e2245252aaa9b53562');
+require('../../pages/hbfqPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/hbfqPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/shskPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/shskPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/changePassword/changePassword?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/changeUser/changeUser?hash=3930b793bedbb5bce57252b2568d4e1a9ad8ea1b');
+require('../../pages/order/hbfqOrder/hbfqOrder?hash=b7340e58f6e63dafeccfeef5e60d8e039095703c');
+require('../../pages/order/shskOrder/shskOrder?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
diff --git a/.tea/entryFiles-production/index$.worker.js b/.tea/entryFiles-production/index$.worker.js
new file mode 100644
index 0000000..93fdf0f
--- /dev/null
+++ b/.tea/entryFiles-production/index$.worker.js
@@ -0,0 +1,72 @@
+/**! __BUGME_START__ */ !function(){"use strict";var ERuntimeRemoteObjectType,ERuntimeRemoteObjectSubType;!function(e){e.Object="object",e.Function="function",e.Undefined="undefined",e.String="string",e.Number="number",e.Boolean="boolean",e.Symbol="Symbol",e.Bigint="bigint",e.Wasm="wasm"}(ERuntimeRemoteObjectType||(ERuntimeRemoteObjectType={})),function(e){e.Error="error",e.Array="array",e.Null="null"}(ERuntimeRemoteObjectSubType||(ERuntimeRemoteObjectSubType={}));var appxStackLine=/https:\/\/appx\/af-appx\.worker\.min\.js:\d+:\d+/,nativeScriptLine=/https:\/\/www\.alipay\.com\/?:\d+:\d+|\[native code\]/,pluginWorkerStackLine=/https:\/\/\d+\.hybrid\.\S+\.com\/__plugins__\/(\d+)\/index\.worker\.js:\d+:\d+/,appWorkerStackLine=/https:\/\/\d+\.hybrid\.\S+\.com\/index\.worker\.js:\d+:\d+/;function transformSourceUrl(e){try{return pluginWorkerStackLine.test(e)?e.replace(pluginWorkerStackLine,"Plugin-$1"):e.replace(appWorkerStackLine,"App")}catch(t){return e}}function formatStack(e){var t=e.split("\n"),n=t[0],s=t.slice(1).filter((function(e){return!appxStackLine.test(e)&&!nativeScriptLine.test(e)})).map(transformSourceUrl).map((function(e){return" "===e[0]?e:"    "+e}));return s.unshift(n),s.join("\n")}function error2RemoteObject(e){var t=e.name,n=e.message,s=e.stack;"string"!=typeof s&&(s=e.toString()),-1===s.indexOf(t)&&(s=e.toString()+"\n"+s);try{s=formatStack(s)}catch(e){}return{className:t,description:s,preview:{description:s,overflow:!1,properties:[{name:"stack",type:ERuntimeRemoteObjectType.String,value:s},{name:"message",type:ERuntimeRemoteObjectType.String,value:n}],subtype:ERuntimeRemoteObjectSubType.Error,type:ERuntimeRemoteObjectType.Object},subtype:ERuntimeRemoteObjectSubType.Error,type:ERuntimeRemoteObjectType.Object}}function isError(e){try{return"[object Error]"===Object.prototype.toString.call(e)}catch(e){return!1}}function getStartupParams(){if("undefined"!=typeof __appxStartupParams&&__appxStartupParams&&__appxStartupParams.appId)return __appxStartupParams;if("undefined"!=typeof my)try{return my.callSync("getStartupParams")||{}}catch(e){}return{}}var serverConfig={default:{domain:"hpmweb.alipay.com"},1:{domain:"hpmweb.alipay.com"}},ResponseEvent,RequestMethod,BreakStepType,FingerType;function getServerConfig(){var e=getStartupParams().remoteCh;return e&&serverConfig[e]?serverConfig[e]:serverConfig.default}!function(e){e.ById="Tyro.byId",e.Sticky="Tyro.sticky",e.StickyNotSendPaused="Tyro.stickyNotSendPaused",e.StickyAsync="Tyro.stickyAsync",e.ScriptSource="Tyro.scriptSource",e.Resumed="Debugger.resumed",e.ConsoleAPICalled="Runtime.consoleAPICalled"}(ResponseEvent||(ResponseEvent={})),function(e){e.DiscardConsoleEntries="Tyro.discardConsoleEntries",e.Evaluate="Tyro.evaluate",e.EvaluateOnCallFrame="Tyro.evaluateOnCallFrame",e.CallFunctionOn="Tyro.callFunctionOn",e.CompileScript="Tyro.compileScript",e.SetBreakpointsActive="Tyro.setBreakpointsActive",e.SetSkipAllPauses="Tyro.setSkipAllPauses",e.Resume="Tyro.resume",e.StepInto="Tyro.stepInto",e.StepOver="Tyro.stepOver",e.StepOut="Tyro.stepOut",e.Pause="Tyro.pause",e.GetPossibleBreakpoints="Tyro.getPossibleBreakpoints",e.SetBreakpointByUrl="Tyro.setBreakpointByUrl",e.SetBreakpoint="Tyro.setBreakpoint",e.RemoveBreakpoint="Tyro.removeBreakpoint",e.REPL="Tyro.repl",e.GetVariableValue="Tyro.getVariableValue",e.SetPauseOnExceptions="Tyro.setPauseOnExceptions",e.SetAsyncCallStackDepth="Tyro.setAsyncCallStackDepth",e.GetProperties="Tyro.getProperties"}(RequestMethod||(RequestMethod={})),function(e){e[e.Non=0]="Non",e[e.NextSticky=1]="NextSticky",e[e.StepOver=2]="StepOver",e[e.StepOut=3]="StepOut"}(BreakStepType||(BreakStepType={})),function(e){e[e.Entry=0]="Entry",e[e.Exit=1]="Exit"}(FingerType||(FingerType={}));var TyroUtil=function(){function e(){}return e.throwsMessage=function(e){return"[Throws: "+(e?e.message:"?")+"]"},e.safeGetValueFromPropertyOnObject=function(t,n){if(Object.prototype.hasOwnProperty.call(t,n))try{return t[n]}catch(t){return e.throwsMessage(t)}return t[n]},e.ensureProperties=function(t){var n=[];return function t(s){if(null===s||"object"!=typeof s)return s;if(-1!==n.indexOf(s))return"[Circular]";if(n.push(s),"function"==typeof s.toJSON)try{var r=t(s.toJSON());return n.pop(),r}catch(t){return e.throwsMessage(t)}if(Array.isArray(s)){var i=s.map(t);return n.pop(),i}var o=Object.keys(s).reduce((function(n,r){return n[r]=t(e.safeGetValueFromPropertyOnObject(s,r)),n}),{});return n.pop(),o}(t)},e.safeJSONStringify=function(t,n,s){return JSON.stringify(e.ensureProperties(t),n,s)},e.isWebIDE=function(){return!("undefined"==typeof navigator||!navigator)&&(navigator.swuserAgent||navigator.userAgent||"").indexOf("AlipayIDE")>-1},e}(),StickyFinger=function(){function StickyFinger(e,t,n,s){var r=this;this.isWebIDE=!1,this.asyncRequestMethod="tyroRequest",this.host=t,this.contextMap={},this.contextUrlMap={},this.breakpointMap={},this.breakpointIdMap={},this.debuggerMap={},this.objectMap={},this.originConsoleAPI={},this.requestTaskId=0,this.stickyMsgQueue=[],this.wsMsgQueue=[],this.wsIsOpen=!1,this.instrumentId=n,this.stickyFlag=s.stickyFlag,this.fingerFlag=s.fingerFlag,this.hookConsole(),this.stickyFlag&&(setTimeout((function(){r.socketTask=my.connectSocket({url:"wss://"+getServerConfig().domain+"/tyro/agent/"+r.instrumentId,multiple:!0});var e=function(){if(!r.wsIsOpen){r.originConsoleAPI.log("[tyro-agent] WebSocket 连接成功"),r.wsIsOpen=!0;for(var e=0,t=r.wsMsgQueue;e<t.length;e++){var n=t[e];r.socketTask.send({data:n})}r.wsMsgQueue=[]}};r.socketTask.onOpen((function(){e()})),r.socketTask.onClose((function(){r.originConsoleAPI.log("[tyro-agent] WebSocket 连接已关闭")})),r.socketTask.onMessage((function(t){r.wsIsOpen||e(),r.handleStickyAsync(JSON.parse(t.data.data))}))}),2e3),this.breakpointsActive=!0,this.skipAllPauses=!1,this.breakStepType=BreakStepType.Non,this.stackDepth=0,this.pauseOnExceptions="none",this.asyncCallStackDepth=0,this.lastStickyAsyncError=0,this.generateObjectId=0,this.globalExecutionContext=e,this.evaluateOnCallFrameExpression="",this.stickyNotSendPaused=!1,this.sendStickyParams=!1),this.fingerFlag&&(this.fingerId=0,this.fingerCache=[],this.fingerSendInterval=1e3,this.jsapiCallId=0,setInterval((function(){0!==r.fingerCache.length&&(r.sendPerf("Perf.trace",r.fingerCache),r.fingerCache=[])}),this.fingerSendInterval)),this.isWebIDE=TyroUtil.isWebIDE(),this.isWebIDE&&(this.asyncRequestMethod="tyroRequestAsync")}return StickyFinger.rewritePath=function(e){var t=e;return"."===t[0]&&(t=t.replace(".","")),t="app://"+(t=t.replace("tmp/data/build/",""))},StickyFinger.processRawContext=function(e){var t={path:this.rewritePath(e.path),contextId:String(e.contextId),scope:{0:[]},function:{},debuggerLine:e.debuggerLine,stickyLine:e.stickyLine};return e.scope&&Object.keys(e.scope).map((function(n){var s=e.scope[n],r=s.shift(),i=t.scope[r];t.scope[n]=i?i.concat(s.filter((function(e){return i.indexOf(e)<0}))):s})),e.function&&Object.keys(e.function).map((function(n){var s=e.function[n];t.function[n]={name:s[0],line:s[1]}})),t},StickyFinger.prototype.register=function(e,t){var n=String(e.contextId),s=StickyFinger.rewritePath(e.path);this.originConsoleAPI.log("[tyro-agent] register contextId "+n+" path "+s),this.contextMap[n]||this.breakpointMap[n]?this.originConsoleAPI.warn("[tyro-agent] duplicate context register "+n+" "+s):(this.contextMap[n]=StickyFinger.processRawContext(e),this.contextUrlMap[s]=n,this.breakpointMap[n]={},this.debuggerMap[n]=this.contextMap[n].debuggerLine.reduce((function(e,t){return e[t-1]=!0,e}),{}),this.stickyFlag&&this.xhrSend(ResponseEvent.ScriptSource,{scriptSource:t,scriptId:String(n),executionContextId:0,url:s}))},StickyFinger.prototype.sticky=function(e,t,n){if(!this.skipAllPauses&&this.breakpointsActive&&((this.debuggerMap[e]||{})[t]||(this.breakpointMap[e]||{})[t]||this.breakStepType===BreakStepType.NextSticky||this.breakStepType===BreakStepType.StepOver&&(new Error).stack.split("\n").length<=this.stackDepth||this.breakStepType===BreakStepType.StepOut&&(new Error).stack.split("\n").length<this.stackDepth||!0===this.sendStickyParams)){this.originConsoleAPI.log("[tyro-agent] sticky "+e+" "+t),this.breakStepType=BreakStepType.Non;var s={};if(this.stickyNotSendPaused)this.originConsoleAPI.log("[tyro-agent] stickyNotSendPaused");else{if(!this.sendStickyParams){this.originConsoleAPI.log("[tyro-agent] sticky sendStickyParams step 1"),s={callFrames:null,reason:"other",hitBreakpoints:[]};var r=this.breakpointMap[e][t];r&&s.hitBreakpoints.push(r);var i=(new Error).stack.split("\n");return this.stackDepth=i.length,Agent.isPhone?s.callFrames=this.processCallFramesPhone(String(e),t,n,i):s.callFrames=this.processCallFrames(String(e),t,n,i),this.stickyParams=s,this.sendStickyParams=!0,"(() => {\n          const localObject = {};\n          for (const key of Agent.getScopeVariables()) {\n            localObject[key] = (() => {try{return eval(key)}catch(e){return undefined}})();\n          }\n          Agent.inflateStickyParamsObject(localObject);\n          return true;\n        })()"}this.originConsoleAPI.log("[tyro-agent] sticky sendStickyParams step 2"),s=this.stickyParams,this.sendStickyParams=!1}this.originConsoleAPI.log("[tyro-agent] sticky params "+TyroUtil.safeJSONStringify(s));var o=JSON.parse(this.xhrSend(ResponseEvent.Sticky,s));return this.handleSticky(o)}},StickyFinger.prototype.fingerEntry=function(e,t){var n=this.contextMap[e].path,s=this.contextMap[e].function[t],r=this.generateFingerId(),i={time:Date.now(),file:n,line:s.line,name:s.name,id:r,type:FingerType.Entry};return this.fingerCache.push(i),r},StickyFinger.prototype.fingerExit=function(e,t,n){var s=this.contextMap[e].path,r=this.contextMap[e].function[t],i={time:Date.now(),file:s,line:r.line,name:r.name,id:n,type:FingerType.Exit};this.fingerCache.push(i)},StickyFinger.prototype.sendPerf=function(e,t){self.bugmeAPI?self.bugmeAPI.send({method:e,params:t}):self.document?self.document.addEventListener("bugmeInjected",(function(){self.bugmeAPI.send({method:e,params:t})})):self.addEventListener&&self.addEventListener("bugmeInjected",(function(){self.bugmeAPI.send({method:e,params:t})}))},StickyFinger.prototype.hookConsole=function(){var e=this;this.originConsoleAPI.log=console.log.bind(console),this.originConsoleAPI.debug=console.debug.bind(console),this.originConsoleAPI.info=console.info.bind(console),this.originConsoleAPI.error=console.error.bind(console),this.originConsoleAPI.warn=console.warn.bind(console),console.log=function(){for(var t,n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];if((t=e.originConsoleAPI).log.apply(t,n),!(n.length>0&&"string"==typeof n[0]&&(n[0].indexOf("[framework]")>=0||n[0].indexOf("dispatchEvent")>=0||n[0].indexOf("onMessage push")>=0))){var r={type:"log",args:n.map((function(t){return e.objectToRemoteObject(t,null,"object"==typeof t)})),executionContextId:0,timestamp:(new Date).getTime()};e.xhrSend(ResponseEvent.ConsoleAPICalled,r,null,!1)}},console.debug=function(){for(var t,n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];if((t=e.originConsoleAPI).debug.apply(t,n),!(n.length>0&&"string"==typeof n[0]&&(n[0].indexOf("[framework]")>=0||n[0].indexOf("dispatchEvent")>=0||n[0].indexOf("onMessage push")>=0))){var r={type:"debug",args:n.map((function(t){return e.objectToRemoteObject(t,null,"object"==typeof t)})),executionContextId:0,timestamp:(new Date).getTime()};e.xhrSend(ResponseEvent.ConsoleAPICalled,r,null,!1)}},console.info=function(){for(var t,n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];if((t=e.originConsoleAPI).info.apply(t,n),!(n.length>0&&"string"==typeof n[0]&&(n[0].indexOf("[framework]")>=0||n[0].indexOf("dispatchEvent")>=0||n[0].indexOf("onMessage push")>=0))){var r={type:"info",args:n.map((function(t){return e.objectToRemoteObject(t,null,"object"==typeof t)})),executionContextId:0,timestamp:(new Date).getTime()};e.xhrSend(ResponseEvent.ConsoleAPICalled,r,null,!1)}},console.error=function(){for(var t,n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];if((t=e.originConsoleAPI).error.apply(t,n),!(n.length>0&&"string"==typeof n[0]&&(n[0].indexOf("[framework]")>=0||n[0].indexOf("dispatchEvent")>=0||n[0].indexOf("onMessage push")>=0))){var r={type:"error",args:n.map((function(t){return e.objectToRemoteObject(t,null,"object"==typeof t)})),executionContextId:0,timestamp:(new Date).getTime()};e.xhrSend(ResponseEvent.ConsoleAPICalled,r,null,!1)}},console.warn=function(){for(var t,n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];if((t=e.originConsoleAPI).warn.apply(t,n),!(n.length>0&&"string"==typeof n[0]&&(n[0].indexOf("[framework]")>=0||n[0].indexOf("dispatchEvent")>=0||n[0].indexOf("onMessage push")>=0))){var r={type:"warning",args:n.map((function(t){return e.objectToRemoteObject(t,null,"object"==typeof t)})),executionContextId:0,timestamp:(new Date).getTime()};e.xhrSend(ResponseEvent.ConsoleAPICalled,r,null,!1)}}},StickyFinger.prototype.inflateStickyParamsObject=function(e){if(0!==this.stickyParams.callFrames.length){this.generateObjectId+=1;var t=String(this.generateObjectId);this.objectMap[t]=e,this.stickyParams.callFrames[0].scopeChain.push({type:"local",name:this.stickyParams.callFrames[0].functionName,object:{className:"Object",description:"Object",objectId:t,type:"object"}})}},StickyFinger.prototype.processCallFrames=function(e,t,n,s){var r=this,i=[],o=s.slice(3,s.length).map((function(e){return e.substr(0,e.lastIndexOf(":")).replace("    at ","").replace(" (",":")})),a=0,c=!0;return o.map((function(t){var s=t.split(":"),o=s[0],p=r.contextMap[e].path,u=Number(s[s.length-1]),l=r.contextUrlMap[p]||"none",y=a+":"+u+":"+p;c&&(r.scopeVariables=void 0!==r.contextMap[e]?r.contextMap[e].scope[n]:[],c=!1);var h={callFrameId:y,functionName:o,location:{scriptId:l,lineNumber:u,columnNumber:0},url:p,scopeChain:[],this:{}};i.push(h),a+=1})),i},StickyFinger.prototype.processCallFramesPhone=function(e,t,n,s){var r=this,i=[],o=s.slice(2,s.length).map((function(e){return e.substr(0,e.lastIndexOf(":")).replace("    at ","").replace(" (",":").replace("@",":")})),a=0,c=!0;return o.map((function(s){var o=s.split(":"),p=o[0],u=r.contextMap[e].path,l=Number(o[o.length-1]),y=r.contextUrlMap[u]||"none",h=a+":"+l+":"+u;c&&(r.scopeVariables=void 0!==r.contextMap[e]?r.contextMap[e].scope[n]:[],r.originConsoleAPI.log("scopeVariables "+TyroUtil.safeJSONStringify(r.scopeVariables)),r.originConsoleAPI.log("scopeVariables "+TyroUtil.safeJSONStringify(r.contextMap[e])+" "+r.contextMap[e].scope+" "+n),c=!1);var d={callFrameId:h,functionName:p,location:{scriptId:y,lineNumber:t,columnNumber:0},url:u,scopeChain:[],this:{}};i.push(d),a+=1})),i},StickyFinger.prototype.stickyAsyncLoop=function(){this.xhrSend(ResponseEvent.StickyAsync,{})},StickyFinger.prototype.xhrSendJSAPI=function(e,t,n,s){var r,i=this;if(e===ResponseEvent.Sticky){var o;this.stickyMsgQueue.length>0?(this.stickyMsgQueue.push({method:this.stickyNotSendPaused?ResponseEvent.StickyNotSendPaused:ResponseEvent.Sticky,params:t}),o=TyroUtil.safeJSONStringify(this.stickyMsgQueue),this.stickyMsgQueue=[]):o=TyroUtil.safeJSONStringify({method:this.stickyNotSendPaused?ResponseEvent.StickyNotSendPaused:ResponseEvent.Sticky,params:t}),my.call("showRemoteDebugMask",{text:" ",buttonTitle:"断点命中",hide:!1}),this.stickyNotSendPaused=!1;var a=Date.now(),c=my.callSync("tyroRequest",{url:this.host+"/tyro/agent",method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8","instrument-id":this.instrumentId},data:o,timeout:6e5,blockTimeout:6e5,dataType:"json",requestTaskId:this.requestTaskId++});return my.call("showRemoteDebugMask",{hide:!0}),c.error||null===c?(null===c?this.originConsoleAPI.error("[tyro-agent] xhrSend error result is "+c):this.originConsoleAPI.error("[tyro-agent] xhrSend error "+c.error+" "+c.errorMessage),Date.now()-a>=5e3?this.xhrSendJSAPI(e,t,n,s):TyroUtil.safeJSONStringify({method:"default"})):200!==c.status?(this.originConsoleAPI.error("[tyro-agent] xhrSend status fail "+e+" "+c.status),TyroUtil.safeJSONStringify({method:"default"})):c.data}if(e===ResponseEvent.StickyAsync){var p=TyroUtil.safeJSONStringify({method:ResponseEvent.StickyAsync,params:t});this.originConsoleAPI.info("[tyro-agent] xhrSend async send "+p),my.call(this.asyncRequestMethod,{url:this.host+"/tyro/agent",method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8","instrument-id":this.instrumentId},data:p,timeout:6e5,dataType:"json",requestTaskId:this.requestTaskId++,success:function(e){i.lastStickyAsyncError=0,i.stickyAsyncLoop(),200===e.status?(i.originConsoleAPI.info("[tyro-agent] xhrSend async success "+e.status+" "+e.data),i.handleStickyAsync(JSON.parse(e.data))):i.originConsoleAPI.error("[tyro-agent] xhrSend async fail "+e.status+" "+e.data)},fail:function(e){i.lastStickyAsyncError>=3?setTimeout((function(){i.stickyAsyncLoop()}),3e3):(i.lastStickyAsyncError+=1,i.stickyAsyncLoop()),i.originConsoleAPI.error("[tyro-agent] xhrSend async error "+TyroUtil.safeJSONStringify(e))}})}switch(e){case ResponseEvent.ById:r={id:n,result:t};break;case ResponseEvent.ScriptSource:r={method:ResponseEvent.ScriptSource,params:t};break;case ResponseEvent.Resumed:r={method:ResponseEvent.Resumed,params:t};break;case ResponseEvent.ConsoleAPICalled:r={method:ResponseEvent.ConsoleAPICalled,params:t};break;default:return}s?this.stickyMsgQueue.push(r):this.wsIsOpen?this.socketTask.send({data:TyroUtil.safeJSONStringify(r)}):this.wsMsgQueue.push(TyroUtil.safeJSONStringify(r))},StickyFinger.prototype.xhrSend=function(e,t,n,s){var r=this;if(Agent.isPhone)return this.xhrSendJSAPI(e,t,n,s);var i,o=new XMLHttpRequest;if(e===ResponseEvent.Sticky){var a;if(o.open("POST",this.host+"/tyro/agent",!1),o.setRequestHeader("Content-Type","application/json;charset=UTF-8"),o.setRequestHeader("instrument-id",this.instrumentId),this.stickyMsgQueue.length>0){this.stickyMsgQueue.push({method:this.stickyNotSendPaused?ResponseEvent.StickyNotSendPaused:ResponseEvent.Sticky,params:t});try{a=TyroUtil.safeJSONStringify(this.stickyMsgQueue)}catch(e){this.originConsoleAPI.error(e),a=TyroUtil.safeJSONStringify({method:this.stickyNotSendPaused?ResponseEvent.StickyNotSendPaused:ResponseEvent.Sticky,params:t})}finally{this.stickyMsgQueue=[]}}else a=TyroUtil.safeJSONStringify({method:this.stickyNotSendPaused?ResponseEvent.StickyNotSendPaused:ResponseEvent.Sticky,params:t});if(this.stickyNotSendPaused=!1,o.send(a),200===o.status)return o.responseText;throw new Error("[sticky-finger] xhrSend error "+e+" "+o.status)}if(e===ResponseEvent.StickyAsync)return o.open("POST",this.host+"/tyro/agent",!0),o.setRequestHeader("Content-Type","application/json;charset=UTF-8"),o.setRequestHeader("instrument-id",this.instrumentId),o.onload=function(){if(r.lastStickyAsyncError=0,r.stickyAsyncLoop(),4!==o.readyState||200!==o.status)throw new Error("[tyro-agent] xhrSend async fail "+e+" "+o.readyState+" "+o.status);r.handleStickyAsync(JSON.parse(o.responseText))},o.onerror=function(){throw r.lastStickyAsyncError>=3?setTimeout((function(){r.stickyAsyncLoop()}),3e3):(r.lastStickyAsyncError+=1,r.stickyAsyncLoop()),new Error("[tyro-agent] xhrSend async error "+e+" "+o.readyState+" "+o.status)},void o.send(TyroUtil.safeJSONStringify({method:ResponseEvent.StickyAsync,params:t}));switch(o.open("POST",this.host+"/tyro/agent",!0),o.setRequestHeader("Content-Type","application/json;charset=UTF-8"),o.setRequestHeader("instrument-id",this.instrumentId),o.onload=function(){if(4!==o.readyState||200!==o.status)throw new Error("[tyro-agent] xhrSend async fail "+e+" "+o.readyState+" "+o.status)},o.onerror=function(){throw new Error("[tyro-agent] xhrSend async error "+e+" "+o.readyState+" "+o.status)},e){case ResponseEvent.ById:i={id:n,result:t};break;case ResponseEvent.ScriptSource:i={method:ResponseEvent.ScriptSource,params:t};break;case ResponseEvent.Resumed:i={method:ResponseEvent.Resumed,params:t};break;case ResponseEvent.ConsoleAPICalled:i={method:ResponseEvent.ConsoleAPICalled,params:t};break;default:return}s?this.stickyMsgQueue.push(i):o.send(TyroUtil.safeJSONStringify(i))},StickyFinger.prototype.handleSticky=function(e){var t=e.id,n=e.method,s=e.params;switch(n){case RequestMethod.DiscardConsoleEntries:return this.stickyNotSendPaused=!0,this.originConsoleAPI.log("[tyro-agent] DiscardConsoleEntries success"),"(()=>{return true})()";case RequestMethod.CallFunctionOn:return this.stickyNotSendPaused=!0,this.originConsoleAPI.log("[tyro-agent] CallFunctionOn TODO sticky"),"(()=>{return true})()";case RequestMethod.CompileScript:return this.stickyNotSendPaused=!0,this.originConsoleAPI.log("[tyro-agent] CompileScript success, "+TyroUtil.safeJSONStringify(s)),"(()=>{return true})()";case RequestMethod.SetBreakpointsActive:return this.stickyNotSendPaused=!0,this.breakpointsActive=s.active,this.originConsoleAPI.log("[tyro-agent] SetBreakpointsActive success, breakpointsActive "+this.breakpointsActive),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.SetSkipAllPauses:return this.stickyNotSendPaused=!0,this.skipAllPauses=s.skip,this.originConsoleAPI.log("[tyro-agent] SetSkipAllPauses success, skipAllPauses "+this.skipAllPauses),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.Resume:return this.xhrSend(ResponseEvent.Resumed,{}),this.originConsoleAPI.log("[tyro-agent] Resume success"),"(()=>{return false})()";case RequestMethod.StepInto:return this.xhrSend(ResponseEvent.Resumed,{}),this.breakStepType=BreakStepType.NextSticky,this.originConsoleAPI.log("[tyro-agent] StepInto success"),"(()=>{return false})()";case RequestMethod.StepOver:return this.xhrSend(ResponseEvent.Resumed,{}),this.breakStepType=BreakStepType.StepOver,this.originConsoleAPI.log("[tyro-agent] StepOver success"),"(()=>{return false})()";case RequestMethod.StepOut:return this.xhrSend(ResponseEvent.Resumed,{}),this.breakStepType=BreakStepType.StepOut,this.originConsoleAPI.log("[tyro-agent] StepOut success"),"(()=>{return false})()";case RequestMethod.GetPossibleBreakpoints:return this.stickyNotSendPaused=!0,this.getPossibleBreakpoints(t,s,!0),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.SetBreakpointByUrl:return this.stickyNotSendPaused=!0,this.setBreakpointByUrl(t,s,!0),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.SetBreakpoint:return this.stickyNotSendPaused=!0,this.setBreakpoint(t,s,!0),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.RemoveBreakpoint:return this.stickyNotSendPaused=!0,this.removeBreakpoint(t,s),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.REPL:return this.stickyNotSendPaused=!0,this.breakStepType=BreakStepType.NextSticky,"(()=>{(()=>{"+s.statement+"})();return true})()";case RequestMethod.GetVariableValue:this.stickyNotSendPaused=!0;var r=e.params;return this.breakStepType=BreakStepType.NextSticky,"(()=>{(()=>{\n          Agent.variableValue({"+r.map((function(e){return e+": (() => {try{return "+e+"}catch(e){return undefined}})()"})).join(",")+"})\n        })();return true})()";case RequestMethod.SetPauseOnExceptions:return this.stickyNotSendPaused=!0,this.setPauseOnExceptions(t,s),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.SetAsyncCallStackDepth:return this.stickyNotSendPaused=!0,this.setAsyncCallStackDepth(t,s),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";case RequestMethod.EvaluateOnCallFrame:return this.stickyNotSendPaused=!0,this.evaluateOnCallFrameExpression=s.expression,this.breakStepType=BreakStepType.NextSticky,"(()=>{\n          let tyroRet,tyroErr;\n          try{tyroRet=eval(Agent.getEvaluateOnCallFrameExpression())}\n          catch(e){tyroErr=e}\n          Agent.evaluateOnCallFrame("+t+",tyroRet,tyroErr,"+s.generatePreview+");\n          return true;\n        })()";case RequestMethod.GetProperties:return this.stickyNotSendPaused=!0,this.getProperties(t,s,!0),this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()";default:return this.breakStepType=BreakStepType.NextSticky,"(()=>{return true})()"}},StickyFinger.prototype.handleStickyAsync=function(e){var t=e.id,n=e.method,s=e.params;switch(this.originConsoleAPI.log("[tyro-agent] handleStickyAsync "+t+", "+n+", "+s),n){case RequestMethod.DiscardConsoleEntries:this.originConsoleAPI.log("[tyro-agent] DiscardConsoleEntries success");break;case RequestMethod.Evaluate:this.originConsoleAPI.log("[tyro-agent] Evaluate start, expression "+s.expression);var r=this.evaluate(this.globalExecutionContext,t,s);this.originConsoleAPI.log("[tyro-agent] Evaluate success, expression "+s.expression+", result "+TyroUtil.safeJSONStringify(r));break;case RequestMethod.CallFunctionOn:this.originConsoleAPI.log("[tyro-agent] CallFunctionOn TODO stickyAsync");break;case RequestMethod.CompileScript:this.originConsoleAPI.log("[tyro-agent] CompileScript success, params "+TyroUtil.safeJSONStringify(s));break;case RequestMethod.SetBreakpointsActive:this.breakpointsActive=s.active,this.originConsoleAPI.log("[tyro-agent] SetBreakpointsActive success, breakpointsActive "+this.breakpointsActive);break;case RequestMethod.SetSkipAllPauses:this.skipAllPauses=s.skip,this.originConsoleAPI.log("[tyro-agent] SetSkipAllPauses success, skipAllPauses "+this.skipAllPauses);break;case RequestMethod.Pause:this.breakStepType=BreakStepType.NextSticky,this.originConsoleAPI.log("[tyro-agent] Pause success");break;case RequestMethod.GetPossibleBreakpoints:this.getPossibleBreakpoints(t,s);break;case RequestMethod.SetBreakpointByUrl:this.setBreakpointByUrl(t,s);break;case RequestMethod.SetBreakpoint:this.setBreakpoint(t,s);break;case RequestMethod.RemoveBreakpoint:this.removeBreakpoint(t,s);break;case RequestMethod.SetPauseOnExceptions:this.setPauseOnExceptions(t,s);break;case RequestMethod.SetAsyncCallStackDepth:this.setAsyncCallStackDepth(t,s);break;case RequestMethod.GetProperties:this.getProperties(t,s)}},StickyFinger.prototype.objectToRemoteObject=function(e,t,n){var s={};if(isError(e)&&(t=e),t)return error2RemoteObject(t);switch(s.type=typeof e,s.type){case"undefined":break;case"object":if(null===e){s.subtype="null",s.value=null;break}if(void 0!==e.constructor&&(s.className=e.constructor.name),void 0!==e.toString)try{s.description=e.toString()}catch(e){s.description="[object Object]"}else s.description="[object Object]";if(this.generateObjectId+=1,s.objectId=String(this.generateObjectId),this.objectMap[String(this.generateObjectId)]=e,n)for(var r in s.preview={type:"object",description:"Object",overflow:!1,properties:[]},e){var i=typeof e[r];s.preview.properties.push({name:r,type:i,value:"object"===i?"Object":"function"===i?"":e[r]})}break;case"function":s.description=e.toString(),s.className="Function";break;default:s.value=e,s.description=e.toString()}return s},StickyFinger.prototype.evaluateOnCallFrame=function(e,t,n,s){var r=this.objectToRemoteObject(t,n,s);return this.xhrSend(ResponseEvent.ById,{result:r},e,!0),r},StickyFinger.prototype.evaluate=function(executionContext,id,params){var returnValue,error;try{returnValue=function(expression){return"function"==typeof eval?eval(expression):Agent.evalReference(expression)}.call(executionContext,params.expression)}catch(e){error=e}var result=this.objectToRemoteObject(returnValue,error,params.generatePreview);return this.xhrSend(ResponseEvent.ById,{result:result},id),result},StickyFinger.prototype.getPossibleBreakpoints=function(e,t,n){var s=t.scriptId,r=t.startLine,i=t.endLine===t.startLine?t.endLine+1:t.endLine,o={locations:[]};if(this.contextMap[s])for(var a=this.contextMap[s].stickyLine,c=r;c<i;c++)a.includes(c)&&o.locations.push({scriptId:s,lineNumber:c,columnNumber:0});else this.originConsoleAPI.warn("[tyro-agent] getPossibleBreakpoints no scriptId "+s+" in contextMap");this.originConsoleAPI.log("[tyro-agent] getPossibleBreakpoints success, result: "+TyroUtil.safeJSONStringify(o)),this.xhrSend(ResponseEvent.ById,o,e,n)},StickyFinger.prototype.setBreakpointByUrl=function(e,t,n){var s=t.scriptId,r=t.url,i=t.lineNumber;if(this.contextMap[s])if(this.contextMap[s].stickyLine.includes(i)){var o=s+":"+i+":0:"+r,a={breakpointId:o,locations:[{scriptId:s,lineNumber:i,columnNumber:0}]};this.breakpointMap[s][i]=o,this.breakpointIdMap[o]={contextId:s,line:i},this.originConsoleAPI.log("[tyro-agent] setBreakpointByUrl success, scriptId: "+s+", url: "+r+", lineNumber: "+i),this.xhrSend(ResponseEvent.ById,a,e,n)}else this.originConsoleAPI.warn("[tyro-agent] setBreakpointByUrl not sticky line, scriptId: "+s+", url: "+r+", lineNumber: "+i);else this.originConsoleAPI.warn("[tyro-agent] setBreakpointByUrl no contextMap, scriptId: "+s)},StickyFinger.prototype.setBreakpoint=function(e,t,n){var s=t.scriptId,r=t.lineNumber;if(this.contextMap[s])if(this.contextMap[s].stickyLine.includes(r)){var i=s+":"+r+":0",o={breakpointId:i,actualLocation:{scriptId:s,lineNumber:r,columnNumber:0}};this.breakpointMap[s][r]=i,this.breakpointIdMap[i]={contextId:s,line:r},this.originConsoleAPI.log("[tyro-agent] setBreakpoint success, scriptId: "+s+", lineNumber: "+r),this.xhrSend(ResponseEvent.ById,o,e,n)}else this.originConsoleAPI.warn("[tyro-agent] setBreakpoint not sticky line, scriptId: "+s+", lineNumber: "+r);else this.originConsoleAPI.warn("[tyro-agent] setBreakpoint no contextMap, scriptId: "+s)},StickyFinger.prototype.removeBreakpoint=function(e,t){var n=t.breakpointId,s=this.breakpointIdMap[n];s||this.originConsoleAPI.warn("[tyro-agent] removeBreakpoint no breakpointId "+n);var r=s.contextId,i=s.line;delete this.breakpointMap[r][i],this.originConsoleAPI.log("[tyro-agent] removeBreakpoint success, breakpointId: "+n+", scriptId: "+r+", line: "+i)},StickyFinger.prototype.setPauseOnExceptions=function(e,t){t&&["none","uncaught","all"].includes(t.state)?(this.pauseOnExceptions=t.state,this.originConsoleAPI.log("[tyro-agent] setPauseOnExceptions success, pauseOnExceptions state "+this.pauseOnExceptions)):this.originConsoleAPI.warn("[tyro-agent] setPauseOnExceptions state invalid: "+TyroUtil.safeJSONStringify(t))},StickyFinger.prototype.setAsyncCallStackDepth=function(e,t){!t||"number"!=typeof t.maxDepth||t.maxDepth<0?this.originConsoleAPI.warn("[tyro-agent] setAsyncCallStackDepth maxDepth invalid: "+TyroUtil.safeJSONStringify(t)):(this.asyncCallStackDepth=t.maxDepth,this.originConsoleAPI.log("[tyro-agent] setAsyncCallStackDepth success, maxDepth "+this.asyncCallStackDepth))},StickyFinger.prototype.getProperties=function(e,t,n){var s=t.objectId,r=this.objectMap[s],i=[];for(var o in r)i.push({name:o,value:this.objectToRemoteObject(r[o])});this.xhrSend(ResponseEvent.ById,{result:i},e,n)},StickyFinger.prototype.generateFingerId=function(){return this.fingerId+=1,this.fingerId},StickyFinger}(),Agent=function(){function e(t,n){if(e.singleton)return e.singleton;this.host="https://"+getServerConfig().domain,this.stickyFinger=new StickyFinger("undefined"!=typeof window?window:self,this.host,t,n)}return e.getShadowMethod=function(){this.globalReference=self,"function"==typeof eval?this.evalReference=eval:"function"==typeof __eval&&(this.evalReference=__eval)},e.setShadowMethod=function(){this.globalReference.eval=this.evalReference},e.setInstrumentId=function(e){this.instrumentId=e},e.register=function(t,n){if(!e.singleton){if(!this.instrumentId&&"undefined"!=typeof my)try{this.instrumentId=getStartupParams().tyroId}catch(e){}e.instance(this.instrumentId,t)}e.singleton.stickyFinger.register(t,n)},e.sticky=function(t,n,s){return e.singleton.stickyFinger.sticky(t,n,s)},e.getEvaluateOnCallFrameExpression=function(){return e.singleton.stickyFinger.evaluateOnCallFrameExpression},e.evaluateOnCallFrame=function(t,n,s,r){return e.singleton.stickyFinger.evaluateOnCallFrame(t,n,s,r)},e.getScopeVariables=function(){return e.singleton.stickyFinger.scopeVariables},e.inflateStickyParamsObject=function(t){return e.singleton.stickyFinger.inflateStickyParamsObject(t)},e.entry=function(t,n){return e.singleton.stickyFinger.fingerEntry(t,n)},e.exit=function(t,n,s){e.singleton.stickyFinger.fingerExit(t,n,s)},e.instance=function(t,n){e.singleton=new e(t,n)},e.isPhone=!0,e.instrumentId=null,e}();Agent.getShadowMethod();var globalReference="undefined"!=typeof window?window:self;globalReference.Agent||(globalReference.StickyFinger=StickyFinger,globalReference.Agent=Agent)}();
+
+!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=43)}({0:function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var originalBridgeCall=self.AlipayJSBridge&&self.AlipayJSBridge.call,originalFetch=self.fetch,originImportScripts=self.importScripts,originEval="function"==typeof self.__eval?self.__eval:self.eval;exports.getUserAgent=function(){return navigator.swuserAgent||navigator.userAgent||""},exports.debug=console.log.bind(console),exports.checkIOS=function(){return/\(i[^;]+;( U;)? CPU.+Mac OS X/.test(exports.getUserAgent())},exports.isLyra=function(){return Boolean(self.__LyraWSWorkerOrigin)},exports.callInternalAPI=function(e,t){var n={data:{method:e,param:t},action:"internalAPI"},o=encodeURIComponent(JSON.stringify(n));originalFetch?originalFetch("https://alipay.kylinBridge/?data="+o,{mode:"no-cors"}).then((function(){})).catch((function(){})):originalBridgeCall&&originalBridgeCall("internalAPI",{method:e,param:t})},exports.getStartupParams=function(){return self.__appxStartupParams&&self.__appxStartupParams.appId?self.__appxStartupParams:self.AFAppX&&self.AFAppX.bridge&&self.AFAppX.bridge.callSync&&self.AFAppX.bridge.callSync("getStartupParams")||{}},exports.getBridge=function(){return self.AFAppX.bridge};var appxImported=!1,appxImportListener=[];exports.runAfterAppx=function(e){if(self.AFAppX)return appxImported=!0,void e();self.importScripts=function(e){originImportScripts(e),!appxImported&&/af-appx\.worker\.min\.js$/.test(e)&&(appxImported=!0,appxImportListener.forEach((function(e){return e()})),appxImportListener=[])},appxImportListener.push(e)},exports.evaluateScript=function(expression){return"function"==typeof eval?eval(expression):"function"==typeof originEval?(self.eval=originEval,eval(expression)):void 0}},11:function(e,t){var n="\\x"+("0"+"~".charCodeAt(0).toString(16)).slice(-2),o="\\"+n,r=new RegExp(n,"g"),s=new RegExp(o,"g"),a=new RegExp("(?:^|([^\\\\]))"+o),i=[].indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},c=String;function u(e,t,n){return t instanceof Array?function(e,t,n){for(var o=0,r=t.length;o<r;o++)t[o]=u(e,t[o],n);return t}(e,t,n):t instanceof c?t.length?n.hasOwnProperty(t)?n[t]:n[t]=function(e,t){for(var n=0,o=t.length;n<o;e=e[t[n++].replace(s,"~")]);return e}(e,t.split("~")):e:t instanceof Object?function(e,t,n){for(var o in t)t.hasOwnProperty(o)&&(t[o]=u(e,t[o],n));return t}(e,t,n):t}var l={stringify:function(e,t,s,a){return l.parser.stringify(e,function(e,t,s){var a,c,u=!1,l=!!t,p=[],f=[e],d=[e],g=[s?"~":"[Circular]"],m=e,h=1;return l&&(c="object"==typeof t?function(e,n){return""!==e&&t.indexOf(e)<0?void 0:n}:t),function(e,t){return l&&(t=c.call(this,e,t)),u?(m!==this&&(a=h-i.call(f,this)-1,h-=a,f.splice(h,f.length),p.splice(h-1,p.length),m=this),"object"==typeof t&&t?(i.call(f,t)<0&&f.push(m=t),h=f.length,(a=i.call(d,t))<0?(a=d.push(t)-1,s?(p.push((""+e).replace(r,n)),g[a]="~"+p.join("~")):g[a]=g[0]):t=g[a]):"string"==typeof t&&s&&(t=t.replace(n,o).replace("~",n))):u=!0,t}}(e,t,!a),s)},parse:function(e,t){return l.parser.parse(e,function(e){return function(t,r){var s="string"==typeof r;return s&&"~"===r.charAt(0)?new c(r.slice(1)):(""===t&&(r=u(r,r,{})),s&&(r=r.replace(a,"$1~").replace(o,n)),e?e.call(this,t,r):r)}}(t))},parser:JSON};e.exports=l},2:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Connect="RemoteX.connect",e.Disconnect="RemoteX.disconnect",e.PageChanged="RemoteX.pageChanged",e.DataChanged="RemoteX.dataChanged",e.EvaluteScript="RemoteX.evaluteScript",e.syncStorage="RemoteX.syncStorage",e.requestWillBeSent="RemoteX.requestWillBeSent",e.requestFinished="RemoteX.requestFinished",e.Ping="RemoteX.ping",e.Pong="RemoteX.pong"}(t.RemoteXMethods||(t.RemoteXMethods={}))},43:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(44),r=n(47),s=n(48),a=n(0);a.runAfterAppx((function(){setTimeout((function(){a.debug("[bugme] run after appx"),a.getStartupParams().isRemoteX||a.isLyra()?(a.debug("[bugme] remotex mode"),o.registerRemoteX()):(a.debug("[bugme] preview mode"),s.registerPreview())}),1e3)}));try{r.initAppXHook()}catch(e){console.error(e)}},44:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(6),r=n(0),s=n(45);t.registerRemoteX=function(){if(self.navigator){r.debug("[bugme] start to register remotex"),s.listenEvents(),o.SocketConn.open(),self.bugmeAPI={send:function(e){o.SocketConn.send(e)}};if(self.document&&self.document.dispatchEvent)try{self.document.dispatchEvent("bugmeInjected")}catch(e){self.document.dispatchEvent(new CustomEvent("bugmeInjected"))}else self.dispatchEvent&&self.dispatchEvent(new CustomEvent("bugmeInjected"))}}},45:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),r=n(0),s=n(6),a=n(46);function i(e){if(!e||"object"!=typeof e)return{};var t={};return Object.keys(e).forEach((function(n){t[n]=""+e[n]})),t}var c=/^https?:\/\/hpmweb\.alipay\.com/,u=function(e){c.test(e.url)||s.SocketConn.send({method:o.RemoteXMethods.requestWillBeSent,params:{reqId:e.requestId,url:e.url,method:(e.method||"GET").toUpperCase(),body:e.postBody,headers:i(e.headers)}})},l=function(e){c.test(e.url)||s.SocketConn.send({method:o.RemoteXMethods.requestFinished,params:{reqId:e.requestId,url:e.url,status:e.status,body:e.body,headers:i(e.headers)}})},p=function(e){c.test(e.url)||s.SocketConn.send({method:o.RemoteXMethods.requestFinished,params:{reqId:e.requestId,url:e.url,status:null}})},f=function(e){var t={};Object.keys(e.data).forEach((function(n){try{t[n]=JSON.parse(e.data[n]).APDataStorage}catch(e){}})),s.SocketConn.send({method:o.RemoteXMethods.syncStorage,params:{data:t}})};t.listenEvents=function(){var e=r.getBridge();e.on(a.ERiverWorkerEvent.PageResume,(function(){s.SocketConn.send({method:o.RemoteXMethods.PageChanged})})),e.on(a.ERiverWorkerEvent.DebugPanelClick,(function(){s.SocketConn.close()})),r.checkIOS()&&!r.isLyra()?(e.on(a.ERiverDebugEvent.networkRequest,(function(e){var t=e.data;u(t)})),e.on(a.ERiverDebugEvent.networkResponse,(function(e){var t=e.data;l(t)})),e.on(a.ERiverDebugEvent.networkError,(function(e){var t=e.data;p(t)})),e.on(a.ERiverDebugEvent.storageChanged,(function(e){var t=e.data;f(t)}))):e.on(a.ERiverDebugEvent.debugConsole,(function(e){var t,n=e.data,o=n.type,r=n.content;try{t=JSON.parse(r)}catch(e){return}switch(o){case a.ERiverDebugEvent.networkRequest:u(t);break;case a.ERiverDebugEvent.networkResponse:l(t);break;case a.ERiverDebugEvent.networkError:p(t);break;case a.ERiverDebugEvent.storageChanged:f(t)}}))}},46:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.networkRequest="tinyAppRemoteDebug_network_request",e.networkResponse="tinyAppRemoteDebug_network_response",e.networkError="tinyAppRemoteDebug_network_error",e.storageChanged="tinyAppRemoteDebug_storage",e.debugConsole="onTinyDebugConsole",e.vconsoleMessage="onMessageFromVConsole"}(t.ERiverDebugEvent||(t.ERiverDebugEvent={})),function(e){e.PageResume="pageResume",e.DebugPanelClick="tinyRemoteDebugPanelButtonClick"}(t.ERiverWorkerEvent||(t.ERiverWorkerEvent={}))},47:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(6),r=null;t.initAppXHook=function(){var e=self.__APPX_DEVTOOLS_GLOBAL_HOOK__,t={};e&&Object.assign(t,e),t.onSetData=function(t){if(e&&e.onSetData)try{e.onSetData(t)}catch(e){console.error(e)}o.SocketConn.socketTask&&(clearTimeout(r),r=setTimeout((function(){o.SocketConn.send({method:"RemoteX.dataChanged"})}),300))},t.onSetDataCallback=function(t){e&&e.onSetDataCallback&&e.onSetDataCallback(t)},self.__APPX_DEVTOOLS_GLOBAL_HOOK__=t}},48:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(11),r=n(0),s=function(e,t){return void 0===t?"©undefined":null===t?"©null":t===-1/0?"©- Infinity":t===1/0?"©Infinity":"number"==typeof t&&isNaN(t)?"©NaN":"function"==typeof t?"©function":t},a=Function,i=function(e){try{if(e.fromVConsoleToWorker){var t=e.requestId;if("exec"===e.method){try{new a("requestId","sendBack","var res = "+e.script+";console.log(res);")(t,(function(e){return r.callInternalAPI("tinyDebugConsole",{type:"msgFromWorkerToVConsole",content:o.stringify({requestId:t,returnValue:e},s)})}))}catch(e){console.error(e.name+":"+e.message)}}}}catch(e){}};t.registerPreview=function(){setTimeout((function(){self.document?self.document.addEventListener("push",(function(e){try{var t=e.data.param;i(JSON.parse(t.content||t.data.content))}catch(e){}})):self.addEventListener&&self.addEventListener("push",(function(e){try{var t=JSON.parse(JSON.parse(e.data.text()).param.data.content);i(t)}catch(e){}}))}),10),["log","info","error","debug","warn"].forEach((function(e){var t="o"+e;console[t]||(console[t]=console[e],console[e]=function(){for(var n,a=[],i=0;i<arguments.length;i++)a[i]=arguments[i];console[t].apply(console,a);try{n=o.stringify(a.map((function(e){return e instanceof Error?e.name+": "+e.message:e})),s)}catch(e){return void console.error(e.name+": "+e.message)}r.callInternalAPI("tinyDebugConsole",{content:n,type:"console_"+e})})}))}},5:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wssConfig={default:{openchannel:"openchannel.alipay.com",hpmweb:"hpmweb.alipay.com"},1:{openchannel:"miniprogram.alipay.com",hpmweb:"hpmweb.alipay.com"}}},6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(11),r=n(0),s=n(2),a=n(5),i=function(){r.getBridge().call("showRemoteDebugPanel",{status:"connecting",text:"远程调试准备中",buttonTitle:"退出"})},c=function(){r.getBridge().call("showRemoteDebugPanel",{status:"connected",text:"远程调试已连接",buttonTitle:"退出"})},u=function(){r.getBridge().call("showRemoteDebugPanel",{status:"disconnected",text:"远程调试已断开",buttonTitle:"退出"})};t.SocketConn={messageQueue:[],socketTask:null,send:function(e){var t=this,n="string"==typeof e?e:JSON.stringify(e);n.length>5242880?r.debug("[bugme] socket send failed, size: ",n.length):this.socketTask?(this.messageQueue.length&&(this.messageQueue.forEach((function(e){t.socketTask.send({data:e})})),this.messageQueue=[]),this.socketTask.send({data:n})):this.messageQueue.push(n)},close:function(){this.socketTask?this.socketTask.close():r.getBridge().showToast({content:"请点击右上角关闭按钮退出",duration:1e3})},connect:function(e){var t=this,n=r.getBridge(),o=n.connectSocket({url:e,multiple:!0}),s=function(){t.socketTask||(t.socketTask=o,t.onopen(),r.debug("[bugme] websocket connected"))};o.onOpen((function(){s()})),o.onMessage((function(e){t.socketTask||s(),t.onmessage(e)})),o.onClose((function(){t.onclose()})),o.onError((function(){t.socketTask||(u(),n.showToast({content:"本次真机调试已结束,请重新生成调试版本",duration:2e3}))}))},open:function(){var e=this,t=r.getStartupParams(),n=t.channelId,o=t.channelAuthPair,s=t.remoteCh,c=self.__LyraWSWorkerOrigin;if(n||c){i();var u=a.wssConfig.default.openchannel;s&&a.wssConfig[s]&&a.wssConfig[s].openchannel&&(u=a.wssConfig[s].openchannel);var l=r.getBridge(),p=c?c+"/worker":"wss://"+u+"/group/connect/"+n+"?scene=tinyAppDebug&roleType=TINYAPP&roleId=0";if(o&&(p+="?"+o.key+"="+o.value),r.checkIOS()&&!r.isLyra()){this.connect(p);var f=l.connectSocket;l.connectSocket=function(e){if(e&&e.multiple)return f(e);l.showToast({content:"iOS 真机调试暂不支持 connectSocket JSAPI",duration:1e3})},l.onSocketOpen=l.offSocketOpen=l.onSocketMessage=l.offSocketMessage=l.closeSocket=function(){}}else setTimeout((function(){e.connect(p)}),1200)}else r.debug("[bugme] missing channelId in startup params")},onopen:function(){var e=r.getBridge(),t=e.getSystemInfoSync();this.send({method:s.RemoteXMethods.Connect,params:{userAgent:r.getUserAgent(),sdkVersion:e.SDKVersion,alipayVersion:t.version,model:t.model,system:t.system}}),c()},onmessage:function(e){try{var t=JSON.parse(e.data.data),n=t.method,a=t.id,i=t.params;if(n===s.RemoteXMethods.Disconnect)this.close();else if(n===s.RemoteXMethods.EvaluteScript){if(i&&i.code)try{var c=r.evaluateScript(i.code);this.send({returnId:a,payload:o.stringify(c)})}catch(e){r.debug("[remoteX worker evaluateScript] ",e)}}else n===s.RemoteXMethods.Ping&&this.send({method:s.RemoteXMethods.Pong,params:{returnId:a}})}catch(t){r.debug("RemoteX onSocketMessage error",t,e)}},onclose:function(){this.socketTask=null,this.messageQueue=[],u(),[1,2].forEach((function(e){r.getBridge().call("closeSocket",{socketTaskId:e})}))}}}}); /**! __BUGME_END__ */
+if(!self.__appxInited) {
+self.__appxInited = 1;
+require('@alipay/appx-compiler/lib/sjsEnvInit');
+
+require('./config$');
+require('./importScripts$');
+
+var AFAppX = self.AFAppX;
+self.getCurrentPages = AFAppX.getCurrentPages;
+self.getApp = AFAppX.getApp;
+self.Page = AFAppX.Page;
+self.App = AFAppX.App;
+self.my = AFAppX.bridge || AFAppX.abridge;
+self.abridge = self.my;
+self.Component = AFAppX.WorkerComponent || function(){};
+self.$global = AFAppX.$global;
+self.requirePlugin = AFAppX.requirePlugin;
+
+
+if(AFAppX.registerApp) {
+  AFAppX.registerApp({
+    appJSON: appXAppJson,
+  });
+}
+
+if(AFAppX.compilerConfig){ AFAppX.compilerConfig.component2 = true; }
+
+function success() {
+require('../../app');
+require('../../node_modules/mini-ali-ui/es/badge/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-icon/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/tabs/index?hash=4a98b35daa3eee1b62960d4d5bbcbf254cbf11e3');
+require('../../node_modules/mini-ali-ui/es/tabs/tab-content/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/search-bar/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/popup/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/collapse/index?hash=a11fdcdff8ea970c65f185a8731cafe48f67047c');
+require('../../node_modules/mini-ali-ui/es/collapse/collapse-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/fitler/fitler?hash=354cb92cdc6053453b91b49e22977b08efde6a61');
+require('../../node_modules/mini-ali-ui/es/loading/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/input-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/verify-code/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/long-password/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/avatar/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/button/index?hash=e1617a0257fb9de746f60d50b03404ad924976c9');
+require('../../node_modules/mini-ali-ui/es/modal/index?hash=febd4c40992222524e0db12a74760a28f8f9b339');
+require('../../node_modules/mini-ali-ui/es/picker-item/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../components/orderTrial/orderTrial?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../components/QRCodeView/QRCodeView?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/am-radio/index?hash=5a0c180d5ccf7c9d483dd4817cdab5489824013c');
+require('../../node_modules/mini-ali-ui/es/list/auto-size-img/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../node_modules/mini-ali-ui/es/list/list-item/index?hash=a5465b8c889360e3f854461d3ac41cf414aec633');
+require('../../pages/home/home?hash=9676af08f02ab6877f66c88a5599f6228f076a67');
+require('../../pages/index/index?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/paypage/paypage?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/forgetPassword/forgetPassword?hash=95bcfeb33689b813cb703b11c35da0864d69d6fc');
+require('../../pages/userCenter/userCenter?hash=c0825856d8ab7db321bdd0ebdd2606fa94d544f0');
+require('../../pages/businessData/businessData?hash=02e5d22beb4d8b5ce9fe01e2245252aaa9b53562');
+require('../../pages/hbfqPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/hbfqPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/shskPage/orderInfo/orderInfo?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/shskPage/qrCode/qrCode?hash=14138944b7ae79add9366738dd067287d1b4b5a8');
+require('../../pages/changePassword/changePassword?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+require('../../pages/changeUser/changeUser?hash=3930b793bedbb5bce57252b2568d4e1a9ad8ea1b');
+require('../../pages/order/hbfqOrder/hbfqOrder?hash=b7340e58f6e63dafeccfeef5e60d8e039095703c');
+require('../../pages/order/shskOrder/shskOrder?hash=ade6a15b5771b52c79e75af0b49fdf71e51fb2b4');
+}
+self.bootstrapApp ? self.bootstrapApp({ success }) : success();
+}
\ No newline at end of file
diff --git a/app.acss b/app.acss
new file mode 100644
index 0000000..160dbcd
--- /dev/null
+++ b/app.acss
@@ -0,0 +1,6 @@
+
+/* 阿里图标样式*/
+@import "/static/ali-icon/iconfont.acss";
+page {
+  background: #fff;
+}
diff --git a/app.js b/app.js
new file mode 100644
index 0000000..7232fc7
--- /dev/null
+++ b/app.js
@@ -0,0 +1,112 @@
+let $api = require('./utils/ajaxFn.js');
+
+App({
+  // 存储全局需要的数据
+  lastLoginMgrId:'',//最后一次登录的mgrId
+  sessionId:'',
+  userStyle:{
+    backColor:"#F2EBFF",//背景色
+    defaultColor:"#8C48FF",//主题色
+    gradientColor: 'linear-gradient(90deg, #9C33FF, #8C4EF5)',
+    logoSrc:"",//logo地址
+    servicePhone:"123456789123"//客服电话
+  },//用户配置样式
+  userInfo:{},//获取到的用户信息
+  userId:"",//获取到的user_id
+
+  onLaunch(options) {
+    // 第一次打开
+    this.getAuthor()
+  },
+  onShow(options) {
+    // 从后台被 scheme 重新打开
+    // options.query == {number:1}
+    console.log('从后台被 scheme 重新打开',1111)
+  },
+  // 进入就获取授权获取uid
+  getAuthor() {
+    my.getAuthCode({
+      scopes: ['auth_base'],
+      // 主动授权:auth_user,静默授权:auth_base。或者其它scope。如需同时获取用户多项授权,可在 scopes 中传入多个 scope 值。
+      success: (res) => {
+        console.log(res)
+        if (res.authCode) {
+          // 认证成功
+          // 调用自己的服务端接口,让服务端进行后端的授权认证,并且利用session,需要解决跨域问题
+          $api.ajax(
+            '/sib/xcx/login/userId',
+            'POST',
+            (res)=>{
+              this.userId = res.data.body.userId
+              this.loginByUserId()
+            },
+            (err)=>{
+
+            },
+            false,
+            {
+              authCode:res.authCode
+            }
+          )
+        }
+      },
+    });
+  },
+  loginByUserId(){
+    $api.ajax(
+      '/sib/xcx/login/loginByZfb',
+      'POST',
+      (res)=>{
+        if(!res.data.body){
+          my.navigateTo({
+            url: '/pages/index/index'
+          });
+        }else{
+          this.sessionId = res.data.body.sessionId
+          this.lastLoginMgrId = res.data.body.lastLoginMgrId
+          if(res.data.body.sessionId){
+            
+            my.setStorageSync({
+              key:'sessionId',
+              data:{
+                sessionId:res.data.body.sessionId
+              }
+            })
+          }
+          
+          if(res.data.body.lastLoginMgrId){
+            this.getUserInfo()
+          }else{
+            my.switchTab({
+              url: '/pages/changeUser/changeUser'
+            });
+          }
+        }
+      },
+      (err)=>{
+
+      },
+      false,
+      {
+        zfbUserId:this.userId
+      }
+    )
+  },
+  getUserInfo(){
+    $api.ajax(
+      '/sib/xcx/login/mgrLogin',
+      'POST',
+      (res)=>{
+        this.userInfo = res.data.body
+        my.switchTab({
+          url: '/pages/home/home'
+        });
+      },
+      err=>{},
+      true,
+      {
+        mgrId:this.lastLoginMgrId
+      }
+    )
+  }
+});
diff --git a/app.json b/app.json
new file mode 100644
index 0000000..9a7d961
--- /dev/null
+++ b/app.json
@@ -0,0 +1,46 @@
+{
+  "pages": [
+    "pages/home/home",
+    "pages/index/index",
+    "pages/paypage/paypage",
+    "pages/forgetPassword/forgetPassword",
+    "pages/userCenter/userCenter",
+    "pages/businessData/businessData",
+    "pages/hbfqPage/orderInfo/orderInfo",
+    "pages/hbfqPage/qrCode/qrCode",
+    "pages/shskPage/orderInfo/orderInfo",
+    "pages/shskPage/qrCode/qrCode",
+    "pages/changePassword/changePassword",
+    "pages/changeUser/changeUser",
+    "pages/order/hbfqOrder/hbfqOrder",
+    "pages/order/shskOrder/shskOrder"
+  ],
+  "window": {
+    "defaultTitle": "智享收银台"
+  },
+  "tabBar": {
+    "textColor": "#666666",
+    "selectedColor": "#333333",
+    "backgroundColor": "#fff",
+    "items": [
+      {
+        "pagePath": "pages/home/home",
+        "icon": "pages/icon/ywbl.png",
+        "activeIcon": "pages/icon/ywbl_h.png",
+        "name": "业务办理"
+      },
+      {
+        "pagePath": "pages/businessData/businessData",
+        "icon": "pages/icon/ywsj.png",
+        "activeIcon": "pages/icon/ywsj_h.png",
+        "name": "业务数据"
+      },
+      {
+        "pagePath": "pages/userCenter/userCenter",
+        "icon": "pages/icon/grzx.png",
+        "activeIcon": "pages/icon/grzx_h.png",
+        "name": "个人中心"
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/components/QRCodeView/QRCodeView.acss b/components/QRCodeView/QRCodeView.acss
new file mode 100644
index 0000000..ba80f2e
--- /dev/null
+++ b/components/QRCodeView/QRCodeView.acss
@@ -0,0 +1,57 @@
+.info-view {
+  padding: 0 30px;
+  box-sizing: border-box;
+  width: 686rpx;
+  /* min-height: 440px; */
+  background: #FFFFFF;
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  position: relative;
+  transform: translateY(-50px);
+  margin: auto;
+}
+
+.img-view {
+  width: 100%;
+  text-align: center;
+  padding: 36px 0 20px;
+  border-bottom: 1px dashed #E6E6E6;
+}
+
+.img {
+  width: 200px;
+  height: 200px;
+  margin-bottom: 12px;
+}
+
+.text {
+  font-size: 12px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
+
+.rate-view {
+  box-sizing: border-box;
+  padding: 20px 3px 11px;
+}
+
+.rate-item {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 16px;
+}
+
+.name {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #8E8D99;
+}
+
+.rate {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
\ No newline at end of file
diff --git a/components/QRCodeView/QRCodeView.axml b/components/QRCodeView/QRCodeView.axml
new file mode 100644
index 0000000..15b6ae0
--- /dev/null
+++ b/components/QRCodeView/QRCodeView.axml
@@ -0,0 +1,16 @@
+<view class="info-view">
+    <view class="img-view">
+      <image src="{{imgSrc}}" class="img" mode="aspectFit"/>
+      <view class="text">扫码二维码</view>
+    </view>
+    <view class="rate-view">
+      <view class="rate-item" a:for="{{rateList}}" a:key="{{index}}">
+        <view class="name">
+          {{item.name}}
+        </view>
+        <view class="rate">
+          {{item.rate}}
+        </view>
+      </view>
+    </view>
+  </view>
\ No newline at end of file
diff --git a/components/QRCodeView/QRCodeView.js b/components/QRCodeView/QRCodeView.js
new file mode 100644
index 0000000..e9670b7
--- /dev/null
+++ b/components/QRCodeView/QRCodeView.js
@@ -0,0 +1,12 @@
+Component({
+  mixins: [],
+  data: {},
+  props: {
+    imgSrc:'',
+    rateList:[]
+  },
+  didMount() {},
+  didUpdate() {},
+  didUnmount() {},
+  methods: {},
+});
diff --git a/components/QRCodeView/QRCodeView.json b/components/QRCodeView/QRCodeView.json
new file mode 100644
index 0000000..32640e0
--- /dev/null
+++ b/components/QRCodeView/QRCodeView.json
@@ -0,0 +1,3 @@
+{
+  "component": true
+}
\ No newline at end of file
diff --git a/components/fitler/fitler.acss b/components/fitler/fitler.acss
new file mode 100644
index 0000000..61cb2fd
--- /dev/null
+++ b/components/fitler/fitler.acss
@@ -0,0 +1,85 @@
+.item-content {
+  padding: 14px 16px;
+  font-size: 17px;
+  color: #333;
+  line-height: 24px;
+}
+
+.title-class {
+  font-size: 102px;
+  font-family: PingFang SC;
+  color: #333333;
+}
+
+.time-filter {
+  display: flex;
+  height: 32px;
+  background: #F2F2F2;
+  border-radius: 16px;
+  align-items: center;
+  justify-content: space-around;
+}
+
+.begin-time {
+  display: flex;
+  align-items: center;
+  font-size: 12px;
+  width: 30%;
+  height: 32px;
+  justify-content: center;
+}
+
+.end-time {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 12px;
+  width: 30%;
+  height: 32px;
+}
+.item-box{
+  display: flex;
+  flex-wrap: wrap;
+  /* justify-content: space-between; */
+  padding: 10px 16px 10px 26px;
+}
+.filter-item {
+  display: inline-block;
+  min-width: 80px;
+  height: 32px;
+  line-height: 32px;
+  background: #F2F2F2;
+  border-radius: 16px;
+  font-size: 12px;
+  text-align: center;
+  margin-right: 8px;
+  margin-bottom: 8px;
+}
+
+.active {
+  background: rgba(244, 241, 255, 1);
+}
+.btn-box{
+  display: flex;
+  width: 640rpx;
+  justify-content: space-around;
+  position: fixed;
+  bottom: 10px;
+}
+.btn-1{
+  width: 280rpx;
+  height: 40px;
+  line-height: 40px;
+  color: #666666;
+  border: 1px solid #CCCCCC; 
+  border-radius: 20px;
+}
+.btn-2{
+  width: 280rpx;
+  height: 40px;
+  line-height: 40px;
+  border-radius: 20px;
+  color: #fff;
+  border: 0;
+  outline: none;
+}
\ No newline at end of file
diff --git a/components/fitler/fitler.axml b/components/fitler/fitler.axml
new file mode 100644
index 0000000..0e372ba
--- /dev/null
+++ b/components/fitler/fitler.axml
@@ -0,0 +1,55 @@
+<popup disableScroll="{{false}}" show="{{showRight}}" position="right" onClose="changeData" zIndex="{{100}}">
+  <view style="min-height: 100vh;width:640rpx;box-sizing:border-box;padding:16px 0; background: #fff;position: relative">
+    <scroll-view scroll-y="{{true}}" scroll-with-animation="{{true}}" scroll-top="{{0}}" style="height: 85vh;">
+      <collapse className="demo-collapse" activeKey="{{['item-1']}}">
+        <collapse-item a:if="{{hasTime}}" header="办单时间" titleClass="title-class" itemKey="item-1">
+          <view class="item-content">
+            <view class="time-filter">
+              <text class="iconfont iconcalendar" style="font-size:14px"></text>
+              <view class="begin-time" onTap="getBeginTime">
+                <text>{{queryObj.startDay}}</text>
+              </view>
+            ~
+              <view class="end-time" onTap="getEndTime">
+                <text>{{queryObj.endDay}}</text>
+              </view>
+            </view>
+          </view>
+        </collapse-item>
+        <collapse-item a:if="{{termArr}}" header="分期期数" titleClass="title-class" itemKey="item-2">
+          <view class="item-box">
+            <view a:for="{{termArr}}" class="filter-item" data-code="{{item.code}}" data-type="{{'insTerm'}}" style="{{queryObj.insTerm==item.code?{background:userStyle.backColor,color:userStyle.defaultColor,border:`0.5px solid ${userStyle.defaultColor}`}:''}}" a:key="{{item.code}}" onTap="setCode">{{item.name}}</view>
+          </view>
+        </collapse-item>
+        <collapse-item a:if="{{payTypeArr}}" header="付息方式" titleClass="title-class" itemKey="item-3">
+          <view class="item-box">
+            <view a:for="{{payTypeArr}}" class="filter-item" data-code="{{item.code}}" data-type="{{'prodId'}}" style="{{queryObj.prodId==item.code?{background:userStyle.backColor,color:userStyle.defaultColor,border:`0.5px solid ${userStyle.defaultColor}`}:''}}" a:key="{{item.code}}" onTap="setCode">{{item.name}}</view>
+          </view>
+        </collapse-item>
+        <collapse-item a:if="{{orderStaArr}}" header="订单状态" titleClass="title-class" itemKey="item-4">
+          <view class="item-box">
+            <view a:for="{{orderStaArr}}" class="filter-item" data-code="{{item.code}}" data-type="{{'status'}}" style="{{queryObj.status==item.code?{background:userStyle.backColor,color:userStyle.defaultColor,border:`0.5px solid ${userStyle.defaultColor}`}:''}}" a:key="{{item.code}}" onTap="setCode">{{item.name}}</view>
+          </view>
+        </collapse-item>
+        <collapse-item a:if="{{priceArr}}" header="分期本金" titleClass="title-class" itemKey="item-5">
+          <view class="item-box">
+            <view a:for="{{priceArr}}" class="filter-item" data-code="{{item.code}}" data-type="{{'price'}}" style="{{priceCode==item.code?{background:userStyle.backColor,color:userStyle.defaultColor,border:`0.5px solid ${userStyle.defaultColor}`}:''}}" a:key="{{item.code}}" onTap="setCode">{{item.name}}</view>
+          </view>
+        </collapse-item>
+        <collapse-item a:if="{{doPriceArr}}" header="交易金额" titleClass="title-class" itemKey="item-6">
+          <view class="item-box">
+            <view a:for="{{doPriceArr}}" class="filter-item" data-code="{{item.code}}" data-type="{{'doPrice'}}" style="{{priceCode==item.code?{background:userStyle.backColor,color:userStyle.defaultColor,border:`0.5px solid ${userStyle.defaultColor}`}:''}}" a:key="{{item.code}}" onTap="setCode">{{item.name}}</view>
+          </view>
+        </collapse-item>
+      </collapse>
+    </scroll-view>
+    <view class="btn-box">
+      <button class="btn-1" onTap="reset">
+      重置
+      </button>
+      <button class="btn-2" style="{{background:userStyle.gradientColor}}" onTap="confirm">
+      确定
+      </button>
+    </view>
+  </view>
+</popup>
\ No newline at end of file
diff --git a/components/fitler/fitler.js b/components/fitler/fitler.js
new file mode 100644
index 0000000..6d1bc26
--- /dev/null
+++ b/components/fitler/fitler.js
@@ -0,0 +1,109 @@
+
+const dateFmt = require('../../utils/date.js');
+const app = getApp()
+Component({
+  data: {
+    priceCode:'',
+    userStyle:{},
+    showRightCom:false,
+    queryObj:{
+      startDay: dateFmt(new Date(),'YYYY-MM-DD'),
+      endDay:dateFmt(new Date(),'YYYY-MM-DD'),
+    },
+  },
+  // 设置默认属性
+  props: {
+    
+  },
+  didMount(){
+    this.setData({
+      userStyle:app.userStyle
+    })
+  },
+  didUpdate(){
+  },
+  didUnmount() {
+  },
+  methods: {
+    changeData(){
+      this.setData({
+        showRightCom:false
+      });
+      this.props.onShowage(this.data.showRightCom);
+    },
+    getBeginTime(){
+      my.datePicker({
+      startDate: '2010-10-9',
+      endDate: '2027-10-9',
+      success: (res) => {
+        this.setData({
+          'queryObj.startDay':res.date
+        })
+      },
+    });
+    },
+    getEndTime(){
+      my.datePicker({
+      startDate: this.data.queryObj.beginTime,
+      endDate: '2027-10-9',
+      success: (res) => {
+        this.setData({
+          'queryObj.endDay':res.date
+        })
+      },
+    });
+    },
+    setCode(e){
+      console.log(e)
+      var startAmt,endAmt
+      if(e.target.dataset.type=='price'|| e.target.dataset.type=='doPrice'){
+        switch(e.target.dataset.code){
+          case 1:
+            startAmt = 0
+            endAmt = 999
+            break;
+          case 2:
+            startAmt = 1000
+            endAmt = 1999
+            break;
+          case 3:
+            startAmt = 2000
+            endAmt = 4999
+            break;
+          case 4:
+            startAmt = 5000
+            endAmt = 99999
+            break;
+        }
+        this.setData({
+          'queryObj.startAmt':startAmt,
+          'queryObj.endAmt':endAmt,
+          priceCode:e.target.dataset.code
+        })
+      }else{
+        var key = `queryObj.${e.target.dataset.type}`
+        this.setData({
+          [key]:e.target.dataset.code
+        })
+      }
+      
+    },
+    // 重置按钮
+    reset(){
+      let obj = this.data.queryObj
+      for(let key in obj){
+        obj[key] = ''
+      }
+      this.setData({
+        queryObj:{},
+        'queryObj.startDay':dateFmt(new Date(),'YYYY-MM-DD'),
+        'queryObj.endDay':dateFmt(new Date(),'YYYY-MM-DD'),
+      })
+    },
+    //确定按钮
+    confirm(){
+      this.props.onGetFilterInfo(this.data.queryObj);
+      this.changeData()
+    }
+  },
+});
\ No newline at end of file
diff --git a/components/fitler/fitler.json b/components/fitler/fitler.json
new file mode 100644
index 0000000..725de25
--- /dev/null
+++ b/components/fitler/fitler.json
@@ -0,0 +1,11 @@
+{
+  "component": true,
+  "usingComponents": {
+    "tabs": "mini-ali-ui/es/tabs/index",
+    "tab-content": "mini-ali-ui/es/tabs/tab-content/index",
+    "search-bar": "mini-ali-ui/es/search-bar/index",
+    "popup": "mini-ali-ui/es/popup/index",
+    "collapse": "mini-ali-ui/es/collapse/index",
+    "collapse-item": "mini-ali-ui/es/collapse/collapse-item/index"
+  }
+}
\ No newline at end of file
diff --git a/components/orderTrial/orderTrial.acss b/components/orderTrial/orderTrial.acss
new file mode 100644
index 0000000..6d23162
--- /dev/null
+++ b/components/orderTrial/orderTrial.acss
@@ -0,0 +1,87 @@
+.order-trial{
+  width: 686rpx;
+  min-height: 140px;
+  background: #fff;
+  padding: 0 12px 12px;
+  box-sizing: border-box;
+  position: relative;
+  transform: translateY(-26px);
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+}
+.title-view{
+  width: 100%;
+  border-bottom:1px solid #EEEEEE; 
+}
+.title-order{
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  line-height: 50px;
+}
+.mation-view{
+  padding: 0 12px;
+}
+.amt-view{
+  display: flex;
+  justify-content: space-around;
+}
+.item-1{
+  font-size: 12px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+  text-align: center;
+  margin-bottom: 10px;
+}
+.text-1{
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  text-align: center;
+}
+.text-2{
+  font-size: 20px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  text-align: center;
+}
+.amt-item{
+  text-align: center;
+  padding: 16px 0;
+  position: relative;
+}
+.amt-item::after{
+  content: '';
+  width: 0;
+  height: 24px;
+  border: 1rpx solid #CCCCCC;
+  position: absolute;
+  right: 0;
+  top: 24px;
+}
+.amt-item:last-child::after{
+  content: '';
+  display: none;
+}
+.rate-item{
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 14px;
+}
+.rate-name{
+  font-size: 12px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+}
+.rate-number{
+  font-size: 12px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+}
\ No newline at end of file
diff --git a/components/orderTrial/orderTrial.axml b/components/orderTrial/orderTrial.axml
new file mode 100644
index 0000000..1cca065
--- /dev/null
+++ b/components/orderTrial/orderTrial.axml
@@ -0,0 +1,28 @@
+<view class="order-trial">
+    <view class="title-view">
+      <text class="title-order">{{title}}</text>
+    </view>
+    <view class="mation-view">
+      <view class="amt-view">
+        <view a:for="{{amtList}}" a:key="{{index}}" style="{{width:100/amtList.length+'%'}}" class="amt-item">
+          <view class="item-1">
+            {{item.name}}
+           </view>
+          <view class="item-2">
+            <text class="text-1">¥</text>
+            <text class="text-2">{{item.number}}</text>
+          </view>
+        </view>
+      </view>
+      <view class="rate-view">
+        <view class="rate-item" a:for="{{rateList}}" a:key="{{index}}">
+          <view class="rate-name">
+            {{item.name}}
+          </view>
+          <view class="rate-number">
+            {{item.rate}}%
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
\ No newline at end of file
diff --git a/components/orderTrial/orderTrial.js b/components/orderTrial/orderTrial.js
new file mode 100644
index 0000000..88d06e5
--- /dev/null
+++ b/components/orderTrial/orderTrial.js
@@ -0,0 +1,14 @@
+Component({
+  mixins: [],
+  data: {},
+  props: {
+    title:"",
+    amtList:[],
+    rateList:[],
+    isLast:""
+  },
+  didMount() {},
+  didUpdate() {},
+  didUnmount() {},
+  methods: {},
+});
diff --git a/components/orderTrial/orderTrial.json b/components/orderTrial/orderTrial.json
new file mode 100644
index 0000000..32640e0
--- /dev/null
+++ b/components/orderTrial/orderTrial.json
@@ -0,0 +1,3 @@
+{
+  "component": true
+}
\ No newline at end of file
diff --git a/mini.project.json b/mini.project.json
new file mode 100644
index 0000000..37b4002
--- /dev/null
+++ b/mini.project.json
@@ -0,0 +1,3 @@
+{
+  "component2": true
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..a1e2583
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,307 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "@babel/runtime": {
+      "version": "7.12.5",
+      "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604441331796&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz",
+      "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=",
+      "requires": {
+        "regenerator-runtime": "^0.13.4"
+      }
+    },
+    "ansi-regex": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
+      "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1606792382140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+      "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "base64-js": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz",
+      "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo="
+    },
+    "buffer": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.7.1.tgz?cache=0&sync_timestamp=1606098078312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.7.1.tgz",
+      "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=",
+      "requires": {
+        "base64-js": "^1.3.1",
+        "ieee754": "^1.1.13"
+      }
+    },
+    "buffer-alloc": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz",
+      "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=",
+      "requires": {
+        "buffer-alloc-unsafe": "^1.1.0",
+        "buffer-fill": "^1.0.0"
+      }
+    },
+    "buffer-alloc-unsafe": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz",
+      "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA="
+    },
+    "buffer-fill": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz",
+      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
+      "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8="
+    },
+    "camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921882890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
+      "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA="
+    },
+    "charenc": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz",
+      "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
+    },
+    "cliui": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz",
+      "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
+      "requires": {
+        "string-width": "^3.1.0",
+        "strip-ansi": "^5.2.0",
+        "wrap-ansi": "^5.1.0"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+      "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+    },
+    "crypt": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz",
+      "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+    },
+    "dijkstrajs": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/dijkstrajs/download/dijkstrajs-1.0.1.tgz",
+      "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs="
+    },
+    "emoji-regex": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1603212263242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
+      "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY="
+    },
+    "find-up": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
+      "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+      "requires": {
+        "locate-path": "^3.0.0"
+      }
+    },
+    "get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz",
+      "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34="
+    },
+    "ieee754": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838235461&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz",
+      "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I="
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429876103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz",
+      "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
+    },
+    "is-fullwidth-code-point": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+    },
+    "isarray": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.5.tgz",
+      "integrity": "sha1-ivHkwSISRMxiRZ+vOJQNTmRKVyM="
+    },
+    "locate-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+      "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+      "requires": {
+        "p-locate": "^3.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "md5": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/md5/download/md5-2.3.0.tgz",
+      "integrity": "sha1-w9qaaq46MLRreww0m4exENw72k8=",
+      "requires": {
+        "charenc": "0.0.2",
+        "crypt": "0.0.2",
+        "is-buffer": "~1.1.6"
+      }
+    },
+    "mini-ali-ui": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npm.taobao.org/mini-ali-ui/download/mini-ali-ui-1.2.1.tgz",
+      "integrity": "sha1-8Ky1gYSn7UcNd9GZ/SX2WubYmFk=",
+      "requires": {
+        "@babel/runtime": "^7.11.2"
+      }
+    },
+    "p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
+      "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+      "requires": {
+        "p-try": "^2.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz",
+      "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+      "requires": {
+        "p-limit": "^2.0.0"
+      }
+    },
+    "p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+      "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+    },
+    "pngjs": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npm.taobao.org/pngjs/download/pngjs-3.4.0.tgz",
+      "integrity": "sha1-mcp9clll+2VYFOr2XzjxK72/VV8="
+    },
+    "qrcode": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npm.taobao.org/qrcode/download/qrcode-1.4.4.tgz",
+      "integrity": "sha1-8MQ1aKfnUQpV78O4jZYC9xlj6oM=",
+      "requires": {
+        "buffer": "^5.4.3",
+        "buffer-alloc": "^1.2.0",
+        "buffer-from": "^1.1.1",
+        "dijkstrajs": "^1.0.1",
+        "isarray": "^2.0.1",
+        "pngjs": "^3.3.0",
+        "yargs": "^13.2.4"
+      }
+    },
+    "regenerator-runtime": {
+      "version": "0.13.7",
+      "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz",
+      "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U="
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+    },
+    "require-main-filename": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz",
+      "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs="
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+    },
+    "string-width": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
+      "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+      "requires": {
+        "emoji-regex": "^7.0.1",
+        "is-fullwidth-code-point": "^2.0.0",
+        "strip-ansi": "^5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz",
+      "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+      "requires": {
+        "ansi-regex": "^4.1.0"
+      }
+    },
+    "which-module": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+    },
+    "wrap-ansi": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
+      "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
+      "requires": {
+        "ansi-styles": "^3.2.0",
+        "string-width": "^3.0.0",
+        "strip-ansi": "^5.0.0"
+      }
+    },
+    "y18n": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.1.tgz?cache=0&sync_timestamp=1606778347159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.1.tgz",
+      "integrity": "sha1-jbK4PDHF11CZu4kLI/MJSJHiR9Q="
+    },
+    "yargs": {
+      "version": "13.3.2",
+      "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1607207965285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
+      "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
+      "requires": {
+        "cliui": "^5.0.0",
+        "find-up": "^3.0.0",
+        "get-caller-file": "^2.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^2.0.0",
+        "set-blocking": "^2.0.0",
+        "string-width": "^3.0.0",
+        "which-module": "^2.0.0",
+        "y18n": "^4.0.0",
+        "yargs-parser": "^13.1.2"
+      }
+    },
+    "yargs-parser": {
+      "version": "13.1.2",
+      "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1604886694625&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
+      "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
+      "requires": {
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
+      }
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..62975cf
--- /dev/null
+++ b/package.json
@@ -0,0 +1,7 @@
+{
+  "dependencies": {
+    "md5": "^2.3.0",
+    "mini-ali-ui": "^1.2.1",
+    "qrcode": "^1.4.4"
+  }
+}
diff --git a/pages/businessData/businessData.acss b/pages/businessData/businessData.acss
new file mode 100644
index 0000000..1c164c7
--- /dev/null
+++ b/pages/businessData/businessData.acss
@@ -0,0 +1,174 @@
+.order-page {
+  min-height: 100vh;
+  background-color: #fafafa;
+}
+
+.tab-item {
+  box-sizing: border-box;
+  width: 686rpx;
+  margin: auto;
+  background: #fafafa;
+}
+
+.search-box {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding-top: 16px;
+}
+
+.filer {
+  display: flex;
+  align-items: center;
+}
+
+.filer-tit {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  text-decoration: underline;
+  color: #333333;
+}
+
+.am-search {
+  padding-left: 0;
+}
+
+.am-search-input {
+  width: 536rpx;
+  border-radius: 18px;
+}
+
+.am-tabs-pane-wrap {
+  background: #fafafa;
+}
+
+.show-date {
+  width: 686rpx;
+  height: 80px;
+  border-radius: 8px;
+  margin-top: 12px;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  margin-bottom: 4px;
+}
+
+.data-left, .data-right {
+  width: 50%;
+  text-align: center;
+  color: #fff
+}
+
+.tit {
+  font-size: 12px;
+  margin-bottom: 10px;
+}
+
+.data-left {
+  position: relative;
+}
+
+.data-left::after {
+  content: '';
+  width: 0;
+  height: 24px;
+  border: 1rpx solid #fff;
+  position: absolute;
+  right: 0;
+  top: 15px;
+}
+
+.tab-content {
+  width: 686rpx;
+  height: 157px;
+  background: #FFFFFF;
+  box-shadow: 0px 0px 7px 0px rgba(26, 26, 209, 0.02);
+  border-radius: 4px;
+  margin-top: 8px;
+  box-sizing: border-box;
+  padding: 0 16px;
+}
+
+.content-top {
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  box-sizing: border-box;
+  padding: 16px 0 13px;
+  border-bottom: 1px solid #EEEEEE;
+}
+
+.name-box {
+  display: flex;
+  align-items: center;
+  text-align: left;
+  width: 50%;
+}
+
+.status-box {
+  text-align: right;
+  width: 50%;
+}
+
+.content-bottom {
+  padding-top: 16px;
+}
+
+.line-one {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 12px;
+}
+
+.tit-cont {
+  color: #8E8D99;
+  font-size: 14px;
+}
+
+.cont {
+  color: #333;
+  font-size: 14px;
+}
+
+.tab-content-shsk {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  width: 686rpx;
+  height: 65px;
+  background: #FFFFFF;
+  box-shadow: 0px 0px 7px 0px rgba(26, 26, 209, 0.02);
+  border-radius: 4px;
+  padding: 0 16px;
+  box-sizing: border-box;
+  margin-top: 8px;
+}
+
+.time-shsk {
+  font-size: 12px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #999999;
+}
+
+.no-data{
+  height: 70vh;
+  background:#fafafa;
+  text-align: center;
+  padding-top: 81px;
+  box-sizing: border-box;
+}
+
+.no-data-img{
+  width: 128px;
+  height: 118px;
+}
+
+.no-data-text{
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+  margin-top: 20px;
+}
\ No newline at end of file
diff --git a/pages/businessData/businessData.axml b/pages/businessData/businessData.axml
new file mode 100644
index 0000000..9f31cbe
--- /dev/null
+++ b/pages/businessData/businessData.axml
@@ -0,0 +1,128 @@
+<view class="order-page">
+  <tabs tabs="{{tabs2}}" tabsName="activeTab2" onChange="test" onTabClick="handleTabClick" activeTab="{{activeTab2}}" capsule="{{false}}" tabBarUnderlineWidth="20px">
+    <block a:for="{{tabs2}}">
+      <tab-content key="{{index}}" tabId="{{index}}" activeTab="{{activeTab2}}" a:if="{{index === 0}}">
+        <view class="tab-item">
+          <view class="search-box">
+            <search-bar value="{{value}}" borderColor="#EDEDF2" onSubmit="searchMation" onInput="onhandInput" focus="{{false}}" maxLength="{{20}}" showCancelButton="{{false}}" placeholder="请输入用户名称" />
+            <view class="filer">
+              <text class="iconfont iconshaixuan" style="font-size:20px"></text>
+              <text class="filer-tit" onTap="showFilter">筛选</text>
+            </view>
+          </view>
+          <view class="show-date" style="{{background:userStyle.gradientColor}}">
+            <view class="data-left">
+              <view class="tit">
+                分期本金
+              </view>
+              <view class="number">
+                <text style="font-size:14px">¥</text>
+                <text style="font-size:20px">{{amt}}</text>
+              </view>
+            </view>
+            <view class="data-right">
+              <view class="tit">
+                交易单数
+              </view>
+              <view class="number" style="font-size:20px">
+                {{num}}
+              </view>
+            </view>
+          </view>
+          <scroll-view a:if="{{list.length > 0}}" scroll-y="{{true}}" scroll-with-animation="{{true}}" style="height: 70vh;background:#fafafa" onScrollToLower="lower" scroll-top="{{0}}">
+            <view class="tab-content" a:for="{{list}}" a:key="{{index}}" onTap="goDetail" data-orderId="{{item.orderId}}">
+              <view class="content-top">
+                <view class="name-box">
+                  <text class="iconfont iconkehuxingming" style="{{color:userStyle.defaultColor,'font-size':'20px','margin-right':'8px'}}"></text>
+                  <view>{{item.userName}}</view>
+                </view>
+                <view class="status-box">
+                  <view style="{{color:item.status==0?'#FF9900':'#999','font-size':'13px','margin-bottom':'8px'}}">{{item.statusStr}}</view>
+                  <view>
+                    <text style="font-size:14px">¥</text>
+                    <text style="font-size:18px">{{item.settAmt}}</text>
+                  </view>
+                </view>
+              </view>
+              <view class="content-bottom">
+                <view class="line-one">
+                  <view>
+                    <text class="tit-cont">分期期数:</text>
+                    <text class="cont">{{item.insTerm}}期</text>
+                  </view>
+                  <view>
+                    <text class="tit-cont">付息方式:</text>
+                    <text class="cont">{{item.prodName}}</text>
+                  </view>
+                </view>
+                <view class="line-two">
+                  <view>
+                    <text class="tit-cont">创建时间:</text>
+                    <text class="cont">{{item.creTime}}</text>
+                  </view>
+                </view>
+              </view>
+            </view>
+          </scroll-view>
+          <view a:else class="no-data">
+              <cover-image src="../../static/nodata.png" class="no-data-img"/>
+              <view class="no-data-text">暂无数据</view>
+          </view>
+        </view>
+      </tab-content>
+      <tab-content key="{{index}}" tabId="{{index}}" activeTab="{{activeTab2}}" a:elif="{{index === 1}}">
+        <view class="tab-item">
+          <view class="search-box">
+            <search-bar value="{{value}}" borderColor="#EDEDF2" onSubmit="searchMation" onInput="onhandInput" focus="{{false}}" maxLength="{{20}}" showCancelButton="{{false}}" placeholder="请输入用户名称" />
+            <view class="filer">
+              <text class="iconfont iconshaixuan" style="font-size:20px"></text>
+              <text class="filer-tit" onTap="showFilter">筛选</text>
+            </view>
+          </view>
+          <view class="show-date" style="{{background:userStyle.gradientColor}}">
+            <view class="data-left">
+              <view class="tit">
+                分期金额
+              </view>
+              <view class="number">
+                <text style="font-size:14px">¥</text>
+                <text style="font-size:20px">{{amt}}</text>
+              </view>
+            </view>
+            <view class="data-right">
+              <view class="tit">
+                交易单数
+              </view>
+              <view class="number" style="font-size:20px">
+                {{num}}
+              </view>
+            </view>
+          </view>
+          <scroll-view scroll-y="{{true}}" scroll-with-animation="{{true}}" style="height: 70vh;background:#fafafa" onScrollToLower="lower" scroll-top="{{0}}">
+            <view a:if="{{list.length > 0}}">
+              <view class="tab-content-shsk" a:for="{{list}}" a:key="{{index}}" onTap="goDetail" data-orderId="{{item.orderId}}">
+                <view class="left">
+                  <view style="{{color:item.status==0?'#FF9900':'#999','font-size':'14px','margin-bottom':'10px'}}">
+                    {{item.statusStr}}
+                  </view>
+                  <view class="time-shsk">
+                    {{item.creTime}}
+                  </view>
+                </view>
+                <view class="right">
+                  <text style="color:#333;font-size:14px">¥</text>
+                  <text style="color:#333;font-size:18px">{{item.settAmt}}</text>
+                </view>
+              </view>
+            </view>
+            <view a:else class="no-data">
+                <cover-image src="../../static/nodata.png" class="no-data-img"/>
+                <view class="no-data-text">暂无数据</view>
+            </view>
+          </scroll-view>
+        </view>
+      </tab-content>
+    </block>
+  </tabs>
+</view>
+<my-filter showRight="{{showRight}}" onGetFilterInfo="onGetFilterInfo" onShowage="onShowage" termArr="{{activeTab2==0?termList:''}}" payTypeArr="{{activeTab2==0?prodList:''}}" orderStaArr="{{statusList}}" priceArr="{{activeTab2==0?priceArr:''}}" doPriceArr="{{activeTab2==0?'':priceArr}}" hasTime="{{true}}"></my-filter>
\ No newline at end of file
diff --git a/pages/businessData/businessData.js b/pages/businessData/businessData.js
new file mode 100644
index 0000000..dc291a4
--- /dev/null
+++ b/pages/businessData/businessData.js
@@ -0,0 +1,233 @@
+const app = getApp()
+let $api = require('../../utils/ajaxFn.js')
+const dateFmt = require('../../utils/date.js');
+Page({
+  data: {
+    isNomore: false,
+    amt: 0,
+    num: 0,
+    url: '/sib/xcx/order/hbListInit',//初始化接口地址为花呗
+    queryObj: {
+      prodType: 200015,//初始化产品为花呗
+    },
+    activeTab2: 0,
+    showRight: false,
+    userStyle: {},
+    value: '',//搜索框内容
+    zfbVersionList: [],//通道数组
+    termList: [],//期数数组
+    prodList: [],//付息方式数组
+    statusList: [],//状态数组
+    priceArr: [
+      {
+        name: '0~999',
+        code: 1
+      },
+      {
+        name: '1000~1999',
+        code: 2
+      },
+      {
+        name: '2000~4999',
+        code: 3
+      },
+      {
+        name: '5000及以上',
+        code: 4
+      }
+    ],//金额数组
+    tabs2: [
+      {
+        title: '花呗分期',
+        subTitle: '描述文案',
+      },
+      {
+        title: '商户收款',
+        subTitle: '描述文案',
+      }
+    ],//顶部产品数组
+    list: []
+  },
+  onLoad() {
+    this.setData({
+      userStyle: app.userStyle,
+    })
+  },
+  onShow() {
+    this.getFilter()
+    this.getList()
+  },
+  onHide() {
+    // 页面被关闭
+    this.setData({
+      showRight: false,
+      activeTab2: 0,
+      url: '/sib/xcx/order/hbListInit',
+      queryObj: { prodType: 200015 },
+    })
+  },
+  test({ index, tabsName }){
+    console.log(222333)
+    this.handleTabClick({ index, tabsName })
+  },
+  handleTabClick({ index, tabsName }) {
+    console.log({ index, tabsName })
+    this.setData({
+      [tabsName]: index,
+      isNomore: false,
+      value:''
+    });
+    if (index == 0) {
+      this.setData({
+        queryObj: { prodType: 200015 },
+        url: '/sib/xcx/order/hbListInit',
+        list:[]
+      })
+    } else if (index == 1) {
+      this.setData({
+        queryObj: { prodType: 200008 },
+        url: '/sib/xcx/order/dmfListInit',
+        list:[]
+      })
+    }
+    this.getList()
+    this.getFilter()
+  },
+  onhandInput(value){
+    this.setData({
+      value:value
+    })
+  },
+  // 搜索框事件
+  searchMation(value){
+    console.log(value)
+    let obj = this.data.queryObj
+    if(value){
+      obj.userName = value
+    }else{
+      obj.userName = ''
+      delete obj.userName
+    }
+    delete obj.limitOrderId
+    this.setData({
+      list: [],
+      isNomore: false,
+      queryObj:{
+        ...obj
+      },
+    })
+    this.getList()
+  },
+  getFilter() {
+    $api.ajax(
+      this.data.url,
+      'POST',
+      (res) => {
+        let body = res.data.body
+        if (this.data.activeTab2 == 0) {
+          this.setData({
+            zfbVersionList: body.zfbVersionList,
+            termList: body.termList,
+            prodList: body.prodList,
+            statusList: body.statusList
+          })
+        }
+        if (this.data.activeTab2 == 1) {
+          this.setData({
+            statusList: body.statusList
+          })
+        }
+
+      },
+      (err) => { },
+      true
+    )
+  },
+  // 获取列表
+  getList() {
+    $api.ajax(
+      '/sib/xcx/order/list',
+      'POST',
+      (res) => {
+        this.setData({
+          amt: res.data.body.amt,
+          num: res.data.body.num
+        })
+
+        if (res.data.body.items.length < 1) {
+          this.setData({
+            isNomore: true
+          })
+          my.showToast({
+            type: 'none',
+            content: '没有更多了',
+            duration: 2000,
+          });
+        } else {
+          res.data.body.items.forEach(e => {
+            e.creTime = dateFmt(e.creTime, 'YYYY-MM-DD HH:mm:ss')
+          })
+          this.setData({
+            list: [...this.data.list, ...res.data.body.items],
+            'queryObj.limitOrderId': res.data.body.items[res.data.body.items.length - 1].orderId
+          })
+        }
+
+
+      },
+      (err) => { },
+      true,
+      {
+        ...this.data.queryObj
+      }
+    )
+  },
+  // 滑动至底部处理
+  lower() {
+    if (!this.data.isNomore) {
+      this.getList()
+    }
+  },
+  // 查看详情
+  goDetail(e) {
+    let orderId = e.target.dataset.orderId
+    switch (this.data.activeTab2) {
+      case 0:
+        my.navigateTo({
+          url: `../order/hbfqOrder/hbfqOrder?orderId=${orderId}`
+        });
+        break;
+      case 1:
+        my.navigateTo({
+          url: `../order/shskOrder/shskOrder?orderId=${orderId}`
+        });
+        break;
+    }
+  },
+  // 展示弹出层
+  showFilter() {
+    this.setData({
+      showRight: true
+    })
+  },
+  // 自定义事件控制弹出层关闭
+  onShowage(data) {
+    this.setData({
+      showRight: data
+    });
+  },
+  // 自定义筛选事件
+  onGetFilterInfo(data) {
+   if(this.data.value){
+    var obj = { ...this.data.queryObj.prodType, ...data ,userName:this.data.value}
+   }else{
+    var obj = { ...this.data.queryObj.prodType, ...data }
+   }
+    this.setData({
+      list: [],
+      isNomore: false,
+      queryObj: { ...obj }
+    })
+    this.getList()
+  }
+});
\ No newline at end of file
diff --git a/pages/businessData/businessData.json b/pages/businessData/businessData.json
new file mode 100644
index 0000000..bfbdd86
--- /dev/null
+++ b/pages/businessData/businessData.json
@@ -0,0 +1,12 @@
+{
+  "defaultTitle": "业务数据",
+  "usingComponents": {
+    "tabs": "mini-ali-ui/es/tabs/index",
+    "tab-content": "mini-ali-ui/es/tabs/tab-content/index",
+    "search-bar": "mini-ali-ui/es/search-bar/index",
+    "popup": "mini-ali-ui/es/popup/index",
+    "collapse": "mini-ali-ui/es/collapse/index",
+    "collapse-item": "mini-ali-ui/es/collapse/collapse-item/index",
+    "my-filter":"/components/fitler/fitler"
+  }
+}
\ No newline at end of file
diff --git a/pages/changePassword/changePassword.acss b/pages/changePassword/changePassword.acss
new file mode 100644
index 0000000..819639f
--- /dev/null
+++ b/pages/changePassword/changePassword.acss
@@ -0,0 +1,29 @@
+.changePassword-page{
+  min-height: 100vh;
+  background: #fafafa;
+  padding-top: 12px;
+}
+.mation{
+  width:686rpx;
+  height: 150px;
+  background: #FFFFFF;
+  border-radius: 8px;
+  margin: auto;
+}
+.btn{
+  width: 640rpx;
+  color: #fff;
+  border: 0;
+  border-radius: 22px;
+  margin: auto;
+  margin-top: 60px;
+}
+.ipt-class {
+  text-align: right;
+}
+.label-class {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
\ No newline at end of file
diff --git a/pages/changePassword/changePassword.axml b/pages/changePassword/changePassword.axml
new file mode 100644
index 0000000..7b55e78
--- /dev/null
+++ b/pages/changePassword/changePassword.axml
@@ -0,0 +1,10 @@
+<view class="changePassword-page">
+  <view class="mation">
+    <input-item labelCls="label-class" inputCls="ipt-class" onInput="getOld" placeholder="请输入原密码">原密码</input-item>
+    <input-item labelCls="label-class" inputCls="ipt-class" onInput="getNem" password="{{true}}" placeholder="请输入新密码">新密码</input-item>
+    <input-item last="{{true}}" labelCls="label-class" inputCls="ipt-class" onInput="getNemTwo" password="{{true}}" placeholder="请再次输入新密码">确认密码</input-item>
+  </view>
+  <button onTap="save" style="{{background:userStyle.gradientColor}}" class="btn">
+  保存
+  </button>
+</view>
\ No newline at end of file
diff --git a/pages/changePassword/changePassword.js b/pages/changePassword/changePassword.js
new file mode 100644
index 0000000..dfd94ab
--- /dev/null
+++ b/pages/changePassword/changePassword.js
@@ -0,0 +1,58 @@
+let $api = require('../../utils/ajaxFn.js')
+let md5 = require('../../utils/md5.js')
+const app = getApp()
+Page({
+  data: {
+    userStyle:{},
+    newTwo:"",
+    info:{
+    	newPwd: "",
+    	oldPwd: ""
+    }
+  },
+  onLoad() {
+    this.setData({
+      userStyle:app.userStyle
+    })
+  },
+  getOld(e){
+    this.setData({
+      'info.oldPwd':md5.hex_md5(e.detail.value) 
+    })
+  },
+  getNem(e){
+    this.setData({
+      'info.newPwd':md5.hex_md5(e.detail.value) 
+    })
+  },
+  getNemTwo(e){
+    console.log(3)
+    this.setData({
+      newTwo: md5.hex_md5(e.detail.value)
+    })
+  },
+  save(){
+    console.log(this.data.newTwo,this.data.info)
+    if(this.data.newTwo != this.data.info.newPwd){
+      my.showToast({
+        content: '两次新密码不一致,请确认',
+        duration: 2000,
+      });
+      return
+    }
+    $api.ajax(
+      '/sib/user/updatePwd',
+      'POST',
+      (res)=>{
+
+      },
+      (err)=>{
+
+      },
+      true,
+      {
+        ...this.data.info
+      }
+    )
+  }
+});
diff --git a/pages/changePassword/changePassword.json b/pages/changePassword/changePassword.json
new file mode 100644
index 0000000..e830a81
--- /dev/null
+++ b/pages/changePassword/changePassword.json
@@ -0,0 +1,12 @@
+{
+  "defaultTitle": "修改密码",
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index",
+    "picker-item": "mini-ali-ui/es/picker-item/index",
+    "order-trial":"/components/orderTrial/orderTrial"
+  }
+}
\ No newline at end of file
diff --git a/pages/changeUser/changeUser.acss b/pages/changeUser/changeUser.acss
new file mode 100644
index 0000000..3b97a19
--- /dev/null
+++ b/pages/changeUser/changeUser.acss
@@ -0,0 +1,84 @@
+.change-user-page {
+  min-height: 100vh;
+  background: #fafafa;
+  box-sizing: border-box;
+  padding: 24px 0 32px;
+}
+
+.list {
+  width: 686rpx;
+  margin: auto;
+  min-height: 80vh;
+}
+
+.list-item {
+  margin-bottom: 20px;
+}
+
+.title {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #999999;
+  margin-bottom: 10px;
+}
+
+.store {
+  width: 100%;
+  background: #fff;
+  box-sizing: border-box;
+  padding: 0 12px;
+}
+
+.store-item {
+  height: 72px;
+  width: 100%;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  border-bottom: 1px solid #EEEEEE;
+}
+
+.left-top {
+  margin-bottom: 12px;
+}
+
+.name-text {
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+  margin-left: 9px;
+}
+
+.store-item:last-child {
+  border: 0;
+}
+
+.radio-box {
+  width: 20px;
+  height: 20px;
+  border-radius: 50%;
+  border: 1px #CCCCCC solid;
+}
+
+.active {
+  width: 20px;
+  height: 20px;
+  border-radius: 50%;
+  border: 1px #1677FF solid;
+}
+.btn-box{
+  width: 100%;
+  text-align: center;
+  padding-top: 30px;
+}
+.btn {
+  width: 640rpx;
+  height: 44px;
+  line-height: 44px;
+  color: #fff;
+  border-radius: 22px;
+  border: 0;
+  margin: auto;
+}
\ No newline at end of file
diff --git a/pages/changeUser/changeUser.axml b/pages/changeUser/changeUser.axml
new file mode 100644
index 0000000..37d649e
--- /dev/null
+++ b/pages/changeUser/changeUser.axml
@@ -0,0 +1,36 @@
+<view class="change-user-page">
+  <view class="list">
+    <radio-group class="radio-group" name="lib" onChange="radioChange">
+      <view class="list-item" a:for="{{merchantList}}" a:key="{{index}}">
+        <view class="title">
+        {{item.merName}}
+        </view>
+        <view class="store">
+          <view class="store-item" a:for="{{item.storeList}}" a:key="{{index}}">
+            <view class="left">
+              <view class="left-top">
+                <text class="iconfont iconstore" style="font-size: 16px"></text>
+                <text class="name-text">{{item.orgName}}</text>
+              </view>
+              <view class="left-bottom">
+                <text class="iconfont iconuser" style="font-size: 16px"></text>
+                <text class="name-text">{{item.name}}</text>
+              </view>
+            </view>
+            <view class="right">
+              <view class="{{item.id==value?'active':'radio-box'}}">
+                <am-radio value="{{item.id}}" checked="{{item.id==value?true:false}}"/>
+              </view>
+            </view>
+          </view>
+        </view>
+      </view>
+    </radio-group>
+  </view>
+  <view class="btn-box">
+    <button class="btn" style="{{background:userStyle.gradientColor}}" onTap="loginUser">
+    切换
+    </button>
+  </view>
+  
+</view>
\ No newline at end of file
diff --git a/pages/changeUser/changeUser.js b/pages/changeUser/changeUser.js
new file mode 100644
index 0000000..ffea451
--- /dev/null
+++ b/pages/changeUser/changeUser.js
@@ -0,0 +1,59 @@
+let $api = require('../../utils/ajaxFn.js');
+const app = getApp()
+Page({
+  data: {
+    value: '',
+    merchantList: [],//商户列表
+  },
+  onLoad() {
+    this.setData({
+      userStyle: app.userStyle
+    })
+    $api.ajax(
+      '/sib/xcx/login/getUserMgrInfo',
+      'POST',
+      (res) => {
+        this.setData({
+          merchantList: res.data.body.merchantList
+        })
+        this.data.merchantList.forEach(element => {
+          element.storeList.forEach(e => {
+            if (e.id == app.lastLoginMgrId) {
+              this.setData({
+                value: e.id
+              })
+            }
+          })
+        });
+      },
+      (err) => {
+
+      },
+      true
+    )
+
+  },
+  radioChange(value) {
+    this.setData({
+      value: value.detail.value
+    })
+  },
+  loginUser() {
+    $api.ajax(
+      '/sib/xcx/login/mgrLogin',
+      'POST',
+      (res) => {
+        app.userInfo = res.data.body
+        app.lastLoginMgrId = res.data.body.id
+        my.reLaunch ({
+          url: '/pages/home/home'
+        });
+      },
+      err => {},
+      true,
+      {
+        mgrId: this.data.value
+      }
+    )
+  }
+});
diff --git a/pages/changeUser/changeUser.json b/pages/changeUser/changeUser.json
new file mode 100644
index 0000000..6cd5329
--- /dev/null
+++ b/pages/changeUser/changeUser.json
@@ -0,0 +1,8 @@
+{
+ "defaultTitle": "切换身份",
+ "usingComponents": {
+   "am-radio": "mini-ali-ui/es/am-radio/index",
+   "list": "mini-ali-ui/es/list/index",
+   "list-item": "mini-ali-ui/es/list/list-item/index"
+ }
+}
\ No newline at end of file
diff --git a/pages/forgetPassword/forgetPassword.acss b/pages/forgetPassword/forgetPassword.acss
new file mode 100644
index 0000000..62e5588
--- /dev/null
+++ b/pages/forgetPassword/forgetPassword.acss
@@ -0,0 +1,24 @@
+.forgetpass-view{
+  width: 90%;
+  margin: auto;
+  padding-top: 100rpx;
+}
+.iconfont{
+  font-size: 40rpx;
+}
+.label{
+  min-width: 60rpx;
+}
+.login-btn{
+  width: 90%;
+  margin: 80rpx 5%;
+  border-radius: 50px;
+  border: 0;
+  outline: none;
+}
+.code-label{
+  display: none;
+}
+.code-ipt{
+  width: 70%;
+}
\ No newline at end of file
diff --git a/pages/forgetPassword/forgetPassword.axml b/pages/forgetPassword/forgetPassword.axml
new file mode 100644
index 0000000..e2221ad
--- /dev/null
+++ b/pages/forgetPassword/forgetPassword.axml
@@ -0,0 +1,13 @@
+<view>
+  <view class="forgetpass-view">
+    <input-item type="number" labelCls="phone-label label" className="phone-ipt" maxlength="11" data-code="{{1}}" onInput="oninput" placeholder="请输入手机号" clear="{{true}}">
+    </input-item>
+    <verify-code maxlength="4" last="{{false}}" label="{{''}}" inputCls="code-ipt" labelCls="code-label" countDown="{{60}}" initActive="{{false}}" onSend="onSend" onInput="inputVerCode" value="{{info.verCode}}">
+    </verify-code>
+    <input-item  type="text" labelCls="password-label label" className="password-ipt" maxlength="12" data-code="{{2}}" onInput="oninput" password="{{true}}" placeholder="请输入新密码" clear="{{true}}">
+    </input-item>
+    <input-item  type="text" labelCls="respassword-label label" className="password-ipt" maxlength="12" data-code="{{3}}" onInput="oninput" password="{{true}}" placeholder="请再次输入密码" clear="{{true}}">
+    </input-item>
+  </view>
+  <button type="primary" onTap="save" class="login-btn" style="{{background:userStyle.gradientColor}}">提交并登录</button>
+</view>
\ No newline at end of file
diff --git a/pages/forgetPassword/forgetPassword.js b/pages/forgetPassword/forgetPassword.js
new file mode 100644
index 0000000..17c41b4
--- /dev/null
+++ b/pages/forgetPassword/forgetPassword.js
@@ -0,0 +1,110 @@
+let $api = require('../../utils/ajaxFn.js')
+let md5 = require('../../utils/md5.js')
+Page({
+  data: {
+    userStyle:{},//用户样式
+    info:{}
+  },
+  onLoad() {
+    var app = getApp()
+    this.setData({
+      userStyle:app.userStyle
+    })
+  },
+  onSend(){
+    if(!this.data.info.mblNo){
+      my.showToast({
+        content: '请输入电话号码',
+        duration: 2000
+      });
+      return 
+    }
+    $api.ajax(
+      '/sib/user/sendMsg',
+      'POST',
+      (res)=>{
+        
+      },
+      (err)=>{
+
+      },
+      false,
+      {
+        mblNo:this.data.info.mblNo,
+        verCodeType:0
+      }
+    )
+  },
+  inputVerCode(e){
+    console.log(e)
+    this.setData({
+      'info.verCode':e.detail.value
+    })
+  },
+  oninput(e){
+    let code = e.target.dataset.code
+    if(code == 1){
+      this.setData({
+        'info.mblNo':e.detail.value
+      })
+    }else if(code == 2){
+      this.setData({
+        'info.newPwd':md5.hex_md5(e.detail.value) 
+      })
+    }else{
+      this.setData({
+        newPwdTwo: md5.hex_md5(e.detail.value)
+      })
+    }
+  },
+  save(){
+    if(!this.data.info.mblNo){
+      my.showToast({
+        content: '请输入电话号码',
+        duration: 2000
+      })
+      return
+    }
+    if(!this.data.info.verCode){
+      my.showToast({
+        content: '请输入验证码',
+        duration: 2000
+      })
+      return
+    }
+    if(!this.data.info.newPwd){
+      my.showToast({
+        content: '请输入新密码',
+        duration: 2000
+      })
+      return
+    }
+    if(this.data.info.newPwd != this.data.newPwdTwo){
+      my.showToast({
+        content: '两次密码不一致请确认',
+        duration: 2000
+      })
+      return
+    }
+    $api.ajax(
+      '/sib/user/forgetPwd',
+      'POST',
+      res=>{
+        my.showToast({
+          content: '修改成功',
+          duration: 3000,
+          success:()=>{
+            my.navigateTo({
+              url: '/pages/index/index'
+            });
+          }
+        })
+      },
+      err=>{},
+      false,
+      {
+        ...this.data.info
+      }
+    )
+  }
+});
diff --git a/pages/forgetPassword/forgetPassword.json b/pages/forgetPassword/forgetPassword.json
new file mode 100644
index 0000000..1129028
--- /dev/null
+++ b/pages/forgetPassword/forgetPassword.json
@@ -0,0 +1,10 @@
+{
+  "defaultTitle": "忘记密码",
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index"
+  }
+}
\ No newline at end of file
diff --git a/pages/hbfqPage/orderInfo/orderInfo.acss b/pages/hbfqPage/orderInfo/orderInfo.acss
new file mode 100644
index 0000000..797d5c4
--- /dev/null
+++ b/pages/hbfqPage/orderInfo/orderInfo.acss
@@ -0,0 +1,93 @@
+.back-pic {
+  width: 100%;
+  height: 100%;
+}
+
+.order-info-page {
+  min-height: 100vh;
+  background: #FAFAFC;
+  padding-bottom: 26px;
+}
+
+.top {
+  width: 100%;
+  height: 100px;
+}
+
+.title {
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  padding-left: 12px;
+  line-height: 36px;
+}
+
+.ipt-class {
+  text-align: left;
+}
+
+.pick-class {
+  text-align: right;
+}
+
+.fenqi-info-view {
+  width: 686rpx;
+  height: 300px;
+  background: #fff;
+  padding: 18px 0 0;
+  box-sizing: border-box;
+  position: relative;
+  transform: translateY(-50px);
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+}
+
+.label-class {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
+
+.user-info-view {
+  width: 686rpx;
+  height: 155px;
+  background: #fff;
+  padding: 18px 0 0;
+  box-sizing: border-box;
+  position: relative;
+  transform: translateY(-38px);
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+}
+
+.btn-view {
+  width: 686rpx;
+  margin: auto;
+  display: flex;
+  justify-content: space-between;
+}
+
+.to-qrcode {
+  width: 320rpx;
+  height: 44px;
+  background: #FFFFFF;
+  border: 1px solid #8C4EF5;
+  border-radius: 22px;
+  line-height: 44px;
+  color: #8C4EF5;
+}
+
+.get-qrcode {
+  width: 320rpx; 
+  height: 44px;
+  border-radius: 22px;
+  border: 0;
+  color:#fff;
+  line-height: 44px;
+}
+
+
diff --git a/pages/hbfqPage/orderInfo/orderInfo.axml b/pages/hbfqPage/orderInfo/orderInfo.axml
new file mode 100644
index 0000000..db05c98
--- /dev/null
+++ b/pages/hbfqPage/orderInfo/orderInfo.axml
@@ -0,0 +1,45 @@
+<view class="order-info-page">
+  <view class="top" style="{{background:userStyle.gradientColor}}">
+    <cover-image src="../../static/img/backpic.png" class="back-pic"></cover-image>
+  </view>
+  <view class="fenqi-info-view">
+    <text class="title">分期信息</text>
+    <input-item labelCls="label-class" value="{{info.amt}}" data-code="{{1}}" onInput="confirm" inputCls="ipt-class" placeholder="请输入分期本金">分期本金</input-item>
+    <input-item labelCls="label-class" value="{{info.goodsName}}" data-code="{{2}}" onInput="confirm" inputCls="ipt-class" placeholder="请输入商品名称">商品名称</input-item>
+    <picker title="选择付息方式" onChange="bindObjPickerChangeProd" value="{{arrIndex}}" range="{{prodsList}}" range-key="name">
+      <view>
+        <input-item labelCls="label-class" value="{{prodName}}" disabled="{{true}}" inputCls="ipt-class" placeholder="请选择付息方式">
+          付息方式
+          <view slot="extra" class="iconfont iconarrow-right" style="font-size:20px;color:#CCCCCC"></view>
+        </input-item>
+      </view>
+    </picker>
+    <picker title="选择办单通道" onChange="bindObjPickerChangeVer" value="{{arrIndex}}" range="{{zfbVersionsList}}" range-key="name">
+      <view>
+        <input-item labelCls="label-class" value="{{zfbVersionName}}" disabled="{{true}}" inputCls="ipt-class" placeholder="请选择办单通道">
+          办单通道
+          <view slot="extra" class="iconfont iconarrow-right" style="font-size:20px;color:#CCCCCC"></view>
+        </input-item>
+      </view>
+    </picker>
+    <picker title="选择分期期数" onChange="bindObjPickerChangeTerm" value="{{arrIndex}}" range="{{termsList}}" range-key="name">
+      <view>
+        <input-item labelCls="label-class" value="{{termName}}" last="{{true}}" disabled="{{true}}" inputCls="ipt-class" placeholder="请选择分期期数">
+          分期期数
+          <view slot="extra" class="iconfont iconarrow-right" style="font-size:20px;color:#CCCCCC"></view>
+        </input-item>
+      </view>
+    </picker>
+  </view>
+  <view class="user-info-view">
+    <text class="title">用户信息</text>
+    <input-item labelCls="label-class" inputCls="ipt-class" data-code="{{3}}" onInput="confirm" placeholder="请输入客户姓名">客户姓名</input-item>
+    <input-item last="{{true}}" labelCls="label-class" inputCls="ipt-class" data-code="{{4}}" onInput="confirm" maxlength="{{11}}" placeholder="请输入客户手机号">客户手机号</input-item>
+  </view>
+  <!-- 订单试算展示组件 -->
+  <order-trial title="订单试算" amtList="{{amtList}}" rateList="{{rateList}}"></order-trial>
+  <view class="btn-view">
+    <button size="default" onTap="toQRCode" type="gohost" class="to-qrcode" style="{{color:userStyle.defaultColor,border:`${userStyle.defaultColor} solid 1px`}}">扫描付款码</button>
+    <button size="default" onTap="getQRCode" type="primary" class="get-qrcode" style="{{background:userStyle.gradientColor}}">生成二维码</button>
+  </view>
+</view>
\ No newline at end of file
diff --git a/pages/hbfqPage/orderInfo/orderInfo.js b/pages/hbfqPage/orderInfo/orderInfo.js
new file mode 100644
index 0000000..7ef328b
--- /dev/null
+++ b/pages/hbfqPage/orderInfo/orderInfo.js
@@ -0,0 +1,206 @@
+
+const app = getApp()
+let $api = require('../../../utils/ajaxFn.js')
+Page({
+  data: {
+    isBoss: true,
+    userStyle: {},
+    prodsList: [],
+    prodName: '',
+    termName: '',
+    verName: '',
+    info: {
+      prodId: '',
+    },
+    amtList: [
+      { name: '商家到账', number: 0 },
+      { name: '客户还款总额', number: 0 },
+      { name: '客户月还款额', number: 0 }
+    ],
+    rateList: [
+      { name: '智享服务费率', rate: 0 },
+      { name: '花呗利率', rate: 0 },
+      { name: '支付利率', rate: 0 }
+    ],
+  },
+  onLoad() {
+    this.setData({
+      userStyle: app.userStyle
+    })
+    this.getList()
+  },
+  getList(obj) {
+    $api.ajax(
+      '/sib/xcx/order/hbCreateInit',
+      'POST',
+      (res) => {
+        this.setData({
+          prodsList: res.data.body.prods,
+          termsList: res.data.body.terms,
+          zfbVersionsList: res.data.body.zfbVersions
+        })
+      },
+      (err) => { },
+      true,
+      { ...obj }
+    )
+  },
+  orderhbTrial() {
+    $api.ajax(
+      '/sib/xcx/order/hbTrial',
+      'POST',
+      (res) => {
+        let body = res.data.body
+        this.setData({
+          amtList: [{ name: '商家到账', number: body.merAmt }, { name: '客户还款总额', number: body.repayAmt }, { name: '客户月还款额', number: body.monthAmt }],
+          rateList: [
+            { name: '智享服务费率', rate: body.platRate },
+            { name: '花呗利率', rate: body.zfbRate },
+            { name: '支付利率', rate: body.payRate }]
+        })
+      },
+      (err) => { },
+      true,
+      {
+        amt: this.data.info.amt,
+        prodId: this.data.info.prodId,
+        term: this.data.info.term,
+        zfbVersion: this.data.info.zfbVersion
+      }
+    )
+  },
+  confirm(e) {
+    let code = e.target.dataset.code,
+      value = e.detail.value,
+      obj = {};
+    if (code == 1) {
+      obj.amt = value
+    } else if (code == 2) {
+      obj.goodsName = value
+    } else if (code == 3) {
+      obj.userName = value
+    } else {
+      obj.userMblNo = value
+    }
+    this.setData({
+      info: { ...this.data.info, ...obj }
+    })
+    if (code == 1) {
+      if (!this.data.info.amt || !this.data.info.prodId || !this.data.info.term || !this.data.info.zfbVersion) {
+        this.setData({
+          isBoss: false
+        })
+      }
+      if (this.data.isBoss) {
+        this.orderhbTrial()
+      }
+    }
+
+  },
+  bindObjPickerChangeProd(e) {
+
+    this.setData({
+      prodName: this.data.prodsList[e.detail.value].name,
+      'info.prodId': this.data.prodsList[e.detail.value].code
+    })
+    this.getList({ prodId: this.data.info.prodId })
+    console.log(this.data.info.amt, this.data.info.prodId, this.data.info.term, this.data.info.zfbVersion)
+    if (!this.data.info.amt || !this.data.info.prodId || !this.data.info.term || !this.data.info.zfbVersion) {
+      this.setData({
+        isBoss: false
+      })
+    } else {
+      this.setData({
+        isBoss: true
+      })
+    }
+    if (this.data.isBoss) {
+      this.orderhbTrial()
+    }
+  },
+  bindObjPickerChangeTerm(e) {
+    this.setData({
+      termName: this.data.termsList[e.detail.value].name,
+      'info.term': this.data.termsList[e.detail.value].code
+    })
+    console.log(this.data.info.amt, this.data.info.prodId, this.data.info.term, this.data.info.zfbVersion)
+    if (!this.data.info.amt || !this.data.info.prodId || !this.data.info.term || !this.data.info.zfbVersion) {
+      this.setData({
+        isBoss: false
+      })
+    } else {
+      this.setData({
+        isBoss: true
+      })
+    }
+    if (this.data.isBoss) {
+      this.orderhbTrial()
+    }
+  },
+  bindObjPickerChangeVer(e) {
+    this.setData({
+      zfbVersionName: this.data.zfbVersionsList[e.detail.value].name,
+      'info.zfbVersion': this.data.zfbVersionsList[e.detail.value].code
+    })
+    console.log(this.data.info.amt, this.data.info.prodId, this.data.info.term, this.data.info.zfbVersion)
+    this.getList({ prodId: this.data.info.prodId, zfbVersion: this.data.info.zfbVersion })
+    if (!this.data.info.amt || !this.data.info.prodId || !this.data.info.term || !this.data.info.zfbVersion) {
+      this.setData({
+        isBoss: false
+      })
+    } else {
+      this.setData({
+        isBoss: true
+      })
+    }
+    if (this.data.isBoss) {
+      this.orderhbTrial()
+    }
+  },
+  toQRCode() {
+    this.setData({
+      'info.payType': 2
+    })
+    my.scan({
+      scanType: ['qrCode', 'barCode'],
+      success: (res) => {
+        console.log(res)
+        $api.ajax(
+          '/sib/xcx/order/createHb',
+          'POST',
+          (res) => {
+            my.reLaunch({
+              url: `/pages/order/hbfqOrder/hbfqOrder?orderId=${res.data.body.orderId}`,
+            })
+          },
+          (err) => { },
+          true,
+          {
+            ...this.data.info,
+            authCode: res.resultStr
+          }
+        )
+      },
+    });
+  },
+  getQRCode() {
+    this.setData({
+      'info.payType': 1
+    })
+    for (let key in this.data.info) {
+      if (!this.data.info[key]) {
+        my.showToast({
+          type: 'none',
+          content: '请完整输入信息',
+          duration: 2000,
+        });
+        return
+      }
+    }
+    console.log(2)
+    let str = JSON.stringify(this.data.info)
+    my.navigateTo({
+      url: `../qrCode/qrCode?info=${str}`
+    });
+  }
+});
diff --git a/pages/hbfqPage/orderInfo/orderInfo.json b/pages/hbfqPage/orderInfo/orderInfo.json
new file mode 100644
index 0000000..ecdb4f8
--- /dev/null
+++ b/pages/hbfqPage/orderInfo/orderInfo.json
@@ -0,0 +1,12 @@
+{
+  "defaultTitle": "花呗分期",
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index",
+    "picker-item": "mini-ali-ui/es/picker-item/index",
+    "order-trial":"/components/orderTrial/orderTrial"
+  }
+}
\ No newline at end of file
diff --git a/pages/hbfqPage/qrCode/qrCode.acss b/pages/hbfqPage/qrCode/qrCode.acss
new file mode 100644
index 0000000..e1e7582
--- /dev/null
+++ b/pages/hbfqPage/qrCode/qrCode.acss
@@ -0,0 +1,8 @@
+.qrCode-page{
+  min-height: 100vh;
+  background: #FAFAFC;
+}
+.top {
+  width: 100%;
+  height: 100px;
+}
diff --git a/pages/hbfqPage/qrCode/qrCode.axml b/pages/hbfqPage/qrCode/qrCode.axml
new file mode 100644
index 0000000..fba70f4
--- /dev/null
+++ b/pages/hbfqPage/qrCode/qrCode.axml
@@ -0,0 +1,6 @@
+<view class="qrCode-page">
+  <view class="top" style="{{background:userStyle.gradientColor}}">
+    <cover-image src="../../static/img/backpic.png" class="back-pic"/>
+  </view>
+  <qrcode-view imgSrc="{{imgSrc}}" rateList="{{rateList}}"/>
+</view>
\ No newline at end of file
diff --git a/pages/hbfqPage/qrCode/qrCode.js b/pages/hbfqPage/qrCode/qrCode.js
new file mode 100644
index 0000000..90950c1
--- /dev/null
+++ b/pages/hbfqPage/qrCode/qrCode.js
@@ -0,0 +1,101 @@
+const QRCode = require('qrcode');
+const app = getApp();
+let $api = require('../../../utils/ajaxFn.js')
+Page({
+  data: {
+    timer:'',
+    userStyle: {},
+    imgSrc: '',
+    rateList: [
+      { name: '智享服务费率', rate: 0 },
+      { name: '花呗利率', rate: 0 },
+      { name: '支付费率', rate: 0 },
+      { name: '客户还款总额', rate: 0 },
+      { name: '客户月还款额', rate: 0 },
+      { name: '还款期数', rate: 0 }
+    ]
+  },
+  onLoad(query) {
+    let info = JSON.parse(query.info)
+    this.setData({
+      userStyle: app.userStyle,
+      info: info
+    })
+    this.getCode()
+  },
+  getCode() {
+    let self = this;
+    $api.ajax(
+      '/sib/xcx/order/createHb',
+      'POST',
+      (res) => {
+        //根据字符串生成svn格式的二维码
+        QRCode.toString(res.data.body.payQrCodeUrl, { type: 'svg' }, function (err, url) {
+          let str = 'data:image/svg+xml;base64,' + Buffer(url).toString('base64');
+          console.log(str)
+          self.setData({
+            imgSrc: str,
+            orderId:res.data.body.orderId,
+            rateList: [
+              { name: '智享服务费率', rate: res.data.body.platRate + '%' },
+              { name: '花呗利率', rate: res.data.body.zfbRate + '%' },
+              { name: '支付费率', rate: res.data.body.payRate + '%' },
+              { name: '客户还款总额', rate: res.data.body.repayAmt },
+              { name: '客户月还款额', rate: res.data.body.monthAmt },
+              { name: '还款期数', rate: res.data.body.term + '期' }
+            ],
+            timer:setInterval(this.getStatus(),5000)
+          })
+        });
+
+      },
+      (err) => { },
+      true,
+      {
+        ...this.data.info
+      }
+    )
+  },
+  getStatus(){
+    $api.ajax(
+      '/sib/xcx/order/findHbOrderSts',
+      'POST',
+      (res)=>{
+        let body = res.data.body.orderStatus
+        if(body==1){
+          clearInterval(this.data.timer)
+          my.showToast({
+            type: 'none',
+            content: '支付成功',
+            duration: 3000,
+            success: () => {
+              my.reLaunch({
+                url: `/pages/order/hbfqOrder/hbfqOrder?orderId=${this.data.orderId}`,
+              })
+            },
+          })
+        }
+        if(body==2){
+          clearInterval(this.data.timer)
+          my.showToast({
+            type: 'none',
+            content: '支付超时',
+            duration: 3000,
+            success: () => {
+              my.reLaunch({
+                url: `/pages/order/hbfqOrder/hbfqOrder?orderId=${this.data.orderId}`,
+              })
+            },
+          })
+        }
+      },
+      (err)=>{
+
+      },
+      true,
+      {
+        orderId:this.data.orderId
+      }
+    )
+  }
+});
diff --git a/pages/hbfqPage/qrCode/qrCode.json b/pages/hbfqPage/qrCode/qrCode.json
new file mode 100644
index 0000000..114db4e
--- /dev/null
+++ b/pages/hbfqPage/qrCode/qrCode.json
@@ -0,0 +1,6 @@
+{
+  "defaultTitle": "花呗分期",
+  "usingComponents":{
+    "qrcode-view":"/components/QRCodeView/QRCodeView"
+  }
+}
\ No newline at end of file
diff --git a/pages/home/home.acss b/pages/home/home.acss
new file mode 100644
index 0000000..fcd2e26
--- /dev/null
+++ b/pages/home/home.acss
@@ -0,0 +1,51 @@
+.home-page{
+  background-color: #f5f5f5;
+  min-height: 100vh;
+}
+.top{
+  width: 100%;
+  height: 120px;
+}
+.back-pic{
+  width: 100%;
+  height: 100%;
+  z-index: 10;
+}
+.product-view{
+  position: relative;
+  transform: translateY(-50px);
+}
+.product-item{
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: #fff;
+  width: 686rpx;
+  height: 80px;
+  margin: auto;
+  margin-bottom: 12px;
+  background: #FFFFFF;
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 7px;
+  padding: 0 23px 0 20px;
+  box-sizing: border-box;
+}
+.left{
+  display: flex;
+  align-items: center;
+}
+.pro-img{
+  width: 36px;
+  height: 36px;
+  margin-right: 12px;
+}
+.pro-text{
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+}
+.iconliebiaojiantou{
+  font-size: 40rpx;
+  color: #CCCCCC;
+}
\ No newline at end of file
diff --git a/pages/home/home.axml b/pages/home/home.axml
new file mode 100644
index 0000000..f57ebaa
--- /dev/null
+++ b/pages/home/home.axml
@@ -0,0 +1,14 @@
+<view class="home-page">
+  <view class="top"  style="{{background:userStyle.gradientColor}}">
+    <cover-image src="../../static/img/backpic.png" class="back-pic"/>
+  </view>
+  <view class="product-view">
+    <view a:for="{{prodList}}" a:key="{{index}}" class="product-item" data-openStatus="{{item.openStatus}}" data-prodType="{{item.prodType}}" onTap="goOrderInfo">
+      <view class="left"> 
+        <cover-image class="pro-img" src="{{item.src}}"/>
+        <text class="pro-text">{{item.prodName}}</text>
+      </view>
+      <text class="iconfont iconliebiaojiantou"></text>
+    </view>
+  </view>
+</view>
\ No newline at end of file
diff --git a/pages/home/home.js b/pages/home/home.js
new file mode 100644
index 0000000..c2ed3be
--- /dev/null
+++ b/pages/home/home.js
@@ -0,0 +1,72 @@
+let $api = require('../../utils/ajaxFn.js')
+const app = getApp()
+Page({
+  data: {
+    userStyle: {},
+    prodList: [],//产品列表
+  },
+  // 页面加载
+  onLoad(){
+    this.setData({
+      userStyle: app.userStyle
+    })
+    // this.init()
+    
+  },
+  onShow() {
+    this.init()
+  },
+  init(){
+    $api.ajax(
+      '/sib/xcx/order/prodList',
+      'POST',
+      (res) => {
+        res.data.body.prodList.forEach(e=>{
+          if(e.prodType == 200015){
+            e.src = '../../static/img/hbfq.png'
+          }
+          if(e.prodType == 200008){
+            e.src = '../../static/img/shsk.png'
+          }
+        })
+        this.setData({
+          prodList: res.data.body.prodList
+        })
+      },
+      (err) => { },
+      true,
+      {
+        isShowAmt: 0
+      }
+    )
+  },
+  // 点击产品
+  goOrderInfo(event) {
+    let prodType = event.target.dataset.prodType,
+      openStatus = event.target.dataset.openStatus;
+    if (openStatus != 2) {
+      my.showToast({
+        type: 'exception',
+        content: '暂未开通此产品',
+        duration: 5000,
+      });
+      return
+    }
+    console.log(prodType)
+    switch (prodType) {
+      case 200015:
+        my.navigateTo({
+          url: '../hbfqPage/orderInfo/orderInfo'
+        });
+        break;
+      case 200008:
+        my.navigateTo({
+          url: '../shskPage/orderInfo/orderInfo'
+        });
+        break;
+      default:
+        break;
+    }
+
+  }
+});
diff --git a/pages/home/home.json b/pages/home/home.json
new file mode 100644
index 0000000..c9d40cc
--- /dev/null
+++ b/pages/home/home.json
@@ -0,0 +1,6 @@
+{
+  "defaultTitle": "业务办理",
+  "usingComponents": {
+    "my-component":"/components/fitler/fitler"
+  }
+}
\ No newline at end of file
diff --git a/pages/icon/grzx.png b/pages/icon/grzx.png
new file mode 100644
index 0000000..80d1211
--- /dev/null
+++ b/pages/icon/grzx.png
Binary files differ
diff --git a/pages/icon/grzx_h.png b/pages/icon/grzx_h.png
new file mode 100644
index 0000000..6a9fa84
--- /dev/null
+++ b/pages/icon/grzx_h.png
Binary files differ
diff --git a/pages/icon/ywbl.png b/pages/icon/ywbl.png
new file mode 100644
index 0000000..066b0cd
--- /dev/null
+++ b/pages/icon/ywbl.png
Binary files differ
diff --git a/pages/icon/ywbl_h.png b/pages/icon/ywbl_h.png
new file mode 100644
index 0000000..7af1b09
--- /dev/null
+++ b/pages/icon/ywbl_h.png
Binary files differ
diff --git a/pages/icon/ywsj.png b/pages/icon/ywsj.png
new file mode 100644
index 0000000..264c0c6
--- /dev/null
+++ b/pages/icon/ywsj.png
Binary files differ
diff --git a/pages/icon/ywsj_h.png b/pages/icon/ywsj_h.png
new file mode 100644
index 0000000..da8987b
--- /dev/null
+++ b/pages/icon/ywsj_h.png
Binary files differ
diff --git a/pages/index/index.acss b/pages/index/index.acss
new file mode 100644
index 0000000..e532a93
--- /dev/null
+++ b/pages/index/index.acss
@@ -0,0 +1,82 @@
+.index-page{
+  padding: 100rpx 56rpx;
+}
+.logo-view{
+  text-align: left;
+}
+.titText{
+  margin-top: 20rpx;
+  display: block;
+  font-size: 24px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
+.modeText{
+  margin-top: 26rpx;
+  display: block;
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
+.logo{
+  width: 88rpx;
+  height: 88rpx;
+}
+.login-info-view{
+  width: 100%;
+  margin: auto;
+  margin-top: 40rpx;
+  background-color: #fff;
+}
+.phone-ipt{
+  background-color: #fff;
+}
+.phone-label{
+  min-width: 60rpx;
+}
+.password-ipt{
+  background-color: #fff;
+}
+.password-label{
+  min-width: 60rpx;
+}
+.code-label{
+  display: none;
+}
+.code-ipt{
+  width: 70%;
+}
+.icongerenzhongxin,.iconfont{
+  font-size: 40rpx;
+}
+.tip-view{
+  display: flex;
+  justify-content: space-between;
+  padding-top: 20rpx;
+  font-size: 24rpx;
+}
+.login-btn{
+  width: 100%;
+  margin: 50px 0 0 0;
+  border-radius: 50px;
+  border: 0;
+  outline: none;
+}
+.tip-view2{
+  padding-top: 20rpx;
+  color:#666;
+  font-size:12px;
+  text-align:center
+}
+.server-number{
+  text-align: center;
+  font-size: 12px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+  position: fixed;
+  bottom: 28px;
+  left: 35%;
+}
\ No newline at end of file
diff --git a/pages/index/index.axml b/pages/index/index.axml
new file mode 100644
index 0000000..1cb2249
--- /dev/null
+++ b/pages/index/index.axml
@@ -0,0 +1,30 @@
+<view class="index-page">
+  <view class="logo-view">
+    <cover-image class="logo" src="../../static/img/logo.png" />
+    <text class="titText">欢迎使用智享收银台</text>
+    <text class="modeText">{{modeText}}</text>
+  </view>
+  <view class="login-info-view">
+    <input-item type="number"  onInput="setUserNo"	 value="{{userNo}}" labelCls="phone-label" className="phone-ipt" maxlength="11" placeholder="请输入手机号" clear="{{true}}">
+    </input-item>
+    <input-item a:if="{{!showCode}}" onInput="setPassword" value="{{password}}" type="text" labelCls="password-label" className="password-ipt" maxlength="12" password="{{true}}" placeholder="请输入密码" clear="{{true}}">
+    </input-item>
+    <verify-code a:if="{{showCode}}" label="{{''}}" inputCls="code-ipt" labelCls="code-label" maxlength="4" countDown="{{60}}" initActive="{{false}}" onSend="onSend" onInput="inputVerCode" value="{{verCode}}">
+    </verify-code>
+  </view>
+  <button type="primary" class="login-btn" style="{{background:userStyle.gradientColor}}" onTap="login">登录</button>
+  <view class="tip-view" a:if="{{!showCode}}">
+    <view style="{{color:'#666','font-size':'12px'}}"  onTap="forgetPass">
+    忘记密码
+    </view>
+    <view style="{{color:'#666','font-size':'12px'}}" onTap="goCodeLogin">
+    {{loginModeText}}
+    </view>
+  </view>
+  <view a:else class="tip-view2" >
+    <text onTap="goCodeLogin">{{loginModeText}}</text>
+  </view>
+  <view class="server-number">
+    <text>客服电话:{{userStyle.servicePhone}}</text>
+  </view>
+</view> 
\ No newline at end of file
diff --git a/pages/index/index.js b/pages/index/index.js
new file mode 100644
index 0000000..108106d
--- /dev/null
+++ b/pages/index/index.js
@@ -0,0 +1,165 @@
+let md5 = require('../../utils/md5.js');
+let $api = require('../../utils/ajaxFn.js');
+const app = getApp()
+Page({
+  data: {
+    password:'',
+    userNo:'',
+    verCode:'',
+    showCode: false,//是否显示验证码框
+    loginModeText:'验证码登录',
+    modeText:'密码登录',
+    userStyle:{},//用户样式
+  },
+  onLoad(query) {
+    // 页面加载
+    console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
+    this.setData({
+      userStyle:app.userStyle,
+    })
+  },
+  onReady() {
+    // 页面加载完成
+    
+  },
+  onShow() {
+    // 页面显示
+  },
+  onHide() {
+    // 页面隐藏
+  },
+  onUnload() {
+    // 页面被关闭
+  },
+  onTitleClick() {
+    // 标题被点击
+  },
+  onPullDownRefresh() {
+    // 页面被下拉
+  },
+  onReachBottom() {
+    // 页面被拉到底部
+  },
+  onShareAppMessage() {
+    // 返回自定义分享信息
+    return {
+      title: 'My App',
+      desc: 'My App description',
+      path: 'pages/index/index',
+    };
+  },
+  // 验证码登录
+  goCodeLogin(){
+    this.setData({
+      showCode:!this.data.showCode,
+      loginModeText:this.data.showCode?'验证码登录':'密码登录',
+      modeText:this.data.showCode?'密码登录':'验证码登录'
+    })
+  },
+  // 忘记密码
+  forgetPass(){
+    my.navigateTo ({url:'../forgetPassword/forgetPassword'})
+  },
+  // 登录
+  login(){
+    let url = '',obj={};
+    if(!this.data.showCode){
+      url = '/sib/xcx/login/login'
+      obj.password = md5.hex_md5(this.data.userNo+this.data.password)
+      obj.userNo = this.data.userNo
+      obj.zfbUserId = app.userId
+    }else{
+      url = '/sib/xcx/login/loginByCode'
+      obj.mblNo = this.data.userNo
+      obj.verCode = this.data.verCode
+      obj.zfbUserId = app.userId
+    }
+    $api.ajax(
+      url,
+      'POST',
+      (res)=>{
+        app.sessionId = res.data.body.sessionId
+        app.lastLoginMgrId = res.data.body.lastLoginMgrId
+        if(res.data.body.sessionId){
+          my.setStorage({
+            key:'sessionId',
+            data:{
+              sessionId:res.data.body.sessionId
+            }
+          })
+        }
+        if(res.data.body.lastLoginMgrId){
+          this.getUserInfo(res.data.body.lastLoginMgrId)
+        }else{
+          my.navigateTo({
+            url: '/pages/changeUser/changeUser'
+          });
+        }
+      },
+      function(res){
+        console.log(res)
+      },
+      false,
+      {
+        ...obj
+      }
+    )
+  },
+  getUserInfo(lastLoginMgrId){
+    $api.ajax(
+      '/sib/xcx/login/mgrLogin',
+      'POST',
+      (res)=>{
+        this.userInfo = res.data.body
+        my.reLaunch({
+          url: '/pages/home/home'
+        });
+      },
+      err=>{},
+      true,
+      {
+        mgrId:lastLoginMgrId
+      }
+    )
+  },
+  setUserNo(e){
+    this.setData({
+      userNo:e.detail.value
+    })
+  },
+  setPassword(e){
+    this.setData({
+      password:e.detail.value
+    })
+  },
+  inputVerCode(e){
+    this.setData({
+      verCode:e.detail.value
+    })
+    
+  },
+  onSend(){
+    if(!this.data.userNo){
+      my.showToast({
+        content: '请输入电话号码',
+        duration: 2000
+      });
+      return 
+    }
+    $api.ajax(
+      '/sib/user/sendMsg',
+      'POST',
+      (res)=>{
+        
+      },
+      (err)=>{
+
+      },
+      false,
+      {
+        mblNo:this.data.userNo,
+        verCodeType:2
+      }
+    )
+  }
+});
diff --git a/pages/index/index.json b/pages/index/index.json
new file mode 100644
index 0000000..b851a43
--- /dev/null
+++ b/pages/index/index.json
@@ -0,0 +1,9 @@
+{
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index"
+  }
+}
\ No newline at end of file
diff --git a/pages/order/hbfqOrder/hbfqOrder.acss b/pages/order/hbfqOrder/hbfqOrder.acss
new file mode 100644
index 0000000..ef1bfeb
--- /dev/null
+++ b/pages/order/hbfqOrder/hbfqOrder.acss
@@ -0,0 +1,53 @@
+.hbfq-order-detail{
+  min-height: 100vh;
+  background: #fafafa;
+  padding-top: 12px;
+  padding-bottom: 33px;
+}
+.title {
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  padding-left: 12px;
+  line-height: 50px;
+  border-bottom: 1px solid #EEEEEE;
+}
+
+.ipt-class {
+  text-align: right;
+  color: #333;
+}
+
+.pick-class {
+  text-align: right;
+}
+
+.fenqi-info-view {
+  width: 686rpx;
+  background: #fff;
+  padding: 0px 0 10px;
+  box-sizing: border-box;
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+}
+
+.label-class {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333;
+}
+
+.user-info-view {
+  width: 686rpx;
+  background: #fff;
+  padding: 0px 0 10px;
+  box-sizing: border-box;
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+  margin-top: 12px;
+}
+
diff --git a/pages/order/hbfqOrder/hbfqOrder.axml b/pages/order/hbfqOrder/hbfqOrder.axml
new file mode 100644
index 0000000..cef0610
--- /dev/null
+++ b/pages/order/hbfqOrder/hbfqOrder.axml
@@ -0,0 +1,20 @@
+<view class="hbfq-order-detail">
+  <view class="fenqi-info-view">
+    <view class="title">分期信息</view>
+    <input-item labelCls="label-class" value="{{info.settAmt}}" disabled="{{true}}" value="{{111}}" inputCls="ipt-class" >分期本金</input-item>
+    <input-item labelCls="label-class" value="{{info.insAmt}}" disabled="{{true}}" inputCls="ipt-class" >商户到账金额</input-item>
+    <input-item labelCls="label-class" value="{{info.insTerm+'期'}}" disabled="{{true}}" inputCls="ipt-class" >分期期数</input-item>
+    <input-item labelCls="label-class" value="{{info.statusStr}}" disabled="{{true}}" inputCls="ipt-class" >订单状态</input-item>
+    <input-item labelCls="label-class" value="{{info.creTime}}" disabled="{{true}}" inputCls="ipt-class" >创建时间</input-item>
+    <input-item labelCls="label-class" value="{{info.payTypeName}}" disabled="{{true}}" inputCls="ipt-class" >支付方式</input-item>
+    <input-item labelCls="label-class" value="{{info.userName}}" disabled="{{true}}" inputCls="ipt-class" >客户姓名</input-item>
+    <input-item labelCls="label-class" value="{{info.goodsName}}" disabled="{{true}}" inputCls="ipt-class" last="{{true}}">商品名称</input-item>
+  </view>
+  <view class="user-info-view">
+    <view class="title">产品信息</view>
+    <input-item labelCls="label-class" value="{{info.feeRate+'%'}}" disabled="{{true}}" inputCls="ipt-class">智享服务费率</input-item>
+    <input-item labelCls="label-class" value="{{info.zfbRate+'%'}}" disabled="{{true}}" inputCls="ipt-class">花呗利率</input-item>
+    <input-item labelCls="label-class" value="{{info.payRate+'%'}}" disabled="{{true}}" inputCls="ipt-class">支付费率</input-item>
+    <input-item labelCls="label-class" value="{{info.zfbVersionName}}" disabled="{{true}}" inputCls="ipt-class" last="{{true}}">办单通道</input-item>
+  </view>
+</view>
\ No newline at end of file
diff --git a/pages/order/hbfqOrder/hbfqOrder.js b/pages/order/hbfqOrder/hbfqOrder.js
new file mode 100644
index 0000000..35e44a3
--- /dev/null
+++ b/pages/order/hbfqOrder/hbfqOrder.js
@@ -0,0 +1,27 @@
+let $api = require('../../../utils/ajaxFn.js')
+let dataFm = require('../../../utils/date.js')
+Page({
+  data: {
+    info:{}
+  },
+  onLoad(query) {
+    $api.ajax(
+      '/sib/xcx/order/orderDtl',
+      'POST',
+      (res)=>{
+        res.data.body.creTime = dataFm(res.data.body.creTime, 'YYYY-MM-DD HH:mm:ss')
+        this.setData({
+          info:res.data.body
+        })
+      },
+      (err)=>{
+
+      },
+      true,
+      {
+        orderId:query.orderId
+      }
+    )
+  },
+  
+});
diff --git a/pages/order/hbfqOrder/hbfqOrder.json b/pages/order/hbfqOrder/hbfqOrder.json
new file mode 100644
index 0000000..9cc2172
--- /dev/null
+++ b/pages/order/hbfqOrder/hbfqOrder.json
@@ -0,0 +1,13 @@
+{
+  "defaultTitle": "花呗分期-订单详情",
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index",
+    "picker-item": "mini-ali-ui/es/picker-item/index",
+    "order-trial":"/components/orderTrial/orderTrial",
+    "list-item": "mini-ali-ui/es/list/list-item/index"
+  }
+}
\ No newline at end of file
diff --git a/pages/order/shskOrder/shskOrder.acss b/pages/order/shskOrder/shskOrder.acss
new file mode 100644
index 0000000..ef1bfeb
--- /dev/null
+++ b/pages/order/shskOrder/shskOrder.acss
@@ -0,0 +1,53 @@
+.hbfq-order-detail{
+  min-height: 100vh;
+  background: #fafafa;
+  padding-top: 12px;
+  padding-bottom: 33px;
+}
+.title {
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  padding-left: 12px;
+  line-height: 50px;
+  border-bottom: 1px solid #EEEEEE;
+}
+
+.ipt-class {
+  text-align: right;
+  color: #333;
+}
+
+.pick-class {
+  text-align: right;
+}
+
+.fenqi-info-view {
+  width: 686rpx;
+  background: #fff;
+  padding: 0px 0 10px;
+  box-sizing: border-box;
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+}
+
+.label-class {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333;
+}
+
+.user-info-view {
+  width: 686rpx;
+  background: #fff;
+  padding: 0px 0 10px;
+  box-sizing: border-box;
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+  margin-top: 12px;
+}
+
diff --git a/pages/order/shskOrder/shskOrder.axml b/pages/order/shskOrder/shskOrder.axml
new file mode 100644
index 0000000..5231647
--- /dev/null
+++ b/pages/order/shskOrder/shskOrder.axml
@@ -0,0 +1,14 @@
+<view class="hbfq-order-detail">
+  <view class="fenqi-info-view">
+    <view class="title">分期信息</view>
+    <input-item labelCls="label-class" value="{{info.settAmt}}" disabled="{{true}}" inputCls="ipt-class" >支付金额</input-item>
+    <input-item labelCls="label-class" value="{{info.insAmt}}" disabled="{{true}}" inputCls="ipt-class" >商户到账金额</input-item>
+    <input-item labelCls="label-class" value="{{info.statusStr}}" disabled="{{true}}" inputCls="ipt-class" >订单状态</input-item>
+    <input-item labelCls="label-class" value="{{info.creTime}}" disabled="{{true}}" inputCls="ipt-class" >创建时间</input-item>
+    <input-item labelCls="label-class" value="{{info.payTypeName}}" disabled="{{true}}" inputCls="ipt-class" last="{{true}}">支付方式</input-item>
+  </view>
+  <view class="user-info-view">
+    <view class="title">产品信息</view>
+    <input-item labelCls="label-class" value="{{info.zfbRate+'%'}}" disabled="{{true}}" inputCls="ipt-class" last="{{true}}">支付费率</input-item>
+  </view>
+</view>
\ No newline at end of file
diff --git a/pages/order/shskOrder/shskOrder.js b/pages/order/shskOrder/shskOrder.js
new file mode 100644
index 0000000..35e44a3
--- /dev/null
+++ b/pages/order/shskOrder/shskOrder.js
@@ -0,0 +1,27 @@
+let $api = require('../../../utils/ajaxFn.js')
+let dataFm = require('../../../utils/date.js')
+Page({
+  data: {
+    info:{}
+  },
+  onLoad(query) {
+    $api.ajax(
+      '/sib/xcx/order/orderDtl',
+      'POST',
+      (res)=>{
+        res.data.body.creTime = dataFm(res.data.body.creTime, 'YYYY-MM-DD HH:mm:ss')
+        this.setData({
+          info:res.data.body
+        })
+      },
+      (err)=>{
+
+      },
+      true,
+      {
+        orderId:query.orderId
+      }
+    )
+  },
+  
+});
diff --git a/pages/order/shskOrder/shskOrder.json b/pages/order/shskOrder/shskOrder.json
new file mode 100644
index 0000000..76344f3
--- /dev/null
+++ b/pages/order/shskOrder/shskOrder.json
@@ -0,0 +1,12 @@
+{
+  "defaultTitle": "商户收款-订单详情",
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index",
+    "picker-item": "mini-ali-ui/es/picker-item/index",
+    "order-trial":"/components/orderTrial/orderTrial"
+  }
+}
\ No newline at end of file
diff --git a/pages/paypage/paypage.acss b/pages/paypage/paypage.acss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/pages/paypage/paypage.acss
diff --git a/pages/paypage/paypage.axml b/pages/paypage/paypage.axml
new file mode 100644
index 0000000..b88ea16
--- /dev/null
+++ b/pages/paypage/paypage.axml
@@ -0,0 +1,6 @@
+<view>
+  <input placeholder="输入支付金额" />
+  <button type="primary" onTap="pay">
+  支付
+  </button>
+</view>
\ No newline at end of file
diff --git a/pages/paypage/paypage.js b/pages/paypage/paypage.js
new file mode 100644
index 0000000..e3aefc3
--- /dev/null
+++ b/pages/paypage/paypage.js
@@ -0,0 +1,48 @@
+Page({
+  data: {
+    code: '',
+  },
+  onLoad(query) {
+    console.log(query)
+    this.setData({
+      code: query.code
+    })
+    console.log(this.data.code)
+  },
+  pay() {
+    // my.request({
+    //   url: '商户服务端地址',//须加httpRequest域白名单
+    //   method: 'POST',
+    //   data: {//data里的key、value是开发者自定义的
+    //     from: '支付宝',
+    //     order: 'XXXXX',//订单信息
+    //   },
+    //   dataType: 'json',
+    //   success: function (res) {
+
+    //   },
+    //   fail: function (res) {
+    //     my.alert({ content: 'fail' });
+    //   },
+    //   complete: function (res) {
+    //     my.hideLoading();
+    //     my.alert({ content: 'complete' });
+    //   }
+    // });
+    my.tradePay({
+      tradeNO: '2020120722001435295752161156',
+      success: function (res) {
+        my.alert({
+          content: JSON.stringify(res),
+        });
+
+      },
+      fail: function (res) {
+        my.alert({
+          content: JSON.stringify(res),
+        });
+ 
+      },
+    });
+  }
+});
diff --git a/pages/paypage/paypage.json b/pages/paypage/paypage.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/pages/paypage/paypage.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/pages/shskPage/orderInfo/orderInfo.acss b/pages/shskPage/orderInfo/orderInfo.acss
new file mode 100644
index 0000000..12c1908
--- /dev/null
+++ b/pages/shskPage/orderInfo/orderInfo.acss
@@ -0,0 +1,92 @@
+.back-pic {
+  width: 100%;
+  height: 100%;
+}
+
+.order-info-page {
+  min-height: 100vh;
+  background: #FAFAFC;
+  padding-bottom: 26px;
+}
+
+.top {
+  width: 100%;
+  height: 100px;
+}
+
+.title {
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  padding-left: 12px;
+  line-height: 36px;
+}
+
+.ipt-class {
+  text-align: left;
+}
+
+.pick-class {
+  text-align: left;
+}
+
+.fenqi-info-view {
+  width: 686rpx;
+  height: 120px;
+  background: #fff;
+  padding: 18px 0 20px;
+  box-sizing: border-box;
+  position: relative;
+  transform: translateY(-50px);
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+  margin-bottom:30px; 
+}
+
+.label-class {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #333333;
+}
+
+.user-info-view {
+  width: 686rpx;
+  height: 155px;
+  background: #fff;
+  padding: 18px 0 0;
+  box-sizing: border-box;
+  position: relative;
+  transform: translateY(-38px);
+  box-shadow: 0px 1px 12px 0px rgba(56, 56, 235, 0.08);
+  border-radius: 8px;
+  margin: auto;
+}
+
+.btn-view {
+  width: 686rpx;
+  margin: auto;
+  display: flex;
+  justify-content: space-between;
+}
+
+.to-qrcode {
+  width: 320rpx;
+  height: 44px;
+  background: #FFFFFF;
+  border: 1px solid #8C4EF5;
+  border-radius: 22px;
+  line-height: 44px;
+  color: #8C4EF5;
+}
+
+.get-qrcode {
+  width: 320rpx; 
+  height: 44px;
+  border-radius: 22px;
+  border: 0;
+  color:#fff;
+  line-height: 44px;
+}
\ No newline at end of file
diff --git a/pages/shskPage/orderInfo/orderInfo.axml b/pages/shskPage/orderInfo/orderInfo.axml
new file mode 100644
index 0000000..3c9b1f2
--- /dev/null
+++ b/pages/shskPage/orderInfo/orderInfo.axml
@@ -0,0 +1,21 @@
+<view class="order-info-page">
+  <view class="top" style="{{background:userStyle.gradientColor}}">
+    <cover-image src="../../static/img/backpic.png" class="back-pic"/>
+  </view>
+  <view class="fenqi-info-view">
+    <text class="title">分期信息</text>
+    <input-item labelCls="label-class" onInput="confirm" data-code="{{1}}" type="number" inputCls="ipt-class" placeholder="请输入商品金额">商品金额</input-item>
+    <input-item labelCls="label-class" onInput="confirm" data-code="{{2}}" last="{{true}}" inputCls="ipt-class" placeholder="请输入商品名称">商品名称</input-item>
+  </view>
+  <!-- <view class="user-info-view">
+    <text class="title">用户信息</text>
+    <input-item labelCls="label-class" inputCls="ipt-class" onInput="confirm" data-code="{{2}}"  placeholder="请输入客户姓名">客户姓名</input-item>
+    <input-item last="{{true}}" labelCls="label-class" inputCls="ipt-class" onInput="confirm" data-code="{{3}}" placeholder="请输入客户手机号">客户手机号</input-item>
+  </view> -->
+  <!-- 订单试算展示组件 -->
+  <order-trial title="订单试算" amtList="{{amtList}}" rateList="{{rateList}}"/>
+  <view class="btn-view">
+    <button size="default" onTap="toQRCode" type="gohost" class="to-qrcode" style="{{color:userStyle.defaultColor,border:`${userStyle.defaultColor} solid 1px`}}">扫描付款码</button>
+    <button size="default" onTap="getQRCode" type="primary" class="get-qrcode"  style="{{background:userStyle.gradientColor}}">生成二维码</button>
+  </view>
+</view>
\ No newline at end of file
diff --git a/pages/shskPage/orderInfo/orderInfo.js b/pages/shskPage/orderInfo/orderInfo.js
new file mode 100644
index 0000000..cab45f3
--- /dev/null
+++ b/pages/shskPage/orderInfo/orderInfo.js
@@ -0,0 +1,107 @@
+let $api = require('../../../utils/ajaxFn.js')
+Page({
+  data: {
+    userStyle: {},
+    info: {
+      payAmt: ''
+    },
+    amtList: [
+      { name: '商家到账', number: 0 },
+      { name: '用户支付金额', number: 0 }
+    ],
+    rateList: [
+      { name: '支付费率', rate: 0.38 }
+    ]
+  },
+  // 页面加载
+  onLoad() {
+    var app = getApp()
+    this.setData({
+      userStyle: app.userStyle
+    })
+  },
+  confirm(e) {
+    let code = e.target.dataset.code,
+      value = e.detail.value,
+      obj = {};
+    if (code == 1) {
+      obj.payAmt = value
+    } else if (code == 2) {
+      obj.goodsName = value
+    }
+    console.log(obj)
+    this.setData({
+      info: { ...this.data.info,...obj }
+    })
+    if(code == 1&&this.data.info.payAmt){
+      this.getTaril()
+    }
+  },
+  getTaril(){
+    $api.ajax(
+      '/sib/xcx/order/dmfTrial',
+      'POST',
+      res=>{
+        this.setData({
+          amtList:[
+            { name: '商家到账', number: res.data.body.merAmt },
+            { name: '用户支付金额', number: res.data.body.repayAmt }
+          ]
+        })
+      },
+      err=>{},
+      true,
+      {
+        amt:this.data.info.payAmt
+      }
+    )
+  },
+  toQRCode() {
+    this.setData({
+      'info.payType': 2
+    })
+    my.scan({
+      scanType: ['qrCode', 'barCode'],
+      success: (res) => {
+        console.log(res)
+        // authCode: res.resultStr,
+        $api.ajax(
+          '/sib/xcx/order/createDmf',
+          'POST',
+          (res) => {
+            my.reLaunch({
+              url: `/pages/order/shskOrder/shskOrder?orderId=${res.data.body.orderId}`,
+            })
+          },
+          (err) => { },
+          true,
+          {
+            ...this.data.info,
+            authCode: res.resultStr
+          }
+        )
+      },
+    });
+  },
+  getQRCode() {
+    this.setData({
+      'info.payType': 1
+    })
+    for (let key in this.data.info) {
+      if (!this.data.info[key]) {
+        my.showToast({
+          type: 'none',
+          content: '请完整输入信息',
+          duration: 2000,
+        });
+        return
+      }
+    }
+    
+    let str = JSON.stringify(this.data.info)
+    console.log(this.data.info)
+    my.navigateTo({
+      url: `../qrCode/qrCode?info=${str}`
+    });
+  }
+});
diff --git a/pages/shskPage/orderInfo/orderInfo.json b/pages/shskPage/orderInfo/orderInfo.json
new file mode 100644
index 0000000..a86dc99
--- /dev/null
+++ b/pages/shskPage/orderInfo/orderInfo.json
@@ -0,0 +1,12 @@
+{
+  "defaultTitle": "商户收款",
+  "usingComponents":{
+    "list": "mini-ali-ui/es/list/index",
+    "input-item": "mini-ali-ui/es/input-item/index",
+    "am-icon": "mini-ali-ui/es/am-icon/index",
+    "verify-code":"mini-ali-ui/es/verify-code/index",
+    "long-password": "mini-ali-ui/es/long-password/index",
+    "picker-item": "mini-ali-ui/es/picker-item/index",
+    "order-trial":"/components/orderTrial/orderTrial"
+  }
+}
\ No newline at end of file
diff --git a/pages/shskPage/qrCode/qrCode.acss b/pages/shskPage/qrCode/qrCode.acss
new file mode 100644
index 0000000..e1e7582
--- /dev/null
+++ b/pages/shskPage/qrCode/qrCode.acss
@@ -0,0 +1,8 @@
+.qrCode-page{
+  min-height: 100vh;
+  background: #FAFAFC;
+}
+.top {
+  width: 100%;
+  height: 100px;
+}
diff --git a/pages/shskPage/qrCode/qrCode.axml b/pages/shskPage/qrCode/qrCode.axml
new file mode 100644
index 0000000..fba70f4
--- /dev/null
+++ b/pages/shskPage/qrCode/qrCode.axml
@@ -0,0 +1,6 @@
+<view class="qrCode-page">
+  <view class="top" style="{{background:userStyle.gradientColor}}">
+    <cover-image src="../../static/img/backpic.png" class="back-pic"/>
+  </view>
+  <qrcode-view imgSrc="{{imgSrc}}" rateList="{{rateList}}"/>
+</view>
\ No newline at end of file
diff --git a/pages/shskPage/qrCode/qrCode.js b/pages/shskPage/qrCode/qrCode.js
new file mode 100644
index 0000000..957177b
--- /dev/null
+++ b/pages/shskPage/qrCode/qrCode.js
@@ -0,0 +1,98 @@
+let $api = require('../../../utils/ajaxFn.js')
+const QRCode = require('qrcode');
+const app = getApp();
+Page({
+  data: {
+    userStyle:{},
+    imgSrc:'',
+    rateList:[
+      {name:'付款金额',rate:0.38},
+    ]
+  },
+  onLoad(query) { 
+    let info = JSON.parse(query.info)
+    this.setData({
+      userStyle:app.userStyle,
+      info:info
+    })
+    this.getCode()
+  },
+  getCode() {
+    let self = this;
+    // QRCode.toString('https://qr.alipay.com/bax09171hgnaiptzucxe8034',{type: 'svg'}, function (err, url) {
+    //   let str = 'data:image/svg+xml;base64,' + Buffer(url).toString('base64');
+    //   console.log(str);
+
+    //   self.setData({
+    //     imgSrc: str
+    //   })
+    //  });
+    $api.ajax(
+      '/sib/xcx/order/createDmf',
+      'POST',
+      (res) => {
+        //根据字符串生成svn格式的二维码
+        QRCode.toString(res.data.body.payQrCodeUrl, {type: 'svg'}, function (err, url) {
+          let str = 'data:image/svg+xml;base64,' + Buffer(url).toString('base64');
+          console.log(str)
+          self.setData({
+            imgSrc: str,
+            orderId:res.data.body.orderId,
+            rateList: [
+              { name: '支付费率', rate: res.data.body.payRate + '%' }
+            ],
+            timer:setInterval(this.getStatus(),5000)
+          })
+        });
+
+      },
+      (err) => { },
+      true,
+      {
+        ...this.data.info
+      }
+    )
+  },
+  getStatus(){
+    $api.ajax(
+      '/sib/xcx/order/findDmfOrderSts',
+      'POST',
+      (res)=>{
+        let body = res.data.body.orderStatus
+        if(body==1){
+          clearInterval(this.data.timer)
+          my.showToast({
+            type: 'none',
+            content: '支付成功',
+            duration: 3000,
+            success: () => {
+              my.reLaunch({
+                url: `/pages/order/shskOrder/shskOrder?orderId=${this.data.orderId}`,
+              })
+            },
+          })
+        }
+        if(body==2){
+          clearInterval(this.data.timer)
+          my.showToast({
+            type: 'none',
+            content: '支付超时',
+            duration: 3000,
+            success: () => {
+              my.reLaunch({
+                url: `/pages/order/shskOrder/shskOrder?orderId=${this.data.orderId}`,
+              })
+            },
+          })
+        }
+      },
+      (err)=>{
+
+      },
+      true,
+      {
+        orderId:this.data.orderId
+      }
+    )
+  }
+});
diff --git a/pages/shskPage/qrCode/qrCode.json b/pages/shskPage/qrCode/qrCode.json
new file mode 100644
index 0000000..c8dc853
--- /dev/null
+++ b/pages/shskPage/qrCode/qrCode.json
@@ -0,0 +1,6 @@
+{
+  "defaultTitle": "商户收款",
+  "usingComponents":{
+    "qrcode-view":"/components/QRCodeView/QRCodeView"
+  }
+}
\ No newline at end of file
diff --git a/pages/userCenter/userCenter.acss b/pages/userCenter/userCenter.acss
new file mode 100644
index 0000000..aed403d
--- /dev/null
+++ b/pages/userCenter/userCenter.acss
@@ -0,0 +1,81 @@
+.user-center-page{
+  min-height: 100vh;
+  background: #fafafa;
+  position: relative;
+}
+.top{
+  width: 100%;
+  height: 120px;
+  margin-bottom: 24px;
+}
+.img{
+  width: 100%;
+  height: 100%;
+}
+.userInfo{
+  width: 100%;
+  height: 120px;
+  position: absolute;
+  top: 0;
+  left: 0;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  box-sizing: border-box;
+  padding: 0 20px;
+}
+.left{
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.avatar{
+  width: 60px;
+  height: 60px;
+  border-radius:50%; 
+}
+.info{
+  margin-left:12px; 
+  color: #FFFFFF;
+}
+.name{
+  margin-bottom: 8px;
+  width: 304rpx;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow:ellipsis;
+  color: #fff;
+}
+.btn{
+  width: 80px;
+  height: 24px;
+  background: #FFFFFF;
+  border-radius: 12px;
+  font-size: 12px;
+  line-height: 24px;
+  float: right;
+}
+.functionList{
+  margin: auto;
+  margin-bottom: 12px;
+  width: 686rpx;
+  height: 60px;
+  background: #FFFFFF;
+  border-radius: 4px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 0 20px;
+  box-sizing: border-box;
+}
+.left-fn{
+  display: flex;
+  align-items: center;
+}
+.footer-view{
+  display: flex;
+}
+.mode{
+  width: 560rpx;
+  /* height: 150px; */
+}
\ No newline at end of file
diff --git a/pages/userCenter/userCenter.axml b/pages/userCenter/userCenter.axml
new file mode 100644
index 0000000..a4729b1
--- /dev/null
+++ b/pages/userCenter/userCenter.axml
@@ -0,0 +1,43 @@
+<view class="user-center-page">
+  <view class="top" style="{{background:userStyle.gradientColor}}">
+    <cover-image src="../../static/img/backcircl.png" class="img"/>
+  </view>
+  <view class="userInfo">
+    <view class="left">
+      <image mode="scaleToFill" class="avatar" src="../../static/img/logo.png"/>
+      <view class="info">
+        <view style="margin-bottom:6px">{{userInfo.name}}</view>
+        <view>{{userInfo.mblNo}}</view>
+      </view>
+      <!--<avatar className="avatar-class" src="../../static/img/logo.png" size="lg" name="用户名" desc="摘要描述" shape="circle" /> -->
+    </view>
+    <view class="right">
+      <view class="name" style="text-align:right">
+        {{userInfo.orgName}}
+      </view>
+      <button class="btn" onTap="changeUser" style="{{color:userStyle.defaultColor}}">
+      切换身份
+      </button>
+    </view>
+  </view>
+  <view class="functionList" a:for="{{functionList}}" a:key="{{index}}" data-index="{{index}}" onTap="goNext">
+    <view class="left-fn">
+      <text class="iconfont {{item.icon}}" style="{{color:userStyle.defaultColor,'font-size': '20px','margin-right': '12px'}}"></text>
+      <text>{{item.name}}</text>
+    </view>
+    <view class="right-fn">
+      <text class="iconfont iconarrow-right" style="'font-size': '12px'"></text>
+    </view>
+  </view>
+  <modal show="{{modalOpened}}" showClose="{{false}}" className="mode">
+		确定退出此账号吗?
+    <view slot="footer" class="footer-view">
+      <button onTap="onCancel" style="height:50px;line-height:50px;width:50%;border: 0;border-right:1px #EEEEEE solid">
+      取消
+      </button>
+      <button onTap="onDetermine"  style="height:50px;line-height:50px;width:50%;border: 0;">
+      确定
+      </button>
+    </view>
+  </modal>
+</view>
\ No newline at end of file
diff --git a/pages/userCenter/userCenter.js b/pages/userCenter/userCenter.js
new file mode 100644
index 0000000..3ff92cd
--- /dev/null
+++ b/pages/userCenter/userCenter.js
@@ -0,0 +1,61 @@
+let $api = require('../../utils/ajaxFn.js')
+const app = getApp()
+Page({
+  data: {
+    modalOpened:false,
+    userStyle:{},
+    userInfo:{},
+    functionList:[
+      {name:'修改密码',icon:'iconxiugaimima'},
+      {name:'退出登录',icon:'icontuichudenglu'}
+    ]
+  },
+  onLoad() {
+    this.setData({
+      userStyle:app.userStyle,
+      userInfo:app.userInfo
+    })
+    console.log(app,this.data.userInfo)
+  },
+  goNext(event){
+    let index = event.target.dataset.index
+    if(index === 0){
+      my.navigateTo({
+        url: '../changePassword/changePassword'
+      });
+    }
+    if(index === 1){
+      this.setData({
+        modalOpened:true
+      })
+    }
+  },
+  onCancel(){
+    this.setData({
+      modalOpened:false
+    })
+  },
+  onDetermine(){
+    $api.ajax(
+      '/sib/xcx/login/logout',
+      'POST',
+      res=>{
+        my.removeStorageSync({
+          key: 'sessionId',
+        });
+        my.navigateTo({
+          url: '/pages/index/index'
+        });
+      },
+      err=>{
+
+      },
+      true
+    )
+  },
+  changeUser(){
+    my.navigateTo({
+      url: '../changeUser/changeUser'
+    });
+  }
+});
diff --git a/pages/userCenter/userCenter.json b/pages/userCenter/userCenter.json
new file mode 100644
index 0000000..574ff6d
--- /dev/null
+++ b/pages/userCenter/userCenter.json
@@ -0,0 +1,7 @@
+{
+  "defaultTitle": "个人中心",
+  "usingComponents": {
+    "avatar": "mini-ali-ui/es/avatar/index",
+    "modal": "mini-ali-ui/es/modal/index"
+  }
+}
\ No newline at end of file
diff --git a/static/ali-icon/iconfont.acss b/static/ali-icon/iconfont.acss
new file mode 100644
index 0000000..2153c27
--- /dev/null
+++ b/static/ali-icon/iconfont.acss
@@ -0,0 +1,19 @@
+@import "/static/ali-icon/stylesheet.acss";
+@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.eot');
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+  url('iconfont.woff') format('woff'),
+  url('/static/ali-icon/iconfont.ttf') format('truetype'),  /* 使用的ttf,所以这里的路径不能出错了 */
+  url('iconfont.svg#iconfont') format('svg'); 
+}
+ 
+.iconfont{
+  font-family: "iconfont" !important;
+  font-size: 12px;
+  font-style: normal;
+}
+ 
+.icon-home:before{content:'\e613';}
+.icon-home1:before{content:'\e7a3';}
+.icon-gouwuche:before{content:'\e60c';}
\ No newline at end of file
diff --git a/static/ali-icon/iconfont.ttf b/static/ali-icon/iconfont.ttf
new file mode 100644
index 0000000..ddcc154
--- /dev/null
+++ b/static/ali-icon/iconfont.ttf
Binary files differ
diff --git a/static/ali-icon/stylesheet.acss b/static/ali-icon/stylesheet.acss
new file mode 100644
index 0000000..c9e0071
--- /dev/null
+++ b/static/ali-icon/stylesheet.acss
@@ -0,0 +1,117 @@
+@font-face {font-family: "iconfont";
+  src: url('iconfont.eot?t=1607396874051'); /* IE9 */
+  src: url('iconfont.eot?t=1607396874051#iefix') format('embedded-opentype'), /* IE6-IE8 */
+  url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAA3MAAsAAAAAGhQAAA1/AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFQAqiCJsdATYCJANoCzYABCAFhG0HgmgbqxWjopyxhpP91YIuYXytQ0aoUEWiiVltsdZBtfyocM+mHIizfE15XF6JE/xD936eO6W/t6VVXK8gPRpOBDqVihSQBQvIgIQ/AXAs76OWARyVOHtaVNLaJ56gA5k+beMG6UvVObWNdK3pwMQxtTqVNuUU+y0pJ+vDW0+p287EsLMxPc75Ly2a4qtAMyli7bTFJMW8kKSj82IzL3/8G2VzOlFcivpg6kk7NZgLCRAAsXgMbPXsEdj/b79v9c8K0NZCwQbTmCht5vudd+fvXnzWff4iKgmaNRqH5O/9NX0f80Y0TRAbqeLDfjOfrgIszMLG3L5u92AIFJvKBfqPLq6DMocoYZMVo2RQ9q3iUvIkJULMiGF0SUQKfjGXAPxif1/vCEtg+BDkoe7mDqNg58WkH9I/TJSMhM444WeA02hgwTk46Dy25J2cDefMKXElYQ/pymGbruPjdDBCnX27MK9QkWIlSmWblitPvkwjL4iSrKgaXRzb0H9eFLJxA6gdrSt00BZgno4LsECnBVik8wIs0WUBlukmxAMtFOXRQQH0UAADFMAIBTCBGIAZii5hAeGBFUQANhAR2EEk4ACRgRNEAS4QFbhBNOABIeAFYYAPhAUqIvvHWTVGuIC3Al+H8AjRL6zEsesOdAY9nBgqscw6dgx9EgkyyzNStYpaC7mUYRiLWfSSiGltNCrCskOX0Fqetc79t5X5+jhvVzcXhp2VvMuLs3U/10JYTKHpMSjNGjff2q1mpk2vR/p3rwnMIwH1HNe+lGo0xAWNZd6QfTWFl5HuVLs6yvN8BvVU0zVaQYsmopvEVnW1tZKadqRQ67qMonCSxAqt1Got6RWQPH5H3DeZ8MdX9fkOkkHsYa28jfJlntH4tXhLVXgr6dGvEWplQ+FlSutzPs2aLO2MFUpy6rGIyiybi/5NFFGsnKiBs7GSrCmUVkr0UbNIDdGh9SZYg+TMfr9h7SJmr0e7xo9zmlrGYJ0OZ7PYR1lsWlHNgtxIlNCTWPXOrHwrX9zKnKgVmwUVT+QwoSPMIktLDjPPEqpzcuKAOEyl8oidHYeWMhlMzeKcI9hnIjgUOlTYUcOGcti+8KWEf0x4eIkCLpfFBiVTmByQyylFEFCIcBoEnFwOkwIMgLx7XEMKON7o4twB+WyiXG8kATKuRzujn8h2oSQ3pd2pTJEafDhyLJouJDF7wwRD531H+MvCmJ1wtluRctJZlWtpFsG8hnWp3DUE3ElO7fPUSlnX8QHvZk0a5peW4rOAAWBMBUOM6iGg82EQNsk+BulmDa8woZnKASxj7UjCZXOYD/O7QesI/5Rkv5keHgMM4K9qCFJUD1nRMKMavks76hhDDB4MZCYJGCkCDGaL9snFj5LyldbbY30UQyUlegT4VS1UZSoVRZEeTE4vnO0g5DfQr9FqJdm9jcqmPkbPzawbGbS8QTuTmmNcuoRmSodUrKPUZz4LJFd1OqRCWQ2cXMYKk0WroGp3kCfUrGyVDVU7AoYY2kgyVT0Lh5pIUsOv683u19NsJDWaGdLcBsYiI+xIcX0PJ1BcrxJIHkiC+GhXQyk7KXsjGKEGGrRLbnV+HvMSiZVTZIpKK7trxeQUFNayBmYrsVYyjJQJJC1ZVgMDUtWDRGUdnJWhoq5TAExBNi1A38qRAWVpb2pTZiIoqGedc4rkAYYqNIrq+uIiJuYlaBF0qQkOIiAip6SlwVG++TJyKo4SvSQ8EVbGvl2Hd6c7St09Cj3dDiKdEhIZovYhpSi5D475StMIn5Q0vwwAi9ALhnGYgDFYCmeL8iwYWhRaOmmQMbOhcZTj3SNUOOyYygCwjjEwWkbT1sCAQagF/QK4uJ4958eaUwTwTKnX4UeLi+rsjGrUJaWcWb/EmKiVrQc5+NtQTgWf1dpWaFrXlAgDRpLGoGPLuV1wGdde9t3p7UD+kD1DNYzshXYaXDVo2Yc1jilHINi1pEbAWNb2AczMSvUCbHXu8+xv697SNd4j3ftQafmvHf7sKJ26xD8NY4khELr/gFUA99fO6Zvj9YLfrshdyQxnYfNbLwktpCt07ZNm1ey7YBBGex+ZOFHm8cvv5Q7UPBR52XDn6OIDxsfy6Zcu0fOpkKW+h9vJezO9tpaO+GZFIqY8qfOme6acXXvvyeaDkw9yzf9P82qQtwXgq4WSQKJN3nB1X/5BccYtArWUByc8eKBNUB5g+dYnF/m5+QeSW8Cdn2I1R1HZLbSSCnKRH5t/hgdacJE/uGAoamI8Hj5xaOEAulSBMG7h03JDWx0EqKUkKP6K2H5ReyAen1eb9740C1NFfCDevkid6tX6D0l/YXngLDnv0BGQFL/ObKtc/wd4NRaQALDAZLONeF29GSbK342Hwu4d2+zn+tDkqU42NAM9a2tIT9d4EnosDnJfo4SmqHZh+b15fdef+2VgZeYoXwsd3noY2rJ2K6DEIO5gAndw8OzjblKwFE3Vohq3Xb6xalfvbG9buoGuNQ/S15OmxDU/xfYON0YonqYwv2guMt+IJUN3hOdAbU1SdzenrbfyDsu3miUFrLtNqPOkBNfjKT0+S6aPRkGREBIRNeq4fE7sncpPR0Jnz9bS3TXVws4mAESAOHvxtcCSBcWBt3nCKxbWU16zDwQxIO6M7szbs0S/1kevg1N+rYtZ+sTWjRucjpX1sy6efid2+qfEg0hkq4+NgBt2ILGWpwVf2kZfXWKzWexLYEztiXou4y9zR91bRQiYKJrIV0YBiCh4lI/zM4+gS1FYOpPK9BTFYLCW/oeWo57MBnGZr15dZpNTe3lh+ZofcX4v2mRibjIKxobLRPBQXlNaJ55GgIhal8Hd3e/TNoQ7oyOocybKR7GxZeiyt9oAkDV6FAXj4xWhW7foFVQYUt/DHdR7J62zk7Yz2GXj3eVZHT82fO8/BMtpRIRAsU/v+vIt09wzgmk7Ozt3prnF+iGpjvPuxseLnCYPSOKrjl60n4ekxPnGWu3YNPO/nVZxNlE2wK3dcD0sKiNa9rbWf/Uj/G4xqr42EmthK9R8UtukoAlsi2k/NKaR/gG8b2AMu3jP4njOppEcNGdkCI2nvn07pbS/oxzlRWap+cjeZDVwYEaHzIg1vArdFD2jT3gmOml+LUE/xNU4fgNWvO+6eZl/ubSiVKKxufzsExBC375Bwg80cpBJKjPB+JRjFBlduLAEQUPBbElu+Kyabc/DansDMkCYoXOqRJLKX68KE/j74ylCxRm9tWHfttaEzYrLBdJQBC1ZuHAURYINxbwS1OlrjK0tb8CbwLITc0VcsZ3rghZr5RIIKJ+sdaGrHSK2FXM9nPlK/jtmA9rAxczEYnPX166Q+a7AbzXvyUfRsTMfLWYjF34YnP37OF89/OmYCNzgAXJ4A62okLaBbi17WlX/sbbRScKduoFWWETTXTYUFm7wSYTS0yFpaVm6IpEmoykUWyUq0gGPrgTkSaZ/NgWx+KYgLmkrdgJoAv7xMYYD1NFG/Dx80/gmEAvc2pRLLORWHXS6fERxu3ziBPhiMzp6mc2S4PIkulGoQM1ImHx0TSahBhgTwFdnqicnMNQCdKk/UIOlw6hsEehrdGyJDgJPFRC2gTkH5WzqHLbNkmE+ymcBdJ94sBAR8i9HmcNasB3Iecq4bYqjOB/NxFYrkcwSTKCVbGKZ/kqBEmzzLO2/EvjpCW+M9+RT4BVP48jPxvNjavHPtOMiyINkEMhMRyGaLRUKmc9jLMHURIPHbIqJ6YH3hMa77bZY/q/R12pFWNK3n/oqb4aAcHoC5Gt/Q07pP4yXl/P/3F617j70etn2c6Bm4W8Eyn/Hx48t3/8j6Ih4zn99PezKo//xe3WU/xMH7BnALmffWeaXXvUXZJghP5lNXWquTW5eXSbj8T8CMi7zquDCHC8YyxUUJHNFuitt5XC26RWPdAL2Y7SprOU1dplnYVPXjpHyJ3I/Mnpib9iatNr/G9S/avX/fiuzSDPsc0likkDP0E8KEzaR14V7RgmsvhQpYXZYtIMsG2p0xmq7pDcZUGg9TJCKWc9d0wu5w79t9ILLjWiDW8k+c9nn3KsueJBc8uLM0OjVnC05Cmfg1IXEZdodN0Z/uTXtQUAg+4l7iz55MJ3lxatA/gSrw95U+wikh0hMX4UJ0cXqWl+1Nr0ExVaSN8qm3gKlpl5sjNaD7cfggHgMkj6pTe9jERMm4kh6OLAWxZxwBqEfae/n2+NxHDfoKMQkqLpFgOSNuSPClNflF4WQE1/cq4b+/CWgMEuilH0+lr8FSMpcv1CjUnUOduy4XPvsytbbniibdmQTE9rOBCWEQdkAS1uQsBHf3QwIeSMLJZrmtlXJx5rL64ya18nWuAooyNCrGVk5eQVFJeU/m/9Kaho0akrTmtGs5jSvBS1qScta0arWSF9gOQUTg3s0xQOW7g06L0ZiqpGfpVOWcaJboQcpTxLh85Dn5WlpwUWSapJPMkr7/I5JoDljnIqkswamBZ8hv5sCFWYTaWxh2yNBfYdNqDmCyraoHhhW0iQ0SZa3tTRd8C5uI6eM9WXQ/MIHEk03n/EZLOeRywcMlN5N5RCeOdU8Y1tN69y2MQ8E7k1jao6ryYHsHVsx0bX8wl0ZBA==') format('woff2'),
+  url('iconfont.woff?t=1607396874051') format('woff'),
+  url('iconfont.ttf?t=1607396874051') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+  url('iconfont.svg?t=1607396874051#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.iconhuabeifenqi:before {
+  content: "\e823";
+}
+
+.iconxuanze:before {
+  content: "\e824";
+}
+
+.iconxiaoshouwangluo_h:before {
+  content: "\e825";
+}
+
+.iconxiaoshouwangluo:before {
+  content: "\e826";
+}
+
+.iconarrow-up:before {
+  content: "\e81b";
+}
+
+.iconcalendar:before {
+  content: "\e81c";
+}
+
+.iconarrow-right:before {
+  content: "\e81d";
+}
+
+.icontime:before {
+  content: "\e81e";
+}
+
+.icondingdanliebiao:before {
+  content: "\e81f";
+}
+
+.iconuser:before {
+  content: "\e820";
+}
+
+.iconemail:before {
+  content: "\e821";
+}
+
+.iconstore:before {
+  content: "\e822";
+}
+
+.icontuichudenglu:before {
+  content: "\e819";
+}
+
+.iconxiugaimima:before {
+  content: "\e81a";
+}
+
+.iconshaixuan:before {
+  content: "\e814";
+}
+
+.iconsousuo:before {
+  content: "\e815";
+}
+
+.iconkehuxingming:before {
+  content: "\e816";
+}
+
+.iconliebiaojiantou:before {
+  content: "\e817";
+}
+
+.iconxiangxia:before {
+  content: "\e818";
+}
+
+.iconyewushuju:before {
+  content: "\e80e";
+}
+
+.iconyewubanli:before {
+  content: "\e80f";
+}
+
+.icongerenzhongxin:before {
+  content: "\e810";
+}
+
+.iconyewushuju_h:before {
+  content: "\e811";
+}
+
+.icongerenzhongxin_h:before {
+  content: "\e812";
+}
+
+.iconyewubanli_h:before {
+  content: "\e813";
+}
+
diff --git a/static/img/backcircl.png b/static/img/backcircl.png
new file mode 100644
index 0000000..8dc005c
--- /dev/null
+++ b/static/img/backcircl.png
Binary files differ
diff --git a/static/img/backpic.png b/static/img/backpic.png
new file mode 100644
index 0000000..8ab9129
--- /dev/null
+++ b/static/img/backpic.png
Binary files differ
diff --git a/static/img/hbfq.png b/static/img/hbfq.png
new file mode 100644
index 0000000..e5cb994
--- /dev/null
+++ b/static/img/hbfq.png
Binary files differ
diff --git a/static/img/logo.png b/static/img/logo.png
new file mode 100644
index 0000000..7a7a820
--- /dev/null
+++ b/static/img/logo.png
Binary files differ
diff --git a/static/img/nodata.png b/static/img/nodata.png
new file mode 100644
index 0000000..0dfe03a
--- /dev/null
+++ b/static/img/nodata.png
Binary files differ
diff --git a/static/img/shsk.png b/static/img/shsk.png
new file mode 100644
index 0000000..c884274
--- /dev/null
+++ b/static/img/shsk.png
Binary files differ
diff --git a/test.jpg b/test.jpg
new file mode 100644
index 0000000..2075a13
--- /dev/null
+++ b/test.jpg
Binary files differ
diff --git a/utils/ajaxFn.js b/utils/ajaxFn.js
new file mode 100644
index 0000000..c9178e6
--- /dev/null
+++ b/utils/ajaxFn.js
@@ -0,0 +1,99 @@
+const md5 = require('./md5.js')
+const app = getApp()
+const baseUrl = 'https://t.finlean.com'
+/**
+ * url请求地址
+ * data 数据对象
+ * method 方法
+ * success成功回调
+ * fail失败回调
+ * **/ 
+function $api(url,method,success,fail,needLogin,data){
+  my.showLoading({
+    title: '正在加载...'
+  });
+  // 记录发起请求的当前时间
+  let timeStart = Date.now();
+  var str = ''
+  for(let key in data){
+    str = str + data[key]
+  }
+  var params = {...data}
+  console.log(needLogin)
+  if(needLogin){
+    console.log('验签字符串',str+my.getStorageSync ({ key: 'sessionId' }).data.sessionId)
+    let sessionId = my.getStorageSync ({ key: 'sessionId' }).data.sessionId
+    // params.sessionId = sessionId
+    params.jttechSign = md5.hex_md5(str+sessionId)
+  }
+  my.request({
+    url: `${baseUrl}${url}`,
+    headers: {'content-type':'application/json'},
+    method: method,
+    data: {
+      ...params
+    },
+    timeout: 60000,
+    dataType: 'json',
+    success: success,
+    fail: fail,
+    complete:function(res){
+      // console.log(`耗时${Date.now() - timeStart}`, baseUrl + url);
+      
+      if(res.status == 200){
+        setTimeout(function () {
+          my.hideLoading();
+        }, 1000);
+      }else{
+        if(res.data.code == 99999){
+          my.hideLoading();
+          //登录超时
+          my.showToast({
+            type: 'none',
+            content: res.data.errMsg,
+            duration: 3000,
+            success: () => {
+              my.reLaunch({
+                url: '/pages/index/index',
+              })
+            },
+          });
+        }
+        if(res.data.errorCode == -999){
+          //接口错误
+          my.hideLoading();
+          my.showToast({
+            type: 'none',
+            content: res.data.errMsg,
+          })
+        }
+        if(res.status == 400 || res.status == 500){
+          //接口错误
+          my.hideLoading();
+          if(res.data.status==90040006){
+            //登录超时
+            my.showToast({
+              type: 'none',
+              content: res.data.message,
+              duration: 1000,
+              success: () => {
+                my.reLaunch({
+                  url: '/pages/index/index',
+                })
+              },
+            });
+          }else{
+            my.hideLoading();
+            my.showToast({
+              type: 'none',
+              content: res.data.errMsg,
+            })
+          }
+        }
+      }
+    }
+  });
+}
+module.exports = {
+    ajax: $api,
+}
\ No newline at end of file
diff --git a/utils/date.js b/utils/date.js
new file mode 100644
index 0000000..192e0e8
--- /dev/null
+++ b/utils/date.js
@@ -0,0 +1,66 @@
+
+/**
+ * 时间格式化函数,如果没有传递格式就返回时间戳
+ * @param date Date 对象
+ * @param fmt  格式规范
+ * @returns {*}
+ */
+export default function(date, fmt) {
+    if (!date) {
+        return null;
+    }
+    if (typeof date === 'string') {
+        date = new Date(date.replace(/-/g, '/'));
+    }
+    if (typeof date === 'number') {
+        date = new Date(date);
+    }
+    if (fmt === undefined) {
+        return Number(date);
+    } else {
+        var o = {
+            'M+': date.getMonth() + 1,
+            'D+': date.getDate(),
+            'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
+            'H+': date.getHours(),
+            'm+': date.getMinutes(),
+            's+': date.getSeconds(),
+            'q+': Math.floor((date.getMonth() + 3) / 3),
+            S: date.getMilliseconds()
+        };
+        var week = {
+            '0': '\u65e5',
+            '1': '\u4e00',
+            '2': '\u4e8c',
+            '3': '\u4e09',
+            '4': '\u56db',
+            '5': '\u4e94',
+            '6': '\u516d'
+        };
+        if (/(Y+)/.test(fmt)) {
+            fmt = fmt.replace(
+                RegExp.$1,
+                (date.getFullYear() + '').substr(4 - RegExp.$1.length)
+            );
+        }
+        if (/(E+)/.test(fmt)) {
+            fmt = fmt.replace(
+                RegExp.$1,
+                (RegExp.$1.length > 1
+                    ? RegExp.$1.length > 2 ? '\u661f\u671f' : '\u5468'
+                    : '') + week[date.getDay() + '']
+            );
+        }
+        for (var k in o) {
+            if (new RegExp('(' + k + ')').test(fmt)) {
+                fmt = fmt.replace(
+                    RegExp.$1,
+                    RegExp.$1.length === 1
+                        ? o[k]
+                        : ('00' + o[k]).substr(('' + o[k]).length)
+                );
+            }
+        }
+        return fmt;
+    }
+}
diff --git a/utils/md5.js b/utils/md5.js
new file mode 100644
index 0000000..f4ee524
--- /dev/null
+++ b/utils/md5.js
@@ -0,0 +1,179 @@
+function MD5(sMessage)
+{
+    function RotateLeft(lValue, iShiftBits)
+    {
+        return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits)); }
+    function AddUnsigned(lX,lY)
+    {
+        var lX4,lY4,lX8,lY8,lResult;
+        lX8 = (lX & 0x80000000);
+        lY8 = (lY & 0x80000000);
+        lX4 = (lX & 0x40000000);
+        lY4 = (lY & 0x40000000);
+        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
+        if (lX4 & lY4) {
+            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
+        }
+        if (lX4 | lY4) {
+            if (lResult & 0x40000000) {
+                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
+            } else {
+                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
+            }
+        } else {
+            return (lResult ^ lX8 ^ lY8);
+        }
+    }
+    function F(x,y,z)
+    {
+        return (x & y) | ((~x) & z); }
+    function G(x,y,z)
+    {
+        return (x & z) | (y & (~z)); }
+    function H(x,y,z)
+    {
+        return (x ^ y ^ z); }
+    function I(x,y,z)
+    {
+        return (y ^ (x | (~z))); }
+    function FF(a,b,c,d,x,s,ac)
+    {
+        a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
+        return AddUnsigned(RotateLeft(a, s), b);
+    }
+    function GG(a,b,c,d,x,s,ac)
+    {
+        a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
+        return AddUnsigned(RotateLeft(a, s), b);
+    }
+    function HH(a,b,c,d,x,s,ac)
+    {
+        a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
+        return AddUnsigned(RotateLeft(a, s), b);
+    }
+    function II(a,b,c,d,x,s,ac)
+    {
+        a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
+        return AddUnsigned(RotateLeft(a, s), b);
+    }
+    function ConvertToWordArray(sMessage)
+    {
+        var lWordCount;
+        var lMessageLength = sMessage.length;
+        var lNumberOfWords_temp1=lMessageLength + 8;
+        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
+        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
+        var lWordArray=Array(lNumberOfWords-1);
+        var lBytePosition = 0;
+        var lByteCount = 0;
+        while ( lByteCount < lMessageLength ) {
+            lWordCount = (lByteCount-(lByteCount % 4))/4;
+            lBytePosition = (lByteCount % 4)*8;
+            lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount)<<lBytePosition));
+            lByteCount++;
+        }
+        lWordCount = (lByteCount-(lByteCount % 4))/4;
+        lBytePosition = (lByteCount % 4)*8;
+        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
+        lWordArray[lNumberOfWords-2] = lMessageLength<<3;
+        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
+        return lWordArray;
+    }
+    function WordToHex(lValue)
+    {
+        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
+        for (lCount = 0; lCount<=3; lCount++) {
+            lByte = (lValue>>>(lCount*8)) & 255;
+            WordToHexValue_temp = "0" + lByte.toString(16);
+            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
+        }
+        return WordToHexValue;
+    }
+    var x=Array();
+    var k,AA,BB,CC,DD,a,b,c,d
+    var S11=7, S12=12, S13=17, S14=22;
+    var S21=5, S22=9 , S23=14, S24=20;
+    var S31=4, S32=11, S33=16, S34=23;
+    var S41=6, S42=10, S43=15, S44=21;
+    // Steps 1 and 2. Append padding bits and length and convert to words
+    x = ConvertToWordArray(sMessage);
+    // Step 3. Initialise
+    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
+    // Step 4. Process the message in 16-word blocks
+    for (k=0; k<x.length; k+=16) {
+        AA=a; BB=b; CC=c; DD=d;
+        a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
+        d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
+        c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
+        b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
+        a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
+        d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
+        c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
+        b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
+        a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
+        d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
+        c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
+        b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
+        a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
+        d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
+        c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
+        b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
+        a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
+        d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
+        c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
+        b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
+        a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
+        d=GG(d,a,b,c,x[k+10],S22,0x2441453);
+        c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
+        b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
+        a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
+        d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
+        c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
+        b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
+        a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
+        d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
+        c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
+        b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
+        a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
+        d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
+        c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
+        b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
+        a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
+        d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
+        c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
+        b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
+        a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
+        d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
+        c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
+        b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
+        a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
+        d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
+        c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
+        b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
+        a=II(a,b,c,d,x[k+0], S41,0xF4292244);
+        d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
+        c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
+        b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
+        a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
+        d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
+        c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
+        b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
+        a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
+        d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
+        c=II(c,d,a,b,x[k+6], S43,0xA3014314);
+        b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
+        a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
+        d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
+        c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
+        b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
+        a=AddUnsigned(a,AA); b=AddUnsigned(b,BB); c=AddUnsigned(c,CC); d=AddUnsigned(d,DD);
+    }
+    // Step 5. Output the 128 bit digest
+    var temp= WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
+    return temp.toLowerCase();
+}
+
+module.exports = {
+    hex_md5: MD5,
+}
+

--
Gitblit v1.8.0