|
@@ -1 +1,105 @@
|
|
|
-console.log(process.env.NODE_ENV)
|
|
|
+import Taro from '@tarojs/taro'
|
|
|
+import { APP_ID, APP_TYPE, APP_VERSION_CODE, VERSION_CODE } from '@/config'
|
|
|
+
|
|
|
+class Http {
|
|
|
+ get(url: string, data = {}, config: ConfigType = {}) {
|
|
|
+ const { header = {} } = config
|
|
|
+
|
|
|
+ data = wrapData(data)
|
|
|
+
|
|
|
+ return new Promise((success, fail) => {
|
|
|
+ const expParams: ConfigType = {
|
|
|
+ header: {
|
|
|
+ 'content-type': 'application/x-www-form-urlencoded',
|
|
|
+ ...header
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Taro.request({
|
|
|
+ url,
|
|
|
+ data,
|
|
|
+ success,
|
|
|
+ fail,
|
|
|
+ ...expParams
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ post(url: string, data = {}, config: ConfigType = {}) {
|
|
|
+ const { header = {} } = config
|
|
|
+
|
|
|
+ data = wrapData(data)
|
|
|
+
|
|
|
+ if ((data as DataType).baseInfo)
|
|
|
+ data = createBaseInfoToFetchData(data)
|
|
|
+
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ const expParams: ConfigType = {
|
|
|
+ header: {
|
|
|
+ 'content-type': 'application/x-www-form-urlencoded',
|
|
|
+ ...header
|
|
|
+ },
|
|
|
+ method: 'POST'
|
|
|
+ }
|
|
|
+
|
|
|
+ Taro.request({
|
|
|
+ url,
|
|
|
+ data,
|
|
|
+ success(res) {
|
|
|
+ const { data, statusCode } = res
|
|
|
+
|
|
|
+ if (statusCode !== 200) {
|
|
|
+ reject(data)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ resolve(data)
|
|
|
+ },
|
|
|
+ fail(res) {
|
|
|
+ reject(res)
|
|
|
+ },
|
|
|
+ ...expParams
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+export function wrapData(params) {
|
|
|
+ const systemInfo = Taro.$global.systemInfo
|
|
|
+ const launchOption = Taro.$global.launchOption
|
|
|
+ const network = Taro.$global.network
|
|
|
+
|
|
|
+ const defaultInfo = {
|
|
|
+ appId: APP_ID,
|
|
|
+ appType: APP_TYPE,
|
|
|
+ versionCode: VERSION_CODE,
|
|
|
+ appVersionCode: APP_VERSION_CODE,
|
|
|
+ clientTimestamp: new Date().getTime(),
|
|
|
+ platform: systemInfo.platform,
|
|
|
+ system: systemInfo.system,
|
|
|
+ network: network.networkType,
|
|
|
+ careModelStatus: systemInfo.easyMode,
|
|
|
+ senceType: launchOption.scene
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ ...defaultInfo,
|
|
|
+ ...params
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+export function createBaseInfoToFetchData(data) {
|
|
|
+ const baseKey = ['token', 'loginUid', 'appType', 'machineCode', 'platform', 'machineInfo', 'networkType', 'pageSource', 'rootPageSource', 'clientTimestamp', 'sessionId', 'subSessionId', 'requestId', 'pageCategoryId', 'rootPageCategoryId', 'openType', 'shareDepth', 'eventId', 'videoReportMeta', 'rootPageTimestamp', 'returnId', 'system']
|
|
|
+
|
|
|
+ return Object.keys(data).reduce((calc, key) => {
|
|
|
+ if (baseKey.includes(key)) {
|
|
|
+ calc.baseInfo[key] = data[key]
|
|
|
+ } else {
|
|
|
+ calc.params[key] = data[key]
|
|
|
+ }
|
|
|
+
|
|
|
+ return calc
|
|
|
+ }, { baseInfo: {}, params: {} })
|
|
|
+}
|
|
|
+
|
|
|
+export default new Http()
|