| | |
| | | import moment from '../utils/moment.min' |
| | | import moment from '../utils/moment.min'; |
| | | import scheduleservice from '../service/scheduleservice'; |
| | | |
| | | var schedules = undefined; |
| | | // |
| | | const sysSchedules = function () { |
| | | let s = [] |
| | | const now = moment().hour(0).minute(0).second(0).millisecond(0) |
| | | const year = now.year() |
| | | //å°è´¦æ¯æ10å·ä¸ºæäº¤æ¥ |
| | | const day = 10 |
| | | for (let m = 1; m <= 12; m++) { |
| | | const mon = m > 9 ? m : `0${m}` |
| | | const item = { |
| | | time: moment(`${year}-${mon}-10`), |
| | | type: 0, |
| | | events: [{ |
| | | category: `${year}å¹´${m}æç¯ä¿å·¥ä½æ¥ç¨`, |
| | | name: `æäº¤${m}æç¯ä¿å°è´¦`, |
| | | type: 1, //ç³»ç»æ¥ç¨ |
| | | steps: [{ |
| | | index: '01', |
| | | title: ['æäº¤', 'æ¹å¼'], |
| | | content: 'åå¾å°è´¦ç®¡ççé¢ï¼æ ¹æ®å°è´¦ç±»ååç±»ä¸ä¼ å°è´¦å¾çã' |
| | | }, { |
| | | index: '02', |
| | | title: ['æäº¤', 'æé'], |
| | | content: '注æå°è´¦æäº¤å¨æä¸ºä¸ä¸ªæï¼æ¯æå°½é10å·ä¹åæäº¤ä¸æå°è´¦ï¼é¾æåç¯ä¿ä¿¡ç¨è¯ä¼°ä¼ææå½±åã' |
| | | }] |
| | | }] |
| | | } |
| | | s.push(item) |
| | | } |
| | | //è¯ä¼°æ¯ææäº¤ä¸æ¬¡ï¼å®ä¸º5å· |
| | | for (let m = 1; m <= 12; m++) { |
| | | const mon = m > 9 ? m : `0${m}` |
| | | const item = { |
| | | time: moment(`${year}-${mon}-05`), |
| | | type: 1, |
| | | events: [{ |
| | | category: `${year}å¹´${m}æç¯ä¿å·¥ä½æ¥ç¨`, |
| | | name: `宿${m}æèªæµæºè¯`, |
| | | type: 1, //ç³»ç»æ¥ç¨ |
| | | steps: [{ |
| | | index: '01', |
| | | title: ['èªè¯', 'æ¹æ³'], |
| | | content: 'åå¾èªæµæºè¯çé¢ï¼ç¹å»â廿µè¯âæé®è¿è¡èªè¯ã' |
| | | }, { |
| | | index: '02', |
| | | title: ['æµè¯', '卿'], |
| | | content: 'æµè¯å¨æä¸ºä¸ä¸ªæä¸æ¬¡ï¼ç§¯æèªè¯å¯ææå¸®å©æ¨ç¥æä¼ä¸å½åçç¯ä¿éæ£ã' |
| | | }] |
| | | }] |
| | | } |
| | | s.push(item) |
| | | } |
| | | //æ¿è¯ºæ¯ä¸å¹´æäº¤ä¸æ¬¡ |
| | | const item = { |
| | | category: `${year}å¹´12æç¯ä¿å·¥ä½æ¥ç¨`, |
| | | time: moment(`${year}-12-31`), |
| | | type: 2, |
| | | events: [{ |
| | | name: `宿宿³æ¿è¯º`, |
| | | type: 1, //ç³»ç»æ¥ç¨ |
| | | steps: [{ |
| | | index: '01', |
| | | title: ['æ¿è¯º', 'æ¹æ³'], |
| | | content: 'åå¾å®æ³æ¿è¯ºçé¢ï¼æ ¹æ®æç¤ºï¼ç¾ç½²å®æ³æ¿è¯ºä¹¦ã' |
| | | }, { |
| | | index: '02', |
| | | title: ['æ¿è¯ºä¹¦', 'ä½ç¨'], |
| | | content: 'ç¾ç½²å®æ³æ¿è¯ºä¹¦ï¼æå³çæ¨ä¸»å¨åç¯ä¿é¨é¨æ¿è¯ºéµå®ç¸å
³è§ç« å¶åº¦ã' |
| | | }, { |
| | | index: '03', |
| | | title: ['æ¿è¯ºä¹¦', 'æææ'], |
| | | content: '宿³æ¿è¯ºä¹¦ä»ç¾ç½²ä¹æ¥èµ·ï¼æææä¸ºä¸å¹´' |
| | | }] |
| | | }], |
| | | } |
| | | s.push(item) |
| | | // const sysSchedules = function () { |
| | | // let s = [] |
| | | // const now = moment().hour(0).minute(0).second(0).millisecond(0) |
| | | // const year = now.year() |
| | | // //å°è´¦æ¯æ10å·ä¸ºæäº¤æ¥ |
| | | // const day = 10 |
| | | // for (let m = 1; m <= 12; m++) { |
| | | // const mon = m > 9 ? m : `0${m}` |
| | | // const item = { |
| | | // time: moment(`${year}-${mon}-10`), |
| | | // type: 0, |
| | | // events: [{ |
| | | // category: `${year}å¹´${m}æç¯ä¿å·¥ä½æ¥ç¨`, |
| | | // name: `æäº¤${m}æç¯ä¿å°è´¦`, |
| | | // type: 1, //ç³»ç»æ¥ç¨ |
| | | // steps: [{ |
| | | // index: '01', |
| | | // title: ['æäº¤', 'æ¹å¼'], |
| | | // content: 'åå¾å°è´¦ç®¡ççé¢ï¼æ ¹æ®å°è´¦ç±»ååç±»ä¸ä¼ å°è´¦å¾çã' |
| | | // }, { |
| | | // index: '02', |
| | | // title: ['æäº¤', 'æé'], |
| | | // content: '注æå°è´¦æäº¤å¨æä¸ºä¸ä¸ªæï¼æ¯æå°½é10å·ä¹åæäº¤ä¸æå°è´¦ï¼é¾æåç¯ä¿ä¿¡ç¨è¯ä¼°ä¼ææå½±åã' |
| | | // }] |
| | | // }] |
| | | // } |
| | | // s.push(item) |
| | | // } |
| | | // //è¯ä¼°æ¯ææäº¤ä¸æ¬¡ï¼å®ä¸º5å· |
| | | // for (let m = 1; m <= 12; m++) { |
| | | // const mon = m > 9 ? m : `0${m}` |
| | | // const item = { |
| | | // time: moment(`${year}-${mon}-05`), |
| | | // type: 1, |
| | | // events: [{ |
| | | // category: `${year}å¹´${m}æç¯ä¿å·¥ä½æ¥ç¨`, |
| | | // name: `宿${m}æèªæµæºè¯`, |
| | | // type: 1, //ç³»ç»æ¥ç¨ |
| | | // steps: [{ |
| | | // index: '01', |
| | | // title: ['èªè¯', 'æ¹æ³'], |
| | | // content: 'åå¾èªæµæºè¯çé¢ï¼ç¹å»â廿µè¯âæé®è¿è¡èªè¯ã' |
| | | // }, { |
| | | // index: '02', |
| | | // title: ['æµè¯', '卿'], |
| | | // content: 'æµè¯å¨æä¸ºä¸ä¸ªæä¸æ¬¡ï¼ç§¯æèªè¯å¯ææå¸®å©æ¨ç¥æä¼ä¸å½åçç¯ä¿éæ£ã' |
| | | // }] |
| | | // }] |
| | | // } |
| | | // s.push(item) |
| | | // } |
| | | // //æ¿è¯ºæ¯ä¸å¹´æäº¤ä¸æ¬¡ |
| | | // const item = { |
| | | // category: `${year}å¹´12æç¯ä¿å·¥ä½æ¥ç¨`, |
| | | // time: moment(`${year}-12-31`), |
| | | // type: 2, |
| | | // events: [{ |
| | | // name: `宿宿³æ¿è¯º`, |
| | | // type: 1, //ç³»ç»æ¥ç¨ |
| | | // steps: [{ |
| | | // index: '01', |
| | | // title: ['æ¿è¯º', 'æ¹æ³'], |
| | | // content: 'åå¾å®æ³æ¿è¯ºçé¢ï¼æ ¹æ®æç¤ºï¼ç¾ç½²å®æ³æ¿è¯ºä¹¦ã' |
| | | // }, { |
| | | // index: '02', |
| | | // title: ['æ¿è¯ºä¹¦', 'ä½ç¨'], |
| | | // content: 'ç¾ç½²å®æ³æ¿è¯ºä¹¦ï¼æå³çæ¨ä¸»å¨åç¯ä¿é¨é¨æ¿è¯ºéµå®ç¸å
³è§ç« å¶åº¦ã' |
| | | // }, { |
| | | // index: '03', |
| | | // title: ['æ¿è¯ºä¹¦', 'æææ'], |
| | | // content: '宿³æ¿è¯ºä¹¦ä»ç¾ç½²ä¹æ¥èµ·ï¼æææä¸ºä¸å¹´' |
| | | // }] |
| | | // }], |
| | | // } |
| | | // s.push(item) |
| | | |
| | | s.sort(function (x, y) { |
| | | if (x.time.isBefore(y.time)) { |
| | | return -1; |
| | | } else if (x.time.isAfter(y.time)) { |
| | | return 1; |
| | | // s.sort(function (x, y) { |
| | | // if (x.time.isBefore(y.time)) { |
| | | // return -1; |
| | | // } else if (x.time.isAfter(y.time)) { |
| | | // return 1; |
| | | // } else { |
| | | // return 0; |
| | | // } |
| | | // }) |
| | | // return s |
| | | // } |
| | | |
| | | /** |
| | | * è·åç¨æ·æ¬å¹´åº¦çææç¯ä¿æ¥ç¨ |
| | | */ |
| | | function sysSchedules() { |
| | | let startTime = moment() |
| | | .month(0) |
| | | .date(1) |
| | | .format('YYYY-MM-DD') |
| | | let endTime = moment() |
| | | .month(11) |
| | | .date(31) |
| | | .format('YYYY-MM-DD') |
| | | return new Promise((resolve, reject) => { |
| | | if (schedules) { |
| | | resolve(schedules); |
| | | } else { |
| | | return 0; |
| | | scheduleservice.getSchedules( |
| | | { startTime, endTime, type: 0 }, |
| | | { |
| | | success: res => { |
| | | schedules = res.data; |
| | | schedules.forEach(s => { |
| | | s.time = moment(s.time.split('T')[0]).format('YYYY-MM-DD'); |
| | | }); |
| | | resolve(res.data); |
| | | }, |
| | | fail: e => { |
| | | reject(e); |
| | | }, |
| | | }, |
| | | ); |
| | | } |
| | | }) |
| | | return s |
| | | }); |
| | | } |
| | | |
| | | export default sysSchedules |
| | | export default sysSchedules; |
| | |
| | | userRealName: '', |
| | | |
| | | //åå²è¯å详æ
|
| | | assessmentCompleted: false, |
| | | assessmentCompleted: undefined, |
| | | historyPoint: { |
| | | time: 'æµè¯å¨æ----å¹´--æ', |
| | | score: '--', |
| | |
| | | period: '', |
| | | }, |
| | | //å°è´¦å®ææ
åµ |
| | | ledgerCompleted: false, |
| | | ledgerCompleted: undefined, |
| | | monthInfo: { |
| | | //å¿
å¡«é¡¹æ»æ° |
| | | totalMust: 0, |
| | |
| | | let year = lastOne.updateDate.substring(0, 4); |
| | | let month = lastOne.updateDate.substring(5, 7); |
| | | const now = moment(); |
| | | if (now.year() == year && now.month() + 1 == month) { |
| | | // fixme 2024.5.24 ä¸´æ¶æ·»å éå®å»çæºæçè¯ä¼°å¨æä¸º1å¹´ï¼åç»ååå®å |
| | | const inPeriod = |
| | | app.globalData.userInfo.extension1 == 'éå®åº' && |
| | | app.globalData.userInfo.extension2 == '9' && |
| | | year == now.year(); |
| | | if ((now.year() == parseInt(year) && now.month() + 1 == parseInt(month) ) || inPeriod) { |
| | | that.setData({ |
| | | assessmentCompleted: true, |
| | | assessmentCompleted: 2, |
| | | }); |
| | | } else { |
| | | that.setData({ |
| | | assessmentCompleted: 1, |
| | | }); |
| | | } |
| | | that.setData({ |
| | | historyPoint: { |
| | |
| | | |
| | | this.setData({ |
| | | monthInfo, |
| | | ledgerCompleted: monthInfo.percent >= 100 && monthInfo.percent2 >= 100, |
| | | // ledgerCompleted: true |
| | | ledgerCompleted: monthInfo.percent >= 100 && monthInfo.percent2 >= 100 ? 2 : 1, |
| | | }); |
| | | }, |
| | | |
| | |
| | | <block wx:if="{{item.proPics.length > 0}}"> |
| | | <view class="text-2">é®é¢å¾ç</view> |
| | | <view class="img-group"> |
| | | <view wx:for="{{item.proPics}}" wx:for-index="index2" wx:key="index2" wx:for-item="m"> |
| | | <image class="img-group_img" src="{{m}}" mode="aspectFill" bindtap="previewImage" data-type="pro" data-index="{{[index, index2]}}"></image> |
| | | <view |
| | | wx:for="{{item.proPics}}" |
| | | wx:for-index="index2" |
| | | wx:key="index2" |
| | | wx:for-item="m" |
| | | > |
| | | <image |
| | | class="img-group_img" |
| | | src="{{m}}" |
| | | mode="aspectFill" |
| | | bindtap="previewImage" |
| | | data-type="pro" |
| | | data-index="{{[index, index2]}}" |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <block wx:if="{{item.changePics.length > 0}}"> |
| | | <view class="text-2">æ´æ¹å¾ç</view> |
| | | <view class="img-group"> |
| | | <view wx:for="{{item.changePics}}" wx:for-index="index2" wx:key="index2" wx:for-item="m"> |
| | | <image class="img-group_img" src="{{m}}" mode="aspectFill" bindtap="previewImage" data-type="change" data-index="{{[index, index2]}}"></image> |
| | | <view |
| | | wx:for="{{item.changePics}}" |
| | | wx:for-index="index2" |
| | | wx:key="index2" |
| | | wx:for-item="m" |
| | | > |
| | | <image |
| | | class="img-group_img" |
| | | src="{{m}}" |
| | | mode="aspectFill" |
| | | bindtap="previewImage" |
| | | data-type="change" |
| | | data-index="{{[index, index2]}}" |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <button bindtap="changeProblem" disabled="{{item.ischanged}}" data-index="{{index}}">{{item.ischanged ? 'å·²æ´æ¹' : 'æ´æ¹'}}</button> |
| | | <button |
| | | bindtap="changeProblem" |
| | | disabled="{{item.ischanged}}" |
| | | data-index="{{index}}" |
| | | > |
| | | {{item.ischanged ? 'å·²æ´æ¹' : 'æ´æ¹'}} |
| | | </button> |
| | | </view> |
| | | </block> |
| | | <template wx:else is="nodataPage"></template> |
| | |
| | | <mp-icon type="filled" icon="error" size="60" color="white"></mp-icon> |
| | | <view>{{reason}}</view> |
| | | </view> |
| | | <my-gallery hide-on-click="{{true}}" show-delete="{{false}}" show="{{showPreview}}" img-urls="{{previewImageUrls}}" current="{{previewCurrent}}" title="{{title}}"></my-gallery> |
| | | </view> |
| | | <my-gallery |
| | | hide-on-click="{{true}}" |
| | | show-delete="{{false}}" |
| | | show="{{showPreview}}" |
| | | img-urls="{{previewImageUrls}}" |
| | | current="{{previewCurrent}}" |
| | | title="{{title}}" |
| | | ></my-gallery> |
| | | </view> |
| | |
| | | |
| | | <view class="page"> |
| | | <view class="banner-bg"></view> |
| | | <view class="page__hd"> |
| | | </view> |
| | | <view class="page__hd"> </view> |
| | | <view class="page__bd"> |
| | | <block wx:if="{{problemList.length > 0}}"> |
| | | <view wx:for="{{problemList}}" wx:key="index" class="card-subtask"> |
| | |
| | | <block wx:if="{{item.proPics.length > 0}}"> |
| | | <view class="text-2">é®é¢å¾ç</view> |
| | | <view class="img-group"> |
| | | <view wx:for="{{item.proPics}}" wx:for-index="index2" wx:key="index2" wx:for-item="m"> |
| | | <image class="img-group_img" src="{{m}}" mode="aspectFill" bindtap="previewImage" data-type="pro" data-index="{{[index, index2]}}"></image> |
| | | <view |
| | | wx:for="{{item.proPics}}" |
| | | wx:for-index="index2" |
| | | wx:key="index2" |
| | | wx:for-item="m" |
| | | > |
| | | <image |
| | | class="img-group_img" |
| | | src="{{m}}" |
| | | mode="aspectFill" |
| | | bindtap="previewImage" |
| | | data-type="pro" |
| | | data-index="{{[index, index2]}}" |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <block wx:if="{{item.changePics.length > 0}}"> |
| | | <view class="text-2">æ´æ¹å¾ç</view> |
| | | <view class="img-group"> |
| | | <view wx:for="{{item.changePics}}" wx:for-index="index2" wx:key="index2" wx:for-item="m"> |
| | | <image class="img-group_img" src="{{m}}" mode="aspectFill" bindtap="previewImage" data-type="change" data-index="{{[index, index2]}}"></image> |
| | | <view |
| | | wx:for="{{item.changePics}}" |
| | | wx:for-index="index2" |
| | | wx:key="index2" |
| | | wx:for-item="m" |
| | | > |
| | | <image |
| | | class="img-group_img" |
| | | src="{{m}}" |
| | | mode="aspectFill" |
| | | bindtap="previewImage" |
| | | data-type="change" |
| | | data-index="{{[index, index2]}}" |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <block wx:else> |
| | | <mp-upload title="ä¸ä¼ å°è´¦å¾ç" titleClass="upload-title-class" max-count="3" files="{{imgFiles}}" binduploadImg="uploadFile" binddelete="delImg"></mp-upload> |
| | | <mp-upload |
| | | title="ä¸ä¼ å°è´¦å¾ç" |
| | | titleClass="upload-title-class" |
| | | max-count="3" |
| | | files="{{imgFiles}}" |
| | | binduploadImg="uploadFile" |
| | | binddelete="delImg" |
| | | ></mp-upload> |
| | | </block> |
| | | <button bindtap="submitDialog" disabled="{{item.ischanged}}" data-index="{{index}}">{{item.ischanged ? 'å·²æ´æ¹' : 'ä¸ä¼ '}}</button> |
| | | <button |
| | | bindtap="submitDialog" |
| | | disabled="{{item.ischanged}}" |
| | | data-index="{{index}}" |
| | | > |
| | | {{item.ischanged ? 'å·²æ´æ¹' : 'ä¸ä¼ '}} |
| | | </button> |
| | | </view> |
| | | </block> |
| | | <template wx:else is="nodataPage"></template> |
| | | </view> |
| | | <view class="page__ft"> |
| | | |
| | | </view> |
| | | <view class="page__ft"> </view> |
| | | <c-dialog show="{{showDialog}}" yes="确认" bindconfirm="changeProblem"> |
| | | <view>确认æ¯å¦æäº¤æ´æ¹ï¼</view> |
| | | </c-dialog> |
| | | <my-gallery hide-on-click="{{true}}" show-delete="{{false}}" show="{{showPreview}}" img-urls="{{previewImageUrls}}" current="{{previewCurrent}}" title="{{title}}"></my-gallery> |
| | | </view> |
| | | <my-gallery |
| | | hide-on-click="{{true}}" |
| | | show-delete="{{false}}" |
| | | show="{{showPreview}}" |
| | | img-urls="{{previewImageUrls}}" |
| | | current="{{previewCurrent}}" |
| | | title="{{title}}" |
| | | ></my-gallery> |
| | | </view> |
| | |
| | | // behaviors: [bLoadingStatus], |
| | | properties: { |
| | | ledgerCompleted: { |
| | | type: Boolean, |
| | | observer(value) { |
| | | this.checkScheduleComplete(0, value); |
| | | }, |
| | | }, |
| | | assessmentCompleted: { |
| | | type: Boolean, |
| | | type: Number, |
| | | observer(value) { |
| | | this.checkScheduleComplete(1, value); |
| | | }, |
| | | }, |
| | | assessmentCompleted: { |
| | | type: Number, |
| | | observer(value) { |
| | | this.checkScheduleComplete(2, value); |
| | | }, |
| | | }, |
| | | }, |
| | | data: { |
| | | // å
¨é¨ç¯ä¿æ¥ç¨ |
| | | allSchedules: [], |
| | | // å½åç¨æ·æä¸´è¿æªå®ææ¥ç¨ |
| | | thisSchedule: {}, |
| | | // å½åç¨æ·æä¸´è¿æªå®ææ¥ç¨ç´¢å¼ |
| | | index: 0, |
| | | // å°è´¦åèªè¯æ¬æå®ææ
åµ |
| | | scheduleComplete: new Map(), |
| | | // éè¦åæ¥ç¨æ¯å¦å®æå¤æçæ¥ç¨ä¸ªæ°ï¼å°è´¦åèªè¯ï¼ |
| | | scheduleCount: 2, |
| | | }, |
| | | lifetimes: { |
| | | attached: function () { |
| | | this.getRecentSchedule(); |
| | | this.getSchedules(); |
| | | if (app.globalData.newUser) { |
| | | this.nextSchedules(); |
| | | } |
| | | // this.getAllSchedules() |
| | | this.setData({ |
| | | scheduleComplete: new Map(), |
| | | }); |
| | | this.getAllSchedules().then(() => { |
| | | this.getRecentSchedule(); |
| | | if (app.globalData.newUser) { |
| | | this.nextSchedules(); |
| | | } |
| | | }); |
| | | // this.getSchedules(); |
| | | }, |
| | | }, |
| | | methods: { |
| | | // è·åæé»è¿çä¸ä¸ªç¯ä¿ç³»ç»æ¥ç¨ |
| | | getSchedules() { |
| | | // let startTime = '2023-04-10'; |
| | | // let endTime = '2023-04-10'; |
| | | let startTime = moment().format('YYYY-MM-DD'); |
| | | let endTime = startTime; |
| | | const that = this; |
| | |
| | | { |
| | | success(res) { |
| | | if (res.data.length > 0) { |
| | | res.data.sort( |
| | | (a, b) => Math.abs(a.diffDays) - Math.abs(b.diffDays), |
| | | ); |
| | | const schedule = res.data[0]; |
| | | schedule.time = moment(schedule.time.split('T')[0]).format( |
| | | 'YYYY-MM-DD', |
| | |
| | | getRecentSchedule() { |
| | | //1. 仿¥å£è·åç¨æ·ä¸ªäººãç¨æ·ä¼ä¸ç±»åçç¸å
³æä¸´è¿æ¥ç¨ |
| | | //2. æç
§æ¬å°é»è¾ï¼å¾åºæé»è¿æ¥ç¨ |
| | | const schedules = sysSchedules(); |
| | | const schedules = this.data.allSchedules; |
| | | //2.1 å°å°è´¦ãè¯ä¼°ãæ¿è¯ºä¸é¡¹APPåè½å®ä¹ä¸ºæ¥ç¨ |
| | | //2.2 éæ©æé»è¿çäºé¡¹ä½ä¸ºå½æ¥çæéäºé¡¹, |
| | | let today = moment().hour(0).minute(0).second(0).millisecond(0); |
| | |
| | | let index = 0; |
| | | for (let i = 0; i < schedules.length; i++) { |
| | | let s = schedules[i]; |
| | | let d = s.time.diff(today, 'days'); |
| | | s.diffDays = d; |
| | | let d = s.diffDays; |
| | | // if (d == -8) { |
| | | if (Math.abs(d) < Math.abs(diffDays)) { |
| | | let _index = i; |
| | | |
| | |
| | | //2.3 æ¥ç¨å¨æ¶é´ç»´åº¦ä¸å为ä¸ç±»æéï¼é¢åã彿¥ãæªå®æç龿æé |
| | | |
| | | this.setData({ |
| | | allSchedules: schedules, |
| | | // thisSchedule: { |
| | | // date: schedule.time, |
| | | // time: schedule.time.format('YYYY-MM-DD dddd'), |
| | | // type: schedule.type, |
| | | // events: schedule.events, |
| | | // diffDays: schedule.diffDays, |
| | | // }, |
| | | thisSchedule: schedule, |
| | | index, |
| | | }); |
| | | }, |
| | | |
| | | //è·åæææ¥ç¨ |
| | | getAllSchedules() { |
| | | const schedules = sysSchedules(); |
| | | this.setData({ |
| | | allSchedules: schedules, |
| | | return sysSchedules().then(res => { |
| | | this.setData({ |
| | | allSchedules: res, |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // å½åæ¥ç¨å®æï¼é¡ºå»¶ä¸ä¸ä¸ªæ¥ç¨ |
| | | nextSchedules() { |
| | | let today = moment().hour(0).minute(0).second(0).millisecond(0); |
| | | let s = this.data.allSchedules[this.data.index + 1]; |
| | | let d = s.time.diff(today, 'days'); |
| | | s.diffDays = d; |
| | | |
| | | this.setData({ |
| | | thisSchedule: { |
| | | date: s.time, |
| | | time: s.time.format('YYYY-MM-DD'), |
| | | type: s.type, |
| | | events: s.events, |
| | | diffDays: s.diffDays, |
| | | }, |
| | | thisSchedule: s, |
| | | index: this.data.index + 1, |
| | | }); |
| | | }, |
| | | |
| | | // æ£æ¥å½åæ¥ç¨æ¯å¦å®æ |
| | | checkScheduleComplete(type, value) { |
| | | // æ£æ¥å½åæ¥ç¨æ¯å¦å®æ(2023.8.24 ç®ååªæ¶åå°è´¦åèªè¯ä¸¤ç±»æ¥ç¨) |
| | | checkScheduleComplete(scId, value) { |
| | | const { scheduleComplete, scheduleCount } = this.data; |
| | | scheduleComplete.set(scId, value); |
| | | // å°è´¦åèªè¯çç»æå
¨é¨ä¼ å
¥ååå夿 |
| | | if (scheduleComplete.size < scheduleCount) return; |
| | | // æ°ç¨æ·ä¸å夿 |
| | | if (app.globalData.newUser) return; |
| | | // æ¥ç¨ç±»åä¸ä¸è´æ é夿 |
| | | if (this.data.thisSchedule.type != type) return; |
| | | // æ¥ç¨ä¸å¨å½æçæ é夿 |
| | | const thisMonth = moment().month(); |
| | | const sTimeMonth = moment(this.data.thisSchedule.date).month(); |
| | | if (thisMonth != sTimeMonth) return; |
| | | |
| | | // æ¥ç¨å®æå顺延ä¸ä¸ªæ¥ç¨ |
| | | if (value) { |
| | | this.nextSchedules(); |
| | | } |
| | | let index = 0; |
| | | const thisMonth = moment().month(); |
| | | do { |
| | | const { thisSchedule } = this.data; |
| | | // æ¥ç¨ä¸å¨å½æçæ é夿 |
| | | const sTimeMonth = moment(thisSchedule.time).month(); |
| | | if (thisMonth != sTimeMonth) return; |
| | | |
| | | // å¤æå½æè¯¥æ¥ç¨æ¯å¦å®æï¼å®æåå°å½åæ¥ç¨é¡ºå»¶è³ä¸ä¸ä¸ª |
| | | if (scheduleComplete.get(thisSchedule.id) == 2) { |
| | | this.nextSchedules(); |
| | | } |
| | | index++ |
| | | } while (index < scheduleCount); |
| | | }, |
| | | }, |
| | | }); |
| | |
| | | <text>工使¥ç¨</text> |
| | | </view> |
| | | <view class="schedule-title">{{thisSchedule.title}}</view> |
| | | <view wx:if="{{thisSchedule.content}}" class="schedule-time" |
| | | >{{thisSchedule.content}}</view |
| | | > |
| | | <view class="schedule-time"> |
| | | <text>{{thisSchedule.time}}</text> |
| | | <view class="schedule-time__right"> |
| | |
| | | // pages/mService/pSchedule/pSchedule.js |
| | | import bScheduleManager from '../behaviors/bScheduleManager' |
| | | const moment = require('../../../utils/moment.min') |
| | | import sysSchedules from '../../../data/schedules'; |
| | | import moment from "../../../utils/moment.min"; |
| | | |
| | | Page({ |
| | | behaviors: [bScheduleManager], |
| | | /** |
| | | * 页é¢çåå§æ°æ® |
| | | */ |
| | | data: { |
| | | totals: 0, |
| | | schedules: [{ |
| | | category: '2022å¹´9æç¯ä¿å·¥ä½æ¥ç¨', |
| | | details: [{ |
| | | time: '9æ10æ¥', |
| | | name: 'ç¯ä¿æ¥ç¨', |
| | | left: 3, |
| | | }] |
| | | }] |
| | | schedules: [ |
| | | // { |
| | | // category: '2022å¹´9æç¯ä¿å·¥ä½æ¥ç¨', |
| | | // details: [ |
| | | // { |
| | | // time: '9æ10æ¥', |
| | | // name: 'ç¯ä¿æ¥ç¨', |
| | | // left: 3, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | ], |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å è½½ |
| | | */ |
| | | onLoad(options) { |
| | | // const now = moment().hour(0).minute(0).second(0).millisecond(0) |
| | | // const year = now.year() |
| | | const schedules = [] |
| | | let totals = this.data.allSchedules.length |
| | | sysSchedules().then(res => this.parseAllSchedules(res)); |
| | | }, |
| | | |
| | | const map = new Map() |
| | | for (let i = 0; i < this.data.allSchedules.length; i++) { |
| | | const s = this.data.allSchedules[i]; |
| | | s.events.forEach(e => { |
| | | if (!map.has(e.category)) { |
| | | map.set(e.category, []) |
| | | } |
| | | map.get(e.category).push({ |
| | | time: s.time.format('MMæDDæ¥'), |
| | | name: e.name, |
| | | left: s.diffDays, |
| | | s: s |
| | | }) |
| | | parseAllSchedules(allSchedules) { |
| | | const schedules = []; |
| | | let totals = allSchedules.length; |
| | | |
| | | const map = new Map(); |
| | | for (let i = 0; i < allSchedules.length; i++) { |
| | | const s = allSchedules[i]; |
| | | const _time = moment(s.time) |
| | | const category = `${_time.year()}å¹´${_time.month() + 1}æç¯ä¿å·¥ä½æ¥ç¨` |
| | | if (!map.has(category)) { |
| | | map.set(category, []); |
| | | } |
| | | map.get(category).push({ |
| | | time: _time.format('MMæDDæ¥'), |
| | | name: s.title, |
| | | left: s.diffDays, |
| | | s: s, |
| | | }); |
| | | } |
| | | for (let item of map) { |
| | | schedules.push({ |
| | | category: item[0], |
| | | details: item[1] |
| | | }) |
| | | details: item[1], |
| | | }); |
| | | } |
| | | this.setData({ |
| | | schedules, |
| | | totals |
| | | }) |
| | | totals, |
| | | }); |
| | | }, |
| | | |
| | | goto(e) { |
| | | var that = this |
| | | const index = e.currentTarget.dataset.index |
| | | const s = that.data.schedules[index[0]].details[index[1]].s |
| | | const _s = { |
| | | time: s.time.format('YYYY-MM-DD dddd'), |
| | | events: s.events, |
| | | diffDays: s.diffDays, |
| | | steps: s.steps, |
| | | category: s.category |
| | | } |
| | | console.log(that.data.schedules); |
| | | const index = e.currentTarget.dataset.index; |
| | | const s = this.data.schedules[index[0]].details[index[1]].s; |
| | | // const _s = { |
| | | // time: s.time.format('YYYY-MM-DD dddd'), |
| | | // events: s.events, |
| | | // diffDays: s.diffDays, |
| | | // steps: s.steps, |
| | | // category: s.category, |
| | | // }; |
| | | wx.navigateTo({ |
| | | url: '/pages/mService/pScheduledetail/pScheduledetail', |
| | | success: (res) => { |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', _s) |
| | | success: res => { |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', s); |
| | | }, |
| | | }) |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | }); |
| | |
| | | </view> |
| | | </view> |
| | | <view class="page__ft"> |
| | | <view>ä¸å¡æå¯¼ï¼ä¸æµ·å¸çæç¯å¢å±æ§æ³æ»é</view> |
| | | <!-- <view>ä¸å¡æå¯¼ï¼ä¸æµ·å¸çæç¯å¢å±æ§æ³æ»é</view> --> |
| | | <view>ææ¯æ¯æï¼ä¸æµ·é£ç¾½ç¯ä¿ç§ææéå
¬å¸</view> |
| | | </view> |
| | | </view> |
| | |
| | | bind:click="onDeleteDevice" |
| | | /> |
| | | </view> |
| | | <c-form form="{{item}}" data-index="{{index}}" bind:itemChange="onDeviceChange"></c-form> |
| | | <c-form |
| | | form="{{item}}" |
| | | data-index="{{index}}" |
| | | bind:itemChange="onDeviceChange" |
| | | ></c-form> |
| | | <!-- <template is="sceneInfo" data="{{ msg: item }}" /> --> |
| | | <!-- <view style="padding: 0 10px;background-color: white;"> |
| | | <mp-cells> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="page__ft"> |
| | | <view>ä¸å¡æå¯¼ï¼ä¸æµ·å¸çæç¯å¢å±æ§æ³æ»é</view> |
| | | <!-- <view>ä¸å¡æå¯¼ï¼ä¸æµ·å¸çæç¯å¢å±æ§æ³æ»é</view> --> |
| | | <view>ææ¯æ¯æï¼ä¸æµ·é£ç¾½ç¯ä¿ç§ææéå
¬å¸</view> |
| | | </view> |
| | | </view> |
| | |
| | | fun.url = bUrl + url; |
| | | } |
| | | var fun1 = util.deepCopy(fun); |
| | | if (mode == 'debug') { |
| | | console.log( |
| | | '|------------------------------------------------------------------------------------------------------------', |
| | | ); |
| | | console.log('|--访é®: ', fun.url); |
| | | console.log('|--åæ°: ', fun.data); |
| | | } |
| | | fun1.success = function (res) { |
| | | if (mode == 'debug') { |
| | | console.log( |
| | | '|------------------------------------------------------------------------------------------------------------', |
| | | ); |
| | | console.log('|--访é®: ', fun.url); |
| | | console.log('|--ç»æ: ', res); |
| | | } |
| | | |
| | |
| | | }; |
| | | fun1.fail = function (error) { |
| | | if (mode == 'debug') { |
| | | console.log('--------------请æ±é误----------------' + fun.url); |
| | | console.log(error); |
| | | console.log('|--é误: ', error); |
| | | } |
| | | wx.showToast({ |
| | | title: '请æ±å¤±è´¥', |