Browse Source

no message

featrue/v.4.0
xpz2018 5 years ago
parent
commit
20de15fda8
10 changed files with 280 additions and 19 deletions
  1. 21
      app.js
  2. 2
      colorui/main.wxss
  3. 88
      components/vehicle-keyboard/index.js
  4. 6
      components/vehicle-keyboard/index.json
  5. 35
      components/vehicle-keyboard/index.wxml
  6. 113
      components/vehicle-keyboard/index.wxss
  7. 13
      pages/agent/edit/index.js
  8. 3
      pages/agent/edit/index.json
  9. 12
      pages/agent/edit/index.wxml
  10. 6
      project.config.json

21
app.js

@ -1,7 +1,7 @@
//app.js
App({
App({
//----------------------------------------------globalData--------------------------------------
release: 1,
release: 0,
httpUrl: 'https://api.qniao.cn',
tmplIds: ['SUjEgwDopCv9xkkSZ4KbS0L7XbAiVQor6GmPg14K760'],
agentMsgIds: ['kG8DErWDpyzBHCFaLlSKYMF7xVy8UpgogCwV_WSNt10', 'oLbv-IyJOia2tenh64_Lc8xeAzwgzu3gh1vFJ1Se-ME'],
@ -21,11 +21,10 @@
if (this.release) {
this.httpUrl = 'https://api.qniao.cn'
} else {
// this.httpUrl = 'http://47.113.118.47:9000'
this.httpUrl = 'https://api-test.qniao.cn'
this.httpUrl = 'http://47.113.118.47:9000'
// this.httpUrl = 'https://api-test.qniao.cn'
}
},
// 获取高度
onShow: function(){
wx.getSystemInfo({
@ -58,10 +57,10 @@
}
return false
},
checkIPhoneX: function (e) {
var t = e.model,
o = e.platform;
return (/iPhone 11/.test(t) || /iPhone X/.test(t) || /iPhone 12/.test(t)) && 'ios' === o
}
checkIPhoneX: function (e) {
var t = e.model,
o = e.platform;
return (/iPhone 11/.test(t) || /iPhone X/.test(t) || /iPhone 12/.test(t)) && 'ios' === o
}
})
})

2
colorui/main.wxss

@ -1162,7 +1162,7 @@ button.icon.lg {
right: 0;
bottom: 0;
left: 0;
z-index: 100;
z-index: 60;
opacity: 0;
outline: 0;
text-align: center;

88
components/vehicle-keyboard/index.js

@ -0,0 +1,88 @@
Component({
options: {
addGlobalClass: true,
},
properties: {
plateNumber: {
type: Array,
value: ["", "", "", "", "", "", ""]
},
safeBottom: {
type: Number,
value: 0
}
},
data: {
provinces: "京津沪冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁渝港澳台",
letters: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
numbers: "0123456789",
visible: false,
activeIndex: -1,
type: 0,
disabled: true,
mode: 0 // 键盘模式 0 关闭状态 1 显示省份输入 2 显示数字和字母输入
},
lifetimes: {
attached: function () {
},
},
methods: {
show: function (number, type) {
if(number && number.length){
this.data.plateNumber = number.split('')
}
this.data.type = type
this.updateNumber()
this.setData({ plateNumber: this.data.plateNumber, mode: 1, activeIndex: 0, visible: true})
},
hide: function () {
this.setData({visible: false, plateNumber: ["", "", "", "", "", "", ""]})
this.triggerEvent("change", null)
},
updateNumber: function(){
this.data.disabled = false
for (let index = 0; index < this.data.plateNumber.length; index++) {
const element = this.data.plateNumber[index]
if(element.length == 0){
this.data.disabled = true
break
}
}
this.setData({disabled: this.data.disabled, plateNumber: this.data.plateNumber})
},
inputKeyboard: function(e){
let index = typeof e === 'number' ? e : e.currentTarget.dataset.index
if(e.currentTarget && this.data.plateNumber[index].length == 0){
return
}
this.setData({ mode: index == 0 ? 1 : 2, activeIndex: index })
},
tapDelete: function(e){
let activeIndex = this.data.activeIndex
this.data.plateNumber[activeIndex] = ''
this.updateNumber()
if (activeIndex > 0) {
this.inputKeyboard(--activeIndex)
}
},
tapFinish: function(){
if(this.data.disabled){
return
}
this.setData({visible: false, activeIndex: -1 })
this.triggerEvent("change", {plateNumber: this.data.plateNumber.join(''), type: this.data.type})
},
tapKeyboard: function(e){
let val = e.currentTarget.dataset.val
let activeIndex = this.data.activeIndex
this.data.plateNumber[activeIndex] = val
this.updateNumber()
if (activeIndex < 6) {
this.inputKeyboard(++activeIndex)
} else {
this.tapFinish()
}
},
}
})

6
components/vehicle-keyboard/index.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"wux-popup": "../popup/index"
}
}

