فهرست منبع

h5接口跑通

xiaohaizhao 8 ماه پیش
والد
کامیت
f0619e2ab2
7فایلهای تغییر یافته به همراه327 افزوده شده و 175 حذف شده
  1. 173 0
      package-lock.json
  2. 1 0
      package.json
  3. 1 1
      pages/index/index.vue
  4. 4 4
      pages/login/login.vue
  5. BIN
      static/image/banner.png
  6. 140 161
      utils/Http.js
  7. 8 9
      vite.config.js

+ 173 - 0
package-lock.json

@@ -53,6 +53,21 @@
         "picomatch": "^2.0.4"
         "picomatch": "^2.0.4"
       }
       }
     },
     },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "axios": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-1.11.0.tgz",
+      "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
+      "requires": {
+        "follow-redirects": "^1.15.6",
+        "form-data": "^4.0.4",
+        "proxy-from-env": "^1.1.0"
+      }
+    },
     "big.js": {
     "big.js": {
       "version": "5.2.2",
       "version": "5.2.2",
       "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
       "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
@@ -74,6 +89,15 @@
         "fill-range": "^7.1.1"
         "fill-range": "^7.1.1"
       }
       }
     },
     },
+    "call-bind-apply-helpers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+      "requires": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2"
+      }
+    },
     "chokidar": {
     "chokidar": {
       "version": "3.6.0",
       "version": "3.6.0",
       "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
       "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
@@ -126,6 +150,14 @@
       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
       "dev": true
       "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"
+      }
+    },
     "dayjs": {
     "dayjs": {
       "version": "1.11.13",
       "version": "1.11.13",
       "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
       "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
@@ -137,11 +169,26 @@
       "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
       "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
       "dev": true
       "dev": true
     },
     },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+    },
     "delegate": {
     "delegate": {
       "version": "3.2.0",
       "version": "3.2.0",
       "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
       "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
       "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
     },
     },
+    "dunder-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+      "requires": {
+        "call-bind-apply-helpers": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.2.0"
+      }
+    },
     "emoji-regex": {
     "emoji-regex": {
       "version": "8.0.0",
       "version": "8.0.0",
       "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
       "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -154,6 +201,35 @@
       "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
       "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
       "dev": true
       "dev": true
     },
     },
+    "es-define-property": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
+    },
+    "es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
+    },
+    "es-object-atoms": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+      "requires": {
+        "es-errors": "^1.3.0"
+      }
+    },
+    "es-set-tostringtag": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+      "requires": {
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
+      }
+    },
     "escalade": {
     "escalade": {
       "version": "3.2.0",
       "version": "3.2.0",
       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
@@ -181,6 +257,23 @@
         "to-regex-range": "^5.0.1"
         "to-regex-range": "^5.0.1"
       }
       }
     },
     },
+    "follow-redirects": {
+      "version": "1.15.11",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
+      "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="
+    },
+    "form-data": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz",
+      "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "es-set-tostringtag": "^2.1.0",
+        "hasown": "^2.0.2",
+        "mime-types": "^2.1.12"
+      }
+    },
     "fsevents": {
     "fsevents": {
       "version": "2.3.3",
       "version": "2.3.3",
       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@@ -188,12 +281,43 @@
       "dev": true,
       "dev": true,
       "optional": true
       "optional": 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=="
+    },
     "get-caller-file": {
     "get-caller-file": {
       "version": "2.0.5",
       "version": "2.0.5",
       "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
       "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
       "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
       "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
       "dev": true
       "dev": true
     },
     },
+    "get-intrinsic": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+      "requires": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "math-intrinsics": "^1.1.0"
+      }
+    },
+    "get-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+      "requires": {
+        "dunder-proto": "^1.0.1",
+        "es-object-atoms": "^1.0.0"
+      }
+    },
     "glob-parent": {
     "glob-parent": {
       "version": "5.1.2",
       "version": "5.1.2",
       "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
       "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -211,6 +335,32 @@
         "delegate": "^3.1.2"
         "delegate": "^3.1.2"
       }
       }
     },
     },
