Răsfoiți Sursa

feat: 修改请求的url获取方式,归类hook

chenyixian 6 luni în urmă
părinte
comite
a8e7aeaf08

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+/node_modules
+/unpackage
+/uni-app-base
+package-lock.json
+pnpm-lock.yaml

+ 1 - 1
config/request.ts

@@ -1,6 +1,6 @@
 /** 接口请求地址 */
 // 需要代理的时候,将这个设置为 api/
-export const BASE_URL = 'https://cs001.kasitesoft.com/';
+export const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL;
 /** 接口是否加密 */
 export const IS_ENCRYPT = false;
 /** 接口超时时间 默认1分钟 */

+ 4 - 0
hook/config/index.ts

@@ -0,0 +1,4 @@
+export * from './use-front-end-config-version';
+export * from './use-front-end-config';
+export * from './use-get-sys-app-page-list';
+export * from './use-set-front-end-form';

+ 1 - 1
hook/use-front-end-config-version/index.ts → hook/config/use-front-end-config-version/index.ts

@@ -1,4 +1,4 @@
-import { REQUEST_CONFIG } from '../../config';
+import { REQUEST_CONFIG } from '../../../config';
 
 /** 获取小程序配置信息版本号,用于控制是否加载前端缓存更新 */
 export const useFrontEndConfigVersion = async () => {

+ 2 - 2
hook/use-front-end-config/index.ts → hook/config/use-front-end-config/index.ts

@@ -1,5 +1,5 @@
-import { REQUEST_CONFIG, frontEndConfig } from '../../config';
-import { common } from '../../utils';
+import { REQUEST_CONFIG, frontEndConfig } from '../../../config';
+import { common } from '../../../utils';
 
 // 获取前端统一缓存配置信息 并返回前端配置信息
 const frontEndConfigFn = () => {

+ 3 - 2
hook/use-get-sys-app-page-list/index.ts → hook/config/use-get-sys-app-page-list/index.ts

@@ -1,6 +1,7 @@
-import { SysAppPageList } from '../../service/base';;
-import { common } from '../../utils';
+import { SysAppPageList } from '../../../service/base';;
+import { common } from '../../../utils';
 
+/** 页面参数查询列表 */
 export const useGetSysAppPageList = async () => {
 	const app = getApp();
 	const resp = await SysAppPageList({

+ 2 - 2
hook/use-set-front-end-form/index.ts → hook/config/use-set-front-end-form/index.ts

@@ -1,5 +1,5 @@
-import { common } from '../../utils';
-import { BaseFormQuery } from '../../service/base';
+import { common } from '../../../utils';
+import { BaseFormQuery } from '../../../service/base';
 
 /** 设置form表单 */
 export const useSetFrontEndForm = () => {

+ 4 - 12
hook/index.ts

@@ -1,12 +1,4 @@
-export * from './use-front-end-config-version';
-export * from './use-front-end-config';
-export * from './use-app-status';
-export * from './use-get-update-manager';
-export * from './use-small-program-login';
-export * from './use-set-front-end-form';
-export * from './use-set-menu-list';
-
-export * from './use-get-sys-app-page-list';
-export * from './use-preser-member';
-
-export * from './use-domain';
+export * from './config';
+export * from './system';
+export * from './member';
+export * from './page';

+ 19 - 0
hook/member/common/index.ts

@@ -0,0 +1,19 @@
+import { QueryMemberCardList_V3 } from '../../../service/base';
+import { common } from '../../../utils';
+
+/** 获取就诊人下的his卡信息 */
+export const queryMemberCardList_V3 = async (memberId) => {
+	return new Promise(async (resolve, reject) => {
+		let querData = {
+			hosId: getApp().globalData.hosId,
+			memberId,
+			cardNoFormatDesensitization: 'false',
+		};
+		let { resp, resData } = await QueryMemberCardList_V3(querData);
+		if (resData.RespCode == 10000 && common.isNotEmpty(resp)) {
+			resolve(resp);
+		} else {
+			resolve([]);
+		}
+	});
+};

+ 3 - 0
hook/member/index.ts

@@ -0,0 +1,3 @@
+export * from './use-preser-member';
+export * from './use-get-default-member';
+export * from './use-get-member';

+ 143 - 0
hook/member/use-get-default-member/index.ts

@@ -0,0 +1,143 @@
+import { common } from '../../../utils';
+import store from '../../../store';
+import { usePreserMember } from '../use-preser-member';
+import { queryMemberCardList_V3 } from '../common';
+
+// cardType (type为获取默认操作人,才有效果,1:获取默认人下默认就诊卡;14:取默认人下默认住院号)
+const getMember = async (type = 'memberList', cardType = 1) => {
+	// type 值
+	//   memberList: 查询就诊人列表,仅返回就诊人列表
+	//   cardList:   查询就诊人列表并循环查询卡列表,返回所有就诊人下的所有卡
+	//   defaultList: 查询就诊人列表,返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
+	//   defaultInfo: 获取默认人下的所有卡,搭配cardType并过滤不是默认卡,仅返回默认cardTyp类型组合的一个对象
+	return new Promise(async (resolve, reject) => {
+		let resp = store.state.memberList || [];
+		let memberList = [];
+		let currentUser = {} as any;
+		if (!resp.length && getApp().globalData.userAccount) {
+			await usePreserMember();
+			resp = store.state.memberList;
+		}
+		if (common.isNotEmpty(resp)) {
+			memberList = resp;
+			// 判断为获取默认就诊人
+			if (type == 'defaultInfo') {
+				let memberLists = memberList.filter((item) => item.userMemberList[0].isDefaultMember == 1);
+				// 判断过滤默认操作人
+				if (common.isNotEmpty(memberLists)) {
+					currentUser = memberLists[0];
+				} else {
+					// 没有默认操作人查询人列表第一条
+					currentUser = memberList[0];
+				}
+				if (common.isNotEmpty(cardType)) {
+					let resp = await queryMemberCardList_V3(currentUser.memberId);
+					if (common.isNotEmpty(resp)) {
+						currentUser.data_1 = resp;
+					}
+				}
+				resolve(currentUser);
+			}
+			// 判断为获取默认列表 返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
+			if (type == 'defaultList') {
+				let memberListIndex = 0;
+				let userInfo = memberList[memberListIndex];
+				memberList.forEach((item, index) => {
+					if (item.userMemberList[0].isDefaultMember == 1) {
+						userInfo = item;
+						memberListIndex = index;
+					}
+				});
+				let resp = await queryMemberCardList_V3(userInfo.memberId);
+				if (common.isNotEmpty(resp)) {
+					memberList[memberListIndex].data_1 = resp;
+				}
+				resolve(memberList);
+			}
+			// 判断为获取所有人下所有卡列数据
+			if (type == 'cardList') {
+				for (var item of memberList) {
+					let resp = await queryMemberCardList_V3(item.memberId);
+					if (common.isNotEmpty(resp)) {
+						item.Data_1 = resp;
+					} else {
+						item.Data_1 = [];
+					}
+				}
+			}
+			resolve(memberList);
+		} else {
+			resolve([]);
+		}
+	});
+};
+
+const currentUsersFilter = async (currentUsers, cardType) => {
+	return new Promise(async (resolve, reject) => {
+		let currentUser = {};
+		let cardUser = {};
+		// 判断存在数据进行过滤
+		if (currentUsers.data_1) {
+			let cardDataList = [];
+			for (var item of currentUsers.data_1) {
+				if (item.cardType == cardType) {
+					cardDataList.push(item);
+				}
+				if (item.isDefault == 1 && item.cardType == cardType) {
+					cardUser = item;
+				}
+			}
+			if (common.isEmpty(cardUser)) {
+				cardUser = cardDataList[0];
+			}
+			if (common.isNotEmpty(cardUser)) {
+				currentUser = common.mergeObject(currentUsers, cardUser);
+				// {
+				//   ...currentUsers,
+				//   ...cardUser,
+				//   // cardNo:cardUser.cardNo,
+				//   // cardType:cardUser.cardType,
+				//   // encryptionStore:cardUser.encryptionStore
+				// }
+			} else {
+				if (common.isEmpty(cardType)) {
+					currentUser = currentUsers;
+				}
+			}
+		} else if (common.isNotEmpty(currentUsers)) {
+			currentUser = currentUsers;
+		}
+		resolve(currentUser);
+	});
+};
+
+export const useGetDefaultMember = async (data: any = {}) => {
+	getApp().globalData.cardType = null;
+	let member = {} as any;
+	let defaultInfo = await getMember('defaultInfo', data.cardType);
+	if (!common.isEmpty(defaultInfo)) {
+		member = await currentUsersFilter(defaultInfo, data.cardType);
+		// 判断返回为空 或者 要查询到的是有卡类型的,当时过滤时返回的是没有的卡号的
+		if (
+			common.isEmpty(member) ||
+			(common.isNotEmpty(data.cardType) && common.isEmpty(member.cardNo))
+		) {
+			if (common.isNotEmpty(data.url)) {
+				getApp().globalData.toUrl = data.url;
+			}
+			let type = data.cardType == 1 ? 'card' : data.cardType == 14 ? 'hospital' : 'member';
+			let skipWay = data.isKeepPage ? 'navigateTo' : 'redirectTo';
+			common.goToUrl(
+				`/pagesPersonal${
+					uni.getStorageSync('wx_Slb') ? 'Slb' : ''
+				}/st1/business/patientManagement/selecteCardOrHos/selecteCardOrHos?type=${type}`,
+				{
+					skipWay: skipWay,
+				}
+			);
+			return null;
+		}
+	}
+	store.commit('setCurrentUse', member);
+	return member;
+};

+ 80 - 0
hook/member/use-get-member/index.ts

@@ -0,0 +1,80 @@
+import { usePreserMember } from '../use-preser-member';
+import { common } from '../../../utils';
+import store from '../../../store';
+import { queryMemberCardList_V3 } from '../common';
+
+/**
+ * 获取就诊人
+ * @param {string}  type
+ * memberList: 查询就诊人列表,仅返回就诊人列表
+ *
+ * cardList:   查询就诊人列表并循环查询卡列表,返回所有就诊人下的所有卡
+ *
+ * defaultList: 查询就诊人列表,返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
+ *
+ * defaultInfo: 获取默认人下的所有卡,搭配cardType并过滤不是默认卡,仅返回默认cardTyp类型组合的一个对象
+ * @param {number}  cardType (type为获取默认操作人,才有效果,1:获取默认人下默认就诊卡;14:取默认人下默认住院号)
+ */
+export const useGetMember = async (type = 'memberList', cardType = 1) => {
+	return new Promise(async (resolve) => {
+		let resp = uni.getStorageSync('memberList') || [];
+		let memberList = [];
+		let currentUser = {} as any;
+
+		if (!resp.length) {
+			await usePreserMember();
+			resp = store.state.memberList;
+		}
+		if (common.isNotEmpty(resp)) {
+			memberList = resp;
+			// 判断为获取默认就诊人
+			if (type == 'defaultInfo') {
+				let memberLists = memberList.filter((item) => item.userMemberList[0].isDefaultMember == 1);
+				// 判断过滤默认操作人
+				if (common.isNotEmpty(memberLists)) {
+					currentUser = memberLists[0];
+				} else {
+					// 没有默认操作人查询人列表第一条
+					currentUser = memberList[0];
+				}
+				if (common.isNotEmpty(cardType)) {
+					let { resp } = await queryMemberCardList_V3(currentUser.memberId);
+					if (common.isNotEmpty(resp)) {
+						currentUser.data_1 = resp;
+					}
+				}
+				resolve(currentUser);
+			}
+			// 判断为获取默认列表 返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
+			if (type == 'defaultList') {
+				let memberListIndex = 0;
+				let userInfo = memberList[memberListIndex];
+				memberList.forEach((item, index) => {
+					if (item.userMemberList[0].isDefaultMember == 1) {
+						userInfo = item;
+						memberListIndex = index;
+					}
+				});
+				let { resp } = await queryMemberCardList_V3(userInfo.memberId);
+				if (common.isNotEmpty(resp)) {
+					memberList[memberListIndex].data_1 = resp;
+				}
+				resolve(memberList);
+			}
+			// 判断为获取所有人下所有卡列数据
+			if (type == 'cardList') {
+				for (var item of memberList) {
+					let resp = await queryMemberCardList_V3(item.memberId);
+					if (common.isNotEmpty(resp)) {
+						item.Data_1 = resp;
+					} else {
+						item.Data_1 = [];
+					}
+				}
+			}
+			resolve(memberList);
+		} else {
+			resolve([]);
+		}
+	});
+};

+ 3 - 3
hook/use-preser-member/index.ts → hook/member/use-preser-member/index.ts

@@ -1,6 +1,6 @@
-import { QueryBaseMemberList_V3 } from '../../service/base';
-import { common } from '../../utils';
-import store from '../../store';
+import { QueryBaseMemberList_V3 } from '../../../service/base';
+import { common } from '../../../utils';
+import store from '../../../store';
 
 /** 查询并保存全局所有就诊人数据信息 (就诊人改变后都要重新调用,并保存一遍)*/
 export const usePreserMember = async () => {

+ 3 - 0
hook/page/index.ts

@@ -0,0 +1,3 @@
+export * from './use-set-menu-list';
+export * from './use-load-view-menu';
+export * from './use-is-to-auth-page';

+ 12 - 0
hook/page/use-is-to-auth-page/index.ts

@@ -0,0 +1,12 @@
+import { common } from '../../../utils';
+
+export const useIsToAuthPage = () => {
+	// 判断小程序登录返回的wechatOpenid是否为null,null没有关注公众号,需要跳转授权页面进行授权处理
+	if (uni.getStorageSync('wechatOpenid') === null && getApp().globalData.officialAuthOn) {
+		common.goToUrl(`/pages/st1/business/h5/h5?type=0`, {
+			skipWay: 'redirectTo',
+		});
+		return true;
+	}
+	return false;
+};

+ 12 - 0
hook/page/use-load-view-menu/index.ts

@@ -0,0 +1,12 @@
+import { common } from '../../../utils';
+import { CacheGetValue } from '../../../service/base';
+
+export const useLoadViewMenu = async () => {
+	const resp = await CacheGetValue({
+		key: 'smallproViewMenu',
+	});
+	if (resp && resp.length) {
+		const menu = JSON.parse(resp[0].Value || '[]');
+		menu.length && wx.setStorageSync('menuList', menu);
+	}
+};

+ 2 - 3
hook/use-set-menu-list/index.ts → hook/page/use-set-menu-list/index.ts

@@ -1,5 +1,5 @@
-import { common } from '../../utils';
-import { SysclientappmenuList } from '../../service/base';
+import { common } from '../../../utils';
+import { SysclientappmenuList } from '../../../service/base';
 
 /** 设置菜单 */
 export const useSetMenuList = async (menu: any[]) => {
@@ -7,7 +7,6 @@ export const useSetMenuList = async (menu: any[]) => {
 		// 获取菜单路由配置
 		let menuList = menu;
 		const app = getApp();
-		console.log(menuList);
 		/**判断当前是正式发布版本从线上获取 */
 		if (app.globalData.accountInfo.miniProgram.envVersion == 'release') {
 			let getSysConfigData = {

+ 4 - 0
hook/system/index.ts

@@ -0,0 +1,4 @@
+export * from './use-app-status';
+export * from './use-domain';
+export * from './use-get-update-manager';
+export * from './use-small-program-login';

+ 1 - 1
hook/use-app-status/index.ts → hook/system/use-app-status/index.ts

@@ -1,4 +1,4 @@
-import { GetAppStatus } from '../../service/base';
+import { GetAppStatus } from '../../../service/base';
 
 /** 判断app状态进行跳转 */
 export const useAppStatus = async () => {

+ 19 - 0
hook/system/use-domain/index.ts

@@ -0,0 +1,19 @@
+import { REQUEST_CONFIG } from '../../../config';
+
+/** 获取域名 useLocal: 开发用-是否不用代理的域名,用本地域名 */
+export const useDomain = (useLocal = false) => {
+	let origin = '',
+		pathname = '';
+	if (process.env.NODE_ENV == 'development' && !useLocal) {
+		const [domain] = REQUEST_CONFIG.BASE_URL.match(
+			/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/
+		);
+		origin = domain;
+		pathname = REQUEST_CONFIG.BASE_URL;
+	} else {
+		origin = location.origin;
+		pathname = location.pathname;
+	}
+	const hasSuffix = pathname.match(/\/KasiteWeb\//);
+	return `${origin}${hasSuffix ? '/KasiteWeb' : ''}`;
+};

+ 0 - 0
hook/use-get-update-manager/index.ts → hook/system/use-get-update-manager/index.ts


+ 25 - 69
hook/use-small-program-login/index.ts → hook/system/use-small-program-login/index.ts

@@ -1,7 +1,7 @@
-import { REQUEST_CONFIG } from '../../config';
-import { WebOauth2Authorize } from '../../service/base';
+import { REQUEST_CONFIG } from '../../../config';
+import { WebOauthAuthorize } from '../../../service/base';
 import { useDomain } from '../use-domain';
-import store from '../../store';
+import store from '../../../store';
 
 /** 缓存是否过期 */
 export const useIsExpiration = async () => {
@@ -125,77 +125,33 @@ const smallProgramLoginByGONGZHONGHAO = (app: App.AppInstance) => {
 	return new Promise(async (resolve, reject) => {
 		if ((await useIsExpiration()) && uni.getStorageSync('token')) {
 			resolve(true);
+			if (!store.state.token) {
+				store.commit('setToken', uni.getStorageSync('token'));
+			}
 			return;
 		}
-		const code =
-			new URL(location.href).searchParams.get('code') || uni.getStorageSync('login_code');
-		if (!code) {
+		const token = new URL(location.href).searchParams.get('token');
+		const openid = new URL(location.href).searchParams.get('openid');
+		console.log(token);
+		const { channelId, configKey, hosId, wechatConfigKey } = app.globalData;
+		if (!token) {
 			// 没有授权登录过的,需要重定向到授权页面
-			location.href = WebOauth2Authorize({
-				appid: app.globalData.appId,
-				redirect_uri: encodeURIComponent(`${useDomain()}/#/`),
+			const url = WebOauthAuthorize({
+				hosId,
+				wechatConfigKey,
+				toUrl: `${useDomain(true)}/#/`, //encodeURIComponent(`${useDomain(true)}/#/`),
 			});
+			location.href = url;
 		} else {
-			uni.setStorageSync('login_code', code);
-			location.href = `${useDomain()}/#/`;
-			const { channelId, configKey, hosId, wechatConfigKey } = app.globalData;
-			uni.request({
-				url: `${REQUEST_CONFIG.BASE_URL}wsgw/${channelId}/${configKey}/${hosId}/smallProgramLogin_v2.do?cfgKey=${wechatConfigKey}`,
-				method: 'POST',
-				data: {
-					appId: app.globalData.appId,
-					smallPro_authCode: code,
-					smallPro_systemInfo: app.globalData.smallPro_systemInfo,
-					smallPro_version: app.globalData.smallPro_version,
-				},
-				header: {
-					'content-type': 'application/x-www-form-urlencoded',
-				},
-				success(resp: any) {
-					console.log('1111', resp);
-					if (resp.data.RespCode == '10000') {
-						store.commit('setToken', resp.data.token);
-						store.commit('setOpenId', resp.data.openId);
-						store.commit('setUnionId', resp.data.unionId);
-						store.commit('setSmallProOpenId', resp.data.smallProOpenId);
-						store.commit('setWechatOpenId', resp.data.wechatOpenid);
-						uni.setStorageSync('isCall', 0);
-
-						// publicFn.preserMember();
-						// 当前时间
-						var timestamp = Date.parse(new Date());
-						// 加上过期期限
-						var expiration = timestamp + resp.data.expireTime;
-						uni.setStorageSync('data_expiration', expiration);
-						resolve(resp);
-					} else {
-						if (
-							resp.data.RespCode == '-14019' &&
-							resp.data.RespMessage &&
-							resp.data.RespMessage.indexOf('非白名单用户') >= 0
-						) {
-							uni.showLoading({
-								title: '系统升级中...',
-								mask: true,
-							});
-						} else {
-							uni.showLoading({
-								title: resp.data.RespMessage || '网络异常!',
-								mask: true,
-							});
-						}
-						resolve(false);
-					}
-				},
-				fail(error) {
-					console.log(error);
-					uni.showLoading({
-						title: '网络异常!',
-						mask: true,
-					});
-					reject(error);
-				},
-			});
+			store.commit('setToken', token);
+			store.commit('setOpenId', openid);
+			// 当前时间
+			var timestamp = Date.parse(new Date());
+			// 加上过期期限
+			var expiration = timestamp + 24 * 60 * 60 * 1000;
+			uni.setStorageSync('data_expiration', expiration);
+			location.href = `${useDomain(true)}/#/`;
+			resolve(true);
 		}
 	});
 };

+ 0 - 5
hook/use-domain/index.ts

@@ -1,5 +0,0 @@
-export const useDomain = () => {
-	const { origin, pathname } = location;
-	const hasSuffix = pathname.match(/\/KasiteWeb\//);
-	return `${origin}${hasSuffix ? '/KasiteWeb' : ''}`;
-};

+ 53 - 6
service/base/index.ts

@@ -4,13 +4,13 @@ import { REQUEST_CONFIG } from '../../config';
 
 /**
  * 跳转授权链接
- * @param {String} 	appid						appid
- * @param {Url}			redirect_uri		授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
- * @param {String} 	response_type		返回类型,请填写code
- * @param {String} 	scope						snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
+ * @param {String} 	hosId							医院ID
+ * @param {String}	wechatConfigKey		公众号授权地址configKey
+ * @param {Url} 		toUrl							授权后重定向的回调链接地址
  */
-export const WebOauth2Authorize = (queryData: any) => {
-	return `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${queryData.appid}&redirect_uri=${queryData.redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;
+export const WebOauthAuthorize = (queryData: any) => {
+	return `${REQUEST_CONFIG.BASE_URL}oauth/100123/${queryData.wechatConfigKey}/login.do?toUrl=${queryData.toUrl}`;
+	// return `https://open.weixin.qq.com/connect/oauth/authorize?appid=${queryData.appid}&redirect_uri=${queryData.redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;
 };
 
 /** 获取系统状态 */
@@ -41,6 +41,17 @@ export const SysAppPageList = async (queryData: any) => {
 	return handle.catchPromise(resp, () => resp);
 };
 
+/** 查询院内就诊卡信息 */
+export const QueryMemberCardList_V3 = async (queryData: any) => {
+	const resp = handle.promistHandleNew(
+		await request.doPost(
+			`${REQUEST_CONFIG.BASE_URL}wsgw/accountMember/api/QueryMemberCardList_V3/callApiJSON.do`,
+			queryData
+		)
+	);
+	return handle.catchPromiseNew(resp, () => resp);
+};
+
 /** 查询就诊人信息 */
 export const QueryBaseMemberList_V3 = async (queryData: any) => {
 	const resp = handle.promistHandleNew(
@@ -79,3 +90,39 @@ export const SysclientappmenuList = async (queryData: any) => {
 	);
 	return handle.catchPromise(resp, () => resp);
 };
+
+/** 获取缓存信息 */
+export const CacheGetValue = async (queryData: any) => {
+	const resp = handle.promistHandle(
+		await request.doPost(
+			`${REQUEST_CONFIG.BASE_URL}wsgw/sysweb/cache/GetValue/callApiJSON.do`,
+			queryData,
+			{
+				showLoading: false,
+			}
+		)
+	);
+	return handle.catchPromise(resp, () => resp);
+};
+
+/** HCRM-我的随访-获取房间ID */
+export const GetRoomId = async (queryData: any) => {
+	const resp = handle.promistHandleNew(
+		await request.doPost(
+			`${REQUEST_CONFIG.BASE_URL}wsgw/fuchat/base/GetRoomId/callApiJSON.do`,
+			queryData
+		)
+	);
+	return handle.catchPromiseNew(resp, () => resp);
+};
+
+/** HCRM-我的随访-获取会话列表 */
+export const GetMemberChatList = async (queryData: any) => {
+	const resp = handle.promistHandleNew(
+		await request.doPost(
+			`${REQUEST_CONFIG.BASE_URL}wsgw/fuchat/base/GetMemberChatList/callApiJSON.do`,
+			queryData
+		)
+	);
+	return handle.catchPromiseNew(resp, () => resp);
+};

+ 2 - 0
service/request.ts

@@ -1,6 +1,7 @@
 import { common } from '../utils';
 import { useSmallProgramLogin } from '../hook';
 import store from '../store';
+import { REQUEST_CONFIG } from '../config';
 let _app;
 
 /**
@@ -125,6 +126,7 @@ const doPost = async (url: string, data: any, options: any = {}, complete = unde
 		// 防止页面并发调用登录接口
 		uni.setStorageSync('isCall', 1);
 		uni.setStorageSync('data_expiration', 0);
+		console.log("login timeout")
 		// 获取登录失败轮询次数,,默认5次
 		let retry = getApp().globalData.retryNum;
 		while (retry > 0) {

+ 1 - 0
store/global.ts

@@ -41,6 +41,7 @@ export default {
 	mutations: {
 		/** 设置token */
 		setToken: (state: any, token: string) => {
+			uni.setStorageSync('token', token);
 			state.token = token;
 		},
 		/** 设置openId */

+ 76 - 1
utils/common.ts

@@ -79,6 +79,25 @@ export const isEmpty = function (obj) {
 export const isNotEmpty = function (obj) {
 	return !isEmpty(obj);
 };
+/** 判断是否为JSON */
+export const isJSON = function (str) {
+/** JSON.stringify */
+	if (typeof str == 'string') {
+		try {
+			var obj = JSON.parse(str);
+			if (typeof obj == 'object' && obj) {
+				return true;
+			} else {
+				return false;
+			}
+		} catch (e) {
+			return false;
+		}
+	}
+};
+export const stringify = function (str) {
+	return escape(JSON.stringify(str));
+};
 /** des加密 */
 export const desEncrypt = function (message, key) {
 	let keyHex = CryptoJS.enc.Utf8.parse(key);
@@ -125,7 +144,7 @@ export const turnToMap = (list) => {
   )
  * @param {string} data 
  */
-export const goToUrl = function (toUrl, data = { skipWay: 'navigateTo', data: '' }) {
+export const goToUrl = function (toUrl, data: any = { skipWay: 'navigateTo', data: '' }) {
 	var menu = [];
 	let num = toUrl.indexOf('?') || 0; // 参数下标
 	let key = toUrl.substr(num == -1 ? toUrl.length : num, toUrl.length); // 获取地址带参
@@ -174,6 +193,22 @@ export const goToUrl = function (toUrl, data = { skipWay: 'navigateTo', data: ''
 		},
 	});
 };
+/** 返回上delta级,并修改上delta级页面数据,默认会调用refresh方法刷新页面数据 */
+export const navigateBack = function (delta, key = '', value = '') {
+	let pages = getCurrentPages();
+	let goPage = pages[pages.length - (delta + 1)] as any;
+	if (isNotEmpty(key)) {
+		// goPage.setData({
+		// 	[key]: value,
+		// });
+	}
+	uni.navigateBack({
+		delta: delta,
+	});
+	// if (typeof goPage.refresh == 'function') {
+	// 	goPage.refresh();
+	// }
+};
 /** 日期格式化 */
 export const dateFormat = function (date) {
 	const weekArr = ['日', '一', '二', '三', '四', '五', '六'];
@@ -202,3 +237,43 @@ export const formatNumber = function (n) {
 	n = n.toString();
 	return n[1] ? n : '0' + n;
 };
+/** 对象合并 忽略未定义的值 */
+export const mergeObject = function (A, B) {
+	let res = {};
+	Object.keys({ ...A, ...B }).map((key) => {
+		res[key] = B[key] || A[key];
+	});
+	return res;
+};
+/** 根据经纬度计算距离,单位 :千米 */
+export const getDistance = function (la1, lo1, la2, lo2) {
+	var La1 = (la1 * Math.PI) / 180.0;
+	var La2 = (la2 * Math.PI) / 180.0;
+	var La3 = La1 - La2;
+	var Lb3 = (lo1 * Math.PI) / 180.0 - (lo2 * Math.PI) / 180.0;
+	var s: any =
+		2 *
+		Math.asin(
+			Math.sqrt(
+				Math.pow(Math.sin(La3 / 2), 2) +
+					Math.cos(La1) * Math.cos(La2) * Math.pow(Math.sin(Lb3 / 2), 2)
+			)
+		);
+	s = s * 6378.137; //地球半径
+	s = Math.round(s * 10000) / 10000;
+	s = s.toFixed(2);
+	return s;
+};
+/** 休眠 */
+export const sleep = (val = 100) => {
+	try {
+		val = Number(val);
+		return new Promise((resolve) => {
+			let timer = setTimeout(() => {
+				resolve(true);
+				clearTimeout(timer);
+				timer = null;
+			}, val);
+		});
+	} catch (error) {}
+};