From 7af87512eb9b34f04f6d7a53c7b3d83de202d7a7 Mon Sep 17 00:00:00 2001
From: zoujiandong <10130823232@qq.com>
Date: Fri, 11 Apr 2025 10:49:39 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 34 ++++
.hbuilderx/launch.json | 16 ++
App.vue | 29 ++++
api/api.js | 163 ++++++++++++++++++
components/list/list.vue | 59 +++++++
components/tabBar/tabBar.vue | 38 +++++
index.html | 20 +++
main.js | 37 ++++
manifest.json | 86 ++++++++++
package.json | 15 ++
pages.json | 67 ++++++++
pages/apply/apply.vue | 225 ++++++++++++++++++++++++
pages/case/case.vue | 34 ++++
pages/index/index.vue | 89 ++++++++++
pages/login/login.vue | 322 +++++++++++++++++++++++++++++++++++
pages/register/register.vue | 227 ++++++++++++++++++++++++
pages_case/index/index.vue | 60 +++++++
static/default.png | Bin 0 -> 2003 bytes
static/logo.png | Bin 0 -> 4023 bytes
uni.promisify.adaptor.js | 10 ++
uni.scss | 77 +++++++++
utils/auth.js | 22 +++
utils/config.js | 7 +
utils/navTo.js | 22 +++
utils/pageUrl.js | 19 +++
utils/request.js | 119 +++++++++++++
26 files changed, 1797 insertions(+)
create mode 100644 .gitignore
create mode 100644 .hbuilderx/launch.json
create mode 100644 App.vue
create mode 100644 api/api.js
create mode 100644 components/list/list.vue
create mode 100644 components/tabBar/tabBar.vue
create mode 100644 index.html
create mode 100644 main.js
create mode 100644 manifest.json
create mode 100644 package.json
create mode 100644 pages.json
create mode 100644 pages/apply/apply.vue
create mode 100644 pages/case/case.vue
create mode 100644 pages/index/index.vue
create mode 100644 pages/login/login.vue
create mode 100644 pages/register/register.vue
create mode 100644 pages_case/index/index.vue
create mode 100644 static/default.png
create mode 100644 static/logo.png
create mode 100644 uni.promisify.adaptor.js
create mode 100644 uni.scss
create mode 100644 utils/auth.js
create mode 100644 utils/config.js
create mode 100644 utils/navTo.js
create mode 100644 utils/pageUrl.js
create mode 100644 utils/request.js
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..61789f6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,34 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+yarn.lock
+
+uni_modules
+node_modules
+dist
+unpackage
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# node_modules
+node_modules
+package-lock.json
+package-lock.json
+components.d.ts
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..582561b
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "app-plus" :
+ {
+ "launchtype" : "local"
+ },
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..e228c5e
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,29 @@
+
+
+
\ No newline at end of file
diff --git a/api/api.js b/api/api.js
new file mode 100644
index 0000000..1406270
--- /dev/null
+++ b/api/api.js
@@ -0,0 +1,163 @@
+import {request} from '@/utils/request.js'
+const api = {
+ wxLogin(data) {
+ return request('/login/wechat_mobile_login', data, 'post', true);
+ },
+ mobileLogin(data) {
+ return request('/login/mobile_login', data, 'post', true);
+ },
+ getCode(data) {
+ return request('/code/phone', data, 'post', true);
+ },
+
+ getHomeData(data) { //首页数据
+ return request('/index', data, 'get', true);
+ },
+ getClassify(id) { //获取分类详情
+ return request('/class/' + id, {}, 'get', true);
+ },
+ getClassifyList() { //获取分类详情
+ return request('/class/list', {}, 'get', false);
+ },
+ getQuestionPage(data) { //获取问题列表-分页
+ return request('/question/page', data, 'post', true, 'application/json');
+ },
+ getQuestionDetail(id,data) { //获取问题详情
+ return request('/question/'+id, data, 'get', false);
+ },
+ collect(data) {
+ return request('/collection/question', data, 'post', false, 'application/json');
+ },
+ cancelCollect(data) {
+ return request('/collection/question/cancel', data, 'put', false, 'application/json');
+ },
+ getHotList() { //获取问题详情
+ return request('/question/hot', {}, 'get', true);
+ },
+ getQuestionStatus(id) { //获取问题解锁状态
+ return request('/question/unlock/status/' + id, {}, 'get', true);
+ },
+ getQuestionCoupon(data) { //获取患者可使用优惠卷-单项
+ return request('/coupon/usable/question', data, 'get', true);
+ },
+ getVipCoupon(data) { //获取会员可使用优惠卷-单项
+ return request('/coupon/usable/member', data, 'get', true);
+ },
+ getVipPrice() { //获取会员配置数据
+ return request('/member', {}, 'get', false);
+ },
+ getRecentList() {
+ return request('/order/member/recent/list', {}, 'get', false);
+ },
+ getUserInfo() {
+ return request('/user', {}, 'get', true);
+ },
+ getUnnotifyCoupon() { //获取还未弹窗的优惠卷
+ return request('/coupon/unnotified', {}, 'get', false);
+ },
+ getLeast() { //获取最少立减金额
+ return request('/member/least', {}, 'get', false);
+ },
+ getItemList(data) { //获取单项订单列表-分页
+ return request('/order/single/page', data, 'get', true);
+ },
+ getVipList(data) { //获取会员订单列表-分页
+ return request('/order/member/page', data, 'get', true);
+ },
+ createItemOrder(data) { //创建单项订单
+ return request('/order/single', data, 'post', true);
+ },
+ createVipOrder(data) { //创建会员订单
+ return request('/order/member', data, 'post', true);
+ },
+ cancelItemOrder(id) {
+ return request('/order/single/cancel/' + id, {}, 'put', false);
+ },
+ getItemPayData(data, id) {
+ return request('/order/single/pay/' + id, data, 'get', true);
+
+ },
+ getWxConfig(url, data) {
+ return request(url, data, 'get', false);
+ },
+ getCollectList(data) { //获取用户收藏题目列表-分页
+ return request('/collection/question', data, 'get', true);
+ },
+ getFuliList(data) { //获取用户收藏题目列表-分页
+ return request('/coupon', data, 'get', true);
+ },
+ addClickCount(id) { //增加问题点击次数(点击进入详情页的人次
+ return request('/question/click/' + id, {}, 'put', false);
+ },
+ addSubmitCount(id) { //增加问题提交次数(提交个人信息进行了算算的人次)
+ return request('/question/click/submit/' + id, {}, 'put', false);
+ },
+ checkUser(data) { //检测用户数据绑定状态
+ return request('/user/check', data, 'GET', false);
+ },
+ getBasic(data) {
+ return request('/user/info', data, 'GET', true);
+ },
+ updateBasic(data) {
+ return request('/user', data, 'PUT', true,'application/json');
+ },
+ getCase(data) {
+ return request('/user/case', data, 'GET', true);
+ },
+ updateCase(data) {
+ return request('/user/case', data, 'PUT', true,'application/json');
+ },
+ getArea(data) {
+ return request('/area/list', data, 'GET', false);
+ },
+ getDiseaseList(data) {
+ return request('/disease/list', data, 'GET', false);
+ },
+ getNation(data) {
+ return request('/nation/list', data, 'GET', false);
+ },
+ getOssSign(data) {
+ return request('/sign/oss', data, 'GET', false);
+ },
+ ossUpload(url,data){
+ return request(url,data,'post',false,'multipart/form-data')
+ },
+ checkItemPaySatus(id) {
+ return request('/order/single/pay/status/'+id, {}, 'GET', false);
+ },
+ checkVipPaySatus(id) {
+ return request('/order/member/pay/status/'+id, {}, 'GET', false);
+ },
+ saveAnswer(data,id){//保存单项答案
+ return request('/order/single/answer/'+id, data, 'post', false);
+ },
+ getAnswer(id){//获取单项答案
+ return request('/order/single/answer/'+id, {}, 'get', false);
+ },
+ getSearchRecommend(){//搜索推荐
+ return request('/class/recommend/list', {}, 'get', false);
+ },
+ changeCoupon(){
+ return request('/coupon/unnotified', {}, 'put', false);
+ },
+ delVipOrder(id){
+ return request('/order/member/'+id, {}, 'DELETE', false);
+ },
+ delItemOrder(id){
+ return request('/order/single/'+id, {}, 'DELETE', false);
+ },
+ shareSign(data){
+ return request('https://dev-app.igandan.com/app/manager/getSignature4bing', data, 'get', false);
+ },
+ getLikeList(){//搜索推荐
+ return request('question/like', {}, 'get', false);
+ },
+ getData(){
+ return request('https://www.fastmock.site/mock/32012a46e9f66a6180214eef5edc79ac/mydata/promote', {}, 'get', false);
+
+ }
+
+
+
+};
+export default api
\ No newline at end of file
diff --git a/components/list/list.vue b/components/list/list.vue
new file mode 100644
index 0000000..fb66f93
--- /dev/null
+++ b/components/list/list.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/tabBar/tabBar.vue b/components/tabBar/tabBar.vue
new file mode 100644
index 0000000..a0e1903
--- /dev/null
+++ b/components/tabBar/tabBar.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
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..0089a35
--- /dev/null
+++ b/main.js
@@ -0,0 +1,37 @@
+import App from './App'
+import uviewPlus, { setConfig } from 'uview-plus'
+// #ifndef VUE3
+console.log(222)
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ app.use(uviewPlus, () => {
+ return {
+ options: {
+ // 修改$u.config对象的属性
+ config: {
+ // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
+ unit: 'rpx'
+ }
+ }
+ }
+ })
+ console.log(uni.$u.config.v);
+ return {
+ app
+ }
+}
+// #endif
+console.log(1111)
+console.log(process.env.NODE_ENV)
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..90c824a
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,86 @@
+{
+ "name" : "caseDataBase",
+ "appid" : "__UNI__C5266FA",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "compatible" : {
+ "ignoreVersion" : true,
+ "runtimeVersion" : "4.45,4.24,4.18",
+ "compilerVersion" : "4.57"
+ },
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3",
+ "h5" : {
+ "router" : {
+ "mode" : "history",
+ "base" : ""
+ },
+ "devServer" : {
+ "https" : false
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..439edd5
--- /dev/null
+++ b/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "casedatabase",
+ "version": "1.0.0",
+ "description": "",
+ "main": "main.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "uview-plus": "^3.4.4"
+ }
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..9660a7b
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,67 @@
+{
+ "easycom": {
+ "autoscan": true,
+ // 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175
+ "custom": {
+ "^u--(.*)": "@/node_modules/uview-plus/components/u-$1/u-$1.vue",
+ "^up-(.*)": "@/node_modules/uview-plus/components/u-$1/u-$1.vue",
+ "^u-([^-].*)": "@/node_modules/uview-plus/components/u-$1/u-$1.vue"
+
+ }
+ },
+ "pages": [
+ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+
+ {
+ "path": "pages/login/login",
+ "style": {
+ "navigationBarTitleText": "登录"
+ }
+ },
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app",
+ "enablePullDownRefresh":false
+ }
+ },
+ {
+ "path": "pages/case/case",
+ "style": {
+ "navigationBarTitleText": "互动病例"
+ }
+ },
+
+ {
+ "path": "pages/apply/apply",
+ "style": {
+ "navigationBarTitleText": "注册",
+ "enablePullDownRefresh": false,
+ "disableScroll": true
+ }
+ },
+ {
+ "path": "pages/register/register",
+ "style": {
+ "navigationBarTitleText": "注册"
+ }
+ }
+ ],
+ "subPackages": [{
+ "root": "pages_case",
+ "pages": [{
+ "path": "index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app分页"
+ }
+ }]
+ }],
+
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+ }
\ No newline at end of file
diff --git a/pages/apply/apply.vue b/pages/apply/apply.vue
new file mode 100644
index 0000000..e66fcb4
--- /dev/null
+++ b/pages/apply/apply.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/case/case.vue b/pages/case/case.vue
new file mode 100644
index 0000000..ed157a2
--- /dev/null
+++ b/pages/case/case.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..47d0a13
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
new file mode 100644
index 0000000..7ecf754
--- /dev/null
+++ b/pages/login/login.vue
@@ -0,0 +1,322 @@
+
+
+ 登录观看
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tips }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ isPhoneLogin ? "用短信验证码登录" : "快捷登录" }}
+
+ 注册
+
+
+
+
+
+
+
+ 操作说明
+
+
+ 1、
+ 肝胆相照注册账号与微信绑定,肝胆相照相关直播、视频无忧随心看
+
+
+ 2、
+ 仅需操作一次,后续通过微信观看直播、视频无需额外操作,立即进入
+
+
+ 3、
+ 若您还未注册肝胆相照专家版App, 请直接点击“注册”进行注册操作
+
+
+ 若您有任何疑问或需要我们协助,请与您的小助手联系或直接微信联系igandan1000
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/register/register.vue b/pages/register/register.vue
new file mode 100644
index 0000000..a50bac6
--- /dev/null
+++ b/pages/register/register.vue
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{tips}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 操作说明
+
+
+ 1、
+ 肝胆相照注册账号与微信绑定,肝胆相照相关直播、视频无忧随心看
+
+
+ 2、
+ 仅需操作一次,后续通过微信观看直播、视频无需额外操作,立即进入
+
+
+ 3、
+ 若您还未注册肝胆相照专家版App, 请直接点击“注册”进行注册操作
+
+
+ 若您有任何疑问或需要我们协助,请与您的小助手联系或直接微信联系igandan1000
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_case/index/index.vue b/pages_case/index/index.vue
new file mode 100644
index 0000000..80609d7
--- /dev/null
+++ b/pages_case/index/index.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/default.png b/static/default.png
new file mode 100644
index 0000000000000000000000000000000000000000..613fbd62ae3b56a8c7b1c0c5f36d10cbbe5bc2ac
GIT binary patch
literal 2003
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
SYs}WS&%*SCNx89m_ {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..041d6b3
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,77 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+@import 'uview-plus/theme.scss';
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git a/utils/auth.js b/utils/auth.js
new file mode 100644
index 0000000..05bcdb9
--- /dev/null
+++ b/utils/auth.js
@@ -0,0 +1,22 @@
+function auth(){ //鉴权
+ return new Promise((resolve,reject)=>{
+ uni.login({
+ provider: 'weixin', //使用微信登录
+ onlyAuthorize: true, //不弹出授权页面,直接进入微信登录流程
+ success(res){
+ if(res.errMsg=="login:ok"){
+ resolve(res.code)
+ }else{
+ uni.showToast({
+ title:res.errMsg,
+ icon:'error'
+ })
+ }
+ },
+ fail(err){
+ reject(err)
+ }
+ })
+ })
+ }
+ export default auth
\ No newline at end of file
diff --git a/utils/config.js b/utils/config.js
new file mode 100644
index 0000000..fc997ef
--- /dev/null
+++ b/utils/config.js
@@ -0,0 +1,7 @@
+let BASE_URL=''
+if(process.env.NODE_ENV=='production'){
+ BASE_URL='1111111'
+}else{
+ BASE_URL='22222222'
+}
+export default BASE_URL
\ No newline at end of file
diff --git a/utils/navTo.js b/utils/navTo.js
new file mode 100644
index 0000000..25c4831
--- /dev/null
+++ b/utils/navTo.js
@@ -0,0 +1,22 @@
+import pageUrl from './pageUrl'
+function navTo(obj){
+ // let token='';
+ // if(process.env.NODE_ENV === 'development'){
+ // token = uni.getStorageSync('DEV_AUTH_TOKEN_FIGURE');
+ // }else{
+ // token = uni.getStorageSync('AUTH_TOKEN_FIGURE');
+ // }
+ // if(!token){
+ // let page_url=pageUrl();
+ // uni.setStorageSync('redirectUrl',page_url);
+ // uni.navigateTo({
+ // url: '/pages/login/login?redirectUrl=has'
+ // });
+ // }else{
+ // uni.navigateTo(obj)
+ // }
+ uni.navigateTo(obj)
+
+}
+
+export default navTo
\ No newline at end of file
diff --git a/utils/pageUrl.js b/utils/pageUrl.js
new file mode 100644
index 0000000..1127538
--- /dev/null
+++ b/utils/pageUrl.js
@@ -0,0 +1,19 @@
+function pageUrl(){
+ // 获取当前页面的实例
+ const pages = getCurrentPages();
+ const currentPage = pages[pages.length - 1];
+
+ // 获取页面的完整URL
+ const url = currentPage.route; // 页面路径
+ const options = currentPage.options; // 如果有查询参数,将会在这里
+
+ // 拼接URL
+ let fullUrl = url + '?';
+ for (let key in options) {
+ fullUrl += `${key}=${options[key]}&`;
+ }
+ fullUrl = fullUrl.substring(0, fullUrl.length - 1); // 移除最后一个"&"
+
+ return fullUrl
+}
+export default pageUrl
\ No newline at end of file
diff --git a/utils/request.js b/utils/request.js
new file mode 100644
index 0000000..eca3566
--- /dev/null
+++ b/utils/request.js
@@ -0,0 +1,119 @@
+/**
+ * @Method Description
+ * @Author: zjd@
+ * @Description: 数据请求整合 处理
+ * @BASE_URL server
+ * @param {a===Object||file} 传给后台参数Method 请求方法 url 所请求的接口路径
+ * @return Promise对象 所有数据信息
+ * @createTime: 2024-7-22 15:05:06
+ */
+import BASE_URL from "./config.js";
+//import host from "@/utils/host";
+//import {msg} from "./util.js"
+import pageUrl from './pageUrl'
+//alert(BASE_URL)
+//const BASE_URL=host+"/api"
+export const request = (url, data = {}, method = 'post',loading = false,contentType='application/x-www-form-urlencoded') => {
+ if(loading){
+ uni.showLoading({
+ title: '加载中',
+ mask:true
+ })
+
+ };
+ uni.setStorageSync('DEV_AUTH_TOKEN_FIGURE','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMTgzMzQzMjEwMTI3ODQ1Mzc2MCIsImV4cCI6MTc0MzEzMTY2OCwibmJmIjoxNzQyODcyNDY4LCJpYXQiOjE3NDI4NzI0Njh9.RGsdwvwck8oDNbStbMA18i5VOmy9JbK68hLNILDGUMQ');
+ let token='';
+ if(process.env.NODE_ENV === 'development'){
+ token = uni.getStorageSync('DEV_AUTH_TOKEN_FIGURE');
+ }else{
+ token = uni.getStorageSync('AUTH_TOKEN_FIGURE');
+ }
+ // if(!token){
+ // let freeList=['/login','/code/phone','/login/wx','/index','/user/check'];
+ // if(freeList.indexOf(url) == -1){
+ // let page_url=pageUrl();
+ // if(page_url.indexOf('/login/login')==-1){
+
+ // uni.setStorageSync('redirectUrl',page_url);
+ // uni.navigateTo({
+ // url: '/pages/login/login?redirectUrl=has'
+ // });
+ // return false;
+ // }else{
+
+
+ // uni.setStorageSync('redirectUrl','');
+ // uni.navigateTo({
+ // url: '/pages/login/login'
+ // });
+ // return false;
+ // }
+
+ // }
+ // }
+ let header = {
+ 'content-type':contentType ,
+ 'Authorization': 'Bearer ' + token
+ }
+ return new Promise(function(e, n) {
+ let timestamp = Date.now();
+ uni.request({
+ data,
+ url: url.indexOf('http')!=-1?url:encodeURI(BASE_URL+url+"?timestamp="+timestamp),
+ method: method,
+ sslVerify:false,
+ header:url.indexOf('/manager/getSignature4bing')==-1?header:{},
+ timeout:10000,
+ success: function(res) {
+ var Authorization_token = res.header.Authorization;
+ if(Authorization_token){
+ if(process.env.NODE_ENV === 'development'){
+ uni.setStorageSync('DEV_AUTH_TOKEN_FIGURE', Authorization_token);
+ }else{
+ uni.setStorageSync('AUTH_TOKEN_FIGURE', Authorization_token);
+ }
+
+ }
+ if(loading){
+ uni.hideLoading();
+ };
+ if(res.data.code==200){
+ e(res)
+ }else if(res.data.code==401 || res.data.code==403 || res.data.code==405 || res.data.code==406){
+ var u=navigator.userAgent;
+ let isApp=Boolean(u.match(/Gdxz/ig));
+ if(isApp){
+ uni.navigateTo({
+ url: '/pages/index/index'
+ });
+ }else{
+ let freeList=['/login','/code/phone','/login/wx','/index','/user/check'];
+ if(freeList.indexOf(url) == -1){
+
+ let page_url=pageUrl();
+ uni.setStorageSync('redirectUrl',page_url);
+ uni.navigateTo({
+ url: '/pages/login/login?redirectUrl=has'
+ });
+ return false
+ }
+ }
+
+ }else if(res.data.code==500){
+ n(res)
+ }else{
+ uni.showToast({
+ title:res.data.message,
+ icon:'none',
+
+ })
+ n(res)
+ }
+ },
+ fail: function(err) {
+ "request:fail " === err.errMsg && msg("请求数据失败!"), n(err.data);
+ }
+ });
+ });
+}
+