diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/src/views/measure/source/list.vue b/src/views/measure/source/list.vue
index 6c88385..136f0a8 100644
--- a/src/views/measure/source/list.vue
+++ b/src/views/measure/source/list.vue
@@ -2,7 +2,6 @@
import { reactive, ref } from 'vue'
import type { Ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
-import { Delete } from '@element-plus/icons-vue'
import type { IlistQuery, IlistType } from './list_interface'
import ListSourceAdd from './listAdd.vue'
import { getSoucreList, getSoucreListDelete } from '@/api/system/source'
@@ -65,21 +64,6 @@
},
])
-// 表格loding
-const listLoading = ref(false)
-const fetchData = (isNowPage: boolean) => {
- listLoading.value = true
- if (!isNowPage) {
- // 是否显示当前页,否则跳转第一页
- listQuery.value.offset = 1
- }
- getSoucreList(listQuery.value).then((response) => {
- list.value = response.data.rows
- total.value = parseInt(response.data.total)
- listLoading.value = false
- })
-}
-fetchData(true)
// 选中的内容
const checkoutList = ref([])
// 文件上传input
@@ -91,6 +75,20 @@
const isPopconfirmShow = ref(false)
// 点击按钮
const buttonType = ref('')
+const loadingTable = ref(false)
+const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
+ if (!isNowPage) {
+ // 是否显示当前页,否则跳转第一页
+ listQuery.value.offset = 1
+ }
+ getSoucreList(listQuery.value).then((response) => {
+ list.value = response.data.rows
+ total.value = parseInt(response.data.total)
+ loadingTable.value = false
+ })
+}
+fetchData(true)
// 多选发生改变时
const handleSelectionChange = (e: any) => {
checkoutList.value = e
@@ -106,16 +104,6 @@
isPopconfirmShow.value = true
deleteId.value = row.id
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
// 点击搜索
const searchList = () => {
fetchData(true)
@@ -192,6 +180,16 @@
ElMessage.error('请上传pdf格式')
}
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
const upload = () => {
fileRef.value.click()
}
@@ -232,7 +230,8 @@
-
-
- 重置
-
-
@@ -280,64 +274,43 @@
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
-
=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/src/views/measure/source/list.vue b/src/views/measure/source/list.vue
index 6c88385..136f0a8 100644
--- a/src/views/measure/source/list.vue
+++ b/src/views/measure/source/list.vue
@@ -2,7 +2,6 @@
import { reactive, ref } from 'vue'
import type { Ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
-import { Delete } from '@element-plus/icons-vue'
import type { IlistQuery, IlistType } from './list_interface'
import ListSourceAdd from './listAdd.vue'
import { getSoucreList, getSoucreListDelete } from '@/api/system/source'
@@ -65,21 +64,6 @@
},
])
-// 表格loding
-const listLoading = ref(false)
-const fetchData = (isNowPage: boolean) => {
- listLoading.value = true
- if (!isNowPage) {
- // 是否显示当前页,否则跳转第一页
- listQuery.value.offset = 1
- }
- getSoucreList(listQuery.value).then((response) => {
- list.value = response.data.rows
- total.value = parseInt(response.data.total)
- listLoading.value = false
- })
-}
-fetchData(true)
// 选中的内容
const checkoutList = ref([])
// 文件上传input
@@ -91,6 +75,20 @@
const isPopconfirmShow = ref(false)
// 点击按钮
const buttonType = ref('')
+const loadingTable = ref(false)
+const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
+ if (!isNowPage) {
+ // 是否显示当前页,否则跳转第一页
+ listQuery.value.offset = 1
+ }
+ getSoucreList(listQuery.value).then((response) => {
+ list.value = response.data.rows
+ total.value = parseInt(response.data.total)
+ loadingTable.value = false
+ })
+}
+fetchData(true)
// 多选发生改变时
const handleSelectionChange = (e: any) => {
checkoutList.value = e
@@ -106,16 +104,6 @@
isPopconfirmShow.value = true
deleteId.value = row.id
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
// 点击搜索
const searchList = () => {
fetchData(true)
@@ -192,6 +180,16 @@
ElMessage.error('请上传pdf格式')
}
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
const upload = () => {
fileRef.value.click()
}
@@ -232,7 +230,8 @@
-
-
- 重置
-
-
@@ -280,64 +274,43 @@
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
-
import type { Ref } from 'vue'
import { reactive, ref } from 'vue'
-import { Delete } from '@element-plus/icons-vue'
import { ElLoading, ElMessage } from 'element-plus'
import type { IlistQuery, IlistType } from './plan_interface'
import PlanAdd from './planAdd.vue'
@@ -25,7 +24,11 @@
const show = ref(true)
const infoId = ref('')
const buttonType = ref('')
+// 主管部门下拉框
+const options = ref([])
+const loadingTable = ref(false)
const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
if (!isNowPage) {
// 是否显示当前页,否则跳转第一页
listQuery.value.offset = 1
@@ -33,11 +36,11 @@
getPlanList(listQuery.value).then((response) => {
list.value = response.data.rows
total.value = parseInt(response.data.total)
+ loadingTable.value = false
})
}
fetchData(true)
-// 主管部门下拉框
-const options = ref([])
+
// 表头
const columns = ref([
{
@@ -53,14 +56,17 @@
{
text: '培训对象',
value: 'trainPerson',
+ width: '120',
},
{
text: '培训人数',
value: 'trainNumber',
+ width: '120',
},
{
text: '培训学时',
value: 'trainHour',
+ width: '120',
},
{
text: '培训时间',
@@ -75,10 +81,12 @@
{
text: '实施单位',
value: 'effectiveCompany',
+ width: '120',
},
{
text: '培训内容',
value: 'trainContent',
+ width: '120',
},
{
text: '创建时间',
@@ -88,6 +96,7 @@
{
text: '备注',
value: 'remark',
+ width: '120',
},
])
// 搜索
@@ -116,7 +125,7 @@
if (checkoutList.value.length <= 0) {
exportExcel({
json: list.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -124,7 +133,7 @@
else {
exportExcel({
json: checkoutList.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -137,6 +146,7 @@
fetchData(true)
}
const handleEdit = (index: string, row: object, type: string) => {
+ console.log(row)
infoId.value = row.id
buttonType.value = type
show.value = false
@@ -148,18 +158,9 @@
}
const handelClick = (text: string) => {}
const handleSelectionChange = (e: any) => {
+ console.log(e, '666')
checkoutList.value = e
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
const add = () => {
infoId.value = ''
buttonType.value = '新建'
@@ -188,6 +189,16 @@
}
})
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
// 打印
const printObj = ref({
id: 'print', // 需要打印元素的id
@@ -220,7 +231,7 @@
-
+
-
-
- 重置
-
-
@@ -292,76 +292,50 @@
打印
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
- 二维码
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+ 二维码
+
+
+
+
+
-
=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/src/views/measure/source/list.vue b/src/views/measure/source/list.vue
index 6c88385..136f0a8 100644
--- a/src/views/measure/source/list.vue
+++ b/src/views/measure/source/list.vue
@@ -2,7 +2,6 @@
import { reactive, ref } from 'vue'
import type { Ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
-import { Delete } from '@element-plus/icons-vue'
import type { IlistQuery, IlistType } from './list_interface'
import ListSourceAdd from './listAdd.vue'
import { getSoucreList, getSoucreListDelete } from '@/api/system/source'
@@ -65,21 +64,6 @@
},
])
-// 表格loding
-const listLoading = ref(false)
-const fetchData = (isNowPage: boolean) => {
- listLoading.value = true
- if (!isNowPage) {
- // 是否显示当前页,否则跳转第一页
- listQuery.value.offset = 1
- }
- getSoucreList(listQuery.value).then((response) => {
- list.value = response.data.rows
- total.value = parseInt(response.data.total)
- listLoading.value = false
- })
-}
-fetchData(true)
// 选中的内容
const checkoutList = ref([])
// 文件上传input
@@ -91,6 +75,20 @@
const isPopconfirmShow = ref(false)
// 点击按钮
const buttonType = ref('')
+const loadingTable = ref(false)
+const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
+ if (!isNowPage) {
+ // 是否显示当前页,否则跳转第一页
+ listQuery.value.offset = 1
+ }
+ getSoucreList(listQuery.value).then((response) => {
+ list.value = response.data.rows
+ total.value = parseInt(response.data.total)
+ loadingTable.value = false
+ })
+}
+fetchData(true)
// 多选发生改变时
const handleSelectionChange = (e: any) => {
checkoutList.value = e
@@ -106,16 +104,6 @@
isPopconfirmShow.value = true
deleteId.value = row.id
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
// 点击搜索
const searchList = () => {
fetchData(true)
@@ -192,6 +180,16 @@
ElMessage.error('请上传pdf格式')
}
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
const upload = () => {
fileRef.value.click()
}
@@ -232,7 +230,8 @@
-
-
- 重置
-
-
@@ -280,64 +274,43 @@
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
-
import type { Ref } from 'vue'
import { reactive, ref } from 'vue'
-import { Delete } from '@element-plus/icons-vue'
import { ElLoading, ElMessage } from 'element-plus'
import type { IlistQuery, IlistType } from './plan_interface'
import PlanAdd from './planAdd.vue'
@@ -25,7 +24,11 @@
const show = ref(true)
const infoId = ref('')
const buttonType = ref('')
+// 主管部门下拉框
+const options = ref([])
+const loadingTable = ref(false)
const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
if (!isNowPage) {
// 是否显示当前页,否则跳转第一页
listQuery.value.offset = 1
@@ -33,11 +36,11 @@
getPlanList(listQuery.value).then((response) => {
list.value = response.data.rows
total.value = parseInt(response.data.total)
+ loadingTable.value = false
})
}
fetchData(true)
-// 主管部门下拉框
-const options = ref([])
+
// 表头
const columns = ref([
{
@@ -53,14 +56,17 @@
{
text: '培训对象',
value: 'trainPerson',
+ width: '120',
},
{
text: '培训人数',
value: 'trainNumber',
+ width: '120',
},
{
text: '培训学时',
value: 'trainHour',
+ width: '120',
},
{
text: '培训时间',
@@ -75,10 +81,12 @@
{
text: '实施单位',
value: 'effectiveCompany',
+ width: '120',
},
{
text: '培训内容',
value: 'trainContent',
+ width: '120',
},
{
text: '创建时间',
@@ -88,6 +96,7 @@
{
text: '备注',
value: 'remark',
+ width: '120',
},
])
// 搜索
@@ -116,7 +125,7 @@
if (checkoutList.value.length <= 0) {
exportExcel({
json: list.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -124,7 +133,7 @@
else {
exportExcel({
json: checkoutList.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -137,6 +146,7 @@
fetchData(true)
}
const handleEdit = (index: string, row: object, type: string) => {
+ console.log(row)
infoId.value = row.id
buttonType.value = type
show.value = false
@@ -148,18 +158,9 @@
}
const handelClick = (text: string) => {}
const handleSelectionChange = (e: any) => {
+ console.log(e, '666')
checkoutList.value = e
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
const add = () => {
infoId.value = ''
buttonType.value = '新建'
@@ -188,6 +189,16 @@
}
})
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
// 打印
const printObj = ref({
id: 'print', // 需要打印元素的id
@@ -220,7 +231,7 @@
-
+
-
-
- 重置
-
-
@@ -292,76 +292,50 @@
打印
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
- 二维码
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+ 二维码
+
+
+
+
+
-
-import { getDeptTree, getListAdd, getListDetail, getListUpdate } from '@/api/system/plan'
+import {
+ getDeptTree,
+ getListAdd,
+ getListDetail,
+ getListUpdate,
+} from '@/api/system/plan'
const props = defineProps({
infoId: {
@@ -36,7 +41,7 @@
{ text: '学员名称', value: 'name' },
{ text: '单位名称', value: 'company' },
{ text: '技术职称', value: 'technologyJob' },
- { text: '签到时间', value: 'signTime' },
+ { text: '签到时间', value: 'signTime', type: '下拉' },
]
const dialogVisible = ref(false)
const addPersonList = ref({
@@ -100,11 +105,23 @@
}
const getAddList = (buttonType: string) => {
if (buttonType === '提交' && props.buttonType !== '编辑') {
- getListAdd(formInline.value).then((res) => {})
+ getListAdd(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else if (buttonType === '提交' && props.buttonType === '编辑') {
+ formInline.value.trainStaffList.map((item) => {
+ delete item.updateTime
+ delete item.createTime
+ })
formInline.value.id = props.infoId
- getListUpdate(formInline.value).then((res) => {})
+ getListUpdate(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else {
// 打印
@@ -313,13 +330,24 @@
:model="addPersonList"
style="max-width: 460px;"
>
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/src/views/measure/source/list.vue b/src/views/measure/source/list.vue
index 6c88385..136f0a8 100644
--- a/src/views/measure/source/list.vue
+++ b/src/views/measure/source/list.vue
@@ -2,7 +2,6 @@
import { reactive, ref } from 'vue'
import type { Ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
-import { Delete } from '@element-plus/icons-vue'
import type { IlistQuery, IlistType } from './list_interface'
import ListSourceAdd from './listAdd.vue'
import { getSoucreList, getSoucreListDelete } from '@/api/system/source'
@@ -65,21 +64,6 @@
},
])
-// 表格loding
-const listLoading = ref(false)
-const fetchData = (isNowPage: boolean) => {
- listLoading.value = true
- if (!isNowPage) {
- // 是否显示当前页,否则跳转第一页
- listQuery.value.offset = 1
- }
- getSoucreList(listQuery.value).then((response) => {
- list.value = response.data.rows
- total.value = parseInt(response.data.total)
- listLoading.value = false
- })
-}
-fetchData(true)
// 选中的内容
const checkoutList = ref([])
// 文件上传input
@@ -91,6 +75,20 @@
const isPopconfirmShow = ref(false)
// 点击按钮
const buttonType = ref('')
+const loadingTable = ref(false)
+const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
+ if (!isNowPage) {
+ // 是否显示当前页,否则跳转第一页
+ listQuery.value.offset = 1
+ }
+ getSoucreList(listQuery.value).then((response) => {
+ list.value = response.data.rows
+ total.value = parseInt(response.data.total)
+ loadingTable.value = false
+ })
+}
+fetchData(true)
// 多选发生改变时
const handleSelectionChange = (e: any) => {
checkoutList.value = e
@@ -106,16 +104,6 @@
isPopconfirmShow.value = true
deleteId.value = row.id
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
// 点击搜索
const searchList = () => {
fetchData(true)
@@ -192,6 +180,16 @@
ElMessage.error('请上传pdf格式')
}
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
const upload = () => {
fileRef.value.click()
}
@@ -232,7 +230,8 @@
-
-
- 重置
-
-
@@ -280,64 +274,43 @@
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
-
import type { Ref } from 'vue'
import { reactive, ref } from 'vue'
-import { Delete } from '@element-plus/icons-vue'
import { ElLoading, ElMessage } from 'element-plus'
import type { IlistQuery, IlistType } from './plan_interface'
import PlanAdd from './planAdd.vue'
@@ -25,7 +24,11 @@
const show = ref(true)
const infoId = ref('')
const buttonType = ref('')
+// 主管部门下拉框
+const options = ref([])
+const loadingTable = ref(false)
const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
if (!isNowPage) {
// 是否显示当前页,否则跳转第一页
listQuery.value.offset = 1
@@ -33,11 +36,11 @@
getPlanList(listQuery.value).then((response) => {
list.value = response.data.rows
total.value = parseInt(response.data.total)
+ loadingTable.value = false
})
}
fetchData(true)
-// 主管部门下拉框
-const options = ref([])
+
// 表头
const columns = ref([
{
@@ -53,14 +56,17 @@
{
text: '培训对象',
value: 'trainPerson',
+ width: '120',
},
{
text: '培训人数',
value: 'trainNumber',
+ width: '120',
},
{
text: '培训学时',
value: 'trainHour',
+ width: '120',
},
{
text: '培训时间',
@@ -75,10 +81,12 @@
{
text: '实施单位',
value: 'effectiveCompany',
+ width: '120',
},
{
text: '培训内容',
value: 'trainContent',
+ width: '120',
},
{
text: '创建时间',
@@ -88,6 +96,7 @@
{
text: '备注',
value: 'remark',
+ width: '120',
},
])
// 搜索
@@ -116,7 +125,7 @@
if (checkoutList.value.length <= 0) {
exportExcel({
json: list.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -124,7 +133,7 @@
else {
exportExcel({
json: checkoutList.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -137,6 +146,7 @@
fetchData(true)
}
const handleEdit = (index: string, row: object, type: string) => {
+ console.log(row)
infoId.value = row.id
buttonType.value = type
show.value = false
@@ -148,18 +158,9 @@
}
const handelClick = (text: string) => {}
const handleSelectionChange = (e: any) => {
+ console.log(e, '666')
checkoutList.value = e
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
const add = () => {
infoId.value = ''
buttonType.value = '新建'
@@ -188,6 +189,16 @@
}
})
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
// 打印
const printObj = ref({
id: 'print', // 需要打印元素的id
@@ -220,7 +231,7 @@
-
+
-
-
- 重置
-
-
@@ -292,76 +292,50 @@
打印
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
- 二维码
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+ 二维码
+
+
+
+
+
-
-import { getDeptTree, getListAdd, getListDetail, getListUpdate } from '@/api/system/plan'
+import {
+ getDeptTree,
+ getListAdd,
+ getListDetail,
+ getListUpdate,
+} from '@/api/system/plan'
const props = defineProps({
infoId: {
@@ -36,7 +41,7 @@
{ text: '学员名称', value: 'name' },
{ text: '单位名称', value: 'company' },
{ text: '技术职称', value: 'technologyJob' },
- { text: '签到时间', value: 'signTime' },
+ { text: '签到时间', value: 'signTime', type: '下拉' },
]
const dialogVisible = ref(false)
const addPersonList = ref({
@@ -100,11 +105,23 @@
}
const getAddList = (buttonType: string) => {
if (buttonType === '提交' && props.buttonType !== '编辑') {
- getListAdd(formInline.value).then((res) => {})
+ getListAdd(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else if (buttonType === '提交' && props.buttonType === '编辑') {
+ formInline.value.trainStaffList.map((item) => {
+ delete item.updateTime
+ delete item.createTime
+ })
formInline.value.id = props.infoId
- getListUpdate(formInline.value).then((res) => {})
+ getListUpdate(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else {
// 打印
@@ -313,13 +330,24 @@
:model="addPersonList"
style="max-width: 460px;"
>
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/plan_interface.ts b/src/views/measure/train/plan_interface.ts
index 2010edd..6524e67 100644
--- a/src/views/measure/train/plan_interface.ts
+++ b/src/views/measure/train/plan_interface.ts
@@ -24,3 +24,28 @@
trainTime: string
}
+export interface IlistQuerys {
+ trainTime: string
+ createTime: string
+ logNo: string
+ trainName: string
+ offset: number
+ limit: number
+}
+
+export interface IlistTypes {
+ createTime: string
+ deptName: string
+ director: string
+ effectiveCompany: string
+ planName: string
+ planNo: string
+ remark: string
+ trainAddress: string
+ trainContent: string
+ trainHour: string
+ trainNumber: number
+ trainPerson: string
+ trainTime: string
+}
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/src/views/measure/source/list.vue b/src/views/measure/source/list.vue
index 6c88385..136f0a8 100644
--- a/src/views/measure/source/list.vue
+++ b/src/views/measure/source/list.vue
@@ -2,7 +2,6 @@
import { reactive, ref } from 'vue'
import type { Ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
-import { Delete } from '@element-plus/icons-vue'
import type { IlistQuery, IlistType } from './list_interface'
import ListSourceAdd from './listAdd.vue'
import { getSoucreList, getSoucreListDelete } from '@/api/system/source'
@@ -65,21 +64,6 @@
},
])
-// 表格loding
-const listLoading = ref(false)
-const fetchData = (isNowPage: boolean) => {
- listLoading.value = true
- if (!isNowPage) {
- // 是否显示当前页,否则跳转第一页
- listQuery.value.offset = 1
- }
- getSoucreList(listQuery.value).then((response) => {
- list.value = response.data.rows
- total.value = parseInt(response.data.total)
- listLoading.value = false
- })
-}
-fetchData(true)
// 选中的内容
const checkoutList = ref([])
// 文件上传input
@@ -91,6 +75,20 @@
const isPopconfirmShow = ref(false)
// 点击按钮
const buttonType = ref('')
+const loadingTable = ref(false)
+const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
+ if (!isNowPage) {
+ // 是否显示当前页,否则跳转第一页
+ listQuery.value.offset = 1
+ }
+ getSoucreList(listQuery.value).then((response) => {
+ list.value = response.data.rows
+ total.value = parseInt(response.data.total)
+ loadingTable.value = false
+ })
+}
+fetchData(true)
// 多选发生改变时
const handleSelectionChange = (e: any) => {
checkoutList.value = e
@@ -106,16 +104,6 @@
isPopconfirmShow.value = true
deleteId.value = row.id
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
// 点击搜索
const searchList = () => {
fetchData(true)
@@ -192,6 +180,16 @@
ElMessage.error('请上传pdf格式')
}
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
const upload = () => {
fileRef.value.click()
}
@@ -232,7 +230,8 @@
-
-
- 重置
-
-
@@ -280,64 +274,43 @@
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
-
import type { Ref } from 'vue'
import { reactive, ref } from 'vue'
-import { Delete } from '@element-plus/icons-vue'
import { ElLoading, ElMessage } from 'element-plus'
import type { IlistQuery, IlistType } from './plan_interface'
import PlanAdd from './planAdd.vue'
@@ -25,7 +24,11 @@
const show = ref(true)
const infoId = ref('')
const buttonType = ref('')
+// 主管部门下拉框
+const options = ref([])
+const loadingTable = ref(false)
const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
if (!isNowPage) {
// 是否显示当前页,否则跳转第一页
listQuery.value.offset = 1
@@ -33,11 +36,11 @@
getPlanList(listQuery.value).then((response) => {
list.value = response.data.rows
total.value = parseInt(response.data.total)
+ loadingTable.value = false
})
}
fetchData(true)
-// 主管部门下拉框
-const options = ref([])
+
// 表头
const columns = ref([
{
@@ -53,14 +56,17 @@
{
text: '培训对象',
value: 'trainPerson',
+ width: '120',
},
{
text: '培训人数',
value: 'trainNumber',
+ width: '120',
},
{
text: '培训学时',
value: 'trainHour',
+ width: '120',
},
{
text: '培训时间',
@@ -75,10 +81,12 @@
{
text: '实施单位',
value: 'effectiveCompany',
+ width: '120',
},
{
text: '培训内容',
value: 'trainContent',
+ width: '120',
},
{
text: '创建时间',
@@ -88,6 +96,7 @@
{
text: '备注',
value: 'remark',
+ width: '120',
},
])
// 搜索
@@ -116,7 +125,7 @@
if (checkoutList.value.length <= 0) {
exportExcel({
json: list.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -124,7 +133,7 @@
else {
exportExcel({
json: checkoutList.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -137,6 +146,7 @@
fetchData(true)
}
const handleEdit = (index: string, row: object, type: string) => {
+ console.log(row)
infoId.value = row.id
buttonType.value = type
show.value = false
@@ -148,18 +158,9 @@
}
const handelClick = (text: string) => {}
const handleSelectionChange = (e: any) => {
+ console.log(e, '666')
checkoutList.value = e
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
const add = () => {
infoId.value = ''
buttonType.value = '新建'
@@ -188,6 +189,16 @@
}
})
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
// 打印
const printObj = ref({
id: 'print', // 需要打印元素的id
@@ -220,7 +231,7 @@
-
+
-
-
- 重置
-
-
@@ -292,76 +292,50 @@
打印
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
- 二维码
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+ 二维码
+
+
+
+
+
-
-import { getDeptTree, getListAdd, getListDetail, getListUpdate } from '@/api/system/plan'
+import {
+ getDeptTree,
+ getListAdd,
+ getListDetail,
+ getListUpdate,
+} from '@/api/system/plan'
const props = defineProps({
infoId: {
@@ -36,7 +41,7 @@
{ text: '学员名称', value: 'name' },
{ text: '单位名称', value: 'company' },
{ text: '技术职称', value: 'technologyJob' },
- { text: '签到时间', value: 'signTime' },
+ { text: '签到时间', value: 'signTime', type: '下拉' },
]
const dialogVisible = ref(false)
const addPersonList = ref({
@@ -100,11 +105,23 @@
}
const getAddList = (buttonType: string) => {
if (buttonType === '提交' && props.buttonType !== '编辑') {
- getListAdd(formInline.value).then((res) => {})
+ getListAdd(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else if (buttonType === '提交' && props.buttonType === '编辑') {
+ formInline.value.trainStaffList.map((item) => {
+ delete item.updateTime
+ delete item.createTime
+ })
formInline.value.id = props.infoId
- getListUpdate(formInline.value).then((res) => {})
+ getListUpdate(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else {
// 打印
@@ -313,13 +330,24 @@
:model="addPersonList"
style="max-width: 460px;"
>
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/plan_interface.ts b/src/views/measure/train/plan_interface.ts
index 2010edd..6524e67 100644
--- a/src/views/measure/train/plan_interface.ts
+++ b/src/views/measure/train/plan_interface.ts
@@ -24,3 +24,28 @@
trainTime: string
}
+export interface IlistQuerys {
+ trainTime: string
+ createTime: string
+ logNo: string
+ trainName: string
+ offset: number
+ limit: number
+}
+
+export interface IlistTypes {
+ createTime: string
+ deptName: string
+ director: string
+ effectiveCompany: string
+ planName: string
+ planNo: string
+ remark: string
+ trainAddress: string
+ trainContent: string
+ trainHour: string
+ trainNumber: number
+ trainPerson: string
+ trainTime: string
+}
+
diff --git a/src/views/measure/train/trainLog.vue b/src/views/measure/train/trainLog.vue
index f87a4a5..56b2ec7 100644
--- a/src/views/measure/train/trainLog.vue
+++ b/src/views/measure/train/trainLog.vue
@@ -1,3 +1,316 @@
+
+
- 培训记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量导入
+
+
+ 模板下载
+
+
+ 新建
+
+
+ 导出
+
+
+ 打印
+
+
+
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 00c8648..3fa6a0a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -67,7 +67,7 @@
xlsx: ^0.18.5
dependencies:
- '@element-plus/icons-vue': 2.0.10_vue@3.2.44
+ '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.44
'@tinymce/tinymce-vue': 5.0.0_vue@3.2.44
'@vueuse/core': 9.5.0_vue@3.2.44
'@vueuse/integrations': 9.5.0_zxnpue2dc5wlnkjhqtaazygmxe
@@ -595,24 +595,6 @@
get-tsconfig: 4.2.0
dev: true
- /@esbuild/android-arm/0.15.12:
- resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64/0.15.12:
- resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@eslint/eslintrc/1.3.3:
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1536,10 +1518,6 @@
engines: {node: '>=8'}
dev: true
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
-
/async/2.6.4:
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
dependencies:
@@ -2674,186 +2652,6 @@
is-symbol: 1.0.4
dev: true
- /esbuild-android-64/0.15.12:
- resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64/0.15.12:
- resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64/0.15.12:
- resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64/0.15.12:
- resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64/0.15.12:
- resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64/0.15.12:
- resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32/0.15.12:
- resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-64/0.15.12:
- resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm/0.15.12:
- resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-arm64/0.15.12:
- resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-mips64le/0.15.12:
- resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-ppc64le/0.15.12:
- resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-riscv64/0.15.12:
- resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-s390x/0.15.12:
- resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-netbsd-64/0.15.12:
- resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-openbsd-64/0.15.12:
- resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-sunos-64/0.15.12:
- resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-32/0.15.12:
- resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-64/0.15.12:
- resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-windows-arm64/0.15.12:
- resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
@@ -3862,7 +3660,7 @@
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: registry.npmmirror.com/uglify-js/3.17.4
dev: true
/har-schema/2.0.0:
@@ -7162,7 +6960,7 @@
'@esbuild-kit/core-utils': 3.0.0
'@esbuild-kit/esm-loader': 2.5.0
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/tunnel-agent/0.6.0:
diff --git a/src/api/system/plan.ts b/src/api/system/plan.ts
index c63aef2..8b448cd 100644
--- a/src/api/system/plan.ts
+++ b/src/api/system/plan.ts
@@ -41,7 +41,7 @@
// 培训计划更新
export function getListUpdate(data: object) {
return request({
- url: `${prefix}/train/log/update`,
+ url: `${prefix}/train/plan/update`,
method: 'post',
data,
})
@@ -54,3 +54,39 @@
data,
})
}
+
+// 培训记录列表
+export function getLogList(data: object) {
+ return request({
+ url: `${prefix}/train/log/listPage?offset=${data.offset}&limit=${data.limit} `,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表编号查询
+export function getPlanIdList(data: object) {
+ return request({
+ url: `${prefix}/train/plan/list`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录新建
+export function getListLogAdd(data: object) {
+ return request({
+ url: `${prefix}/train/log/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 培训记录详情
+export function getListLogDetail(data: object) {
+ return request({
+ url: `${prefix}/train/log/detail`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components.d.ts b/src/components.d.ts
index a832874..d959c68 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -15,7 +15,6 @@
AuthAll: typeof import('./components/AuthAll/index.vue')['default']
BatchActionBar: typeof import('./components/BatchActionBar/index.vue')['default']
ConditionDrawer: typeof import('./components/drawer/conditionDrawer.vue')['default']
- copy: typeof import('./components/workFlow/nodeWrap copy.vue')['default']
CopyerDrawer: typeof import('./components/drawer/copyerDrawer.vue')['default']
Copyright: typeof import('./components/Copyright/index.vue')['default']
DeptSelect: typeof import('./components/DeptSelect/index.vue')['default']
diff --git a/src/views/measure/source/list.vue b/src/views/measure/source/list.vue
index 6c88385..136f0a8 100644
--- a/src/views/measure/source/list.vue
+++ b/src/views/measure/source/list.vue
@@ -2,7 +2,6 @@
import { reactive, ref } from 'vue'
import type { Ref } from 'vue'
import { ElLoading, ElMessage } from 'element-plus'
-import { Delete } from '@element-plus/icons-vue'
import type { IlistQuery, IlistType } from './list_interface'
import ListSourceAdd from './listAdd.vue'
import { getSoucreList, getSoucreListDelete } from '@/api/system/source'
@@ -65,21 +64,6 @@
},
])
-// 表格loding
-const listLoading = ref(false)
-const fetchData = (isNowPage: boolean) => {
- listLoading.value = true
- if (!isNowPage) {
- // 是否显示当前页,否则跳转第一页
- listQuery.value.offset = 1
- }
- getSoucreList(listQuery.value).then((response) => {
- list.value = response.data.rows
- total.value = parseInt(response.data.total)
- listLoading.value = false
- })
-}
-fetchData(true)
// 选中的内容
const checkoutList = ref([])
// 文件上传input
@@ -91,6 +75,20 @@
const isPopconfirmShow = ref(false)
// 点击按钮
const buttonType = ref('')
+const loadingTable = ref(false)
+const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
+ if (!isNowPage) {
+ // 是否显示当前页,否则跳转第一页
+ listQuery.value.offset = 1
+ }
+ getSoucreList(listQuery.value).then((response) => {
+ list.value = response.data.rows
+ total.value = parseInt(response.data.total)
+ loadingTable.value = false
+ })
+}
+fetchData(true)
// 多选发生改变时
const handleSelectionChange = (e: any) => {
checkoutList.value = e
@@ -106,16 +104,6 @@
isPopconfirmShow.value = true
deleteId.value = row.id
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
// 点击搜索
const searchList = () => {
fetchData(true)
@@ -192,6 +180,16 @@
ElMessage.error('请上传pdf格式')
}
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
const upload = () => {
fileRef.value.click()
}
@@ -232,7 +230,8 @@
-
-
- 重置
-
-
@@ -280,64 +274,43 @@
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
-
import type { Ref } from 'vue'
import { reactive, ref } from 'vue'
-import { Delete } from '@element-plus/icons-vue'
import { ElLoading, ElMessage } from 'element-plus'
import type { IlistQuery, IlistType } from './plan_interface'
import PlanAdd from './planAdd.vue'
@@ -25,7 +24,11 @@
const show = ref(true)
const infoId = ref('')
const buttonType = ref('')
+// 主管部门下拉框
+const options = ref([])
+const loadingTable = ref(false)
const fetchData = (isNowPage: boolean) => {
+ loadingTable.value = true
if (!isNowPage) {
// 是否显示当前页,否则跳转第一页
listQuery.value.offset = 1
@@ -33,11 +36,11 @@
getPlanList(listQuery.value).then((response) => {
list.value = response.data.rows
total.value = parseInt(response.data.total)
+ loadingTable.value = false
})
}
fetchData(true)
-// 主管部门下拉框
-const options = ref([])
+
// 表头
const columns = ref([
{
@@ -53,14 +56,17 @@
{
text: '培训对象',
value: 'trainPerson',
+ width: '120',
},
{
text: '培训人数',
value: 'trainNumber',
+ width: '120',
},
{
text: '培训学时',
value: 'trainHour',
+ width: '120',
},
{
text: '培训时间',
@@ -75,10 +81,12 @@
{
text: '实施单位',
value: 'effectiveCompany',
+ width: '120',
},
{
text: '培训内容',
value: 'trainContent',
+ width: '120',
},
{
text: '创建时间',
@@ -88,6 +96,7 @@
{
text: '备注',
value: 'remark',
+ width: '120',
},
])
// 搜索
@@ -116,7 +125,7 @@
if (checkoutList.value.length <= 0) {
exportExcel({
json: list.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -124,7 +133,7 @@
else {
exportExcel({
json: checkoutList.value.map((item: IlistType, index: number) => ({ index: index + 1, planNo: item.planNo, planName: item.planName, trainPerson: item.trainPerson, trainNumber: item.trainNumber, trainHour: item.trainHour, trainTime: item.trainTime, deptName: item.deptName, effectiveCompany: item.effectiveCompany, director: item.director, trainContent: item.trainContent, createTime: item.createTime, remark: item.remark })),
- name: '培训计划',
+ name: '培训记录',
titleArr: ['序号', '培训计划编号', '培训名称', '培训对象', '培训人数', '培训学时', '培训时间', '主管部门', '实施单位', '负责人', '培训内容', '创建时间', '备注'],
sheetName: 'sheet1',
})
@@ -137,6 +146,7 @@
fetchData(true)
}
const handleEdit = (index: string, row: object, type: string) => {
+ console.log(row)
infoId.value = row.id
buttonType.value = type
show.value = false
@@ -148,18 +158,9 @@
}
const handelClick = (text: string) => {}
const handleSelectionChange = (e: any) => {
+ console.log(e, '666')
checkoutList.value = e
}
-// 分页
-const handleSizeChange = (val: number) => {
- listQuery.value.limit = val
- fetchData(true)
-}
-// 分页
-const handleCurrentChange = (val: number) => {
- listQuery.value.offset = val
- fetchData(true)
-}
const add = () => {
infoId.value = ''
buttonType.value = '新建'
@@ -188,6 +189,16 @@
}
})
}
+// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+const changePage = (val: { size?: number; page?: number }) => {
+ if (val && val.size) {
+ listQuery.value.limit = val.size
+ }
+ if (val && val.page) {
+ listQuery.value.offset = val.page
+ }
+ fetchData(true)
+}
// 打印
const printObj = ref({
id: 'print', // 需要打印元素的id
@@ -220,7 +231,7 @@
-
+
-
-
- 重置
-
-
@@ -292,76 +292,50 @@
打印
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
- 二维码
-
-
-
-
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+ 删除
+
+
+ 二维码
+
+
+
+
+
-
-import { getDeptTree, getListAdd, getListDetail, getListUpdate } from '@/api/system/plan'
+import {
+ getDeptTree,
+ getListAdd,
+ getListDetail,
+ getListUpdate,
+} from '@/api/system/plan'
const props = defineProps({
infoId: {
@@ -36,7 +41,7 @@
{ text: '学员名称', value: 'name' },
{ text: '单位名称', value: 'company' },
{ text: '技术职称', value: 'technologyJob' },
- { text: '签到时间', value: 'signTime' },
+ { text: '签到时间', value: 'signTime', type: '下拉' },
]
const dialogVisible = ref(false)
const addPersonList = ref({
@@ -100,11 +105,23 @@
}
const getAddList = (buttonType: string) => {
if (buttonType === '提交' && props.buttonType !== '编辑') {
- getListAdd(formInline.value).then((res) => {})
+ getListAdd(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else if (buttonType === '提交' && props.buttonType === '编辑') {
+ formInline.value.trainStaffList.map((item) => {
+ delete item.updateTime
+ delete item.createTime
+ })
formInline.value.id = props.infoId
- getListUpdate(formInline.value).then((res) => {})
+ getListUpdate(formInline.value).then((res) => {
+ if (res.code === 200) {
+ close()
+ }
+ })
}
else {
// 打印
@@ -313,13 +330,24 @@
:model="addPersonList"
style="max-width: 460px;"
>
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/plan_interface.ts b/src/views/measure/train/plan_interface.ts
index 2010edd..6524e67 100644
--- a/src/views/measure/train/plan_interface.ts
+++ b/src/views/measure/train/plan_interface.ts
@@ -24,3 +24,28 @@
trainTime: string
}
+export interface IlistQuerys {
+ trainTime: string
+ createTime: string
+ logNo: string
+ trainName: string
+ offset: number
+ limit: number
+}
+
+export interface IlistTypes {
+ createTime: string
+ deptName: string
+ director: string
+ effectiveCompany: string
+ planName: string
+ planNo: string
+ remark: string
+ trainAddress: string
+ trainContent: string
+ trainHour: string
+ trainNumber: number
+ trainPerson: string
+ trainTime: string
+}
+
diff --git a/src/views/measure/train/trainLog.vue b/src/views/measure/train/trainLog.vue
index f87a4a5..56b2ec7 100644
--- a/src/views/measure/train/trainLog.vue
+++ b/src/views/measure/train/trainLog.vue
@@ -1,3 +1,316 @@
+
+
- 培训记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量导入
+
+
+ 模板下载
+
+
+ 新建
+
+
+ 导出
+
+
+ 打印
+
+
+
+
+
+
+
+ 编辑
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/trainLogAdd.vue b/src/views/measure/train/trainLogAdd.vue
new file mode 100644
index 0000000..f180b1a
--- /dev/null
+++ b/src/views/measure/train/trainLogAdd.vue
@@ -0,0 +1,448 @@
+
+
+
+
+
+
+ 新建培训记录
+
+
+
+ {{ buttonType === '详情' ? '打印' : '提交' }}
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 人员信息
+
+
+
+ 删除行
+
+
+ 增加行
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 完成
+
+
+
+
+