weexteam/A-pack-tool-for-Apache-Weex

更新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>
`