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

transfer-page.vue 7.3KB

1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  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解锁卡 28激活 29通行流水 30黑名单查询
  45. // 31发票 32月结单查询
  46. onLoad((options) => {
  47. state.type = options.type
  48. state.name = options.name
  49. state.vehicleId = options.vehicleId
  50. state.deptShortName = options.deptShortName
  51. state.userType = options.userType
  52. state.userIdNum = options.userIdNum
  53. state.mobile = options.mobile
  54. console.log("options", options)
  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. setTimeout(() => {
  66. uni.switchTab({
  67. url: "/pages/index/index"
  68. })
  69. }, 1500)
  70. }
  71. })
  72. })
  73. })
  74. const silentLogin = () => {
  75. if (state.userType == "1") {
  76. var data = {
  77. userType: state.userType,
  78. account: state.mobile,
  79. loginSource: getItem("loginSource"),
  80. };
  81. } else {
  82. var data = {
  83. userType: state.userType,
  84. account: state.userIdNum,
  85. loginSource: getItem("loginSource"),
  86. };
  87. }
  88. const options = {
  89. type: 2,
  90. data: data,
  91. method: "POST",
  92. showLoading: true,
  93. };
  94. return new Promise(async (resolve, reject) => {
  95. const res = await request(silentLoginApi, options);
  96. const data = stringToJson(res.bizContent);
  97. resolve(data);
  98. }).catch((error) => {
  99. reject(error);
  100. });
  101. }
  102. const quanCheckActionTrue = () => {
  103. let source = ""
  104. // #ifdef MP-ALIPAY
  105. source = "ALI"
  106. // #endif
  107. // #ifdef MP-WEIXIN
  108. source = "WECHAT"
  109. // #endif
  110. var data = {
  111. opId: getItem(StorageKeys.OpenId),
  112. source: source,
  113. tabIndex: '0',
  114. orderStep: '11',
  115. isValueCard: '',
  116. orderStatus: "1",
  117. isAfter: true,
  118. vehiclePlate: state.vehicleId.split('_')[0],
  119. vehiclePlateColor: state.vehicleId.split('_')[1]
  120. };
  121. const options = {
  122. type: 2,
  123. data: data,
  124. method: "POST",
  125. showLoading: true,
  126. };
  127. return new Promise(async (resolve, reject) => {
  128. const res = await request(orderList, options);
  129. const data = stringToJson(res.bizContent);
  130. resolve(data);
  131. }).catch((error) => {
  132. reject(error);
  133. });
  134. }
  135. const jump = () => {
  136. if (state.type == '4') {
  137. navTo(`/subpackage/after-sale/ETC-log-off/log-off-confirm?id=${state.id}`)
  138. } else if (state.type == "6") {
  139. navTo(`/subpackage/after-sale/replace-equipment/replace-equipment-confirm?id=${state.id}`)
  140. } else if (state.type == "5" || state.type == "8") {
  141. navTo(`/subpackage/after-sale/card-loss-reporting/cardloss-confirm?id=${state.id}`)
  142. } else if (state.type == "9" && state.name == '解除车牌占用') {
  143. navTo('/subpackage/after-sale/rescind-carId/rescind-carId-select')
  144. } else if (state.type == "20") {
  145. uni.switchTab({
  146. url: "/pages/user/user"
  147. })
  148. // searchVehicleInfoQuery().then((item : any) => {
  149. // console.log("====", item.vehicles[0])
  150. // state.customerId = item.vehicles[0]['customerId']
  151. // state.vehiclePlate = item.vehicles[0]['vehiclePlate']
  152. // state.vehiclePlateColor = item.vehicles[0]['vehiclePlateColor']
  153. // isWorkOrder().then((item : any) => {
  154. // console.log("查询是否有工单", item)
  155. // if (item.data) {
  156. // if (item.data[0]['status'] == '0') {
  157. // navTo(`/subpackage/after-sale/equipment-upgrade/upgrade-confirm?id=${state.id}&workId=${item.data[0]['id']}`)
  158. // }
  159. // } else {
  160. // msg('暂无工单')
  161. // }
  162. // })
  163. // })
  164. } else if (state.type == "21") {
  165. navTo(`/subpackage/after-sale/additional-equipment/additional-equipment-confirm?id=${state.id}`)
  166. } else if (state.type == "22") {
  167. navTo(`/subpackage/after-sale/card-Renewal/renewal-confirm?id=${state.id}&orderId=${state.orderId}`)
  168. } else if (state.type == "23") {
  169. navTo(`/subpackage/after-sale/arrears/arrears`)
  170. } else if (state.type == "24") {
  171. navTo(`/subpackage/after-sale/refund-order-balance/refund-order-balance?vehicleId=${state.vehicleId}`)
  172. } else if (state.type == "25") {
  173. if (!state.deptShortName) {
  174. navTo("/subpackage/personal-center/query-company-list")
  175. } else {
  176. navTo("/subpackage/personal-center/query-company-list?deptShortName=" + state.deptShortName)
  177. }
  178. } else if (state.type == "26") {
  179. navTo(`/subpackage/orders/flowingWater?vehicleId=${state.vehicleId}`)
  180. } else if (state.type == "27") {
  181. navTo(`/subpackage/after-sale/pin-code-deblocking/pin-code-confirm?id=${state.id}`)
  182. } else if (state.type == "28") {
  183. navTo(`/subpackage/personal-center/install-activation-order`)
  184. } else if (state.type == "29") {
  185. navTo(`/subpackage/personal-center/search/select-card?vehicleId=${state.vehicleId}`)
  186. } else if (state.type == "30") {
  187. var vehiclePlate = state.vehicleId.split("_")[0]
  188. var vehiclePlateColor = state.vehicleId.split("_")[1]
  189. navTo(`/subpackage/after-sale/blacklist-query/list?vehiclePlate=${vehiclePlate}&vehiclePlateColor=${vehiclePlateColor}`)
  190. } else if (state.type == "31") {
  191. navTo(`/subpackage/orders/invoiceApply/Invoice-mannager`)
  192. } else if (state.type == "32") {
  193. navTo(`/subpackage/after-sale/month-statement/month-statement-query-list?vehicleId=${state.vehicleId}`)
  194. } else if (state.type == "33") {
  195. var vehiclePlate = state.vehicleId.split("_")[0]
  196. var vehiclePlateColor = state.vehicleId.split("_")[1]
  197. navTo(`/subpackage/after-sale/progress-query/progress-query-business?vehiclePlate=${vehiclePlate}&vehiclePlateColor=${vehiclePlateColor}`)
  198. }
  199. }
  200. const searchVehicleInfoQuery = () => {
  201. const options = {
  202. type: 2,
  203. data: {
  204. vehicleId: state.vehicleId
  205. },
  206. method: "POST",
  207. showLoading: true,
  208. };
  209. return new Promise(async (resolve, reject) => {
  210. const res = await request(searchVehicleInfo, options);
  211. const data = stringToJson(res.bizContent);
  212. resolve(data);
  213. }).catch((error) => {
  214. reject(error);
  215. });
  216. }
  217. const isWorkOrder = () => {
  218. var data = {
  219. vehiclePlate: state.vehiclePlate,
  220. vehiclePlateColor: state.vehiclePlateColor,
  221. customerId: state.customerId,
  222. };
  223. const options = {
  224. type: 2,
  225. data: data,
  226. method: "POST",
  227. showLoading: true,
  228. };
  229. return new Promise(async (resolve, reject) => {
  230. const res = await request(workOrderList, options);
  231. const data = stringToJson(res.bizContent);
  232. resolve(data);
  233. }).catch((error) => {
  234. reject(error);
  235. });
  236. }
  237. </script>
  238. <style scoped>
  239. </style>