diff --git a/dist.zip b/dist.zip deleted file mode 100644 index b3ee4b0..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/index.html b/index.html index a888544..5b2f707 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - + - Vite App + 非遗小程序管理端
diff --git a/package-lock.json b/package-lock.json index 8acefd6..d296db3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -411,9 +411,9 @@ } }, "@floating-ui/dom": { - "version": "1.6.11", - "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.11.tgz", - "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "version": "1.6.12", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", "requires": { "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.8" @@ -786,9 +786,9 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "@types/lodash": { - "version": "4.17.12", - "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.12.tgz", - "integrity": "sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==" + "version": "4.17.13", + "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==" }, "@types/lodash-es": { "version": "4.17.12", @@ -1177,6 +1177,15 @@ "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1258,9 +1267,9 @@ "integrity": "sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==" }, "element-plus": { - "version": "2.8.6", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.6.tgz", - "integrity": "sha512-fk5jB8V3efM02/4roZ5SWOLArgaYXbxEydZLlXSr+KPAwjNyHBlk2+HO5em8YKo5+RLBoHnn6BaThj6IE4nXoQ==", + "version": "2.9.0", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.0.tgz", + "integrity": "sha512-ccOFXKsauo2dtokAr4OX7gZsb7TuAoVxA2zGRZo5o2yyDDBLBaZxOoFQPoxITSLcHbBfQuNDGK5Iag5hnyKkZA==", "requires": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -1270,7 +1279,7 @@ "@types/lodash-es": "^4.17.6", "@vueuse/core": "^9.1.0", "async-validator": "^4.2.5", - "dayjs": "^1.11.3", + "dayjs": "^1.11.13", "escape-html": "^1.0.3", "lodash": "^4.17.21", "lodash-es": "^4.17.21", @@ -1284,6 +1293,16 @@ "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, "esbuild": { "version": "0.21.5", "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", @@ -1474,6 +1493,13 @@ "unicorn-magic": "^0.1.0" } }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "optional": true + }, "hash-sum": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", @@ -1495,11 +1521,28 @@ "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==" }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "ignore": { "version": "5.3.2", "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==" }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, "immutable": { "version": "4.3.7", "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz", @@ -1537,6 +1580,12 @@ "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", @@ -1578,6 +1627,24 @@ "resolved": "https://registry.npmmirror.com/knitwork/-/knitwork-1.1.0.tgz", "integrity": "sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==" }, + "less": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/less/-/less-4.2.1.tgz", + "integrity": "sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + } + }, "local-pkg": { "version": "0.5.0", "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", @@ -1618,6 +1685,26 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + } + } + }, "memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", @@ -1648,6 +1735,13 @@ "picomatch": "^2.3.1" } }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", @@ -1746,6 +1840,17 @@ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" }, + "needle": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + } + }, "node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -1835,6 +1940,12 @@ "mimic-fn": "^4.0.0" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, "path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", @@ -1877,6 +1988,13 @@ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, "pinia": { "version": "2.2.4", "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.2.4.tgz", @@ -1922,6 +2040,13 @@ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, "querystring": { "version": "0.2.1", "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.1.tgz", @@ -1996,6 +2121,13 @@ "queue-microtask": "^1.2.2" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, "sass": { "version": "1.80.3", "resolved": "https://registry.npmmirror.com/sass/-/sass-1.80.3.tgz", @@ -2008,6 +2140,13 @@ "source-map-js": ">=0.6.2 <2.0.0" } }, + "sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "optional": true + }, "scule": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", @@ -2047,6 +2186,13 @@ "resolved": "https://registry.npmmirror.com/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==" }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, "source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2098,6 +2244,12 @@ "is-number": "^7.0.0" } }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true + }, "typescript": { "version": "5.4.5", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", diff --git a/package.json b/package.json index a4e9ec8..0ac6cc2 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "@element-plus/icons-vue": "^2.3.1", "axios": "^1.7.2", - "element-plus": "^2.7.5", + "element-plus": "^2.9.0", "mitt": "^3.0.1", "pinia": "^2.2.4", "pinia-plugin-persistedstate": "^4.1.2", @@ -26,6 +26,7 @@ "@types/node": "^20.17.6", "@vitejs/plugin-vue": "^5.0.4", "@vue/tsconfig": "^0.5.1", + "less": "^4.2.1", "npm-run-all2": "^6.1.2", "sass": "^1.77.5", "typescript": "~5.4.0", diff --git a/src/App.vue b/src/App.vue index e242ae8..edd88ac 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,14 @@ \ No newline at end of file diff --git a/src/layout/components/calendarUtil.vue b/src/layout/components/calendarUtil.vue new file mode 100644 index 0000000..aecb00f --- /dev/null +++ b/src/layout/components/calendarUtil.vue @@ -0,0 +1,219 @@ + + + + + \ No newline at end of file diff --git a/src/utils/dealStringArray.js b/src/utils/dealStringArray.js new file mode 100644 index 0000000..970dfac --- /dev/null +++ b/src/utils/dealStringArray.js @@ -0,0 +1,92 @@ +import { ElMessage } from 'element-plus'; + +const isNotValid = (val) => { + const timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])-(?:[0-1]?[0-9]|2[0-3]):([0-5]?[0-9])$/; + const rangeRegex = /^\(\d+,\d+\)$/ + return timeRegex.test(val.timeSlot) && rangeRegex.test(val.numberRange) +} + +const isValidPlus = (val) => { + const timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])-(?:[0-1]?[0-9]|2[0-3]):([0-5]?[0-9])$/; + const rangeRegex = /^\(\d+,\d+\)$/ + if(val.timeSlot === '' && val.numberRange === '') return false + if(timeRegex.test(val.timeSlot) && rangeRegex.test(val.numberRange)) return false + return true +} + +export const transfer = (val, arr, isAvailableArr) => { + console.log('这是val:', val) + for (var i = 0; i < val.length; i ++ ) { + for (var j = 0; j < val[i].length; j ++ ) { + arr[i][j].timeSlot = val[i][j].startTime + "-" + val[i][j].endTime + arr[i][j].numberRange = "(" + val[i][j].minNumValue + "," + val[i][j].maxNumValue + ")" + } + } + console.log('这是arr:', arr) + for (var i = 0; i < 4; i ++ ) { + for (var j = 0; j < 6; j ++ ) { + if(isValidPlus(arr[i][j])) { + ElMessage({ + type: 'error', + message: '请检查表单数据是否完整填写' + }) + return ; + } + } + } + let newArr = new Array(4) + for (var i = 0; i < 4; i ++ ) { + newArr[i] = { + timeSlot:'', + numberRange: '', + isAvailable: false + } + } + + let timeSlotArr = [] + let numberRangeArr = [] + let cnt = 0 + let k = 0 + for (var i = 0; i < val.length; i ++ ) { + for (var j = 0; j < val[i].length; j ++ ) { + if(isNotValid(arr[i][j])) { + timeSlotArr.push(arr[i][j].timeSlot) + numberRangeArr.push(arr[i][j].numberRange) + } + } + if(val[i].length == 0){ + newArr[i].timeSlot = "00:00-00:00" + newArr[i].numberRange = "(0,0)" + newArr[i].isAvailable = 0 + k ++ + cnt ++ + }else{ + newArr[i].timeSlot = timeSlotArr.join(';') + newArr[i].numberRange = numberRangeArr.join(';') + newArr[i].isAvailable = isAvailableArr[i] ? 1 : 0 + if(!isAvailableArr[i]) k ++ + } + if(cnt == 4) { + ElMessage({ + type: 'error', + message: '至少得有一个预约时间段' + }) + return ; + } + if(k == 4) { + ElMessage({ + type: 'error', + message: '至少有一天可以预约' + }) + return ; + } + timeSlotArr = [] + numberRangeArr = [] + } + ElMessage({ + type: 'success', + message: '时间段保存成功' + }) + // console.log(newArr) + return newArr +} \ No newline at end of file diff --git a/src/views/Commodity/MerchandiseCenter.vue b/src/views/Commodity/MerchandiseCenter.vue index dc48fb5..8ed2a3b 100644 --- a/src/views/Commodity/MerchandiseCenter.vue +++ b/src/views/Commodity/MerchandiseCenter.vue @@ -49,8 +49,6 @@ - -