diff --git a/components/calendar.vue b/components/calendar.vue index 77a50e1..3919347 100644 --- a/components/calendar.vue +++ b/components/calendar.vue @@ -22,23 +22,24 @@ + :class="((nowDay > item.date) && isShowBeforeDate) ? 'grayDate' : ''" v-if="monthShow"> {{ nowDay== item.date ? '今日' : item.day }} {{showLunar(item)}} - + + :class="((nowDay > getNowTime(item)) && isShowBeforeDate) ? 'grayDate' : ''" v-if="!monthShow"> {{ nowDay == getNowTime(item) ? '今日' : getNowTime(item).slice(-2) }} {{showLunar(getNowTime(item))}} - + + @@ -57,10 +58,15 @@ } from "../static/js/lunar.js" export default { props: { + // 展示阴历、不展示底部红点 isShowLunar: { type: Boolean, default: false }, + isShowBeforeDate: { + type: Boolean, + default: true + } }, data() { return { @@ -83,18 +89,65 @@ this.nowDay = this.getNowTime(new Date()) this.selectDay = this.getNowTime(new Date()) this.getWeekDates(new Date()) + this.$emit('changeDate', this.selectDay) }, methods: { // 选中日期 changeDate(item) { - if (this.nowDay <= item) { - this.year = Number(item.slice(0, 4)); - this.month = Number(item.slice(5, 7)); - this.day = Number(item.slice(8, 10)); - this.selectDay = item - - this.$emit('changeDate', this.selectDay) + if(this.nowDay > item && this.isShowBeforeDate) return; + this.year = Number(item.slice(0, 4)); + this.month = Number(item.slice(5, 7)); + this.day = Number(item.slice(8, 10)); + this.selectDay = item + + this.$emit('changeDate', this.selectDay) + }, + // 将日期格式/改为- + formatDate(dateStr) { + if (dateStr) { + return dateStr.replace(/^\D*(\d{4})\D*(\d{2})\D*(\d{2})\D*$/, '$1-$2-$3').replace(/^(\d{4})-(\d{0,2})-(\d{0,2})$/, (match, p1, p2, p3) => {return `${p1}-${String(p2).padStart(2, '0')}-${String(p3).padStart(2, '0')}`;}) + } + return + }, + // 获取当前日期是否有活动 + getActivityCalendarCount() { + if(this.isShowLunar) return; + let start = '' + let end = '' + if (!this.monthShow) { + start = this.getNowTime(this.weekDates[0]) + end = this.getNowTime(this.weekDates[6]) + } else{ + start = this.everyDay[0].date + end = this.everyDay.slice(-1)[0].date } + + this.Post({ + start_date: start, + end_date: end, + },'/api/Merchants/get_child_date_list').then(res => { + if (!this.monthShow) { //按周展示 + this.weekDates.forEach(day=> { + const date = this.formatDate(this.getNowTime(day)) + day.flag = 0 + res.data.forEach(item=> { + if (date == item) { + day.flag = 1 + } + }) + }) + } else{ //按月展示 + this.everyDay.forEach(day=> { + day.flag = 0 + res.data.forEach(item=> { + if (this.formatDate(day.date) == item) { + day.flag = 1 + } + }) + }) + } + this.$forceUpdate() + }) }, // 农历 showLunar(date) { @@ -151,6 +204,7 @@ } this.everyDay = dayArry; + this.getActivityCalendarCount(); this.resetDay(); }, getWeekday(day) { @@ -186,6 +240,8 @@ weekDates.push(date) } this.weekDates = weekDates + + if(this.weekDates.length > 0) this.getActivityCalendarCount(); }, // 切换上一周月、下一周月 preNextDate(e) { @@ -224,6 +280,7 @@ this.getPreviousWeekDates() } } + this.getActivityCalendarCount(); }, getPreviousWeekDates() { const today = this.weekDates[0] diff --git a/index.html b/index.html index c3ff205..470262f 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ '') - + 苏州市导游协会 diff --git a/package-lock.json b/package-lock.json index 5d39937..3c3008a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,22 +15,32 @@ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" }, "@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "requires": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.3" } }, "@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "requires": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, + "@types/dom-webcodecs": { + "version": "0.1.11", + "resolved": "https://registry.npmmirror.com/@types/dom-webcodecs/-/dom-webcodecs-0.1.11.tgz", + "integrity": "sha512-yPEZ3z7EohrmOxbk/QTAa0yonMFkNkjnVXqbGb7D4rMr+F1dGQ8ZUFxXkyLLJuiICPejZ0AZE9Rrk9wUCczx4A==" + }, + "@types/emscripten": { + "version": "1.39.13", + "resolved": "https://registry.npmmirror.com/@types/emscripten/-/emscripten-1.39.13.tgz", + "integrity": "sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==" + }, "@vue/compiler-sfc": { "version": "2.7.16", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", @@ -42,28 +52,13 @@ "source-map": "^0.6.1" } }, - "@zxing/library": { - "version": "0.18.6", - "resolved": "https://registry.npmmirror.com/@zxing/library/-/library-0.18.6.tgz", - "integrity": "sha512-bulZ9JHoLFd9W36pi+7e7DnEYNJhljYjZ1UTsKPOoLMU3qtC+REHITeCRNx40zTRJZx18W5TBRXt5pq2Uopjsw==", - "requires": { - "@zxing/text-encoding": "~0.9.0", - "ts-custom-error": "^3.0.0" - } - }, - "@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmmirror.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, "barcode-detector": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/barcode-detector/-/barcode-detector-0.5.0.tgz", - "integrity": "sha512-CL0ETCnLjaklGbFJeU1f5SU3CHVK1Tm+SjPbLKlt8iJ6Fqgc9yseNmWEpXSPmcGW3ET3rUwkWk2fXG+kcSbwBw==", + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/barcode-detector/-/barcode-detector-2.3.1.tgz", + "integrity": "sha512-D9KEtrquS1tmBZduxBZl8qublIKnRrFqD8TAHDYcLCyrHQBo+vitIxmjMJ61LvXjXyAMalOlO7q0Oh/9Rl2PbQ==", "requires": { - "@zxing/library": "^0.18.4", - "jsqr": "^1.3.1" + "@types/dom-webcodecs": "0.1.11", + "zxing-wasm": "1.3.4" } }, "callforth": { @@ -81,11 +76,6 @@ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "jsqr": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/jsqr/-/jsqr-1.4.0.tgz", - "integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==" - }, "nanoid": { "version": "3.3.8", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", @@ -135,11 +125,6 @@ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, - "ts-custom-error": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz", - "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==" - }, "vue": { "version": "2.7.16", "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz", @@ -150,11 +135,11 @@ } }, "vue-qrcode-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/vue-qrcode-reader/-/vue-qrcode-reader-3.0.0.tgz", - "integrity": "sha512-44TT0PQxMOBtSiJg+8/lM9jXGIBEtp2U3sy642uv13IfKquwEv1UtNyof2y8lILsRX7cn7xt0XkUahIHWyEXAQ==", + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/vue-qrcode-reader/-/vue-qrcode-reader-3.2.0.tgz", + "integrity": "sha512-4AReNyanD91GuZn/kRAUFwNrZVSlcr6Rid+a0PXqmZYgHyyCtAODce+S1c8kfOPBOIsQ69KP34HjhoyjAeNcyA==", "requires": { - "barcode-detector": "^0.5.0", + "barcode-detector": "^2.2.4", "callforth": "^0.3.1", "core-js": "^3.6.5", "vue": "^2.6.11", @@ -169,6 +154,14 @@ "rtcpeerconnection-shim": "^1.2.15", "sdp": "^2.12.0" } + }, + "zxing-wasm": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/zxing-wasm/-/zxing-wasm-1.3.4.tgz", + "integrity": "sha512-9l0QymyATF19FmI92QHe7Dayb+BUN7P7zFAt5iDgTnUf0dFWokz6GVA/W9EepjW5q8s3e89fIE/7uxpX27yqEQ==", + "requires": { + "@types/emscripten": "^1.39.13" + } } } } diff --git a/package.json b/package.json index 1e38e1d..90c723e 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "", "main": "main.js", "dependencies": { - "vue-qrcode-reader": "^3.0.0" + "vue-qrcode-reader": "^3.2.0" }, "devDependencies": {}, "scripts": { diff --git a/subPackages/order/orderDetail.vue b/subPackages/order/orderDetail.vue index 1ce9a61..4314bb2 100644 --- a/subPackages/order/orderDetail.vue +++ b/subPackages/order/orderDetail.vue @@ -1,14 +1,14 @@