更新style时报错
Closed this issue · 1 comments
09-20 10:32:05.149 30290-30512/com.alibaba.weex E/weex: Argument format error! value is java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:452)
at com.taobao.weex.utils.WXUtils.getFloat(WXUtils.java:263)
at com.taobao.weex.utils.WXUtils.getFloat(WXUtils.java:235)
at com.taobao.weex.dom.WXStyle.getMarginRight(WXStyle.java:553)
at com.taobao.weex.dom.WXDomObject.applyStyleToNode(WXDomObject.java:678)
at com.taobao.weex.dom.WXDomStatement$ApplyStyleConsumer.accept(WXDomStatement.java:1238)
at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:276)
at com.taobao.weex.dom.WXDomStatement.updateStyle(WXDomStatement.java:849)
at com.taobao.weex.dom.WXDomManager.updateStyle(WXDomManager.java:438)
at com.taobao.weex.dom.WXDomHandler.handleMessage(WXDomHandler.java:255)
at com.taobao.weex.common.WXThread$SafeCallback.handleMessage(WXThread.java:258)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:164)
at android.os.HandlerThread.run(HandlerThread.java:65)
09-20 10:32:05.191 30290-30512/com.alibaba.weex D/updateDomObj: time:6
我在初次进入的时候并未报错,当在页面中选择日期,页面重新渲染,然后再切换到开始的日期,就出现了这个错误了。
页面代码是这样写的
页面的逻辑就是根据不同的选择日期,显示选择日期的打卡结果, 所以当日期改变的时候重新查询打卡结果并显示
<template>
<div class="stories-view" append="tree">
<app-header go-back="返回" :head-title="headtitle"></app-header>
<list class="list">
<cell class="top">
<text class="story-name">{{user.username}}</text>
<div class="group">
<text class="title" @click="pickDate">{{mmvalue}}</text>
</div>
</cell>
<!-- <story :checking="ChecKing"></story>-->
<cell class="story-list" v-if="user.userType == '8001'">
<div class="cell-item " v-for="(check,index) in kq.checking" :key="`check_${index}`">
<div class="daka-info bg-color01" v-if="check.sorts=='正常打卡'">
<text class="state-text">{{check.state}}</text>
</div>
<div class="daka-info bg-color02" v-if="check.sorts=='早退'">
<text class="state-text">{{check.state}}</text>
</div>
<div class="daka-info bg-color03" v-if="check.sorts=='迟到'">
<text class="state-text">{{check.state}}</text>
</div>
<div class="daka-info bg-color04" v-if="check.sorts=='旷工'" >
<text class="state-text">{{check.state}}</text>
</div>
<div class="daka-cont">
<text class="time-text">打卡时间:{{check.time}}</text>
<text class="daka-sort color01" v-if="check.sorts=='正常打卡'" >{{check.sorts}}</text>
<text class="daka-sort color02" v-if="check.sorts=='早退'" >{{check.sorts}}</text>
<text class="daka-sort color03" v-if="check.sorts=='迟到'" >{{check.sorts}}</text>
<text class="daka-sort color04" v-if="check.sorts=='旷工'" >{{check.sorts}}</text>
</div>
<text class="button" v-if="check.sorts=='旷工' && check.bukaFlag == 'Y'" @click="jump({path:'/detail',query:{id: check.id}})">查看</text>
<text class="button" v-if="check.sorts=='旷工' && check.bukaFlag == 'N'" @click="jump({path:'/apply',query:{ fullname:user.username,bukatime:check.stattime,kqdate:mmvalue, id: check.id}})">补签</text>
</div>
</cell>
<cell class="no_limits" v-if="user.userType == '8004'">
<text class="no_limits_text">您不在任何考勤组!</text>
</cell>
</list>
<app-footer markone='标记' :usertype="user.userType"></app-footer>
</div>
</template>
<script>
const picker = weex.requireModule('picker')
import AppHeader from '../components/app-header.vue'
import AppFooter from '../components/app-infooter.vue'
export default {
components: { AppHeader, AppFooter},
name: 'ChecKing-in',
data () {
return {
headtitle: '考勤' ,
mmvalue:'',//选择的日期
currentdate:'' ,//当前的日期
kq:{}
}
},
computed: {
user () {
return this.$store.state.users
}
},
methods: {
currentdate01(){
var date = new Date();
var fdate = this.formatDate(date);
this.mmvalue = fdate;
this.currentdate = fdate;
this.fetchKqData();
},
formatDate(date){
var d = new Date(date);
var seperator1 = "-";
var month = d.getMonth() + 1;
var strDate = d.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
return d.getFullYear() + seperator1 + month + seperator1 + strDate;
},
pickDate () {
picker.pickDate({
value: this.mmvalue,
max: this.currentdate,
min: '2005-11-28'
}, event => {
if (event.result === 'success') {
this.mmvalue = this.formatDate(event.data);
this.fetchKqData();
}
})
},
fetchKqData () {
this.$store.dispatch('COMMON_FETCH', {
path: "main",
param:this.toParams({staffId: this.$store.state.users.dataid, curDate: this.mmvalue}),
callback:this.reKqData
})
},
reKqData(r){
this.kq = r.data;
}
},
created () {
this.currentdate01();
}
}
</script>
<style scoped>
.stories-view {
background-color:#f7f7f7;
}
.story-cell {
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #dedbde;
background-color: #FFFFFF;
}
.list {
flex:1;
}
.loading {
height: 120px;
display: flex;
align-items: center;
justify-content: center;
}
.loading-text {
margin: auto;
text-align: center;
font-size: 40px;
color: #BBB;
}
.top {
flex-direction: row;
justify-content: center;
align-items: center;
display: flex;
padding-top:10px;
padding-bottom: 10px;
padding-left: 30px;
padding-right:30px;
}
.group {
width: 250px;
margin-left:250px;
justify-content: center;
align-items: center;
border-width: 1px;
border-style: solid;
border-color: #ccc;
border-radius: 10px;
height: 50px;
background-color: #fff;
}
.title {
font-size: 28px;
color: #41B883;
text-align: center;
}
.story-name {
width: 200px;
font-size: 32px;
color: #333;
}
.story-list {
background-color: #fff;
}
.cell-item {
background-color: #fff;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
border-bottom-style: solid;
border-bottom-width: 1px;
border-bottom-color: #dedbde;
padding-top: 20px;
padding-bottom:25px;
padding-left: 30px;
padding-right: 30px;
}
.daka-info {
width: 120px;
height: 120px;
align-items: center;
justify-content: center;
border-radius: 60px;
margin-right: 25px;
}
.bg-color01 {
background-color: #2baf2b;
border-width: 1px;
border-style: solid;
border-color: #099606;
}
.bg-color02 {
background-color: #ffa726;
border-width: 1px;
border-style: solid;
border-color: #fb8c00;
}
.bg-color03 {
background-color: #fd0303;
border-width: 1px;
border-style: solid;
border-color: #d70808;
}
.bg-color04 {
background-color: #e84e40;
border-width: 1px;
border-style: solid;
border-color: #de1d21;
}
.daka-cont {
width:365px;
}
.state-text {
color: #fff;
font-size: 30px;
text-align: center;
}
.time-text {
color: #333;
font-size: 30px;
padding-top:15px;
padding-bottom: 15px;
}
.daka-sort {
font-size: 30px;
padding-top:15px;
padding-bottom: 15px;
}
.color01 {
color: #2baf2b;
}
.color02 {
color: #ffa726;
}
.color03 {
color: #fd0303;
}
.color04 {
color: #e84e40;
}
.button {
width: 150px;
border-width: 2px;
border-style: solid;
border-color: #dedbde;
background-color: #F5F5F5;
padding-top: 5px;
padding-bottom: 5px;
border-radius: 14px;
margin-top: 60px;
font-size:30px;
color: #666666;
text-align: center;
}
.no_limits {
width: 750px;
}
.no_limits_text {
text-align: center;
color: #ccc;
font-size: 40px;
padding-top: 300px;
}
</style>
`
更换了一种方式可以了:
判断应该是v-if的问题
<!-- <story :checking="ChecKing"></story>-->
<cell class="story-list" v-if="user.userType == '8001'">
<div class="cell-item " v-for="(check,index) in kq.checking" :key="`check_${index}`">
<div class="daka-info" :class="[`bg-color0${index+1}`]" >
<text class="state-text">{{check.state}}</text>
</div>
<div class="daka-cont">
<text class="time-text">打卡时间:{{check.time}}</text>
<text class="daka-sort color01" >{{check.sorts}}</text>
</div>
<text class="button" v-if="check.sorts=='旷工' && check.bukaFlag == 'Y'" @click="jump({path:'/detail',query:{id: check.id}})">查看</text>
<text class="button" v-if="check.sorts=='旷工' && check.bukaFlag == 'N'" @click="jump({path:'/apply',query:{ fullname:user.username,bukatime:check.stattime,kqdate:mmvalue, id: check.id}})">补签</text>
</div>
`