您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

transfer-page.vue 9.0KB

1年前
1年前
11 个月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
11 个月前
11 个月前
11 个月前
11 个月前
11 个月前
1年前
1年前
1年前
1年前
11 个月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
11 个月前
11 个月前
11 个月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
11 个月前
11 个月前
11 个月前
11 个月前
1年前
11 个月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <template>
  2. </template>
  3. <script setup lang="ts">
  4. import { reactive } from "vue";
  5. import { onLoad } from "@dcloudio/uni-app";
  6. import {
  7. navTo
  8. } from "@/utils/utils"
  9. import {
  10. orderList,
  11. silentLoginApi,
  12. selectCarInfo,
  13. oneOreTwo
  14. } from "@/utils/network/api.js";
  15. import {
  16. getItem,
  17. StorageKeys,
  18. setItem
  19. } from "@/utils/storage";
  20. import {
  21. request
  22. } from "@/utils/network/request.js";
  23. import {
  24. stringToJson
  25. } from "@/utils/network/encryption";
  26. import { msg } from "@/utils/utils";
  27. import { vehiclePlateColorPai } from "@/datas/vehiclePlateColor.js";
  28. const state = reactive({
  29. type: "",
  30. name: "",
  31. vehicleId: "",
  32. customerId: "",
  33. vehiclePlate: "",
  34. vehiclePlateColor: "",
  35. id: "",
  36. orderId: "",
  37. deptShortName: "",
  38. userType: "",
  39. userIdNum: "",
  40. mobile: ""
  41. });
  42. //type:1用户信息变更,2车辆信息变更3,异常上报,4卡签注销,5挂失,6设备更换,7退货,8解挂 ,
  43. // 9有两个 1个是解除车牌占用 2个ETC设备更换车牌
  44. // 20 设备升级 21增补OBU设备 22卡续期 23欠费补缴 24余额补领 25公务车发行 26补卡额 27解锁卡 28激活 29通行流水 30黑名单查询
  45. // 31发票 32月结单查询
  46. onLoad((options) => {
  47. if (options.params) {
  48. let params = JSON.parse(decodeURIComponent(options.params))
  49. // 登录回来
  50. console.log("options", params)
  51. state.type = params.type
  52. state.name = params.name
  53. state.vehicleId = params.vehicleId
  54. state.deptShortName = params.deptShortName
  55. state.userType = params.userType
  56. state.userIdNum = params.userIdNum
  57. state.mobile = params.mobile
  58. judge()
  59. } else {
  60. // 不需要登录
  61. state.type = options.type
  62. state.name = options.name
  63. state.vehicleId = options.vehicleId
  64. state.deptShortName = options.deptShortName
  65. state.userType = options.userType
  66. state.userIdNum = options.userIdNum
  67. state.mobile = options.mobile
  68. console.log("options", options)
  69. if ((options.userType && state.userIdNum) || (options.userType && state.mobile)) {
  70. // 登录了
  71. silentLogin().then(() => {
  72. judge()
  73. })
  74. } else {
  75. let obj = {
  76. type: state.type,
  77. name: state.name,
  78. vehicleId: state.vehicleId,
  79. deptShortName: state.deptShortName,
  80. userType: state.userType,
  81. userIdNum: state.userIdNum,
  82. mobile: state.mobile,
  83. }
  84. const params = encodeURIComponent(JSON.stringify(obj))
  85. // 没登录情况
  86. uni.navigateTo({
  87. url: `/login/login?back=2&params=${params}`,
  88. })
  89. }
  90. }
  91. })
  92. // 判断哪些需要跳转
  93. const judge = () => {
  94. if (state.type == "9" || state.type == "20" || state.type == "23" || state.type == "25" || state.type == "28" || state.type == "31") {
  95. jump()
  96. } else {
  97. quanCheckActionTrue().then((item : any) => {
  98. console.log("item====", item, item.data.length)
  99. if (item.data.length == 1) {
  100. state.id = item.data[0]['id']
  101. state.orderId = item.data[0]['orderId']
  102. console.log(item)
  103. jump()
  104. } else {
  105. msg('暂无车辆')
  106. setTimeout(() => {
  107. uni.switchTab({
  108. url: "/pages/index/index"
  109. })
  110. }, 1500)
  111. }
  112. })
  113. }
  114. }
  115. const silentLogin = () => {
  116. if (state.userType == "1") {
  117. var data = {
  118. userType: state.userType,
  119. account: state.mobile,
  120. loginSource: getItem("loginSource"),
  121. };
  122. } else {
  123. var data = {
  124. userType: state.userType,
  125. account: state.userIdNum,
  126. loginSource: getItem("loginSource"),
  127. };
  128. }
  129. const options = {
  130. type: 2,
  131. data: data,
  132. method: "POST",
  133. showLoading: true,
  134. };
  135. return new Promise(async (resolve, reject) => {
  136. const res = await request(silentLoginApi, options);
  137. const data = stringToJson(res.bizContent);
  138. setItem("openId", data.openId);
  139. setItem("token", data.accessToken);
  140. resolve(data);
  141. }).catch((error) => {
  142. reject(error);
  143. });
  144. }
  145. const quanCheckActionTrue = () => {
  146. let source = ""
  147. // #ifdef MP-ALIPAY
  148. source = "ALI"
  149. // #endif
  150. // #ifdef MP-WEIXIN
  151. source = "WECHAT"
  152. // #endif
  153. var data = {
  154. opId: getItem(StorageKeys.OpenId),
  155. source: source,
  156. tabIndex: '0',
  157. orderStep: '11',
  158. isValueCard: '',
  159. orderStatus: "1",
  160. isAfter: true,
  161. vehiclePlate: state.vehicleId.split('_')[0],
  162. vehiclePlateColor: state.vehicleId.split('_')[1]
  163. };
  164. const options = {
  165. type: 2,
  166. data: data,
  167. method: "POST",
  168. showLoading: true,
  169. };
  170. return new Promise(async (resolve, reject) => {
  171. const res = await request(orderList, options);
  172. const data = stringToJson(res.bizContent);
  173. resolve(data);
  174. }).catch((error) => {
  175. reject(error);
  176. });
  177. }
  178. const jump = () => {
  179. if (state.type == '4') {
  180. navTo(`/subpackage/after-sale/ETC-log-off/log-off-confirm?id=${state.id}`)
  181. } else if (state.type == "6") {
  182. navTo(`/subpackage/after-sale/replace-equipment/replace-equipment-confirm?id=${state.id}`)
  183. } else if (state.type == "5" || state.type == "8") {
  184. navTo(`/subpackage/after-sale/card-loss-reporting/cardloss-confirm?id=${state.id}`)
  185. } else if (state.type == "9" && state.name == '解除车牌占用') {
  186. navTo('/subpackage/after-sale/rescind-carId/rescind-carId-select')
  187. } else if (state.type == "20") {
  188. queryCarMsg().then((item) => {
  189. console.log("item", item.vehicleManages)
  190. const params = encodeURIComponent(JSON.stringify(item.vehicleManages[0]))
  191. uni.navigateTo({
  192. url: `/subpackage/personal-center/car-details?params=${params}`
  193. })
  194. })
  195. } else if (state.type == "21") {
  196. navTo(`/subpackage/after-sale/additional-equipment/additional-equipment-confirm?id=${state.id}`)
  197. } else if (state.type == "22") {
  198. navTo(`/subpackage/after-sale/card-Renewal/renewal-confirm?id=${state.id}&orderId=${state.orderId}`)
  199. } else if (state.type == "23") {
  200. navTo(`/subpackage/after-sale/arrears/arrears`)
  201. } else if (state.type == "24") {
  202. navTo(`/subpackage/after-sale/refund-order-balance/refund-order-balance?vehicleId=${state.vehicleId}`)
  203. } else if (state.type == "25") {
  204. if (!state.deptShortName) {
  205. navTo("/subpackage/personal-center/query-company-list")
  206. } else {
  207. navTo("/subpackage/personal-center/query-company-list?deptShortName=" + state.deptShortName)
  208. }
  209. } else if (state.type == "26") {
  210. navTo(`/subpackage/orders/flowingWater?vehicleId=${state.vehicleId}`)
  211. } else if (state.type == "27") {
  212. navTo(`/subpackage/after-sale/pin-code-deblocking/pin-code-confirm?id=${state.id}`)
  213. } else if (state.type == "28") {
  214. // queryOneOreTwo().then((data) => {
  215. // // newStatus 0:未激活(首次激活) 1:激活(obu重新激活)
  216. // console.log("data000", data)
  217. // if (data.pass == "on") {
  218. // if (data.newStatus == "0") {
  219. navTo(`/subpackage/personal-center/install-activation-order`)
  220. // } else {
  221. // navTo(`/subpackage/after-sale/activation-once-again/select-car?type=1`)
  222. // }
  223. // }
  224. // })
  225. } else if (state.type == "29") {
  226. navTo(`/subpackage/personal-center/search/select-card?vehicleId=${state.vehicleId}`)
  227. } else if (state.type == "30") {
  228. var vehiclePlate = state.vehicleId.split("_")[0]
  229. var vehiclePlateColor = state.vehicleId.split("_")[1]
  230. navTo(`/subpackage/after-sale/blacklist-query/list?vehiclePlate=${vehiclePlate}&vehiclePlateColor=${vehiclePlateColor}`)
  231. } else if (state.type == "31") {
  232. if (state.name == "服务发票") {
  233. navTo(`/subpackage/orders/invoiceApply/invoice-content?type=1`)
  234. } else {
  235. navTo(`/subpackage/orders/invoiceApply/invoice-content?type=2`)
  236. }
  237. } else if (state.type == "32") {
  238. navTo(`/subpackage/after-sale/month-statement/month-statement-query-list?vehicleId=${state.vehicleId}`)
  239. } else if (state.type == "33") {
  240. var vehiclePlate = state.vehicleId.split("_")[0]
  241. var vehiclePlateColor = state.vehicleId.split("_")[1]
  242. navTo(`/subpackage/after-sale/progress-query/progress-query-business?vehiclePlate=${vehiclePlate}&vehiclePlateColor=${vehiclePlateColor}`)
  243. }
  244. }
  245. // 查询车辆信息
  246. const queryCarMsg = () => {
  247. const options = {
  248. type: 2,
  249. data: {
  250. "openId": getItem('openId'),
  251. "vehicleId": state.vehicleId
  252. },
  253. method: "POST",
  254. showLoading: true,
  255. };
  256. return new Promise(async (resolve, reject) => {
  257. const res = await request(selectCarInfo, options);
  258. const data = stringToJson(res.bizContent);
  259. for (var i = 0; i < data.length; i++) {
  260. for (var j = 0; j < vehiclePlateColorPai.length; j++) {
  261. if (data[i].vehiclePlateColor == vehiclePlateColorPai[j]['id']) {
  262. data[i].color = vehiclePlateColorPai[j]['color']
  263. data[i].showColor = vehiclePlateColorPai[j]['showColor']
  264. }
  265. }
  266. }
  267. resolve(data);
  268. }).catch((error) => {
  269. reject(error);
  270. });
  271. }
  272. // 查询首次激活还是OBU重新激活
  273. // const queryOneOreTwo = () => {
  274. // const options = {
  275. // type: 2,
  276. // data: {
  277. // "source": 'MINI_PROGRAM',
  278. // "vehicleId": state.vehicleId
  279. // },
  280. // method: "POST",
  281. // showLoading: true,
  282. // };
  283. // return new Promise(async (resolve, reject) => {
  284. // const res = await request(oneOreTwo, options);
  285. // const data = stringToJson(res.bizContent);
  286. // console.log("data==", data)
  287. // resolve(data);
  288. // }).catch((error) => {
  289. // reject(error);
  290. // });
  291. // }
  292. </script>
  293. <style scoped>
  294. </style>