From 82b8d215065646cb89f8c99f025577ec3a42724d Mon Sep 17 00:00:00 2001
From: lnljyang <506960565@qq.com>
Date: Tue, 30 Dec 2025 09:44:46 +0800
Subject: [PATCH] Initial commit
---
.gitignore | 5 +
App.vue | 65 +
README.en.md | 36 +
README.md | 39 +
api/annualReview.js | 31 +
api/audit.js | 47 +
api/dic.js | 0
api/examination.js | 23 +
api/failure.js | 25 +
api/fault.js | 10 +
api/index.js | 16 +
api/login.js | 22 +
api/maintainTodo.js | 32 +
api/map.js | 48 +
api/returnCar.js | 93 +
api/returnCost.js | 63 +
api/standbyVehicle.js | 67 +
api/truck.js | 33 +
api/truckPreparation.js | 20 +
api/truckRent.js | 44 +
api/unusualActionApply.js | 54 +
components/ba-tree-picker/README.md | 124 +
components/ba-tree-picker/ba-tree-picker.vue | 775 ++++
components/dic-select/dic-select.vue | 88 +
components/dic-select/select-show.vue | 70 +
.../multiple-picker/multiple-picker.vue | 262 ++
components/no-bad-table/loading.vue | 73 +
components/no-bad-table/table.scss | 293 ++
components/no-bad-table/table.vue | 841 ++++
components/tabBar/tabBar.vue | 163 +
components/upload_img_video.vue | 153 +
index.html | 20 +
main.js | 90 +
manifest.json | 98 +
package-lock.json | 954 ++++
package.json | 19 +
pageSub/annualReview/detail.vue | 1831 ++++++++
pageSub/annualReview/index.vue | 294 ++
pageSub/failure/detail.vue | 1832 ++++++++
pageSub/failure/index.vue | 272 ++
pageSub/returnCarCost/detail.vue | 1669 +++++++
pageSub/returnCarCost/index.vue | 348 ++
pageSub/truckPreparation/detail.vue | 1600 +++++++
pageSub/truckPreparation/index.vue | 287 ++
pages.json | 277 ++
pages/audit/detail.vue | 1052 +++++
pages/audit/index.vue | 290 ++
pages/face/index.vue | 87 +
pages/index/index.vue | 673 +++
pages/login/login.vue | 187 +
pages/login/user-login/index.vue | 372 ++
pages/maintain/detail.vue | 2060 +++++++++
pages/maintain/index.vue | 309 ++
pages/map/index.vue | 1639 +++++++
pages/my/my.vue | 84 +
pages/returnCar/cost.vue | 1917 ++++++++
pages/returnCar/detail.vue | 3869 +++++++++++++++++
pages/returnCar/index.vue | 582 +++
pages/standbyVehicle/detail.vue | 591 +++
pages/standbyVehicle/detailInfo.vue | 1031 +++++
pages/standbyVehicle/index.vue | 288 ++
pages/truckRent/detail.vue | 3331 ++++++++++++++
pages/truckRent/detailInfo.vue | 625 +++
pages/truckRent/index.vue | 478 ++
pages/truckRent/modal.vue | 112 +
pages/unusualActionApply/detail.vue | 1896 ++++++++
pages/unusualActionApply/index.vue | 416 ++
pages/webview/index.vue | 39 +
patches/uview-ui+2.0.38.patch | 32 +
project.config.json | 35 +
project.private.config.json | 22 +
static/audit.png | Bin 0 -> 854 bytes
static/baoyang.png | Bin 0 -> 1834 bytes
static/beiche.png | Bin 0 -> 2963 bytes
static/bi.png | Bin 0 -> 558 bytes
static/chongdianzhan.png | Bin 0 -> 1384 bytes
static/chongdianzhan_white.png | Bin 0 -> 710 bytes
static/cost.png | Bin 0 -> 4371 bytes
static/detail.png | Bin 0 -> 938 bytes
static/electricity.png | Bin 0 -> 721 bytes
static/expand-left-line.png | Bin 0 -> 1238 bytes
static/fault.png | Bin 0 -> 1212 bytes
static/g_bg.png | Bin 0 -> 4543 bytes
static/huanche.png | Bin 0 -> 2427 bytes
static/hydrogen.png | Bin 0 -> 881 bytes
static/hydrogenStation.png | Bin 0 -> 1129 bytes
static/jiaoche.png | Bin 0 -> 4038 bytes
static/jiaqingzhan.png | Bin 0 -> 839 bytes
static/kachetou.png | Bin 0 -> 842 bytes
static/login_bg.png | Bin 0 -> 5607 bytes
static/logo.jpg | Bin 0 -> 2678 bytes
static/logo.png | Bin 0 -> 42159 bytes
static/logo3.png | Bin 0 -> 4933 bytes
static/mapcar.png | Bin 0 -> 1386 bytes
static/mapcar2.png | Bin 0 -> 1406 bytes
static/maph.png | Bin 0 -> 484 bytes
static/maph2.png | Bin 0 -> 454 bytes
static/nianshen.png | Bin 0 -> 1462 bytes
static/offline.png | Bin 0 -> 1319 bytes
static/online-exam.svg | 1 +
static/online.png | Bin 0 -> 1046 bytes
static/pdf.png | Bin 0 -> 2285 bytes
static/reset.png | Bin 0 -> 1282 bytes
static/yidong.png | Bin 0 -> 1409 bytes
static/zhengbei.png | Bin 0 -> 5730 bytes
static/附件上传.png | Bin 0 -> 1422 bytes
store/index.js | 24 +
template.html | 28 +
uni.promisify.adaptor.js | 11 +
uni.scss | 82 +
.../curry-multi-select/curry-multi-select.vue | 293 ++
uni_modules/curry-multi-select/package.json | 29 +
uni_modules/uni-data-select/changelog.md | 39 +
.../uni-data-select/uni-data-select.vue | 562 +++
uni_modules/uni-data-select/package.json | 86 +
uni_modules/uni-data-select/readme.md | 8 +
uni_modules/uni-load-more/changelog.md | 25 +
.../components/uni-load-more/i18n/en.json | 5 +
.../components/uni-load-more/i18n/index.js | 8 +
.../uni-load-more/i18n/zh-Hans.json | 5 +
.../uni-load-more/i18n/zh-Hant.json | 5 +
.../uni-load-more/uni-load-more.vue | 404 ++
uni_modules/uni-load-more/package.json | 84 +
uni_modules/uni-load-more/readme.md | 14 +
uni_modules/uni-scss/changelog.md | 8 +
uni_modules/uni-scss/index.scss | 1 +
uni_modules/uni-scss/package.json | 82 +
uni_modules/uni-scss/readme.md | 4 +
uni_modules/uni-scss/styles/index.scss | 7 +
.../uni-scss/styles/setting/_border.scss | 3 +
.../uni-scss/styles/setting/_color.scss | 66 +
.../uni-scss/styles/setting/_radius.scss | 55 +
.../uni-scss/styles/setting/_space.scss | 56 +
.../uni-scss/styles/setting/_styles.scss | 167 +
.../uni-scss/styles/setting/_text.scss | 24 +
.../uni-scss/styles/setting/_variables.scss | 146 +
.../uni-scss/styles/tools/functions.scss | 19 +
uni_modules/uni-scss/theme.scss | 31 +
uni_modules/uni-scss/variables.scss | 62 +
utils/auth.js | 26 +
utils/fileManager.js | 623 +++
utils/init.js | 50 +
utils/key.js | 26 +
utils/permission.js | 74 +
utils/request.js | 580 +++
utils/storage.js | 32 +
utils/time.js | 35 +
147 files changed, 39113 insertions(+)
create mode 100644 .gitignore
create mode 100644 App.vue
create mode 100644 README.en.md
create mode 100644 README.md
create mode 100644 api/annualReview.js
create mode 100644 api/audit.js
create mode 100644 api/dic.js
create mode 100644 api/examination.js
create mode 100644 api/failure.js
create mode 100644 api/fault.js
create mode 100644 api/index.js
create mode 100644 api/login.js
create mode 100644 api/maintainTodo.js
create mode 100644 api/map.js
create mode 100644 api/returnCar.js
create mode 100644 api/returnCost.js
create mode 100644 api/standbyVehicle.js
create mode 100644 api/truck.js
create mode 100644 api/truckPreparation.js
create mode 100644 api/truckRent.js
create mode 100644 api/unusualActionApply.js
create mode 100644 components/ba-tree-picker/README.md
create mode 100644 components/ba-tree-picker/ba-tree-picker.vue
create mode 100644 components/dic-select/dic-select.vue
create mode 100644 components/dic-select/select-show.vue
create mode 100644 components/multiple-picker/multiple-picker.vue
create mode 100644 components/no-bad-table/loading.vue
create mode 100644 components/no-bad-table/table.scss
create mode 100644 components/no-bad-table/table.vue
create mode 100644 components/tabBar/tabBar.vue
create mode 100644 components/upload_img_video.vue
create mode 100644 index.html
create mode 100644 main.js
create mode 100644 manifest.json
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 pageSub/annualReview/detail.vue
create mode 100644 pageSub/annualReview/index.vue
create mode 100644 pageSub/failure/detail.vue
create mode 100644 pageSub/failure/index.vue
create mode 100644 pageSub/returnCarCost/detail.vue
create mode 100644 pageSub/returnCarCost/index.vue
create mode 100644 pageSub/truckPreparation/detail.vue
create mode 100644 pageSub/truckPreparation/index.vue
create mode 100644 pages.json
create mode 100644 pages/audit/detail.vue
create mode 100644 pages/audit/index.vue
create mode 100644 pages/face/index.vue
create mode 100644 pages/index/index.vue
create mode 100644 pages/login/login.vue
create mode 100644 pages/login/user-login/index.vue
create mode 100644 pages/maintain/detail.vue
create mode 100644 pages/maintain/index.vue
create mode 100644 pages/map/index.vue
create mode 100644 pages/my/my.vue
create mode 100644 pages/returnCar/cost.vue
create mode 100644 pages/returnCar/detail.vue
create mode 100644 pages/returnCar/index.vue
create mode 100644 pages/standbyVehicle/detail.vue
create mode 100644 pages/standbyVehicle/detailInfo.vue
create mode 100644 pages/standbyVehicle/index.vue
create mode 100644 pages/truckRent/detail.vue
create mode 100644 pages/truckRent/detailInfo.vue
create mode 100644 pages/truckRent/index.vue
create mode 100644 pages/truckRent/modal.vue
create mode 100644 pages/unusualActionApply/detail.vue
create mode 100644 pages/unusualActionApply/index.vue
create mode 100644 pages/webview/index.vue
create mode 100644 patches/uview-ui+2.0.38.patch
create mode 100644 project.config.json
create mode 100644 project.private.config.json
create mode 100644 static/audit.png
create mode 100644 static/baoyang.png
create mode 100644 static/beiche.png
create mode 100644 static/bi.png
create mode 100644 static/chongdianzhan.png
create mode 100644 static/chongdianzhan_white.png
create mode 100644 static/cost.png
create mode 100644 static/detail.png
create mode 100644 static/electricity.png
create mode 100644 static/expand-left-line.png
create mode 100644 static/fault.png
create mode 100644 static/g_bg.png
create mode 100644 static/huanche.png
create mode 100644 static/hydrogen.png
create mode 100644 static/hydrogenStation.png
create mode 100644 static/jiaoche.png
create mode 100644 static/jiaqingzhan.png
create mode 100644 static/kachetou.png
create mode 100644 static/login_bg.png
create mode 100644 static/logo.jpg
create mode 100644 static/logo.png
create mode 100644 static/logo3.png
create mode 100644 static/mapcar.png
create mode 100644 static/mapcar2.png
create mode 100644 static/maph.png
create mode 100644 static/maph2.png
create mode 100644 static/nianshen.png
create mode 100644 static/offline.png
create mode 100644 static/online-exam.svg
create mode 100644 static/online.png
create mode 100644 static/pdf.png
create mode 100644 static/reset.png
create mode 100644 static/yidong.png
create mode 100644 static/zhengbei.png
create mode 100644 static/附件上传.png
create mode 100644 store/index.js
create mode 100644 template.html
create mode 100644 uni.promisify.adaptor.js
create mode 100644 uni.scss
create mode 100644 uni_modules/curry-multi-select/components/curry-multi-select/curry-multi-select.vue
create mode 100644 uni_modules/curry-multi-select/package.json
create mode 100644 uni_modules/uni-data-select/changelog.md
create mode 100644 uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue
create mode 100644 uni_modules/uni-data-select/package.json
create mode 100644 uni_modules/uni-data-select/readme.md
create mode 100644 uni_modules/uni-load-more/changelog.md
create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
create mode 100644 uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
create mode 100644 uni_modules/uni-load-more/package.json
create mode 100644 uni_modules/uni-load-more/readme.md
create mode 100644 uni_modules/uni-scss/changelog.md
create mode 100644 uni_modules/uni-scss/index.scss
create mode 100644 uni_modules/uni-scss/package.json
create mode 100644 uni_modules/uni-scss/readme.md
create mode 100644 uni_modules/uni-scss/styles/index.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_border.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_color.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_radius.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_space.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_styles.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_text.scss
create mode 100644 uni_modules/uni-scss/styles/setting/_variables.scss
create mode 100644 uni_modules/uni-scss/styles/tools/functions.scss
create mode 100644 uni_modules/uni-scss/theme.scss
create mode 100644 uni_modules/uni-scss/variables.scss
create mode 100644 utils/auth.js
create mode 100644 utils/fileManager.js
create mode 100644 utils/init.js
create mode 100644 utils/key.js
create mode 100644 utils/permission.js
create mode 100644 utils/request.js
create mode 100644 utils/storage.js
create mode 100644 utils/time.js
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a42e93e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/.idea/
+/.hbuilderx/
+/unpackage/dist/dev/
+/unpackage/dist/build/
+/node_modules/
\ No newline at end of file
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..9b68f21
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,65 @@
+
+
+
+
\ No newline at end of file
diff --git a/README.en.md b/README.en.md
new file mode 100644
index 0000000..420805b
--- /dev/null
+++ b/README.en.md
@@ -0,0 +1,36 @@
+# 资产管理平台小程序
+
+#### Description
+{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
+
+#### Software Architecture
+Software architecture description
+
+#### Installation
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Instructions
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Contribution
+
+1. Fork the repository
+2. Create Feat_xxx branch
+3. Commit your code
+4. Create Pull Request
+
+
+#### Gitee Feature
+
+1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
+2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
+3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
+4. The most valuable open source project [GVP](https://gitee.com/gvp)
+5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
+6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f2fb07f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,39 @@
+# 资产管理平台小程序
+
+#### 介绍
+{**以下是 Gitee 平台说明,您可以替换此简介**
+Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
+无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
+
+#### 软件架构
+软件架构说明
+
+
+#### 安装教程
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### 使用说明
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### 参与贡献
+
+1. Fork 本仓库
+2. 新建 Feat_xxx 分支
+3. 提交代码
+4. 新建 Pull Request
+
+
+#### 特技
+
+1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
+2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
+3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
+4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
+5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
+6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/api/annualReview.js b/api/annualReview.js
new file mode 100644
index 0000000..2a72a76
--- /dev/null
+++ b/api/annualReview.js
@@ -0,0 +1,31 @@
+import axios from "@/utils/request";
+
+export default {
+ queryTakePageList(params) {
+ return axios.post(`/vehicle/vehicleAnnualInspection/queryPageList`, params); // 年审列表
+ },
+ getTakeId(params) {
+ return axios.get(`/vehicle/vehicleAnnualInspection/getVoById`, params); // 年审详情
+ },
+ getAnnualInspectionStatusName(params) {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "dic_annual_inspection_status",
+ }); // 字典数据
+ },
+ save(params) {
+ return axios.post(`/vehicle/vehicleAnnualInspection/save`, params); // add edit
+ },
+ queryIdNames(params) {
+ return axios.get(`/annualReviewServiceStation/queryIdNames`, params); // 年检服务站名称
+ },
+ getToDo(params) {
+ return axios.get(`/vehicle/vehicleAnnualInspection/getToDo`, params); // 年检服务站名称
+ },
+ //获取年审服务站列表
+ // queryStationPageList(params) {
+ // return axios.post(
+ // `/vehicle/annualInspectionServiceStation/queryPageList`,
+ // params
+ // ); // 年审列表
+ // },
+};
diff --git a/api/audit.js b/api/audit.js
new file mode 100644
index 0000000..6e30066
--- /dev/null
+++ b/api/audit.js
@@ -0,0 +1,47 @@
+import axios from "@/utils/request";
+
+export default {
+ // queryAuditList(params) {
+ // return axios.post(`/truckRentTask/queryTakePageList`, params);
+ // },
+ //获取待我审批/getWaitApprovePageList
+ queryAuditList(params) {
+ return axios.get(`/contract/getWaitApprovePageList`, params);
+ },
+ //获取已审批
+ queryAuditedList(params) {
+ return axios.get(`/contract/getApprovedPageList`, params);
+ },
+ //审批历史记录
+ getFlowTaskHistoryList(params) {
+ return axios.get(`/flow/getFlowTaskHistoryList`, params);
+ },
+ getAuditId(params) {
+ return axios.get(`/contract/getById`, params);
+ },
+
+ //审批通过
+ approve(params) {
+ return axios.post(`/flow/approve`, params);
+ },
+ //审批驳回
+ reject(params) {
+ return axios.post(`/flow/reject`, params);
+ },
+ //审批流程回调业务
+ changeStatusByFlowTask(params) {
+ return axios.post(`/contract/changeStatusByFlowTask`, params);
+ },
+
+ //生成提车前应收款 ==yongyin
+ makeContractBill(params) {
+ return axios.post(`/contract/makeContractBill`, params);
+ },
+
+ getSalesManagerDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "sales_manager" });
+ },
+ getAddress(params) {
+ return axios.post(`/baidumap/getAddress`, params);
+ },
+};
diff --git a/api/dic.js b/api/dic.js
new file mode 100644
index 0000000..e69de29
diff --git a/api/examination.js b/api/examination.js
new file mode 100644
index 0000000..80afbf3
--- /dev/null
+++ b/api/examination.js
@@ -0,0 +1,23 @@
+import axios from "@/utils/request";
+
+export default {
+ //考场
+ queryPage(params) {
+ return axios.get("/trainExam/queryPageListForCurrentUser",params);
+ },
+ //考试记录
+ examRecords(params) {
+ return axios.get("/trainExamRecord/queryPageListForDriver",params);
+ },
+ getExamPaper(params){
+ return axios.get("/trainExam/getVoById",params);
+ },
+ //获取考试后的试卷
+ getDoneExamPaper(params){
+ return axios.get("/trainExamRecord/queryVoById",params);
+ },
+ //提交交卷
+ rollIn(params){
+ return axios.post("/trainExamRecord/submitExam",params);
+ }
+}
\ No newline at end of file
diff --git a/api/failure.js b/api/failure.js
new file mode 100644
index 0000000..1b6cc5a
--- /dev/null
+++ b/api/failure.js
@@ -0,0 +1,25 @@
+import axios from "@/utils/request";
+
+export default {
+ queryPageList(params) {
+ return axios.get(`/run/failure/queryPageForWeixin`, params);
+ },
+ getTakeId(params) {
+ return axios.get(`/run/failure/getById`, params);
+ },
+ getMaintain(params) {
+ return axios.get(`/maintain/queryPage`, params); // 维修站信息
+ },
+ add(params){
+ return axios.post(`/run/failure/add`, params); // 添加
+ },
+ edit(params){
+ return axios.put(`/run/failure/edit`, params); // 修改
+ },
+ queryTruckRentInfo(params) {
+ return axios.get(`/contractRentTruck/queryTruckRentInfo`, params); // 查询单个车辆租赁信息
+ },
+ getMaintainanceList(params) {
+ return axios.get(`/maintain/queryPage`, params) // 查询维修站点分页
+ }
+}
\ No newline at end of file
diff --git a/api/fault.js b/api/fault.js
new file mode 100644
index 0000000..92f780d
--- /dev/null
+++ b/api/fault.js
@@ -0,0 +1,10 @@
+import axios from "@/utils/request";
+
+export default {
+ addById(params) {
+ return axios.put(`/run/failure/mobileReport`, params);
+ },
+ queryPageList(params){
+ return axios.get("/run/failure/queryPage",params);
+ }
+}
\ No newline at end of file
diff --git a/api/index.js b/api/index.js
new file mode 100644
index 0000000..d36e65e
--- /dev/null
+++ b/api/index.js
@@ -0,0 +1,16 @@
+/**
+ * url 映射
+ * @author WangLongFei/Alisdon <920124512@qq.com>
+ */
+const files = require.context('../api', false, /\.js$/);
+const modules = {};
+
+files.keys().forEach(key => {
+ if (key !== './index.js') {
+ modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default;
+ }
+});
+
+export default {
+ ...modules
+};
diff --git a/api/login.js b/api/login.js
new file mode 100644
index 0000000..915abd4
--- /dev/null
+++ b/api/login.js
@@ -0,0 +1,22 @@
+import axios from "@/utils/request";
+
+export default {
+ loginByPhoneForDriver(params) {
+ return axios.post(`/auth/loginByPhoneForDriver`, params);
+ },
+ loginDriver(params) {
+ return axios.post(`/auth/loginForDriver`, params);
+ },
+ loginUser(params) {
+ return axios.post(`/auth/login`, params);
+ },
+ logout() {
+ return axios.get(`/auth/logout`);
+ },
+ getUserInfo() {
+ return axios.get(`/auth/getLoginUserInfo`);
+ },
+ getUserMenu() {
+ return axios.get(`/menu/userMenu`);
+ },
+};
\ No newline at end of file
diff --git a/api/maintainTodo.js b/api/maintainTodo.js
new file mode 100644
index 0000000..7bd95ec
--- /dev/null
+++ b/api/maintainTodo.js
@@ -0,0 +1,32 @@
+import axios from "@/utils/request";
+//保养待办接口
+export default {
+ queryPageList(params) {
+ return axios.get(`/maintenanceAgent/queryPageList`, params);
+ },
+ add(params) {
+ return axios.put(`/maintenanceAgent/add`, params); //接口在车辆整备那边调用
+ },
+ edit(params) {
+ return axios.put(`/maintenanceAgent/edit`, params);
+ },
+ getById(params) {
+ return axios.get(`/maintenanceAgent/getAgentInfoById`, params);
+ },
+ //获取保养记录列表
+ getMaintainInfoByCarId(params) {
+ return axios.get(`/maintenanceAgent/getNewAgentItemInfoById`, params);
+ },
+ //查看保养记录
+ getRecords(params) {
+ return axios.get(`/maintenanceAgent/getAgentItemListByIds`, params);
+ },
+ getCostInfoByIds(params) {
+ return axios.post(`/maintenanceAgent/getAgentItemListByIdss`, params);
+ },
+ getPayeeType() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "dic_maintenance_payee_type",
+ }); // 字典数据 收款方类型
+ },
+};
diff --git a/api/map.js b/api/map.js
new file mode 100644
index 0000000..82b03bd
--- /dev/null
+++ b/api/map.js
@@ -0,0 +1,48 @@
+import axios from "@/utils/request";
+
+export default {
+ getHydrogenList(params) {
+ return axios.get(`/WechatLiteApp/Station/search`, params);
+ },
+ getVehicleMarkers(params) {
+ return axios.post(`/WechatLiteApp/Truck/list`, params);
+ },
+ getHydrogenStationMarkers(params) {
+ return axios.post(`/WechatLiteApp/Station/list`, params);
+ },
+ //车辆详情
+ getVehicleDetail(params) {
+ return axios.get(`/WechatLiteApp/Truck/info`, params);
+ },
+ //氢站详情
+ getHydrogenDetail(params) {
+ return axios.get(`/WechatLiteApp/Station/info`, params);
+ },
+ //获取下拉查询车牌号列表
+ getAllplateNumbere(params) {
+ return axios.get(`/WechatLiteApp/Truck/search`, params);
+ },
+ getAddress(params) {
+ return axios.post(`/baidumap/getAddress`, params);
+ },
+ getTruckInfoTree(params) {
+ return axios.get(`/WechatLiteApp/Truck/infoTree`, params);
+ },
+ getStationInfoTree() {
+ return axios.get(`/WechatLiteApp/Station/infoTree`);
+ },
+ getOrgsList() {
+ return axios.get(`/org/queryListByPid`);
+ },
+ getPlateAreaDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_plateArea" }); // 付款状态
+ },
+ getOwnDepartDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "businessDepartment" }); // 业务部门
+ },
+ getHydrogenCoopDic() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "weappMap_cooperation",
+ }); // 合作状态
+ },
+};
diff --git a/api/returnCar.js b/api/returnCar.js
new file mode 100644
index 0000000..0b67e85
--- /dev/null
+++ b/api/returnCar.js
@@ -0,0 +1,93 @@
+import axios from "@/utils/request";
+
+export default {
+ queryTakePageList(params) {
+ return axios.post(`/truckRentTask/queryReturnPageList`, params); // 还车单列表
+ },
+ getTakeId(params) {
+ return axios.get(`/truckRentTask/getReturn`, params); // 还车单详情
+ },
+ getSalesManagerDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "sales_manager" }); // 字典数据
+ },
+ getAddress(params) {
+ return axios.post(`/baidumap/getAddress`, params); // 百度地图 获取当前位置
+ },
+ addTake(params) {
+ return axios.post(`/truckRentTask/addReturn`, params); // 添加还车单
+ },
+ generateWordforReturn(params) {
+ return axios.post(`/truckRentTask/generateWordforReturn`, params); // 生成交车单确认文档
+ },
+ validateTruckByIds(params) {
+ return axios.get(`/contractRentTruck/validateTruckByIds`, params); // 验证车辆是否可用
+ },
+ getFormDataTemplate(params) {
+ return axios.get(`/truckRentTask/getFormDataTemplate`, params); // 获取表单数据模版
+ },
+ initiateSignature(params) {
+ return axios.post(`/truckRentTask/initiateSignature`, params); // 发起电子签章
+ },
+ getSignatureUrl(params) {
+ return axios.post(`/truckRentTask/getSignatureUrl`, params); // 获取电子签章签署链接
+ },
+ fileDownloadUrl(params) {
+ return axios.post(`/truckRentTask/fileDownloadUrl`, params); // 下载已签署文件
+ },
+ //查询二级科目id和名称列表
+ getQuerySubjectTowNames(params) {
+ return axios.get(`/finance/financeCostType/querySubjectTowNames`, params);
+ // return axios.get(`/dic/queryByDicType`, {
+ // dicType: "dic_returncar_money_item",
+ // }); // 字典数据
+ },
+ // 还车
+ startReturn(params) {
+ return axios.post(`/truckRentTask/startReturn`, params);
+ },
+ // 撤销还车
+ cancelReturn(params) {
+ return axios.post(`/truckRentTask/repealReturn`, params);
+ },
+ // 还车到达
+ sureReturn(params) {
+ return axios.post(`/truckRentTask/vehicleArrival`, params);
+ },
+ // 财务费用结算
+ financeCost(params) {
+ return axios.post(`/truckRentReturnCost/checkCostInfo`, params);
+ },
+ // 编辑费用核算信息
+ editCostInfo(params) {
+ return axios.post(`/truckRentReturnCost/editCostInfo`, params);
+ },
+ // 获取费用核算信息
+ getCostInfo(params) {
+ return axios.get(`/truckRentReturnCost/getCostInfoById`, params);
+ },
+ getCostDeps() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "settlement_department",
+ }); // 字典数据
+ },
+ // 停车场列表
+ getParkingPageList(params) {
+ return axios.get(`/parking/queryPageList`, params);
+ },
+ // 维修站列表
+ getFixPageList(params) {
+ return axios.get(`/maintain/getNames`, { params });
+ },
+ updateParking(params) {
+ return axios.post(`/truckRentTask/updateParkingInfo`, params); // 更新停车场信息
+ },
+
+ getLocationTypeList() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "return_location_type",
+ });
+ }, // 获取还车地点类型
+ clearSignInfo(params) {
+ return axios.post(`/truckRentTask/clearSignInfo`, params); // 清除签名信息
+ },
+};
diff --git a/api/returnCost.js b/api/returnCost.js
new file mode 100644
index 0000000..a29a848
--- /dev/null
+++ b/api/returnCost.js
@@ -0,0 +1,63 @@
+import axios from "@/utils/request";
+
+export default {
+ queryPageList(params) {
+ return axios.post(`/truckRentReturnCost/getCostPageList`, params); // 还车单列表
+ },
+ getTakeId(params) {
+ return axios.get(`/truckRentTask/getReturn`, params); // 还车单详情
+ },
+ //查询二级科目id和名称列表
+ getQuerySubjectTowNames(params) {
+ return axios.get(`/finance/financeCostType/querySubjectTowNames`, params);
+ // return axios.get(`/dic/queryByDicType`, {
+ // dicType: "dic_returncar_money_item",
+ // }); // 字典数据
+ },
+ // 财务费用结算
+ financeCost(params) {
+ return axios.post(`/truckRentReturnCost/checkCostInfo`, params);
+ },
+ // 编辑费用核算信息
+ editCostInfo(params) {
+ return axios.post(`/truckRentReturnCost/editCostInfo`, params);
+ },
+ // 获取费用核算信息
+ getCostInfo(params) {
+ return axios.get(`/truckRentReturnCost/getCheckingCostInfoById`, params);
+ },
+ getCostDeps() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "settlement_department",
+ }); // 字典数据
+ },
+ //审批流程回调业务
+ changeStatusByFlowTask(params) {
+ return axios.post(`/truckRentReturnCost/changeStatusByFlowTask`, params);
+ },
+ //还车费用核算 财务费用结算(新)
+ financeSettleAccounts(params) {
+ return axios.post(`/truckRentReturnCost/financeSettleAccounts`, params);
+ },
+ // 获取待办数量
+ getCostToDo() {
+ return axios.get(`/truckRentReturnCost/getTodoCount`);
+ },
+
+ // 还车费用核算 车辆是否含有无忧包服务
+ getIsHasOKPack(params) {
+ return axios.get(`/truckRentReturnCost/hasOKPack`, params);
+ },
+ //审批通过后付款确认:记录当前人、状态和时间
+ paymentConfirm(params) {
+ // {
+ // "id": 0,
+ // "status": 0
+ // }
+ return axios.post(`/truckRentReturnCost/paymentConfirm`, params);
+ },
+ // 还车费用核算 能源部门获取客户能源余额
+ // getEnergyBalance(params) {
+ // return axios.get(`/truckRentReturnCost/getEnergyBalance`, params);
+ // },
+};
diff --git a/api/standbyVehicle.js b/api/standbyVehicle.js
new file mode 100644
index 0000000..45be20e
--- /dev/null
+++ b/api/standbyVehicle.js
@@ -0,0 +1,67 @@
+import axios from "@/utils/request";
+
+export default {
+ queryPageList(params) {
+ return axios.post(`/standbyVehicleMain/queryPageList`, params);
+ },
+ getTodo(params) {
+ return axios.get(`/standbyVehicleMain/getTodo`, params)
+ },
+ getById(params) {
+ return axios.get(`/standbyVehicleMain/getById`, params)
+ },
+ saveStandbyVehicleDetail(params) {
+ return axios.post(`/standbyVehicleMain/saveStandbyVehicleDetail`, params)
+ },
+ getVehicleBrand() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_vehicle_brand" })
+ },
+ getBrandListByMode(params) {
+ return axios.get(`/truck/getBrandListByMode`, params)
+ },
+ getTruckType() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_truck_type" })
+ },
+ getYesNoDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_yes_no" })
+ },
+ getTypeName() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_failure_type" })// 故障类型
+ },
+ getFailureStatusName() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_is_settle_status" })// 故障状态
+ },
+ getFaultSourceName() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_fault_source" })// 故障来源
+ },
+ getCityName() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_unusual_action_apply_city_code" })// 城市
+ },
+ getCostTypeName() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_fault_cost_type" })// 费用类型
+ },
+ getPayerName() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_fault_payer" })// 付款方
+ },
+ getPaymentStatusDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "dic_pub_payment_status" })// 付款状态
+ },
+ saveCache(params) {
+ return axios.post(`/standbyVehicleMain/saveCache`, params);
+ },
+ getCache(params) {
+ return axios.get(`/standbyVehicleMain/getCache`, params)
+ },
+ delCache(params) {
+ return axios.get(`/standbyVehicleMain/delCache`, params);
+ },
+ getOpManagerPhone(params) {
+ return axios.get(`/standbyVehicleMain/getOperationsManagerByRegion`, params)
+ },
+ edit(params) {
+ return axios.put(`/standbyVehicleMain/edit`, params)
+ },
+ getFormDataListByTruckId(params) {
+ return axios.get(`/standbyVehicleMain/getFormDataListByTruckId`, params)
+ }
+}
\ No newline at end of file
diff --git a/api/truck.js b/api/truck.js
new file mode 100644
index 0000000..8375b19
--- /dev/null
+++ b/api/truck.js
@@ -0,0 +1,33 @@
+import axios from "@/utils/request";
+
+export default {
+ queryInStoreList(params) {
+ return axios.get(`/truck/queryInStoreList`, params);
+ },
+ queryAuthListByPlateNumber(params) {
+ return axios.get(`/truck/queryAuthListByPlateNumber`, params);
+ },
+ getTruckPageList(params) {
+ return axios.get(`/truck/queryList`, params);
+ },
+ // 用户权限范围的车辆
+ queryAuthList(params) {
+ return axios.get(`/truck/queryAuthList`, params);
+ },
+ //2025.4 hefei新增列表查询所有车辆接口 只返回ID NUMBER 后增加品牌,车型
+ getAllTruckList(params) {
+ return axios.get(`/truck/getAllTruckList`, params);
+ },
+ //2025.4 hefei新增列表查询实时数据接口
+ getActualDataByVin(params) {
+ return axios.get(`/truck/getActualDataByVin`, params);
+ },
+ //用来查询车辆状态的接口,judgementTruckRentStatus,Swagger为“根据车牌号判断该车状态”,返回出具体车辆的状态,例如在库,自营或者租赁状态。
+ getTruckRentStatus(params) {
+ return axios.get(`/truck/judgementTruckRentStatus`, params);
+ },
+ queryInStoreListWithStatus(params) {
+ //queryInStoreList的全车辆版本,备车那边有需求25.9.26 任政
+ return axios.get(`/truck/queryInStoreListWithStatus`, params);
+ },
+};
diff --git a/api/truckPreparation.js b/api/truckPreparation.js
new file mode 100644
index 0000000..79ca732
--- /dev/null
+++ b/api/truckPreparation.js
@@ -0,0 +1,20 @@
+import axios from "@/utils/request";
+
+export default {
+ queryPageList(params) {
+ return axios.post(`/vehiclePreparation/queryPageList`, params); // 车辆整备列表
+ },
+ getById(params) {
+ return axios.get(`/vehiclePreparation/getInfoById`, params); // 车辆整备详情
+ },
+ editTruckPreparation(params) {
+ return axios.put(`/vehiclePreparation/edit`, params); // 添加车辆整备
+ },
+ getPreTypeList() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "preparation_type" });
+ }, // 获取整备类型
+ getPreFormDataListByTruckId(params) {
+ //车辆整备新检查单
+ return axios.get(`/vehiclePreparation/getFormDataListByTruckId`, params);
+ },
+};
diff --git a/api/truckRent.js b/api/truckRent.js
new file mode 100644
index 0000000..2b497b5
--- /dev/null
+++ b/api/truckRent.js
@@ -0,0 +1,44 @@
+import axios from "@/utils/request";
+
+export default {
+ queryTakePageList(params) {
+ return axios.post(`/truckRentTask/queryTakePageList`, params);
+ },
+ getTakeId(params) {
+ return axios.get(`/truckRentTask/getTakeId`, params);
+ },
+ getSalesManagerDic() {
+ return axios.get(`/dic/queryByDicType`, { dicType: "sales_manager" });
+ },
+ getAddress(params) {
+ return axios.post(`/baidumap/getAddress`, params);
+ },
+ addTake(params) {
+ return axios.post(`/truckRentTask/addTake`, params);
+ },
+ generateWord(params) {
+ return axios.post(`/truckRentTask/generateWord`, params);
+ },
+ validateTruckByIds(params) {
+ return axios.get(`/contractRentTruck/validateTruckByIds`, params);
+ },
+ getFormDataTemplate(params) {
+ return axios.get(`/truckRentTask/getFormDataTemplate`, params);
+ },
+ initiateSignature(params) {
+ return axios.post(`/truckRentTask/initiateSignature`, params);
+ },
+ getSignatureUrl(params) {
+ return axios.post(`/truckRentTask/getSignatureUrl`, params);
+ },
+ generateWord(params) {
+ return axios.post(`/truckRentTask/generateWord`, params);
+ },
+ fileDownloadUrl(params) {
+ return axios.post(`/truckRentTask/fileDownloadUrl`, params);
+ },
+ // 交车单-安全审批
+ safeAudit(params) {
+ return axios.post(`/truckRentTask/safetyAuditing`, params);
+ },
+};
diff --git a/api/unusualActionApply.js b/api/unusualActionApply.js
new file mode 100644
index 0000000..f1f90c6
--- /dev/null
+++ b/api/unusualActionApply.js
@@ -0,0 +1,54 @@
+import axios from "@/utils/request";
+
+export default {
+ queryPageList(params) {
+ return axios.post(`/unusualAction/queryPageList`, params); // 分页
+ },
+ getTakeId(params) {
+ return axios.get(`/unusualAction/getInfoById`, params); // 根据id查找详情
+ },
+ //审批
+ auditTransaction(params) {
+ return axios.post(`/unusualAction/approve`, params);
+ },
+ //撤销
+ revokeTransaction(params) {
+ return axios.post(`/unusualAction/revoke`, params);
+ },
+ getRoleList(params) {
+ return axios.get(`/unusualActionApply/queryApproveUserList`, params); // 查询可审批的用户列表
+ },
+ edit(params) {
+ return axios.post(`/unusualAction/edit`, params); // 修改
+ },
+ add(params) {
+ return axios.post(`/unusualAction/add`, params); // 添加
+ },
+ approveAfterEdit(params) {
+ return axios.put(`/unusualActionApply/approveAfterEdit`, params); // 审批后修改
+ },
+ //根据id查询车辆异动信息
+ getUnusualInfoById(params) {
+ return axios.get(`/truck/getUnusualInfoById`, params);
+ },
+ //根据车牌查询是否已经存在异动
+ getExistResult(params) {
+ return axios.get(`/unusualAction/checkTruckInUnusual`, params);
+ },
+ // 获取异动目的地类型
+ getTransactionAddressType() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "transaction_address_type",
+ });
+ },
+ // 获取异动类型
+ getTransactionType() {
+ return axios.get(`/dic/queryByDicType`, {
+ dicType: "transaction_type",
+ });
+ },
+ //在保养待办那边有一个按钮,根据车牌新增异动
+ addByTruckId(params) {
+ return axios.post(`/unusualAction/addByTruckId`, params);
+ },
+};
diff --git a/components/ba-tree-picker/README.md b/components/ba-tree-picker/README.md
new file mode 100644
index 0000000..59d99f9
--- /dev/null
+++ b/components/ba-tree-picker/README.md
@@ -0,0 +1,124 @@
+## 树形层级选择器
+### 简介
+为统一样式而生,树形层级选择器,picker弹窗形式的,样式和比例参照uniapp的picker和uni-data-picker组件
+* 支持单选、多选、父级选择,当然也支持单层选择
+* 支持Object对象属性自定义映射
+* 支持显示全部选中、部分选中、未选中三种状态
+* 支持快速自定义简单样式(分割线、按钮、标题、对齐等),深入样式可复写css
+
+### 使用方法
+在 `script` 中引入组件
+``` javascript
+ import baTreePicker from "@/components/ba-tree-picker/ba-tree-picker.vue"
+ export default {
+ components: {
+ baTreePicker
+ }
+```
+在 `template` 中使用组件
+``` javascript
+
+```
+在 `script` 中定义打开方法,和选择监听
+``` javascript
+ methods: {
+ // 显示选择器
+ showPicker() {
+ this.$refs.treePicker._show();
+ },
+ //监听选择(ids为数组)
+ selectChange(ids, names) {
+ console.log(ids, names)
+ }
+ }
+```
+在 `template` 中调用打开
+``` javascript
+ 调用选择器
+```
+
+### 属性
+|属性名|类型|默认值|说明|
+|:-|:-:|:--:|-:|
+|localdata|Array|[]|源数据,目前支持tree结构,后续会考虑支持扁平化结构|
+|valueKey|String|id|指定 Object 中 key 的值作为节点数据id|
+|textKey|String|name|指定 Object 中 key 的值作为节点显示内容|
+|childrenKey|String|children|指定 Object 中 key 的值作为节点子集|
+|multiple|Boolean|false|是否多选,默认单选|
+|selectParent|Boolean|true|是否可以选父级,默认可以|
+|title|String| |标题|
+|titleColor|String||标题颜色|
+|confirmColor|String|#0055ff|确定按钮颜色|
+|cancelColor|String|#757575|取消按钮颜色|
+|switchColor|String|#666|节点切换图标颜色|
+|border|Boolean|false|是否有分割线,默认无|
+
+
+
+### 数据格式
+
+注意:必须有id、name(id可通过valueKey来配置为其它键值,如value)字段,且唯一
+
+``` json
+[
+ {
+ id: 1,
+ name: '公司1',
+ children: [{
+ id: 11,
+ name: '研发部',
+ children: [{
+ id: 111,
+ name: '张三',
+
+ },{
+ id: 112,
+ name: '李四',
+
+ }]
+ },{
+ id: 12,
+ name: '综合部',
+
+ } ]
+ },
+ {
+ id: 2,
+ name: '公司2',
+ children: [{
+ id: 21,
+ name: '研发部',
+
+ },{
+ id: 22,
+ name: '综合部',
+
+ },{
+ id: 23,
+ name: '财务部',
+
+ }, ]
+ },
+ {
+ id: 3,
+ name: '公司3'
+ },
+ {
+ id: 4,
+ name: '公司4',
+ children: [{
+ id: 41,
+ name: '研发部',
+
+ }]
+ }
+]
+```
+
+
+### 方法
+|方法名|参数|默认值|说明|
+|:-|:-:|:--:|-:|
+|_show()| | |显示选择器|
+|_hide()| | |隐藏选择器|
diff --git a/components/ba-tree-picker/ba-tree-picker.vue b/components/ba-tree-picker/ba-tree-picker.vue
new file mode 100644
index 0000000..bd82515
--- /dev/null
+++ b/components/ba-tree-picker/ba-tree-picker.vue
@@ -0,0 +1,775 @@
+
+
+
+
+
+
+
+ 取消
+
+ {{
+ title
+ }}
+
+ {{ multiple ? "确定" : "" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name + (item.num ? "(" + item.num + ")" : "") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/dic-select/dic-select.vue b/components/dic-select/dic-select.vue
new file mode 100644
index 0000000..11ecaab
--- /dev/null
+++ b/components/dic-select/dic-select.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/dic-select/select-show.vue b/components/dic-select/select-show.vue
new file mode 100644
index 0000000..6c79d50
--- /dev/null
+++ b/components/dic-select/select-show.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/multiple-picker/multiple-picker.vue b/components/multiple-picker/multiple-picker.vue
new file mode 100644
index 0000000..4c2d2a6
--- /dev/null
+++ b/components/multiple-picker/multiple-picker.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
diff --git a/components/no-bad-table/loading.vue b/components/no-bad-table/loading.vue
new file mode 100644
index 0000000..c9d1842
--- /dev/null
+++ b/components/no-bad-table/loading.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/no-bad-table/table.scss b/components/no-bad-table/table.scss
new file mode 100644
index 0000000..5cba4bb
--- /dev/null
+++ b/components/no-bad-table/table.scss
@@ -0,0 +1,293 @@
+$div-table-border-color: #666;
+$div-table-border-width: 1upx;
+@mixin fixBorderWidth($dir:none) {
+ @if $dir==none{
+
+ @media screen and (-webkit-device-pixel-ratio: 1) {
+ border-width: 1px;
+ }
+ @media screen and (-webkit-device-pixel-ratio: 2) {
+ border-width: .5px;
+ }
+ @media screen and (-webkit-device-pixel-ratio: 3) {
+ border-width: .5px;
+ }
+ }
+ @else{
+ @media screen and (-webkit-device-pixel-ratio: 1) {
+ border-#{$dir}-width: 1px;
+ }
+ @media screen and (-webkit-device-pixel-ratio: 2) {
+ border-#{$dir}-width: .5px;
+ }
+ @media screen and (-webkit-device-pixel-ratio: 3) {
+ border-#{$dir}-width: .5px;
+ }
+ }
+
+}
+.no-bad-table-wrap {
+ position: relative;
+ overflow: hidden;
+//外层容器
+ .table_box_big {
+ overflow: auto;
+ width: 100%;
+ position: relative;
+ // height: 350px;
+ }
+ //工具类
+ .verticalV{
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ left:50%;
+ top:50%;
+ transform: translateY(-50%);
+ }
+
+ .table_box {
+ overflow: auto;
+ // position: absolute;
+ }
+
+ .table_tbody_box {
+ // height: 300px;
+ // overflow: scroll;
+ }
+
+ //没有任何数据
+ .empty-data-body-box {
+ min-height: 100px;
+ line-height: 100px;
+ text-align: center;
+ color: #666;
+ border: 1px solid $div-table-border-color;
+ @include fixBorderWidth;
+ border-top: 0;
+
+ }
+
+ &.fix-height {
+
+ .table_box_big {
+ overflow-x: scroll;
+ overflow-y: hidden;
+ position: relative;
+
+ // height: 350px;
+ }
+
+ .table_box {
+ overflow: hidden;
+ position: absolute;
+ }
+
+ .table_tbody_box {
+ // height: 300px;
+ overflow: scroll;
+ border-bottom: 1px solid $div-table-border-color;
+ @include fixBorderWidth(bottom);
+ }
+
+ //固定高低里面的内容表格底部不要边框
+ .div-table-body {
+ border-top: 0;
+ border-bottom:0;
+ //固定高度,数据为空
+ &.empty-data-body-box{
+ border-bottom: $div-table-border-width solid $div-table-border-color;
+ @include fixBorderWidth(bottom);
+ }
+ }
+ }
+
+ //头部表格
+ .th,
+ .thead .tr,
+ .fixed-thead-tr {
+ .td {
+ background-color: #e0e0ea;
+
+ .td_wrap {
+ background-color: #e0e0ea;
+ }
+
+ }
+ }
+
+ //固定右边一列
+ .fixed-right {
+ position: absolute;
+ top: 0upx;
+ right: 0px;
+ z-index: 100;
+ // border-right: $div-table-border-width solid $div-table-border-color;
+ // border-left: $div-table-border-width solid $div-table-border-color;
+ box-shadow: -2px 0 5px rgba(0, 0, 0, .5);
+ }
+
+ //固定左边一列
+ .fixed-left {
+ position: absolute;
+ top: 0upx;
+ left: -1px;
+ z-index: 100;
+ border-right: $div-table-border-width solid $div-table-border-color;
+ border-left: $div-table-border-width solid $div-table-border-color;
+ @include fixBorderWidth(right);
+ @include fixBorderWidth(left);
+ box-shadow: 2px 0 5px rgba(0, 0, 0, .5);
+ }
+
+ .tr,
+ .th {
+ display: table-row;
+
+ &+.tr,
+ &+.th {
+
+ .td,
+ .th {
+ border-top: $div-table-border-width solid $div-table-border-color;
+ @include fixBorderWidth(top);
+ word-break: break-word;
+ }
+ }
+ }
+ //外层容器控制td左右居中
+ &.td-center{
+ .td {
+ .td_wrap{
+ text-align: center;
+ }
+ }
+ }
+ .td {
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+ box-sizing: border-box;
+ z-index: 1;
+ position: relative;
+ overflow: hidden;
+
+ .td_wrap {
+ position: relative;
+ padding: 10upx;
+ box-sizing: border-box;
+ overflow: hidden;
+ line-height: 20px;
+ font-size: 12px;
+ background: #fff;
+ text-align: left;
+ }
+
+ &.colspan {
+ z-index: 10;
+ position: absolute;
+ .td_wrap {
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ position: absolute;
+ }
+ }
+
+ &.rowspan {
+ position: absolute;
+ z-index: 10;
+ }
+
+ &.empty-cells-for-celspan {
+ border-left: none !important;
+
+ .td_wrap {
+ opacity: 0;
+ }
+ }
+
+ &.empty-cells-for-rowspan {
+ border-top: none !important;
+
+ .td_wrap {
+ opacity: 0;
+ }
+ }
+
+ &.noPadding {
+ padding: 0;
+ }
+
+ &+.td {
+ border-left: $div-table-border-width solid $div-table-border-color;
+ @include fixBorderWidth(left);
+ }
+ }
+
+ .th .td {
+ font-weight: bold;
+ }
+ //单选样式========》选中
+ .selected {
+ .td {
+ background-color: #d3e3ef;
+
+ .td_wrap {
+ background-color: #d3e3ef;
+ }
+ }
+ }
+
+ //单选样式===》禁用
+ .disabled {
+ .td {
+ background-color: #f8f8f9;
+ opacity: .6;
+ }
+ }
+
+ .div-table {
+ display: table;
+ border: $div-table-border-width solid $div-table-border-color;
+ @include fixBorderWidth;
+ box-sizing: border-box;
+ table-layout: fixed;
+ position: relative;
+
+ &.div-table-body {
+ border-top: 0;
+ }
+ .tbody {
+ display: table-row-group;
+ }
+
+ .thead {
+ display: table-header-group;
+
+// .tr,
+// .th {
+//
+// .td,
+// .th {
+// width: 120upx;
+// height: 75px;
+// }
+// }
+ }
+
+ .colgroup {
+ display: table-column-group;
+ }
+
+ .col {
+ display: table-column;
+ }
+
+ .caption {
+ display: table-caption;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/components/no-bad-table/table.vue b/components/no-bad-table/table.vue
new file mode 100644
index 0000000..c21ce56
--- /dev/null
+++ b/components/no-bad-table/table.vue
@@ -0,0 +1,841 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item[tdItem.key] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ emptyText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ columnsFixedLeft[0].title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item[columnsFixedLeft[0].key] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ columnsFixedRight[0].title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item[columnsFixedRight[0].key] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/tabBar/tabBar.vue b/components/tabBar/tabBar.vue
new file mode 100644
index 0000000..00c3b17
--- /dev/null
+++ b/components/tabBar/tabBar.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/upload_img_video.vue b/components/upload_img_video.vue
new file mode 100644
index 0000000..99d80d8
--- /dev/null
+++ b/components/upload_img_video.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..8f461a0
--- /dev/null
+++ b/main.js
@@ -0,0 +1,90 @@
+import App from "./App";
+
+// #ifndef VUE3
+import Vue from "vue";
+import "./uni.promisify.adaptor";
+
+import store from "./store";
+import { v1 as uuidv1 } from "uuid";
+
+// main.js,注意要在use方法之后执行
+import uView from "uview-ui";
+import tabBar from "components/tabBar/tabBar.vue"; //引入我们自己定义的tabBar组件
+import noBadTable from "components/no-bad-table/table.vue";
+
+Vue.use(uView);
+
+// 调用setConfig方法,方法内部会进行对象属性深度合并,可以放心嵌套配置
+// 需要在Vue.use(uView)之后执行
+uni.$u.setConfig({
+ // 修改$u.config对象的属性
+ config: {
+ // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
+ unit: "rpx",
+ },
+ // 修改$u.props对象的属性
+ props: {
+ // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
+ radio: {
+ size: 30,
+ },
+ text: {
+ size: 30,
+ },
+ search: {
+ height: 60,
+ },
+ form: {
+ labelWidth: 160,
+ },
+ actionSheet: {
+ round: 40,
+ },
+ datetimePicker: {
+ value: Number(new Date()),
+ },
+ checkbox: {
+ labelSize: 24,
+ },
+ // badge: {
+ // bgColor: "#c2d10a",
+ // },
+ subsection: {
+ activeColor: "#687379",
+ },
+ loadingPage: {
+ loadingColor: "#c2d10a",
+ color: "#c2d10a",
+ iconSize: 112,
+ fontSize: 38,
+ },
+ // 其他组件属性配置
+ // ......
+ },
+});
+
+// 全局方法挂载
+Vue.prototype.uuidv1 = uuidv1;
+Vue.prototype.$store = store;
+Vue.component("tab-bar", tabBar); //使用tabBar组件
+Vue.component("no-bad-table", noBadTable); //使用tabBar组件
+import Api from "./api";
+Vue.prototype.$api = Api;
+Vue.config.productionTip = false;
+App.mpType = "app";
+const app = new Vue({
+ store,
+ ...App,
+});
+app.$mount();
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from "vue";
+export function createApp() {
+ const app = createSSRApp(App);
+ return {
+ app,
+ };
+}
+// #endif
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..bfbcd78
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,98 @@
+{
+ "name" : "gjt_mini",
+ "appid" : "__UNI__CAF3DD8",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /*设置ios底部导航栏安全区域*/
+ "safearea" : {
+ "background" : "#FFFFFF",
+ "bottom" : {
+ "offset" : "auto"
+ }
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {
+ "oauth" : {}
+ }
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wx4438f1a71e030de0",
+ "setting" : {
+ "urlCheck" : false,
+ "postcss" : true,
+ "minified" : true
+ },
+ "usingComponents" : true,
+ "lazyCodeLoading" : "requiredComponents",
+ "permission" : {
+ "scope.userLocation" : {
+ "desc" : "初始化时获取用户的位置信息用于交车定位确认"
+ },
+ "scope.camera" : {
+ "desc" : "获取用户的拍照和相册权限用于拍摄交车、还车照片"
+ }
+ },
+ "requiredPrivateInfos" : [ "getLocation", "chooseLocation" ]
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "2",
+ "fallbackLocale" : "zh-Hans",
+ "locale" : "zh-Hans",
+ "h5" : {
+ "template" : "template.html"
+ }
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..4ed0154
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,954 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "@parcel/watcher": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.5.0.tgz",
+ "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@parcel/watcher-android-arm64": "2.5.0",
+ "@parcel/watcher-darwin-arm64": "2.5.0",
+ "@parcel/watcher-darwin-x64": "2.5.0",
+ "@parcel/watcher-freebsd-x64": "2.5.0",
+ "@parcel/watcher-linux-arm-glibc": "2.5.0",
+ "@parcel/watcher-linux-arm-musl": "2.5.0",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.0",
+ "@parcel/watcher-linux-arm64-musl": "2.5.0",
+ "@parcel/watcher-linux-x64-glibc": "2.5.0",
+ "@parcel/watcher-linux-x64-musl": "2.5.0",
+ "@parcel/watcher-win32-arm64": "2.5.0",
+ "@parcel/watcher-win32-ia32": "2.5.0",
+ "@parcel/watcher-win32-x64": "2.5.0",
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ }
+ },
+ "@parcel/watcher-android-arm64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz",
+ "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-darwin-arm64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz",
+ "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-darwin-x64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz",
+ "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-freebsd-x64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz",
+ "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz",
+ "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz",
+ "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz",
+ "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz",
+ "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz",
+ "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz",
+ "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-win32-arm64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz",
+ "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-win32-ia32": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz",
+ "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/watcher-win32-x64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz",
+ "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
+ "@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true
+ },
+ "axios": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.7.tgz",
+ "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
+ "requires": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "bignumber.js": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz",
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.1.1"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "chokidar": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.1.tgz",
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
+ "dev": true,
+ "requires": {
+ "readdirp": "^4.0.1"
+ }
+ },
+ "ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.5.tgz",
+ "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+ },
+ "define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "dev": true,
+ "optional": true
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true
+ },
+ "es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-yarn-workspace-root": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
+ "dev": true,
+ "requires": {
+ "micromatch": "^4.0.2"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.15.9",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="
+ },
+ "form-data": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.1.tgz",
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0"
+ }
+ },
+ "has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "immutable": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz",
+ "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "optional": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.7.tgz",
+ "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="
+ },
+ "json-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+ "requires": {
+ "bignumber.js": "^9.0.0"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz",
+ "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "isarray": "^2.0.5",
+ "jsonify": "^0.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/jsonify/-/jsonify-0.0.1.tgz",
+ "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
+ "dev": true
+ },
+ "klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "klona": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
+ "node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "dev": true,
+ "optional": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmmirror.com/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true
+ },
+ "patch-package": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/patch-package/-/patch-package-8.0.0.tgz",
+ "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==",
+ "dev": true,
+ "requires": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^4.1.2",
+ "ci-info": "^3.7.0",
+ "cross-spawn": "^7.0.3",
+ "find-yarn-workspace-root": "^2.0.0",
+ "fs-extra": "^9.0.0",
+ "json-stable-stringify": "^1.0.2",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.6",
+ "open": "^7.4.2",
+ "rimraf": "^2.6.3",
+ "semver": "^7.5.3",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33",
+ "yaml": "^2.2.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-4.0.2.tgz",
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "sass": {
+ "version": "1.80.6",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.80.6.tgz",
+ "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==",
+ "dev": true,
+ "requires": {
+ "@parcel/watcher": "^2.4.1",
+ "chokidar": "^4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
+ "sass-loader": {
+ "version": "10.5.2",
+ "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-10.5.2.tgz",
+ "integrity": "sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==",
+ "dev": true,
+ "requires": {
+ "klona": "^2.0.4",
+ "loader-utils": "^2.0.0",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.0.0",
+ "semver": "^7.3.2"
+ }
+ },
+ "schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true
+ },
+ "set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ },
+ "source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "uni-uploadfile": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/uni-uploadfile/-/uni-uploadfile-1.1.4.tgz",
+ "integrity": "sha512-2WO01OVT8hqXoBO8M6cyE2bOFC6cW+RXrbRvDR+tUXqUR/aDbYeJ31lE1/5xeMlm3TNJpfTZWvTUyiIzhGmd7g=="
+ },
+ "universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
+ },
+ "uview-ui": {
+ "version": "2.0.38",
+ "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.38.tgz",
+ "integrity": "sha512-6egHDf9lXHKpG3hEjRE0vMx4+VWwKk/ReTf5x18KrIKqdvdPRqO3+B8Unh7vYYwrIxzAWIlmhZ9RJpKI/4UqPQ=="
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.6.0.tgz",
+ "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..31e2372
--- /dev/null
+++ b/package.json
@@ -0,0 +1,19 @@
+{
+ "dependencies": {
+ "axios": "^1.5.0",
+ "crypto-js": "^4.1.1",
+ "js-base64": "^3.7.5",
+ "json-bigint": "^1.0.0",
+ "uni-uploadfile": "^1.1.4",
+ "uuid": "^9.0.1",
+ "uview-ui": "^2.0.38"
+ },
+ "devDependencies": {
+ "patch-package": "^8.0.0",
+ "sass": "^1.66.1",
+ "sass-loader": "^10.4.1"
+ },
+ "scripts": {
+ "postinstall": "patch-package"
+ }
+}
diff --git a/pageSub/annualReview/detail.vue b/pageSub/annualReview/detail.vue
new file mode 100644
index 0000000..2b5fb72
--- /dev/null
+++ b/pageSub/annualReview/detail.vue
@@ -0,0 +1,1831 @@
+
+
+
+
+
+
+ 车牌号
+
+
+
+
+
+ 车辆品牌
+
+
+
+ 车辆型号
+
+
+
+ 资产运营城市
+
+
+
+ 资产状态
+
+
+
+ 客户
+
+
+
+
+ 年审到期时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 检测服务站
+
+
+
+
+
+
+ 检测服务站费用
+
+
+
+
+ 检测付款状态
+
+
+
+
+
+
+
+ 二保服务站
+
+
+
+
+
+
+ 二保服务站费用
+
+
+
+
+ 二保付款状态
+
+
+
+
+
+
+
+ 整备服务站
+
+
+
+
+
+
+ 整备服务站费用
+
+
+
+
+ 整备付款状态
+
+
+
+
+
+
+
+ 行驶证出证日期
+
+
+
+
+
+ 行驶证更新
+
+
+
+
+ 营运证出证日期
+
+
+
+
+
+ 营运证更新
+
+
+
+ 历史营运证查看
+
+
+
+
+ {{ item.fileName }}
+ 预览
+
+
+
+ 二保照片
+
+
+
+ 整备照片
+
+
+
+ 备注
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pageSub/annualReview/index.vue b/pageSub/annualReview/index.vue
new file mode 100644
index 0000000..ebfb72e
--- /dev/null
+++ b/pageSub/annualReview/index.vue
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 年审中
+
+
+
+ 未通过
+
+
+
+ 待年审
+
+
+
+ 已通过
+
+
+ 车牌号: {{ item.plateNumber }}
+
+
+ 资产状态: {{ item.truckRentStatusName }}
+
+
+ 年审到期时间:
+ {{
+ formatDateTime(item.annualInspectionExpireDate, "minute")
+ }}
+ 负责人: {{ item.submitterName || "--" }}
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pageSub/failure/detail.vue b/pageSub/failure/detail.vue
new file mode 100644
index 0000000..757841a
--- /dev/null
+++ b/pageSub/failure/detail.vue
@@ -0,0 +1,1832 @@
+
+
+
+
+
+ 序号
+
+
+
+ 车牌号
+
+
+
+
+
+
+ 车辆型号
+
+
+
+ 车辆品牌
+
+
+
+ 故障来源
+
+
+
+
+
+
+ 故障状态
+
+
+
+
+
+
+ 故障描述
+
+
+
+
+
+
+ 故障类型
+
+
+
+
+
+
+
+
+
+ 解决方案 (详细)
+
+
+
+ 公里数 (km)
+
+
+
+ 保修开始时间
+
+
+
+
+
+ 保修结束时间
+
+
+
+
+
+ 费用类型
+
+
+
+
+
+
+ 工时费(元)
+
+
+
+ 配件费(元)
+
+
+
+ 付款方
+
+
+
+
+
+
+ 收款方
+
+
+
+
+
+
+ 故障上报时间
+
+
+
+
+
+ 故障解决时间
+
+
+
+
+
+ 维修效率 (小时)
+
+
+
+ 解决路径
+
+
+
+
+ 是否停运
+
+
+
+
+
+
+ 停运时长 (小时)
+
+
+
+ 客户需求
+
+
+
+ 是否拖车
+
+
+
+
+
+
+ 拖车费用 (元)
+
+
+
+ 客户名称
+
+
+
+ 付款状态
+
+
+
+
+
+
+ 执行人
+
+
+
+ 附件上传
+
+
+
+
+
+ 零部件更换照片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pageSub/failure/index.vue b/pageSub/failure/index.vue
new file mode 100644
index 0000000..d78161c
--- /dev/null
+++ b/pageSub/failure/index.vue
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+
+
+ 已解决
+
+
+
+ 未解决
+
+
+ 上报人: {{ item.implementerName || "" }}
+
+
+ 上报时间: {{ formatDateTime(item.failureTime, "minute") }}
+
+
+ 解决时间: {{ formatDateTime(item.solutionTime, "minute") }}
+
+
+ 维修效率(时长): {{ item.timeConsuming || "" }}
+
+
+ 故障来源: {{ item.faultSourceName }}
+
+
+ 故障状态: {{ item.failureStatusName }}
+
+
+ 故障类型: {{ item.typeName || item.type }}
+ 车牌号: {{ item.plateNumber }}
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
diff --git a/pageSub/returnCarCost/detail.vue b/pageSub/returnCarCost/detail.vue
new file mode 100644
index 0000000..0deb742
--- /dev/null
+++ b/pageSub/returnCarCost/detail.vue
@@ -0,0 +1,1669 @@
+
+
+
+
+
+
+
+ 车牌号
+
+
+
+ 客户名称
+
+
+
+ 项目名称
+
+
+
+ 交车时间
+
+
+
+
+ 还车时间
+
+
+
+
+ 账单状态
+
+
+
+ 有无无忧包
+
+
+
+
+
+
+
+
+
+ {{ t.depName }}
+
+
+
+
+
+
+
+ 未处理违章信息-暂无数据
+
+
+
+
+
+
+ {{ index + 1 }}
+
+
+ {{ row.unlawfulAct }}
+
+
+ {{ row.penaltyAmount || "" }}
+
+
+ {{ row.remark || "" }}
+
+
+
+
+
+
+ 事故信息-暂无数据
+
+
+
+
+
+
+ {{ index + 1 }}
+
+
+ {{ row.accidentTypeDicName }}
+
+
+ {{ row.responsibilityDicName || "" }}
+
+
+ {{ row.remark || "" }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ index + 1 }}
+
+
+ {{ row.costSubjectName }}
+
+
+ {{ row.amount || "" }}
+
+
+
+
+
+
+
+ 说明
+
+
+
+
+
+
+
+
+
+
+ 保证金
+
+
+
+ 待结算费用
+
+
+
+ 退回客户费用
+
+
+
+ 客户应补缴费用
+
+
+
+
+
+ 账单状态
+
+
+
+
+
+
+ 押金条是否收回
+
+
+
+
+
+
+ 押金条照片
+
+
+
+ 支付凭证
+
+
+
+
+ {{ item.fileName }}
+ 预览
+
+
+
+
+
+ 审批意见
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 审批信息
+
+
+
+
+
+ 执行人:{{ item.auditorName }}
+ 审批结果:{{ item.auditStatusName }}
+
+ 审批意见:{{ item.auditOpinion }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pageSub/returnCarCost/index.vue b/pageSub/returnCarCost/index.vue
new file mode 100644
index 0000000..a5a7ba1
--- /dev/null
+++ b/pageSub/returnCarCost/index.vue
@@ -0,0 +1,348 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 待审批
+
+
+
+ 已通过
+
+
+
+ 驳回
+
+
+ 车牌号: {{ item.plateNumber || "--" }}
+
+
+ 项目名称: {{ item.projectName || "--" }}
+
+
+ 还车时间: {{ formatDateTime(item.returnDate) }}
+
+
+ 当前审批人: {{ item.approvalName }}
+
+
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pageSub/truckPreparation/detail.vue b/pageSub/truckPreparation/detail.vue
new file mode 100644
index 0000000..338b341
--- /dev/null
+++ b/pageSub/truckPreparation/detail.vue
@@ -0,0 +1,1600 @@
+
+
+
+
+
+
+ 车牌号
+
+
+
+ 车型
+
+
+
+
+ 资产运营城市
+
+
+
+ 停车场
+
+
+
+
+
+
+ 仪表盘里程
+
+
+
+
+ 剩余氢量
+
+
+
+
+
+
+
+
+
+
+ 剩余电量
+
+
+
+
+
+ 整备类型
+
+
+
+
+
+
+ 在库时长(天)
+
+
+
+
+ 试车时间
+
+
+ confirmTestTime(e)"
+ @cancel="lastTestRunDatePicker = false"
+ >
+
+
+
+
+
+
+
+
+
+
+ 商业险到期时间
+
+
+
+
+ 交强险到期时间
+
+
+
+
+
+
+
+
+
+
+ {{ `序号${index + 1}` }}
+ 查看历史记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 瑕疵照片
+
+
+
+ 备注
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.dataCategory }}
+
+
+ {{ row.dataName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.maintainItem + "保养"
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pageSub/truckPreparation/index.vue b/pageSub/truckPreparation/index.vue
new file mode 100644
index 0000000..d6a387b
--- /dev/null
+++ b/pageSub/truckPreparation/index.vue
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 未整备
+
+
+
+ 整备过期
+
+
+
+ 已整备
+
+
+
+ 品牌: {{ item.brandName }}
+
+
+ 车型: {{ item.modelName }}
+
+
+ 停车场: {{ item.parkingName }}
+
+
+ 整备类型: {{ item.preparationTypeName }}
+
+
+ 备车完成时间:
+ {{ formatDateTime(item.preparationCompletionTime) }}
+
+
+ 下次整备时间: {{ formatDateTime(item.nextPreparationDate) }}
+ 车牌号: {{ item.plateNumber }}
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..3aaf5c5
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,277 @@
+{
+ "easycom": {
+ "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
+ },
+ "pages": [
+ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "首页",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/login/login",
+ "style": {
+ "navigationBarTitleText": "广交投氢能",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/map/index",
+ "style": {
+ "navigationBarTitleText": "地图",
+ "enablePullDownRefresh": false
+ }
+ },
+
+ {
+ "path": "pages/my/my",
+ "style": {
+ "navigationBarTitleText": "我的",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "components/tabBar/tabBar",
+ "style": {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+ },
+
+ {
+ "path": "pages/standbyVehicle/index",
+ "style": {
+ "navigationBarTitleText": "备车管理",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/standbyVehicle/detail",
+ "style": {
+ "navigationBarTitleText": "备车单",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/standbyVehicle/detailInfo",
+ "style": {
+ "navigationBarTitleText": "备车信息",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/truckRent/index",
+ "style": {
+ "navigationBarTitleText": "交车管理",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/truckRent/detail",
+ "style": {
+ "navigationBarTitleText": "交车单",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/webview/index",
+ "style": {
+ "navigationBarTitleText": "webview",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/face/index",
+ "style": {
+ "navigationBarTitleText": "e签宝人脸验证",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/returnCar/index",
+ "style": {
+ "navigationBarTitleText": "还车管理",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/returnCar/detail",
+ "style": {
+ "navigationBarTitleText": "还车单",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/returnCar/cost",
+ "style": {
+ "navigationBarTitleText": "费用核算",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/audit/index",
+ "style": {
+ "navigationBarTitleText": "在线审批",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/audit/detail",
+ "style": {
+ "navigationBarTitleText": "合同审批详情",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/unusualActionApply/index",
+ "style": {
+ "navigationBarTitleText": "异动管理",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/unusualActionApply/detail",
+ "style": {
+ "navigationBarTitleText": "异动申请",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/maintain/index",
+ "style": {
+ "navigationBarTitleText": "保养待办",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "pages/maintain/detail",
+ "style": {
+ "navigationBarTitleText": "保养信息",
+ "enablePullDownRefresh": true
+ }
+ }
+ ],
+ "subPackages": [
+ {
+ "root": "pageSub",
+ "pages": [
+ {
+ "path": "failure/index",
+ "style": {
+ "navigationBarTitleText": "故障台账",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "failure/detail",
+ "style": {
+ "navigationBarTitleText": "故障上报",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "returnCarCost/index",
+ "style": {
+ "navigationBarTitleText": "还车费用核算",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "returnCarCost/detail",
+ "style": {
+ "navigationBarTitleText": "还车费用核算",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "truckPreparation/index",
+ "style": {
+ "navigationBarTitleText": "车辆整备",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "truckPreparation/detail",
+ "style": {
+ "navigationBarTitleText": "备车信息",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "annualReview/index",
+ "style": {
+ "navigationBarTitleText": "年审待办",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ },
+ {
+ "path": "annualReview/detail",
+ "style": {
+ "navigationBarTitleText": "年审",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+ }
+ }
+ ]
+ }
+ ],
+ "tabBar": {
+ "color": "#7A7E83",
+ "selectedColor": "#3cc51f",
+ "borderStyle": "white",
+ "backgroundColor": "#f4f5f7",
+ "custom": true,
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ // "iconPath": "home",
+ // "selectedIconPath": "home-fill",
+ "text": "首页"
+ // "customIcon": false
+ },
+ {
+ "pagePath": "pages/map/index",
+ // "iconPath": "home",
+ // "selectedIconPath": "home-fill",
+ "text": "地图"
+ // "customIcon": false
+ },
+ {
+ "pagePath": "pages/my/my",
+ // "iconPath": "account",
+ // "selectedIconPath": "account-fill",
+ "text": "我的"
+ // "customIcon": false
+ }
+ ],
+ "current": 0
+ },
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "广交投",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
diff --git a/pages/audit/detail.vue b/pages/audit/detail.vue
new file mode 100644
index 0000000..d1ab081
--- /dev/null
+++ b/pages/audit/detail.vue
@@ -0,0 +1,1052 @@
+
+
+
+ {{ datas.customerName }}
+
+
+ {{ datas.templateName }}
+
+
+
+ 销售经理
+
+ {{ datas.bdName }}
+
+
+
+ 经办人
+
+ {{ datas.createrName }}
+
+
+
+ 项目名称
+
+ {{ datas.projectName }}
+
+
+
+ 合同金额
+
+ {{ _contractAmount }}
+
+
+
+ 付款方式
+
+ {{
+ `${datas.payWayName + datas.payPeriodName},租金及服务费:${
+ datas.contractRentOrder.contractTotal
+ } 押金:${datas.contractRentOrder.guarantee} 共计${_totalCost},${
+ datas.contractRentOrder.truckQuantity
+ }台车`
+ }}
+
+
+
+
+ 合同生效日期
+
+ {{ formatDateTime(datas.signingDate) }}
+
+
+
+
+ 合同失效日期
+
+ {{ formatDateTime(datas.expireDate) }}
+
+
+
+
+ 签约公司
+
+ {{ datas.orgName || "" }}
+
+
+
+ 备注
+
+ {{ datas.remark || "" }}
+
+
+
+
+ 文件
+
+
+
+
+ {{ item.name }}
+ 预览
+
+
+
+
+
+
+ 用印合同
+
+
+
+
+
+
+ {{ item.name }}
+ 预览
+
+
+
+
+
+
+ 审批信息
+
+
+
+
+
+
+ 执行人:{{ item.auditorName }}
+ 审批结果:{{ item.auditStatusName }}
+ 审批意见:{{ item.auditOpinion }}
+
+
+
+
+
+ 审批意见:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/audit/index.vue b/pages/audit/index.vue
new file mode 100644
index 0000000..da66e06
--- /dev/null
+++ b/pages/audit/index.vue
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ @{{ item.approvalName }},请处理待处理审批单:
+
+
+
+
+
+ {{ item.createName }}提交的{{ item.contractTypeName }}申请
+
+
+
+ {{ item.customerName }}
+
+
+ 等待
+ {{ item.waitTime || "--" }}
+ 小时
+
+
+
+
+
+
+
+
+
+
+
+ 合同提交时间: {{ formatDateTime(item.createTime) }}
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/face/index.vue b/pages/face/index.vue
new file mode 100644
index 0000000..ac96dea
--- /dev/null
+++ b/pages/face/index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+ 中间页唤起上链公证签刷脸小程序
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..e729822
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,673 @@
+
+
+
+ 业务菜单{{ _isOnline ? "" : "(当前接口为测试环境)" }}
+
+ BI报表
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/login/login.vue b/pages/login/login.vue
new file mode 100644
index 0000000..8839a2b
--- /dev/null
+++ b/pages/login/login.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+ Hello!
+ 欢迎使用广交投氢能车辆运营监控
+
+
+
+
+
+
+ 欢 迎 登 录
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/login/user-login/index.vue b/pages/login/user-login/index.vue
new file mode 100644
index 0000000..226f7b5
--- /dev/null
+++ b/pages/login/user-login/index.vue
@@ -0,0 +1,372 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 阅读并同意
+ 《用户服务协议》和《隐私政策》
+
+
+
+
+
+
+
+
+
+ {{ `登 录` }}
+
+
+
+
+
+ 隐私协议
+
+ 一、概述
+ 本小程序是由羚牛氢能科技(上海)有限公司开发运营的一款产品(以下简称我们),帮助解决用户开通搭建小程序公众号网站方面遇到的问题,可以达到快速上线的目的。我们深知个人信息对您而言的重要性,也感谢您对我们的信任。我们将通过本政策向您说明互助文档会如何收集、存储、保护、使用及对外提供您的信息,并说明您享有的权利,其中要点如下:
+
+ 1.
+ 为了便于您了解您在使用我们的服务时,我们需要收集的信息类型与用途,我们将结合具体服务向您逐一说明。
+
+
+ 2.
+ 为了向您提供服务所需,我们会按照合法、正当、必要的原则收集您的信息。
+
+
+ 3.
+ 如果为了向您提供服务而需要将您的信息共享至第三方,我们将评估该第三方收集信息的合法性、正当性、必要性。我们将要求第三方对您的信息采取保护措施并严格遵守相关法律法规与监管要求。另外,我们会按照法律法规及国家标准的要求以确认协议、具体场景下的文案确认、弹窗提示等形式征得您的同意或确认第三方已经征得您的同意。
+
+
+
+
+ 二、我们如何收集信息:
+ 在您使用互助文档以下各项业务功能(以下简称“服务”)的过程中,我们需要收集您的一些信息,用以向您提供服务、提升我们的服务质量、保障您的账户和资金安全以及符合国家法律法规及监管规定:
+
+ 1.
+ 依据法律法规及监管规定进行实名制管理在您注册互助文档账户或使用互助文档服务时,您需提供手机号码或者第三方账号登陆信息作为账户登录名。
+
+
+ 2. 身份验证
+
+ (1)登录验证
+ 为了让您更安全、便捷地登录互助文档,我们提供自动登陆服务,您也可以选择密码登录、短信验证码登录等其他方式;
+
+
+ (2)重要操作行为验证
+ 为了保障您的账户安全,在您进行一些重要的账户操作时(例如:查看、收藏、下载应用内资料内容时),我们需要验证您的身份,为此您可能需向第三方安全服务提供商提交身份验证信息;如您不同意提供前述信息,您将无法完成特定操作,但不影响您使用我们提供的其他服务;
+
+
+
+
+
+ 3. 获取外部存储权限,获取设备ID, MAC地址
+ 获取外部存储权限用于:记录登录同意的信息,下次登录不用重新选择。获取设备ID,MAC地址,设备ID用于记录用户的唯一性,MAC地址获取是用于确定用户是属于真实用户。
+ 本程序嵌入了百度插移动统计分析sdk,百度移动SDK隐私政策说明,具体隐私政策准则按百度移动SDK隐私为准
+
+
+ 4. 其他
+ 请您理解,我们向您提供的服务是不断更新和发展的。如您选择使用了前述说明当中尚未涵盖的其他服务,基于该服务我们需要收集您的信息的,我们会通过页面提示、交互流程、协议约定的方式另行向您说明信息收集的范围与目的,并征得您的同意。我们会按照本政策以及相应的用户协议约定使用、存储、对外提供及保护您的信息;如您选择不提供前述信息,您可能无法使用某项或某部分服务,但不影响您使用我们提供的其他服务。此外,第三方主体可能会通过互助文档APP向您提供服务。当您进入第三方主体运营的服务页面时,请注意相关服务由第三方主体向您提供。涉及到第三方主体向您收集个人信息的,建议您仔细查看第三方主体的隐私政策或协议约定。
+
+
+
+ 三、我们如何存储和保护信息
+
+ 1.
+ 我们在中华人民共和国境内收集和产生的个人信息将存储在中华人民共和国境内。如部分服务涉及跨境业务,我们需要向境外机构传输境内收集的相关个人信息的,我们会按照法律法规和相关监管部门的规定执行,向您说明个人信息出境的目的以及涉及的个人信息类型,征得您的同意,并通过签订协议、现场核查等有效措施,要求境外机构为所获得的您的个人信息保密。我们仅在本政策所述目的所必需期间和法律法规及监管规定的时限内保存您的个人信息。
+
+
+ 2.
+ 为了保障您的信息安全,我们在收集您的信息后,将采取各种合理必要的措施保护您的信息。例如,在技术开发环境当中,我们仅使用经过去标识化处理的信息进行统计分析;对外提供研究报告时,我们将对报告中所包含的信息进行去标识化处理。我们会将去标识化后的信息与可用于恢复识别个人的信息分开存储,确保在针对去标识化信息的后续处理中不重新识别个人。
+
+
+ 3.
+ 我们承诺我们将使信息安全保护达到业界领先的安全水平。为保障您的信息安全,我们致力于使用各种安全技术及配套的管理体系来尽量降低您的信息被泄露、毁损、误用、非授权访问、非授权披露和更改的风险。例如:通过网络安全层软件(SSL)进行加密传输、信息加密存储、严格限制数据中心的访问。传输和存储个人敏感信息时,我们将采用加密、权限控制、去标识化等安全措施。
+
+
+ 4.
+ 请您务必妥善保管好您的互助文档登录名及其他身份要素。您在使用互助文档服务时,我们会通过您的登录名及其他身份要素来识别您的身份。一旦您泄漏了前述信息,您可能会蒙受损失,并可能对您产生不利。如您发现互助文档登录名及/或其他身份要素可能或已经泄露时,请您立即和我们取得联系,以便我们及时采取相应措施以避免或降低相关损失。
+
+
+ 5.
+ 在您终止使用互助文档服务后,我们会停止对您的信息的收集和使用,法律法规或监管部门另有规定的除外。如我们停止运营,我们将及时停止收集您个人信息的活动,将停止运营的通知以逐一送达或公告的形式通知您,并对所持有的您的个人信息进行删除或匿名化处理。
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/maintain/detail.vue b/pages/maintain/detail.vue
new file mode 100644
index 0000000..44d07c9
--- /dev/null
+++ b/pages/maintain/detail.vue
@@ -0,0 +1,2060 @@
+
+
+
+
+
+
+
+
+
+
+
+ 车牌号
+
+
+
+ 资产状态
+
+
+
+
+ 车辆型号
+
+
+
+
+ 公告车型
+
+
+
+
+ 所属公司
+
+
+
+
+ 项目名称
+
+
+
+
+ 仪表盘里程
+
+
+
+
+
+
+
+ 暂无数据
+
+
+
+
+
+ {{ index + 1 }}
+
+
+ {{ row.maintainItem }}
+
+
+ {{ row.maintenanceDueTime || "" }}
+
+
+ {{ row.maintenanceDueMileage || 0 }}
+
+
+ 查看
+
+
+
+
+
+
+
+
+
+
+
+ 维修站
+
+
+
+
+
+
+ 实际保养日期
+ confirmRealDate(e)"
+ @cancel="showRealDatePicker = false"
+ >
+
+
+
+
+ 实际保养里程
+
+
+
+
+
+
+ 保养项目{{ index + 1 }}
+
+
+
+
+
+
+
+
+
+ 工时费
+
+
+
+
+ 材料费
+
+
+
+
+ 材料费(公司自采)
+
+
+
+
+
+
+
+ 超出费用
+
+
+
+
+ 备注
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 公司应支付
+
+
+
+
+ 公司已支付
+
+
+ 收款方:维修站
+
+
+ 公司支付凭证
+
+
+
+
+ {{ item.fileName }}
+ 预览
+
+
+
+ 客户应支付
+
+
+
+
+ 客户已支付
+
+
+
+
+ 收款方
+
+
+
+
+
+
+ 客户支付凭证
+
+
+
+
+ {{ t.fileName }}
+ 预览
+
+
+
+ 超出费用(总计)
+
+
+
+
+ 保养单据
+
+
+
+
+ {{ t.fileName }}
+ 预览
+
+
+
+ 保养照片
+
+
+
+
+
+
+ 备注
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.maintainItem + "保养"
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/maintain/index.vue b/pages/maintain/index.vue
new file mode 100644
index 0000000..33378ba
--- /dev/null
+++ b/pages/maintain/index.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 未保养
+
+
+
+ 已保养
+
+
+
+ 项目名称: {{ item.projectName || "--" }}
+
+
+ 资产状态: {{ item.truckRentStatusName }}
+
+
+ 维修站: {{ item.maintainSiteName || "--" }}
+
+
+ 负责人: {{ item.handlerName || "--" }}
+
+
+ 公司应支付: {{ item.companyPayable || 0 }}
+ 公司已支付: {{ item.companyPayed || 0 }}
+
+
+ 客户应支付: {{ item.customerPayable || 0 }}
+ 客户已支付: {{ item.customerPayed || 0 }}
+
+
+ 车牌号: {{ item.plateNumber }}
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/map/index.vue b/pages/map/index.vue
new file mode 100644
index 0000000..e942e49
--- /dev/null
+++ b/pages/map/index.vue
@@ -0,0 +1,1639 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 里程单位(km)
+
+
+ 表示未对接车机数据
+
+
+
+ 车牌
+
+
+
+ 行驶里程
+ {{
+ mileageSortOrder === "desc" ? "↓" : "↑"
+ }}
+
+
+
+ 仪表盘
+
+
+ 部门
+
+
+
+
+
+
+ {{
+ current === 0 ? item.plateNumber : item.stationName
+ }}
+ {{
+ item.dayMileage || 0
+ }}
+
+ {{
+ item.totalMileage
+ }}
+
+
+
+ {{
+ item.shortDepName || "--"
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/my/my.vue b/pages/my/my.vue
new file mode 100644
index 0000000..c40fb22
--- /dev/null
+++ b/pages/my/my.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+ 退出登录
+
+
+ 退出账号
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/returnCar/cost.vue b/pages/returnCar/cost.vue
new file mode 100644
index 0000000..cacf59b
--- /dev/null
+++ b/pages/returnCar/cost.vue
@@ -0,0 +1,1917 @@
+
+
+
+
+
+
+
+ 车牌号
+
+
+
+ 客户名称
+
+
+
+ 交车时间
+
+
+
+
+ 还车时间
+
+
+
+
+
+
+
+
+
+
+ {{ t.depName }}
+
+
+
+
+ 金额
+
+
+
+
+
+
+ {{ t.costStatus == 1 ? "已提交" : "未提交" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 说明
+
+
+
+
+
+
+
+
+
+ 项目
+
+
+
+
+
+
+
+
+ 金额
+
+
+
+
+
+ 备注
+
+
+
+
+ 照片
+
+
+
+
+ 附件
+
+
+
+
+
+
+ {{ t.fileName }}
+ 预览
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保证金
+
+
+
+ 待结算费用
+
+
+
+ 总计
+
+
+
+ 评论
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/returnCar/detail.vue b/pages/returnCar/detail.vue
new file mode 100644
index 0000000..7e1c4cd
--- /dev/null
+++ b/pages/returnCar/detail.vue
@@ -0,0 +1,3869 @@
+
+
+
+
+
+
+
+
+
+
+ 合同编号
+
+
+
+ 项目名称
+
+
+
+ 客户名称
+
+
+
+ 客户联系人
+
+
+
+ 客户联系人手机
+
+
+
+ 销售经理
+
+
+
+ 车牌号
+
+
+
+ 品牌
+
+
+
+ 车型
+
+
+
+
+
+ 还车人
+ 授权人:{{ datas.take.takeName || "" }}
+
+
+
+ 还车人电话
+ 授权人联系电话:{{ datas.take.takePhone || "" }}
+
+
+
+
+ 还车人身份证
+ 授权人身份证:{{ datas.take.takeIdNo || "" }}
+
+
+
+
+ 还车里程
+ 交车里程:{{ datas.take.takeMileage || "" }}
+ km
+
+
+
+ km
+
+
+
+
+ 还车电量
+ 交车电量:{{ datas.take.electricity || "" }}
+ %
+
+
+
+ %
+
+
+
+
+ 还车氢量
+ 交车氢量:{{ datas.take.hydrogenMeasure || ""
+ }}{{ datas.take.hydrogenUnitName || "" }}
+
+
+
+ {{ datas.take.hydrogenUnitName || "" }}
+
+
+
+
+
+
+ 还车时间
+ 交车时间:{{
+ formatDateTime(
+ datas.take && datas.take.handoverDate,
+ "hour"
+ ) || ""
+ }}
+
+
+
+
+
+
+ 还车地点
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 接车服务费
+
+
+ 元
+
+
+
+
+
+
+
+
+
+
+
+ 仪表盘照片
+
+
+
+ 正面照片
+
+
+
+ 左前方照片
+
+
+
+ 右前方照片
+
+
+
+ 左后方照片
+
+
+
+ 右后方照片
+
+
+
+ 瑕疵照片
+
+
+
+ 轮胎照片
+
+
+
+ 轮胎照片
+
+
+
+ 左前轮
+
+
+
+ 左后轮(内)
+
+
+
+ 左后轮(外)
+
+
+
+ 右前轮
+
+
+
+ 右后轮(内)
+
+
+
+ 右后轮(外)
+
+
+
+ 备胎
+
+
+
+
+
+
+ 左前轮
+
+
+
+ 右前轮
+
+
+
+
+
+ 左前外
+
+
+
+ 左前内
+
+
+
+ 右前外
+
+
+
+ 右前内
+
+
+
+
+ 左中内
+
+
+
+ 左中外
+
+
+
+ 左后内
+
+
+
+ 左后外
+
+
+
+ 右中内
+
+
+
+ 右中外
+
+
+
+ 右后内
+
+
+
+ 右后外
+
+
+
+ 备胎
+
+
+
+
+ 底盘照片
+
+
+
+ 正前方底部
+
+
+
+ 左侧前部底部
+
+
+
+ 左侧后方底部
+
+
+
+ 右侧前方底部
+
+
+
+ 右侧后方底部
+
+
+
+ 正后方底部
+
+
+
+
+ 其它
+
+
+
+
+
+
+ 备注
+
+
+
+ 相关材料
+
+
+
+ 司机证件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.dataCategory }}
+
+
+ {{ row.dataName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/returnCar/index.vue b/pages/returnCar/index.vue
new file mode 100644
index 0000000..6517068
--- /dev/null
+++ b/pages/returnCar/index.vue
@@ -0,0 +1,582 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 合同编号: {{ item.contractNo }}
+
+
+ 项目名称: {{ item.projectName }}
+
+
+ 客户名称: {{ item.customerName }}
+
+
+
+ 交车地点: {{ item.handoverAddressName }}
+
+
+ 还车地点: {{ item.returnLocationName }}
+
+
+ 还车时间: {{ formatDateTime(item.returnDate) }}
+ 车牌号: {{ item.plateNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+ 停车场确认
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/standbyVehicle/detail.vue b/pages/standbyVehicle/detail.vue
new file mode 100644
index 0000000..79a26f9
--- /dev/null
+++ b/pages/standbyVehicle/detail.vue
@@ -0,0 +1,591 @@
+
+
+
+
+ 合同编号
+
+
+
+ 项目名称
+
+
+
+ 客户名称
+
+
+
+ 备车数量
+
+
+
+ 交车区域
+
+
+
+ 交车地点
+
+
+
+ 备注
+
+
+
+
+
+
+
+
+
+
+ 品牌
+
+
+
+ 车型
+
+
+
+ 车牌
+
+
+
+ 约定交车日期
+
+
+
+
+ 状态
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/standbyVehicle/detailInfo.vue b/pages/standbyVehicle/detailInfo.vue
new file mode 100644
index 0000000..d4765a9
--- /dev/null
+++ b/pages/standbyVehicle/detailInfo.vue
@@ -0,0 +1,1031 @@
+
+
+
+ 品牌
+
+
+
+
+
+
+ 型号
+
+
+
+ 车牌号
+
+
+
+
+
+
+ 车架号
+
+
+
+ 车身广告
+
+
+
+
+
+
+ 尾板
+
+
+
+
+
+
+ 是否有挂
+
+
+
+
+
+
+ 挂车牌号
+
+
+
+ 合同交车日期
+
+
+
+ 约定交车日期
+
+
+
+ 运维预计交车日期
+
+
+
+
+
+ 是否一致
+
+
+
+
+ 备注
+
+
+
+
+
+
+ 备车完成
+
+
+
+
+ 备车完成时间
+
+
+
+
+ 瑕疵照片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.dataCategory }}
+
+
+ {{ row.dataName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/standbyVehicle/index.vue b/pages/standbyVehicle/index.vue
new file mode 100644
index 0000000..174a2e9
--- /dev/null
+++ b/pages/standbyVehicle/index.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 合同编号: {{ item.contractNo }}
+
+
+ 客户名称: {{ item.customerName }}
+
+
+ 合同约定数量: {{ item.contractVehicleQuantity }}
+
+
+ 待备车数量: {{ item.standbyVehicleQuantity }}
+
+
+ 合同签订时间: {{ formatDateTime(item.signingDate) }}
+ 约定交车时间: {{ formatDateTime(item.appointedDate) }}
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
diff --git a/pages/truckRent/detail.vue b/pages/truckRent/detail.vue
new file mode 100644
index 0000000..030c92c
--- /dev/null
+++ b/pages/truckRent/detail.vue
@@ -0,0 +1,3331 @@
+
+
+
+
+
+
+
+
+
+
+ 合同编号
+
+
+
+ 项目名称
+
+
+
+ 客户名称
+
+
+
+ 客户联系人
+
+
+
+ 客户联系人手机
+
+
+
+ 销售经理
+
+
+
+ 授权人
+
+
+
+
+
+
+ 授权人联系电话
+
+
+
+ 授权人身份证
+
+
+
+ 交车区域
+
+
+
+ 驾驶培训
+
+
+
+
+
+
+
+
+ 车牌号
+
+
+
+
+
+
+
+
+
+ 品牌
+
+
+
+ 车型
+
+
+
+ 换车备注
+
+
+
+ 交车里程
+
+
+ km
+
+
+
+
+ 交车电量
+
+
+ %
+
+
+
+
+ 交车氢量
+
+
+
+
+
+
+
+
+
+ 交车地点
+
+
+
+ 交车时间
+
+
+
+
+
+ 送车服务费
+
+
+ 元
+
+
+
+
+
+
+
+
+
+ 仪表盘照片
+
+
+
+ 正面照片
+
+
+
+ 左前方照片
+
+
+
+ 右前方照片
+
+
+
+ 左后方照片
+
+
+
+ 右后方照片
+
+
+
+ 瑕疵照片
+
+
+
+
+ 轮胎照片
+
+
+
+ 轮胎照片
+
+
+
+ 左前轮
+
+
+
+ 左后轮(内)
+
+
+
+ 左后轮(外)
+
+
+
+ 右前轮
+
+
+
+ 右后轮(内)
+
+
+
+ 右后轮(外)
+
+
+
+ 备胎
+
+
+
+
+
+
+ 左前轮
+
+
+
+ 右前轮
+
+
+
+
+
+ 左前外
+
+
+
+ 左前内
+
+
+
+ 右前外
+
+
+
+ 右前内
+
+
+
+
+ 左中内
+
+
+
+ 左中外
+
+
+
+ 左后内
+
+
+
+ 左后外
+
+
+
+ 右中内
+
+
+
+ 右中外
+
+
+
+ 右后内
+
+
+
+ 右后外
+
+
+
+ 备胎
+
+
+
+
+ 底盘照片
+
+
+
+ 正前方底部
+
+
+
+ 左侧前部底部
+
+
+
+ 左侧后方底部
+
+
+
+ 右侧前方底部
+
+
+
+ 右侧后方底部
+
+
+
+ 正后方底部
+
+
+
+
+ 其它
+
+
+
+
+
+ 备注
+
+
+
+ 培训文件签字照片
+
+
+
+ 司机证件
+
+
+
+ 安全培训照片
+
+
+
+
+ 安全培训附件
+
+
+
+
+
+
+ {{ item.name }}
+ 预览
+
+
+
+
+
+ 审批意见
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.dataCategory }}
+
+
+ {{ row.dataName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/truckRent/detailInfo.vue b/pages/truckRent/detailInfo.vue
new file mode 100644
index 0000000..2f03b65
--- /dev/null
+++ b/pages/truckRent/detailInfo.vue
@@ -0,0 +1,625 @@
+
+
+
+ 品牌
+
+
+
+
+
+
+ 型号
+
+
+
+ 车牌号
+
+
+
+
+
+
+ 车架号
+
+
+
+ 车身广告
+
+
+
+
+
+
+ 尾板
+
+
+
+
+
+
+ 是否有挂
+
+
+
+
+
+
+ 挂车牌号
+
+
+
+ 合同交车日期
+
+
+
+ 约定交车日期
+
+
+
+ 运维预计交车日期
+
+
+
+
+
+ 是否一致
+
+
+
+
+ 备注
+
+
+
+
+
+
+ 备车完成
+
+
+
+
+ 备车完成时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.dataCategory }}
+
+
+ {{ row.dataName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/truckRent/index.vue b/pages/truckRent/index.vue
new file mode 100644
index 0000000..f0b0ba8
--- /dev/null
+++ b/pages/truckRent/index.vue
@@ -0,0 +1,478 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 待安检
+
+
+
+ 驳回
+
+
+
+ 已通过
+
+
+
+ 待审批
+
+
+ 合同编号: {{ item.contractNo }}
+
+
+ 项目名称: {{ item.projectName }}
+
+
+ 客户名称: {{ item.customerName }}
+
+
+ 交车区域: {{ item.deliveryAreaName }}
+
+
+ 交车地点: {{ item.handoverAddress }}
+
+
+ 交车时间: {{ formatDateTime(item.handoverDate) }}
+ 车牌号: {{ item.plateNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/truckRent/modal.vue b/pages/truckRent/modal.vue
new file mode 100644
index 0000000..709c77f
--- /dev/null
+++ b/pages/truckRent/modal.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+ 请确认退还车辆有无无忧包?
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/unusualActionApply/detail.vue b/pages/unusualActionApply/detail.vue
new file mode 100644
index 0000000..e8c6597
--- /dev/null
+++ b/pages/unusualActionApply/detail.vue
@@ -0,0 +1,1896 @@
+
+
+
+
+
+ 车牌号
+
+
+
+
+
+
+
+ 异动驶出停车场
+
+
+
+
+
+
+ 异动城市
+
+
+
+
+
+
+ 异动开始里程
+
+
+ Km
+
+
+
+
+
+ 异动结束里程
+
+
+ Km
+
+
+
+
+ 异动里程
+
+
+ Km
+
+
+
+
+ 异动开始氢量
+
+
+
+
+
+
+
+
+
+ 异动结束氢量
+
+
+
+
+
+
+
+
+
+ 异动开始电量
+
+
+ %
+
+
+
+
+ 异动结束电量
+
+
+ %
+
+
+
+
+
+
+ 异动类型
+
+
+
+
+
+
+ 异动原因
+
+
+
+ 预计异动里程
+
+
+ Km
+
+
+
+
+ 异动开始时间
+ confirmStartTime(e)"
+ @cancel="showStartTimePicker = false"
+ >
+
+
+
+
+ 预计异动结束时间
+ confirmPlanEndTime(e)"
+ @cancel="showPlanEndTimePicker = false"
+ >
+
+
+
+
+ 异动结束时间
+ confirmEndTime(e)"
+ @cancel="showEndTimePicker = false"
+ >
+
+
+
+
+
+ 异动目的地
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 异动结束停车场
+
+
+
+
+
+
+ 备注
+
+
+
+ 审批意见
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/unusualActionApply/index.vue b/pages/unusualActionApply/index.vue
new file mode 100644
index 0000000..2575d67
--- /dev/null
+++ b/pages/unusualActionApply/index.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 待审批
+
+
+
+ 待提交
+
+
+
+ 驳回
+
+
+
+ 异动超时
+
+
+
+ 已撤销
+
+
+
+ 进行中
+
+
+
+ 异动完成
+
+
+
+ 车牌号: {{ item.plateNumber || "" }}
+
+
+ 申请人: {{ item.applyUserName || "" }}
+
+
+ 审批人: {{ item.approvalName || "" }}
+
+
+ 开始时间:
+ {{ formatDateTime(item.transactionStartTime, "minute") }}
+
+
+ 异动目的地: {{ item.transactionAddressName || "" }}
+
+
+
+
+
+
+
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
diff --git a/pages/webview/index.vue b/pages/webview/index.vue
new file mode 100644
index 0000000..1e79b71
--- /dev/null
+++ b/pages/webview/index.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/patches/uview-ui+2.0.38.patch b/patches/uview-ui+2.0.38.patch
new file mode 100644
index 0000000..b9446b5
--- /dev/null
+++ b/patches/uview-ui+2.0.38.patch
@@ -0,0 +1,32 @@
+diff --git a/node_modules/uview-ui/components/u-upload/u-upload.vue b/node_modules/uview-ui/components/u-upload/u-upload.vue
+index eb55854..ad84c0e 100644
+--- a/node_modules/uview-ui/components/u-upload/u-upload.vue
++++ b/node_modules/uview-ui/components/u-upload/u-upload.vue
+@@ -20,14 +20,15 @@
+ />
+
+
+- {{item.isVideo || (item.type && item.type === 'video') ? '视频' : '文件'}}
++ {{ item.name || '文件' }}
+
+ ?00001b5ch_0Itp)
z=>Px&5J^NqR9Hvtm`#XHVHn4Me`9>6!7!19vQXq>VP(OTtPm-(u#rNO)KHRA%0gHW
zO;TvGW5d)~*vQ9f5(`r!8%-8I(#*)WWaiOxoulJA_n!COJLhI`-`&0M|9PMPdA{FQ
z0A|(=Yy+nF?>en-zztxpB+Jq%GrJ1x&I0DRe_m2&*7;6!1elct%yVCovd(v+Uw~;@
zz?}CdWVydVv_cOwELx$#GT}8@bSKc4p~92!0Wdq0N_jxlM4wAq5~AG9b^zByuw^h+
z6ZJE_TRj5G)j02DXKN(s;x!Q+2mQfEG>8V9DiGMPXrQ5jVKrIQXT;H9RsRCLS~La9
zS5Gu#^vWV(W?zA+S-4ut)1ah90Sd}O%>A+{;Hqa@_
z?{R;vdJ*lCbRa?UH88)7N#6mBC4Go7^&mPVX|5|YGcQ#>I)+w~b&~G6Y$>8{`WB$M
zqCol$c9#w(ou+t{K40NNA3vVKZw7?x!5oF6m(+c0JkrW>LJh=N+TX
zl75=m3m~l}Z8KO+H>PLRvIvmtkaQ`ssz0c$
z4UmZ;cO|Vacp*B#OUH(sp2$7hyWOght}bAI0NE>&_WX(K0D*CbnAu9;SY(_@2?alZ
gJAjw1r%A=X0KWQeYA&g8DF6Tf07*qoM6N<$g5g1fDF6Tf
literal 0
HcmV?d00001
diff --git a/static/baoyang.png b/static/baoyang.png
new file mode 100644
index 0000000000000000000000000000000000000000..32b8dad9c33736a82327e6de1dea7cf4acc3332d
GIT binary patch
literal 1834
zcmV+_2i5qAP)iWq$=f@svJiHTwq6@mtrs4)>-5E7$_5;Q8|lkp3vk+^>l
z#b^X^0dZk5ilT^Yih`gK7Z7C=g!g!F%#c%3N~bgJZEt(;d;et8d)w*s^xrdc&YU?d
z?Py1?C@H1#mZ1;u0&t4_j}oX1Gy^k$yMh0zB;!6Pl}fvJ6@kFTz!?e7dmMNm19_a_
z5m?Sk03VJ_c;0E5ND~u9AaHBK^Zrd)jzlN|fk~13*h4`GJSpLM$EPeuBJ5WH86E@<
zkEv1m!GDvXOwK5R6|PAX$qLsr+6k->d5(d@ft!GXQ)p{5umG3<{GLL4&d6&FyaSk&
zLA%?4+kq(=w7nPdp31Ek%bOLR0!C$d19=;ftgm|y@HKF9#@ES>z#Ub%Mt@)#Ff_}H
z)Vme#0K5r2lhp;rqt#-gX|rZQm;FlzfCDM)PaM2iU(U4zPKo%a|7Np>~8{w0k>Js?<`h&
zLQ(;21P)5taFx)-a+#NbvwTB`38SS;pAc7U8-W9IBE}Vi9LBnDr5C+osduhe>8s)h
zU?cGKIF03iPQXIoYRjdY#Lx`4)H@KEE=JP{Q3UFz*1gE=3G_|B4Ls&h_j#Zn@S~;P
zNZ?E0C|iSmH%5;q$I0M(iDU}=CJWys$D4_QUiGk`bqQbR`@xZ$dsUv!b
zY6M=j)Vl~+E_L@JFbI!c?PPAKVFER-l$*ZPQg55A&)BSVH{c`xjxYjSW!t3=2t?-c
zvw(*k>S`-}zGZ%_HF|{iCyc;m*&YD=9bewUVjS=maF|8F`M{~b=Mi=8^?qmq4+$Jx
zDcg>9qJe%40lo(YTIy{FZj6XJ_4a<0eS~>A=sxX*H5x*P8_9NV*|
zQ?tAdN}bneE5
zGgVZgfjZ#&b3~nz)bliOmt)&5uW-$l%&OdBBG9%D+$xdlo|bz4c3d9TF2}KQg+raH
zpb`z#k?ajV4f7*72IAHp*l^43mU_xJ#mQe45u)T$)<#$|sgerPV}O;ogS*$oE)gR4Bk^iLSga!Pi=W
zR)8CT)t_)_UXlO@Q~j#L2r
Y4?wZCG6lxpS^xk507*qoM6N<$f&%Vo)&Kwi
literal 0
HcmV?d00001
diff --git a/static/beiche.png b/static/beiche.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba79c4868e145fa3a9fd8f70b0832764f325b987
GIT binary patch
literal 2963
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
literal 0
HcmV?d00001
diff --git a/static/bi.png b/static/bi.png
new file mode 100644
index 0000000000000000000000000000000000000000..15777591ebf96ae7d5ea3a2350ab6bb0806deda6
GIT binary patch
literal 558
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
literal 0
HcmV?d00001
diff --git a/static/cost.png b/static/cost.png
new file mode 100644
index 0000000000000000000000000000000000000000..78c168281eb8b098ea71e0db1b827e2ce05335e4
GIT binary patch
literal 4371
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
N002ovPDHLkV1m`KEztk~
literal 0
HcmV?d00001
diff --git a/static/detail.png b/static/detail.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f4192dca1818e70ac756b6c7b4e98af1c43b446
GIT binary patch
literal 938
zcmV;b16BNqP)Px&WJyFpR9HvFSHV)+P!v7)MUzToUr<+EByj-
zQCU`ZPFxhfK=^{0DFa>Lt@Fw@%bI&>Vh49J`y>fjl9l+=2+q95w
z>g>a9d!FW&2B3PmR|fGX0O>(tf&-?jMDKT{R%$tMV3q=)+RQfqeAE^pv=dMLTpWmn
z0US1Wiv&8KLHC7a+C|-&g#lEXc{S_p;mZlQW1t&lB+=_{=vY_=03LP550-g5(7@s4
zUY$Hm_>vI0Q}d=3Wnswx(6vl^OBIRgg79(xt^m9XIwQ2f>;RMvcWarpw%LUlm{Ww;
zmT4DWM1-~TZ0b*PRf%pr*6WP@)AzPwYT{X#0o}aEtBi#CVgOY98j!zq1sGg9GjCN;
z#pKjHfj!5Wm^6G$^!n+4j^go`a*HJ@YROcad6n&ppD}=0A7a#hrl(k(P6j^
zfHwVDYqQHGA*i6b^ClFqprUzQbu2*X;D3T+9oQQ)lko8SZiWQiN0dCEe-;~|q6HVC
z5b9pNu49>YW+niCuYc7Tb}Ac0B1^=DQ`64+uBe9+@{uKHr7)Z?=8ejXP;hD#e$>p@
zM$|?Rcw*GCac0^lN0<2m3mk(HbW4nVCKN!}whru_sQ}b^C5W<=t`ikn2)4s6=Y%j)
zQEd>5iexSfg{zz(!QJ7V!G+igvoI#Y0eZp@Uubog#W%rR4!ghy(P7C&7<3GmPjqYu
zh&u%YEE{CdPu~fM+Hnj(bcX}z5=6=Ka^QkT7b0Uos%+n$=@g=L(3FRMY%z@is5W=I
zfz`$b6|e!4ZLr9AtndRs%H!+Gh7;N#ILusuL^~K~#Et=gX?gBr>ADcP6_%M{N9vl@
zOD0n*kPQaj_^DS@^oO;6T2|r?Urqu5vGyA=(b0H&Fd~L5M=vE&F%Cv0
zQF5O*D+O?q%+6$
zTZjE3(d(D{YiqTTn}WOJQZ6LAs=D7)%&Y8B88iHJ`>z0Wpk5uoUsw*@F!o7yPXGV_
M07*qoM6N<$g7#&vfB*mh
literal 0
HcmV?d00001
diff --git a/static/electricity.png b/static/electricity.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2565a902c2e7a137d8baa1585dca659fb4e491f
GIT binary patch
literal 721
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
literal 0
HcmV?d00001
diff --git a/static/huanche.png b/static/huanche.png
new file mode 100644
index 0000000000000000000000000000000000000000..3300d4e1b8d75d3a747344816c42b437bb121642
GIT binary patch
literal 2427
zcmV->3552EP)Px;HAzH4RA@uZnhVfvs##wH&ogdS-5hvwFaG|(_`LoHe4_z5G0A1~j6dtz
zYYc>{x<2s8*7)Oq>&%*LpT7$DBJfd8@;OI7XqIHj!g3N#mu+?70ky12GL3K
zXW)Inr-2_OF{W%7cc`ix0uKeA-vDef;mLmkP6po7CR~eI{G@BDN^k}F;lNf40R3*@
zB;f2M>pXASmQYpK2JQ4eGr2RIG*P^Y^qm%8vNU>GkR4D8iPxW$z5&jsGq
z0rmXhnk9o!Ro=TVus3k42@ll-&jL;Wj!5#Cg%;l9WtQpA0v}qCxnI%b8-LL)i27s<4$bK#Wo(Ejg0}J>N+`Mkh_r+RHRT(ob?(vrm!ruWW
z{a;}7BeI(}OCo3sO2>^Wdfa7$V1skh6#_xO
zeebLV%s4Lqcba99RVAqZTpu88v7E-Hs$K!Sy%(v5e+`VMQr%;k3u`f6|I8%Dlc}I*fV|`7Nv^1>8(WcT70pvTqO+3!OR?FZ8ZbZDt@Nvbqml^N`U9bT@XQWUTEdP=
z{5_Y9fM6r`kdd3!z68u)yKvIqPi-bj*RfBr2hj9wodwPBmfenJ^=O=0r?yxzcW4ky
zV-M>*y;YJw&V|70m>|_|jbN&kP@N?MI6g~W(!%O{9S|jNtXpK6q~8vo)X%Im2x{Wx
zz?YI}j&n&^
zw1!C({BW}dH7(uXNbkkL{J+c>R+S8ZK0Dk;!9q~KBs?_fu%^Y$AW`xav8#TY-
z&Xs!-Cnq^#rX^IBHOQ4zNSL
zOYc4ECTjd?T?3q!Y+VJz?Xm-=
z45Ilyx_!_IyTNj_PpT>xrfE*%`NuVMU>}<(K}@n1O*hFBcI|>kdh5$Q@qyWOF$SZZhK{V?E3me=RkdxkKp8ZCSdx9K
zO4F8Vnvwz
z_XoOxukV;eWRuUSDxZVNLAgtih
zCb1Awt7>0&I4H@%RkfMts!B_ce~^$-Q5H(ZG6UqQEH-UhZd!KGv}KCbyo}5$7PqQ=
zfD1e;iLc4{pD{yXRKimxNbOto4HH?54qJ*DjHNRJu+I{l&o}odsbcKW9ekcvvuJ4$
zyvMkA^_tzBsxt6s(uyfhQ#Qqzo_0=RR2BqtvgW6CD4rj(fa!Fg%@;kXSr_(>wN^U%
zuE8(m43@}ix^B5h1NsGPZE01N2piaBXpHQZpL-=)tGnwBO*4lZK3(8B-#002ovPDHLkV1kSPx&D@jB_RA@u(noFonVHC%IYb37$0~7-#6H0U=jNGD3D5Mkv-IRfpSIP)8c@{Dt
zkrWvy45XB6KzZj5$i>8KA|@U&`fKgJecETAbI*I9v#<77=hW$ZdwuKwt+m%$-+z5Z
zYDgLYmH=~rdBBA9oF4oh2A%_N%r_ZkGMw&waoNGs}bGW&0s%C$K93Iq2?Wk~RXDW97~4
zP)57h5wVi`fTuy&CI@f<*bICzv*{gKC1W9ycDR=S7ahQ3U?FhJ%<}#MM_VJwqvK29
zi39ivj0Ym0%6RiSB3{y1;5YEg0mRW~)Bp%pi1aQ1bi^lG5E6UNh!#jDHVa9kg>~YW
zE}10z&1|q$S@ClPfM#|uRi+dcXebI5??A%G3Ky#K!WB`dh(gWmK;c58y_9Iv+Udu;
zpNYE#K++^&8ZZ_30DK;aTxcqc`f06A5HaK7Vyap|(h*=!YMqbHmYA8J+sj5%0J1Kp
zC0zkF0Jr^Y4!i~y0LO#Y6`=D5zzMX8K%betOVs@9fos4SGuxIlL2dv@a_;p9aL3G6
zj^HX^&1_0u0XRjnHaeiESP@Cvfs?=^Gh3WX0JVaHB>rgN0D6rd0j9Ln($*??G-~}+hj?1(ZMoUzCyR>^~
zVZ}OnldeQ9O1f9i-+}v8lHC8pPJ12V^~f9}2ypbVB?|FQ~7;00000NkvXX
Hu0mjfe?pQ4
literal 0
HcmV?d00001
diff --git a/static/hydrogenStation.png b/static/hydrogenStation.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9adaccb2f3dd2e0c2859f3ef2ff540aa9224a44
GIT binary patch
literal 1129
zcmV-v1eW`WP)Px(BS}O-RA@u(noWotMHI*XuU0cX>s2v`f)_8&%&ufZf+shKvI&S@+)FMIM8$(4
z;>SUlt{LzHJVXFN&}cc6uk^!GjJQT`9a}-zNf~)@c0=qI)FQ&8-FM
zLHIob^Aii8gVwwP`4U8KEimXTw(9@@Y4-M<)DO|WlDoL3;T!<8XY@4y4F)&J@TdN4
z@w;ua00^)8W$&akI+DEJxcMlP`cW#kxj-GSR=iWaX?Ab2DO#Z22-BiJQ@Aon=dLn+
z6SI^?S>doQc~|4&pmJ8@M~rWr5+%{L1$_#G{#2F>DfKMM8!q|$gKD_RA9n6
zUG`qgHGoad^lVY5v}zvAuBH9$NYm9o`by3mdT*ql4=&dH@+l1rg5767|-
zvx>Ov&7+8gW@&QiGk&+b}arKO$O=4`S3Jr#hkpcr==;HzB+NaicjEJTD4s%7s)ZFT)i
zFh4a}0Gr2>wZ_diLF&CpnT6WNe&{IQItrpoY4J1OS;{I$dZ}d42uXKH4zX`UQXP
z0Fs~wqu&oe
zuZCxd@q#p6M{>Jk69EQoY}j&f3+R7>QRS?tz{auLTmJ{q=z9B4EB9<|>QotLq;#^D(KPot6{P#cH|mT-JVQoc~5h%1IY~
vuKJU2fp!cyR!C{Iwo`6bTPQ3I69fMNCQDo3)N-d+00000NkvXXu0mjfnU5Mf
literal 0
HcmV?d00001
diff --git a/static/jiaoche.png b/static/jiaoche.png
new file mode 100644
index 0000000000000000000000000000000000000000..79794336e0fc061b576d01422692a05c0502579e
GIT binary patch
literal 4038
zcmV;%4>|COP)003MF1^@s6>7Tw&000k-NklW^tGj3Bo7dg%
zy?#vr0RaI40RiPe&McFe!;2^{x)9NLB08Oj_9LQ4i0DBgdRe`mO1`mNZacaK0%ip5
zi0Bw1nh5gMTB@~#h-MPe14J~t5^pjPFnc%{lI~O@>KUVUA44iCGQL+SHya3;4eSBZ
zskCPSYV)H&a*+f2Rxg~ffzL_vVS8*xf_Y-NtF9nNZq0$5HLM5!EHkX9E#E4$?i1K3K7#
z-sx~i#gmDscZ%{>LZvek1DS1U>K+If4JAd+z{~5CFb_4D_$NrGMx8CCya5C1LpmIi
z@kAo(o+7W$iRfXBrr$^+!2<#9=r1f2gHq(9l)(3)nf-S$E1VFj>+nsGQFST0rO0cM
zu)fUky(kdyf7nr2CPt(fOe}(=Q|VvDsA!SUk%*3iq#r{>ol_JuU)ZJd4yf8X0o7pQ
zc#uv#{Pqd+S%p5)^w!`a1&hsCknvkY)FDM)bA@F5)I8W$33!wkOeAe~Hb7T49lEnk
z1+HUOP!9{v1U$Di=EK)P#F^+nwpjuuy&*N?dk+0NHJE5BaJ{mQoiK_%1p}F+ra<)^
zUs94Wm&@H|9;_q+_9ddTiRc{Yxuy`&Pd!u{ac^iYNH;@&xdH!u_9qe1X)pyQ>NDpo
zA~5R&?1=u!Sx^GYuka=!`iVy#TcD1}htFV@m|jT^o@GLRVSU*@P8BMNfXcQy2|77f
zzwM7i^nH)K);RK54ZYTVXd+T6S=%V~1`$v7QDIdA0Y?$h<&bt!xCfFk3N8ZnfTlm7
zFc>17BnH@Wv=OkBPLlbsI}zOiHGmJ+6u^6<6lSrugt
zNpyxXc#Ej`W?}SSi({R!zZP~?U&XIW0@k;|k!`79B~c+IU_F}3GgH`1)8I4s!udE<
zy83oWtsemeL=xT3&anSoQ6};!^dq9HJkNDG19UB5eF7392?6g&>2Fpjj0i8i@)4JS
z2S6{E1tj&+3&;@S67cv8)jf?nQ9wqJWE9*B^C7yXaJFQR5oiZ!-7kZh#>8SAkHR8H
zmti*yWS2qK<;UgqwM(un`h3-Z^1+vY$|vksa4@Wc9aVamM|2j*P
zs`GO-p;`he`{VUQ^kd9z4X7aa67btZ^cuWd-;8m4k6{9g#^2y^YvMfU7bP?y^I0--
zaIYT#kLN(Z3WIM)eiU4zu8()K0mLO>4*q|>FbQZI0c$8pcemr1%X2wST>>(Q
zC;|>L0xrG^2Txy^lYyeVkRKKQ>&5?7j`Qn0OnR;+Iyf_A08wg~qm1qAVpO@C=SWuR
z3HO1g%^8k!Tz$tn5BG1E8Yk&I*MI^dih!ey?Qw_@5Cs)`VWk)iIP%{egNSx{q+CAu5YS~Qi3-;d
zPy)CJ*vXjm(+ElS4u0og!Mvyus3OQ=aOFA>YMq{V`GpvT`lwP?JN7RxK=}bF;Ub{2
zc>D%U?rb!xQDp0l$VrEzkJtdIwiN@59IPnY3aA3<6k*;Ygzz}uka!CabUUETa1l_g
zV{wh+SUZqw2Ysc2L
z!W>sGqN~MNZ!bZTGh100=0lW+0FY>uXl>=*qzoL?cf5w01pzxxlJ{$6kn7=XxGn))G
zk9mB(VanTRm;^T)ev0OCbKA^+o#ANPVtDnK=T|Ij1Uv{U25CRK?gb#<0;DEL$^BBs
zmtGAgi9zr+`~kKJ7MdX`>szU~n207hltOH|%>DT~9+K)Fw3dPh%9lrxCw7YE{MyKp&%sVo3f22Xoyg$+&s`W;?l>PCc
zxOOV8x?AL>Qd5ll3W<$IJ!JY0Gk+XW*5k~)bDliR)Qg#KVdnLY{N^z8cyY}DW}d>#
zH^nHU6v+x-0&WEXCL`VL$ghQ&*D&)kX1+q))R~U+7clc{j)%LLnR_sEH{`hm1lM_%
z6Fn?1?3x($`GT1b@ObGHn7P?A&l$|znVGvY^HS_PxwR1RVew^a0^ZEbXIav6oOd<~
z?#;|=jdGuXq|}w`!pv7P^CsiG`*HkMZ2vqX1l-qnxMw@gQy| xCVQ
z4?hl`V&)oVJ_FaxYb^v^Bd*Z|9PcRTOPn_X+t(Xq-pkC@j%!DuiPPA|%ni&u4%;tg
zgn+|DJ$f6@hw;Hma^-Mu^NjPJcRU9r^*=YxUBb*)G4o-}d?+(th}Ofz)p)*3u)k+(
zAmH2LnkWKlDYhdX#4>U1N6g$&oI8Y>k7njtvF}Qwj;bjii2uzQA>fgs9#f2CQ$aY}
zv+2sr?-}PGV>$1)#yKybl`zk%M*mPkb!T?Kdr~;D(gs(gl8zPKMhKMvc&SqJZuD%3qj|LzpO)a=-`p&
za#(NRS6Ml(75kM5?i_Kg3?kki_51!`>vUIJ-dsPl%^eQLqv4C0HJIz}MIl57@O*rVc!0hHe{)
zhqeMn@*7azVptdmO{`olK`+a7E<9c4WBdIw5pap{YH@vF8}U)fiTUzb$X3S8!(1vt
zd*Jl61ccX3I~yPMHnbXz34+L%9X0|gt@}yFz6HwJqa5u;8kDm9Vy8u-t}CHJ
z(Pb(t#y-%^>3x%o`mN=#?PZu-uwah$J?7z^sCTmuZSfk+Wkh0*zEakoh
z^+OfT=?AreNxoSr%PvJS)i6)OB4I0gxW(!-#yF=6Rv-5b!RNw>EeVLfy=hGe}
zY(!H1)b=*M**v1Xi0TQYN|^`+X#=*GBAo9`IFVMW8@=)p|9wOxi5FoV`NShXH3I&F
z$2{kSu%0{{v%Y1A#UZ-r1Z?eS2O^Gv)utod_~*gHJ4qDQW3V7lAIr?Uo3UzrMF!Wj
s5ilSiARr(hARr(hARr*1jev;$14i<-d;92hrvLx|07*qoM6N<$g8h7O?EnA(
literal 0
HcmV?d00001
diff --git a/static/jiaqingzhan.png b/static/jiaqingzhan.png
new file mode 100644
index 0000000000000000000000000000000000000000..761f4c452b22bf7fc1b29a75195ccc00f8331305
GIT binary patch
literal 839
zcmV-N1GxN&P)Px&0ZBwbRCr$PnlX#iKorM+e+w=JX?&192olFdxBu$g4${pSDP%)A*f@S=g+
zPXrJZFmM9V1qLpF7zAf>0W&+-q;e!}HTnJYw@U#?48IGUZn%SAfi+2Q8*ZnZ3z*qU
zpwZD!8N4m&OxFNd(;fOxo>D1=&eFG14VYO3kVE-C@O>8gnRjkxzo8x|U`x_k4aSof
zUm}1B3NW)nzyV3Ws=}`t1Lm#(GkXGD0)7H_B;Be4p;rLR>=^JlWAH{52z>*v4D9BN
z_{ $E(Dj>SR
zd}6=`FbX!FGu)Tl$OOD}4#Df@<{3kSU>9P*cr#*VdBG?f@W;VvTB0=qD3KDI0Df+>
zKvcjeDN&~jq~c22g*JgrNng@`E~EmctQ6NJc{X}nh6dohq!V2RaJFEb?=j=wv^nc>
zTXu%%i~@=_IN9eBz?1{m(I|%;nk=LOdI_M;X)ppvR)W29fvA86HbZ9i0Jxf&K`uyo
zG5T-9Y_crr(>!v5jqU}^>@x5;$B=8lbKp9#o_YR3(($5cxvrdG(*RBZuYrR_2Bn@q
zl$2G?zSnyJAXzcq25tlb_$KLSNZr~1WEv~V2zdr+RD9VSlo2wsXTZe(!&W7|38+{4
znq2Fbq|EF*a1Y4yZx5EfQ~VQRyw@pIfSDZzt^h{@a($ughSqbX_zBM=Nk38%-}~ez
zLViNL1iS-wB$Ym)3IX8q^b3-0mcrE5teuMhipVARg9ohu_ciyiHp_~nohCX^=mNr=)x$p*@wX^;4cjTd|zV3
R!QlV^002ovPDHLkV1igNZ>|6U
literal 0
HcmV?d00001
diff --git a/static/kachetou.png b/static/kachetou.png
new file mode 100644
index 0000000000000000000000000000000000000000..917ddc5c51cba974f2bb625e553d6fe8ad49cb95
GIT binary patch
literal 842
zcmV-Q1GW5#P)Px&1W80eRA@u(nLB6{Q51&1U#zsV5qyA!+6X>CE!4vF3L+?2sbH`XK`bmaorNz1
zEus)B3+=20(<=y~ouXh=&`uD+!XqcltS7TGlRMeXWR~Q>!m@Mkod2Km_|KgcBW@aT
z{HzdI>Il|Gz|1xRcY%Yz`j)}|1fByIC4HT}i;qHUXbo23_TDv!t1_i**F916Mji
z;EtqAO$j^$j&_8=S4p1EeO4EN7r^0;5I|BX))fM6MJOo(W)@TCHn6)bfC+xa@->pC
zd*95jj*@1ff-0|!)58o^8xiPDh>5@(9hO=l
zkXq;^%0DmXK?zhn-7SEB+6hE23LLcU0@7pHneO(RQ0!sf(SZrho_kSemY;70vi)OYHI6j0qCjnFPlG1Ue
zPRObTwWf1_GQwW6^*fcLv*PGeL&@$t;U6S4u
z?^9O;o{Rf{wPDjQ;APq2CKcd(>&)y(_Vzh0{SHh?`khQ*K1W@--c&8Sg1d*~A3?^5
UK;gUaQ2+n{07*qoM6N<$f*5vt+yDRo
literal 0
HcmV?d00001
diff --git a/static/login_bg.png b/static/login_bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd021db7adb367cd5486e8cd58f67c7e02288b79
GIT binary patch
literal 5607
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
literal 0
HcmV?d00001
diff --git a/static/logo.jpg b/static/logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9add9dc692761b2ba1dfc74005f5587aadffbc95
GIT binary patch
literal 2678
zcma)5X;c$g7OoH!ZLmXF`=DS5OOPd%5F#e*TLilUD4QV4grw96Nrfcr+nF9c+KNU&
zpi$gFrG;UURgi$Rh@&71h^T;w;$c_>1ZhFjWGXbMbB@fJTR-Z)`|kJM`|kUm{Hc5p
z_`xHNyB7ewyv%_$z!#H`16cQHc0@dY0+f-k0RYGc(dPTbVgVfl`642V1BXLIHp~O#
zSOSntB!PgvQ=EXsj)26taA+Tw?|`4Y*@(w+IS%+BDwD(%xIz25o(V$8FTvZNoe;sM
zaqv!#IQuwy98bW5#4KDKFOn~!$2s5^$?1r%2!nXsVv0Dz0q>%yirdNb#ks*k2uCGS
zt=J^84bGNEBvZ*YTga9;YZ93Pk|-dVVnw#5lW24@6}Mz~q?(Ykm%hWDu~Z9LIpCKL
z6&o8%jHM7^;XaT|qtQT;HE3;Zg=AQX;`w4$oE2YWw9McRiP%D}K+J{tI0Yjs9F7({
z;E_)MIs#Adnf9Br`YMsh{NJfOo?-xtv?B2i=u5xfBo_I{3m|X@B!Z)bYzRp=Qh)_?
zHzC9l!$N-;j$EFi?|xVei}u3;oSPfYEQrhJz_FrDi|I@z-HR_0v-oVt%iRHw5D>Xs
z4xMUkW9{nd>h5CeP9c*$7%tXS57#X&HXal*gW*OaFJs+db~F#-iIR^&52+w$VUW
z4>4T>10xfHiID*aQYawk{NIMcVlY@uthR=RwiXuo^t5zzwDe5%^fu_}nUahQ5HliK
z5D5eV(Sk}Pk*HK>XQ!_zR~jvSa0wNa=0@UDrV>IXEa%`kA`(qL-9tY(#Ni
zSlkckFzye%Hk0}>X3&I*vQg<|Zcs$;eaqn8$|t?Fmd<#%A_6TrI=of&`xrTpIMF1k
zW);waZD~@-v^S-*RT8C=lQpO^ePH75mFe<-KHl5YU|^LKPs)?dB-pmq2H$MSt50At
zBRrdok4mfrldBJBhj+Fnw;#zqSY&h;#Mg($57?HghV`6m8X5}DNSeGpwn>`m`ns)t
z>z!KGlZD-h`?~N)%1ufO$Iew87lgF?c$Q>^CIlTxijHoT`J`G-O+0?VJI09#Ds`e=
zHMyJ?rQ<$bx>>*8!%QP)&%dw?rnPB0X>XzDU!?T}$x=?^mn*C5QZy9gg
z>t(g858lGVY+QZj%A{FI=SX63?n`@OtFXJ~PT^>8{+qp(wb>)1WyU{yUR<2X8uR+5
z=9Dh&Zk3smr**m(mgD8r-~G;Zl9@G+(m>4zSuvp#@Xb2aGiKMVg!+91rQl~#r9RmP
zvyzLiylV2EKdXEhN@Il+OlFEFee!d3E+6~h4#S)rVqEF@`c>__rsi{X9|mHoAj5t!}iy=s|?doq$
z@UA}#uC>lvhW#>2d46_KoEY$SS5=qW`wewdH-;Z3Z*G2nrtc$T&&8j8>J*d4pzWBeoxkdje*74@A~t
z%NV;3MU6*Vdbp1!U!E0)7QlsN3%U1%6{@$ke=Nd`w1L!c+q^=a^vJJQ!ynoj`uTMY
zWc}-OX+%#vJBH}(7dU=2;-;?jK>ULBth9M>zOVj#KQH%>Iqpd5Jb&kK%a#7fztyD1
zmPyn6cN`5dxsET=#pebXcb%Sn-qA6?Ek!3eX`PI}Ve;YCjH?50|8#s*TatS=le!H~
z#gCX35H`_%OnlyIe-v)pe%dC@rkhYdCEK&r{-^kl^9GEW*_jv9Pf~0rF9^eF<|Tnl
zSG%FG0RICeq!U9YA}u%h_6_G}JgpqE!vx7DHKsc!>svm3O3n+>Ks|CsrlxE_i@q6E
zTw?b|Cwo*P1Z1Ov)24$am-F85pWj?7Q^jodzFQn4osoRZYwYx0a2us&MFn5vCYx*=
za=bKRCI<{>)o!bGM7?>T|AFRc-*dkJt`0p6U(S~uejNIe6?90VXIR6W9_Cb@>J&z)
zNxo}n4ogXWG`3}$r2mJV2|Hx`$6sgSQ>&+Y_fYKKj?A_Yq@9MIys_w3?iBJd0<6^zQLO?*kRaB7CL_k3Cgty;fpuvBsiO53X
z7fcrg19t=jY@$D3M1;)j=LiUB=C<1U9{Q>(Kr3fQZVPK?OE9;$qYE4w0pX>jw~K|9
zJ=lZR5^Q7ZBu;LLw(W2@ln2G;TgX{s_L}T&Te2@A#PqSD_&k9
zT47OcYYR&YD@#jGT7F)BJ|12H9zFpsUS1$T6eu7-`>zi@oSd6A1gI$^_b+1bJ8}9q
z9v&`09v&|*FK#aYx3ilK51**0C=V|`4?jN_9D>W;$H~LOo6E_a;olf!!0uLVwk{sF
z&Q7#{Fj`nTdwPh|!&&{O42~{;p>=Zqm!9Anu3J^rzi9kdUK}0&BH`{K3x$jE
zFNOS9Xm@QN7ch?|*xlLF%?d0Fg|o@VvM!`V&S+1cUWBc=XtmTCF4qg!;FYiA=Rh_MEAwK^V
zR0t>_@;6Yp)mU42Sp0tiTU!Ak&TfttaFJ~tEo{I%E>1S|w0|iQDDCXv>;@+c=MM0n
z&lRPm)!m#Swhr(Y?waziX%%Iqh4@5;gt+**`ToJKswz;?$=$=k$qK9}BTf%j54WwY
zH4p#+i;7yqEmP1!n3qdHSd^bjR1hG-1-9Vj6XE3(f>>Ms)nCTh%JYvA{OSKshp=|G
zg5&r<>_H$FU<)gNAeV>$M3hUESAd_(5^QC`B`7E)1cnF*i2$sG|ILk>n=RZYEgb$6
z>mRPH;TXaE0uVudfCZN|uP~TP0L~GYC9frzOHja4(AomPFC=1N@yGE0VM{;-TX*;<
z`~1t5w7{HqcE_P^-ke?|FU{k`6R;Yj~4R`O5k
z?#>VoFAF!Ylnq>W{|h_h`5)PLc7lT4{zCv43pWdRKmxnDi_=5goE>Q`TwEM%tt|dX
z%L8??{+FBoH9oW+&b0r>to}zj?iSGhyOREQM)ObU|ErSz(?9hH8@3eWd-|;j#ERY4>3}8)nU)!3gmBvEI?K+mW{X<`sk3L6G(9V`xUYK
z)xOZ7mV{Kz6k14-{3ivJV#MM%8oR2!u8_m#?#
z$b4cx(k2Q86-l5ao?GL{c>XM5K9ljRvw4-W*tZ*mTz^-gv6G9qRK-%`cQDrP1^p-Y
z{}y6g#kFAKy1TmN)nKE+U;!5gX_Y=*A7>v<5G}#%042*FMs^BFyUgHFd+x(`l-%~(
z8F|5eLl(C0+H>-AX*A*47n85PqvVx)ZMY$+$s%uk3mJB*9IY0;TVd%I$=>DqOI>h+
zJ+p(vbO);sX}GuJzmFxNpcU!!W%}Ct4T$WfFxS3VUTq_J5n+yymfud6OS)HY|Brur{xW%M-Dk2YOV+rS9
zqW$B-E67_QnOIk=)L4>ndC+ix6u`_*N`MVKVPI#D9;OMue|qo2t?l|U$BuJP
z=Ald<7=WuQQr836Cqb_~9sJ`8nTV}ODJIR!dPNFUlv|2`r
z1?20qJJFphg^yT&`R#LHLQ7{EvvFoKQcIOc
zS-M`9`Vr*%29}Xnitd|9Q}WOm%D;)rZY~oJ)O)Z!+`m<|y5j^k))0ZZt=E7
zQAh-siT8Ub8-;$gr&?#F>s@N)Yu}YJ)RB=$LFWpe7s2Ggg&`$r9VchwZtTzhQx;l;
z#(8$%QQ4ryz+8zL+W->BIU9lp=3DlO@lk`F)^5+M3b};}i3%a>4tD9L)cVei63){r
zQXx!)6eNY@m#bLyuZ;f-^uD~DbsFAyjY)p(#6
ztyJwTBY*Eh^dQ|-2ncK$g9Ye{Q#Ed@A2*oH=KfSWzYWtD)=Xj)KzAAG)1ztwF&;lo
zH_Lw(4j)JVoB51BCsfYS3hFpa?6K;JbpjOz(`Dxuyg&W%IC_7tWZ5pB^}MYV=tL2$
zUFJwM*OF7ITy%R?36w5=rnR9^Zye=IvU`HGDb_=TZR|6vH%5a0H%H|9>aMZ7dv)5(
zbjEvj<83Na7{6URyMZDY!bA!NKJ)x8Taa0sq{A;kMP8t#CH_!93r$Q)$Q<+9E4nb)
z?DgT1gm!>*@&1PMVhV6okr%r$bIS$9D(LUU6eYn?G+p4$M%nr?(z$1e$w8%Tu&=L8
z1YT{iG$ON*Q8L&o-MY$JOvC@2-S}JyTXjN{l_O6_vvdUS8|6*L{tF6qcF_(8V8ocD
z=SYNEWP!$q&d=wIzeLym9{N3h4`}Z0-Ce%GHAbVPHX4}?AEY2WQI&Y@y0%k3CCIL%
zza*paPT^VEYi;!h{jU+$O~2}Di8O5K_GYU*w|wPX#fi35J55zSt8_Z+NhnpOaOdTc
zX{9_pQHsR~Ixk^t1VyN0RupD#644mF&R1+Vn|n*uO$+VURQhVWqma7V
zb&tbiT*dD2dSi)f!sL+*>u*NT^i@z}_e1w`kdTEJ@`gu9ycV}km+?5(2RXh^na}*`
zodt;o3*yNv3*N#<;NuIO&iL(t?2ydXZPeUhObJ1$4_E|s7jc5&vWgWs-gy)JB^qb0
zL(kG&i9CO@klI)#ls|s%f{j;1h&>t;e^3)rsT0&ZzUM|3TA%3jxV#Lk`nwkbO)!)F
zdrYisP}bOfdRmy5W73n%(tb}jc)j;?tnyJ@6P4lD>kl`rq6u+j#)xh4V@T{jR*O}}
zq1+?CcLcqv4E=LuDya@qrAGF@L>ts8>+##`nKask#}(>FBfV)}kJvJw!n9y1jua*1
zd`cT=SDKp}7kH+Oc_&z6)<$~gbO#!ew50uN#h8%+9whkVg4Oi4=$mo?zo6Db!sp})
zw*rG!Z)h@>?4>pGUfC!tlZmXr(B5}&YhfpnqR2J1Eq{Pq`tlqAG~)%(&ujsHmhf(@
zaYf_7L2CBhM)EgJNk@J|h=q3??G=;yRU7o|%(ol`ap4kApI?7}%-j=(&o%Hz>`v{L
z)efDVmOAieAgXZpR*U0f2OawlYof8y(CYSDq7FAfOdvmv`%rcVDSS!f-Nhjs&nmpR
z)>0mdc%gBzQy%z$_#}QKoX95{ipZ`~%@w9bxU+Sd#LJAyJeK}llD7LnL%X6d;r6Bo
z7^$cssWBT@AW^PCQ+g^@&?UI|Bu0aODV#HXCVa|?I=C*>u=2h@;+WQ!#5|TzmL=VQ
zZ3;AP*Hei)C?U|$q3l$HREhtagg9UjMm@1Kf!ZSrxxC}Q!?k9x)irNQ9F*j5FuSUk
z2$P!5gg_@<7Od>#r?+~@l!*g+VCzSo0q>C%uaNW5ViDFU)|Ul-wq`uEs7NUW^hESz
zqsr0%8fLJXo6vaO+t@F&M<7sn4LU_5MD(=9bqM70G}JK%;l9>f3_WYfmFZI0LBWtp
zzg1?c1$LAcwz_cNv&3xyWhAs;iCHm
z;F2o3Ypgyxr;%Cps!td6bi-%3v5w9>(0*k4kJID96=N>`hK*!+B$I`Qy8J=W#yv@|72NFj!M3zNudLEcaNHOzoeVM_tv9(SK
zq5w>(lA5g_I^la2GM;=aOh>_`+MW5x*0_&DCt4S;hCS0NGIe6v1%EP^NAQxAn=UG1
z0qc6SVl3%O;KRW!mXC!TYNt)+$UH=k4=OFgVy@_8Bu5Snq10eW48}s9dQ(0ZSn!58
zPv$}8vH(PUK_L6E`8J0loZZN^hjg%Qy@a085!2X6{YVjD0Lz*ar=ESYx!3Vfg
z8*y~PHP%r->V`DG$vD1oq(-EK-{}HYL~JOokU0>$k(krgu80Q^A(sv{Ui7=@z8tku
z5nFnhOHlD@%^?L}Y!M=FtaJg`+&=1L){<4f38rEm5_N9`rB5_p!=0a5;re!-a0QN+
zIKMaUwIm=*ABw6-f!IP!JQnbHd+dO0Yyj;R|3L-F`dk`Mquq+FUy;8@0J%&Gb&NqX
zMK@&1@TSpk&Dns6#0vmUvMcq~J^TP2mhpE7{hu2aSXtYXGEDf>15yT~fHO)3@!2A&8F%oJ(Kq
zO466El%2Y1yfLorMjX3QE5G8pE=B>j(K>S2a43@RbWr49GzT!URL&yPgx!0PRP6MW
zcM$0CmJ51u_H#9g5c0ks=`hhiJU`JBY^exmCDb?LI@QU{jMC=n;S>B>%r@6XW^y2v
z7-M(jwlg*~c37>?md0uMarks2XXCv$uufT5=i(Ze@HCK7Lq9i@F|_--t|KK5^Luds
zbLID`sBu>YU&*~a^qkjx4Tp?Wc$|W(p0;Fw4%z8|o&!`_mgc(g3Z`ScN?>^TryI;O
z6Z1MLrxK(};p>BFg;>hSob-&&VO_b|w$h{kg-pEkZtI^BVS6a!n3U_^+O?34*&3
z#MlD;*(I#2Tz2*(7POc6(K`Gw`(MwEF |