| | |
| | | import axios from 'axios' |
| | | import qs from 'qs' |
| | | import {notification } from 'antd' |
| | | import md5 from 'md5' |
| | | import Utils from '@/utils/utils.js' |
| | | import options from '@/store/options.js' |
| | | |
| | | // axios.defaults.baseURL = 'http://qingqiumarket.cn' |
| | | axios.defaults.crossDomain = true |
| | | // axios.defaults.headers.common['token'] = 'token' |
| | | axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' |
| | | axios.defaults.withCredentials = true |
| | | |
| | |
| | | config.method = 'post' |
| | | if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult')) { |
| | | config.data = qs.stringify(config.data) |
| | | } else if (config.url.includes('Upload') || config.url.includes('doupload') || config.url.includes('dopreload')) { |
| | | config.headers = { 'Content-Type': 'multipart/form-data' } |
| | | } else { |
| | | config.headers.token = sessionStorage.getItem('TOKEN') || '' |
| | | // config.headers.token = sessionStorage.getItem('TOKEN') || '' |
| | | config.data = JSON.stringify(config.data) |
| | | } |
| | | |
| | |
| | | |
| | | const setCurrentUrl = () => { |
| | | if (!!(window.history && window.history.pushState)) { |
| | | sessionStorage.clear() |
| | | window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') |
| | | window.location.reload() |
| | | } |
| | | } |
| | | |
| | | window.GLOB.CacheMap = new Map() |
| | | |
| | | axios.interceptors.response.use((response) => { |
| | | if (response.data.ErrCode === 'LoginError') { |
| | |
| | | |
| | | class Api { |
| | | constructor() { |
| | | let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : '' |
| | | if (process.env.NODE_ENV === 'production') { |
| | | axios.defaults.baseURL = document.location.origin + '/' + service |
| | | axios.defaults.baseURL = document.location.origin + '/' + window.GLOB.service |
| | | } else { |
| | | // axios.defaults.baseURL = 'http://127.0.0.1:8888' |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description 系统授权 |
| | | */ |
| | | systemauth (appId, timestamp) { |
| | | return axios({ |
| | | url: '/webapi/dostar', |
| | | data: { |
| | | rduri: 'http://minkesoft.com/mksepc/webapi/dostar', |
| | | func: 'sEmpowerCloud_Get_LinkUrl', |
| | | userid: '', |
| | | AppID: appId, |
| | | TimeStamp: timestamp |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 登录系统 |
| | | * @description 使用dostar接口,跳过验证 |
| | | * @param {Object} param 查询及提交参数 |
| | | */ |
| | | loginsystem (username, password) { |
| | | dostarInterface (param) { |
| | | param.userid = '' |
| | | |
| | | return axios({ |
| | | url: '/zh-CN/Home/LoginAndRedirect', |
| | | data: { |
| | | Username: username, |
| | | Password: password |
| | | } |
| | | url: '/webapi/dostar', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 登录系统, 获取用户信息 |
| | | */ |
| | | getusermsg (username, password) { |
| | | return axios({ |
| | | url: 'webapi/getjsonresult', |
| | | data: { |
| | | DBT: 'proc', |
| | | DBS: 'webapi_login', |
| | | DBP: JSON.stringify({ 'UserName': username, 'Password': password }) |
| | | getusermsg (username, password, isCloud = false) { |
| | | let param = { |
| | | // func: 'webapi_login', |
| | | UserName: username, |
| | | Password: password, |
| | | systemType: options.sysType, |
| | | Type: 'X' |
| | | } |
| | | |
| | | param.Password = Utils.formatOptions(param.Password) |
| | | param.appkey = window.GLOB.appkey || '' |
| | | |
| | | if (isCloud) { |
| | | param.debug = 'Y' |
| | | if (options.cloudServiceApi) { |
| | | param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 重置密码 |
| | | */ |
| | | resetpassword (originpwd, newpwd) { |
| | | } else if (!isCloud && window.GLOB.mainSystemApi) { |
| | | param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') |
| | | } |
| | | |
| | | return axios({ |
| | | url: '/local/dostar', |
| | | data: { |
| | | func: 'ResetPassword', |
| | | userid: sessionStorage.getItem('UserID'), |
| | | OriginPwd: originpwd, |
| | | NewPwd: newpwd |
| | | } |
| | | url: '/webapi/dologon', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取系统配置,增加appkey |
| | | * @description 获取或修改云端配置 |
| | | */ |
| | | getCloudConfig (param) { |
| | | param.lang = localStorage.getItem('lang') || '' |
| | | param.appkey = window.GLOB.appkey || '' |
| | | |
| | | if (sessionStorage.getItem('CloudUserID') && options.cloudServiceApi) { // 存在云端登录信息,且存在云端地址 |
| | | param.rduri = options.cloudServiceApi |
| | | param.userid = sessionStorage.getItem('CloudUserID') |
| | | param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' |
| | | } else if (window.GLOB.mainSystemApi) { |
| | | param.rduri = window.GLOB.mainSystemApi |
| | | param.userid = sessionStorage.getItem('UserID') |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | } else { |
| | | param.userid = sessionStorage.getItem('UserID') |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | } |
| | | |
| | | param.nonc = Utils.getuuid() |
| | | |
| | | let keys = Object.keys(param).sort() |
| | | let values = '' |
| | | keys.forEach(key => { |
| | | if (key === 'rduri' || key === 't') return |
| | | if (typeof(param[key]) === 'object') { |
| | | values += key + JSON.stringify(param[key]) |
| | | } else { |
| | | values += key + param[key] |
| | | } |
| | | }) |
| | | param.sign = md5(values) |
| | | param.t = new Date().getTime() |
| | | |
| | | return axios({ |
| | | url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取或修改系统配置,增加appkey |
| | | */ |
| | | getSystemConfig (param) { |
| | | param.userid = sessionStorage.getItem('UserID') |
| | |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | param.appkey = window.GLOB.appkey || '' |
| | | if (window.GLOB.mainSystemApi) { |
| | | |
| | | if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 编辑状态,且存在云端地址 |
| | | param.rduri = options.cloudServiceApi |
| | | param.userid = sessionStorage.getItem('CloudUserID') |
| | | param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' |
| | | } else if (window.GLOB.mainSystemApi) { |
| | | param.rduri = window.GLOB.mainSystemApi |
| | | } |
| | | |
| | | param.nonc = Utils.getuuid() |
| | | |
| | | let keys = Object.keys(param).sort() |
| | | let values = '' |
| | | keys.forEach(key => { |
| | | if (key === 'rduri' || key === 't') return |
| | | if (typeof(param[key]) === 'object') { |
| | | values += key + JSON.stringify(param[key]) |
| | | } else { |
| | | values += key + param[key] |
| | | } |
| | | }) |
| | | param.sign = md5(values) |
| | | param.t = new Date().getTime() |
| | | |
| | | return axios({ |
| | | url: '/webapi/dostar', |
| | | url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取或修改本地配置,增加appkey |
| | | */ |
| | | getLocalConfig (param) { |
| | | param.userid = sessionStorage.getItem('UserID') |
| | | param.lang = localStorage.getItem('lang') || '' |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | param.appkey = window.GLOB.appkey || '' |
| | | |
| | | param.nonc = Utils.getuuid() |
| | | |
| | | let keys = Object.keys(param).sort() |
| | | let values = '' |
| | | keys.forEach(key => { |
| | | if (key === 'rduri' || key === 't') return |
| | | if (typeof(param[key]) === 'object') { |
| | | values += key + JSON.stringify(param[key]) |
| | | } else { |
| | | values += key + param[key] |
| | | } |
| | | }) |
| | | param.sign = md5(values) |
| | | param.t = new Date().getTime() |
| | | |
| | | return axios({ |
| | | url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取系统配置,优先从缓存中取值,增加appkey |
| | | * @param {Object} param 请求参数 |
| | | * @param {Boolean} SSO 是否为单点登录地址 |
| | | */ |
| | | getSystemCacheConfig (param, SSO = true) { |
| | | param.userid = sessionStorage.getItem('UserID') || '' |
| | | param.lang = localStorage.getItem('lang') || '' |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | param.appkey = window.GLOB.appkey || '' |
| | | |
| | | if (sessionStorage.getItem('isEditState') === 'true' && SSO) { // 编辑状态,单点登录服务器为云端 |
| | | if (options.cloudServiceApi) { // 存在云端地址时,使用云端系统参数 |
| | | param.rduri = options.cloudServiceApi |
| | | param.userid = sessionStorage.getItem('CloudUserID') || '' |
| | | param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' |
| | | } |
| | | } else if (window.GLOB.mainSystemApi && SSO) { |
| | | param.rduri = window.GLOB.mainSystemApi |
| | | } |
| | | |
| | | let _param = JSON.parse(JSON.stringify(param)) // 缓存校验,去除时间和加密字符 |
| | | delete _param.timestamp |
| | | delete _param.secretkey |
| | | _param = JSON.stringify(_param) |
| | | _param = md5(_param) |
| | | |
| | | if (window.GLOB.CacheMap.has(_param)) { |
| | | return Promise.resolve(window.GLOB.CacheMap.get(_param)) |
| | | } else { |
| | | param.nonc = Utils.getuuid() |
| | | |
| | | let keys = Object.keys(param).sort() |
| | | let values = '' |
| | | keys.forEach(key => { |
| | | if (key === 'rduri' || key === 't') return |
| | | if (typeof(param[key]) === 'object') { |
| | | values += key + JSON.stringify(param[key]) |
| | | } else { |
| | | values += key + param[key] |
| | | } |
| | | }) |
| | | param.sign = md5(values) |
| | | param.t = new Date().getTime() |
| | | |
| | | return new Promise(resolve => { |
| | | axios({ |
| | | url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, |
| | | data: param |
| | | }).then(res => { |
| | | if (res.status) { |
| | | window.GLOB.CacheMap.set(_param, res) |
| | | } |
| | | resolve(res) |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | param.appkey = window.GLOB.appkey || '' |
| | | |
| | | if (sessionStorage.getItem('isEditState') === 'true') { // HS下菜单 |
| | | param.userid = sessionStorage.getItem('CloudUserID') |
| | | param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' |
| | | } |
| | | |
| | | param.nonc = Utils.getuuid() |
| | | |
| | | let keys = Object.keys(param).sort() |
| | | let values = '' |
| | | keys.forEach(key => { |
| | | if (key === 'rduri' || key === 't') return |
| | | if (typeof(param[key]) === 'object') { |
| | | values += key + JSON.stringify(param[key]) |
| | | } else { |
| | | values += key + param[key] |
| | | } |
| | | }) |
| | | param.sign = md5(values) |
| | | param.t = new Date().getTime() |
| | | |
| | | return axios({ |
| | | url: '/webapi/dostar', |
| | | url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取页面配置信息 |
| | | * @param {String} MenuNo 页面菜单参数 |
| | | * @description 导出Excel |
| | | */ |
| | | getMainConfigsData (MenuNo) { |
| | | return axios({ |
| | | url: '/local/dostar', |
| | | data: { |
| | | func: 'GetMainConfigs', |
| | | userid: sessionStorage.getItem('UserID'), |
| | | MenuNo: MenuNo |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取页面列表数据 |
| | | * @param {String} MenuNo 页面菜单参数 |
| | | */ |
| | | getMainTableData (MenuNo, pageIndex = 1, pageSize = 10, orderColumn = '', orderType = '', search) { |
| | | return axios({ |
| | | url: '/local/dostar', |
| | | data: { |
| | | func: 'GetMainData', |
| | | userid: sessionStorage.getItem('UserID'), |
| | | MenuNo: MenuNo, |
| | | PageIndex: pageIndex, |
| | | PageSize: pageSize, |
| | | orderColumn: orderColumn, |
| | | orderType: orderType, |
| | | search: search |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取页面配置信息 |
| | | * @param {String} MenuNo 页面菜单参数 |
| | | */ |
| | | getModelFormData (MenuNo) { |
| | | return axios({ |
| | | url: '/local/dostar', |
| | | data: { |
| | | func: 'getModelFormData', |
| | | userid: sessionStorage.getItem('UserID'), |
| | | MenuNo: MenuNo |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取页面列表数据 |
| | | * @param {String} param 提交参数 |
| | | */ |
| | | setActionSubmit (param) { |
| | | getExcelOut (param, name) { |
| | | param.userid = sessionStorage.getItem('UserID') |
| | | param.lang = localStorage.getItem('lang') || '' |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | param.appkey = window.GLOB.appkey || '' |
| | | |
| | | return new Promise(resolve => { |
| | | axios({ |
| | | url: '/webapi/doexcel', |
| | | responseType: 'blob', |
| | | data: param |
| | | }).then(res => { |
| | | |
| | | try { |
| | | const blob = new Blob([res]) |
| | | |
| | | if (res.type === 'application/json') { |
| | | const reader = new FileReader() |
| | | reader.onload = e => resolve(JSON.parse(e.target.result)) |
| | | reader.readAsText(blob) |
| | | } else { |
| | | if ('download' in document.createElement('a')) { // 非IE下载 |
| | | const elink = document.createElement('a') |
| | | elink.download = name |
| | | elink.style.display = 'none' |
| | | elink.href = URL.createObjectURL(blob) |
| | | document.body.appendChild(elink) |
| | | elink.click() |
| | | URL.revokeObjectURL(elink.href) // 释放URL 对象 |
| | | document.body.removeChild(elink) |
| | | } else { // IE10+下载 |
| | | navigator.msSaveBlob(blob, name) |
| | | } |
| | | resolve() |
| | | } |
| | | } catch { |
| | | resolve({ |
| | | ErrCode: 'E', |
| | | ErrMesg: '文件解析错误', |
| | | message: '', |
| | | status: false |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 上传base64 |
| | | * @param {String} base64 base64图片编码 |
| | | */ |
| | | fileuploadbase64 (base64, service = 'local') { |
| | | let param = { |
| | | func: '', |
| | | BasePath: 'Content/Upload', |
| | | lang: localStorage.getItem('lang') || '', |
| | | appkey: window.GLOB.appkey || '', |
| | | Base64Img: base64 |
| | | } |
| | | |
| | | if (service === 'sso' && window.GLOB.mainSystemApi) { |
| | | param.rduri = window.GLOB.mainSystemApi |
| | | param.userid = sessionStorage.getItem('UserID') |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | } else if (service === 'cloud' && options.cloudServiceApi) { |
| | | param.rduri = options.cloudServiceApi |
| | | param.userid = sessionStorage.getItem('CloudUserID') |
| | | param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' |
| | | } else { |
| | | param.userid = sessionStorage.getItem('UserID') |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | } |
| | | |
| | | param.nonc = Utils.getuuid() |
| | | |
| | | let keys = Object.keys(param).sort() |
| | | let values = '' |
| | | keys.forEach(key => { |
| | | if (key === 'rduri' || key === 't') return |
| | | if (typeof(param[key]) === 'object') { |
| | | values += key + JSON.stringify(param[key]) |
| | | } else { |
| | | values += key + param[key] |
| | | } |
| | | }) |
| | | param.sign = md5(values) |
| | | param.t = new Date().getTime() |
| | | |
| | | if (param.rduri) { |
| | | param.rduri = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image') |
| | | |
| | | return axios({ |
| | | url: '/webapi/dostars', |
| | | data: param |
| | | }) |
| | | } else { |
| | | return axios({ |
| | | url: '/webapi/SaveBase64Image', |
| | | data: param |
| | | }) |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description 大文件上传 |
| | | */ |
| | | getLargeFileUpload (param) { |
| | | return axios({ |
| | | url: '/local/dostar', |
| | | url: '/webapi/doupload', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 通用接口 |
| | | * @description 查询文件是否已上传 |
| | | */ |
| | | getFilePreUpload (param) { |
| | | return axios({ |
| | | url: '/webapi/dopreload', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取微信支付二维码 |
| | | */ |
| | | getWxNativePay (param) { |
| | | return axios({ |
| | | url: '/wxpay/wxNativePay', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 文件上传 |
| | | */ |
| | | getFileUpload (param) { |
| | | return axios({ |
| | | url: '/zh-CN/Home/Upload', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 通用接口(数据管理) |
| | | * @param {Object} param 查询及提交参数 |
| | | */ |
| | | commonInterface (param) { |
| | |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | param.BID = param.BID || '' |
| | | param.debug = param.debug || '' |
| | | |
| | | return axios({ |
| | | url: '/webapi/dostar', |
| | | data: param |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description 通用接口(提交) |
| | | * @description 通用接口(提交)(数据管理) |
| | | * @param {Object} param 查询及提交参数 |
| | | */ |
| | | submitInterface (param) { |
| | |
| | | param.lang = localStorage.getItem('lang') || '' |
| | | param.SessionUid = sessionStorage.getItem('SessionUid') || '' |
| | | param.LoginUID = sessionStorage.getItem('LoginUID') || '' |
| | | |
| | | return axios({ |
| | | url: '/webapi/dostar', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | | // /** |
| | | // * @description 登出系统 |
| | | // */ |
| | | // logoutsystem () { |
| | | // return axios({ |
| | | // url: '/local/dostar', |
| | | // data: { |
| | | // func: 'logout', |
| | | // userid: sessionStorage.getItem('UserID') |
| | | // } |
| | | // }) |
| | | // } |
| | | } |
| | | |
| | | export default new Api() |