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

transfer-page.vue 8.4KB

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