+    "gopd": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
+    },
+    "has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
+    },
+    "has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "requires": {
+        "has-symbols": "^1.0.3"
+      }
+    },
+    "hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "requires": {
+        "function-bind": "^1.1.2"
+      }
+    },
     "immutable": {
     "immutable": {
       "version": "4.3.7",
       "version": "4.3.7",
       "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz",
       "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz",
@@ -297,6 +447,24 @@
         "json5": "^2.1.2"
         "json5": "^2.1.2"
       }
       }
     },
     },
+    "math-intrinsics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
+    },
+    "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"
+      }
+    },
     "neo-async": {
     "neo-async": {
       "version": "2.6.2",
       "version": "2.6.2",
       "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
       "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
@@ -326,6 +494,11 @@
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
       "dev": true
       "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": {
     "punycode": {
       "version": "2.3.1",
       "version": "2.3.1",
       "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
       "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",

+ 1 - 0
package.json

@@ -4,6 +4,7 @@
   "description": "组件库: https://uiadmin.net/uview-plus/components/intro.html",
   "description": "组件库: https://uiadmin.net/uview-plus/components/intro.html",
   "main": "main.js",
   "main": "main.js",
   "dependencies": {
   "dependencies": {
+    "axios": "^1.11.0",
     "clipboard": "^2.0.11",
     "clipboard": "^2.0.11",
     "dayjs": "^1.11.13"
     "dayjs": "^1.11.13"
   },
   },

+ 1 - 1
pages/index/index.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
 	<home v-show="showPage != 'my'" />
 	<home v-show="showPage != 'my'" />
 	<up-tabbar :fixed="true" :value="showPage" @change="change1">
 	<up-tabbar :fixed="true" :value="showPage" @change="change1">
-		<up-tabbar-item text="首页" name="home">
+		<up-tabbar-item text="服务" name="home">
 			<template #active-icon>
 			<template #active-icon>
 				<view class="iconfont icon-zhuye-weixuanzhong" style="color: #1965E7;" />
 				<view class="iconfont icon-zhuye-weixuanzhong" style="color: #1965E7;" />
 			</template>
 			</template>

+ 4 - 4
pages/login/login.vue

@@ -25,13 +25,13 @@
         </view>
         </view>
         <My-button :customStyle="customStyle" class="my-but" :loading="loading" :disabled="disabled" text="登录"
         <My-button :customStyle="customStyle" class="my-but" :loading="loading" :disabled="disabled" text="登录"
             @onClick="logIn" />
             @onClick="logIn" />
-        <view class="agreement-box">
+   <!--      <view class="agreement-box">
             <up-checkbox label="已阅读并同意" name="agree" usedAlone v-model:checked="isAgreement" />
             <up-checkbox label="已阅读并同意" name="agree" usedAlone v-model:checked="isAgreement" />
             <view @click="checkTheAgreement" style="color: #3874F6;">
             <view @click="checkTheAgreement" style="color: #3874F6;">
                 《隐私协议》
                 《隐私协议》
             </view>
             </view>
         </view>
         </view>
-
+ -->
         <up-modal negativeTop="100" asyncClose :show="showModal" confirmColor="#052E5D" showCancelButton
         <up-modal negativeTop="100" asyncClose :show="showModal" confirmColor="#052E5D" showCancelButton
             confirmText="阅读并获取" @confirm="onConfirm1" @cancel="showModal = false">
             confirmText="阅读并获取" @confirm="onConfirm1" @cancel="showModal = false">
             <view class="modal-u">请阅读并同意<text style="color: #3874F6;" @click="checkTheAgreement">《隐私协议》</text></view>
             <view class="modal-u">请阅读并同意<text style="color: #3874F6;" @click="checkTheAgreement">《隐私协议》</text></view>
@@ -68,7 +68,7 @@ const customStyle = ref({
 // 表单相关
 // 表单相关
 const focused = ref('');
 const focused = ref('');
 const countryCode = ref('+86');
 const countryCode = ref('+86');
-const phonenumber = ref('');
+const phonenumber = ref('13905730010');
 const password = ref('');
 const password = ref('');
 const countryCodes = reactive([
 const countryCodes = reactive([
     { code: '+86', name: '中国 +86', regex: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/ }, // 中国手机号验证规则
     { code: '+86', name: '中国 +86', regex: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/ }, // 中国手机号验证规则
@@ -137,7 +137,7 @@ function getAuthCode() {
 let account_list = reactive([]);
 let account_list = reactive([]);
 function logIn() {
 function logIn() {
     if (!validatephonenumber()) return;
     if (!validatephonenumber()) return;
-    if (isAgreement.value == false) return showModal.value = true;
+    // if (isAgreement.value == false) return showModal.value = true;
     loading.value = true;
     loading.value = true;
     $Http.plogin({ "phonenumber": phonenumber.value, "password": hexMD5(password.value), "systemclient": "wechatsaletool" }).then(res => {
     $Http.plogin({ "phonenumber": phonenumber.value, "password": hexMD5(password.value), "systemclient": "wechatsaletool" }).then(res => {
         if (res.code == 1) {
         if (res.code == 1) {

BIN
static/image/banner.png


+ 140 - 161
utils/Http.js

@@ -1,174 +1,153 @@
-class HTTP {
-    constructor() {
-        this.urls = [{
-            name: '测试',
-            url: "http://61.164.207.46:8300"
-        }, {
-            name: '正式',
-            url: "https://crm.meida.com:16691"
-        }, {
-            name: "楚楚",
-            url: "https://cucu.cnyunl.com:8079"
-        }];
-        this.updateList = (content, getList) => {
-            content.copyContent = JSON.parse(JSON.stringify(content));
-            content.pageSize = (content.pageNumber - 1) * (content.pageSize || 20); // 确保pageSize存在
-            content.pageNumber = 1;
-            getList()
-        }
-
-        //得到缩略图或者压缩图  getType默认得到缩略图传true得到压缩图
-        this.getSpecifiedImage = (obj, getType = false) => {
-            let type = getType ? 'compressed' : 'thumbnail';
-            let imgObj = obj.subfiles.find(v => v.type == type);
-            return imgObj.url;
-        }
+import axios from "axios";
 
 
-        // if (process.env.NODE_ENV === 'development') {
-        //     this.baseUrl = this.urls[0].url;
-        // } else {
-        //     this.baseUrl = this.urls[1].url;
-        // }
-
-        this.baseUrl = "/api";
-
-        // 从本地存储加载JSESSIONID
-        this.jsessionid = uni.getStorageSync('JSESSIONID') || '';
-        console.log("接口地址", this.baseUrl);
-    }
-
-    request({
-        url,
-        data = {},
-        method = "POST",
-        header = {
-            'content-type': 'application/json',
-            "accesstoken": data.accesstoken || uni.getStorageSync('userMsg')?.token || '',
-            // 添加Cookie字段
-            // "Cookie": `JSESSIONID=${this.jsessionid}`
-        },
-        showLoading = ''
-    }) {
-        // 如果data.content.pageNumber存在但pageTotal不存在,则设置pageTotal为1
-        // 如果pageNumber大于pageTotal,则直接返回空结果
-        // 在接口中拿到的pageNumber自动加1,目的是在这里直接处理分页逻辑
-        try {
-            if (data.content.pageNumber) {
-                if (data.content.pageNumber > data.content.pageTotal) return new Promise((resolve) => resolve({ code: 0 }));;
-            }
-        } catch (error) { }
-        return new Promise((resolve, reject) => {
-            this._request(url, resolve, reject, data, method, header, showLoading);
-        });
+class HTTP {
+  constructor() {
+    this.urls = [
+      { name: "测试", url: "http://61.164.207.46:8300" },
+      { name: "正式", url: "https://crm.meida.com:16691" },
+      { name: "楚楚", url: "https://cucu.cnyunl.com:8079" }
+    ];
+
+    if (process.env.NODE_ENV === "development") {
+      this.baseUrl = this.urls[0].url;
+    } else {
+      this.baseUrl = this.urls[1].url;
     }
     }
 
 
-    _request(url, resolve, reject, data, method, header, showLoading) {
-        if (showLoading) uni.showLoading({
-            title: showLoading,
-            mask: true
-        });
-
-        uni.request({
-            url: this.baseUrl + '/yos/rest' + url,
-            data: data,
-            method: method,
-            header: header,
-            timeout: 60000,
-            success: (res) => {
-                // 提取并保存JSESSIONID
-                this._handleSessionCookies(res);
-                try {
-                    if (res.data.pageNumber) {
-                        res.data.firstPage = res.data.pageNumber === 1; // 判断是否为第一页
-                        if (data.content.copyContent) {
-                            res.data.pageNumber = data.content.copyContent.pageNumber;
-                            res.data.pageTotal = data.content.copyContent.pageTotal;
-                            data.content.pageSize = data.content.copyContent.pageSize;
-                            delete data.content.copyContent
-                        } else {
-                            res.data.pageNumber++
-                        }
-                    }
-                } catch (error) {
-
-                }
-                resolve(res.data);
-            },
-            fail: (err) => {
-                reject(err);
-            },
-            complete: (res) => {
-                if (showLoading) uni.hideLoading();
-
-                // 网络错误处理
-                if (res.errMsg !== 'request:ok') {
-                    uni.showToast({
-                        title: '网络异常,请稍后再试',
-                        icon: "none"
-                    });
-                    return;
-                }
+    this.jsessionid = uni.getStorageSync("JSESSIONID") || "";
+
+    // 工具方法 - 更新分页列表
+    this.updateList = (content, getList) => {
+      content.copyContent = JSON.parse(JSON.stringify(content));
+      content.pageSize = (content.pageNumber - 1) * (content.pageSize || 20);
+      content.pageNumber = 1;
+      getList();
+    };
+
+    // 工具方法 - 获取缩略图 / 压缩图
+    this.getSpecifiedImage = (obj, getType = false) => {
+      let type = getType ? "compressed" : "thumbnail";
+      let imgObj = obj.subfiles.find(v => v.type == type);
+      return imgObj?.url;
+    };
+
+    // 创建 axios 实例
+    this.instance = axios.create({
+      baseURL: "/yos/rest",
+      withCredentials: true
+    });
+
+    // 请求拦截器 - 自动加 JSESSIONID
+    this.instance.interceptors.request.use((config) => {
+      if (!config.headers) config.headers = {};
+      config.headers["content-type"] = "application/json";
+      config.headers["accesstoken"] = uni.getStorageSync("userMsg")?.token || "";
+      if (this.jsessionid) {
+        config.headers["Cookie"] = `JSESSIONID=${this.jsessionid}`;
+      }
+      return config;
+    });
+
+    // 响应拦截器 - 自动更新 JSESSIONID + 会话过期处理
+    this.instance.interceptors.response.use((response) => {
+      this._handleSessionCookies(response);
+      this._checkSessionExpired(response);
+      return response;
+    }, (error) => {
+      return Promise.reject(error);
+    });
+
+    console.log("接口地址", this.baseUrl);
+  }
+
+  request({ url, data = {}, method = "POST", showLoading = "" }) {
+    // 分页边界处理
+    try {
+      if (data.content?.pageNumber && data.content.pageTotal) {
+        if (data.content.pageNumber > data.content.pageTotal) {
+          return Promise.resolve({ code: 0 });
+        }
+      }
+    } catch (e) { }
 
 
-                // 会话过期处理
-                if (res.data.msg === '登陆状态已过期,请重新登陆!') {
-                    // 清除过期会话ID
-                    this.jsessionid = '';
-                    uni.removeStorageSync('JSESSIONID');
-                    let currentPages = getCurrentPages()[getCurrentPages().length - 1];
-                    // 如果当前页面不是登录页面,则跳转到登录页面
-                    if (currentPages.route !== 'pages/login/login') {
-                        uni.showModal({
-                            title: '提示',
-                            content: '您的登录状态已过期,请重新登录。',
-                            showCancel: false,
-                            success: () => {
-                                uni.redirectTo({
-                                    url: '/pages/login/login',
-                                })
-                            }
-                        });
-                    }
-                }
-            }
-        });
+    if (showLoading) {
+      uni.showLoading({ title: showLoading, mask: true });
     }
     }
 
 
-    // 处理会话Cookie
-    _handleSessionCookies(res) {
+    return this.instance({
+      url,
+      method,
+      data
+    })
+      .then((res) => {
+        let result = res.data;
+        // 分页处理
         try {
         try {
-            const cookies = res.cookies || [];
-            const headers = res.header || {};
-
-            // 检查响应头中的Set-Cookie
-            const setCookie = headers['Set-Cookie'] || headers['set-cookie'];
-            if (setCookie) {
-                // 将字符串转换为数组
-                const cookieArray = Array.isArray(setCookie)
-                    ? setCookie
-                    : [setCookie];
-
-                cookies.push(...cookieArray);
+          if (result.pageNumber) {
+            result.firstPage = result.pageNumber === 1;
+            if (data.content?.copyContent) {
+              result.pageNumber = data.content.copyContent.pageNumber;
+              result.pageTotal = data.content.copyContent.pageTotal;
+              data.content.pageSize = data.content.copyContent.pageSize;
+              delete data.content.copyContent;
+            } else {
+              result.pageNumber++;
             }
             }
-
-            // 查找JSESSIONID
-            for (const cookie of cookies) {
-                const match = cookie.match(/JSESSIONID=([^;]+)/i);
-                if (match && match[1]) {
-                    const newSessionId = match[1];
-
-                    // 更新JSESSIONID
-                    if (newSessionId !== this.jsessionid) {
-                        this.jsessionid = newSessionId;
-                        uni.removeStorageSync('JSESSIONID');
-                        uni.setStorageSync('JSESSIONID', newSessionId);
-                    }
-                    break;
-                }
+          }
+        } catch (e) { }
+        return result;
+      })
+      .catch((err) => {
+        uni.showToast({ title: "网络异常,请稍后再试", icon: "none" });
+        throw err;
+      })
+      .finally(() => {
+        if (showLoading) uni.hideLoading();
+      });
+  }
+
+  // 处理 JSESSIONID
+  _handleSessionCookies(res) {
+    try {
+      const setCookie = res.headers["set-cookie"] || res.headers["Set-Cookie"];
+      if (setCookie) {
+        const cookieArray = Array.isArray(setCookie) ? setCookie : [setCookie];
+        for (const cookie of cookieArray) {
+          const match = cookie.match(/JSESSIONID=([^;]+)/i);
+          if (match && match[1]) {
+            const newSessionId = match[1];
+            if (newSessionId !== this.jsessionid) {
+              this.jsessionid = newSessionId;
+              uni.setStorageSync("JSESSIONID", newSessionId);
             }
             }
-        } catch (error) {
-            console.error('处理会话Cookie时出错:', error);
+            break;
+          }
         }
         }
+      }
+    } catch (error) {
+      console.error("处理 JSESSIONID 失败:", error);
+    }
+  }
+
+  // 会话过期处理
+  _checkSessionExpired(res) {
+    if (res.data?.msg === "登陆状态已过期,请重新登陆!") {
+      this.jsessionid = "";
+      uni.removeStorageSync("JSESSIONID");
+      let currentPages = getCurrentPages();
+      let currentPage = currentPages[currentPages.length - 1];
+      if (currentPage.route !== "pages/login/login") {
+        uni.showModal({
+          title: "提示",
+          content: "您的登录状态已过期,请重新登录。",
+          showCancel: false,
+          success: () => {
+            uni.redirectTo({ url: "/pages/login/login" });
+          }
+        });
+      }
     }
     }
+  }
 }
 }
 
 
-export { HTTP };
+export { HTTP };

+ 8 - 9
vite.config.js

@@ -2,7 +2,6 @@ import { defineConfig } from "vite";
 import uni from "@dcloudio/vite-plugin-uni";
 import uni from "@dcloudio/vite-plugin-uni";
 import { visualizer } from "rollup-plugin-visualizer";
 import { visualizer } from "rollup-plugin-visualizer";
 
 
-// https://vitejs.dev/config/
 export default defineConfig({
 export default defineConfig({
   plugins: [
   plugins: [
     uni(),
     uni(),
@@ -20,16 +19,16 @@ export default defineConfig({
     },
     },
   },
   },
   server: {
   server: {
-    port: 5100,
-    fs: {
-      allow: ['..'],
-    },
+    host: "192.168.3.53", // 和后端 IP 一致
+    port: 8300, // 跟后端端口一样(关键)
+    strictPort: true, // 端口占用直接报错
     proxy: {
     proxy: {
-      '/api': {
-        target: 'http://61.164.207.46:8300',
+      '/yos/rest': { // 直接代理后端路径
+        target: 'http://61.164.207.46:8300', // 真实后端
         changeOrigin: true,
         changeOrigin: true,
-        rewrite: (path) => path.replace(/^\/api/, ''),
+        cookieDomainRewrite: "192.168.3.53", // 修改 Set-Cookie 的 Domain
+        rewrite: (path) => path.replace(/^\/yos\/rest/, '/yos/rest')
       },
       },
     },
     },
   },
   },
-});
+});