mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	使用 uview 重构实际登陆
This commit is contained in:
		| @@ -0,0 +1,97 @@ | ||||
| import buildURL from '../helpers/buildURL' | ||||
| import buildFullPath from '../core/buildFullPath' | ||||
| import settle from '../core/settle' | ||||
| import { isUndefined } from '../utils' | ||||
|  | ||||
| /** | ||||
|  * 返回可选值存在的配置 | ||||
|  * @param {Array} keys - 可选值数组 | ||||
|  * @param {Object} config2 - 配置 | ||||
|  * @return {{}} - 存在的配置项 | ||||
|  */ | ||||
| const mergeKeys = (keys, config2) => { | ||||
|     const config = {} | ||||
|     keys.forEach((prop) => { | ||||
|         if (!isUndefined(config2[prop])) { | ||||
|             config[prop] = config2[prop] | ||||
|         } | ||||
|     }) | ||||
|     return config | ||||
| } | ||||
| export default (config) => new Promise((resolve, reject) => { | ||||
|     const fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params) | ||||
|     const _config = { | ||||
|         url: fullPath, | ||||
|         header: config.header, | ||||
|         complete: (response) => { | ||||
|             config.fullPath = fullPath | ||||
|             response.config = config | ||||
|             try { | ||||
|                 // 对可能字符串不是json 的情况容错 | ||||
|                 if (typeof response.data === 'string') { | ||||
|                     response.data = JSON.parse(response.data) | ||||
|                 } | ||||
|                 // eslint-disable-next-line no-empty | ||||
|             } catch (e) { | ||||
|             } | ||||
|             settle(resolve, reject, response) | ||||
|         } | ||||
|     } | ||||
|     let requestTask | ||||
|     if (config.method === 'UPLOAD') { | ||||
|         delete _config.header['content-type'] | ||||
|         delete _config.header['Content-Type'] | ||||
|         const otherConfig = { | ||||
|         // #ifdef MP-ALIPAY | ||||
|             fileType: config.fileType, | ||||
|             // #endif | ||||
|             filePath: config.filePath, | ||||
|             name: config.name | ||||
|         } | ||||
|         const optionalKeys = [ | ||||
|         // #ifdef APP-PLUS || H5 | ||||
|             'files', | ||||
|             // #endif | ||||
|             // #ifdef H5 | ||||
|             'file', | ||||
|             // #endif | ||||
|             // #ifdef H5 || APP-PLUS | ||||
|             'timeout', | ||||
|             // #endif | ||||
|             'formData' | ||||
|         ] | ||||
|         requestTask = uni.uploadFile({ ..._config, ...otherConfig, ...mergeKeys(optionalKeys, config) }) | ||||
|     } else if (config.method === 'DOWNLOAD') { | ||||
|         // #ifdef H5 || APP-PLUS | ||||
|         if (!isUndefined(config.timeout)) { | ||||
|             _config.timeout = config.timeout | ||||
|         } | ||||
|         // #endif | ||||
|         requestTask = uni.downloadFile(_config) | ||||
|     } else { | ||||
|         const optionalKeys = [ | ||||
|             'data', | ||||
|             'method', | ||||
|             // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN | ||||
|             'timeout', | ||||
|             // #endif | ||||
|             'dataType', | ||||
|             // #ifndef MP-ALIPAY | ||||
|             'responseType', | ||||
|             // #endif | ||||
|             // #ifdef APP-PLUS | ||||
|             'sslVerify', | ||||
|             // #endif | ||||
|             // #ifdef H5 | ||||
|             'withCredentials', | ||||
|             // #endif | ||||
|             // #ifdef APP-PLUS | ||||
|             'firstIpv4' | ||||
|         // #endif | ||||
|         ] | ||||
|         requestTask = uni.request({ ..._config, ...mergeKeys(optionalKeys, config) }) | ||||
|     } | ||||
|     if (config.getTask) { | ||||
|         config.getTask(requestTask, config) | ||||
|     } | ||||
| }) | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV