選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

transfer-page.vue 8.1KB

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