Browse Source

修复按钮bug

test
lenghui 5 months ago
parent
commit
bea6a44eb5
  1. 640
      work/package-lock.json
  2. 8
      work/package.json
  3. 2
      work/src/api/index.js
  4. BIN
      work/src/assets/login/denglu.png
  5. BIN
      work/src/assets/login/mima.png
  6. 24
      work/src/router/index.js
  7. 22
      work/src/stores/token.js
  8. 22
      work/src/stores/user.js
  9. 270
      work/src/views/AddWorkView.vue
  10. 3
      work/src/views/DoHomeworkView.vue
  11. 110
      work/src/views/HomeView.vue
  12. 10
      work/src/views/LoginView.vue
  13. 6
      work/src/views/WorksShowView.vue
  14. 8
      work/vite.config.js

640
work/package-lock.json

@ -8,22 +8,28 @@
"name": "testvue3", "name": "testvue3",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@types/file-saver": "^2.0.7",
"@vueup/vue-quill": "^1.2.0", "@vueup/vue-quill": "^1.2.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.7.9", "axios": "^1.7.9",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"dayjs": "^1.11.13",
"echart": "^0.1.3", "echart": "^0.1.3",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"element-plus": "^2.9.0", "element-plus": "^2.9.0",
"elements": "^0.6.0",
"file-saver": "^2.0.5",
"pinia": "^2.2.6", "pinia": "^2.2.6",
"quill": "^2.0.3", "quill": "^2.0.3",
"vue": "^3.5.13", "vue": "^3.5.13",
"vue-quill-editor": "^3.0.6", "vue-quill-editor": "^3.0.6",
"vue-router": "^4.4.5"
"vue-router": "^4.4.5",
"xlsx": "^0.18.5"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue": "^5.2.1",
"sass-embedded": "^1.83.0",
"vite": "^6.0.1", "vite": "^6.0.1",
"vite-plugin-vue-devtools": "^7.6.5" "vite-plugin-vue-devtools": "^7.6.5"
} }
@ -508,6 +514,13 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@bufbuild/protobuf": {
"version": "2.2.3",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/@bufbuild/protobuf/-/protobuf-2.2.3.tgz",
"integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==",
"dev": true,
"license": "(Apache-2.0 AND BSD-3-Clause)"
},
"node_modules/@ctrl/tinycolor": { "node_modules/@ctrl/tinycolor": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
@ -712,6 +725,12 @@
"resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==" "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ=="
}, },
"node_modules/@types/file-saver": {
"version": "2.0.7",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/@types/file-saver/-/file-saver-2.0.7.tgz",
"integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==",
"license": "MIT"
},
"node_modules/@types/lodash": { "node_modules/@types/lodash": {
"version": "4.17.13", "version": "4.17.13",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/@types/lodash/-/lodash-4.17.13.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/@types/lodash/-/lodash-4.17.13.tgz",
@ -1284,6 +1303,15 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/adler-32": {
"version": "1.3.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/adler-32/-/adler-32-1.3.1.tgz",
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
}
},
"node_modules/any-promise": { "node_modules/any-promise": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/any-promise/-/any-promise-1.3.0.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/any-promise/-/any-promise-1.3.0.tgz",
@ -1356,6 +1384,13 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
} }
}, },
"node_modules/buffer-builder": {
"version": "0.2.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/buffer-builder/-/buffer-builder-0.2.0.tgz",
"integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==",
"dev": true,
"license": "MIT/X11"
},
"node_modules/bundle-name": { "node_modules/bundle-name": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/bundle-name/-/bundle-name-4.1.0.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/bundle-name/-/bundle-name-4.1.0.tgz",
@ -1406,6 +1441,19 @@
], ],
"license": "CC-BY-4.0" "license": "CC-BY-4.0"
}, },
"node_modules/cfb": {
"version": "1.2.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/cfb/-/cfb-1.2.2.tgz",
"integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
"license": "Apache-2.0",
"dependencies": {
"adler-32": "~1.3.0",
"crc-32": "~1.2.0"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/clone": { "node_modules/clone": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz", "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz",
@ -1424,6 +1472,22 @@
"node": ">= 0.12.0" "node": ">= 0.12.0"
} }
}, },
"node_modules/codepage": {
"version": "1.15.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/codepage/-/codepage-1.15.0.tgz",
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
}
},
"node_modules/colorjs.io": {
"version": "0.5.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/colorjs.io/-/colorjs.io-0.5.2.tgz",
"integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==",
"dev": true,
"license": "MIT"
},
"node_modules/combined-stream": { "node_modules/combined-stream": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/combined-stream/-/combined-stream-1.0.8.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/combined-stream/-/combined-stream-1.0.8.tgz",
@ -1498,6 +1562,18 @@
"url": "https://github.com/sponsors/mesqueeb" "url": "https://github.com/sponsors/mesqueeb"
} }
}, },
"node_modules/crc-32": {
"version": "1.2.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/crc-32/-/crc-32-1.2.2.tgz",
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"license": "Apache-2.0",
"bin": {
"crc32": "bin/crc32.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/cross-spawn": { "node_modules/cross-spawn": {
"version": "7.0.6", "version": "7.0.6",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/cross-spawn/-/cross-spawn-7.0.6.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/cross-spawn/-/cross-spawn-7.0.6.tgz",
@ -1715,6 +1791,20 @@
"vue": "^3.2.0" "vue": "^3.2.0"
} }
}, },
"node_modules/elements": {
"version": "0.6.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/elements/-/elements-0.6.0.tgz",
"integrity": "sha512-i/PEUAMJxPcjk03mUD0ihNmnutoc/c6/gPJ3rKR8ETIZNCVAavrWPcoVX8HmEzKqY1SBLZulAQMM6nF5a6oWRg==",
"license": "MIT (http://mootools.net/license.txt)",
"dependencies": {
"mout": "^0.11.0",
"prime": "^0.5.0",
"slick": "^1.12.2"
},
"engines": {
"node": "*"
}
},
"node_modules/encodeurl": { "node_modules/encodeurl": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/encodeurl/-/encodeurl-1.0.2.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/encodeurl/-/encodeurl-1.0.2.tgz",
@ -1934,6 +2024,12 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/file-saver": {
"version": "2.0.5",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==",
"license": "MIT"
},
"node_modules/follow-redirects": { "node_modules/follow-redirects": {
"version": "1.15.9", "version": "1.15.9",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/follow-redirects/-/follow-redirects-1.15.9.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/follow-redirects/-/follow-redirects-1.15.9.tgz",
@ -1968,6 +2064,15 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/frac": {
"version": "1.1.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
}
},
"node_modules/fresh": { "node_modules/fresh": {
"version": "0.5.2", "version": "0.5.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/fresh/-/fresh-0.5.2.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/fresh/-/fresh-0.5.2.tgz",
@ -2036,6 +2141,16 @@
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/has-symbols": { "node_modules/has-symbols": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/has-symbols/-/has-symbols-1.1.0.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/has-symbols/-/has-symbols-1.1.0.tgz",
@ -2157,6 +2272,13 @@
"url": "https://opencollective.com/immer" "url": "https://opencollective.com/immer"
} }
}, },
"node_modules/immutable": {
"version": "5.0.3",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/immutable/-/immutable-5.0.3.tgz",
"integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==",
"dev": true,
"license": "MIT"
},
"node_modules/inherits": { "node_modules/inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz",
@ -2603,6 +2725,12 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/mout": {
"version": "0.11.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/mout/-/mout-0.11.1.tgz",
"integrity": "sha512-pK9VNiLE3QgGBrC/3ICAscwOLU7oTNeK2l32uqNAioBYtB2tQAfSsGDNChUlk7CP23126mc5lUt6+na9FlN8JA==",
"license": "MIT"
},
"node_modules/mrmime": { "node_modules/mrmime": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/mrmime/-/mrmime-2.0.0.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/mrmime/-/mrmime-2.0.0.tgz",
@ -2897,6 +3025,15 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/prime": {
"version": "0.5.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/prime/-/prime-0.5.0.tgz",
"integrity": "sha512-Ic75Ki5IFgotMS4QFgalL/xw/s1Zg3Flp4IzOjaq3ZldB2x/Lc5HvbAOkMb4GA8T1iIhtWBTbxAWpZxu9UJQeA==",
"license": "MIT",
"dependencies": {
"mout": "^0.11.0"
}
},
"node_modules/prismjs": { "node_modules/prismjs": {
"version": "1.29.0", "version": "1.29.0",
"resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz", "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz",
@ -3001,6 +3138,16 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/rxjs": {
"version": "7.8.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/rxjs/-/rxjs-7.8.1.tgz",
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/safe-buffer": { "node_modules/safe-buffer": {
"version": "5.2.1", "version": "5.2.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.2.1.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.2.1.tgz",
@ -3021,6 +3168,391 @@
], ],
"license": "MIT" "license": "MIT"
}, },
"node_modules/sass-embedded": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded/-/sass-embedded-1.83.0.tgz",
"integrity": "sha512-/8cYZeL39evUqe0o//193na51Q1VWZ61qhxioQvLJwOtWIrX+PgNhCyD8RSuTtmzc4+6+waFZf899bfp/MCUwA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bufbuild/protobuf": "^2.0.0",
"buffer-builder": "^0.2.0",
"colorjs.io": "^0.5.0",
"immutable": "^5.0.2",
"rxjs": "^7.4.0",
"supports-color": "^8.1.1",
"sync-child-process": "^1.0.2",
"varint": "^6.0.0"
},
"bin": {
"sass": "dist/bin/sass.js"
},
"engines": {
"node": ">=16.0.0"
},
"optionalDependencies": {
"sass-embedded-android-arm": "1.83.0",
"sass-embedded-android-arm64": "1.83.0",
"sass-embedded-android-ia32": "1.83.0",
"sass-embedded-android-riscv64": "1.83.0",
"sass-embedded-android-x64": "1.83.0",
"sass-embedded-darwin-arm64": "1.83.0",
"sass-embedded-darwin-x64": "1.83.0",
"sass-embedded-linux-arm": "1.83.0",
"sass-embedded-linux-arm64": "1.83.0",
"sass-embedded-linux-ia32": "1.83.0",
"sass-embedded-linux-musl-arm": "1.83.0",
"sass-embedded-linux-musl-arm64": "1.83.0",
"sass-embedded-linux-musl-ia32": "1.83.0",
"sass-embedded-linux-musl-riscv64": "1.83.0",
"sass-embedded-linux-musl-x64": "1.83.0",
"sass-embedded-linux-riscv64": "1.83.0",
"sass-embedded-linux-x64": "1.83.0",
"sass-embedded-win32-arm64": "1.83.0",
"sass-embedded-win32-ia32": "1.83.0",
"sass-embedded-win32-x64": "1.83.0"
}
},
"node_modules/sass-embedded-android-arm": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-android-arm/-/sass-embedded-android-arm-1.83.0.tgz",
"integrity": "sha512-uwFSXzJlfbd4Px189xE5l+cxN8+TQpXdQgJec7TIrb4HEY7imabtpYufpVdqUVwT1/uiis5V4+qIEC4Vl5XObQ==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-android-arm64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.83.0.tgz",
"integrity": "sha512-GBiCvM4a2rkWBLdYDxI6XYnprfk5U5c81g69RC2X6kqPuzxzx8qTArQ9M6keFK4+iDQ5N9QTwFCr0KbZTn+ZNQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-android-ia32": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.83.0.tgz",
"integrity": "sha512-5ATPdGo2SICqAhiJl/Z8KQ23zH4sGgobGgux0TnrNtt83uHZ+r+To/ubVJ7xTkZxed+KJZnIpolGD8dQyQqoTg==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-android-riscv64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.83.0.tgz",
"integrity": "sha512-aveknUOB8GZewOzVn2Uwk+DKcncTR50Q6vtzslNMGbYnxtgQNHzy8A1qVEviNUruex+pHofppeMK4iMPFAbiEQ==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-android-x64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-android-x64/-/sass-embedded-android-x64-1.83.0.tgz",
"integrity": "sha512-WqIay/72ncyf9Ph4vS742J3a73wZihWmzFUwpn1OD6lme1Aj4eWzWIve5IVnlTEJgcZcDHu6ECID9IZgehJKoA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-darwin-arm64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.83.0.tgz",
"integrity": "sha512-XQl9QqgxFFIPm/CzHhmppse5o9ocxrbaAdC2/DAnlAqvYWBBtgFqPjGoYlej13h9SzfvNoogx+y9r+Ap+e+hYg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-darwin-x64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.83.0.tgz",
"integrity": "sha512-ERQ7Tvp1kFOW3ux4VDFIxb7tkYXHYc+zJpcrbs0hzcIO5ilIRU2tIOK1OrNwrFO6Qxyf7AUuBwYKLAtIU/Nz7g==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-arm": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.83.0.tgz",
"integrity": "sha512-baG9RYBJxUFmqwDNC9h9ZFElgJoyO3jgHGjzEZ1wHhIS9anpG+zZQvO8bHx3dBpKEImX+DBeLX+CxsFR9n81gQ==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-arm64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.83.0.tgz",
"integrity": "sha512-syEAVTJt4qhaMLxrSwOWa46zdqHJdnqJkLUK+t9aCr8xqBZLPxSUeIGji76uOehQZ1C+KGFj6n9xstHN6wzOJw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-ia32": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.83.0.tgz",
"integrity": "sha512-RRBxQxMpoxu5+XcSSc6QR/o9asEwUzR8AbCS83RaXcdTIHTa/CccQsiAoDDoPlRsMTLqnzs0LKL4CfOsf7zBbA==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-musl-arm": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.83.0.tgz",
"integrity": "sha512-Yc7u2TelCfBab+PRob9/MNJFh3EooMiz4urvhejXkihTiKSHGCv5YqDdtWzvyb9tY2Jb7YtYREVuHwfdVn3dTQ==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-musl-arm64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.83.0.tgz",
"integrity": "sha512-Y7juhPHClUO2H5O+u+StRy6SEAcwZ+hTEk5WJdEmo1Bb1gDtfHvJaWB/iFZJ2tW0W1e865AZeUrC4OcOFjyAQA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-musl-ia32": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.83.0.tgz",
"integrity": "sha512-arQeYwGmwXV8byx5G1PtSzZWW1jbkfR5qrIHMEbTFSAvAxpqjgSvCvrHMOFd73FcMxVaYh4BX9LQNbKinkbEdg==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-musl-riscv64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.83.0.tgz",
"integrity": "sha512-E6uzlIWz59rut+Z3XR6mLG915zNzv07ISvj3GUNZENdHM7dF8GQ//ANoIpl5PljMQKp89GnYdvo6kj2gnaBf/g==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-musl-x64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.83.0.tgz",
"integrity": "sha512-eAMK6tyGqvqr21r9g8BnR3fQc1rYFj85RGduSQ3xkITZ6jOAnOhuU94N5fwRS852Hpws0lXhET+7JHXgg3U18w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-riscv64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.83.0.tgz",
"integrity": "sha512-Ojpi78pTv02sy2fUYirRGXHLY3fPnV/bvwuC2i5LwPQw2LpCcFyFTtN0c5h4LJDk9P6wr+/ZB/JXU8tHIOlK+Q==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-linux-x64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.83.0.tgz",
"integrity": "sha512-3iLjlXdoPfgZRtX4odhRvka1BQs5mAXqfCtDIQBgh/o0JnGPzJIWWl9bYLpHxK8qb+uyVBxXYgXpI0sCzArBOw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-win32-arm64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.83.0.tgz",
"integrity": "sha512-iOHw/8/t2dlTW3lOFwG5eUbiwhEyGWawivlKWJ8lkXH7fjMpVx2VO9zCFAm8RvY9xOHJ9sf1L7g5bx3EnNP9BQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-win32-ia32": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.83.0.tgz",
"integrity": "sha512-2PxNXJ8Pad4geVcTXY4rkyTr5AwbF8nfrCTDv0ulbTvPhzX2mMKEGcBZUXWn5BeHZTBc6whNMfS7d5fQXR9dDQ==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-embedded-win32-x64": {
"version": "1.83.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.83.0.tgz",
"integrity": "sha512-muBXkFngM6eLTNqOV0FQi7Dv9s+YRQ42Yem26mosdan/GmJQc81deto6uDTgrYn+bzFNmiXcOdfm+0MkTWK3OQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/scroll-into-view-if-needed": { "node_modules/scroll-into-view-if-needed": {
"version": "2.2.31", "version": "2.2.31",
"resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
@ -3117,6 +3649,15 @@
"slate": ">=0.65.3" "slate": ">=0.65.3"
} }
}, },
"node_modules/slick": {
"version": "1.12.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/slick/-/slick-1.12.2.tgz",
"integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==",
"license": "MIT (http://mootools.net/license.txt)",
"engines": {
"node": "*"
}
},
"node_modules/snabbdom": { "node_modules/snabbdom": {
"version": "3.6.2", "version": "3.6.2",
"resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.2.tgz", "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.2.tgz",
@ -3144,6 +3685,18 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/ssf": {
"version": "0.11.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/ssf/-/ssf-0.11.2.tgz",
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"license": "Apache-2.0",
"dependencies": {
"frac": "~1.1.2"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/ssr-window": { "node_modules/ssr-window": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz",
@ -3184,12 +3737,51 @@
"node": ">=16" "node": ">=16"
} }
}, },
"node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/svg-tags": { "node_modules/svg-tags": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/svg-tags/-/svg-tags-1.0.0.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/svg-tags/-/svg-tags-1.0.0.tgz",
"integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
"dev": true "dev": true
}, },
"node_modules/sync-child-process": {
"version": "1.0.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sync-child-process/-/sync-child-process-1.0.2.tgz",
"integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==",
"dev": true,
"license": "MIT",
"dependencies": {
"sync-message-port": "^1.0.0"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/sync-message-port": {
"version": "1.1.3",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/sync-message-port/-/sync-message-port-1.1.3.tgz",
"integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/tiny-warning": { "node_modules/tiny-warning": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
@ -3307,6 +3899,13 @@
"integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/varint": {
"version": "6.0.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
"dev": true,
"license": "MIT"
},
"node_modules/vary": { "node_modules/vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/vary/-/vary-1.1.2.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/vary/-/vary-1.1.2.tgz",
@ -3613,6 +4212,45 @@
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
}, },
"node_modules/wmf": {
"version": "1.0.2",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
}
},
"node_modules/word": {
"version": "0.3.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
}
},
"node_modules/xlsx": {
"version": "0.18.5",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/xlsx/-/xlsx-0.18.5.tgz",
"integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
"license": "Apache-2.0",
"dependencies": {
"adler-32": "~1.3.0",
"cfb": "~1.2.1",
"codepage": "~1.15.0",
"crc-32": "~1.2.1",
"ssf": "~0.11.2",
"wmf": "~1.0.1",
"word": "~0.3.0"
},
"bin": {
"xlsx": "bin/xlsx.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/yallist": { "node_modules/yallist": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/yallist/-/yallist-3.1.1.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/yallist/-/yallist-3.1.1.tgz",

8
work/package.json

@ -9,22 +9,28 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@types/file-saver": "^2.0.7",
"@vueup/vue-quill": "^1.2.0", "@vueup/vue-quill": "^1.2.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.7.9", "axios": "^1.7.9",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"dayjs": "^1.11.13",
"echart": "^0.1.3", "echart": "^0.1.3",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"element-plus": "^2.9.0", "element-plus": "^2.9.0",
"elements": "^0.6.0",
"file-saver": "^2.0.5",
"pinia": "^2.2.6", "pinia": "^2.2.6",
"quill": "^2.0.3", "quill": "^2.0.3",
"vue": "^3.5.13", "vue": "^3.5.13",
"vue-quill-editor": "^3.0.6", "vue-quill-editor": "^3.0.6",
"vue-router": "^4.4.5"
"vue-router": "^4.4.5",
"xlsx": "^0.18.5"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue": "^5.2.1",
"sass-embedded": "^1.83.0",
"vite": "^6.0.1", "vite": "^6.0.1",
"vite-plugin-vue-devtools": "^7.6.5" "vite-plugin-vue-devtools": "^7.6.5"
}, },

2
work/src/api/index.js

@ -9,7 +9,7 @@ service.interceptors.request.use(
config => { config => {
// 假设你的token存储在Vuex、Pinia或者本地存储中,这里直接用一个变量代替 // 假设你的token存储在Vuex、Pinia或者本地存储中,这里直接用一个变量代替
// 请确保在实际应用中从安全的地方获取token // 请确保在实际应用中从安全的地方获取token
const token = "9H0l5gBX0kPIbYe1rBrnbZi0+fEeMx8pywnIlrmTxo5EOPR/wjWDV7w7+ZUseiBtf9kFa/atmNx6QfSpv5w";
const token = "9ior41AF0xTIbIG2pRnnbZi0+fEeMx8pywnIlrmTwo5FbqJ9lWrSWOxp9MkpKiNtedtUafqvzIwpFKrwuMs";
if (token) { if (token) {
config.headers['token'] = ` ${token}`; config.headers['token'] = ` ${token}`;
} }

BIN
work/src/assets/login/denglu.png

After

Width: 200  |  Height: 200  |  Size: 3.5 KiB

BIN
work/src/assets/login/mima.png

After

Width: 200  |  Height: 200  |  Size: 3.5 KiB

24
work/src/router/index.js

@ -1,29 +1,11 @@
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
import LoginView from '../views/LoginView.vue'
import AddWorkView from '../views/AddWorkView.vue'
import WorksShowView from '../views/WorksShowView.vue'
import { createRouter, createWebHistory } from 'vue-router';
import WorksShowView from '../views/WorksShowView.vue';
import DoHomeworkView from "@/views/DoHomeworkView.vue"; import DoHomeworkView from "@/views/DoHomeworkView.vue";
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
history: createWebHistory(),
routes: [ routes: [
{ {
path: '/',
name: 'login',
component: LoginView,
},
{
path: '/home',
name: 'home',
component: HomeView,
},
{
path:'/addwork',
name:'addwork',
component: AddWorkView
},
{
path: '/show', path: '/show',
name: 'workshow', name: 'workshow',
component: WorksShowView component: WorksShowView

22
work/src/stores/token.js

@ -0,0 +1,22 @@
import {defineStore} from 'pinia';
/*
使用pinia进行状态管理,不能刷新页面
Vue中将一些全局的数据保存在某个位置Vue项目的任何一个组件中都可以访问它
*/
export const useTokenStore = defineStore('token',{
//状态管理
state:()=>({
token: sessionStorage.getItem('token'),
}),
actions:{
changeToken(token){
this.token = token;
//长久保存token
sessionStorage.setItem('token', token)
},
clear(){
this.token = null;
sessionStorage.removeItem('token');
}
}
});

22
work/src/stores/user.js

@ -0,0 +1,22 @@
import {defineStore} from 'pinia';
/*
使用pinia进行状态管理,不能刷新页面
Vue中将一些全局的数据保存在某个位置Vue项目的任何一个组件中都可以访问它
*/
export const useUserStore = defineStore('user',{
//状态管理
state:()=>({
user: JSON.parse(sessionStorage.getItem('user')),
}),
actions:{
changeUser(user){
this.user = user;
//长久保存token
sessionStorage.setItem('user', JSON.stringify(user)); //sessionStorage中只能保存字符串
},
clear(){
this.user = null;
sessionStorage.removeItem('user');
}
}
});

270
work/src/views/AddWorkView.vue

@ -1,270 +0,0 @@
<template>
<div class="common-layout">
<el-container>
<el-header class="header">
<el-text class="header-text">抢点班作业后台管理</el-text>
<el-button class="header-button" type="primary" text style="float: right;">退出登录</el-button>
</el-header>
<el-main class="main">
<div class="main-title">
<div class="main-title-text" style="float: left;">
新建作业
</div>
<div>
<el-button class="main-button" @click="back">返回上一页</el-button>
</div>
</div>
<div class="main-back">
<el-form :model="form" label-width="auto" style="max-width: 700px" size="large">
<el-form-item label="作业名称">
<el-input placeholder="请输入" />
</el-form-item>
<el-form-item label="提交时间" style="width: 70%">
<el-date-picker v-model="value" type="daterange" range-separator="" start-placeholder="开始日期"
end-placeholder="结束日期" />
</el-form-item>
<el-form-item label="作业归属">
<el-select v-model="value" placeholder="请选择" style="width: 100%">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="关联文章">
<el-input placeholder="请输入" />
</el-form-item>
<el-form-item label="关联直播">
<el-select v-model="value" placeholder="请选择" style="width: 100%">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="选择类型">
<div>
<el-button type="primary" @click="addSingleChoice">添加单选</el-button>
<el-button type="primary" @click="addMultipleChoice">添加多选</el-button>
<el-button type="primary" @click="addBlank">添加单选填空</el-button>
</div>
</el-form-item>
<div class="question-container" v-for="(question, index) in questions" :key="index">
{{ question.type === 'single' ? '作业题目(单选)' : (question.type === 'multiple' ? '作业题目(多选)' : '作业题目(简答题)')
}}
<div style="width: 600px;">
<el-input v-model="question.title" placeholder="作业题目" />
</div>
<div class="add" v-if="question.type !== 'blank'">
<el-form-item label="设置选项:">
<el-button type="primary" text @click="addOption(index)">添加</el-button>
</el-form-item>
<div v-for="(option, optionIndex) in question.options" :key="optionIndex">
<div class="select" style="display: flex;">
<div class="selection-item" style="display: flex;">
<div style="width: 550px;">
<el-input :value="option" @input="(e) => updateOption(index, optionIndex, e.target.value)" />
</div>
<div>
<el-button type="primary" text @click="removeOption(index, optionIndex)">删除</el-button>
</div>
</div>
</div>
</div>
<div class="delete" style="margin-left: 50px;">
<el-button type="info" plain @click="removeQuestion(index)">删除</el-button>
</div>
</div>
</div>
</el-form>
</div>
</el-main>
</el-container>
</div>
</template>
<script lang="ts" setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'
import { reactive } from 'vue'
// do not use same name with ref
const form = reactive({
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: '',
})
const onSubmit = () => {
console.log('submit!')
}
const back = () => {
window.history.back()
}
const value = ref('')
const options = [
{
value: '牧民俱乐部',
label: '牧民俱乐部',
},
{
value: '博股论坛',
label: '博股论坛',
},
{
value: '神枪手俱乐部',
label: '神枪手俱乐部',
},
{
value: '环球俱乐部',
label: '环球俱乐部',
},
{
value: '价值投资',
label: '价值投资',
},
{
value: '波段行情',
label: '波段行情',
},
{
value: '抄底卖顶',
label: '抄底卖顶',
},
{
value: '资金及仓位管理',
label: '资金及仓位管理',
},
{
value: '财富的游戏',
label: '财富的游戏',
},
]
const questions = ref([]);
const addSingleChoice = () => {
questions.value.push({
type: 'single',
title: '',
options: []
});
};
const addMultipleChoice = () => {
questions.value.push({
type: 'multiple',
title: '',
options: []
});
};
const addBlank = () => {
questions.value.push({
type: 'blank',
title: ''
});
};
const addOption = (questionIndex) => {
questions.value[questionIndex].options.push('');
};
const removeOption = (questionIndex, optionIndex) => {
questions.value[questionIndex].options.splice(optionIndex, 1);
};
const removeQuestion = (questionIndex) => {
questions.value.splice(questionIndex, 1);
};
const updateOption = (questionIndex, optionIndex, newValue) => {
questions.value[questionIndex].options[optionIndex] = newValue;
};
</script>
<style scoped>
.select{
margin: 20px 0px 0px;
}
.delete{
position: absolute;
right: 10px;
bottom: 0px;
}
.add{
position: relative;
}
.question-container {
margin: 20px 0;
padding: 10px 20px;
width: 750px;
border-bottom: 1px solid #e5e5e5;
}
.header {
height: 100px;
line-height: 100px;
padding: 0 80px;
}
.header-text {
font-size: 22px;
font-weight: 500;
color: black;
float: left;
}
.header-button {
margin-top: 30px;
}
.main {
padding: 30px 212px;
background-color: #F8F8F8;
}
.main-title {
font-size: 16px;
background-color: white;
font-weight: bold;
height: 60px;
border-bottom: 2px solid #ececec;
padding: 0 15px;
line-height: 52px;
}
.main-button {
margin: 10px 15px 0 0;
padding: 12px 20px;
height: 40px;
float: right;
}
.el-form {
padding: 30px 78.5px;
margin: auto;
}
.el-form-item {
--font-size: 16px;
margin: 0 0 25px;
}
.main-back {
background-color: white;
}
</style>

3
work/src/views/DoHomeworkView.vue

@ -98,7 +98,6 @@ import '@wangeditor/editor/dist/css/style.css' // 引入 css
import { onBeforeUnmount } from 'vue' import { onBeforeUnmount } from 'vue'
import { Editor, Toolbar } from '@wangeditor/editor-for-vue' import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import axios from "axios";
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
@ -191,8 +190,6 @@ questionList.value.forEach(() => {
selectedAnswers.value.push([]); selectedAnswers.value.push([]);
}); });
// groupId // groupId
function submit() { function submit() {
homework.value = []; homework.value = [];

110
work/src/views/HomeView.vue

@ -1,110 +0,0 @@
<template>
<div class="common-layout">
<el-container>
<el-header class="header">
<el-text class="header-text">抢点班作业后台管理</el-text>
<el-button class="header-button" type="primary" text style="float: right;">退出登录</el-button>
</el-header>
<el-main class="main">
<div class="main-title">
抢点班作业列表
</div>
<div class="list">
<el-button class="main-button" type="primary" style="float: left;" @click="newAssignment">新建作业</el-button>
<el-table :data="assignments" style="width: 100%">
<el-table-column prop="id" label="序号" width="80"></el-table-column>
<el-table-column prop="name" label="作业名称"></el-table-column>
<el-table-column prop="contentSummary" label="内容概要"></el-table-column>
<el-table-column prop="relatedArticle" label="关联文章"></el-table-column>
<el-table-column prop="relatedVideo" label="关联直播"></el-table-column>
<el-table-column prop="submissionCount" label="填写份数"></el-table-column>
<el-table-column prop="submissionDeadline" label="提交时间"></el-table-column>
<el-table-column prop="status" label="状态"></el-table-column>
<el-table-column prop="time" label="发布时间"></el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button type="text" @click="viewDetails(scope.row)">查看明细</el-button>
<el-button type="text" @click="editAssignment(scope.row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-main>
</el-container>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'
import router from '../router';
const assignments = ref([])
const newAssignment = () => {
router.push('/addwork')
}
const viewDetails = (row) => {
console.log(`查看作业 ${row.name} 的明细`)
}
const editAssignment = (row) => {
console.log(`编辑作业 ${row.name}`)
}
onMounted(() => {
axios.get('/api/assignments') // API/api/assignments
.then((response) => {
assignments.value = response.data
})
.catch((error) => {
console.error('获取作业列表失败', error)
})
})
</script>
<style scoped>
.header {
height: 100px;
line-height: 100px;
padding: 0 80px;
}
.header-text {
font-size: 22px;
font-weight: 500;
color: black;
float: left;
}
.header-button {
margin-top: 30px;
}
.main {
padding: 20px 203px;
background-color: #F8F8F8;
}
.list {
padding: 0 60px;
background-color: white;
}
.main-title {
font-size: 16px;
background-color: white;
font-weight: bold;
height: 52px;
border-bottom:2px solid #ececec;
padding: 0 60px;
line-height: 52px;
}
.main-button {
margin: 15px 0;
padding: 12px 20px;
height: 40px;
}
</style>

10
work/src/views/LoginView.vue

@ -1,10 +0,0 @@
<script>
</script>
<template>
</template>
<style scoped>
</style>

6
work/src/views/WorksShowView.vue

@ -12,6 +12,8 @@ const works = ref([]);
function loadWorks() { function loadWorks() {
ShowApi.getWorks().then(result => { ShowApi.getWorks().then(result => {
works.value = result.data; works.value = result.data;
console.log(works.value);
console.log(result.data);
works.value.forEach(work => { works.value.forEach(work => {
let date = work.endData; let date = work.endData;
work.endData = format(new Date(date), 'yyyy-MM-dd'); work.endData = format(new Date(date), 'yyyy-MM-dd');
@ -53,8 +55,8 @@ function writeWorks(id,sub){
<div v-if="work.submit == 0" class="work-status">未提交</div> <div v-if="work.submit == 0" class="work-status">未提交</div>
<div v-else class="work-status2">已提交</div> <div v-else class="work-status2">已提交</div>
</div> </div>
<div class="work-bottem">
<span class="write" @click="writeWorks(work.groupId,work.submit)">写作业</span>
<div class="work-bottem" @click="writeWorks(work.groupId,work.submit)">
<span class="write">写作业</span>
</div> </div>
</div> </div>
</div> </div>

8
work/vite.config.js

@ -19,7 +19,13 @@ export default defineConfig({
target: 'http://192.168.8.191:8080', target: 'http://192.168.8.191:8080',
changeOrigin: true, changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '') rewrite: (path) => path.replace(/^\/api/, '')
}
},
// 第二个代理配置,对应/otherApi路径的请求转发到第二个IP地址
// '/otherApi': {
// target: 'http://192.168.8.191:8080',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/otherApi/, '')
// }
} }
} }
}) })
Loading…
Cancel
Save