utils.ts 7.6 KB

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