收藏
回答

微信云开发签到的日历主体,在上线后的ISO机上不显示?

上线后在iso机型上日历主体不显示,真机调试正常,安卓机型也是正常的

     <view class='header'>
                <view wx:for='{{date}}' wx:key='index' class='{{(index == todayIndex) && isTodayWeek ? "weekMark" : ""}}'>
                    {{item}}
                    <view></view>
                </view>
            </view>
            <view class='date-box'>
                <block wx:for='{{dateArr}}' wx:key='index'>
                    <view class='{{isToday == item.isToday ? "nowDay":""}}'>
                        <view class='date-head font28' data-year='{{year}}' data-month='{{month}}' data-datenum='{{item.dateNum}}'>
                            <span wx:if='{{item.choose?"nowDay":""}}' class="signicon xxyw xxyw-yiqiandao"></span>
                            <view wx:else>{{item.dateNum}}</view>
                            <!-- 没有wx:else,有的数字会出现重影 -->
                        </view>
                    </view>
                </block>
            </view>

js代码:

 // js 部份
    //日历主体数据
    dateInitfunction (setYear, setMonth{
        //全部时间的月份都是按0~11基准,显示月份才+1
        let dateArr = []; //需要遍历的日历数组数据
        let arrLen = 0//dateArr的数组长度
        let now = setYear ? new Date(setYear, setMonth) : new Date();
        let year = setYear || now.getFullYear();
        let nextYear = 0;
        let month = setMonth || now.getMonth(); //没有+1方便后面计算当月总天数
        let nextMonth = (month + 1) > 11 ? 1 : (month + 1);
        // let startWeek = new Date(year + ',' + (month + 1) + ',' + 1).getDay(); //目标月1号对应的星期
        let startWeek = new Date(year, month, 1).getDay()
        let dayNums = new Date(year, nextMonth, 0).getDate(); //获取目标月有多少天
        let obj = {};
        let num = 0;
        if (month + 1 > 11) {
            nextYear = year + 1;
            dayNums = new Date(nextYear, nextMonth, 0).getDate();
        }
        arrLen = startWeek + dayNums;
        for (let i = 0; i < arrLen; i++) {
            if (i >= startWeek) {
                num = i - startWeek + 1;
                // obj = {
                //     isToday: parseInt(year * 10000 + (month + 1) * 100 + num),
                //     dateNum: num,
                //     // weight: 5
                // }
                obj = {
                    isToday'' + year + (month + 1) + num,
                    dateNum: num,
                    // weight: 5
                }
            } else {
                obj = {};
            }
            dateArr[i] = obj;
        }
        this.setData({
            dateArr: dateArr
        })
        let nowDate = new Date();
        let nowYear = nowDate.getFullYear();
        let nowMonth = nowDate.getMonth() + 1;
        let nowWeek = nowDate.getDay();
        let getYear = setYear || nowYear;
        let getMonth = setMonth >= 0 ? (setMonth + 1) : nowMonth;
        if (nowYear == getYear && nowMonth == getMonth) {
            this.setData({
                isTodayWeektrue,
                todayIndex: nowWeek
            })
        } else {
            this.setData({
                isTodayWeekfalse,
                todayIndex-1
            })
        }
    },

最后一次编辑于  2022-05-27
回答关注问题邀请回答
收藏

3 个回答

  • Frank
    Frank
    2022-05-27

    这种最好以代码片段的形式来提,不然这个问题99.999%石沉大海

    2022-05-27
    有用
    回复 1
    • 忠诚
      忠诚
      2022-05-27
      谢谢
      2022-05-27
      回复
  • (null)
    (null)
    2022-05-27

    不存在iso系统

    2022-05-27
    有用
    回复
  • 罗义明
    罗义明
    发表于移动端
    2022-05-27
    一? 卜丫八v?卜丫八卜电
    2022-05-27
    有用
    回复
登录 后发表内容