提交 ef6a35b3 authored 作者: matian's avatar matian

feat:新增证书查询

上级 ade18ec8
......@@ -15,11 +15,12 @@
"bootstrap": "^4.5.3",
"core-js": "^3.8.0",
"cross-env": "^7.0.2",
"element-ui": "^2.14.1",
"element-ui": "^2.15.6",
"jquery": "^3.5.1",
"js-cookie": "^2.2.1",
"js-md5": "^0.7.3",
"lodash": "^4.17.20",
"print-js": "^1.6.0",
"qrcode.vue": "^1.7.0",
"swiper": "^6.3.5",
"viewerjs": "^1.9.0",
......@@ -1327,12 +1328,15 @@
}
},
"node_modules/@babel/runtime": {
"version": "7.11.2",
"resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.11.2.tgz?cache=0&sync_timestamp=1596637803941&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz",
"integrity": "sha1-9UnBPHVMxAuHZEufqfCaapX+BzY=",
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
"integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/runtime-corejs3": {
......@@ -2104,7 +2108,7 @@
"version": "3.1.1",
"resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz",
"integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=",
"dev": true,
"devOptional": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
......@@ -2367,7 +2371,7 @@
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz",
"integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",
"dev": true
"devOptional": true
},
"node_modules/async-limiter": {
"version": "1.0.1",
......@@ -2617,7 +2621,7 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261283449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz",
"integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=",
"dev": true,
"devOptional": true,
"engines": {
"node": ">=8"
}
......@@ -2626,7 +2630,6 @@
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz",
"integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=",
"dev": true,
"optional": true,
"dependencies": {
"file-uri-to-path": "1.0.0"
......@@ -2776,7 +2779,7 @@
"version": "3.0.2",
"resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
"integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
"dev": true,
"devOptional": true,
"dependencies": {
"fill-range": "^7.0.1"
},
......@@ -3199,7 +3202,7 @@
"version": "3.4.2",
"resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596728935229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz",
"integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=",
"dev": true,
"devOptional": true,
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
......@@ -3220,7 +3223,7 @@
"version": "5.1.1",
"resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz",
"integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=",
"dev": true,
"devOptional": true,
"dependencies": {
"is-glob": "^4.0.1"
},
......@@ -3698,9 +3701,9 @@
}
},
"node_modules/core-js": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz",
"integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==",
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz",
"integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
......@@ -4559,9 +4562,9 @@
"dev": true
},
"node_modules/element-ui": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.14.1.tgz",
"integrity": "sha512-Uje0J12dBaXdyvt/EtuDA8diFbYTdO7uI4QCfl7zmEJmE1WxgCSVKhlRRoL8MDonO8pyNVhB4n0AFAR14g56nw==",
"version": "2.15.6",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.6.tgz",
"integrity": "sha512-rcYXEKd/j2G0AgficAOk1Zd1AsnHRkhmrK4yLHmNOiimU2JfsywgfKUjMoFuT6pQx0luhovj8lFjpE4Fnt58Iw==",
"dependencies": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
......@@ -5971,13 +5974,13 @@
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz",
"integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=",
"dev": true
"devOptional": true
},
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
"integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
"dev": true,
"devOptional": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
......@@ -6239,7 +6242,6 @@
"resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz",
"integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=",
"deprecated": "\"Please update to latest v2.3 or v2.2\"",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
......@@ -6402,7 +6404,7 @@
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz",
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
"dev": true,
"devOptional": true,
"dependencies": {
"is-glob": "^3.1.0",
"path-dirname": "^1.0.0"
......@@ -6412,7 +6414,7 @@
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"dev": true,
"devOptional": true,
"dependencies": {
"is-extglob": "^2.1.0"
},
......@@ -7332,7 +7334,7 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
"integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
"dev": true,
"devOptional": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
......@@ -7439,7 +7441,7 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true,
"devOptional": true,
"engines": {
"node": ">=0.10.0"
}
......@@ -7457,7 +7459,7 @@
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
"integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
"dev": true,
"devOptional": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
......@@ -7483,7 +7485,7 @@
"version": "7.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
"integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
"dev": true,
"devOptional": true,
"engines": {
"node": ">=0.12.0"
}
......@@ -8528,7 +8530,6 @@
"version": "2.14.1",
"resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz",
"integrity": "sha1-174036MQW5FJTDFHCJMV7/iHSwE=",
"dev": true,
"optional": true
},
"node_modules/nanomatch": {
......@@ -8701,7 +8702,7 @@
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
"integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
"dev": true,
"devOptional": true,
"engines": {
"node": ">=0.10.0"
}
......@@ -9341,7 +9342,7 @@
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
"integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
"dev": true
"devOptional": true
},
"node_modules/path-exists": {
"version": "3.0.0",
......@@ -9439,7 +9440,7 @@
"version": "2.2.2",
"resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
"integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
"dev": true,
"devOptional": true,
"engines": {
"node": ">=8.6"
},
......@@ -9693,6 +9694,11 @@
"utila": "~0.4"
}
},
"node_modules/print-js": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/print-js/-/print-js-1.6.0.tgz",
"integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
......@@ -10063,7 +10069,7 @@
"version": "3.4.0",
"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz",
"integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=",
"dev": true,
"devOptional": true,
"dependencies": {
"picomatch": "^2.2.1"
},
......@@ -10245,7 +10251,7 @@
"version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
"dev": true
"devOptional": true
},
"node_modules/renderkid": {
"version": "2.0.3",
......@@ -12150,7 +12156,7 @@
"version": "5.0.1",
"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
"integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
"dev": true,
"devOptional": true,
"dependencies": {
"is-number": "^7.0.0"
},
......@@ -12436,7 +12442,7 @@
"version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz",
"integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
"dev": true,
"devOptional": true,
"engines": {
"node": ">=4",
"yarn": "*"
......@@ -12931,7 +12937,6 @@
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz",
"integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=",
"dev": true,
"optional": true,
"dependencies": {
"chokidar": "^2.1.8"
......@@ -12944,7 +12949,6 @@
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz",
"integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
"dev": true,
"optional": true,
"dependencies": {
"micromatch": "^3.1.4",
......@@ -12955,7 +12959,6 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"optional": true,
"dependencies": {
"remove-trailing-separator": "^1.0.1"
......@@ -12968,7 +12971,6 @@
"version": "1.13.1",
"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261283449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz",
"integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
"dev": true,
"optional": true,
"engines": {
"node": ">=0.10.0"
......@@ -12978,7 +12980,6 @@
"version": "2.3.2",
"resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
"integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
"dev": true,
"optional": true,
"dependencies": {
"arr-flatten": "^1.1.0",
......@@ -13001,7 +13002,6 @@
"resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1596728935229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz",
"integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
"deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
"dev": true,
"optional": true,
"dependencies": {
"anymatch": "^2.0.0",
......@@ -13024,7 +13024,6 @@
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"optional": true,
"dependencies": {
"extend-shallow": "^2.0.1",
......@@ -13041,7 +13040,6 @@
"resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz",
"integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
"deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
......@@ -13059,7 +13057,6 @@
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"optional": true,
"dependencies": {
"binary-extensions": "^1.0.0"
......@@ -13072,7 +13069,6 @@
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"optional": true,
"dependencies": {
"kind-of": "^3.0.2"
......@@ -13085,7 +13081,6 @@
"version": "3.2.2",
"resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"optional": true,
"dependencies": {
"is-buffer": "^1.1.5"
......@@ -13098,7 +13093,6 @@
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
"integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
"dev": true,
"optional": true,
"dependencies": {
"graceful-fs": "^4.1.11",
......@@ -13113,7 +13107,6 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"dev": true,
"optional": true,
"dependencies": {
"is-number": "^3.0.0",
......@@ -14942,9 +14935,9 @@
}
},
"@babel/runtime": {
"version": "7.11.2",
"resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.11.2.tgz?cache=0&sync_timestamp=1596637803941&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz",
"integrity": "sha1-9UnBPHVMxAuHZEufqfCaapX+BzY=",
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
"integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.4"
......@@ -15636,7 +15629,7 @@
"version": "3.1.1",
"resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz",
"integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=",
"dev": true,
"devOptional": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
......@@ -15850,7 +15843,7 @@
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz",
"integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",
"dev": true
"devOptional": true
},
"async-limiter": {
"version": "1.0.1",
......@@ -16053,13 +16046,12 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261283449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz",
"integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=",
"dev": true
"devOptional": true
},
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz",
"integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=",
"dev": true,
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
......@@ -16192,7 +16184,7 @@
"version": "3.0.2",
"resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
"integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
"dev": true,
"devOptional": true,
"requires": {
"fill-range": "^7.0.1"
}
......@@ -16545,7 +16537,7 @@
"version": "3.4.2",
"resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596728935229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz",
"integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=",
"dev": true,
"devOptional": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
......@@ -16561,7 +16553,7 @@
"version": "5.1.1",
"resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz",
"integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=",
"dev": true,
"devOptional": true,
"requires": {
"is-glob": "^4.0.1"
}
......@@ -16954,9 +16946,9 @@
}
},
"core-js": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz",
"integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg=="
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz",
"integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig=="
},
"core-js-compat": {
"version": "3.6.5",
......@@ -17645,9 +17637,9 @@
"dev": true
},
"element-ui": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.14.1.tgz",
"integrity": "sha512-Uje0J12dBaXdyvt/EtuDA8diFbYTdO7uI4QCfl7zmEJmE1WxgCSVKhlRRoL8MDonO8pyNVhB4n0AFAR14g56nw==",
"version": "2.15.6",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.6.tgz",
"integrity": "sha512-rcYXEKd/j2G0AgficAOk1Zd1AsnHRkhmrK4yLHmNOiimU2JfsywgfKUjMoFuT6pQx0luhovj8lFjpE4Fnt58Iw==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
......@@ -18749,13 +18741,13 @@
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz",
"integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=",
"dev": true
"devOptional": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
"integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
"dev": true,
"devOptional": true,
"requires": {
"to-regex-range": "^5.0.1"
}
......@@ -18965,7 +18957,6 @@
"version": "2.1.3",
"resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz",
"integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=",
"dev": true,
"optional": true
},
"ftp": {
......@@ -19104,7 +19095,7 @@
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz",
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
"dev": true,
"devOptional": true,
"requires": {
"is-glob": "^3.1.0",
"path-dirname": "^1.0.0"
......@@ -19114,7 +19105,7 @@
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"dev": true,
"devOptional": true,
"requires": {
"is-extglob": "^2.1.0"
}
......@@ -19848,7 +19839,7 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
"integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
"dev": true,
"devOptional": true,
"requires": {
"binary-extensions": "^2.0.0"
}
......@@ -19926,7 +19917,7 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
"devOptional": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
......@@ -19938,7 +19929,7 @@
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
"integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
"dev": true,
"devOptional": true,
"requires": {
"is-extglob": "^2.1.1"
}
......@@ -19958,7 +19949,7 @@
"version": "7.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
"integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
"dev": true
"devOptional": true
},
"is-path-cwd": {
"version": "2.2.0",
......@@ -20808,7 +20799,6 @@
"version": "2.14.1",
"resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz",
"integrity": "sha1-174036MQW5FJTDFHCJMV7/iHSwE=",
"dev": true,
"optional": true
},
"nanomatch": {
......@@ -20968,7 +20958,7 @@
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
"integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
"dev": true
"devOptional": true
},
"normalize-range": {
"version": "0.1.2",
......@@ -21467,7 +21457,7 @@
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
"integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
"dev": true
"devOptional": true
},
"path-exists": {
"version": "3.0.0",
......@@ -21549,7 +21539,7 @@
"version": "2.2.2",
"resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
"integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
"dev": true
"devOptional": true
},
"pify": {
"version": "4.0.1",
......@@ -21738,6 +21728,11 @@
"utila": "~0.4"
}
},
"print-js": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/print-js/-/print-js-1.6.0.tgz",
"integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
},
"process": {
"version": "0.11.10",
"resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
......@@ -22052,7 +22047,7 @@
"version": "3.4.0",
"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz",
"integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=",
"dev": true,
"devOptional": true,
"requires": {
"picomatch": "^2.2.1"
}
......@@ -22198,7 +22193,7 @@
"version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
"dev": true
"devOptional": true
},
"renderkid": {
"version": "2.0.3",
......@@ -23782,7 +23777,7 @@
"version": "5.0.1",
"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
"integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
"dev": true,
"devOptional": true,
"requires": {
"is-number": "^7.0.0"
}
......@@ -23992,7 +23987,7 @@
"version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz",
"integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
"dev": true
"devOptional": true
},
"uri-js": {
"version": "4.4.0",
......@@ -24405,7 +24400,6 @@
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz",
"integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=",
"dev": true,
"optional": true,
"requires": {
"chokidar": "^2.1.8"
......@@ -24415,7 +24409,6 @@
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz",
"integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
"dev": true,
"optional": true,
"requires": {
"micromatch": "^3.1.4",
......@@ -24426,7 +24419,6 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"optional": true,
"requires": {
"remove-trailing-separator": "^1.0.1"
......@@ -24438,14 +24430,12 @@
"version": "1.13.1",
"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261283449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz",
"integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
"dev": true,
"optional": true
},
"braces": {
"version": "2.3.2",
"resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
"integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
"dev": true,
"optional": true,
"requires": {
"arr-flatten": "^1.1.0",
......@@ -24464,7 +24454,6 @@
"version": "2.1.8",
"resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1596728935229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz",
"integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
"dev": true,
"optional": true,
"requires": {
"anymatch": "^2.0.0",
......@@ -24485,7 +24474,6 @@
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"optional": true,
"requires": {
"extend-shallow": "^2.0.1",
......@@ -24498,7 +24486,6 @@
"version": "1.2.13",
"resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz",
"integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
"dev": true,
"optional": true,
"requires": {
"bindings": "^1.5.0",
......@@ -24509,7 +24496,6 @@
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"optional": true,
"requires": {
"binary-extensions": "^1.0.0"
......@@ -24519,7 +24505,6 @@
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"optional": true,
"requires": {
"kind-of": "^3.0.2"
......@@ -24529,7 +24514,6 @@
"version": "3.2.2",
"resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"optional": true,
"requires": {
"is-buffer": "^1.1.5"
......@@ -24539,7 +24523,6 @@
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
"integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
"dev": true,
"optional": true,
"requires": {
"graceful-fs": "^4.1.11",
......@@ -24551,7 +24534,6 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"dev": true,
"optional": true,
"requires": {
"is-number": "^3.0.0",
......
......@@ -78,11 +78,12 @@
"bootstrap": "^4.5.3",
"core-js": "^3.8.0",
"cross-env": "^7.0.2",
"element-ui": "^2.14.1",
"element-ui": "^2.15.6",
"jquery": "^3.5.1",
"js-cookie": "^2.2.1",
"js-md5": "^0.7.3",
"lodash": "^4.17.20",
"print-js": "^1.6.0",
"qrcode.vue": "^1.7.0",
"swiper": "^6.3.5",
"viewerjs": "^1.9.0",
......
......@@ -15,4 +15,5 @@ export default class ArticleAction {
checkPay (id) { return articleApi.checkPay(id).then(res => res) }
payEnd (obj) { return articleApi.payEnd(obj).then(res => res) }
updateUserInfo (obj) { return articleApi.updateUserInfo(obj).then(res => res) }
getCard (obj) { return articleApi.getCard(obj).then(res => res) }
}
......@@ -6,9 +6,9 @@ export default class ScoreAPI extends BaseAPI {
// 获取文章
getArticle = (obj = {}) => this.get('/api/microservices/api/article/list', obj, {})
// 获取文章详情
getArticleDetail = (id) => this.get(`/api/microservices/api/article/${id}/info`)
getArticleDetail = id => this.get(`/api/microservices/api/article/${id}/info`)
// formCommit = (data) => this.post('/api/microservices/api/form/commit', data)
formCommit = (data) => this.post('/api/microservices/api/v3/apply/teacher-form', data)
formCommit = data => this.post('/api/microservices/api/v3/apply/teacher-form', data)
// 获取轮播
getBanner = (obj = {}) => this.get('/api/microservices/api/carousel/list', obj, {})
// 发送验证码
......@@ -26,9 +26,11 @@ export default class ScoreAPI extends BaseAPI {
// 下单
getOrder = (obj = {}) => this.post('/api/microservices/api/v3/apply/unified-order', obj)
// 查看订单状态
checkPay = (id) => this.get(`/api/pay/v1/order/status/${id}`)
checkPay = id => this.get(`/api/pay/v1/order/status/${id}`)
// 支付完成通知
payEnd = (obj = {}) => this.post('/api/microservices/api/v3/apply/pay-end', obj)
// 更新用户信息
updateUserInfo = (obj = {}) => this.post('/api/usercenter/user/update-user', obj)
// 获取证书
getCard = (obj = {}) => this.get('/api/cert/api/v1/cert/detail', obj, {})
}
......@@ -22,7 +22,8 @@ export default class Before {
/* 获取用户信息 */
isLogin() {
return cAction.loginAction.getInfo()
return cAction.loginAction
.getInfo()
.then(res => {
if (res.code === 0) {
window.G.UserInfo = res.data
......
......@@ -4,7 +4,7 @@
<div class="colors"></div>
<div class="header-mian">
<div class="logo-box" @click="$router.push({ path: '/' })">
<img src="http://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/static/ezijing/logo/ezijing-logo.svg" alt="">
<img src="http://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/static/ezijing/logo/ezijing-logo.svg" alt="" />
<div class="logo-text">
<p>1+X金融产品数字化营销职业技能等级证书</p>
</div>
......@@ -27,7 +27,7 @@
</router-link>
<div class="item-child">
<template v-for="(chi, index2) in item.itemChi">
<div class="li" :key="'chi'+index2" @click="goPage(chi.path, chi.type)">{{ chi.title }}</div>
<div class="li" :key="'chi' + index2" @click="goPage(chi.path, chi.type)">{{ chi.title }}</div>
</template>
</div>
</template>
......@@ -153,10 +153,10 @@ export default {
options: {
baseUrl: webConf.url,
register: {
data:{
data: {
username: `ezijing-${new Date().getTime()}`
},
fields: ['account', 'code', 'password'],
fields: ['account', 'code', 'password']
},
login: {
account: {
......@@ -174,11 +174,11 @@ export default {
return this.$refs.passport
},
isClassShow() {
return (item) => {
return item => {
return this.$route.path === item.path
? 'active'
: item.children
? ((_this) => {
? (_this => {
const isPath = item.children.path.find(item => {
return item === _this.$route.path
})
......@@ -228,10 +228,15 @@ export default {
this.passport.logout()
this.isLogin = false
window.G.UserInfo = {}
// window.sessionStorage.userInfo = JSON.stringify({})
if (this.$route.path !== '/index') {
window.sessionStorage.userInfo = {}
this.user = {}
this.$router.push('/')
} else {
window.sessionStorage.userInfo = {}
this.user = {}
this.$router.go(0)
// window.location.href = window.location.href
// this.$router.push('/')
}
},
onReady(isLogin, user = {}) {
// this.isLogin = isLogin
......@@ -247,6 +252,7 @@ export default {
// window.G.UserInfo = user
// this.$router.go(0)
this.$router.push('/my')
window.location.reload()
})
}
}
......@@ -254,23 +260,23 @@ export default {
</script>
<style lang="scss" scoped>
.home-head{
img{
.home-head {
img {
width: 100%;
display: block;
// height: 240px;
}
}
.nav-box{
.nav-box {
position: relative;
height: 70px;
background: #A81A42;
background: #a81a42;
}
.app-header{
.app-header {
// position: relative;
// height: 70px;
// background: #A81A42;
.colors{
.colors {
background: #fff;
width: 50%;
height: 100%;
......@@ -278,29 +284,29 @@ export default {
top: 0;
left: 0;
}
.header-mian{
.header-mian {
width: 1200px;
margin: 0 auto;
height: 100%;
display: flex;
align-items: center;
.login{
.login {
margin-left: auto;
color: #fff;
cursor: pointer;
.login-name{
.login-name {
display: flex;
.name{
.name {
width: 100px;
overflow: hidden;
text-overflow:ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
text-align: right;
margin-right: 10px;
}
}
}
.logo-box{
.logo-box {
cursor: pointer;
position: relative;
z-index: 1;
......@@ -310,12 +316,12 @@ export default {
// justify-content: center;
height: 100%;
background: #fff;
img{
img {
width: 119px;
height: 40px;
margin-right: 40px;
}
.logo-text{
.logo-text {
text-align: center;
font-size: 18px;
color: #444;
......@@ -323,50 +329,50 @@ export default {
line-height: 25px;
}
}
.nav-box{
.nav-box {
position: relative;
z-index: 9;
background: #A81A42;
background: #a81a42;
padding-left: 60px;
display: flex;
align-items: center;
li{
li {
font-size: 14px;
color: #FFFFFF;
color: #ffffff;
margin-right: 36px;
position: relative;
span{
span {
position: relative;
z-index: 99;
}
&.active{
&.active {
font-weight: bold;
}
&:hover{
.item-child{
&:hover {
.item-child {
display: block;
}
}
.item-child{
.item-child {
display: none;
width: 128px;
position: absolute;
top:0;
top: 0;
left: 50%;
transform: translateX(-50%);
z-index: 9;
padding-top: 26px;
.li{
.li {
width: 100%;
height: 44px;
border-top: 1px solid rgba(221,221,221,0.2);
border-top: 1px solid rgba(221, 221, 221, 0.2);
text-align: center;
line-height: 44px;
color: #fff;
background: #A81A42;
background: #a81a42;
font-weight: normal !important;
cursor: pointer;
&:nth-child(1){
&:nth-child(1) {
border: none;
}
}
......
......@@ -3,21 +3,20 @@ import VuePassport from '@ezijing/vue-passport'
import '@ezijing/vue-passport/dist/vue-passport.css'
import VueForm from '@ezijing/vue-form'
import '@ezijing/vue-form/dist/vue-form.css'
import Element from 'element-ui' // 引入 element-ui 框架
import './style.scss' // 定义 element-ui主题色 + 公共样式
import ElementUI from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'
import router from './router' // router定义
import store from './store'
import App from './app.vue'
import Calendar from 'vue-mobile-calendar'
Vue.use(Calendar)
// import cTool from '@tool'
/* 引入 md5 */
import md5 from 'js-md5'
/* 定义全局变量 */
import BeforeRouter from './components/before'
Vue.use(Element)
Vue.use(Calendar)
Vue.use(ElementUI)
Vue.use(VueForm)
Vue.use(VuePassport)
/* 设置全局变量 */
......
......@@ -33,17 +33,17 @@
</div>
</template>
<script>
export default {
export default {
data() {
const checkPhone = (rule, value, callback) => {
const reg = /^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/;
if(!reg.test(value)){
const reg = /^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/
if (!reg.test(value)) {
return callback(new Error())
}
}
const checkCodeId = (rule, value, callback) => {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(!reg.test(value)){
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
if (!reg.test(value)) {
return callback(new Error())
}
}
......@@ -79,12 +79,8 @@
code: ''
},
rules: {
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
],
region: [
{ required: true, message: '请选择学校', trigger: 'change' }
],
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
region: [{ required: true, message: '请选择学校', trigger: 'change' }],
phone: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
{ required: true, message: '手机号不正确', validator: checkPhone, trigger: 'blur' }
......@@ -106,51 +102,51 @@
{ validator: validatePass2, trigger: 'blur' }
]
}
};
}
},
methods: {
isRules(n) {
console.log(n)
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
this.$refs[formName].validate(valid => {
if (valid) {
alert('submit!');
alert('submit!')
} else {
console.log('error submit!!');
return false;
console.log('error submit!!')
return false
}
});
})
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
this.$refs[formName].resetFields()
}
}
}
</script>
<style lang="scss" scoped>
.reg-form-box{
.reg-form-box {
width: 380px;
margin: 0 auto;
padding: 24px 0;
.width100{
.width100 {
width: 100%;
}
}
::v-deep{
.forms{
::v-deep {
.forms {
i {
font-size: 20px;
}
input{
input {
border-radius: 4px;
}
}
}
.sub-btn{
.sub-btn {
width: 270px;
height: 40px;
background: linear-gradient(315deg, rgba(225, 47, 116, 0.83) 0%, #C01540 100%);
background: linear-gradient(315deg, rgba(225, 47, 116, 0.83) 0%, #c01540 100%);
border-radius: 4px;
}
</style>
......@@ -10,15 +10,17 @@
:class="offsetTabIndex == index && 'active'"
:key="index"
@click="offsetTab(index)"
>{{ item }}</li>
>
{{ item }}
</li>
</ul>
<ul class="item-box">
<template v-if="offsetTabIndex == 0">
<template v-for="(item, index) in examineeNav">
<template v-if="item.pathType === 3">
<li :key="index" @click="register">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -27,8 +29,8 @@
</template>
<template v-else>
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -37,12 +39,25 @@
</template>
</template>
</template>
{{
isLogin
}}
<template v-if="offsetTabIndex == 1">
<template v-for="(item, index) in teacherNav">
<template v-if="item.pathType === 3">
<li :key="index" @click="register">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
</div>
</li>
</template>
<template v-else-if="item.pathType === 4">
<li :key="index" @click="queryCard">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -51,8 +66,8 @@
</template>
<template v-else>
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -65,8 +80,8 @@
<template v-for="(item, index) in schoolNav">
<template v-if="item.pathType === 3">
<li :key="index" @click="register">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -75,8 +90,8 @@
</template>
<template v-else>
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -91,9 +106,12 @@
<student-help v-show="offsetTabIndex == 0"></student-help>
<teacher-help v-show="offsetTabIndex == 1"></teacher-help>
<school-help v-show="offsetTabIndex == 2"></school-help>
<vue-passport ref="passport" @ready="onReady" :options="options"></vue-passport>
</div>
</template>
<script>
import action from '@action'
import merge from 'webpack-merge'
import haedBanner from '@/components/headBanner'
import studentHelp from './components/studentHelp'
......@@ -198,6 +216,14 @@ export default {
text: '开班授课',
path: '/hall?role=1&point=t3',
textActive: '进入学习平台'
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/1e6d8f785a106b17eb698d1d563ff479.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/e3088887b1e2fc9711c7ad692e2e53cd.png',
text: '证书查询',
path: this.isLogin ? this.queryCard() : '/hall?role=1&point=t4',
pathType: 4,
textActive: '进入证书查询系统'
}
],
schoolNav: [
......@@ -245,12 +271,65 @@ export default {
textActive: '统计学员后统一报名'
}
],
isLogin: false,
options: {
baseUrl: webConf.url,
register: {
data: {
username: `ezijing-${new Date().getTime()}`
},
fields: ['account', 'code', 'password']
},
login: {
account: {
onSuccess: this.loginSuccess
},
phone: {
onSuccess: this.loginSuccess
}
}
}
}
},
computed: {
passport() {
return this.$refs.passport
}
},
created() {
action.articleAction.getUserInfo().then(res => {
if (res && res.code === 0) {
window.sessionStorage.userInfo = JSON.stringify(res.data)
this.isLogin = true
}
})
},
mounted() {
this.offsetTabIndex = parseInt(this.$route.query.role) || 0
},
methods: {
loginSuccess(data) {
this.passport.checkLoginStatus((isLogin, user = {}) => {
window.sessionStorage.userInfo = JSON.stringify(user)
this.isLogin = isLogin
this.user = user
this.$router.push('/my')
})
window.location.reload()
},
onReady(isLogin, user = {}) {
this.user = user
window.G.UserInfo = user
window.sessionStorage.userInfo = JSON.stringify(user)
},
queryCard() {
if (this.isLogin) {
this.$router.push('/queryCard')
} else {
this.passport.login()
}
},
register() {
this.$router.push({
query: merge(this.$route.query, { register: this.$route.query.register ? this.$route.query.register++ : 1 })
......@@ -259,7 +338,7 @@ export default {
offsetTab(n) {
this.offsetTabIndex = n
this.$router.push({
query:merge({},{'role': n })
query: merge({}, { role: n })
})
},
goPage(path, n) {
......@@ -279,7 +358,7 @@ export default {
},
watch: {
$route: {
handler: function(val, oldVal){
handler: function(val, oldVal) {
this.offsetTabIndex = this.$route.query.role || 0
},
deep: true
......@@ -288,27 +367,27 @@ export default {
}
</script>
<style lang="scss" scoped>
.hall-box{
background: #F8F8F9;
.hall-box {
background: #f8f8f9;
}
.content-max-width{
.content-max-width {
width: 1200px;
margin: 0 auto;
}
.home-office-hall{
.title{
.home-office-hall {
.title {
font-size: 24px;
font-weight: bold;
color: #444444;
line-height: 33px;
padding: 36px 0 16px;
}
.office-mian{
.office-mian {
display: flex;
}
.tab-btn-box{
.tab-btn-box {
padding-top: 24px;
li{
li {
width: 96px;
height: 40px;
background: none;
......@@ -318,61 +397,61 @@ export default {
font-size: 16px;
color: #444444;
cursor: pointer;
&.active{
&.active {
color: #fff;
background: #A81A42;
background: #a81a42;
border-radius: 23px;
}
}
}
.item-box{
.item-box {
display: flex;
margin-left: 7px;
li{
li {
width: 168px;
height: 168px;
background: #FFFFFF;
background: #ffffff;
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.09);
border-radius: 4px;
margin-left: 16px;
transition: all .5s;
&:hover{
background: #A81A42;
transition: all 0.5s;
&:hover {
background: #a81a42;
transform: translateY(-10px);
.img{
.img {
display: none;
margin: 43px auto 15px auto;
}
.img-active{
.img-active {
display: block;
}
.text{
.text {
color: #fff;
.span1{
.span1 {
display: none;
}
.span2{
.span2 {
display: block;
}
}
}
img{
img {
height: 50px;
display: block;
margin: 43px auto 20px auto;
}
.img-active{
.img-active {
display: none;
}
.text{
.text {
text-align: center;
font-size: 16px;
color: #444444;
line-height: 18px;
.span2{
.span2 {
display: none;
}
.span1{
.span1 {
display: block;
}
}
......
......@@ -10,15 +10,17 @@
:class="offsetTabIndex == index && 'active'"
:key="index"
@click="offsetTab(index)"
>{{ item }}</li>
>
{{ item }}
</li>
</ul>
<ul class="item-box">
<template v-if="offsetTabIndex == 0">
<template v-for="(item, index) in examineeNav">
<template v-if="item.pathType === 3">
<li :key="index" @click="register">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -27,8 +29,8 @@
</template>
<template v-else>
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -38,11 +40,22 @@
</template>
</template>
<template v-if="offsetTabIndex == 1">
{{ isLogin }}
<template v-for="(item, index) in teacherNav">
<template v-if="item.pathType === 3">
<li :key="index" @click="register">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
</div>
</li>
</template>
<template v-else-if="item.pathType === 4">
<li :key="index" @click="queryCard">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -51,8 +64,8 @@
</template>
<template v-else>
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -65,8 +78,8 @@
<template v-for="(item, index) in schoolNav">
<template v-if="item.pathType === 3">
<li :key="index" @click="register">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -75,8 +88,8 @@
</template>
<template v-else>
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.icon" alt="" class="img">
<img :src="item.iconActive" alt="" class="img-active">
<img :src="item.icon" alt="" class="img" />
<img :src="item.iconActive" alt="" class="img-active" />
<div class="text">
<span class="span1">{{ item.text }}</span>
<span class="span2">{{ item.textActive }}</span>
......@@ -137,7 +150,7 @@
</div>
</div>
<div class="advert-box">
<poster v-if="false"/>
<poster v-if="false" />
<!-- <img src="https://zws-imgs-pub.ezijing.com/static/public/3dceecce8df0a6dcb06d48c75ada807b.png" alt=""> -->
</div>
<div class="service-box content-max-width">
......@@ -147,9 +160,9 @@
<ul>
<template v-for="(item, index) in serviceList">
<li :key="index" @click="goPage(item.path, item.pathType)">
<img :src="item.img" alt="" class="bg">
<img :src="item.img" alt="" class="bg" />
<div class="mask">
<img :src="item.icon" alt="" class="icon">
<img :src="item.icon" alt="" class="icon" />
<div class="content-box">
<span class="tit">{{ item.title }}</span>
<div class="desc">{{ item.desc }}</div>
......@@ -160,6 +173,7 @@
</template>
</ul>
</div>
<vue-passport ref="passport" @ready="onReady" :options="options"></vue-passport>
</div>
</template>
......@@ -189,7 +203,8 @@ export default {
{
img: 'https://zws-imgs-pub.ezijing.com/static/public/6b24bc351bcc28b48e2d86bc92f81eab.jpg',
title: '教材中心',
desc: '本系列教材紧跟金融各行业数字化转型和职业教育的人才培养发展的需求,随行业的数字化转型、数字化营销工具和专业升级等情况及时动态更新。......',
desc:
'本系列教材紧跟金融各行业数字化转型和职业教育的人才培养发展的需求,随行业的数字化转型、数字化营销工具和专业升级等情况及时动态更新。......',
path: '/service?id=0',
icon: 'https://zws-imgs-pub.ezijing.com/static/public/6f65b37439085217a8ff5f67038821a1.png'
},
......@@ -306,6 +321,14 @@ export default {
text: '开班授课',
path: '/hall?role=1&point=t3',
textActive: '进入学习平台'
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/1e6d8f785a106b17eb698d1d563ff479.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/e3088887b1e2fc9711c7ad692e2e53cd.png',
text: '证书查询',
pathType: 4,
path: this.isLogin ? this.queryCard() : '/hall?role=1&point=t4',
textActive: '进入证书查询系统'
}
],
schoolNav: [
......@@ -366,8 +389,8 @@ export default {
_this.swiperIndex = this.activeIndex
}
},
observer:true,//修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
observer: true, //修改swiper自己或子元素时,自动初始化swiper
observeParents: true, //修改swiper的父元素时,自动初始化swiper
// loop:true,
autoplay: {
delay: 2000,
......@@ -377,7 +400,25 @@ export default {
swiperIndex: 0,
videoShow: false,
list: [],
offsetTabIndex: 0
offsetTabIndex: 0,
isLogin: false,
options: {
baseUrl: webConf.url,
register: {
data: {
username: `ezijing-${new Date().getTime()}`
},
fields: ['account', 'code', 'password']
},
login: {
account: {
onSuccess: this.loginSuccess
},
phone: {
onSuccess: this.loginSuccess
}
}
}
}
},
computed: {
......@@ -388,6 +429,15 @@ export default {
return this.$refs.passport
}
},
created() {
action.articleAction.getUserInfo().then(res => {
if (res && res.code === 0) {
console.log('111111111')
// window.sessionStorage.userInfo = JSON.stringify(res.data)
this.isLogin = true
}
})
},
mounted() {
if (this.$route.query.type) {
this.offsetTabIndex = this.$route.query.type
......@@ -395,6 +445,28 @@ export default {
this.newsList()
},
methods: {
loginSuccess(data) {
this.passport.checkLoginStatus((isLogin, user = {}) => {
window.sessionStorage.userInfo = JSON.stringify(user)
this.isLogin = isLogin
this.user = user
this.$router.push('/my')
window.location.reload()
})
},
onReady(isLogin, user = {}) {
this.user = user
window.G.UserInfo = user
window.sessionStorage.userInfo = JSON.stringify(user)
},
queryCard() {
if (this.isLogin) {
this.$router.push('/queryCard')
} else {
this.passport.login()
}
},
register() {
this.$router.push({
path: '/index',
......@@ -429,6 +501,7 @@ export default {
this.tabsIndex = n
},
goPage(path, n) {
console.log(path, n, '0000')
if (n) {
window.open(path)
} else {
......@@ -473,33 +546,33 @@ export default {
}
</script>
<style lang="scss" scoped>
.content-max-width{
.content-max-width {
width: 1200px;
margin: 0 auto;
}
.home-box{
background: #F8F8F8;
.home-head{
img{
.home-box {
background: #f8f8f8;
.home-head {
img {
width: 100%;
display: block;
// height: 240px;
}
}
.home-office-hall{
.title{
.home-office-hall {
.title {
font-size: 24px;
font-weight: bold;
color: #444444;
line-height: 33px;
padding: 36px 0 16px;
}
.office-mian{
.office-mian {
display: flex;
}
.tab-btn-box{
.tab-btn-box {
padding-top: 24px;
li{
li {
width: 96px;
height: 40px;
background: none;
......@@ -509,79 +582,79 @@ export default {
font-size: 16px;
color: #444444;
cursor: pointer;
&.active{
&.active {
color: #fff;
background: #A81A42;
background: #a81a42;
border-radius: 23px;
}
}
}
.item-box{
.item-box {
display: flex;
margin-left: 7px;
li{
li {
width: 168px;
height: 168px;
background: #FFFFFF;
background: #ffffff;
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.09);
border-radius: 4px;
margin-left: 16px;
transition: all .5s;
&:hover{
background: #A81A42;
transition: all 0.5s;
&:hover {
background: #a81a42;
transform: translateY(-10px);
.img{
.img {
display: none;
margin: 43px auto 15px auto;
}
.img-active{
.img-active {
display: block;
}
.text{
.text {
color: #fff;
.span1{
.span1 {
display: none;
}
.span2{
.span2 {
display: block;
}
}
}
img{
img {
height: 50px;
display: block;
margin: 43px auto 20px auto;
}
.img-active{
.img-active {
display: none;
}
.text{
.text {
text-align: center;
font-size: 16px;
color: #444444;
line-height: 18px;
.span2{
.span2 {
display: none;
}
.span1{
.span1 {
display: block;
}
}
}
}
}
.notice-box{
.notice-box {
padding-top: 39px;
.tab-btn{
.tab-btn {
display: flex;
.title{
.title {
font-size: 24px;
font-weight: bold;
color: #444444;
line-height: 33px;
margin-right: 23px;
}
.btn{
.btn {
cursor: pointer;
width: 96px;
height: 40px;
......@@ -591,20 +664,20 @@ export default {
line-height: 40px;
color: #444;
text-align: center;
&.active{
&.active {
color: #fff;
background: #A81A42;
background: #a81a42;
}
}
}
.notice-mian{
.notice-mian {
display: flex;
margin-top: 16px;
.assist-list{
.assist-list {
width: 100%;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
a{
a {
// &:nth-child(1){
// li{
// background: #A81A42;
......@@ -615,28 +688,28 @@ export default {
// }
// }
}
li{
li {
padding: 0 20px;
&:hover{
background: #A81A42;
&:hover {
background: #a81a42;
border-radius: 4px;
.text{
.text {
color: #fff;
}
}
cursor: pointer;
&.border-none{
&.border-none {
border: none;
}
.text{
.text {
display: flex;
.p{
.p {
width: 800px;
overflow: hidden;
text-overflow:ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
}
.time{
.time {
margin-left: auto;
}
// width: 423px;
......@@ -646,56 +719,56 @@ export default {
line-height: 55px;
font-size: 18px;
color: #444444;
&.cen{
&.cen {
text-align: center;
}
}
}
}
.slide-box{
.slide-box {
cursor: pointer;
position: relative;
width: 713px;
height: 280px;
margin-left: auto;
.item-swiper{
.item-swiper {
width: 100%;
height: 100%;
img{
img {
display: block;
width: 100%;
height: 100%;
}
}
.assist{
.assist {
display: flex;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 44px;
background: rgba(0, 0, 0, .3);
background: rgba(0, 0, 0, 0.3);
z-index: 99;
.text{
.text {
font-size: 14px;
color: #FFFFFF;
color: #ffffff;
line-height: 44px;
margin-left: 24px;
}
}
.pagination{
.pagination {
display: flex;
margin-left: auto;
align-items: center;
padding-right: 40px;
span{
span {
width: 8px;
height: 8px;
background: #000000;
opacity: 0.2;
border-radius: 50%;
margin-left: 8px;
&.active{
&.active {
opacity: 1;
background: #fff;
}
......@@ -704,73 +777,73 @@ export default {
}
}
}
.advert-box{
.advert-box {
width: 1200px;
margin: 36px auto;
img{
img {
width: 1200px;
display: block;
}
}
.service-box{
.service-box {
margin-bottom: 36px;
.title{
.title {
font-size: 24px;
font-weight: bold;
color: #444444;
line-height: 33px;
}
ul{
ul {
margin-top: 16px;
display: flex;
li{
li {
width: 300px;
height: 400px;
position: relative;
.icon{
.icon {
position: absolute;
top: 66px;
left: 50%;
-webkit-transform: translateX(-50%);
}
.bg{
.bg {
width: 100%;
height: 100%;
display: block;
}
// transition: all .5s;
&:hover{
.mask{
background: rgba(168,26,66,0.5);
.content-box{
&:hover {
.mask {
background: rgba(168, 26, 66, 0.5);
.content-box {
bottom: 20px;
.tit{
.tit {
color: #fff;
border-bottom: 1px solid #fff;
}
.desc{
.desc {
display: block;
}
.more{
.more {
display: block;
cursor: pointer;
}
}
}
}
.mask{
transition: all .5s;
.mask {
transition: all 0.5s;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
// background: rgba(0,0,0,0.5);
.content-box{
.content-box {
position: absolute;
left: 16px;
bottom: 55px;
.tit{
.tit {
width: auto;
font-size: 18px;
font-weight: bold;
......@@ -778,17 +851,17 @@ export default {
line-height: 25px;
border-bottom: 1px solid rgba(175, 28, 64, 1);
}
.desc{
.desc {
width: 212px;
font-size: 14px;
color: #FFFFFF;
color: #ffffff;
line-height: 20px;
margin-top: 12px;
display: none;
}
.more{
.more {
font-size: 14px;
color: #FFFFFF;
color: #ffffff;
line-height: 20px;
margin-top: 20px;
display: none;
......
<template>
<div>
<div class="home-box" v-if="cardListMap.length > 0">
<!-- <haedBanner></haedBanner> -->
<div>
<div v-for="(item, index) in cardListMap" :key="index" class="home-box-content">
<div class="home-box-content-btn">
<el-button round class="btn" @click="handlePrint(item)">打印</el-button>
<a :href="item.download_info.url" :download="item.download_info.filename" target="_blank"
><el-button round class="btn">下载</el-button></a
>
<!-- <el-button round class="btn" @click="handleDownload(item)">下载</el-button> -->
</div>
<div class="home-box-content-list">
<img class="home-box-content-img" :src="item.download_info.url" alt="" />
</div>
</div>
</div>
</div>
<div class="home-box-else" v-else>
<!-- 暂无信息 -->
<el-result title="暂无信息" icon="info" class="el-result"> </el-result>
</div>
</div>
</template>
<script>
import printJS from 'print-js'
import action from '@action'
export default {
data() {
return {
exportPDFtitle: '结业证书',
cardList: []
}
},
computed: {
cardListMap() {
return this.cardList.filter(item => item.status === 2)
}
},
methods: {
// 获取证书列表
handleGetCard() {
const params = { project_prefix: 'x1' }
action.articleAction.getCard(params).then(res => {
this.cardList = res.data.list
})
},
// 打印
handlePrint(item) {
printJS(item.download_info.url, 'image')
}
// 下载
// handleDownload(item) {
// window.open(item.download_info.url, '_blank')
// }
},
mounted() {
// 获取证书
this.handleGetCard()
}
}
</script>
<style lang="scss" scoped>
.content-max-width {
width: 1200px;
margin: 0 auto;
overflow: scroll;
height: 100vh;
}
.home-box {
width: 1100px;
// background: #f8f8f8;
margin: 100px auto;
text-align: center;
.home-box-content {
display: flex;
justify-content: center;
align-items: flex-end;
flex-direction: column;
padding: 20px 0 20px 0;
.home-box-content-btn {
align-self: flex-end;
.btn {
background: #a81a42;
color: #fff;
width: 150px;
height: 50px;
}
}
.home-box-content-list {
width: 1100px;
margin-top: 20px;
.home-box-content-img {
width: 100%;
display: block;
}
}
}
}
.home-box-else {
width: 1200px;
height: calc(100vh - 300px);
margin: auto;
text-align: center;
position: relative;
.el-result {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
</style>
......@@ -35,7 +35,8 @@ export default [
{ path: '/hall', component: () => import('@/pages/hall/index.vue') },
// 教学服务
{ path: '/service', component: () => import('@/pages/service/index.vue') },
{ path: '/introduce', component: () => import('@/pages/home/newIntroduce.vue') }
{ path: '/introduce', component: () => import('@/pages/home/newIntroduce.vue') },
{ path: '/queryCard', component: () => import('@/pages/home/queryCard.vue') }
]
},
// 考核站点详情
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论