123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- <template>
- <view>
- <u-navbar
- title-color="#fff"
- :custom-back="customBack"
- :border-bottom="false"
- back-icon-color="#CCE8FF"
- :background="{background: '#008CFF' }" title="车辆管理"></u-navbar>
- <view class="header">
- <view class="header-title">我的车辆</view>
- </view>
- <view class="wrap">
- <view class="statistics">
- <view class="statistics-title">车辆</view>
- <view class="statistics-center"></view>
- <view class="statistics-number-wrap"><span class="number">{{mycarsTotal}}</span>辆</view>
- </view>
- <view class="new-plate-number">
- <view class="message-input-wrap" @click="messageInputClick">
- <u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true" v-model="newPlateNumber"></u-message-input>
- </view>
- <u-keyboard ref="uKeyboard" mode="car" @change="keyboardChange" @confirm="keyboardConfirm" @backspace="backspace" v-model="keyboardshow"></u-keyboard>
- </view>
- <view class="add-car-btn" @click="handleAddCar">添加车辆</view>
- <view class="mycars">
- <view class="mycars-item" v-for="item in mycars">
- <view class="mycars-item-name">{{item.vehicleNo}}</view>
- <view class="mycars-item-type">{{item.energyTpye | energyTpye}}</view>
- <view class="mycars-item-sign" v-if="item.contractStatus==1">已签约</view>
- <view class="mycars-item-sign1" v-if="item.contractStatus==0">未签约</view>
- <view class="mycars-item-tool">
- <span class="default" v-if="item.isDefault == 1" :class="{'isDefault':item.isDefault == 1}" @click="handlesetDefault(item.id)">默认</span>
- <span class="default" v-else @click="handlesetDefault(item.id)">设为默认</span>
- <span @click="handleDelCar(item.id,item.vehicleNo)">删除</span>
- </view>
- </view>
- </view>
- </view>
-
- <u-toast ref="uToast" />
- <u-modal v-model="delCarshow" :show-cancel-button="true" @confirm="confirmDelCar" :content="delCarContent"></u-modal>
- <u-action-sheet :list="colorList" @click="confirmColor" v-model="colorShow"></u-action-sheet>
- </view>
- </template>
- <script>
- export default{
- data(){
- return{
- keyboardshow:false,
- delCarshow:false,
- delCarId:null,
- delCarContent:'',
- newPlateNumber:'',
- vehicleColor:0,
- mycars:[],
- mycarsTotal:0,
- colorShow:false,
- colorList:[
- {text:'蓝色',colorCode:0}
- ,{text:'黄色',colorCode:1}
- ,{text:'黑色',colorCode:2}
- ,{text:'白色',colorCode:3}
- ,{text:'绿色',colorCode:4}
- ,{text:'其他',colorCode:99}
- ],
- }
- },
- onLoad(){
- this.handlegetMycars();
- },
- onShow() {
- this.handlegetMycars();
- },
- methods:{
- customBack(){
- this.$u.route({
- type:'switchTab',
- url: 'pages/index/index'
- });
- },
- handlegetMycars(){
- this.$u.api.getMycars()
- .then(res=>{
- this.mycars = res.data.rows;
- this.mycarsTotal = res.data.total;
- console.log('this.mycars',this.mycars)
- }).catch(err=>{
- console.log('getMycars ',err)
- });
- },
- handleAddCar(){
- if(!this.$u.test.carNo(this.newPlateNumber)){
- this.$refs.uToast.show({
- title: '请正确填写车牌号',
- type: 'error',
- });
- return
- }
- let param ={
- vehicleNo: this.newPlateNumber,
- vehicleColor: this.vehicleColor
- };
- this.$u.api.addCar(param)
- .then(res=>{
- this.$refs.uToast.show({
- title: res.msg,
- type: 'success',
- });
- this.handlegetMycars();
- console.log('getMycars',res)
- }).catch(err=>{
- this.$refs.uToast.show({
- title: err.msg,
- type: 'error',
- });
- console.log('getMycars ',err)
- });
- },
- handleDelCar(id,content){
- this.delCarContent = `是否删除${content}`;
- this.delCarId = id;
- this.delCarshow = true;
-
- },
- confirmDelCar(){
- console.log(this.delCarId);
- this.$u.api.delCar(this.delCarId)
- .then(res=>{
- this.$refs.uToast.show({
- title: res.msg,
- type: 'success',
- });
- this.handlegetMycars();
- console.log('getMycars',res)
- }).catch(err=>{
- this.$refs.uToast.show({
- title: err.msg,
- type: 'error',
- });
- console.log('getMycars ',err)
- });
- },
- messageInputClick(){
- this.keyboardshow = true;
- },
- // 按键被点击(点击退格键不会触发此事件)
- keyboardChange(val) {
- // 将每次按键的值拼接到value变量中,注意+=写法
- this.newPlateNumber += val;
- console.log(this.newPlateNumber);
- },
- // 退格键被点击
- backspace() {
- // 删除value的最后一个字符
- if(this.newPlateNumber.length) this.newPlateNumber = this.newPlateNumber.substr(0, this.newPlateNumber.length - 1);
- console.log(this.newPlateNumber);
- },
- keyboardConfirm(){
- this.colorShow = true;
- },
- confirmColor(e){
- this.vehicleColor = this.colorList[e].colorCode;
- },
- // 设置默认车辆
- handlesetDefault(id){
- this.$u.api.setDefaultCar({id:id})
- .then(res=>{
- this.$refs.uToast.show({
- title: res.msg,
- type: 'success',
- });
- this.handlegetMycars();
- console.log('handlesetDefault',res)
- }).catch(err=>{
- this.$refs.uToast.show({
- title: err.msg,
- type: 'error',
- });
- console.log('handlesetDefault err',err)
- });
- }
-
- },
- }
- </script>
- <style lang="scss" scoped>
- @import url("./myCars.scss");
- </style>
|