Compare commits

..

4 Commits

Author SHA1 Message Date
aaaa 855904b53d 莫名修改 6 months ago
aaaa a86a3ef515 引入并使用echarts的组件 6 months ago
aaaa b78eadc89d 2 6 months ago
aaaa b44aaf3849 初次提交 6 months ago
  1. 28
      mock/user.ts
  2. 2
      package.json
  3. 138
      pnpm-lock.yaml
  4. BIN
      public/0.jpg
  5. BIN
      public/1.jpg
  6. BIN
      public/2.jpg
  7. BIN
      public/wl.png
  8. 1
      src/assets/icons/dianzan.svg
  9. 1
      src/assets/icons/dianzanred.svg
  10. 1
      src/assets/icons/点赞.svg
  11. BIN
      src/assets/images/0.jpg
  12. BIN
      src/assets/images/1.jpg
  13. BIN
      src/assets/images/1.png
  14. BIN
      src/assets/images/3.png
  15. BIN
      src/assets/images/bj.png
  16. BIN
      src/assets/images/bj1.png
  17. BIN
      src/assets/images/bj2.png
  18. BIN
      src/assets/images/ck.png
  19. BIN
      src/assets/images/dx.png
  20. BIN
      src/assets/images/kc.jpg
  21. BIN
      src/assets/images/kc1.png
  22. BIN
      src/assets/images/kc2.png
  23. BIN
      src/assets/images/kc3.png
  24. BIN
      src/assets/images/logo.png
  25. BIN
      src/assets/images/logo1.png
  26. BIN
      src/assets/images/ls.jpg
  27. BIN
      src/assets/images/rjgz.jpg
  28. BIN
      src/assets/images/rwd.png
  29. BIN
      src/assets/images/sj.png
  30. BIN
      src/assets/images/top.png
  31. BIN
      src/assets/images/tp.png
  32. BIN
      src/assets/images/tp1.jpg
  33. BIN
      src/assets/images/wl.png
  34. BIN
      src/assets/images/xs.jpg
  35. BIN
      src/assets/images/zy.jpg
  36. BIN
      src/assets/images/图灵云logo.png
  37. BIN
      src/assets/images/小旗子.png
  38. BIN
      src/assets/images/搜索.png
  39. BIN
      src/assets/images/点赞 (1).png
  40. BIN
      src/assets/images/点赞.png
  41. BIN
      src/assets/images/知识点.png
  42. BIN
      src/assets/images/统计计算.png
  43. BIN
      src/assets/images/课程.png
  44. 4
      src/layout/main/index.vue
  45. 2
      src/layout/menu/index.vue
  46. 3
      src/main.ts
  47. 13
      src/views/MyCourseStudy/Courselikes.vue
  48. 13
      src/views/MyCourseStudy/courseCollections.vue
  49. 13
      src/views/MyCourseStudy/learningProcess.vue
  50. 13
      src/views/course/CourseObjectives.vue
  51. 11
      src/views/course/basicCourseInformation.vue
  52. 13
      src/views/course/curriculumMap.vue
  53. 12
      src/views/course/knowledgePoints.vue
  54. 29
      src/views/home/index.vue
  55. 1
      src/views/login/index.vue
  56. 31
      src/views/portal/LearningPathRecommendations.vue
  57. 552
      src/views/portal/courseHomepage.vue
  58. 351
      src/views/portal/courseReports.vue
  59. 497
      src/views/portal/index.vue
  60. 163
      src/views/portal/knowledgePointLearning.vue

@ -10,7 +10,18 @@ function createUserList() {
desc: '平台管理员',
roles: ['平台管理员'],
buttons: ['cuser.detail'],
routes: ['Home', 'Course', 'Student', 'Group', 'Message','BasicCourseInformation','CourseObjectives','CourseChapters','KnowledgePoints','CurriculumMap'], //老师权限
routes: [
'Home',
'Course',
'Student',
'Group',
'Message',
'BasicCourseInformation',
'CourseObjectives',
'CourseChapters',
'KnowledgePoints',
'CurriculumMap',
], //老师权限
token: 'Admin Token',
},
{
@ -22,7 +33,20 @@ function createUserList() {
desc: '系统管理员',
roles: ['系统管理员'],
buttons: ['cuser.detail', 'cuser.user'],
routes: ['Home', 'MyCourseStudy', 'CourseResources', 'Message','LearningProcess','CourseCollections','Courselikes','WebHome','CourseHome','LearningPathRecommendations','KnowledgePointLearning','CourseReports'], //学生权限
routes: [
'Home',
'MyCourseStudy',
'CourseResources',
'Message',
'LearningProcess',
'CourseCollections',
'Courselikes',
'WebHome',
'CourseHome',
'LearningPathRecommendations',
'KnowledgePointLearning',
'CourseReports',
], //学生权限
token: 'System Token',
},
]

