定位问题解决
This commit is contained in:
parent
51b2e91bfd
commit
dde90fb97b
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ant-design-pro",
|
||||
"version": "4.5.68",
|
||||
"version": "4.5.71",
|
||||
"private": true,
|
||||
"description": "An out-of-box UI solution for enterprise applications",
|
||||
"scripts": {
|
||||
|
||||
@ -97,7 +97,7 @@ const UserModel: UserModelType = {
|
||||
BEHAVIORRECORD_ROUTNAME: payload?.BEHAVIORRECORD_ROUT === '/' ? '首页' : payload?.BEHAVIORRECORD_ROUTNAME,
|
||||
USER_LOGINIP: basicInfo?.ip ? basicInfo?.ip : '',
|
||||
BEHAVIORRECORD_TYPE: 1000,
|
||||
USER_LOGINPLACE: `${basicInfo?.prov ? basicInfo?.prov : ''}${basicInfo?.prov && basicInfo?.city ? '-' : ''}${basicInfo?.city ? basicInfo?.city : ''}`,
|
||||
USER_LOGINPLACE: `${basicInfo?.prov ? basicInfo?.prov : ''}${basicInfo?.prov && basicInfo?.city ? '-' : ''}${basicInfo?.city ? basicInfo?.city : ''}${basicInfo?.prov && basicInfo?.city && basicInfo?.district ? '-' : ''}${basicInfo?.district ? basicInfo?.district : ''}`,
|
||||
// BrowserVersion: browser || '',
|
||||
// OperatingSystem: systemInfo || '',
|
||||
|
||||
|
||||
@ -431,7 +431,7 @@ const RoleList: React.FC<{ currentUser: CurrentUser | undefined }> = (props) =>
|
||||
BEHAVIORRECORD_TIME: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||
SOURCE_PLATFORM: '驿商云平台',
|
||||
USER_LOGINIP: baseInfo?.ip ? baseInfo?.ip : '',
|
||||
USER_LOGINPLACE: `${baseInfo?.prov ? baseInfo?.prov : ''}${baseInfo?.prov && baseInfo?.city ? '-' : ''}${baseInfo?.city ? baseInfo?.city : ''}`,
|
||||
USER_LOGINPLACE: `${baseInfo?.prov ? baseInfo?.prov : ''}${baseInfo?.prov && baseInfo?.city ? '-' : ''}${baseInfo?.city ? baseInfo?.city : ''}${baseInfo?.prov && baseInfo?.city && baseInfo?.district ? '-' : ''}${baseInfo?.district ? baseInfo?.district : ''}`,
|
||||
BROWSER_VERSION: browser || '',
|
||||
OPERATING_SYSTEM: systemInfo || '',
|
||||
})
|
||||
|
||||
@ -285,7 +285,7 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
||||
BEHAVIORRECORD_ROUTNAME: pageType ? '商户管理' : '账号管理',
|
||||
SOURCE_PLATFORM: '驿商云平台',
|
||||
USER_LOGINIP: baseInfo?.ip ? baseInfo?.ip : '',
|
||||
USER_LOGINPLACE: `${baseInfo?.prov ? baseInfo?.prov : ''}${baseInfo?.prov && baseInfo?.city ? '-' : ''}${baseInfo?.city ? baseInfo?.city : ''}`,
|
||||
USER_LOGINPLACE: `${baseInfo?.prov ? baseInfo?.prov : ''}${baseInfo?.prov && baseInfo?.city ? '-' : ''}${baseInfo?.city ? baseInfo?.city : ''}${baseInfo?.prov && baseInfo?.city && baseInfo?.district ? '-' : ''}${baseInfo?.district ? baseInfo?.district : ''}`,
|
||||
BROWSER_VERSION: browser || '',
|
||||
OPERATING_SYSTEM: systemInfo || '',
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@ import styles from './index.less';
|
||||
import { line } from '@antv/g2plot';
|
||||
import session from '@/utils/session';
|
||||
import { getLocationByIP, getUserIP } from '@/utils/format';
|
||||
import { handleGetIPDetail } from './service';
|
||||
|
||||
// 可接受的页面参数
|
||||
export type LoginProps = {
|
||||
@ -123,8 +124,12 @@ const Login: React.FC<LoginProps> = (props) => {
|
||||
let IpInfo: any = await getUserIP()
|
||||
console.log('IpInfoIpInfoIpInfoIpInfo', IpInfo);
|
||||
// 用ip 去获取信息
|
||||
let ipDetail: any = await getLocationByIP(IpInfo, 'XrQQuNQRGxap9YH2xmvx3dzuJVkXhTzT')
|
||||
|
||||
// let ipDetail: any = await getLocationByIP(IpInfo, 'XrQQuNQRGxap9YH2xmvx3dzuJVkXhTzT')
|
||||
let ipDetail: any = await handleGetIPDetail({ ip: IpInfo })
|
||||
|
||||
console.log('ipDetailipDetailipDetail', ipDetail);
|
||||
if (ipDetail) {
|
||||
const ipRes: any = {
|
||||
country: ipDetail.country,
|
||||
prov: ipDetail.province,
|
||||
@ -151,6 +156,8 @@ const Login: React.FC<LoginProps> = (props) => {
|
||||
const systemBasin = getOsInfo()
|
||||
session.set('systemBasin', systemBasin);
|
||||
setSystemInfo(systemBasin)
|
||||
}
|
||||
|
||||
}, [])
|
||||
|
||||
function successCallback(position: { coords: { latitude: any; longitude: any; }; }) {
|
||||
@ -292,7 +299,7 @@ const Login: React.FC<LoginProps> = (props) => {
|
||||
handleSubmit({
|
||||
...values,
|
||||
LoginIP: baseInfo?.ip ? baseInfo?.ip : '',
|
||||
LoginPlace: `${baseInfo?.prov ? baseInfo?.prov : ''}${baseInfo?.prov && baseInfo?.city ? '-' : ''}${baseInfo?.city ? baseInfo?.city : ''}`,
|
||||
LoginPlace: `${baseInfo?.prov ? baseInfo?.prov : ''}${baseInfo?.prov && baseInfo?.city ? '-' : ''}${baseInfo?.city ? baseInfo?.city : ''}${baseInfo?.prov && baseInfo?.city && baseInfo?.district ? '-' : ''}${baseInfo?.district ? baseInfo?.district : ''}`,
|
||||
BrowserVersion: browser || '',
|
||||
OperatingSystem: systemInfo || '',
|
||||
});
|
||||
|
||||
16
src/pages/User/login/service.ts
Normal file
16
src/pages/User/login/service.ts
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
import request from '@/utils/requestNewJava'
|
||||
|
||||
export async function handleGetIPDetail(params: any) {
|
||||
|
||||
const data = await request(`/location/ip`, {
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
|
||||
if (data.Result_Code === 500) {
|
||||
return []
|
||||
}
|
||||
|
||||
return data.content.address_detail
|
||||
}
|
||||
@ -1188,7 +1188,14 @@ const EditContract = ({ contractId: id, actionRef, setShowDetail, showDelete, cu
|
||||
|
||||
return options;
|
||||
}}
|
||||
tooltip={'1111'}
|
||||
tooltip={<div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>
|
||||
<div><b>营收回款:</b>商家自收资金,结算周期内向业主打款</div>
|
||||
<div><b>资金返款:</b>业主统一代收,结算时扣除费用后向商家返款</div>
|
||||
<div><b>营收分润:</b>单一业态经营,用户支付后系统自动按比例分账</div>
|
||||
<div><b>组合分润:</b>多业态组合经营,用户支付后系统自动按比例分账</div>
|
||||
<div><b>阶段提成:</b>营业额达标后,整单金额均按达标后的高比例计算</div>
|
||||
<div><b>分段提成:</b>营业额按区间拆分,分段独立计算提成后累加</div>
|
||||
</div>}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={6}>
|
||||
|
||||
@ -667,7 +667,7 @@ export const handleSetPublicLog = (obj: any) => {
|
||||
BUSINESSMAN_NAME: currentUser.BusinessManName,
|
||||
SOURCE_PLATFORM: '驿商云平台',
|
||||
USER_LOGINIP: basicInfo.ip,
|
||||
USER_LOGINPLACE: `${basicInfo.country || ""}${basicInfo.prov || ""}${basicInfo.city || ""}${basicInfo.district || ""}`,
|
||||
USER_LOGINPLACE: `${basicInfo?.prov ? basicInfo?.prov : ''}${basicInfo?.prov && basicInfo?.city ? '-' : ''}${basicInfo?.city ? basicInfo?.city : ''}${basicInfo?.prov && basicInfo?.city && basicInfo?.district ? '-' : ''}${basicInfo?.district ? basicInfo?.district : ''}`,
|
||||
BROWSER_VERSION: browserVersion,
|
||||
OPERATING_SYSTEM: systemBasin
|
||||
}
|
||||
@ -725,7 +725,7 @@ export const handleSetlogSave = async (str?: string) => {
|
||||
BUSINESSMAN_NAME: currentUser?.BUSINESSMAN_NAME,
|
||||
SOURCE_PLATFORM: "出行平台",
|
||||
USER_LOGINIP: basicInfo?.ip,
|
||||
USER_LOGINPLACE: `${basicInfo?.prov}${basicInfo?.city}${basicInfo?.district}`,
|
||||
USER_LOGINPLACE: `${basicInfo?.prov ? basicInfo?.prov : ''}${basicInfo?.prov && basicInfo?.city ? '-' : ''}${basicInfo?.city ? basicInfo?.city : ''}${basicInfo?.prov && basicInfo?.city && basicInfo?.district ? '-' : ''}${basicInfo?.district ? basicInfo?.district : ''}`,
|
||||
BROWSER_VERSION: browserVersion,
|
||||
OPERATING_SYSTEM: systemBasin
|
||||
})
|
||||
|
||||
214
src/utils/requestNewJava.ts
Normal file
214
src/utils/requestNewJava.ts
Normal file
@ -0,0 +1,214 @@
|
||||
/** Request 网络请求工具 更详细的 api 文档: https://github.com/umijs/umi-request */
|
||||
import { extend } from 'umi-request';
|
||||
|
||||
import { notification } from 'antd';
|
||||
|
||||
import Cookies from 'js-cookie';
|
||||
import moment from 'moment';
|
||||
import session from './session';
|
||||
import type { CurrentUser } from '@/models/user';
|
||||
import { SynchroBEHAVIORRECORD } from '@/services/user';
|
||||
|
||||
const codeMessage: Record<number, string> = {
|
||||
200: '服务器成功返回请求的数据。',
|
||||
201: '新建或修改数据成功。',
|
||||
202: '一个请求已经进入后台排队(异步任务)。',
|
||||
204: '删除数据成功。',
|
||||
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
|
||||
401: '用户没有权限(令牌、用户名、密码错误)。',
|
||||
403: '用户得到授权,但是访问是被禁止的。',
|
||||
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
|
||||
406: '请求的格式不可得。',
|
||||
410: '请求的资源被永久删除,且不会再得到的。',
|
||||
422: '当创建一个对象时,发生一个验证错误。',
|
||||
500: '服务器发生错误,请检查服务器。',
|
||||
502: '网关错误。',
|
||||
503: '服务不可用,服务器暂时过载或维护。',
|
||||
504: '网关超时。',
|
||||
};
|
||||
|
||||
/**
|
||||
* @zh-CN 异常处理程序
|
||||
* @en-US Exception handler
|
||||
*/
|
||||
const errorHandler = (error: { response: Response }): Response => {
|
||||
const { response } = error;
|
||||
|
||||
|
||||
if (response && response.status) {
|
||||
const errorText = codeMessage[response.status] || response.statusText;
|
||||
const { status, url } = response;
|
||||
|
||||
notification.error({
|
||||
message: `请求错误 ${status}: ${url}`,
|
||||
description: errorText,
|
||||
});
|
||||
} else if (!response) {
|
||||
notification.error({
|
||||
description: '您的网络异常,无法连接到服务器.',
|
||||
message: '网络异常',
|
||||
});
|
||||
}
|
||||
return response;
|
||||
};
|
||||
/**
|
||||
* @en-US Configure the default parameters for request
|
||||
* @zh-CN 配置request请求时的默认参数
|
||||
*/
|
||||
const request = extend({
|
||||
errorHandler, // default error handling
|
||||
// prefix: '/EShangApiMain',// 开发
|
||||
prefix: 'https://java.es.eshangtech.com:443', // 正式
|
||||
// prefix: 'http://111.229.213.193:18071', // 正式
|
||||
headers: {
|
||||
token: '',
|
||||
ProvinceCode: '',
|
||||
ServerpartCodes: '',
|
||||
// tmp: (new Date()).getTime()
|
||||
}
|
||||
|
||||
// credentials: 'include', // Does the default request bring cookies
|
||||
|
||||
});
|
||||
|
||||
// 存一下进来调用的值
|
||||
// let userbeHaviObj: any = {}
|
||||
|
||||
// request拦截器, 改变url 或 options.
|
||||
request.interceptors.request.use((url, opt: any) => {
|
||||
const options = { ...opt }
|
||||
const currentUser: CurrentUser = session.get('currentUser');
|
||||
// let userbeHaviObj = {
|
||||
// url: url,
|
||||
// options: options,
|
||||
// currentUser: currentUser,
|
||||
// startTime: new Date().getTime()
|
||||
// }
|
||||
// options.userbeHaviObj = userbeHaviObj
|
||||
|
||||
if (currentUser) {
|
||||
if (options.headers) {
|
||||
if (url.indexOf('SynchroSERVERPART') > -1) {
|
||||
options.headers = {
|
||||
...options.headers,
|
||||
PROVINCE_CODE: opt?.data?.PROVINCE_CODE,
|
||||
ProvinceCode: opt?.data?.PROVINCE_CODE,
|
||||
provincecode: opt?.data?.PROVINCE_CODE,
|
||||
token: currentUser.UserToken || '',
|
||||
ServerpartCodes: currentUser.CityAuthority || '',
|
||||
ServerpartShopIds: currentUser.ServerpartShopIds || '',
|
||||
UserPattern: currentUser?.UserPattern || '',
|
||||
|
||||
}
|
||||
} else {
|
||||
options.headers = {
|
||||
...options.headers,
|
||||
token: currentUser.UserToken || '',
|
||||
ProvinceCode: opt?.data?.noProvinceCode ? '' : (currentUser.ProvinceCode || ''),
|
||||
ServerpartCodes: currentUser.CityAuthority || '',
|
||||
ServerpartShopIds: currentUser.ServerpartShopIds || '',
|
||||
UserPattern: currentUser?.UserPattern || '',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (url.indexOf('SynchroSERVERPART') > -1) {
|
||||
options.data = {
|
||||
...options.data,
|
||||
STAFF_ID: currentUser.ID,
|
||||
STAFF_NAME: currentUser.Name,
|
||||
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||
PROVINCE_CODE: opt?.data?.PROVINCE_CODE,
|
||||
}
|
||||
} else {
|
||||
if ((url.indexOf('Synchro') > -1 || url.indexOf('Save') > -1) &&
|
||||
url.indexOf('Picture/SaveImgFile') === -1) {
|
||||
|
||||
// 添加操作人和业主单位信息
|
||||
options.data = {
|
||||
...options.data,
|
||||
STAFF_ID: currentUser.ID,
|
||||
STAFF_NAME: currentUser.Name,
|
||||
OWNERUNIT_ID: options.data.OWNERUNIT_ID || currentUser.OwnerUnitId,
|
||||
OWNERUNIT_NAME: options.data.OWNERUNIT_NAME || currentUser.ProvinceUnit,
|
||||
PROVINCE_CODE: (options.data.PROVINCE_CODE || currentUser.ProvinceCode),
|
||||
|
||||
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss')
|
||||
}
|
||||
if (currentUser?.UserPattern === 2000) {
|
||||
options.data = {
|
||||
...options.data,
|
||||
PROVINCE_CODE: (options.data.PROVINCE_CODE || currentUser.ProvinceCode),
|
||||
BUSINESSMAN_ID: currentUser.BusinessManID,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
// url: url.indexOf('handler_ajax.ashx')>-1 ?`https://user.eshangtech.com${url}`: `http://47.96.233.105/EShangApiMain${url}`,
|
||||
url,// .indexOf('handler_ajax.ashx')>-1 ?`${url}`: `/EShangApiMain${url}`,
|
||||
options,
|
||||
}
|
||||
})
|
||||
request.interceptors.response.use((response, option) => {
|
||||
const nowTmp = moment()
|
||||
Cookies.set('tmp', nowTmp.format())
|
||||
|
||||
// // 加个数组 如果请求地址是数组里面的 那就不调用 记录用户行为了
|
||||
// let specialList = ['/FrameWork/GetFieldEnumByField', "/FrameWork/GetUserModuleList", "/FrameWork/GetFieldEnumTree", '/Logging/GetPassportInfoByToken', '/Logging/UserLogin', 'Dictionary/GetFieEnumList', '/Platform/SynchroBehaviorrecord']
|
||||
// // 判断一下 现在的这次请求 是不是特殊 不需要进行记录的
|
||||
// let isOk: boolean = true
|
||||
|
||||
// let userbeHaviObj = option?.userbeHaviObj || {}
|
||||
|
||||
// specialList.forEach((item: any) => {
|
||||
// if (userbeHaviObj.url.indexOf(item) !== -1) {
|
||||
// isOk = false
|
||||
// }
|
||||
// })
|
||||
|
||||
// if (isOk) {
|
||||
// let nowMenu = session.get("currentMenu")
|
||||
// let endTime = new Date().getTime()
|
||||
// let basicInfo = session.get("basicInfo")
|
||||
// let systemBasin = session.get("systemBasin")
|
||||
// let browserVersion = session.get("browserVersion")
|
||||
|
||||
// const req: any = {
|
||||
// USER_ID: userbeHaviObj.currentUser.ID,
|
||||
// USER_NAME: userbeHaviObj.currentUser.Name,
|
||||
// BEHAVIORRECORD_TYPE: "2000", // 1000 浏览页面 2000 行为记录
|
||||
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://api.eshangtech.com')[1]}`,
|
||||
// BEHAVIORRECORD_TIME: moment(new Date(userbeHaviObj.startTime)).format('YYYY-MM-DD HH:mm:ss'),
|
||||
// BEHAVIORRECORD_ROUT: nowMenu.pathname,
|
||||
// BEHAVIORRECORD_ROUTNAME: nowMenu.name,
|
||||
// BEHAVIORRECORD_LEAVETIME: moment(new Date(endTime)).format('YYYY-MM-DD HH:mm:ss'),
|
||||
// BEHAVIORRECORD_DURATION: (endTime - userbeHaviObj.startTime) / 1000,
|
||||
// OWNERUNIT_ID: userbeHaviObj.currentUser.OwnerUnitId,
|
||||
// OWNERUNIT_NAME: userbeHaviObj.currentUser.OwnerUnitName,
|
||||
// BUSINESSMAN_ID: userbeHaviObj.currentUser.BusinessManID,
|
||||
// BUSINESSMAN_NAME: userbeHaviObj.currentUser.BusinessManName,
|
||||
// SOURCE_PLATFORM: '驿商云平台',
|
||||
// BEHAVIORRECORD_DESC: JSON.stringify(userbeHaviObj.options.params) === '{}' ? userbeHaviObj.url.split('?')[1] : JSON.stringify(userbeHaviObj.options.params), // 入参
|
||||
// USER_LOGINIP: basicInfo.ip,
|
||||
// USER_LOGINPLACE: `${basicInfo.country}${basicInfo.prov}${basicInfo.city}${basicInfo.district}`,
|
||||
// BROWSER_VERSION: browserVersion,
|
||||
// OPERATING_SYSTEM: systemBasin
|
||||
// }
|
||||
// console.log('reqreqreqreqreq', req);
|
||||
// // fetch('https://api.eshangtech.com/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
|
||||
// // method: 'POST',
|
||||
// // headers: {
|
||||
// // 'Content-Type': 'application/json',
|
||||
// // },
|
||||
// // body: JSON.stringify(req),
|
||||
// // })
|
||||
// }
|
||||
return response
|
||||
})
|
||||
export default request;
|
||||
@ -1,4 +1,4 @@
|
||||
// 由 scripts/writeVersion.js 自动生成
|
||||
export const VERSION = "4.5.68";
|
||||
export const GIT_HASH = "d83d384";
|
||||
export const BUILD_TIME = "2025-11-21T09:29:07.216Z";
|
||||
export const VERSION = "4.5.71";
|
||||
export const GIT_HASH = "51b2e91";
|
||||
export const BUILD_TIME = "2025-11-26T02:50:02.357Z";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user