首次完整推送,
V:1.20240808.006
This commit is contained in:
13
apis/ctms/_utils/auth.js
Normal file
13
apis/ctms/_utils/auth.js
Normal file
@ -0,0 +1,13 @@
|
||||
const TokenKey = 'CTMS-CLIENT-Token'
|
||||
|
||||
export function getToken() {
|
||||
return uni.getStorageSync(TokenKey)
|
||||
}
|
||||
|
||||
export function setToken(token) {
|
||||
return uni.setStorageSync(TokenKey, token)
|
||||
}
|
||||
|
||||
export function removeToken() {
|
||||
return uni.removeStorageSync(TokenKey)
|
||||
}
|
55
apis/ctms/_utils/constant.js
Normal file
55
apis/ctms/_utils/constant.js
Normal file
@ -0,0 +1,55 @@
|
||||
//缓存变量的键名
|
||||
const constant = {
|
||||
storageKey: 'ctmsClientStore', //缓存键名,必须有
|
||||
user: 'userinfo', //用户信息
|
||||
|
||||
orderBookForm: {
|
||||
'prefix': 'OrderBookDraft'
|
||||
}, //运单询价草稿
|
||||
orderBookSearch: "OrderBookSearch", //询价订单查询表单
|
||||
orderBookList: {
|
||||
'prefix': "OrderBookList"
|
||||
}, //询价缓存,
|
||||
orderBookDetail: {
|
||||
'prefix': "OrderBookDetail"
|
||||
}, //询价单详情,拼接oid订单ID参数
|
||||
|
||||
orderCreateForm: {
|
||||
'prefix': 'OrderCreateDraft'
|
||||
}, //运单创建草稿
|
||||
orderSearchS: 'OrderSearchSimple', //简单运单查询表单
|
||||
orderSearchA: "OrderSearchAll", //完整运单查询表单
|
||||
orderList: {
|
||||
'prefix': "OrderList"
|
||||
}, //运单缓存,根据页面情况拼接参数;重新查询时应及时更新
|
||||
orderDetail: {
|
||||
'prefix': "OrderDetail"
|
||||
}, //运单详情,拼接oid订单ID参数
|
||||
orderCheck: {
|
||||
'prefix': "OrderCheckInfo"
|
||||
}, //运单详情,拼接oid订单ID参数
|
||||
|
||||
noticeList: {
|
||||
'prefix': "NoticeList"
|
||||
},
|
||||
noticeDetail: {
|
||||
'prefix': "NoticeDetail"
|
||||
},
|
||||
|
||||
newsList: {
|
||||
'prefix': "NewsList"
|
||||
},
|
||||
newsDetail: {
|
||||
'prefix': "NewsDetail"
|
||||
},
|
||||
newsReading: "NewsReading",
|
||||
newsLiked: "NewsLiked",
|
||||
newsViewed: "NewsViewed",
|
||||
|
||||
userLoginForm: "fansLoginForm",
|
||||
userRegForm: "fansRegForm",
|
||||
|
||||
splashShowed: "splashShowed" //已显示过开屏页
|
||||
}
|
||||
|
||||
export default constant
|
10
apis/ctms/_utils/errorCode.json
Normal file
10
apis/ctms/_utils/errorCode.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"0": "没有符合条件的数据",
|
||||
"100": "",
|
||||
"101": "",
|
||||
"401": "认证失败,无法访问系统资源",
|
||||
"403": "当前操作没有权限",
|
||||
"404": "访问资源不存在",
|
||||
"500": "网络服务出错",
|
||||
"default": "系统未知错误,请反馈给管理员"
|
||||
}
|
113
apis/ctms/_utils/request.js
Normal file
113
apis/ctms/_utils/request.js
Normal file
@ -0,0 +1,113 @@
|
||||
import store from '@/store'
|
||||
import config from '@/config/ctms.config.js'
|
||||
import {
|
||||
getToken
|
||||
} from './auth.js'
|
||||
import errorCode from './errorCode.json'
|
||||
|
||||
import utils from '@/utils/common.js'
|
||||
const tansParams = utils.tansParams;
|
||||
|
||||
const timeout = 10000
|
||||
const loginPage = config.loginPage
|
||||
const request = function(param) {
|
||||
utils.debug(param);
|
||||
|
||||
//url每次request请求都需要重新组织
|
||||
let url = config.apiUrl;
|
||||
url = url + config.url_entry + param.url + '.' + config.url_suffix;
|
||||
if (param.force_url) {
|
||||
url = param.force_url;
|
||||
}
|
||||
// get请求映射params参数
|
||||
if (param.params) {
|
||||
url = url + '?' + tansParams(param.params)
|
||||
url = url.slice(0, -1)
|
||||
}
|
||||
// 是否需要设置 token
|
||||
const isToken = (param.headers || {}).isToken === false
|
||||
config.header = param.headers || {} //TODO,未成功使用
|
||||
if (getToken() && !isToken) {
|
||||
config.header['Authorization'] = 'hi-ctms-client ' + getToken()
|
||||
}
|
||||
|
||||
let postdata = param.data || {};
|
||||
postdata.pid = config.pid || 0;
|
||||
|
||||
var user = store.state.user;
|
||||
postdata.uid = user.info.id || 0;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
method: param.method || 'GET',
|
||||
timeout: param.timeout || timeout,
|
||||
url: url,
|
||||
data: postdata,
|
||||
header: config.header,
|
||||
dataType: param.dataType || 'json',
|
||||
success: function(res) {
|
||||
// utils.debug(res);
|
||||
if (res.statusCode === 200) {
|
||||
//请求成功
|
||||
const code = res.data.code || 0
|
||||
//只有0,200这两种状态码可以返回数据,以便下一步操作;其他状态码无法进入到下一步
|
||||
const msg = res.data.msg || errorCode[code] || errorCode['default']
|
||||
switch (code) {
|
||||
default:
|
||||
resolve(false);
|
||||
if (getApp().globalData.config.isDebug) {
|
||||
reject(msg) //调试台显示错误提示
|
||||
}
|
||||
break;
|
||||
case 401:
|
||||
utils.showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录').then(res => {
|
||||
if (res.confirm) {
|
||||
store.dispatch('LogOut').then(res => {
|
||||
uni.reLaunch({
|
||||
url: loginPage
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
reject('无效的会话,或者会话已过期,请重新登录。')
|
||||
break;
|
||||
case 100:
|
||||
case 101:
|
||||
resolve(false);
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: "error"
|
||||
});
|
||||
break;
|
||||
case 0:
|
||||
case 200:
|
||||
resolve(res.data) //返回的只是数据
|
||||
break;
|
||||
}
|
||||
|
||||
} else if (res.statusCode === 500) {
|
||||
reject('500')
|
||||
} else {
|
||||
reject(res.statusCode)
|
||||
}
|
||||
},
|
||||
fail: (error) => {
|
||||
let {
|
||||
errMsg
|
||||
} = error, message = ""
|
||||
if (errMsg == 'request:fail') {
|
||||
message = '云端连接异常'
|
||||
} else if (errMsg == 'Network Error') {
|
||||
message = '后端接口连接异常'
|
||||
} else if (errMsg.includes('timeout')) {
|
||||
message = '系统接口请求超时'
|
||||
} else if (errMsg.includes('Request failed with status code')) {
|
||||
message = '系统接口' + message.substr(message.length - 3) + '异常'
|
||||
}
|
||||
reject(message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export default request
|
95
apis/ctms/_utils/storage.js
Normal file
95
apis/ctms/_utils/storage.js
Normal file
@ -0,0 +1,95 @@
|
||||
import constant from './constant'
|
||||
|
||||
// 存储变量名前缀
|
||||
let storageKey = constant.storageKey;
|
||||
|
||||
const storage = {
|
||||
init: function(key) {
|
||||
if (key === storageKey) {
|
||||
return false;
|
||||
}
|
||||
if (typeof key === 'string') {
|
||||
return key;
|
||||
} else if (typeof key === 'object') {
|
||||
return key['prefix'];
|
||||
}
|
||||
},
|
||||
set: function(key, value, params = null) {
|
||||
var _key = this.init(key);
|
||||
// console.log('比较两个KEY', key, _key)
|
||||
if (!_key) {
|
||||
return;
|
||||
}
|
||||
let tmp = uni.getStorageSync(storageKey)
|
||||
tmp = tmp ? tmp : {}
|
||||
if (_key === key) {
|
||||
tmp[key] = value;
|
||||
} else {
|
||||
tmp[_key] = tmp[_key] || {};
|
||||
if (params === null || params === 'undefined') {
|
||||
//不加params参数,则将该项原有数据全部抹除后写入新value作为对象唯一的一个值
|
||||
//只有在明确设置了为null 或者 undifined才是
|
||||
//注意:已知问题:参数(object的键名)不允许是负数
|
||||
tmp[_key] = {
|
||||
0: value
|
||||
};
|
||||
} else {
|
||||
//添加参数,则为指定覆盖方式,对其他项不产生影响
|
||||
tmp[_key][params] = value;
|
||||
}
|
||||
}
|
||||
|
||||
uni.setStorageSync(storageKey, tmp)
|
||||
},
|
||||
get: function(key, params = null) {
|
||||
var _key = this.init(key);
|
||||
if (!_key) {
|
||||
return false;
|
||||
}
|
||||
let tmp = uni.getStorageSync(storageKey)
|
||||
tmp = tmp ? tmp : {}
|
||||
if (_key === key) {
|
||||
return tmp[key] || "";
|
||||
} else {
|
||||
return (tmp[_key] ? (tmp[_key][params] || "") : "");
|
||||
}
|
||||
},
|
||||
all: function(key) {
|
||||
//获取指定键的全部缓存
|
||||
var _key = this.init(key);
|
||||
if (!_key) {
|
||||
return false;
|
||||
}
|
||||
let tmp = uni.getStorageSync(storageKey)
|
||||
tmp = tmp ? tmp : {}
|
||||
if (_key === key) {
|
||||
return tmp[key] || "";
|
||||
} else {
|
||||
return tmp[_key] || [];
|
||||
}
|
||||
},
|
||||
remove: function(key, params = null) {
|
||||
var _key = this.init(key);
|
||||
if (!_key) {
|
||||
return;
|
||||
}
|
||||
let tmp = uni.getStorageSync(storageKey)
|
||||
tmp = tmp ? tmp : {}
|
||||
if (_key === key) {
|
||||
delete tmp[key];
|
||||
} else {
|
||||
delete tmp[_key][params];
|
||||
}
|
||||
uni.setStorageSync(storageKey, tmp)
|
||||
},
|
||||
clean: function() {
|
||||
uni.removeStorageSync(storageKey)
|
||||
},
|
||||
info: function() {
|
||||
//返回当前缓存情况 https://uniapp.dcloud.net.cn/api/storage/storage.html#getstorageinfo
|
||||
//currentSize 当前占用空间 kb; keys,所有缓存键key
|
||||
return uni.getStorageInfoSync(); //只能获取全部,无法指定key
|
||||
}
|
||||
}
|
||||
|
||||
export default storage
|
113
apis/ctms/_utils/upload.js
Normal file
113
apis/ctms/_utils/upload.js
Normal file
@ -0,0 +1,113 @@
|
||||
import store from '@/store'
|
||||
import config from '@/config/ctms.config.js'
|
||||
import {
|
||||
getToken
|
||||
} from './auth.js'
|
||||
import errorCode from './errorCode.json'
|
||||
|
||||
import utils from '@/utils/common.js'
|
||||
const tansParams = utils.tansParams;
|
||||
|
||||
const timeout = 10000
|
||||
const loginPage = config.loginPage
|
||||
const request = function(param) {
|
||||
utils.debug(param);
|
||||
|
||||
//url每次request请求都需要重新组织
|
||||
let url = config.apiUrl;
|
||||
url = url + config.url_entry + param.url + '.' + config.url_suffix;
|
||||
if (param.force_url) {
|
||||
url = param.force_url;
|
||||
}
|
||||
// get请求映射params参数
|
||||
if (param.params) {
|
||||
url = url + '?' + tansParams(param.params)
|
||||
url = url.slice(0, -1)
|
||||
}
|
||||
// 是否需要设置 token
|
||||
const isToken = (param.headers || {}).isToken === false
|
||||
config.header = param.headers || {} //TODO,未成功使用
|
||||
if (getToken() && !isToken) {
|
||||
config.header['Authorization'] = 'hi-ctms-client ' + getToken()
|
||||
}
|
||||
|
||||
let postdata = param.data || {};
|
||||
postdata.pid = config.pid || 0;
|
||||
|
||||
var user = store.state.user;
|
||||
postdata.uid = user.info.id || 0;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
method: param.method || 'GET',
|
||||
timeout: param.timeout || timeout,
|
||||
url: url,
|
||||
data: postdata,
|
||||
header: config.header,
|
||||
dataType: param.dataType || 'json',
|
||||
success: function(res) {
|
||||
// utils.debug(res);
|
||||
if (res.statusCode === 200) {
|
||||
//请求成功
|
||||
const code = res.data.code || 0
|
||||
//只有0,200这两种状态码可以返回数据,以便下一步操作;其他状态码无法进入到下一步
|
||||
const msg = res.data.msg || errorCode[code] || errorCode['default']
|
||||
switch (code) {
|
||||
default:
|
||||
resolve(false);
|
||||
if (getApp().globalData.config.isDebug) {
|
||||
reject(msg) //调试台显示错误提示
|
||||
}
|
||||
break;
|
||||
case 401:
|
||||
utils.showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录').then(res => {
|
||||
if (res.confirm) {
|
||||
store.dispatch('LogOut').then(res => {
|
||||
uni.reLaunch({
|
||||
url: loginPage
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
reject('无效的会话,或者会话已过期,请重新登录。')
|
||||
break;
|
||||
case 100:
|
||||
case 101:
|
||||
resolve(false);
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: "error"
|
||||
});
|
||||
break;
|
||||
case 0:
|
||||
case 200:
|
||||
resolve(res.data) //返回的只是数据
|
||||
break;
|
||||
}
|
||||
|
||||
} else if (res.statusCode === 500) {
|
||||
reject('500')
|
||||
} else {
|
||||
reject(res.statusCode)
|
||||
}
|
||||
},
|
||||
fail: (error) => {
|
||||
let {
|
||||
errMsg
|
||||
} = error, message = ""
|
||||
if (errMsg == 'request:fail') {
|
||||
message = '云端连接异常'
|
||||
} else if (errMsg == 'Network Error') {
|
||||
message = '后端接口连接异常'
|
||||
} else if (errMsg.includes('timeout')) {
|
||||
message = '系统接口请求超时'
|
||||
} else if (errMsg.includes('Request failed with status code')) {
|
||||
message = '系统接口' + message.substr(message.length - 3) + '异常'
|
||||
}
|
||||
reject(message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export default request
|
Reference in New Issue
Block a user