Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

vehicle-information.vue 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <view >
  3. <view class="car-item" v-for="(item,index) in state.list">
  4. <image :src="`${$imgUrl}user/icon-car.png`" class="car-pic"></image>
  5. <view class="car-info">
  6. <view class="car-no"><text class="no">{{item.vehiclePlate}}</text><text class="color">{{item.color}}</text></view>
  7. <view class="card-no">卡号:{{item.card_id}}</view>
  8. <view class="card-no">签号:{{item.obu_id}}</view>
  9. </view>
  10. <view class="btn-unbind" @click="del(item.vehicleId)">解除绑定</view>
  11. </view>
  12. </view>
  13. </template>
  14. <script lang="ts" setup>
  15. import { reactive } from "vue";
  16. import {request} from "@/utils/network/request.js";
  17. import {stringToJson} from "@/utils/network/encryption.js";
  18. import { onLoad} from "@dcloudio/uni-app";
  19. import {selectCarInfo,delCarInfo} from "@/utils/network/api.js";
  20. import {getItem} from "@/utils/storage";
  21. import {vehiclePlateColor} from "@/datas/vehiclePlateColor.js";
  22. const state = reactive({
  23. list:''
  24. })
  25. onLoad((option : any) => {
  26. queryCarMsg();
  27. })
  28. const queryCarMsg = () => {
  29. const options = {
  30. type: 2,
  31. data: {
  32. "openId":getItem('openId')
  33. },
  34. method: "POST",
  35. showLoading: true,
  36. };
  37. //调用方式
  38. request(selectCarInfo, options).then((res) => {
  39. const data = stringToJson(res.bizContent).vehicleManages
  40. for(var i=0;i<data.length;i++){
  41. for(var j=0;j<vehiclePlateColor.length;j++){
  42. if(data[i].vehiclePlateColor==vehiclePlateColor[j]['id']){
  43. data[i].color=vehiclePlateColor[j]['color']
  44. }
  45. }
  46. }
  47. console.log("data",data)
  48. state.list=data;
  49. })
  50. .catch((err) => {
  51. });
  52. }
  53. // 删除
  54. const del = (id) => {
  55. wx.showModal({
  56. title: '提示',
  57. content: '是否删除该条车辆信息',
  58. success: function(res) {
  59. if (res.confirm) {
  60. console.log('用户点击确定');
  61. let data = {
  62. vehicleId: id,
  63. openId: getItem('openId')
  64. }
  65. const options = {
  66. type: 2,
  67. data: data,
  68. method: "POST",
  69. showLoading: true,
  70. };
  71. request(delCarInfo, options).then((res) => {
  72. const data = stringToJson(res.bizContent);
  73. console.log(data)
  74. state.list = data.vehicleManages
  75. if (data.info == '成功.') {
  76. uni.showToast({
  77. title: "删除成功",
  78. icon: "none"
  79. })
  80. queryCarMsg();
  81. }
  82. });
  83. } else if (res.cancel) {
  84. console.log('用户点击取消');
  85. }
  86. }
  87. });
  88. }
  89. </script>
  90. <style scoped>
  91. .car-item {
  92. display: flex;
  93. align-items: center;
  94. padding: 36rpx 0;
  95. width: 95%;
  96. margin:0 auto;
  97. background:#f6f6f6;
  98. border-radius: 16rpx;
  99. padding: 20rpx;
  100. box-sizing: border-box;
  101. margin-top:30rpx;
  102. }
  103. .car-item .btn-unbind {
  104. border: 1px solid #00B38B;
  105. border-radius: 30rpx;
  106. height: 60rpx;
  107. box-sizing: border-box;
  108. line-height: 60rpx;
  109. font-size: 24rpx;
  110. padding: 0 20rpx;
  111. background: rgba(0, 179, 139, .1);
  112. color: #00B38B;
  113. }
  114. .car-pic {
  115. width: 120rpx;
  116. height: 120rpx;
  117. margin-right: 12rpx;
  118. }
  119. .car-info {
  120. display: flex;
  121. flex-direction: column;
  122. flex: 1;
  123. color: #999;
  124. font-size: 22rpx;
  125. }
  126. .car-no {
  127. font-size: 30rpx;
  128. color: #333;
  129. }
  130. .card-no {
  131. margin-top: 14rpx;
  132. }
  133. </style>