utils.ts 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. import { queryGetDivisions } from "./api/common/index";
  2. import { getTaAccounts } from './api/account/index';
  3. import { v4 } from "../utils/uuid/index";
  4. import { IMessageHead } from './../services/socket/trade/protobuf/proto';
  5. import Toast from "../miniprogram_npm/@vant/weapp/toast/toast";
  6. import { Mode } from "fs";
  7. /// 获取履约步骤类型ID
  8. export function getSteptype(typeid: number): string {
  9. switch (typeid) {
  10. case 1:
  11. return '买方支付'
  12. break;
  13. case 2:
  14. return '卖方收款'
  15. break;
  16. case 3:
  17. return '买方自提'
  18. break;
  19. case 4:
  20. return '卖方发货'
  21. break;
  22. case 5:
  23. return '买方确认货'
  24. break;
  25. case 6:
  26. return '卖方发票'
  27. break;
  28. case 7:
  29. return '买方确认票'
  30. break;
  31. case 8:
  32. return '卖仓单转移'
  33. break;
  34. case 9:
  35. return '释放卖方冻结'
  36. break;
  37. case 10:
  38. return '货款溢短'
  39. break;
  40. case 11:
  41. return '生成合同[中江]'
  42. break;
  43. case 12:
  44. return '运费'
  45. break;
  46. case 90:
  47. return '确认支付'
  48. break;
  49. case 91:
  50. return '确认放行'
  51. break;
  52. default:
  53. return '买方支付(直接扣款)'
  54. break;
  55. }
  56. }
  57. /// 获取履约步骤类型ID
  58. export function getStepStatus(stepstatus: number): string {
  59. switch (stepstatus) {
  60. case 1:
  61. return '待开始'
  62. break;
  63. case 2:
  64. return '进行中'
  65. break;
  66. case 3:
  67. return '已完成'
  68. break;
  69. case 4:
  70. return '延期(进行中)'
  71. break;
  72. case 5:
  73. return '失败'
  74. break;
  75. case 6:
  76. return '自动完成'
  77. break;
  78. default:
  79. return '超时关闭'
  80. break;
  81. }
  82. }
  83. /// 获取履约状态
  84. export function getPerformancestatus(status: number): string {
  85. switch (status) {
  86. case 1:
  87. return '待激活'
  88. break;
  89. case 2:
  90. return '正常'
  91. break;
  92. case 3:
  93. return '处理错误'
  94. break;
  95. case 4:
  96. return '违约待处理'
  97. break;
  98. case 5:
  99. return '违约处理中'
  100. break;
  101. case 6:
  102. return '完成'
  103. break;
  104. case 7:
  105. return '违约已完成'
  106. break;
  107. case 8:
  108. return '释放冻结失败 '
  109. break;
  110. case 9:
  111. return '超时待处理'
  112. break;
  113. default:
  114. return '超时关闭'
  115. break;
  116. }
  117. }
  118. /// 获取地区区域信息
  119. export function getDivisions() {
  120. /// 发送请求
  121. queryGetDivisions({
  122. enableAuthorization: false,
  123. success: (res) => {
  124. /// 数据缓存
  125. setDivisions(res.data)
  126. },
  127. fail: () => {
  128. Toast('地区信息获取失败')
  129. }
  130. })
  131. }
  132. /// 获取资金账户信息
  133. export function taAccounts() {
  134. /// 发送请求
  135. getTaAccounts({
  136. data: {
  137. loginID: loginid()
  138. },
  139. success: (res) => {
  140. /// 数据缓存
  141. wx.setStorageSync('GetTaAccounts', res.data)
  142. wx.setStorageSync('AccountID', res.data[0].accountid)
  143. },
  144. fail: () => {
  145. Toast('资金账户信息获取失败')
  146. }
  147. })
  148. }
  149. /// 获取当前对应的资金账户
  150. export function taAccount(accountid: number): GuangZuan.TaAccount {
  151. const tas = <GuangZuan.TaAccount[]>wx.getStorageSync('GetTaAccounts')
  152. return tas.filter(obj => {
  153. return obj.accountid === accountid
  154. })[0]
  155. }
  156. /// 获取登录Loginid
  157. export function loginid() {
  158. return wx.getStorageSync('LoginID')
  159. }
  160. /// 获取用户userid
  161. export function userid() {
  162. return wx.getStorageSync('UserId')
  163. }
  164. /// 获取资金用户ID
  165. export function accountid(): number {
  166. return wx.getStorageSync('AccountID') ?? 0
  167. }
  168. /// 获取用户Token
  169. export function xtoken() {
  170. return wx.getStorageSync('Authorization')
  171. }
  172. /// 获取市场id
  173. export function marketid() {
  174. return wx.getStorageSync('MarketID')
  175. }
  176. export function marketID(mode: number) {
  177. return loginQuery().markets.filter(obj => { return obj.trademode === mode})[0].marketid
  178. }
  179. /// 是否加密
  180. export function isEncrypted() {
  181. return false
  182. }
  183. /// 存储地区信息
  184. export function setDivisions(datas: GuangZuan.GetDivisions[]) {
  185. wx.setStorageSync('GetDivisions', datas)
  186. }
  187. /// 获取地区信息
  188. export function divisions() {
  189. return wx.getStorageSync('GetDivisions')
  190. }
  191. /// 终端类型
  192. export function clientType() {
  193. return 5
  194. }
  195. /// 返回proto交易头
  196. export function protoHeader(funcode: number, marketID: number = marketid()) {
  197. /// 组合请求头
  198. const header: IMessageHead = {
  199. FunCode: funcode,
  200. AccountID: accountid(),
  201. UserID: userid(),
  202. MarketID: marketID,
  203. UUID: v4()
  204. }
  205. return header
  206. }
  207. /// 获取时间戳
  208. export function timetample() {
  209. return Date.parse(new Date().toString())
  210. }
  211. /// 获取登录查询数据信息
  212. export function loginQuery(): GuangZuan.LoginQuery {
  213. const data = <GuangZuan.LoginQuery>wx.getStorageSync('LoginQuery')
  214. return data
  215. }
  216. /// 获取登录账号
  217. export function loginCode(): string {
  218. const code = (<GuangZuan.LoginQuery>wx.getStorageSync('LoginQuery')).loginAccount.logincode
  219. return code === '' ? loginid() : code
  220. }
  221. /// 存储所有的枚举信息
  222. export function setAllEnums(enums: GuangZuan.AllEnums[]) {
  223. wx.setStorageSync('AllEnums', enums)
  224. }
  225. export function getAllEnums(): GuangZuan.AllEnums[] {
  226. const objs = <[GuangZuan.AllEnums]>wx.getStorageSync('AllEnums')
  227. return objs
  228. }
  229. export function getEnumList(enumdiccode: string): GuangZuan.AllEnums[] {
  230. const objs = getAllEnums().filter(obj => {
  231. return obj.enumdiccode === enumdiccode
  232. })
  233. return objs
  234. }
  235. /// 获取对应枚举的值
  236. export function getEnumdicValue(enumdiccode: string, enumitemname: number): string {
  237. const objs = getEnumList(enumdiccode)
  238. if (objs.length != 0) {
  239. const enums = objs.filter(obj => {
  240. return obj.enumitemname === enumitemname
  241. })
  242. return enums[0].enumdicname
  243. }
  244. return ''
  245. }
  246. /// 缓存所有的错误码信息
  247. export function setAllErrors(errors: GuangZuan.Error[]) {
  248. wx.setStorageSync('AllErrors', errors)
  249. }
  250. export function getAllErrors(): GuangZuan.Error[] {
  251. return <[GuangZuan.Error]>wx.getStorageSync('AllErrors')
  252. }
  253. export function getErrorMsg(retcode: number): string {
  254. const errors = getAllErrors()
  255. return errors.filter(obj => {
  256. return retcode.toString() === obj.errorcode
  257. })[0].description
  258. }
  259. /// 设置登录账号
  260. export function setLoginCode(code: string) {
  261. wx.setStorageSync('loginCode', code)
  262. }
  263. export function getLoginCode(): string {
  264. return wx.getStorageSync('loginCode')
  265. }
  266. /// 设置我的收藏
  267. export function saveMyFavorites(data: String[]) {
  268. wx.setStorageSync('Favorites', data)
  269. }
  270. /// 获取我的收藏
  271. export function getMyFavorites(): String[] {
  272. return <String[]>wx.getStorageSync('Favorites')
  273. }
  274. /// 判断是否为我的收藏
  275. export function isMyFavorite(goodsno: string): boolean {
  276. const objs = getMyFavorites()
  277. return objs.some(obj => { return obj === goodsno })
  278. }
  279. /// 移除我的收藏
  280. export function removeMyFavorite(goodsno: string) {
  281. const objs = getMyFavorites()
  282. /// 移除数据
  283. if (objs.some(obj => { return obj === goodsno })) {
  284. const news = objs.filter(obj => { return obj != goodsno })
  285. /// 更新数据
  286. saveMyFavorites(news)
  287. }
  288. }
  289. /// 添加我的收藏
  290. export function addMyFavotite(goodsno: String) {
  291. var objs = getMyFavorites()
  292. /// 移除数据
  293. if (!(objs.some(obj => { return obj === goodsno }))) {
  294. objs.push(goodsno)
  295. /// 更新数据
  296. saveMyFavorites(objs)
  297. }
  298. }
  299. /// 登录查询
  300. export function saveLoginQuery(data: GuangZuan.LoginQuery) {
  301. /// 数据存储
  302. wx.setStorageSync('LoginQuery', data)
  303. }
  304. /// 存储市场ID
  305. export function saveMarketID(id: number) {
  306. wx.setStorageSync('MarketID', id)
  307. }
  308. /// 默认挂牌大厅为出售
  309. export function saveTradeActive(active: number) {
  310. wx.setStorageSync('trade_active', active)
  311. }
  312. /// getTradeActive
  313. export function getTradeActive() {
  314. return Number(wx.getStorageSync('trade_active'))
  315. }
  316. /// 存储token
  317. export function saveAuthorization(token: string) {
  318. wx.setStorageSync('Authorization', token)
  319. }
  320. /// 存储LoginID
  321. export function saveLoginID(loginId: number) {
  322. wx.setStorageSync('LoginID', loginId)
  323. }
  324. /// 存储UserId
  325. export function saveUserId(userId: number) {
  326. wx.setStorageSync('UserId', userId)
  327. }
  328. /// 存储微信头像
  329. export function saveAvatarUrl(avatarUrl: string) {
  330. wx.setStorageSync('avatarUrl', avatarUrl)
  331. }
  332. /// 获取微信头像
  333. export function getAvatarUrl(): string {
  334. return wx.getStorageSync('avatarUrl')
  335. }
  336. export function setRUserecevieInfo(obj: GuangZuan.UserReceiveInfo) {
  337. wx.setStorageSync('UserReceiveInfo', obj)
  338. }
  339. export function getUserRecevieInfo(): GuangZuan.UserReceiveInfo {
  340. return wx.getStorageSync('UserReceiveInfo')
  341. }
  342. export function deleteUserRecevieInfo() {
  343. const obj = getWrUserReceiptInfo()
  344. if (obj) {
  345. wx.removeStorageSync('UserReceiveInfo')
  346. }
  347. }
  348. export function setWrUserReceiptInfo(obj: GuangZuan.WrUserReceiptInfo) {
  349. wx.setStorageSync('WrUserReceiptInfo', obj)
  350. }
  351. export function getWrUserReceiptInfo(): GuangZuan.WrUserReceiptInfo {
  352. return wx.getStorageSync('WrUserReceiptInfo')
  353. }
  354. export function deleteWrUserReceiptInfo() {
  355. const obj = getWrUserReceiptInfo()
  356. if (obj) {
  357. wx.removeStorageSync('WrUserReceiptInfo')
  358. }
  359. }