fix:调整已注册的卡片没有回调的问题

This commit is contained in:
liyi 2025-06-12 17:32:44 +08:00
parent d2071f2e88
commit 81bc00e03e
3 changed files with 47 additions and 45 deletions

View File

@ -35,9 +35,9 @@ Page({
}, },
observers: { observers: {
'weekDayInput': function(val) { 'weekDayInput': function (val) {
if (!val) { if (!val) {
this.setData({ this.setData({
weekDay: [], weekDay: [],
isRound: 0 isRound: 0
}); });
@ -70,9 +70,11 @@ Page({
console.log('收到卡片确认事件', data, this.data.cardId, this.data.cardNumber); console.log('收到卡片确认事件', data, this.data.cardId, this.data.cardNumber);
// 添加成功后自动刷新列表 // 添加成功后自动刷新列表
await this.findAllCard(); await this.findAllCard();
} else {
console.log('收到卡片确认事件', data, this.data.cardId, this.data.cardNumber);
} }
}); });
// 初始化时间 // 初始化时间
const now = new Date(); const now = new Date();
const nextHour = new Date(now.getTime() + 60 * 60 * 1000); const nextHour = new Date(now.getTime() + 60 * 60 * 1000);
@ -101,7 +103,7 @@ Page({
startDateDisplay: this.formatDateTime(now), startDateDisplay: this.formatDateTime(now),
endDateDisplay: this.formatDateTime(nextHour) endDateDisplay: this.formatDateTime(nextHour)
}); });
// 页面加载时获取卡片列表 // 页面加载时获取卡片列表
this.findAllCard(); this.findAllCard();
@ -129,29 +131,29 @@ Page({
const days = []; const days = [];
const hours = []; const hours = [];
const minutes = []; const minutes = [];
// 生成年份选项当前年份往后5年 // 生成年份选项当前年份往后5年
for(let i = date.getFullYear(); i <= date.getFullYear() + 5; i++) { for (let i = date.getFullYear(); i <= date.getFullYear() + 5; i++) {
years.push(i + '年'); years.push(i + '年');
} }
// 生成月份选项 - 显示1-12月 // 生成月份选项 - 显示1-12月
for(let i = 1; i <= 12; i++) { for (let i = 1; i <= 12; i++) {
months.push(i.toString().padStart(2, '0') + '月'); months.push(i.toString().padStart(2, '0') + '月');
} }
// 生成天数选项默认31天 // 生成天数选项默认31天
for(let i = 1; i <= 31; i++) { for (let i = 1; i <= 31; i++) {
days.push(i.toString().padStart(2, '0') + '日'); days.push(i.toString().padStart(2, '0') + '日');
} }
// 生成小时选项 // 生成小时选项
for(let i = 0; i < 24; i++) { for (let i = 0; i < 24; i++) {
hours.push(i.toString().padStart(2, '0') + '时'); hours.push(i.toString().padStart(2, '0') + '时');
} }
// 生成分钟选项 // 生成分钟选项
for(let i = 0; i < 60; i++) { for (let i = 0; i < 60; i++) {
minutes.push(i.toString().padStart(2, '0') + '分'); minutes.push(i.toString().padStart(2, '0') + '分');
} }
@ -163,14 +165,14 @@ Page({
onStartDateTimeChange(e) { onStartDateTimeChange(e) {
const val = e.detail.value; const val = e.detail.value;
const dateTimeArray = this.data.dateTimeArray; const dateTimeArray = this.data.dateTimeArray;
const yearStr = dateTimeArray[0][val[0]]; const yearStr = dateTimeArray[0][val[0]];
const year = parseInt(yearStr); const year = parseInt(yearStr);
const month = parseInt(dateTimeArray[1][val[1]]) - 1; // 转换为0-11的月份 const month = parseInt(dateTimeArray[1][val[1]]) - 1; // 转换为0-11的月份
const day = parseInt(dateTimeArray[2][val[2]]); const day = parseInt(dateTimeArray[2][val[2]]);
const hour = parseInt(dateTimeArray[3][val[3]]); const hour = parseInt(dateTimeArray[3][val[3]]);
const minute = parseInt(dateTimeArray[4][val[4]]); const minute = parseInt(dateTimeArray[4][val[4]]);
const date = new Date(); const date = new Date();
date.setFullYear(year); date.setFullYear(year);
date.setMonth(month); // 使用0-11的月份 date.setMonth(month); // 使用0-11的月份
@ -179,9 +181,9 @@ Page({
date.setMinutes(minute); date.setMinutes(minute);
date.setSeconds(0); date.setSeconds(0);
date.setMilliseconds(0); date.setMilliseconds(0);
const timestamp = date.getTime(); const timestamp = date.getTime();
this.setData({ this.setData({
startDateTimeArray: val, startDateTimeArray: val,
startDate: timestamp, startDate: timestamp,
@ -192,14 +194,14 @@ Page({
onEndDateTimeChange(e) { onEndDateTimeChange(e) {
const val = e.detail.value; const val = e.detail.value;
const dateTimeArray = this.data.dateTimeArray; const dateTimeArray = this.data.dateTimeArray;
const yearStr = dateTimeArray[0][val[0]]; const yearStr = dateTimeArray[0][val[0]];
const year = parseInt(yearStr); const year = parseInt(yearStr);
const month = parseInt(dateTimeArray[1][val[1]]) - 1; // 转换为0-11的月份 const month = parseInt(dateTimeArray[1][val[1]]) - 1; // 转换为0-11的月份
const day = parseInt(dateTimeArray[2][val[2]]); const day = parseInt(dateTimeArray[2][val[2]]);
const hour = parseInt(dateTimeArray[3][val[3]]); const hour = parseInt(dateTimeArray[3][val[3]]);
const minute = parseInt(dateTimeArray[4][val[4]]); const minute = parseInt(dateTimeArray[4][val[4]]);
const date = new Date(); const date = new Date();
date.setFullYear(year); date.setFullYear(year);
date.setMonth(month); // 使用0-11的月份 date.setMonth(month); // 使用0-11的月份
@ -208,9 +210,9 @@ Page({
date.setMinutes(minute); date.setMinutes(minute);
date.setSeconds(59); date.setSeconds(59);
date.setMilliseconds(999); date.setMilliseconds(999);
const timestamp = date.getTime(); const timestamp = date.getTime();
this.setData({ this.setData({
endDateTimeArray: val, endDateTimeArray: val,
endDate: timestamp, endDate: timestamp,
@ -237,15 +239,15 @@ Page({
const year = this.data.dateTimeArray[0][this.data[arrayName][0]]; const year = this.data.dateTimeArray[0][this.data[arrayName][0]];
const month = monthIndex + 1; const month = monthIndex + 1;
const days = new Date(parseInt(year), month, 0).getDate(); const days = new Date(parseInt(year), month, 0).getDate();
const newDays = []; const newDays = [];
for(let i = 1; i <= days; i++) { for (let i = 1; i <= days; i++) {
newDays.push(i.toString().padStart(2, '0') + '日'); newDays.push(i.toString().padStart(2, '0') + '日');
} }
const dateTimeArray = this.data.dateTimeArray; const dateTimeArray = this.data.dateTimeArray;
dateTimeArray[2] = newDays; dateTimeArray[2] = newDays;
this.setData({ this.setData({
dateTimeArray: dateTimeArray dateTimeArray: dateTimeArray
}); });
@ -307,8 +309,8 @@ Page({
try { try {
const app = getApp(); const app = getApp();
const { accountInfo } = app.globalData; const {accountInfo} = app.globalData;
const { lock } = app.globalData; const {lock} = app.globalData;
await selectLock({ await selectLock({
accountInfo: accountInfo, accountInfo: accountInfo,
@ -384,7 +386,7 @@ Page({
const registerExtendedProductsResult = await registerExtendedProducts(parms) const registerExtendedProductsResult = await registerExtendedProducts(parms)
console.log('registerExtendedProductsResult', registerExtendedProductsResult); console.log('registerExtendedProductsResult', registerExtendedProductsResult);
if (registerExtendedProductsResult.code === 0) { if (registerExtendedProductsResult.code === 0) {
// 操作成功后清空表单 // 操作成功后清空表单
this.setData({ this.setData({
@ -427,10 +429,10 @@ Page({
async findAllCard() { async findAllCard() {
const app = getApp(); const app = getApp();
const { lock } = app.globalData; const {lock} = app.globalData;
const result = await getIcCardList({lockId: lock.lockId}) const result = await getIcCardList({lockId: lock.lockId})
console.log('findAllCard', result) console.log('findAllCard', result)
// 处理返回的卡片列表数据 // 处理返回的卡片列表数据
const processedList = (result.data.list || []).map(card => { const processedList = (result.data.list || []).map(card => {
// 将周期数字转换为周几文本 // 将周期数字转换为周几文本
@ -509,7 +511,7 @@ Page({
onWeekdayPatternChange(e) { onWeekdayPatternChange(e) {
const index = e.detail.value; const index = e.detail.value;
let weekDay = []; let weekDay = [];
switch (index) { switch (index) {
case '0': // 工作日循环 case '0': // 工作日循环
weekDay = [2, 3, 4, 5, 6]; // 星期一到星期五 weekDay = [2, 3, 4, 5, 6]; // 星期一到星期五
@ -527,7 +529,7 @@ Page({
weekDay, weekDay,
isRound: weekDay.length > 0 ? 1 : 0 isRound: weekDay.length > 0 ? 1 : 0
}); });
console.log('周期模式变更:', this.data.weekdayPatterns[index], weekDay); console.log('周期模式变更:', this.data.weekdayPatterns[index], weekDay);
}, },
@ -540,22 +542,22 @@ Page({
weekDay, weekDay,
isRound: weekDay.length > 0 ? 1 : 0 isRound: weekDay.length > 0 ? 1 : 0
}); });
console.log('自定义周期变更:', weekDay); console.log('自定义周期变更:', weekDay);
}, },
// 修改选择卡片方法中的处理 // 修改选择卡片方法中的处理
selectCard(e) { selectCard(e) {
const cardData = e.currentTarget.dataset.card; const cardData = e.currentTarget.dataset.card;
// 处理循环数据 // 处理循环数据
let weekDay = []; let weekDay = [];
let weekdayPatternIndex = 0; let weekdayPatternIndex = 0;
if (cardData.weekDay && Array.isArray(cardData.weekDay)) { if (cardData.weekDay && Array.isArray(cardData.weekDay)) {
weekDay = cardData.weekDay; weekDay = cardData.weekDay;
weekDay.sort((a, b) => a - b); // 确保顺序一致 weekDay.sort((a, b) => a - b); // 确保顺序一致
// 判断是否符合预设模式 // 判断是否符合预设模式
const weekDayStr = weekDay.join(','); const weekDayStr = weekDay.join(',');
if (weekDayStr === '2,3,4,5,6') { if (weekDayStr === '2,3,4,5,6') {
@ -572,9 +574,9 @@ Page({
const endDateTime = new Date(Number(cardData.endDate) || 0); const endDateTime = new Date(Number(cardData.endDate) || 0);
// 提取时间部分 // 提取时间部分
const startTime = cardData.startTime || const startTime = cardData.startTime ||
`${startDateTime.getHours().toString().padStart(2, '0')}:${startDateTime.getMinutes().toString().padStart(2, '0')}`; `${startDateTime.getHours().toString().padStart(2, '0')}:${startDateTime.getMinutes().toString().padStart(2, '0')}`;
const endTime = cardData.endTime || const endTime = cardData.endTime ||
`${endDateTime.getHours().toString().padStart(2, '0')}:${endDateTime.getMinutes().toString().padStart(2, '0')}`; `${endDateTime.getHours().toString().padStart(2, '0')}:${endDateTime.getMinutes().toString().padStart(2, '0')}`;
// 格式化日期显示 // 格式化日期显示
@ -601,7 +603,7 @@ Page({
selectedCard: cardData selectedCard: cardData
}, () => { }, () => {
// 强制触发一次视图更新 // 强制触发一次视图更新
this.setData({ _forceUpdate: Date.now() }); this.setData({_forceUpdate: Date.now()});
}); });
}, },

8
package-lock.json generated
View File

@ -24,7 +24,7 @@
"@dcloudio/uni-mp-xhs": "3.0.0-4030620241128001", "@dcloudio/uni-mp-xhs": "3.0.0-4030620241128001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4030620241128001", "@dcloudio/uni-quickapp-webview": "3.0.0-4030620241128001",
"pinia": "^2.2.8", "pinia": "^2.2.8",
"star-cloud-uni": "^1.0.16", "star-cloud-uni": "^1.0.17",
"vue": "^3.5.13", "vue": "^3.5.13",
"vue-i18n": "^9.1.9" "vue-i18n": "^9.1.9"
}, },
@ -10046,9 +10046,9 @@
} }
}, },
"node_modules/star-cloud-uni": { "node_modules/star-cloud-uni": {
"version": "1.0.16", "version": "1.0.17",
"resolved": "https://registry.npmjs.org/star-cloud-uni/-/star-cloud-uni-1.0.16.tgz", "resolved": "https://registry.npmjs.org/star-cloud-uni/-/star-cloud-uni-1.0.17.tgz",
"integrity": "sha512-Q9KF7C41WD5KH3EePgkFTIxaLnbc/uL4N0iu6qzmZ+6N8bJIHQaJAcnJPho+TQVsnyv9fkTOR4bF0oOqqg/dGg==", "integrity": "sha512-xo34TDSasHRVIiPvE+a1Tuk3uB0CSJsGAsu/jpsAmT2lqfbQhJlwwZwA0WrZjxckLgYEwjzQKTj7AcPcbwOwqA==",
"dependencies": { "dependencies": {
"buffer": "^6.0.3", "buffer": "^6.0.3",
"crc": "^4.3.2", "crc": "^4.3.2",

View File

@ -52,7 +52,7 @@
"@dcloudio/uni-mp-xhs": "3.0.0-4030620241128001", "@dcloudio/uni-mp-xhs": "3.0.0-4030620241128001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4030620241128001", "@dcloudio/uni-quickapp-webview": "3.0.0-4030620241128001",
"pinia": "^2.2.8", "pinia": "^2.2.8",
"star-cloud-uni": "^1.0.16", "star-cloud-uni": "^1.0.17",
"vue": "^3.5.13", "vue": "^3.5.13",
"vue-i18n": "^9.1.9" "vue-i18n": "^9.1.9"
}, },