@ -20,10 +20,12 @@
"@element-plus/icons-vue": "^2.3.1",
"@vueuse/core": "^10.9.0",
"axios": "^1.6.8",
"echarts": "^5.5.0",
"element-plus": "^2.6.0",
"nprogress": "^0.2.0",
"pinia": "^2.1.7",
"vue": "^3.4.19",
"vue-echarts": "^6.7.2",
"vue-router": "^4.3.0"
},
"devDependencies": {

@ -1,8 +1,42 @@
lockfileVersion: '9.0'
<<<<<<< HEAD
dependencies:
'@element-plus/icons-vue':
specifier: ^2.3.1
version: 2.3.1(vue@3.4.19)
'@vueuse/core':
specifier: ^10.9.0
version: 10.9.0(vue@3.4.19)
axios:
specifier: ^1.6.8
version: 1.6.8
echarts:
specifier: ^5.5.0
version: 5.5.0
element-plus:
specifier: ^2.6.0
version: 2.6.0(vue@3.4.19)
nprogress:
specifier: ^0.2.0
version: 0.2.0
pinia:
specifier: ^2.1.7
version: 2.1.7(typescript@5.2.2)(vue@3.4.19)
vue:
specifier: ^3.4.19
version: 3.4.19(typescript@5.2.2)
vue-echarts:
specifier: ^6.7.2
version: 6.7.2(echarts@5.5.0)(vue@3.4.19)
vue-router:
specifier: ^4.3.0
version: 4.3.0(vue@3.4.19)
=======
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4
settings:
autoInstallPeers: true
@ -3903,7 +3937,20 @@ snapshots:
domelementtype: 2.3.0
domhandler: 5.0.3
<<<<<<< HEAD
/echarts@5.5.0:
resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==}
dependencies:
tslib: 2.3.0
zrender: 5.5.0
dev: false
/ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
dev: true
=======
ee-first@1.1.1: {}
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4
electron-to-chromium@1.4.692: {}
@ -5106,7 +5153,18 @@ snapshots:
require-from-string@2.0.2: {}
<<<<<<< HEAD
/resize-detector@0.3.0:
resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==}
dev: false
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
dev: true
=======
resolve-from@4.0.0: {}
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4
resolve-from@5.0.0: {}
@ -5543,7 +5601,17 @@ snapshots:
minimist: 1.2.8
strip-bom: 3.0.0
<<<<<<< HEAD
/tslib@2.3.0:
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
dev: false
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: true
=======
tslib@2.6.2: {}
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4
type-check@0.4.0:
dependencies:
@ -5669,11 +5737,68 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
<<<<<<< HEAD
/vue-demi@0.13.11(vue@3.4.19):
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
dependencies:
vue: 3.4.19(typescript@5.2.2)
dev: false
/vue-demi@0.14.7(vue@3.4.19):
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
=======
vue-demi@0.14.7(vue@3.4.19):
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4
dependencies:
vue: 3.4.19(typescript@5.2.2)
<<<<<<< HEAD
/vue-echarts@6.7.2(echarts@5.5.0)(vue@3.4.19):
resolution: {integrity: sha512-SG8Vmszhx24KjtySsk361DogZLRkPCyLhgoyh7iN1eH3WGJ0kyl3k0g4QiSJqK0+F1Ej0HDopq4A5OGcBlAwzw==}
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.5
'@vue/runtime-core': ^3.0.0
echarts: ^5.4.1
vue: ^2.6.12 || ^3.1.1
peerDependenciesMeta:
'@vue/composition-api':
optional: true
'@vue/runtime-core':
optional: true
dependencies:
echarts: 5.5.0
resize-detector: 0.3.0
vue: 3.4.19(typescript@5.2.2)
vue-demi: 0.13.11(vue@3.4.19)
dev: false
/vue-eslint-parser@9.4.2(eslint@8.57.0):
resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
=======
vue-eslint-parser@9.4.2(eslint@8.57.0):
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4
dependencies:
debug: 4.3.4
eslint: 8.57.0
@ -5749,4 +5874,17 @@ snapshots:
yallist@4.0.0: {}
<<<<<<< HEAD
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
/zrender@5.5.0:
resolution: {integrity: sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==}
dependencies:
tslib: 2.3.0
dev: false
=======
yocto-queue@0.1.0: {}
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1716801285381" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3407" data-spm-anchor-id="a313x.search_index.0.i4.36a13a81tckiXp" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M190.193225 471.411583c14.446014 0 26.139334-11.718903 26.139334-26.13831 0-14.44499-11.69332-26.164916-26.139334-26.164916-0.271176 0-0.490164 0.149403-0.73678 0.149403l-62.496379 0.146333c-1.425466-0.195451-2.90005-0.295735-4.373611-0.295735-19.677155 0-35.621289 16.141632-35.621289 36.114522L86.622358 888.550075c0 19.949354 15.96767 35.597753 35.670407 35.597753 1.916653 0 3.808746 0.292666 5.649674 0l61.022819 0.022513c0.099261 0 0.148379 0.048095 0.24764 0.048095 0.097214 0 0.146333-0.048095 0.24457-0.048095l0.73678 0 0-0.148379c13.413498-0.540306 24.174586-11.422144 24.174586-24.960485 0-13.55983-10.760065-24.441669-24.174586-24.981974l0-0.393973-50.949392 0 1.450025-402.275993L190.193225 471.409536z" fill="#5D5D5D" p-id="3408"></path><path d="M926.52241 433.948343c-19.283182-31.445176-47.339168-44.172035-81.289398-45.546336-1.77032-0.246617-3.536546-0.39295-5.380544-0.39295l-205.447139-0.688685c13.462616-39.059598 22.698978-85.58933 22.698978-129.317251 0-28.349675-3.193739-55.962569-9.041934-82.542948l-0.490164 0.049119c-10.638291-46.578852-51.736315-81.31498-100.966553-81.31498-57.264215 0-95.466282 48.15065-95.466282 106.126063 0 3.241834-0.294712 6.387477 0 9.532097-2.996241 108.386546-91.240027 195.548698-196.23636 207.513194l0 54.881958-0.785899 222.227314 0 229.744521 10.709923 0 500.025271 0.222057 8.746198-0.243547c19.35686 0.049119 30.239721-4.817726 47.803749-16.116049 16.682961-10.761088 29.236881-25.50079 37.490869-42.156122 2.260483-3.341095 4.028757-7.075139 5.106298-11.20111l77.018118-344.324116c1.056052-4.053316 1.348718-8.181333 1.056052-12.160971C943.643346 476.446249 938.781618 453.944769 926.52241 433.948343zM893.82573 486.837924l-82.983993 367.783411-0.099261-0.049119c-2.555196 6.141884-6.879688 11.596106-12.872169 15.427364-4.177136 2.727111-8.773827 4.351098-13.414521 4.964058-1.49812-0.195451-3.046383 0-4.620227 0l-477.028511-0.540306-0.171915-407.408897c89.323375-40.266076 154.841577-79.670527 188.596356-173.661202 0.072655 0.024559 0.124843 0.049119 0.195451 0.072655 2.99931-9.137101 6.313799-20.73423 8.697079-33.164331 5.551436-29.185716 5.258771-58.123792 5.258771-58.123792-4.937452-37.98001 25.940812-52.965306 44.364417-52.965306 25.304316 0.860601 50.263777 33.656541 50.263777 52.326762 0 0 5.600555 27.563776 5.649674 57.190537 0.048095 37.366026-4.6673 56.847729-4.6673 56.847729l-0.466628 0c-5.872754 30.879288-16.214287 60.138682-30.464849 86.964654l0.36839 0.342808c-2.358721 4.815679-3.709485 10.220782-3.709485 15.943111 0 19.922748 19.088754 21.742187 38.765909 21.742187l238.761895 0.270153c0 0 14.666024 0.465604 14.690584 0.465604l0 0.100284c12.132318-0.638543 24.221658 5.207605 31.100322 16.409738 5.504364 9.016351 6.437619 19.6045 3.486404 28.988218L893.82573 486.837924z" fill="#5D5D5D" p-id="3409"></path><path d="M264.827039 924.31872c0.319272 0.024559 0.441045 0.024559 0.295735-0.024559 0.243547-0.048095 0.367367-0.074701-0.295735-0.074701s-0.539282 0.026606-0.271176 0.074701C264.43409 924.343279 264.532327 924.343279 264.827039 924.31872z" fill="#5D5D5D" p-id="3410"></path></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1716801285381" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3407" data-spm-anchor-id="a313x.search_index.0.i4.36a13a81tckiXp" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M190.193225 471.411583c14.446014 0 26.139334-11.718903 26.139334-26.13831 0-14.44499-11.69332-26.164916-26.139334-26.164916-0.271176 0-0.490164 0.149403-0.73678 0.149403l-62.496379 0.146333c-1.425466-0.195451-2.90005-0.295735-4.373611-0.295735-19.677155 0-35.621289 16.141632-35.621289 36.114522L86.622358 888.550075c0 19.949354 15.96767 35.597753 35.670407 35.597753 1.916653 0 3.808746 0.292666 5.649674 0l61.022819 0.022513c0.099261 0 0.148379 0.048095 0.24764 0.048095 0.097214 0 0.146333-0.048095 0.24457-0.048095l0.73678 0 0-0.148379c13.413498-0.540306 24.174586-11.422144 24.174586-24.960485 0-13.55983-10.760065-24.441669-24.174586-24.981974l0-0.393973-50.949392 0 1.450025-402.275993L190.193225 471.409536z" fill="#d81e06" p-id="3408"></path><path d="M926.52241 433.948343c-19.283182-31.445176-47.339168-44.172035-81.289398-45.546336-1.77032-0.246617-3.536546-0.39295-5.380544-0.39295l-205.447139-0.688685c13.462616-39.059598 22.698978-85.58933 22.698978-129.317251 0-28.349675-3.193739-55.962569-9.041934-82.542948l-0.490164 0.049119c-10.638291-46.578852-51.736315-81.31498-100.966553-81.31498-57.264215 0-95.466282 48.15065-95.466282 106.126063 0 3.241834-0.294712 6.387477 0 9.532097-2.996241 108.386546-91.240027 195.548698-196.23636 207.513194l0 54.881958-0.785899 222.227314 0 229.744521 10.709923 0 500.025271 0.222057 8.746198-0.243547c19.35686 0.049119 30.239721-4.817726 47.803749-16.116049 16.682961-10.761088 29.236881-25.50079 37.490869-42.156122 2.260483-3.341095 4.028757-7.075139 5.106298-11.20111l77.018118-344.324116c1.056052-4.053316 1.348718-8.181333 1.056052-12.160971C943.643346 476.446249 938.781618 453.944769 926.52241 433.948343zM893.82573 486.837924l-82.983993 367.783411-0.099261-0.049119c-2.555196 6.141884-6.879688 11.596106-12.872169 15.427364-4.177136 2.727111-8.773827 4.351098-13.414521 4.964058-1.49812-0.195451-3.046383 0-4.620227 0l-477.028511-0.540306-0.171915-407.408897c89.323375-40.266076 154.841577-79.670527 188.596356-173.661202 0.072655 0.024559 0.124843 0.049119 0.195451 0.072655 2.99931-9.137101 6.313799-20.73423 8.697079-33.164331 5.551436-29.185716 5.258771-58.123792 5.258771-58.123792-4.937452-37.98001 25.940812-52.965306 44.364417-52.965306 25.304316 0.860601 50.263777 33.656541 50.263777 52.326762 0 0 5.600555 27.563776 5.649674 57.190537 0.048095 37.366026-4.6673 56.847729-4.6673 56.847729l-0.466628 0c-5.872754 30.879288-16.214287 60.138682-30.464849 86.964654l0.36839 0.342808c-2.358721 4.815679-3.709485 10.220782-3.709485 15.943111 0 19.922748 19.088754 21.742187 38.765909 21.742187l238.761895 0.270153c0 0 14.666024 0.465604 14.690584 0.465604l0 0.100284c12.132318-0.638543 24.221658 5.207605 31.100322 16.409738 5.504364 9.016351 6.437619 19.6045 3.486404 28.988218L893.82573 486.837924z" fill="#d81e06" p-id="3409"></path><path d="M264.827039 924.31872c0.319272 0.024559 0.441045 0.024559 0.295735-0.024559 0.243547-0.048095 0.367367-0.074701-0.295735-0.074701s-0.539282 0.026606-0.271176 0.074701C264.43409 924.343279 264.532327 924.343279 264.827039 924.31872z" fill="#d81e06" p-id="3410"></path></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1716799682617" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3051" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M190.193225 471.411583c14.446014 0 26.139334-11.718903 26.139334-26.13831 0-14.44499-11.69332-26.164916-26.139334-26.164916-0.271176 0-0.490164 0.149403-0.73678 0.149403l-62.496379 0.146333c-1.425466-0.195451-2.90005-0.295735-4.373611-0.295735-19.677155 0-35.621289 16.141632-35.621289 36.114522L86.622358 888.550075c0 19.949354 15.96767 35.597753 35.670407 35.597753 1.916653 0 3.808746 0.292666 5.649674 0l61.022819 0.022513c0.099261 0 0.148379 0.048095 0.24764 0.048095 0.097214 0 0.146333-0.048095 0.24457-0.048095l0.73678 0 0-0.148379c13.413498-0.540306 24.174586-11.422144 24.174586-24.960485 0-13.55983-10.760065-24.441669-24.174586-24.981974l0-0.393973-50.949392 0 1.450025-402.275993L190.193225 471.409536z" fill="#d81e06" p-id="3052"></path><path d="M926.52241 433.948343c-19.283182-31.445176-47.339168-44.172035-81.289398-45.546336-1.77032-0.246617-3.536546-0.39295-5.380544-0.39295l-205.447139-0.688685c13.462616-39.059598 22.698978-85.58933 22.698978-129.317251 0-28.349675-3.193739-55.962569-9.041934-82.542948l-0.490164 0.049119c-10.638291-46.578852-51.736315-81.31498-100.966553-81.31498-57.264215 0-95.466282 48.15065-95.466282 106.126063 0 3.241834-0.294712 6.387477 0 9.532097-2.996241 108.386546-91.240027 195.548698-196.23636 207.513194l0 54.881958-0.785899 222.227314 0 229.744521 10.709923 0 500.025271 0.222057 8.746198-0.243547c19.35686 0.049119 30.239721-4.817726 47.803749-16.116049 16.682961-10.761088 29.236881-25.50079 37.490869-42.156122 2.260483-3.341095 4.028757-7.075139 5.106298-11.20111l77.018118-344.324116c1.056052-4.053316 1.348718-8.181333 1.056052-12.160971C943.643346 476.446249 938.781618 453.944769 926.52241 433.948343zM893.82573 486.837924l-82.983993 367.783411-0.099261-0.049119c-2.555196 6.141884-6.879688 11.596106-12.872169 15.427364-4.177136 2.727111-8.773827 4.351098-13.414521 4.964058-1.49812-0.195451-3.046383 0-4.620227 0l-477.028511-0.540306-0.171915-407.408897c89.323375-40.266076 154.841577-79.670527 188.596356-173.661202 0.072655 0.024559 0.124843 0.049119 0.195451 0.072655 2.99931-9.137101 6.313799-20.73423 8.697079-33.164331 5.551436-29.185716 5.258771-58.123792 5.258771-58.123792-4.937452-37.98001 25.940812-52.965306 44.364417-52.965306 25.304316 0.860601 50.263777 33.656541 50.263777 52.326762 0 0 5.600555 27.563776 5.649674 57.190537 0.048095 37.366026-4.6673 56.847729-4.6673 56.847729l-0.466628 0c-5.872754 30.879288-16.214287 60.138682-30.464849 86.964654l0.36839 0.342808c-2.358721 4.815679-3.709485 10.220782-3.709485 15.943111 0 19.922748 19.088754 21.742187 38.765909 21.742187l238.761895 0.270153c0 0 14.666024 0.465604 14.690584 0.465604l0 0.100284c12.132318-0.638543 24.221658 5.207605 31.100322 16.409738 5.504364 9.016351 6.437619 19.6045 3.486404 28.988218L893.82573 486.837924z" fill="#d81e06" p-id="3053"></path><path d="M264.827039 924.31872c0.319272 0.024559 0.441045 0.024559 0.295735-0.024559 0.243547-0.048095 0.367367-0.074701-0.295735-0.074701s-0.539282 0.026606-0.271176 0.074701C264.43409 924.343279 264.532327 924.343279 264.827039 924.31872z" fill="#d81e06" p-id="3054"></path></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -3,8 +3,8 @@
<!-- 过度动画 -->
<transition name="fade">
<!-- 要渲染的组件 -->
<div v-if="refresh" >
<component :is="Component"/>
<div v-if="refresh">
<component :is="Component" />
</div>
</transition>
</router-view>