35
components/vehicle-keyboard/index.wxml

@ -0,0 +1,35 @@
<wux-popup position="bottom" visible="{{ visible }}" safeArea="bottom" bind:close="hide" zIndex="29">
<view class="flex flex-justify license-number" style="padding:24rpx 32rpx">
<view class="item {{activeIndex == 0 ? 'active':''}}" bindtap="inputKeyboard" data-index="0">{{plateNumber[0]}}</view>
<view class="item {{activeIndex == 1 ? 'active':''}}" bindtap="inputKeyboard" data-index="1">{{plateNumber[1]}}</view>
<view class="item item-dot"><view class="dot"></view></view>
<view class="item {{activeIndex == 2 ? 'active':''}}" bindtap="inputKeyboard" data-index="2">{{plateNumber[2]}}</view>
<view class="item {{activeIndex == 3 ? 'active':''}}" bindtap="inputKeyboard" data-index="3">{{plateNumber[3]}}</view>
<view class="item {{activeIndex == 4 ? 'active':''}}" bindtap="inputKeyboard" data-index="4">{{plateNumber[4]}}</view>
<view class="item {{activeIndex == 5 ? 'active':''}}" bindtap="inputKeyboard" data-index="5">{{plateNumber[5]}}</view>
<view class="item {{activeIndex == 6 ? 'active':''}}" bindtap="inputKeyboard" data-index="6">{{plateNumber[6]}}</view>
</view>
<view class="kb-keyboard" style="background: #d9d9d9">
<view class="kb-keyboard-provs flex-brick" hidden="{{!(mode==1)}}">
<view class="kb-keyboard_td" wx:for="{{provinces}}" bindtap="tapKeyboard" data-val="{{item}}"
wx:key="index">
{{item}}</view>
</view>
<view class="kb-keyboard-nums flex-brick" hidden="{{!(mode==2)}}">
<view class="kb-keyboard_td {{activeIndex==1 ? 'disabled':''}}" wx:for="{{numbers}}" bindtap="tapKeyboard"
data-val="{{item}}" wx:key="index">{{item}}</view>
</view>
<view class="kb-keyboard-letters flex-brick" hidden="{{!(mode==2)}}">
<view class="kb-keyboard_td {{activeIndex > 1 && item =='Q' ? 'disabled':''}}" wx:for="{{letters}}"
bindtap="tapKeyboard" data-val="{{item}}" wx:key="index">{{item}}</view>
</view>
<view class="kb-keyboard-action flex-brick">
<view class="kb-keyboard_td kb-keyboard__del {{activeIndex == 0 && !plateNumber[0] ? 'disabled':''}}" bindtap="tapDelete">
<view class="ico-del"></view>
</view>
<view class="kb-keyboard_td kb-keyboard__finished {{disabled ? 'disabled':''}}" bindtap="tapFinish">确定</view>
</view>
</view>
<view style="height:{{safeBottom}}rpx"></view>
</wux-popup>

113
components/vehicle-keyboard/index.wxss

