myCars.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <view>
  3. <view class="header">
  4. <view class="header-title">我的车辆</view>
  5. </view>
  6. <view class="wrap">
  7. <view class="statistics">
  8. <view class="statistics-title">车辆</view>
  9. <view class="statistics-center"></view>
  10. <view class="statistics-number-wrap"><span class="number">{{mycarsTotal}}</span>辆</view>
  11. </view>
  12. <view class="new-plate-number">
  13. <view class="message-input-wrap" @click="messageInputClick">
  14. <u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true" v-model="newPlateNumber"></u-message-input>
  15. </view>
  16. <u-keyboard ref="uKeyboard" mode="car" @change="keyboardChange" @backspace="backspace" v-model="keyboardshow"></u-keyboard>
  17. </view>
  18. <view class="add-car-btn" @click="handleAddCar">添加车辆</view>
  19. <view class="mycars">
  20. <view class="mycars-item" v-for="item in mycars">
  21. <view class="mycars-item-name">{{item.vehicleNo}}</view>
  22. <view class="mycars-item-type">{{item.energyTpye | energyTpye}}</view>
  23. <view class="mycars-item-tool">
  24. <span class="default" :class="{'isDefault':item.isDefault == 1}" @click="handlesetDefault(item.id)">默认</span>
  25. <span @click="handleDelCar(item.id,item.vehicleNo)">删除</span>
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. <u-toast ref="uToast" />
  31. <u-modal v-model="delCarshow" :show-cancel-button="true" @confirm="confirmDelCar" :content="delCarContent"></u-modal>
  32. </view>
  33. </template>
  34. <script>
  35. export default{
  36. data(){
  37. return{
  38. keyboardshow:false,
  39. delCarshow:false,
  40. delCarId:null,
  41. delCarContent:'',
  42. newPlateNumber:'贵AF113Z',
  43. vehicleColor:0,
  44. mycars:[],
  45. mycarsTotal:0,
  46. }
  47. },
  48. onLoad(){
  49. this.handlegetMycars();
  50. },
  51. methods:{
  52. handlegetMycars(){
  53. this.$u.api.getMycars()
  54. .then(res=>{
  55. this.mycars = res.data.rows;
  56. this.mycarsTotal = res.data.total;
  57. console.log('this.mycars',this.mycars)
  58. }).catch(err=>{
  59. console.log('getMycars ',err)
  60. });
  61. },
  62. handleAddCar(){
  63. let param ={
  64. vehicleNo: this.newPlateNumber,
  65. vehicleColor: this.vehicleColor
  66. };
  67. this.$u.api.addCar(param)
  68. .then(res=>{
  69. this.$refs.uToast.show({
  70. title: res.msg,
  71. type: 'success',
  72. });
  73. this.handlegetMycars();
  74. console.log('getMycars',res)
  75. }).catch(err=>{
  76. this.$refs.uToast.show({
  77. title: err.msg,
  78. type: 'error',
  79. });
  80. console.log('getMycars ',err)
  81. });
  82. },
  83. handleDelCar(id,content){
  84. this.delCarContent = `是否删除${content}`;
  85. this.delCarId = id;
  86. this.delCarshow = true;
  87. },
  88. confirmDelCar(){
  89. console.log(this.delCarId);
  90. this.$u.api.delCar(this.delCarId)
  91. .then(res=>{
  92. this.$refs.uToast.show({
  93. title: res.msg,
  94. type: 'success',
  95. });
  96. this.handlegetMycars();
  97. console.log('getMycars',res)
  98. }).catch(err=>{
  99. this.$refs.uToast.show({
  100. title: err.msg,
  101. type: 'error',
  102. });
  103. console.log('getMycars ',err)
  104. });
  105. },
  106. messageInputClick(){
  107. this.keyboardshow = true;
  108. },
  109. // 按键被点击(点击退格键不会触发此事件)
  110. keyboardChange(val) {
  111. // 将每次按键的值拼接到value变量中,注意+=写法
  112. this.newPlateNumber += val;
  113. console.log(this.newPlateNumber);
  114. },
  115. // 退格键被点击
  116. backspace() {
  117. // 删除value的最后一个字符
  118. if(this.newPlateNumber.length) this.newPlateNumber = this.newPlateNumber.substr(0, this.newPlateNumber.length - 1);
  119. console.log(this.newPlateNumber);
  120. },
  121. // 设置默认车辆
  122. handlesetDefault(id){
  123. this.$u.api.setDefaultCar({id:id})
  124. .then(res=>{
  125. this.handlegetMycars();
  126. console.log('handlesetDefault',res)
  127. }).catch(err=>{
  128. this.$refs.uToast.show({
  129. title: err.msg,
  130. type: 'error',
  131. });
  132. console.log('handlesetDefault err',err)
  133. });
  134. }
  135. },
  136. filters: {
  137. energyTpye(value) {
  138. if (value === 1) {
  139. return '汽油车';
  140. }else if (value === 2) {
  141. return '新能源';
  142. } else {
  143. return '汽油车';
  144. }
  145. },
  146. },
  147. }
  148. </script>
  149. <style lang="scss" scoped>
  150. @import url("./myCars.scss");
  151. </style>