@ -76,4 +76,4 @@ export default {
name: 'Menu',
}
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>

@ -20,9 +20,12 @@ import 'virtual:svg-icons-register'
const app = createApp(App)
// 引入自动注册全局组件脚本
import gloablComponent from '@/components/index'
import 'echarts'
import ECharts from 'vue-echarts';
app.use(gloablComponent)
// 注册仓库
app.use(pinia)
app.component('ECharts',ECharts)
// 安装element插件
app.use(ElementPlus, {
locale: zhCn, //使用中文

@ -1,14 +1,9 @@
<template>
<div>
课程点赞
</div>
<div>课程点赞</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

@ -1,14 +1,9 @@
<template>
<div>
课程收藏
</div>
<div>课程收藏</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

@ -1,14 +1,9 @@
<template>
<div>
学习过程
</div>
<div>学习过程</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

@ -1,14 +1,9 @@
<template>
<div>
课程目标
</div>
<div>课程目标</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

@ -139,6 +139,16 @@ const onSuccess = () => {
}
</script>
<template>
<<<<<<< HEAD
<div>课程基本信息</div>
</template>
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang="scss" scoped></style>
=======
<div class="header">
<div class="btn">
<el-button type="primary" round size="large">全部课程</el-button>
@ -286,3 +296,4 @@ const onSuccess = () => {
}
}
</style>
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4

@ -1,14 +1,9 @@
<template>
<div>
课程图谱
</div>
<div>课程图谱</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

@ -1,3 +1,14 @@
<<<<<<< HEAD
<template>
<div>知识点</div>
</template>
<script lang="ts" setup>
import {} from 'vue'
</script>
<style lang="scss" scoped></style>
=======
<script setup>
import { ref } from 'vue'
import { Delete, Edit } from '@element-plus/icons-vue'
@ -112,3 +123,4 @@ const params = ref({
overflow: hidden;
}
</style>
>>>>>>> 4fe89b0398cd428950ca36bfe5d25f813217eec4

@ -1,6 +1,10 @@
<template>
<div>home</div>
<svg-icon name="count" width="300px" height="300px" color="pink"></svg-icon>
<svg-icon name="count" width="300px" height="300px" color="#000"></svg-icon>
<div class="box">
<div class="box1"></div>
<div class="box2"></div>
</div>
</template>
<script lang="ts" setup>
@ -13,4 +17,25 @@
// })
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.box {
width: 500px;
height: 400px;
background-color: skyblue;
display: flex;
// flex-direction: column;
justify-content: space-evenly;
align-items: center;
div {
width: 100px;
height: 100px;
}
.box1 {
background-color: pink;
}
.box2 {
background-color: greenyellow;
}
}
</style>

@ -1,6 +1,5 @@
<template>
<div id="your-element-selector" style="width: 100%; height: 100vh"></div>
<div class="login_container">
<el-row>
<el-col

@ -1,14 +1,29 @@
<template>
<div>
学习路径推荐
</div>
<e-charts class="chart" :option="option" />
</template>
<!-- 学习路径推荐 -->
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import { ref } from 'vue';
const option = ref({
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line'
}
]
});
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.chart {
height: 400px;
}
</style>

