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

transfer-page.vue 6.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  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. workOrderList,
  12. userInfoQuery,
  13. searchVehicleInfo,
  14. silentLoginApi
  15. } from "@/utils/network/api.js";
  16. import {
  17. getItem,
  18. StorageKeys,
  19. setItem
  20. } from "@/utils/storage";
  21. import {
  22. request
  23. } from "@/utils/network/request.js";
  24. import {
  25. stringToJson
  26. } from "@/utils/network/encryption";
  27. import { msg } from "@/utils/utils";
  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解锁卡
  45. onLoad((options) => {
  46. state.type = options.type
  47. state.name = options.name
  48. state.vehicleId = options.vehicleId
  49. state.deptShortName = options.deptShortName
  50. state.userType = options.userType
  51. state.userIdNum = options.userIdNum
  52. state.mobile = options.mobile
  53. console.log("options", options)
  54. // state.vehicleId = "贵ZXCV32_0"
  55. silentLogin().then(() => {
  56. quanCheckActionTrue().then((item : any) => {
  57. console.log("item====", item, item.data.length)
  58. if (item.data.length == 1) {
  59. state.id = item.data[0]['id']
  60. state.orderId = item.data[0]['orderId']
  61. console.log(item)
  62. jump()
  63. } else {
  64. msg('暂无车辆')
  65. }
  66. })
  67. })
  68. })
  69. const silentLogin = () => {
  70. if (state.userType == "1") {
  71. var data = {
  72. userType: state.userType,
  73. account: state.mobile,
  74. loginSource: getItem("loginSource"),
  75. };
  76. } else {
  77. var data = {
  78. userType: state.userType,
  79. account: state.userIdNum,
  80. loginSource: getItem("loginSource"),
  81. };
  82. }
  83. const options = {
  84. type: 2,
  85. data: data,
  86. method: "POST",
  87. showLoading: true,
  88. };
  89. return new Promise(async (resolve, reject) => {
  90. const res = await request(silentLoginApi, options);
  91. const data = stringToJson(res.bizContent);
  92. resolve(data);
  93. }).catch((error) => {
  94. reject(error);
  95. });
  96. }
  97. const quanCheckActionTrue = () => {
  98. let source = ""
  99. // #ifdef MP-ALIPAY
  100. source = "ALI"
  101. // #endif
  102. // #ifdef MP-WEIXIN
  103. source = "WECHAT"
  104. // #endif
  105. var data = {
  106. opId: getItem(StorageKeys.OpenId),
  107. source: source,
  108. tabIndex: '0',
  109. orderStep: '11',
  110. isValueCard: '',
  111. orderStatus: "1",
  112. isAfter: true,
  113. vehiclePlate: state.vehicleId.split('_')[0],
  114. vehiclePlateColor: state.vehicleId.split('_')[1]
  115. };
  116. const options = {
  117. type: 2,
  118. data: data,
  119. method: "POST",
  120. showLoading: true,
  121. };
  122. return new Promise(async (resolve, reject) => {
  123. const res = await request(orderList, options);
  124. const data = stringToJson(res.bizContent);
  125. resolve(data);
  126. }).catch((error) => {
  127. reject(error);
  128. });
  129. }
  130. const jump = () => {
  131. if (state.type == '4') {
  132. navTo(`/subpackage/after-sale/ETC-log-off/log-off-confirm?id=${state.id}`)
  133. } else if (state.type == "6") {
  134. navTo(`/subpackage/after-sale/replace-equipment/replace-equipment-confirm?id=${state.id}`)
  135. } else if (state.type == "5" || state.type == "8") {
  136. navTo(`/subpackage/after-sale/card-loss-reporting/cardloss-confirm?id=${state.id}`)
  137. } else if (state.type == "9" && state.name == '解除车牌占用') {
  138. navTo('/subpackage/after-sale/card-deactivation-activation/deactivation-activation-confirm')
  139. } else if (state.type == "20") {
  140. searchVehicleInfoQuery().then((item : any) => {
  141. console.log("====", item.vehicles[0])
  142. state.customerId = item.vehicles[0]['customerId']
  143. state.vehiclePlate = item.vehicles[0]['vehiclePlate']
  144. state.vehiclePlateColor = item.vehicles[0]['vehiclePlateColor']
  145. isWorkOrder().then((item : any) => {
  146. console.log("查询是否有工单", item)
  147. if (item.data) {
  148. if (item.data[0]['status'] == '0') {
  149. navTo(`/subpackage/after-sale/equipment-upgrade/upgrade-confirm?id=${state.id}&workId=${item.data[0]['id']}`)
  150. }
  151. } else {
  152. msg('暂无工单')
  153. }
  154. })
  155. })
  156. } else if (state.type == "21") {
  157. navTo(`/subpackage/after-sale/additional-equipment/additional-equipment-confirm?id=${state.id}`)
  158. } else if (state.type == "22") {
  159. navTo(`/subpackage/after-sale/card-Renewal/renewal-confirm?id=${state.id}&orderId=${state.orderId}`)
  160. } else if (state.type == "23") {
  161. navTo(`/subpackage/after-sale/arrears/arrears`)
  162. } else if (state.type == "24") {
  163. navTo(`/subpackage/after-sale/refund-order-balance/refund-order-balance?vehicleId=${state.vehicleId}`)
  164. } else if (state.type == "25") {
  165. if (!state.deptShortName) {
  166. navTo("/subpackage/personal-center/query-company-list")
  167. } else {
  168. navTo("/subpackage/personal-center/query-company-list?deptShortName=" + state.deptShortName)
  169. }
  170. } else if (state.type == "26") {
  171. navTo(`/subpackage/orders/flowingWater?vehicleId=${state.vehicleId}`)
  172. } else if (state.type == "27") {
  173. navTo(`/subpackage/after-sale/pin-code-deblocking/pin-code-confirm?id=${state.id}`)
  174. }
  175. }
  176. const searchVehicleInfoQuery = () => {
  177. const options = {
  178. type: 2,
  179. data: {
  180. vehicleId: state.vehicleId
  181. },
  182. method: "POST",
  183. showLoading: true,
  184. };
  185. return new Promise(async (resolve, reject) => {
  186. const res = await request(searchVehicleInfo, options);
  187. const data = stringToJson(res.bizContent);
  188. resolve(data);
  189. }).catch((error) => {
  190. reject(error);
  191. });
  192. }
  193. const isWorkOrder = () => {
  194. var data = {
  195. vehiclePlate: state.vehiclePlate,
  196. vehiclePlateColor: state.vehiclePlateColor,
  197. customerId: state.customerId,
  198. };
  199. const options = {
  200. type: 2,
  201. data: data,
  202. method: "POST",
  203. showLoading: true,
  204. };
  205. return new Promise(async (resolve, reject) => {
  206. const res = await request(workOrderList, options);
  207. const data = stringToJson(res.bizContent);
  208. resolve(data);
  209. }).catch((error) => {
  210. reject(error);
  211. });
  212. }
  213. </script>
  214. <style scoped>
  215. </style>