@ -0,0 +1,113 @@
.license-number .item {
width: 64rpx;
height: 72rpx;
line-height: 72rpx;
text-align: center;
border: 1rpx solid #999590;
border-radius: 8rpx;
display: flex;
font-size: 28rpx;
align-items: center;
justify-content: center;
}
.license-number .item.item-new-energy {
line-height: 1em;
display: flex;
align-items: center;
border: 1rpx dashed #999590;
}
.license-number .item.item-new-energy .ico {
line-height: 1em;
font-size: 36rpx;
margin-bottom: -5rpx;
color: #777;
}
.license-number .item.item-new-energy .tit {
font-size: 12px;
transform: scale(0.7);
color: #777;
}
.license-number .item.active {
border: 1rpx solid #008AFF;
color:#008AFF;
}
.license-number .item.item-dot {
border: none;
width: auto;
padding: 0 6rpx;
}
.license-number .item.item-dot .dot {
width: 12rpx;
height: 12rpx;
background: #a09c96;
border-radius: 10rpx;
}
.kb-keyboard {
padding: 6rpx;
position: relative;
}
.flex-brick {
display: flex;
flex-flow: row wrap;
}
.kb-keyboard-action {
display: flex;
justify-content: space-between;
position: absolute;
bottom: 6rpx;
right: 6rpx;
}
.kb-keyboard_td {
color: #1e1e1e;
box-shadow: 1rpx 1rpx 1rpx #919191;
background: #fff;
display: flex;
align-items: center;
justify-content: center;
width: calc((100vw - 12rpx) / 10 - 12rpx);
font-size: 18px;
height: 48px;
margin: 6rpx;
border-radius:5px;
}
.kb-keyboard_td.disabled {
opacity: 0.5;
pointer-events: none;
}
.kb-keyboard_td:active {
background: #f2f2f2;
}
.kb-keyboard__del {
align-self: flex-end;
width: calc(((100vw - 12rpx) / 10 - 12rpx) * 1.8);
height: 48px;
display: flex;
justify-content: center;
align-items: center;
padding-right: 1rpx;
}
.kb-keyboard__del .ico-del {
width: 44rpx;
height: 30rpx;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAMAAABg6AyVAAAAclBMVEUAAAAwMDAxMTEMDAwpKSkpKSkwMDAqKioxMTExMTEpKSkqKiokJCQpKSkpKSkqKioqKioqKioqKioqKiopKSkoKCgoKCgnJycqKioqKioqKioqKioqKioqKioqKiorKysrKysoKCgqKioAAAAlJSUqKipvWYGQAAAAJXRSTlMA/lcC+OyZhmk+lioH8OXd1MlOPzQZDCDcvr2ysaWjajsTEgEiwq/YugAAAM9JREFUOMud1McWgyAQBdABKxp7S+/v/38xDUPAY/DwNs7iLoQZhoycCswkiFY69RL8SaTbA/yaZnJGQD9Z7ZA1NBuAVPoNgpaW4UuFPKVluCuxHmgZHgqUnTxmHAqSEWHsTXCao7rKOmaM8U/Jn2Vs4jbAtieZkL30aFlo4CbDXrVHsLeWlgkd1z6O3teOiMsPaZj7SG5EE62swqkvm25qZRWOkNAkfLTu2P4bzge0X51rU+ztdh0kmbtlRC3D7/Cs3B+s6yqwLxnX9WVfjA8P3SLCPZZ7QgAAAABJRU5ErkJggg==);
background-size: 100% 100%;
}
.kb-keyboard__finished {
width: calc(((100vw - 12rpx) / 10 - 12rpx) * 1.8);
}
@keyframes breath {
from {
border-color:rgba(11, 245, 183, 0.3);
}
40% { border-color: #0bf5b7c2; }
60% { border-color: #0bf5b7c2; }
to { border-color: rgba(11, 245, 183, 0.3); }
}

13
pages/agent/edit/index.js

@ -152,6 +152,19 @@ Page({
var form_data = 'form.' + event.target.id
this.setData({ [form_data]: event.detail.value })
},
showKeyboard: function(e){
var item = this.data.vehicleList[e.currentTarget.dataset.index]
this.keyboard = this.keyboard || this.selectComponent('#wux-keyboard')
this.setData({ picking: true })
this.keyboard.show(item.plateNumber, e.currentTarget.dataset.index)
},
onPlatenumber: function({detail}){
if(detail && detail.plateNumber){
this.setData({ ['vehicleList[' + detail.type + '].plateNumber']: detail.plateNumber, picking: false })
} else {
this.setData({ picking: false })
}
},
addCate: function (e) {
if(this.data.vehicleList.length >= 5){
util.showToast('一次预约不能超过5辆车')

3
pages/agent/edit/index.json

@ -5,6 +5,7 @@
"picker-view": "/components/picker-view/index",
"wux-divider": "/components/divider/index",
"wux-tag": "/components/tag/index",
"wux-button": "/components/button/index"
"wux-button": "/components/button/index",
"vehicle-keyboard": "/components/vehicle-keyboard/index"
}
}

12
pages/agent/edit/index.wxml

@ -66,9 +66,11 @@
<view class="bg-white" style="padding: 0rpx 30rpx">
<view class="flex flex-justify" wx:for="{{vehicleList}}" wx:key="index" style="height: 100rpx;border-bottom:1rpx solid #f3f3f3;">
<text class="text-black text-sg">货车车牌{{index + 1}}:</text>
<input id="plateNumber" data-index="{{index}}" maxlength="8" placeholder-style="color:#aaa;"
value="{{item.plateNumber||''}}" placeholder="点击输入车牌号码" bindinput="bindList" style="margin-right:16rpx;flex:1" />
<text class="cuIcon-close text-gray" style="font-size:44rpx;" data-index="{{index}}" wx:if="{{vehicleList.length > 1}}" bindtap="deleteCate"></text>
<view class="text-sg flex flex-center {{item.plateNumber?'text-black':'input-grey'}}" style="flex: 1;height:64rpx;justify-content: flex-start"
data-index="{{index}}" bindtap="showKeyboard">{{item.plateNumber||'点击输入车牌号码'}}</view>
<!-- <input id="plateNumber" data-index="{{index}}" maxlength="8" placeholder-style="color:#aaa;" disabled="{{true}}"
value="{{item.plateNumber||''}}" placeholder="点击输入车牌号码" bindinput="bindList" style="margin-right:16rpx;flex:1" /> -->
<text class="cuIcon-close text-gray" style="font-size:44rpx;" data-index="{{index}}" wx:if="{{vehicleList.length > 1}}" bindtap="deleteCate"></text>
</view>
<view class="flex flex-center" style="height:90rpx;line-height:90rpx" bindtap="addCate">
<text class="cuIcon-roundadd text-blue" style="font-size: 16px;"></text>
@ -95,4 +97,6 @@
<picker-time id="picker-time" day="{{5}}" bindcustomevent="onDateChange"></picker-time>
<picker-view id="picker-view" bindcustomevent="onPickerChange"></picker-view>
<wux-dialog id="wux-dialog" />
<wux-dialog id="wux-dialog" />
<vehicle-keyboard id="wux-keyboard" safeBottom="{{safeBottom}}" bind:change="onPlatenumber"></vehicle-keyboard>

6
project.config.json

@ -21,13 +21,14 @@
"checkSiteMap": true,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"useMultiFrameRuntime": false,
"useMultiFrameRuntime": true,
"useApiHook": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"enableEngineNative": false,
"bundle": false,
"useIsolateContext": true,
"useCompilerModule": true,
@ -35,7 +36,8 @@
"userConfirmedBundleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": [],
"minifyWXSS": true
"minifyWXSS": true,
"useApiHostProcess": true
},
"compileType": "miniprogram",
"libVersion": "2.13.1",

Loading…
Cancel
Save