@ -1,14 +1,556 @@
<template>
<div>
课程首页
<div>
<!-- <div class="nav">
<div class="icon"></div>
<div class="txt">
<h1>通讯与网络</h1>
<p>张三</p>
</div>
</div> -->
<div class="main">
<div class="title">
<div class="icon"></div>
<div class="right">
<h1>通讯与网络</h1>
<div class="btn">编辑</div>
<p>
本课程讲授通讯与网络的基本概念涉及计算机网络的发展和原理体系结构物理层
数据链路层网络层运输层应用层等计算机网络通讯的整个过程内容包括通讯与网络
的基本概念计算机网络的体
系结构数据通信基础流量控制和拥塞控制TCP/IP
协议簇的基本原理等内容
</p>
<div class="bottom">
<a>总学时 36学时</a>
<a>总学分 2.0</a>
</div>
<div class="bottom">
<a>已分配学时 20学时</a>
<a>章节数 10</a>
</div>
<div class="bottom">
<a>未分配学时 16学时</a>
<a>知识点章节总数 33</a>
</div>
</div>
</div>
<div class="list">
<div class="icon"></div>
<p style="font-size: 20px; margin-bottom: 20px; color: #000">
学习章节
</p>
<el-tree
style="width: 100%; font-size: 15px"
:data="dataSource"
show-checkbox
node-key="id"
default-expand-all
:expand-on-click-node="false"
>
<template #default="{ node, data }">
<span class="custom-tree-node">
<span>{{ node.label }}</span>
<span>
<a @click="append(data)">添加</a>
<a style="margin-left: 8px" @click="remove(node, data)">删除</a>
</span>
</span>
</template>
</el-tree>
</div>
</div>
<div class="sidebar">
<div class="icon"><img src="/src/assets/images/rjgz.jpg" width="100%" height="100%"></div>
<!-- <div class="content">
<h3>课程目标</h3>
<div class="btn">了解更多</div>
<a>
课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程课程
</a>
</div> -->
<div class="column" style="">
<div class="icon"></div>
<h3>查看资源</h3>
<ul>
<h2>第一章</h2>
<p>第2小节</p>
<li>
<div class="btn">知识点</div>
<p>知识点详情知识点内容</p>
<div class="icon"></div>
</li>
</ul>
<ul>
<h2>第一章</h2>
<p>第2小节</p>
<li>
<div class="btn">知识点</div>
<p>知识点详情知识点内容</p>
<div class="icon"></div>
</li>
</ul>
<ul>
<h2>第一章</h2>
<p>第2小节</p>
<li>
<div class="btn">知识点</div>
<p>知识点详情知识点内容</p>
<div class="icon"></div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
import { ref } from 'vue'
let id = 1000
const append = (data: any) => {
const newChild = { id: id++, label: '请输入新章节', children: [] }
if (!data.children) {
data.children = []
}
data.children.push(newChild)
dataSource.value = [...dataSource.value]
}
const remove = (node: any, data: any) => {
const parent = node.parent
const children: any = parent.data.children || parent.data
const index = children.findIndex((d: any) => d.id === data.id)
children.splice(index, 1)
dataSource.value = [...dataSource.value]
}
// const renderContent = (
// h:any,
// {
// node,
// data,
// store,
// }: {
// node: any
// data: any
// store: any['store']
// }
// ) => {
// return h(
// 'span',
// {
// class: 'custom-tree-node',
// },
// h('span', null, node.label),
// h(
// 'span',
// null,
// h(
// 'a',
// {
// onClick: () => append(data),
// },
// 'Append '
// ),
// h(
// 'a',
// {
// style: 'margin-left: 8px',
// onClick: () => remove(node, data),
// },
// 'Delete'
// )
// )
// )
// }
const dataSource = ref<any>([
{
id: 1,
label: '01/基本概念',
children: [
{
id: 4,
label: '1-1 基本概念',
children: [
{
id: 9,
label: '1-1-1 基本概念',
},
{
id: 10,
label: '1-1-2 基本概念',
},
],
},
],
},
{
id: 2,
label: '02/章节名',
children: [
{
id: 5,
label: '2-1 章节名字',
},
{
id: 6,
label: '2-2 章节名字',
},
],
},
{
id: 3,
label: '03/章节名字',
children: [
{
id: 7,
label: '3-1 章节名字',
},
{
id: 8,
label: '3-2 章节名字',
},
],
},
{
id: 3,
label: '04/章节名字',
children: [
{
id: 9,
label: '4-1 章节名字',
},
{
id: 10,
label: '4-2 章节名字',
},
],
},
])
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
ul {
list-style: none;
}
a {
text-decoration: none;
}
body {
/* 宽度占浏览器可视区域的宽度 */
width: 100vm;
/* height: 1500px; */
background-color: #f6f6f6;
}
.nav {
width: 100%;
height: 60px;
background-color: #797a82;
}
.nav .icon {
width: 10%;
height: 90%;
margin-top: 5px;
float: left;
background-image: url('/src/assets/images/kc.jpg');
background-size: 100% 100%;
border-radius: 20px 20px 20px 20px;
}
.nav .txt {
width: 10%;
height: 100%;
float: left;
margin-left: 15px;
background-color: #5577ff;
// border-left: 1px solid #252529
}
.nav h1 {
font-size: 18px;
line-height: 35px;
font-weight: bolder;
}
.nav p {
// font-size: 18px;
line-height: 25px;
color: #252529;
}
.main {
width: 75%;
height: 900px;
float: left;
// background-color: bisque
}
.main .title {
width: 90%;
margin: auto;
height: 25%;
// background-color: blueviolet
}
.main .title .icon {
width: 34%;
height: 80%;
margin-top: 20px;
background-color: antiquewhite;
float: left;
background-image: url('/src/assets/images/kc.jpg');
background-size: 100% 100%;
border-radius: 20px 20px 20px 20px;
}
.main .title .right {
width: 61%;
height: 80%;
margin-left: 30px;
margin-top: 20px;
// background-color: antiquewhite;
float: left;
}
.main .title .right h1 {
height: 20px;
color: #5577ff;
font-size: 20px;
font-weight: bolder;
letter-spacing: 1px;
// background-color: antiquewhite;
float: left;
}
.main .title .right p {
height: 20px;
font-size: 12px;
line-height: 16px;
color: #797a82;
padding-top: 7px;
float: left;
}
.main .title .right .bottom {
width: 30.6%;
height: 30%;
float: left;
margin-left: 10px;
margin-top: 16.5%;
// background-color: #5577FF
}
.main .title .right a {
display: flex;
justify-content: space-between;
height: 28px;
font-size: 12px;
color: #0d0d11;
// padding-top: 50px;
// float: left;
}
.main .title .right .btn {
width: 14%;
height: 16%;
font-size: 15px;
background-color: #5577ff;
color: #f6f6f6;
text-align: center;
line-height: 25px;
border-radius: 14px 14px 14px 14px;
float: left;
margin-left: 58%;
}
.main .title .right .btn:hover {
background-color: #185cd2;
}
.main .list {
width: 100%;
height: 57.3%;
margin: auto;
padding: 20px 10px;
background-color: #ffffff;
border-radius: 20px 20px 20px 20px;
}
.main .list .icon {
width: 3%;
height: 5%;
margin-top: px;
// background-color: antiquewhite;
float: left;
background-image: url('/src/assets/images/rwd.png');
background-size: 100% 100%;
// border-radius: 20px 20px 20px 20px;
}
.sidebar {
width: 22%;
height: 800px;
float: left;
margin-left: 20px;
// background-color: rgb(84, 50, 9)
}
.sidebar .icon{
width: 100%;
height: 20%;
}
.sidebar .content {
width: 100%;
height: 20%;
border-radius: 14px 14px 14px 14px;
border-left: 4px solid #5577ff;
background-color: #ffffff;
box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.1);
}
.sidebar .content {
width: 100%;
height: 20%;
border-radius: 14px 14px 14px 14px;
border-left: 4px solid #5577ff;
background-color: #ffffff;
box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.1);
}
.sidebar .content h3 {
color: #0d0d11;
height: 30px;
font-size: 15px;
font-weight: bolder;
margin-left: 15px;
float: left;
line-height: 40px;
}
.sidebar .content .btn {
width: 30%;
height: 13%;
font-size: 11px;
background-color: #ebecfc;
color: #4f86e5;
text-align: center;
font-weight: bolder;
float: right;
line-height: 20px;
margin-top: 10px;
border-radius: 14px 14px 14px 14px;
}
.sidebar .content .btn:hover {
background-color: #185cd2;
color: white;
}
.sidebar .content a {
color: #797a82;
height: 50px;
width: 90%;
font-size: 15px;
line-height: 20px;
margin-left: 15px;
float: left;
margin-top: 5px;
}
.sidebar .column {
width: 100%;
height: 70%;
margin-top: 20px;
border-radius: 14px 14px 14px 14px;
background-color: #ffffff;
box-shadow: 1px 1px 1px 0.1px rgba(0.2, 1, 1, 0.2);
}
.sidebar .column .icon {
width: 13%;
height: 5%;
float: left;
margin-left: 10px;
margin-top: 10px;
background-image: url('/src/assets/images/ck.png');
background-size: 100% 100%;
}
.sidebar .column h3 {
color: #16161b;
height: 30px;
font-size: 15px;
font-weight: bolder;
margin-left: 15px;
float: left;
line-height: 45px;
}
.sidebar .column ul {
width: 90%;
height: 28%;
float: left;
margin-top: 10px;
margin-left: 12px;
text-decoration: none;
// border-left:1px solid #505053 ;
// background-color: #4F86E5
}
.sidebar .column ul h2 {
color: #0d0d11;
height: 30px;
font-size: 14px;
font-weight: bolder;
// margin-left: 15px;
float: left;
line-height: 20px;
}
.sidebar .column ul p {
color: #252529;
height: 30px;
font-size: 11px;
// font-weight:bolder;
margin-left: 15px;
float: left;
line-height: 20px;
}
.sidebar .column ul li {
width: 90%;
height: 80%;
float: left;
margin-left: 20px;
text-decoration: none;
border-left: 1px solid #d4d4df;
// background-color: #9fb8e3
}
.sidebar .column ul li .btn {
width: 30%;
height: 15%;
float: left;
margin-left: 20px;
color: #ebecfc;
line-height: 20px;
font-size: 11px;
text-align: center;
border-radius: 5px 5px 5px 5px;
background-color: #56df7d;
}
.sidebar .column ul li p {
line-height: 30px;
height: 10%;
font-size: 11.5px;
float: left;
margin-left: 22px;
text-decoration: none;
color: #0d0d11;
}
.sidebar .column ul li .icon {
width: 89%;
height: 50%;
margin-top: 20px;
float: left;
margin-left: 20px;
background-image: url('/src/assets/images/zy.jpg');
background-size: 100% 100%;
}
// .app-container {
// padding: 30px 140px;
// font-size: 14px;
// }
// .tree-manager {
// width: 50px;
// display: inline-block;
// margin: 10px;
// }
::v-deep .custom-tree-node {
flex: 1;
display: flex;
justify-content: space-between;
padding-right: 30px;
}
</style>

@ -1,14 +1,353 @@
<template>
<div>
课程报告
<div>
<div class="header">
<h1>课程报告</h1>
<div class="content">
<div class="box">
<div class="icon">
<img
src="/src/assets/images/小旗子.png"
width="100%"
height="100%"
/>
</div>
<p>学习进度统计</p>
</div>
<a style="color: #d81e06">Learning progress statistics</a>
<b style="color: #d81e06">40</b>
</div>
<div class="content">
<div class="box">
<div class="icon">
<img
src="/src/assets/images/知识点.png"
width="100%"
height="100%"
/>
</div>
<p>知识点数统计</p>
</div>
<a style="color: #ff8b00">Knowledge point statistics</a>
<b style="color: #ff8b00">30</b>
</div>
<div class="content">
<div class="box">
<div class="icon">
<img
src="/src/assets/images/统计计算.png"
width="100%"
height="100%"
/>
</div>
<p>学习人数统计</p>
</div>
<a style="margin-top: 25px; margin-left: 60px; color: #4b81d7">
Student count
</a>
<b style="color: #4b81d7">0</b>
</div>
<div class="content">
<div class="box">
<div class="icon">
<img src="/src/assets/images/课程.png" width="100%" height="100%" />
</div>
<p>学习课程统计</p>
</div>
<a style="margin-top: 25px; margin-left: 60px; color: #08b762">
Course statistics
</a>
<b style="color: #08b762">10</b>
</div>
</div>
<div class="search">
<form>
<input type="text" placeholder="输入文本进行搜索" />
<div class="icon">
<img src="/src/assets/images/搜索.png" width="100%" height="100%" />
</div>
<!-- <input type="image" src="/src/assets/images/搜索.png" > -->
</form>
</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<div class="main">
<el-table
:data="dataSource"
style="
display: flex;
width: 100%;
flex-direction: row;
justify-content: space-around;
"
>
<el-table-column
prop="course"
label="课程名称"
width="180"
></el-table-column>
<el-table-column
prop="date"
label="知识点个数"
width="180"
></el-table-column>
<el-table-column
prop="time"
label="知识点学时"
width="180"
></el-table-column>
<el-table-column
prop="proportion"
label="知识点占比"
width="180"
></el-table-column>
<el-table-column
prop="student"
label="学习人数统计"
width="180"
></el-table-column>
<el-table-column
prop="credet"
label="课程学分"
width="180"
></el-table-column>
</el-table>
</div>
</div>
<div class="download">点击此按钮导出报告</div>
<div class="a"></div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const dataSource = ref([
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
{
course: '数学',
date: '50',
time: '24h',
proportion: '89%',
student: '220人',
credet: 2,
},
])
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
ul {
list-style: none;
}
a {
text-decoration: none;
}
body {
/* 宽度占浏览器可视区域的宽度 */
width: 100vm;
/* height: 1500px; */
background-color: #f6f6f6;
}
.header {
width: 95%;
height: 250px;
margin: auto;
// background-color: aquamarine
}
.header h1 {
font-size: 20px;
color: #000;
}
.header .content {
width: 20%;
height: 65%;
// background-color: bisque;
background-color: #ffffff;
border-radius: 10px 10px 10px 10px;
float: left;
margin-left: 40px;
margin-top: 20px;
}
.header .content .icon {
width: 24.5%;
height: 62%;
float: left;
// margin-left: 1px;
margin-top: 13px;
}
.header .content .box {
width: 65%;
height: 30%;
// background-color: #f6f6f6;
margin: auto;
margin-top: 10px;
}
.header .content a {
font-size: 14.5px;
height: 10%;
float: left;
margin-left: 20px;
margin-top: 20px;
// font-weight:bolder;
}
.header .content b {
font-size: 30px;
height: 10%;
margin: auto;
float: left;
margin-top: 15px;
margin-left: 100px;
font-weight: bolder;
}
.header .content p {
color: #000;
font-size: 15px;
height: 10%;
float: left;
// text-align: center;
margin-top: 20px;
margin-left: 3px;
font-weight: bolder;
}
.search {
width: 75%;
height: 30px;
background-color: paleturquoise;
margin: auto;
border-radius: 10px 10px 10px 10px;
margin-top: 20px;
}
.search input {
width: 100%;
height: 40px;
text-indent: 5px;
font-size: 16px;
/* border: none; */
// text-align: center;
background-color: #fffefe;
border-radius: 10px 10px 10px 10px;
border: 1px solid #75aade;
/* border-bottom: 1px solid #ddd; */
outline: none;
// margin: 12px auto;
}
.search .icon {
width: 40px;
height: 35px;
position: relative;
top: -37px;
left: 93%;
}
.search .icon:hover {
width: 41px;
height: 36px;
}
// .search form{
// width: 190px;
// height: 30px;
// border: 1px solid #C1C1C1;
// border-radius: 3px;
// }
.main {
width: 90%;
height: 450px;
// background-color: #75aade;
// border-radius: 10px 10px 10px 10px;
margin: auto;
margin-top: 50px;
}
// ptf
.download {
width: 15%;
height: 24px;
float: right;
margin-right: 60px;
margin-top: 20px;
// margin-bottom: 20px;
// margin-left: 0px;
font-size: 14px;
text-align: center;
line-height: 23px;
color: #75aade;
background-color: #ffffff;
box-shadow: 1px 1px 1px 0.1px rgba(0.2, 1, 1, 0.2);
border-radius: 10px 10px 10px 10px;
}
.download:hover {
background-color: #75aade;
color: #ffffff;
}
.a {
width: 100%;
float: left;
height: 40px;
}
.el-table_header-wrapper {
display: flex;
flex-direction: row;
justify-content: space-around;
}
</style>

@ -1,14 +1,499 @@
<template>
<div>
网站首页
<!-- <div>网站首页面</div> -->
<div class="header">
<div class="logo"></div>
<div class="nav">
<div class="nav1">
<ul>
<li>企业入口&nbsp;&nbsp;|</li>
<li>教师入口&nbsp;&nbsp;|</li>
<li>学生入口&nbsp;&nbsp;|</li>
<li>毕业生入口</li>
</ul>
</div>
<div class="nav2">
<ul>
<li><a>学生首页</a></li>
<li><a>专业概况</a></li>
<li><a>教学改革</a></li>
<li><a>科学研就</a></li>
<li><a>人才培养</a></li>
<li><a>成果展示</a></li>
<li><a>产教结合</a></li>
<li><a>日常教学</a></li>
<li><a>优秀学生</a></li>
</ul>
</div>
</div>
</template>
<!-- <div class="inco"></div> -->
<h1>知识图谱</h1>
<p>(专业代码 080902H)</p>
</div>
<div class="content">
<el-scrollbar height="1500px">
<div class="content1" style=" background:linear-gradient(#F0F4FA,#F0F4FA,#F0F4FA);">
<div class="icon" style=" background-image: url('/src/assets/images/bj2.png');
background-size: 100% 100%;">
<div class="content">
<img src="/src/assets/images/tp.png">
</div>
<h1>计算机导论</h1>
<button></button>
</div>
<div class="icon1">
<div class="icon"><img src="/src/assets/images/kc1.png"></div>
<div class="icon"><img src="/src/assets/images/kc2.png"></div>
<div class="icon"><img src="/src/assets/images/kc3.png"></div>
</div>
<div class="txt">
<h1>&nbsp;&nbsp;课程简介</h1>
<div class="p">
<p style="color: #A6A6A6;">计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导
论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介</p></div>
<div class="box">
<p style="font-size: 14px;color: #6B6B6B;">总学时 36小时</p>
<p style="font-size: 14px;color: #6B6B6B;">总学分 2.0</p>
<p style="font-size: 14px;color: #6B6B6B;">章节数 10</p>
<p style="font-size: 14px;color: #6B6B6B;">知识点总数 33</p>
</div>
</div>
</div>
<div class="content1">
<div class="txt">
<h1>&nbsp;&nbsp;课程简介</h1>
<div class="p">
<p>计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导
论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介</p></div>
<div class="box">
<p style="font-size: 14px;">总学时 36小时</p>
<p style="font-size: 14px;">总学分 2.0</p>
<p style="font-size: 14px;">章节数 10</p>
<p style="font-size: 14px;">知识点总数 33</p>
</div>
</div>
<div class="icon" style=" background-image: url('/src/assets/images/bj1.png'); ">
<div class="content">
<img src="/src/assets/images/tp.png">
</div>
<h1>计算机导论</h1>
<button></button>
</div>
<div class="icon1">
<div class="icon"><img src="/src/assets/images/kc1.png"></div>
<div class="icon"><img src="/src/assets/images/kc2.png"></div>
<div class="icon"><img src="/src/assets/images/kc3.png"></div>
</div>
</div>
<div class="content1" style=" background:linear-gradient(#F0F4FA,#F0F4FA,#F0F4FA);">
<div class="icon" style=" background-image: url('/src/assets/images/bj2.png');
background-size: 100% 100%;">
<div class="content">
<img src="/src/assets/images/tp.png">
</div>
<h1>计算机导论</h1>
<button></button>
</div>
<div class="icon1">
<div class="icon"> <img src="/src/assets/images/kc1.png"></div>
<div class="icon"><img src="/src/assets/images/kc2.png"></div>
<div class="icon"><img src="/src/assets/images/kc3.png"></div>
</div>
<div class="txt">
<h1>&nbsp;&nbsp;课程简介</h1>
<div class="p">
<p style="color: #A6A6A6;">计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导
论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介</p></div>
<div class="box">
<p style="font-size: 14px;color: #6B6B6B;">总学时 36小时</p>
<p style="font-size: 14px;color: #6B6B6B;">总学分 2.0</p>
<p style="font-size: 14px;color: #6B6B6B;">章节数 10</p>
<p style="font-size: 14px;color: #6B6B6B;">知识点总数 33</p>
</div>
</div>
</div>
<script lang='ts' setup>
import { } from 'vue'
<div class="content1">
<div class="txt">
<h1>&nbsp;&nbsp;课程简介</h1>
<div class="p">
<p>计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导
论的简介计算机导论的简介计算机导论的简介计算机导论的简介计算机导论的简介</p></div>
<div class="box">
<!-- <p style="font-size: 14px;">总学时 36小时</p>{{userList.}} -->
<p style="font-size: 14px;">总学时 36小时</p>
<p style="font-size: 14px;">总学分 2.0</p>
<p style="font-size: 14px;">章节数 10</p>
<p style="font-size: 14px;">知识点总数 33</p>
</div>
</div>
<div class="icon" style=" background-image: url('/src/assets/images/bj1.png'); ">
<div class="content">
<img src="/src/assets/images/tp.png">
</div>
<h1>计算机导论 {{ userList.name }}</h1>
<button></button>
</div>
<div class="icon1">
<div class="icon"><img src="/src/assets/images/kc1.png"></div>
<div class="icon"><img src="/src/assets/images/kc2.png"></div>
<div class="icon"><img src="/src/assets/images/kc3.png"></div>
</div>
</div>
</el-scrollbar>
</div>
<!-- 底部 -->
<div class="footer">
<h3>软件工程专业</h3>
<h1>教学一体化平台</h1>
<p>关于我们&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; &nbsp;联系我们&nbsp; &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp; 服务协议
</p>
<p style="font-size: 13px;margin-top: 70px">黄淮学院版权所有@2023 湘豫CP备 19005950-1<br>
违法和不良信息举报 举报电话0xxx-8xxxxxxx 举报邮箱xxxxxxxxx@qq.com</p>
</div>
<div></div>
<!-- {{ userList }} -->
</template>
// @ts-expect-error
<script lang="ts" setup>
import { ref } from 'vue'
import { getUserInfo } from '@/api/user'
const userList = ref<any>([])
const getUserListEvent = async () => {
try {
const res = await getUserInfo()
userList.value = res
console.log(res);
} catch (error) {
console.log(error);
}
}
getUserListEvent()
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
* {
margin: 0;
padding: 0;
/* box-sizing: border-box; */
/* font: 14px/28px "微软雅黑"; */
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
body {
/* 宽度占浏览器可视区域的宽度 */
width: 100vm;
// position: relative;
// display:flex;
// justify-content:center;i
/* height: 1500px; */
// background-color: #FFFFFF;
}
img {
width: 100%;
height: 100%;
}
//
.header {
width: 100%;
height: 300px;
background-image: url('/src/assets/images/top.png');
background-size: 100% 100%;
// background:linear-gradient(#74a5ff,#91b7ff,#A4c3ff);
}
//
.header .nav {
width: 95%;
height: 100px;
// background-color: #3D78F5;
}
.header .nav1 {
float: right;
width: 24%;
height: 10%;
margin-right: 20px;
// background-color: #6759ff;
}
.header .nav1 ul li {
float: left;
margin-left: 5px;
line-height: 20px;
color: white;
font-size: 12px;
text-align: center;
// border-right: 1px solid #FFFFFF;
}
.header .nav2 {
float: right;
// padding-right: -20px;
width: 68%;
height: 25%;
margin-top: 30px;
// margin-right: -260px;
// background-color: #6759ff;
}
.header .nav2 ul li {
float: left;
margin-left: 20px;
// line-height: 40px;
color: white;
font-size: 15px;
text-align: center;
}
.header .nav2 ul li:hover {
color: #74a5ff;
}
.header .inco {
float: left;
width: 48%;
height: 65.1%;
margin-left: 80px;
// background-color: #6759ff;
}
.header h1 {
font-size: 50px;
margin-top: 23px;
font-weight: bolder;
color: #FFFFFF;
float: right;
margin-right: 173px // float: left;
// margin-left: 779px;
}
.header p {
font-size: 15px;
margin-top: 102px;
// font-weight:bolder;
color: #FFFFFF;
float: right;
margin-right: -175px;
}
.logo {
width: 15%;
height: 30%;
float: left;
margin-left: 80px;
}
//
.content {
width: 100%;
margin: auto;
}
.content1 {
width: 100%;
height: 442px;
display: flex;
margin: auto;
margin-top: 60px;
padding: 0 80px 0 80px;
background: linear-gradient(#98BBFF, #A9C6FF, #d5e1f6);
}
.content1 .txt {
width: 22%;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: space-evenly;
height: 100%;
margin: auto;
}
.content1 .txt h1 {
font-size: 20px;
height: 30px;
font-size: 16px;
line-height: 30px;
border-left: 3px solid #3374FF;
font-weight: bolder;
color: #3374FF;
}
.content1 .txt .p {
height: 178px;
// background-color: #3374FF;
line-height: 23px;
width: 100%;
color: #FFFFFF;
}
.content1 .txt p {
font-size: 17px;
// height: 40px;
// background-color: #3374FF;
// line-height: 25px;
color: #FFFFFF;
}
.content .txt .box {
width: 100%;
height: 80px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
background-color: #98BBFF;
justify-content: space-between;
}
.content1 .icon {
width: 53%;
height: 84%;
margin: auto;
// background-image: url('/src/assets/images/bj1.png');
background-size: 102% 103.5%;
// background-color: #7f98cb;
}
.content1 .icon h1 {
color: white;
font-size: 24px;
font-weight: bolder;
z-index: 999;
margin-left: 60px;
margin-top: 20px;
}
.content1 .icon button {
background-color: #FEC861;
opacity: 0;
width: 73px;
height: 50px;
z-index: 999;
float: right;
margin-right: 13px;
margin-top: -40px;
}
.content1 .icon button:hover {
background-color: #FEC861;
opacity: 0.2;
border: none;
}
.content1 .icon .content {
width: 87%;
height: 73.8%;
margin: auto;
border-radius: 15px 15px 15px 15px;
margin-top: 35px;
background-color: #FFFFFF;
}
.content1 .icon .content img {
width: 95%;
height: 95%;
float: right;
margin-top: 15px;
}
.content1 .icon1 {
width: 13%;
height: 86%;
margin: auto;
// background-color: #486aae;
}
.content1 .icon1 .icon {
width: 90%;
height: 27%;
// padding-top: 20px;
border-radius: 15px 15px 15px 15px;
margin-top: 20px;
box-shadow: 3px 3px 15px rgb(173, 171, 171);
// margin: auto;
background-color: #A4c3ff;
}
.content1 .icon1 .icon .image {
width: 100%;
height: 100%;
background-size: cover;
image-orientation: 100% 100%;
border-radius: 15px 15px 15px 15px;
// object-fit:cover;
/* 删除图片下方的多余空间 */
}
.content1 .icon .box {
width: 85%;
height: 300px;
float: left;
margin-top: 30px;
border-radius: 10px 10px 10px 0px;
background-color: #D9D9D9;
}
//
.footer {
margin-top: 100px;
width: 100%;
height: 250px;
// position: absolute;
text-align: center;
background-color: #252527;
}
.footer h3 {
width: 100%;
// position: absolute;
text-align: center;
font-size: 15px;
padding-top: 40px;
color: #7F9EED;
font-weight: bolder;
}
.footer h1 {
width: 100%;
// position: absolute;
font-family: "kaiti_gb2312";
margin-top: 10px;
font-size: 25px;
color: #7F9EED;
font-weight: bolder;
}
.footer p {
width: 100%;
height: 20px;
// position: absolute;
font-family: "kaiti_gb2312";
margin-top: 25px;
font-size: 17px;
color: #7F9EED;
}
</style>

@ -1,14 +1,167 @@
<template>
<div>
知识点学习
<!-- <div>知识点首页</div> -->
<div class="header">
<div class="logo"></div>
<div class="nav">
<div class="nav1">
<ul>
<li>企业入口&nbsp;&nbsp;|</li>
<li>教师入口&nbsp;&nbsp;|</li>
<li>学生入口&nbsp;&nbsp;|</li>
<li>毕业生入口</li>
</ul>
</div>
<div class="nav2">
<ul>
<li><a>学生首页</a></li>
<li><a>专业概况</a></li>
<li><a>教学改革</a></li>
<li><a>科学研就</a></li>
<li><a>人才培养</a></li>
<li><a>成果展示</a></li>
<li><a>产教结合</a></li>
<li><a>日常教学</a></li>
<li><a>优秀学生</a></li>
</ul>
</div>
</div>
<!-- <div class="inco"></div> -->
<h1>知识图谱</h1>
<p>(专业代码 080902H)</p>
</div>
</template>
<script lang='ts' setup>
import { } from 'vue'
<script lang="ts" setup>
// import axios from 'axios';
import {} from 'vue'
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
* {
margin: 0;
padding: 0;
/* box-sizing: border-box; */
/* font: 14px/28px "微软雅黑"; */
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
body {
/* 宽度占浏览器可视区域的宽度 */
width: 100vm;
// position: relative;
// display:flex;
// justify-content:center;i
/* height: 1500px; */
// background-color: #FFFFFF;
}
img {
width: 100%;
height: 100%;
}
//
.header {
width: 100%;
height: 300px;
background-image: url('/src/assets/images/top.png');
background-size: 100% 100%;
// background:linear-gradient(#74a5ff,#91b7ff,#A4c3ff);
}
//
.header .nav {
width: 95%;
height: 100px;
// background-color: #3D78F5;
}
.header .nav1 {
float: right;
width: 24%;
height: 10%;
margin-right: 20px;
// background-color: #6759ff;
}
.header .nav1 ul li {
float: left;
margin-left: 5px;
line-height: 20px;
color: white;
font-size: 12px;
text-align: center;
// border-right: 1px solid #FFFFFF;
}
.header .nav2 {
float: right;
// padding-right: -20px;
width: 68%;
height: 25%;
margin-top: 30px;
// margin-right: -260px;
// background-color: #6759ff;
}
.header .nav2 ul li {
float: left;
margin-left: 20px;
// line-height: 40px;
color: white;
font-size: 15px;
text-align: center;
}
.header .nav2 ul li:hover {
color: #74a5ff;
}
.header .inco {
float: left;
width: 48%;
height: 65.1%;
margin-left: 80px;
// background-color: #6759ff;
}
.header h1 {
font-size: 50px;
margin-top: 23px;
font-weight: bolder;
color: #FFFFFF;
float: right;
margin-right: 173px // float: left;
// margin-left: 779px;
}
.header p {
font-size: 15px;
margin-top: 102px;
// font-weight:bolder;
color: #FFFFFF;
float: right;
margin-right: -175px;
}
.logo {
width: 15%;
height: 30%;
float: left;
margin-left: 80px;
}
</style>

Loading…
Cancel
Save