Commit 0ae9a9f3 by 孙香冬

no message

parent 0bd09563
{
"name": "tikeyi",
"version": "1.0.0",
"lockfileVersion": 1,
"lockfileVersion": 3,
"requires": true,
"dependencies": {
"@alicloud/dybaseapi": {
"packages": {
"": {
"name": "tikeyi",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"@alicloud/pop-core": "^1.7.10",
"@alicloud/sms-sdk": "^1.1.6",
"@types/node": "^10.12.18",
"compression": "^1.7.4",
"express": "^4.17.1",
"express-async-handler": "^1.1.4",
"express-history-api-fallback": "^2.2.1",
"formidable": "^1.2.1",
"log4js": "^6.9.1",
"lru-cache": "^4.1.5",
"md5": "^2.2.1",
"moment": "^2.24.0",
"mongoose": "^5.0.1",
"mysql": "^2.18.1",
"node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1",
"redis": "^4.1.0",
"request": "^2.88.2",
"svg-captcha": "^1.3.12",
"ws": "^5.2.2"
},
"devDependencies": {}
},
"node_modules/@alicloud/dybaseapi": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/@alicloud/dybaseapi/download/@alicloud/dybaseapi-1.0.0.tgz",
"integrity": "sha1-VS7dCZD5Db1p1AI3zf7/w2bQofU=",
"requires": {
"dependencies": {
"@alicloud/pop-core": "^1.3.3"
}
},
"@alicloud/dysmsapi-2017-05-25": {
"node_modules/@alicloud/dysmsapi-2017-05-25": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/@alicloud/dysmsapi-2017-05-25/download/@alicloud/dysmsapi-2017-05-25-1.0.1.tgz",
"integrity": "sha1-qKtpTb4QXrnWfL0eNzV/ag+Eh9U=",
"requires": {
"dependencies": {
"@alicloud/pop-core": "^1.5.1"
}
},
"@alicloud/mns": {
"node_modules/@alicloud/mns": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/@alicloud/mns/download/@alicloud/mns-1.0.0.tgz",
"integrity": "sha1-AzqBmJmNXtk9onw72f8LnusJDpY=",
"requires": {
"dependencies": {
"debug": "^2.6.3",
"httpx": "^2.1.1",
"kitx": "^1.2.0",
"xml2js": "^0.4.17"
}
},
"@alicloud/pop-core": {
"node_modules/@alicloud/pop-core": {
"version": "1.7.10",
"resolved": "https://registry.npmjs.org/@alicloud/pop-core/-/pop-core-1.7.10.tgz",
"integrity": "sha512-9/aLWgmgaAdB1ERNTpdOvF7wueLY5CDTRxKZr93x542iuYRA1NDpcKslFqLOy5CUOa0CbopET3JGaHSAz5qv9g==",
"requires": {
"dependencies": {
"debug": "^3.1.0",
"httpx": "^2.1.2",
"json-bigint": "^1.0.0",
"kitx": "^1.2.1",
"xml2js": "^0.4.17"
},
}
},
"node_modules/@alicloud/pop-core/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
"debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
"ms": "^2.1.1"
}
},
"@alicloud/sms-sdk": {
"node_modules/@alicloud/pop-core/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/@alicloud/sms-sdk": {
"version": "1.1.6",
"resolved": "https://registry.npm.taobao.org/@alicloud/sms-sdk/download/@alicloud/sms-sdk-1.1.6.tgz",
"integrity": "sha1-dwHq4eCDLINo1nebQtWDaPlEy/A=",
"requires": {
"dependencies": {
"@alicloud/dybaseapi": "^1.0.0",
"@alicloud/dysmsapi-2017-05-25": "^1.0.1",
"@alicloud/mns": "^1.0.0-beta6",
"babel-runtime": "^6.26.0"
}
},
"@babel/runtime": {
"node_modules/@babel/runtime": {
"version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz",
"integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==",
"requires": {
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
}
"regenerator-runtime": "^0.13.4"
}
},
"@redis/bloom": {
"node_modules/@babel/runtime/node_modules/regenerator-runtime": {
"version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
},
"node_modules/@redis/bloom": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.0.2.tgz",
"integrity": "sha512-EBw7Ag1hPgFzdznK2PBblc1kdlj5B5Cw3XwI9/oG7tSn85/HKy3X9xHy/8tm/eNXJYHLXHJL/pkwBpFMVVefkw=="
"integrity": "sha512-EBw7Ag1hPgFzdznK2PBblc1kdlj5B5Cw3XwI9/oG7tSn85/HKy3X9xHy/8tm/eNXJYHLXHJL/pkwBpFMVVefkw==",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"@redis/client": {
"node_modules/@redis/client": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@redis/client/-/client-1.1.0.tgz",
"integrity": "sha512-xO9JDIgzsZYDl3EvFhl6LC52DP3q3GCMUer8zHgKV6qSYsq1zB+pZs9+T80VgcRogrlRYhi4ZlfX6A+bHiBAgA==",
"requires": {
"dependencies": {
"cluster-key-slot": "1.1.0",
"generic-pool": "3.8.2",
"yallist": "4.0.0"
},
"dependencies": {
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
"engines": {
"node": ">=14"
}
},
"@redis/graph": {
"node_modules/@redis/client/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/@redis/graph": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.0.1.tgz",
"integrity": "sha512-oDE4myMCJOCVKYMygEMWuriBgqlS5FqdWerikMoJxzmmTUErnTRRgmIDa2VcgytACZMFqpAOWDzops4DOlnkfQ=="
"integrity": "sha512-oDE4myMCJOCVKYMygEMWuriBgqlS5FqdWerikMoJxzmmTUErnTRRgmIDa2VcgytACZMFqpAOWDzops4DOlnkfQ==",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"@redis/json": {
"node_modules/@redis/json": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.3.tgz",
"integrity": "sha512-4X0Qv0BzD9Zlb0edkUoau5c1bInWSICqXAGrpwEltkncUwcxJIGEcVryZhLgb0p/3PkKaLIWkjhHRtLe9yiA7Q=="
"integrity": "sha512-4X0Qv0BzD9Zlb0edkUoau5c1bInWSICqXAGrpwEltkncUwcxJIGEcVryZhLgb0p/3PkKaLIWkjhHRtLe9yiA7Q==",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"@redis/search": {
"node_modules/@redis/search": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@redis/search/-/search-1.0.6.tgz",
"integrity": "sha512-pP+ZQRis5P21SD6fjyCeLcQdps+LuTzp2wdUbzxEmNhleighDDTD5ck8+cYof+WLec4csZX7ks+BuoMw0RaZrA=="
"integrity": "sha512-pP+ZQRis5P21SD6fjyCeLcQdps+LuTzp2wdUbzxEmNhleighDDTD5ck8+cYof+WLec4csZX7ks+BuoMw0RaZrA==",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"@redis/time-series": {
"node_modules/@redis/time-series": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.3.tgz",
"integrity": "sha512-OFp0q4SGrTH0Mruf6oFsHGea58u8vS/iI5+NpYdicaM+7BgqBZH8FFvNZ8rYYLrUO/QRqMq72NpXmxLVNcdmjA=="
"integrity": "sha512-OFp0q4SGrTH0Mruf6oFsHGea58u8vS/iI5+NpYdicaM+7BgqBZH8FFvNZ8rYYLrUO/QRqMq72NpXmxLVNcdmjA==",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"@types/bson": {
"node_modules/@types/bson": {
"version": "4.0.3",
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.3.tgz?cache=0&sync_timestamp=1613378303280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbson%2Fdownload%2F%40types%2Fbson-4.0.3.tgz",
"integrity": "sha1-MIidL/3mJiq744ZZNkxjFFSZn78=",
"requires": {
"dependencies": {
"@types/node": "*"
}
},
"@types/mongodb": {
"node_modules/@types/mongodb": {
"version": "3.6.10",
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.6.10.tgz?cache=0&sync_timestamp=1615809585833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.6.10.tgz",
"integrity": "sha1-gMzqq+7J9GDltGhE6Tjo66dPkmY=",
"requires": {
"dependencies": {
"@types/bson": "*",
"@types/node": "*"
}
},
"@types/node": {
"node_modules/@types/node": {
"version": "10.17.55",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-10.17.55.tgz?cache=0&sync_timestamp=1615834822695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-10.17.55.tgz",
"integrity": "sha1-oUfygu3sZ5uJTUaU7bWr61lf7L0="
},
"accepts": {
"node_modules/accepts": {
"version": "1.3.7",
"resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz",
"integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
"requires": {
"dependencies": {
"mime-types": "~2.1.24",
"negotiator": "0.6.2"
},
"engines": {
"node": ">= 0.6"
}
},
"adler-32": {
"node_modules/adler-32": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
"integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
"requires": {
"dependencies": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
},
"bin": {
"adler32": "bin/adler32.njs"
},
"engines": {
"node": ">=0.8"
}
},
"ajv": {
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"requires": {
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"array-flatten": {
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"asn1": {
"node_modules/asn1": {
"version": "0.2.6",
"resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"requires": {
"dependencies": {
"safer-buffer": "~2.1.0"
}
},
"assert-plus": {
"node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
"integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"engines": {
"node": ">=0.8"
}
},
"async-limiter": {
"node_modules/async-limiter": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz",
"integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="
},
"asynckit": {
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"aws-sign2": {
"node_modules/aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
"integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"engines": {
"node": "*"
}
},
"aws4": {
"node_modules/aws4": {
"version": "1.12.0",
"resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz",
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
},
"babel-runtime": {
"node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
"dependencies": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
}
},
"bcrypt-pbkdf": {
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"requires": {
"dependencies": {
"tweetnacl": "^0.14.3"
}
},
"bignumber.js": {
"node_modules/bignumber.js": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
"integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw=="
"integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
"engines": {
"node": "*"
}
},
"bl": {
"node_modules/bl": {
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1612867177492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
"requires": {
"dependencies": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
}
},
"bluebird": {
"node_modules/bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz",
"integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk="
},
"body-parser": {
"node_modules/body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"requires": {
"dependencies": {
"bytes": "3.1.0",
"content-type": "~1.0.4",
"debug": "2.6.9",
......@@ -267,101 +325,133 @@
"raw-body": "2.4.0",
"type-is": "~1.6.17"
},
"dependencies": {
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}
"engines": {
"node": ">= 0.8"
}
},
"node_modules/body-parser/node_modules/bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/body-parser/node_modules/qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
"engines": {
"node": ">=0.6"
}
},
"bson": {
"node_modules/bson": {
"version": "1.1.6",
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.6.tgz",
"integrity": "sha1-+4Gb6aYM1nfghTruTKcSp4XWYYo="
"integrity": "sha1-+4Gb6aYM1nfghTruTKcSp4XWYYo=",
"engines": {
"node": ">=0.6.19"
}
},
"buffer-from": {
"node_modules/buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"bytes": {
"node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
"engines": {
"node": ">= 0.8"
}
},
"caseless": {
"node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
},
"cfb": {
"node_modules/cfb": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz",
"integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==",
"requires": {
"dependencies": {
"adler-32": "~1.2.0",
"crc-32": "~1.2.0",
"printj": "~1.1.2"
},
"engines": {
"node": ">=0.8"
}
},
"charenc": {
"node_modules/charenc": {
"version": "0.0.2",
"resolved": "https://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
"engines": {
"node": "*"
}
},
"cluster-key-slot": {
"node_modules/cluster-key-slot": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
"integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw=="
"integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==",
"engines": {
"node": ">=0.10.0"
}
},
"codepage": {
"node_modules/codepage": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz",
"integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=",
"requires": {
"dependencies": {
"commander": "~2.14.1",
"exit-on-epipe": "~1.0.1"
},
"dependencies": {
"commander": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
}
"bin": {
"codepage": "bin/codepage.njs"
},
"engines": {
"node": ">=0.8"
}
},
"combined-stream": {
"node_modules/codepage/node_modules/commander": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"commander": {
"node_modules/commander": {
"version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
},
"compressible": {
"node_modules/compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"requires": {
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
},
"engines": {
"node": ">= 0.6"
}
},
"compression": {
"node_modules/compression": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
"integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
"requires": {
"dependencies": {
"accepts": "~1.3.5",
"bytes": "3.0.0",
"compressible": "~2.0.16",
......@@ -369,130 +459,182 @@
"on-headers": "~1.0.2",
"safe-buffer": "5.1.2",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.8.0"
}
},
"content-disposition": {
"node_modules/content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
"integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
"requires": {
"dependencies": {
"safe-buffer": "5.1.2"
},
"engines": {
"node": ">= 0.6"
}
},
"content-type": {
"node_modules/content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"engines": {
"node": ">= 0.6"
}
},
"cookie": {
"node_modules/cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
"engines": {
"node": ">= 0.6"
}
},
"cookie-signature": {
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-js": {
"node_modules/core-js": {
"version": "2.6.12",
"resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1614537347747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz",
"integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw="
"integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=",
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true
},
"core-util-is": {
"node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"crc-32": {
"node_modules/crc-32": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
"integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
"requires": {
"dependencies": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
},
"bin": {
"crc32": "bin/crc32.njs"
},
"engines": {
"node": ">=0.8"
}
},
"crypt": {
"node_modules/crypt": {
"version": "0.0.2",
"resolved": "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz",
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
"engines": {
"node": "*"
}
},
"dashdash": {
"node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"requires": {
"dependencies": {
"assert-plus": "^1.0.0"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/date-format": {
"version": "4.0.14",
"resolved": "https://registry.npmmirror.com/date-format/-/date-format-4.0.14.tgz",
"integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
"engines": {
"node": ">=4.0"
}
},
"debug": {
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
"integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
"requires": {
"dependencies": {
"ms": "2.0.0"
}
},
"delayed-stream": {
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"denque": {
"node_modules/denque": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/denque/download/denque-1.5.0.tgz?cache=0&sync_timestamp=1609779969821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdenque%2Fdownload%2Fdenque-1.5.0.tgz",
"integrity": "sha1-dz3gaG/y2Owv+SkUMWpHtzscc94="
"integrity": "sha1-dz3gaG/y2Owv+SkUMWpHtzscc94=",
"engines": {
"node": ">=0.10"
}
},
"depd": {
"node_modules/depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
"engines": {
"node": ">= 0.6"
}
},
"destroy": {
"node_modules/destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"ecc-jsbn": {
"node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"requires": {
"dependencies": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"ee-first": {
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"encodeurl": {
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
"engines": {
"node": ">= 0.8"
}
},
"escape-html": {
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"etag": {
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"engines": {
"node": ">= 0.6"
}
},
"exit-on-epipe": {
"node_modules/exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
"engines": {
"node": ">=0.8"
}
},
"express": {
"node_modules/express": {
"version": "4.17.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"requires": {
"dependencies": {
"accepts": "~1.3.7",
"array-flatten": "1.1.1",
"body-parser": "1.19.0",
......@@ -524,54 +666,61 @@
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"dependencies": {
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}
"engines": {
"node": ">= 0.10.0"
}
},
"express-async-handler": {
"node_modules/express-async-handler": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/express-async-handler/download/express-async-handler-1.1.4.tgz",
"integrity": "sha1-IlqEkI32OzWunflLbw8a8GEmZCY="
},
"express-history-api-fallback": {
"node_modules/express-history-api-fallback": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/express-history-api-fallback/-/express-history-api-fallback-2.2.1.tgz",
"integrity": "sha1-OirSf3vryQ/FM9EQ18bYMJe80Fc="
},
"extend": {
"node_modules/express/node_modules/qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extsprintf": {
"node_modules/extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
"integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"engines": [
"node >=0.6.0"
]
},
"fast-deep-equal": {
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-json-stable-stringify": {
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fflate": {
"node_modules/fflate": {
"version": "0.3.11",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz",
"integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A=="
},
"finalhandler": {
"node_modules/finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
"requires": {
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
......@@ -579,289 +728,453 @@
"parseurl": "~1.3.3",
"statuses": "~1.5.0",
"unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"forever-agent": {
"node_modules/flatted": {
"version": "3.2.9",
"resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz",
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
},
"node_modules/forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
"integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"engines": {
"node": "*"
}
},
"form-data": {
"node_modules/form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"requires": {
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 0.12"
}
},
"formidable": {
"node_modules/formidable": {
"version": "1.2.2",
"resolved": "https://registry.npm.taobao.org/formidable/download/formidable-1.2.2.tgz",
"integrity": "sha1-v2muopcpgmdfAIZTQrmCmG9rjdk="
"integrity": "sha1-v2muopcpgmdfAIZTQrmCmG9rjdk=",
"deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau"
},
"forwarded": {
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
"node": ">= 0.6"
}
},
"frac": {
"node_modules/frac": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
"engines": {
"node": ">=0.8"
}
},
"fresh": {
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"engines": {
"node": ">= 0.6"
}
},
"generic-pool": {
"node_modules/fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
},
"engines": {
"node": ">=6 <7 || >=8"
}
},
"node_modules/generic-pool": {
"version": "3.8.2",
"resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.8.2.tgz",
"integrity": "sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg=="
"integrity": "sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==",
"engines": {
"node": ">= 4"
}
},
"getpass": {
"node_modules/getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"requires": {
"dependencies": {
"assert-plus": "^1.0.0"
}
},
"har-schema": {
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
"node_modules/har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
"integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
"engines": {
"node": ">=4"
}
},
"har-validator": {
"node_modules/har-validator": {
"version": "5.1.5",
"resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz",
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
"requires": {
"deprecated": "this library is no longer supported",
"dependencies": {
"ajv": "^6.12.3",
"har-schema": "^2.0.0"
},
"engines": {
"node": ">=6"
}
},
"http-errors": {
"node_modules/http-errors": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"requires": {
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
},
"engines": {
"node": ">= 0.6"
}
},
"http-signature": {
"node_modules/http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
"requires": {
"dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
},
"engines": {
"node": ">=0.8",
"npm": ">=1.3.7"
}
},
"httpx": {
"node_modules/httpx": {
"version": "2.2.7",
"resolved": "https://registry.npm.taobao.org/httpx/download/httpx-2.2.7.tgz",
"integrity": "sha1-HjQZgUbjLKMwWmbBEglVnhy+ugk=",
"requires": {
"dependencies": {
"@types/node": "^14",
"debug": "^4.1.1"
},
}
},
"node_modules/httpx/node_modules/@types/node": {
"version": "14.14.35",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.35.tgz?cache=0&sync_timestamp=1615834822695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.35.tgz",
"integrity": "sha1-QslTpOKxirkx9yR35wEhcvT/oxM="
},
"node_modules/httpx/node_modules/debug": {
"version": "4.3.1",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
"integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=",
"dependencies": {
"@types/node": {
"version": "14.14.35",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.35.tgz?cache=0&sync_timestamp=1615834822695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.35.tgz",
"integrity": "sha1-QslTpOKxirkx9yR35wEhcvT/oxM="
},
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
"integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
"integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"iconv-lite": {
"node_modules/httpx/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
"integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
},
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
"node": ">=0.10.0"
}
},
"inherits": {
"node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ipaddr.js": {
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
},
"is-buffer": {
"node_modules/is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429388528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz",
"integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
},
"is-typedarray": {
"node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"isarray": {
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isstream": {
"node_modules/isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
},
"jsbn": {
"node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
},
"json-bigint": {
"node_modules/json-bigint": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
"requires": {
"dependencies": {
"bignumber.js": "^9.0.0"
}
},
"json-schema": {
"node_modules/json-schema": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz",
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
},
"json-schema-traverse": {
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stringify-safe": {
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"jsprim": {
"node_modules/jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/jsprim": {
"version": "1.4.2",
"resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz",
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"requires": {
"dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.4.0",
"verror": "1.10.0"
},
"engines": {
"node": ">=0.6.0"
}
},
"kareem": {
"node_modules/kareem": {
"version": "2.3.2",
"resolved": "https://registry.npm.taobao.org/kareem/download/kareem-2.3.2.tgz",
"integrity": "sha1-eMRQiJSYW404oNwV4ajhEHjyypM="
},
"kitx": {
"node_modules/kitx": {
"version": "1.3.0",
"resolved": "https://registry.npm.taobao.org/kitx/download/kitx-1.3.0.tgz",
"integrity": "sha1-qz7nxZjSsdYp/VVWj4aMREDCAOo="
},
"lru-cache": {
"node_modules/log4js": {
"version": "6.9.1",
"resolved": "https://registry.npmmirror.com/log4js/-/log4js-6.9.1.tgz",
"integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==",
"dependencies": {
"date-format": "^4.0.14",
"debug": "^4.3.4",
"flatted": "^3.2.7",
"rfdc": "^1.3.0",
"streamroller": "^3.1.5"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/log4js/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/log4js/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
"integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
"requires": {
"dependencies": {
"pseudomap": "^1.0.2",
"yallist": "^2.1.2"
}
},
"md5": {
"node_modules/md5": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/md5/download/md5-2.3.0.tgz?cache=0&sync_timestamp=1596362680344&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmd5%2Fdownload%2Fmd5-2.3.0.tgz",
"integrity": "sha1-w9qaaq46MLRreww0m4exENw72k8=",
"requires": {
"dependencies": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
}
},
"media-typer": {
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
"engines": {
"node": ">= 0.6"
}
},
"memory-pager": {
"node_modules/memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/memory-pager/download/memory-pager-1.5.0.tgz",
"integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=",
"optional": true
},
"merge-descriptors": {
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods": {
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
"engines": {
"node": ">= 0.6"
}
},
"mime": {
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"mime-db": {
"node_modules/mime-db": {
"version": "1.46.0",
"resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.46.0.tgz?cache=0&sync_timestamp=1613194744108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.46.0.tgz",
"integrity": "sha1-Ymd0in95lZTePLyM3pHe80lmHO4="
"integrity": "sha1-Ymd0in95lZTePLyM3pHe80lmHO4=",
"engines": {
"node": ">= 0.6"
}
},
"mime-types": {
"node_modules/mime-types": {
"version": "2.1.29",
"resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.29.tgz?cache=0&sync_timestamp=1613608491741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.29.tgz",
"integrity": "sha1-HUq3faZLkfX3JInfKSNlY3VLsbI=",
"requires": {
"dependencies": {
"mime-db": "1.46.0"
},
"engines": {
"node": ">= 0.6"
}
},
"moment": {
"node_modules/moment": {
"version": "2.29.1",
"resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz?cache=0&sync_timestamp=1601983320283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz",
"integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M="
"integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=",
"engines": {
"node": "*"
}
},
"mongodb": {
"node_modules/mongodb": {
"version": "3.6.5",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.5.tgz",
"integrity": "sha1-wn14b9TTyD3BkwJINwfRKp0q7l8=",
"requires": {
"dependencies": {
"bl": "^2.2.1",
"bson": "^1.1.4",
"denque": "^1.4.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"safe-buffer": "^5.1.2"
},
"engines": {
"node": ">=4"
},
"optionalDependencies": {
"saslprep": "^1.0.0"
},
"peerDependenciesMeta": {
"aws4": {
"optional": true
},
"bson-ext": {
"optional": true
},
"kerberos": {
"optional": true
},
"mongodb-client-encryption": {
"optional": true
},
"mongodb-extjson": {
"optional": true
},
"snappy": {
"optional": true
}
}
},
"mongoose": {
"node_modules/mongoose": {
"version": "5.12.1",
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.12.1.tgz?cache=0&sync_timestamp=1616103030377&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmongoose%2Fdownload%2Fmongoose-5.12.1.tgz",
"integrity": "sha1-mqzorHg7I5kGJTOWqY8qVsCWS4s=",
"requires": {
"dependencies": {
"@types/mongodb": "^3.5.27",
"bson": "^1.1.4",
"kareem": "2.3.2",
......@@ -875,202 +1188,260 @@
"sift": "7.0.1",
"sliced": "1.0.1"
},
"dependencies": {
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
"integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz",
"integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY="
}
"engines": {
"node": ">=4.0.0"
}
},
"mongoose-legacy-pluralize": {
"node_modules/mongoose-legacy-pluralize": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/mongoose-legacy-pluralize/download/mongoose-legacy-pluralize-1.0.2.tgz",
"integrity": "sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q="
"integrity": "sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q=",
"peerDependencies": {
"mongoose": "*"
}
},
"node_modules/mongoose/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
"integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
},
"mpath": {
"node_modules/mongoose/node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz",
"integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY="
},
"node_modules/mpath": {
"version": "0.8.3",
"resolved": "https://registry.npm.taobao.org/mpath/download/mpath-0.8.3.tgz",
"integrity": "sha1-gorA0Yf39CZ0g510khlwl5q73Y8="
"integrity": "sha1-gorA0Yf39CZ0g510khlwl5q73Y8=",
"engines": {
"node": ">=4.0.0"
}
},
"mquery": {
"node_modules/mquery": {
"version": "3.2.4",
"resolved": "https://registry.npm.taobao.org/mquery/download/mquery-3.2.4.tgz?cache=0&sync_timestamp=1613149714087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmquery%2Fdownload%2Fmquery-3.2.4.tgz",
"integrity": "sha1-nFwuKF6mxvIGc/NSiXPJnuGqoaA=",
"requires": {
"dependencies": {
"bluebird": "3.5.1",
"debug": "3.1.0",
"regexp-clone": "^1.0.0",
"safe-buffer": "5.1.2",
"sliced": "1.0.1"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/mquery/node_modules/debug": {
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
}
"ms": "2.0.0"
}
},
"ms": {
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mysql": {
"node_modules/mysql": {
"version": "2.18.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
"integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
"requires": {
"dependencies": {
"bignumber.js": "9.0.0",
"readable-stream": "2.3.7",
"safe-buffer": "5.1.2",
"sqlstring": "2.3.1"
},
"dependencies": {
"bignumber.js": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
"integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
}
"engines": {
"node": ">= 0.6"
}
},
"negotiator": {
"node_modules/mysql/node_modules/bignumber.js": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
"integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==",
"engines": {
"node": "*"
}
},
"node_modules/negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
"integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs="
"integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=",
"engines": {
"node": ">= 0.6"
}
},
"node-xlsx": {
"node_modules/node-xlsx": {
"version": "0.16.1",
"resolved": "https://registry.npmjs.org/node-xlsx/-/node-xlsx-0.16.1.tgz",
"integrity": "sha512-mwEZKItGXKO+jp5Pz9+wDCXxqhJITGd6m81A8WmalBpGAzREiR5cIJ0xrSF0BxzU6Mh2mC0fA2X0/3GqNU6dIw==",
"requires": {
"dependencies": {
"@babel/runtime": "^7.12.5",
"buffer-from": "^1.1.1",
"xlsx": "^0.16.9"
},
"engines": {
"node": ">=4.0.0"
}
},
"nodemailer": {
"node_modules/nodemailer": {
"version": "6.5.0",
"resolved": "https://registry.npm.taobao.org/nodemailer/download/nodemailer-6.5.0.tgz?cache=0&sync_timestamp=1614329161993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnodemailer%2Fdownload%2Fnodemailer-6.5.0.tgz",
"integrity": "sha1-0Swo2NSHeJGOJfGZnZeRAjGxddk="
"integrity": "sha1-0Swo2NSHeJGOJfGZnZeRAjGxddk=",
"engines": {
"node": ">=6.0.0"
}
},
"oauth-sign": {
"node_modules/oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"engines": {
"node": "*"
}
},
"on-finished": {
"node_modules/on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"requires": {
"dependencies": {
"ee-first": "1.1.1"
},
"engines": {
"node": ">= 0.8"
}
},
"on-headers": {
"node_modules/on-headers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
"engines": {
"node": ">= 0.8"
}
},
"opentype.js": {
"node_modules/opentype.js": {
"version": "0.7.3",
"resolved": "https://registry.npm.taobao.org/opentype.js/download/opentype.js-0.7.3.tgz",
"integrity": "sha1-QPuM4Yv9YOdESO/f5EKDQJg5eqs=",
"requires": {
"dependencies": {
"tiny-inflate": "^1.0.2"
},
"bin": {
"ot": "bin/ot"
}
},
"parseurl": {
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"engines": {
"node": ">= 0.8"
}
},
"path-to-regexp": {
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"performance-now": {
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"printj": {
"node_modules/printj": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
"bin": {
"printj": "bin/printj.njs"
},
"engines": {
"node": ">=0.8"
}
},
"process-nextick-args": {
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz",
"integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I="
},
"proxy-addr": {
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
},
"engines": {
"node": ">= 0.10"
}
},
"pseudomap": {
"node_modules/pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
},
"psl": {
"node_modules/psl": {
"version": "1.9.0",
"resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
},
"punycode": {
"node_modules/punycode": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"engines": {
"node": ">=6"
}
},
"qs": {
"node_modules/qs": {
"version": "6.5.3",
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz",
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"engines": {
"node": ">=0.6"
}
},
"range-parser": {
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"raw-body": {
"node_modules/raw-body": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
"integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
"requires": {
"dependencies": {
"bytes": "3.1.0",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"dependencies": {
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
}
"engines": {
"node": ">= 0.8"
}
},
"readable-stream": {
"node_modules/raw-body/node_modules/bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
"integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
"requires": {
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
......@@ -1080,11 +1451,14 @@
"util-deprecate": "~1.0.1"
}
},
"redis": {
"node_modules/redis": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/redis/-/redis-4.1.0.tgz",
"integrity": "sha512-5hvJ8wbzpCCiuN1ges6tx2SAh2XXCY0ayresBmu40/SGusWHFW86TAlIPpbimMX2DFHOX7RN34G2XlPA1Z43zg==",
"requires": {
"workspaces": [
"./packages/*"
],
"dependencies": {
"@redis/bloom": "1.0.2",
"@redis/client": "1.1.0",
"@redis/graph": "1.0.1",
......@@ -1093,21 +1467,22 @@
"@redis/time-series": "1.0.3"
}
},
"regenerator-runtime": {
"node_modules/regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
"integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
},
"regexp-clone": {
"node_modules/regexp-clone": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/regexp-clone/download/regexp-clone-1.0.0.tgz",
"integrity": "sha1-Ii25Z2IydwViYLmSYmNUoEzpv2M="
},
"request": {
"node_modules/request": {
"version": "2.88.2",
"resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz",
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"requires": {
"deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
"dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
......@@ -1128,56 +1503,73 @@
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
},
"engines": {
"node": ">= 6"
}
},
"require_optional": {
"node_modules/require_optional": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/require_optional/download/require_optional-1.0.1.tgz",
"integrity": "sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4=",
"requires": {
"dependencies": {
"resolve-from": "^2.0.0",
"semver": "^5.1.0"
}
},
"resolve-from": {
"node_modules/resolve-from": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-2.0.0.tgz",
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/rfdc": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz",
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
},
"safe-buffer": {
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
"integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
},
"safer-buffer": {
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
"integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
},
"saslprep": {
"node_modules/saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/saslprep/download/saslprep-1.0.3.tgz",
"integrity": "sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY=",
"optional": true,
"requires": {
"dependencies": {
"sparse-bitfield": "^3.0.3"
},
"engines": {
"node": ">=6"
}
},
"sax": {
"node_modules/sax": {
"version": "1.2.4",
"resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
"integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk="
},
"semver": {
"node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
"integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc="
"integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
"bin": {
"semver": "bin/semver"
}
},
"send": {
"node_modules/send": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
"requires": {
"dependencies": {
"debug": "2.6.9",
"depd": "~1.1.2",
"destroy": "~1.0.4",
......@@ -1192,67 +1584,77 @@
"range-parser": "~1.2.1",
"statuses": "~1.5.0"
},
"dependencies": {
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
"engines": {
"node": ">= 0.8.0"
}
},
"serve-static": {
"node_modules/send/node_modules/ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"node_modules/serve-static": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
"requires": {
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.17.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"setprototypeof": {
"node_modules/setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"sift": {
"node_modules/sift": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz",
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
},
"sliced": {
"node_modules/sliced": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/sliced/download/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
"sparse-bitfield": {
"node_modules/sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npm.taobao.org/sparse-bitfield/download/sparse-bitfield-3.0.3.tgz",
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true,
"requires": {
"dependencies": {
"memory-pager": "^1.0.2"
}
},
"sqlstring": {
"node_modules/sqlstring": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
"integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
"integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=",
"engines": {
"node": ">= 0.6"
}
},
"ssf": {
"node_modules/ssf": {
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"requires": {
"dependencies": {
"frac": "~1.1.2"
},
"engines": {
"node": ">=0.8"
}
},
"sshpk": {
"node_modules/sshpk": {
"version": "1.17.0",
"resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
"integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
"requires": {
"dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
......@@ -1262,136 +1664,226 @@
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
},
"bin": {
"sshpk-conv": "bin/sshpk-conv",
"sshpk-sign": "bin/sshpk-sign",
"sshpk-verify": "bin/sshpk-verify"
},
"engines": {
"node": ">=0.10.0"
}
},
"statuses": {
"node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/streamroller": {
"version": "3.1.5",
"resolved": "https://registry.npmmirror.com/streamroller/-/streamroller-3.1.5.tgz",
"integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==",
"dependencies": {
"date-format": "^4.0.14",
"debug": "^4.3.4",
"fs-extra": "^8.1.0"
},
"engines": {
"node": ">=8.0"
}
},
"string_decoder": {
"node_modules/streamroller/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/streamroller/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
"integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
"requires": {
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"svg-captcha": {
"node_modules/svg-captcha": {
"version": "1.4.0",
"resolved": "https://registry.npm.taobao.org/svg-captcha/download/svg-captcha-1.4.0.tgz",
"integrity": "sha1-MurTxkY5NsIYuzvJ7QT+pO7/5JI=",
"requires": {
"dependencies": {
"opentype.js": "^0.7.3"
},
"engines": {
"node": ">=4.x"
}
},
"tiny-inflate": {
"node_modules/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/tiny-inflate/download/tiny-inflate-1.0.3.tgz",
"integrity": "sha1-EicVSUkToYBRZqr3yTRnkz7qJsQ="
},
"toidentifier": {
"node_modules/toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
"engines": {
"node": ">=0.6"
}
},
"tough-cookie": {
"node_modules/tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"requires": {
"dependencies": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
},
"engines": {
"node": ">=0.8"
}
},
"tunnel-agent": {
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"requires": {
"dependencies": {
"safe-buffer": "^5.0.1"
},
"engines": {
"node": "*"
}
},
"tweetnacl": {
"node_modules/tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
},
"type-is": {
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
"node": ">= 4.0.0"
}
},
"unpipe": {
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
"engines": {
"node": ">= 0.8"
}
},
"uri-js": {
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"requires": {
"dependencies": {
"punycode": "^2.1.0"
}
},
"util-deprecate": {
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utils-merge": {
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"engines": {
"node": ">= 0.4.0"
}
},
"uuid": {
"node_modules/uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"bin": {
"uuid": "bin/uuid"
}
},
"vary": {
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
"engines": {
"node": ">= 0.8"
}
},
"verror": {
"node_modules/verror": {
"version": "1.10.0",
"resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz",
"integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"requires": {
"engines": [
"node >=0.6.0"
],
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
"wmf": {
"node_modules/wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
"engines": {
"node": ">=0.8"
}
},
"word": {
"node_modules/word": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
"engines": {
"node": ">=0.8"
}
},
"ws": {
"node_modules/ws": {
"version": "5.2.2",
"resolved": "https://registry.npm.taobao.org/ws/download/ws-5.2.2.tgz?cache=0&sync_timestamp=1615063662500&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-5.2.2.tgz",
"integrity": "sha1-3/7xSGa46NyRM1glFNG++vlumA8=",
"requires": {
"dependencies": {
"async-limiter": "~1.0.0"
}
},
"xlsx": {
"node_modules/xlsx": {
"version": "0.16.9",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz",
"integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==",
"requires": {
"dependencies": {
"adler-32": "~1.2.0",
"cfb": "^1.1.4",
"codepage": "~1.14.0",
......@@ -1402,23 +1894,35 @@
"ssf": "~0.11.2",
"wmf": "~1.0.1",
"word": "~0.3.0"
},
"bin": {
"xlsx": "bin/xlsx.njs"
},
"engines": {
"node": ">=0.8"
}
},
"xml2js": {
"node_modules/xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.23.tgz",
"integrity": "sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=",
"requires": {
"dependencies": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"xmlbuilder": {
"node_modules/xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-11.0.1.tgz?cache=0&sync_timestamp=1600349105009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxmlbuilder%2Fdownload%2Fxmlbuilder-11.0.1.tgz",
"integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM="
"integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM=",
"engines": {
"node": ">=4.0"
}
},
"yallist": {
"node_modules/yallist": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
......
......@@ -12,6 +12,7 @@
"express-async-handler": "^1.1.4",
"express-history-api-fallback": "^2.2.1",
"formidable": "^1.2.1",
"log4js": "^6.9.1",
"lru-cache": "^4.1.5",
"md5": "^2.2.1",
"moment": "^2.24.0",
......@@ -24,7 +25,6 @@
"svg-captcha": "^1.3.12",
"ws": "^5.2.2"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
......
......@@ -20,7 +20,6 @@ export async function getData(req, res) {
let dayStuData = await getDayStuData();
let monthStuData = await getMonthStuData();
console.log("monthStuData" +JSON.stringify(monthStuData));
ret["gnjjksbqsfx"] = getChartOutData("各年级健康上报趋势分析", {"日": {unit:"", dataInfo:dayStuData}, "月": {unit: "", dataInfo:monthStuData}});
let differentSchoolType = ["幼儿园","托育机构","早教中心","托儿所","小学","初级中学","高级中学","中职校","完中","九年一贯制","十年一贯制","十二年一贯制","其他"];
......
......@@ -3,80 +3,75 @@
*/
import { getChartOutData, getKeyNumberValueOutData, getKeyStringValueOutData, getListOutData, getStringOutData } from "../../cal/out";
import { getWorkstationData } from "../../data/interface/secondPhase/workstation";
import * as workstation from "../../data/interface/secondPhase/workstation";
import * as defaultConf from "../../config/workstationConfig";
import { data } from "../../data/interface/secondPhase/testWorkstation";
export function getData(req, res) {
export async function getData(req, res) {
let ret:any = {};
let {} = getWorkstationData();
// let {} = await workstation.getEnrollmentData();
let zsqkData = defaultConf.EnrollmentSituationDefault;
ret["zsqk"] = getKeyStringValueOutData("招生情况", zsqkData);
let {enrollmentSituationBase, passRate, workstationMapBase, stuQualificationRate, topicsNum, topicsStatus} = await workstation.getEnrollmentData();
ret["zsqk"] = getKeyStringValueOutData("招生情况", enrollmentSituationBase);
let tjsData = defaultConf.RecommendedStuDefault;
let zjsData = defaultConf.SelfRecommendationStuDefault;
ret["lnzmxyqk"] = getChartOutData("历年招募学员情况", {"推荐生": {unit:"", dataInfo:tjsData}, "自荐生": {unit: "", dataInfo:zjsData}});
let {recommendedStu, selfRecommendationStu} = await workstation.getRecommendedStuData();
ret["lnzmxyqk"] = getChartOutData("历年招募学员情况", {"推荐生": {unit:"", dataInfo:recommendedStu}, "自荐生": {unit: "", dataInfo:selfRecommendationStu}});
let xslyfbData = defaultConf.StuSourceDistributionDefault;
let xslyfbData = await workstation.getSourceDistributionData();
ret["xslyfb"] = getChartOutData("学生来源分布", {"学生来源分布": {unit: "", dataInfo:xslyfbData}});
let xshglData = defaultConf.StuPassRateDefault;
ret["xshgqkhgl"] = getKeyStringValueOutData("学生合格情况合格率", xshglData);
ret["xshgqkhgl"] = getKeyStringValueOutData("学生合格情况合格率", passRate);
let xstcyyData = defaultConf.StuExitReasonDefault;
let xstcyyData = await workstation.getExitReasonData();
ret["xstcyy"] = getKeyStringValueOutData("学生退出原因", xstcyyData);
let xklsfbData = defaultConf.SubjectTeacherDistributionDefault;
ret["xklsfb"] = getKeyNumberValueOutData("学科老师分布", xklsfbData);
let {irslCount, subjectTeacher} = await workstation.getSubjectTeacherData();
let xklsfb = getKeyNumberValueOutData("学科老师分布", subjectTeacher);
xklsfb.total = irslCount;
ret["xklsfb"] = xklsfb;
let lnxzgzgqkData = defaultConf.PreviousYearsAddWorkstationDefault;
let gzzlxfbData = defaultConf.WorkstationTypeDistributionDefault;
let lnxzgzgqkData = await workstation.getAddWorkstation();
let gzzlxfbData = await workstation.getWorkstationType();
ret["gzzqk"] = getChartOutData("工作站情况", {"历年新增工作站情况": {unit:"", dataInfo:lnxzgzgqkData}, "工作站类型分布": {unit: "", dataInfo:gzzlxfbData}});
let dtjcsjData = defaultConf.WorkstationMapBaseDataDefalt;
ret["dtjcsj"] = getKeyStringValueOutData("地图基础数据", dtjcsjData);
ret["dtjcsj"] = getKeyStringValueOutData("地图基础数据", workstationMapBase);
let dtData = defaultConf.WorkstationMapDataDefault;
ret["dt"] = getKeyStringValueOutData("地图坐标数据", dtData);
let gzzData = await workstation.getWorkstationMap()
ret["dt"] = gzzData;
let rmktphData = defaultConf.HotTopicRankingDefault;
ret["rmktph"] = getKeyStringValueOutData("热门课题排行", rmktphData);
let rmxkphData = await workstation.getHotSubjectRanking();
ret["rmxkph"] = getListOutData("热门学科排行", rmxkphData);
let rmqyphData = await workstation.getHotRegionRanking();
ret["rmqyph"] = getListOutData("热门区域排行", rmqyphData);
let jnxzktData = defaultConf.YearNewTopicDefault;
ret["jnxzkt"] = getKeyStringValueOutData("今年新增课题", jnxzktData);
ret["jnxzkt"] = getKeyStringValueOutData("今年新增课题", topicsNum);
let jnxzktxxData = defaultConf.YearNewTopicChartDefault;
// let jnxzktxxData = defaultConf.YearNewTopicChartDefault;
let jnxzktxxData = await workstation.getTopicDistribution();
ret["jnxzktxx"] = getKeyStringValueOutData("今年新增课题环形图", jnxzktxxData);
let ktztData = defaultConf.TopicStateDefault;
ret["ktzt"] = getKeyStringValueOutData("课题状态", ktztData);
ret["ktzt"] = getKeyStringValueOutData("课题状态", topicsStatus);
let ktqkData = defaultConf.TopicSituationDefault;
// let ktqkData = defaultConf.TopicSituationDefault;
let ktqkData = await workstation.getProjectStatus();
ret["ktqk"] = getListOutData("课题情况", ktqkData);
let rmktData = defaultConf.HotTopicDefault;
// let rmktData = defaultConf.HotTopicDefault;
let rmktData = await workstation.getTopicsResources();
ret["rmkt"] = getListOutData("热门课题", rmktData);
let sjryzzData = defaultConf.HonoraryQualificationsMunicipalDefault;
ret["sjryzz"] = getStringOutData("市级荣誉资质", sjryzzData);
// let ggzzxshglData = defaultConf.WorkstationStuRateDefault;
let ggzzxshglData = await workstation.getWorkstationStuRate();
ret["ggzzxshgl"] = getKeyStringValueOutData("各工作站学生合格率", ggzzxshglData);
let qjryzzData = defaultConf.HonoraryQualificationsDistrictDefault;
ret["qjryzz"] = getStringOutData("区级荣誉资质", qjryzzData);
let xjryzzData = defaultConf.HonoraryQualificationsSchoolDefault;
ret["xjryzz"] = getStringOutData("校级荣誉资质", xjryzzData);
let yxxsData = defaultConf.OutstandingStuDefault;
let yxxsData = await workstation.getOutstandingStu();
ret["yxxs"] = getListOutData("优秀学生", yxxsData);
let xsqxhglData = defaultConf.StuQualificationRateDefault;
ret["xsqxhgl"] = getKeyStringValueOutData("学生去向合格率", xsqxhglData);
ret["xsqxhgl"] = getKeyStringValueOutData("学生去向合格率", stuQualificationRate);
let sylData = defaultConf.DoubleFirstClassDefault;
let bkData = defaultConf.UndergraduateCourseDefault;
let qtData = defaultConf.OtherStuMovementDefault;
let xsqxData = {"双一流": {"unit":"", dataInfo:sylData}, "本科": {"unit":"", dataInfo:bkData}, "其他": {"unit":"", dataInfo:qtData}}
let {peopleNum985, peopleNum211, peopleNumOther} = await workstation.getStuQualificationRate();
let xsqxData = {"985": {"unit":"", dataInfo:peopleNum985}, "211": {"unit":"", dataInfo:peopleNum211}, "其他": {"unit":"", dataInfo:peopleNumOther}}
ret["xsqx"] = getChartOutData("学生去向", xsqxData);
let xscgData = defaultConf.StuOutcomesDefault;
......@@ -86,3 +81,11 @@ export function getData(req, res) {
res.send(ret);
}
export async function getTest(req, res) {
let ret:any = {};
ret["data"] = data;
res.send(ret);
}
......@@ -3,55 +3,41 @@
*/
import { getChartOutData, getKeyNumberValueOutData, getKeyStringValueOutData, getListOutData } from "../../cal/out";
import { getWorkstationPopupData } from "../../data/interface/secondPhase/workstationPopup";
import * as popup from "../../data/interface/secondPhase/workstationPopup";
import * as defaultConf from "../../config/workstationPopupConfig";
import { BizError, SysError } from "../../util/bizError";
import { SYSTEMERRORENUM } from "../../config/enum";
export function getData(req, res) {
let id = req.query.id || "上海交通大学能源科技与未来城市实践工作站";
export async function getData(req, res) {
let wsid = req.body.id || "";
if (!wsid) throw new SysError(SYSTEMERRORENUM.参数错误, '工作站id为空');
let ret:any = {};
let {招生情况} = getWorkstationPopupData(id);
let {baseNum, stuCourseSchedule, municipalLvTopicsNum, stuQualified} = await popup.getBaseNumData(wsid);
let jcsjData = defaultConf.baseDefault;
let jcsjData = await popup.getBaseData(wsid);
ret["jcsj"] = getKeyStringValueOutData("工作站弹窗基础数据", jcsjData);
let jcsjslData = defaultConf.baseNumDefault;
ret["jcsjsl"] = getKeyStringValueOutData("基础数据数量", jcsjslData);
let drkqfxData = defaultConf.DailyAttendanceAnalysisDefault;
ret["drkqfx"] = getKeyStringValueOutData("当日考勤分析", drkqfxData);
let cqlData = defaultConf.AttendanceDefault;
ret["cql"] = getKeyStringValueOutData("出勤率", cqlData);
let qqyyfxData = defaultConf.ReasonForAbsenceDefault;
ret["qqyyfx"] = getKeyStringValueOutData("缺勤原因分析", qqyyfxData);
ret["jcsjsl"] = getKeyStringValueOutData("基础数据数量", baseNum);
let xxfsfxData = defaultConf.LearningStyleAnalysisDefault;
ret["xxfsfx"] = getKeyStringValueOutData("学习方式分析", xxfsfxData);
let xxxkjdData = defaultConf.StuCourseScheduleDefault;
ret["xsxkjd"] = getKeyNumberValueOutData("学生选课进度", xxxkjdData);
ret["xsxkjd"] = getKeyNumberValueOutData("学生选课进度", stuCourseSchedule);
let xssjktyjjdData = await popup.getCityResearchProgress(wsid);
ret["xssjktyjjd"] = getKeyStringValueOutData("市级课题研究进度", xssjktyjjdData);
let lspfpmData = defaultConf.TeacherRatingRankingDefault;
ret["lspfpm"] = getKeyStringValueOutData("老师评分排名", lspfpmData);
let gxkxsdf = await popup.getSubjectStuScore(wsid);
ret["gxkxsdf"] = {title:"各学科学生得分", dataList:gxkxsdf};
let bqxxhgfxData = defaultConf.StuQualifiedAnalysisDefault;
ret["bqxxhgfx"] = getKeyStringValueOutData("本期学生合格分析", bqxxhgfxData);
ret["bqxxhgfx"] = getKeyStringValueOutData("本期学生合格分析", stuQualified);
let tcyyfxData = defaultConf.ReasonForExitDefault;
let tcyyfxData = await popup.getQuitReason(wsid);
ret["tcyyfx"] = getChartOutData("退出原因分析", {"退出原因分析": {unit:"", dataInfo:tcyyfxData}});
let xsktyjjdData = defaultConf.StuTopicResearchProgressDefault;
ret["xsktyjjd"] = getKeyStringValueOutData("学生课题研究进度", xsktyjjdData);
let xssjktyjjdData = defaultConf.StuMunicipalTopicResearchProgressDefault;
ret["xssjktyjjd"] = getKeyStringValueOutData("学生市级课题研究进度", xssjktyjjdData);
ret["xsktyjjd"] = getKeyStringValueOutData("课题数", municipalLvTopicsNum);
let gzzcgData = defaultConf.WorkstationAchievementsDefault;
ret["gzzcg"] = getListOutData("工作站成果", gzzcgData);
let yjkt = await popup.getResearchSubject(wsid);
ret["yjkt"] = getListOutData("研究课题", yjkt);
res.send(ret);
}
\ No newline at end of file
import { PAGEENUM, PAGEENUM1, PAGEENUM2, PAGEENUM3, SYSTEMERRORENUM } from "../config/enum";
import { addTokenInfo, addUserInfo, checkAdminPermission, checkPagePermission, selectUserList, updateUser } from "../data/user/user";
import { uacInfomation } from "../serverConfig";
import { BizError } from "../util/bizError";
import { BizError, SysError } from "../util/bizError";
import { get, getParmiss, post, postParmiss } from "../util/request";
//登录
......@@ -19,7 +19,7 @@ export async function getUserToken(req, res) {
let token;
if (result.error) {
console.log();
throw new BizError(SYSTEMERRORENUM.您的登录已失效);
throw new SysError(SYSTEMERRORENUM.您的登录已失效);
} else if (result.access_token) { //获取用户信息
let { isAdmin, sub, real_name, phone, otherPage } = await getUserInfo(result.access_token);
......@@ -28,11 +28,11 @@ export async function getUserToken(req, res) {
addUserInfo(sub, phone, real_name, isAdmin, otherPage);
token = addTokenInfo(sub, lastTokenMs, result.access_token, result.refresh_token, isAdmin);
} else {
throw new BizError(SYSTEMERRORENUM.您的账户没有访问权限);
throw new SysError(SYSTEMERRORENUM.您的账户没有访问权限);
}
} else {
throw new BizError(SYSTEMERRORENUM.获取不到access_token);
throw new SysError(SYSTEMERRORENUM.获取不到access_token);
}
res.success({token});
......@@ -73,7 +73,7 @@ async function getUserInfo(access_token) {
let result:any = await getParmiss(uacInfomation.getUserInfoUrl, {}, {"Authorization": `Bearer ${access_token}`})
let isAdmin = false;
let {sub, role, permission, real_name, phone} = result;
if (!sub) throw new BizError(SYSTEMERRORENUM.获取玑脉用户信息失败);
if (!sub) throw new SysError(SYSTEMERRORENUM.获取玑脉用户信息失败);
permission = permission || "";
isAdmin = permission.indexOf("dpzs_client_admin") > -1;//是否能进入管理后天
......@@ -90,7 +90,7 @@ export function checkPermissionForAdmin(req, res) {
//校验是否有权限跳转大屏
export function checkPermissionForPage(req, res) {
let { page } = req.body;
if ( !page ) throw new BizError(SYSTEMERRORENUM.参数错误);
if ( !page ) throw new SysError(SYSTEMERRORENUM.参数错误);
let userId = req.headers.userid;
let ownOrNot = checkPagePermission(userId, page);
res.success({ownOrNot});
......@@ -108,7 +108,7 @@ export async function updatePermissions(req, res) {
let { allow, userId } = req.body;
let adminUser = req.headers.userid;
if ( !Array.isArray(allow) ) throw new BizError(SYSTEMERRORENUM.请求参数错误);
if ( !Array.isArray(allow) ) throw new SysError(SYSTEMERRORENUM.请求参数错误);
//校验参数
let config = {};
......@@ -120,15 +120,15 @@ export async function updatePermissions(req, res) {
}
let updateInfo = {};
allow.forEach(info => {
if ( !config[info] ) throw new BizError(SYSTEMERRORENUM.请求参数错误);
if ( !config[info] ) throw new SysError(SYSTEMERRORENUM.请求参数错误);
updateInfo[info] = true;
});
let isAdmin = checkAdminPermission(adminUser);
if (!isAdmin) throw new BizError(SYSTEMERRORENUM.您的账户没有访问权限);
if (!isAdmin) throw new SysError(SYSTEMERRORENUM.您的账户没有访问权限);
let addSuccess = updateUser(userId, updateInfo);
if (!addSuccess ) throw new BizError(SYSTEMERRORENUM.没有找到目标用户);
if (!addSuccess ) throw new SysError(SYSTEMERRORENUM.没有找到目标用户);
res.success({isOk:true});
}
......@@ -137,12 +137,12 @@ export async function updatePermissions(req, res) {
export async function permissionList(req, res) {
let { select, page, typeList } = req.body;
if ( isNaN(page) ) throw new BizError(SYSTEMERRORENUM.参数错误);
if ( !Array.isArray(typeList) ) throw new BizError(SYSTEMERRORENUM.参数错误);
if ( isNaN(page) ) throw new SysError(SYSTEMERRORENUM.参数错误);
if ( !Array.isArray(typeList) ) throw new SysError(SYSTEMERRORENUM.参数错误);
typeList.forEach(key => {
if ( isNaN(key) ) throw new BizError(SYSTEMERRORENUM.参数错误);
if ( isNaN(key) ) throw new SysError(SYSTEMERRORENUM.参数错误);
});
if (select.length > 60) throw new BizError(SYSTEMERRORENUM.参数错误);
if (select.length > 60) throw new SysError(SYSTEMERRORENUM.参数错误);
let config1 = [];
for(let key in PAGEENUM1) {
......
......@@ -49,6 +49,6 @@ for (let key in SYSTEMERRORENUM) {
systemErrorMsgMap[SYSTEMERRORENUM[key]] = key;
}
export function getMsg(param) {
export function getSysMsg(param) {
return systemErrorMsgMap[param];
}
\ No newline at end of file
export enum ERRORENUM {
身份验证失败 = 1,
非法登录,
身份验证过期,
参数错误,
地址数据不完整,
请完善信息,
数据操作失败,
数据查询失败,
数据联合查询失败,
该方法仅可进行查询操作,
该方法仅可进行联合查询操作,
分页请设置当前页数,
密码错误,
用户不存在,
该用户不是管理员,
目标用户不是正式党员,
管理员不可被删除,
权限不足,
目标数据不存在,
账号不存在,
密码不一致,
密码只能由618位字符和数字组成,
未找到数据,
库中不存在对应数据,
表单校验失败,
暂无对应数据,
该进度不是文字学习
}
export enum ERRORCODEENUM {
身份验证失败 = 401,
非法登录 = 402,
身份验证过期 = 403,
}
let bizErrorMsgMap = {};
for (let key in ERRORENUM) {
bizErrorMsgMap[ERRORENUM[key]] = key;
}
export function getBizMsg(param) {
return bizErrorMsgMap[param];
}
\ No newline at end of file
......@@ -3,18 +3,945 @@
*/
/**
* 招生情况
* 首页整体情况
* url: 1、/dataengine-center-oneservice/list/1356231767216278142
*/
export const HomePageDefault = {
"data": [
{
name: "wssl",
quantity: "35"
},
{
name: "sosl",
quantity: "3672"
},
{
name: "ktsl",
quantity: "56"
},
{
name: "lnktsl",
quantity: "361"
},
{
name: "zrs",
quantity: "6758"
},
{
name: "jnxss",
quantity: "2169"
},
{
name: "lssl",
quantity: "349"
},
{
name: "zthgl",
quantity: "89%"
},
{
name: "xshgs",
quantity: "191"
},
{
name: "kzzxss",
quantity: "670"
},
{
name: "jtxss",
quantity: "471"
},
]
}
/**
* 左侧招生情况-历年招募学员情况
* url:2.1、/dataengine-center-oneservice/list/1356323092543490695
*/
export const RecruitDefault = {
"data": [
{
"ryear": "2019",
"tjsl": "2089",
"zjsl": "189"
},
{
"ryear": "2020",
"tjsl": "2277",
"zjsl": "207"
},
{
"ryear": "2021",
"tjsl": "2119",
"zjsl": "119"
},
{
"ryear": "2022",
"tjsl": "2761",
"zjsl": "36"
},
{
"ryear": "2023",
"tjsl": "2152",
"zjsl": "152"
},
]
}
/**
* 左侧招生情况-学生来源分布
* url:2.2、/dataengine-center-oneservice/list/1357404970948151324
*/
export const SourceDistributionDefault = {
"data": [
{
"cname": "嘉定区",
"sl": "171"
},
{
"cname": "奉贤区",
"sl": "124"
}
]
}
/**
* 左侧学生合格情况-学生退出原因
* url: 3、/dataengine-center-oneservice/list/1356323623968098961
*/
export const ExitReasonDefault = {
"data": [
{
"otsl": "47",
"otreason": "前往站点学习路程太远"
},
{
"otsl": "1829",
"otreason": "学业冲突,平时学习太紧张与工作站学习不能兼顾"
}
]
}
/**
* 左侧学科老师分布
* url:4、/dataengine-center-oneservice/list/1356324468705118873
*/
export const SubjectTeacherDefault = {
"data": [
{
"irsl": "165",
"percentage": "14",
"soname": "物理"
},
{
"irsl": "152",
"percentage": "13",
"soname": "医学"
},
{
"irsl": "147",
"percentage": "13",
"soname": "化学"
},
{
"irsl": "136",
"percentage": "12",
"soname": "工程(材料)"
},
{
"irsl": "124",
"percentage": "11",
"soname": "工程(机械)"
},
{
"irsl": "98",
"percentage": "9",
"soname": "生物学"
},
{
"irsl": "81",
"percentage": "7",
"soname": "环境"
},
{
"irsl": "72",
"percentage": "6",
"soname": "工程(光学)"
},
{
"irsl": "63",
"percentage": "5",
"soname": "计算机"
},
{
"irsl": "44",
"percentage": "4",
"soname": "天文学"
},
{
"irsl": "26",
"percentage": "2",
"soname": "地理"
},
{
"irsl": "22",
"percentage": "2",
"soname": "设计学"
},
{
"irsl": "21",
"percentage": "2",
"soname": "数学"
}
]
}
/**
* 左侧工作站学科分布
* url:5.1、/dataengine-center-oneservice/list/1356326298316098211
*/
export const WorkstationTypeDefault = {
"data": [
{
"wssl": "5",
"percentage": "14",
"soname": "化学"
},
{
"wssl": "5",
"percentage": "14",
"soname": "工程(机械)"
}
]
}
/**
* 历年工作站情况
* url:5.2、/dataengine-center-oneservice/list/1357408718505297959
*/
export const AddWorkstationDefault = {
"data": [
{
"ryear": "2018",
"sl": "25"
},
{
"ryear": "2019",
"sl": "27"
},
{
"ryear": "2020",
"sl": "29"
},
{
"ryear": "2022",
"sl": "33"
},
{
"ryear": "2016",
"sl": "27"
},
{
"ryear": "2017",
"sl": "25"
},
{
"ryear": "2021",
"sl": "29"
},
{
"ryear": "2023",
"sl": "35"
},
{
"ryear": "2015",
"sl": "27"
},
{
"ryear": "2014",
"sl": "27"
},
{
"ryear": "2013",
"sl": "27"
},
{
"ryear": "2012",
"sl": "27"
},
]
}
/**
* 右侧各工作站学生合格率
* url:6、/dataengine-center-oneservice/list/1356390987584686765
*/
export const WorkstationStuRateDefault = {
"data": [
{
"wsid": "0303E1C1338276A443AA78A99430B047",
"hgrs": "58",
"whgrs": "0",
"hgl": "100",
"wsname": "东华大学环境科学与工程实践工作站"
},
{
"wsid": "2545E8DD0391515715BB9606CD2A4624",
"hgrs": "5",
"whgrs": "0",
"hgl": "100",
"wsname": "上海理工大学环境科学与工程实践工作站"
},
{
"wsid": "0303E1C1338276A443AA78A99430B047",
"hgrs": "58",
"whgrs": "0",
"hgl": "100",
"wsname": "东华大学环境科学与工程实践工作站"
},
{
"wsid": "2545E8DD0391515715BB9606CD2A4624",
"hgrs": "5",
"whgrs": "0",
"hgl": "100",
"wsname": "上海理工大学环境科学与工程实践工作站"
},
{
"wsid": "0303E1C1338276A443AA78A99430B047",
"hgrs": "58",
"whgrs": "0",
"hgl": "100",
"wsname": "东华大学环境科学与工程实践工作站"
},
{
"wsid": "2545E8DD0391515715BB9606CD2A4624",
"hgrs": "5",
"whgrs": "0",
"hgl": "100",
"wsname": "上海理工大学环境科学与工程实践工作站"
},
]
}
/**
* 右侧优秀学生
* url:7、/dataengine-center-oneservice/list/1356391559833504443
*/
export const OutstandingStuDefault = {
"data": [
{
"scname": "上海市复旦大学附属中学青浦分校",
"ryear": "2022",
"sjname": "新型微藻富集功能的絮凝菌筛选与系统评价",
"stname": "张轲珩"
},
{
"scname": "上海市崇明中学",
"ryear": "2022",
"sjname": "药物的镇痛作用",
"stname": "张奕宸"
},
]
}
/**
* 右侧学生去向
* url:8、/dataengine-center-oneservice/list/1356392344899209927
*/
export const StuMovementDefault = {
"data": [
{
"rs2": "985",
"ryear": "2018",
"rs1": "523",
"rs3": "1398"
},
{
"rs2": "777",
"ryear": "2019",
"rs1": "374",
"rs3": "1284"
},
]
}
/**
* 中间热门学科排行
* url:9、/dataengine-center-oneservice/list/1356395644022344403
*/
export const HotSubjectRankingDefault = {
"data": [
{
"xh": "1",
"rs": "2184",
"soname": "化学"
},
{
"xh": "2",
"rs": "1960",
"soname": "生物学"
}
]
}
/**
* 中间热门区域排行
* url:10、/dataengine-center-oneservice/list/1356397508827728605
*/
export const HotRegionRankingDefault = {
"data": [
{
"xh": "1",
"cname": "浦东新区",
"rs": "4767"
},
{
"xh": "2",
"cname": "闵行区",
"rs": "2733"
}
]
}
/**
* 中间今年新增课题 饼图
* url:12、/dataengine-center-oneservice/list/1356412062796270323
*/
export const TopicDistributionDefault = {
"data": [
{
"ktsl": "195",
"percentage": "31",
"soname": "生物学"
},
{
"ktsl": "90",
"percentage": "14",
"soname": "物理"
},
]
}
/**
* 中间课题状态-课题情况 表格
* url:13、/dataengine-center-oneservice/list/1356412562565417725
*/
export const ProjectStatusDefault = {
"data": [
{
"sjname": "数学建模在实际生活中的应用",
"rs": "120",
"soname": "数学"
},
{
"sjname": "课题七:人工智能应用技术中的网络安全问题研究",
"rs": "34",
"soname": "计算机"
},
]
}
/**
* 中间热门课题 表格
* url:14、/dataengine-center-oneservice/list/1356412867767094023
*/
export const TopicsResourcesDefault = {
"data": [
{
"sjname": "基于压电材料在减速带收集能量的利用",
"wsname": "同济大学物理科学与工程实践工作站"
},
{
"sjname": "校园访花昆虫调查",
"wsname": "上海师范大学生物与环境实践工作站"
}
]
}
/**
* 地图区域坐标点
* url:无接口数据
*/
export const MapDataDefault = {
"黄埔区": {
"lng": "121.469240",
"lat": "31.229860"
},
"徐汇区": {
"lng": "121.437866",
"lat": "31.199190"
},
"长宁区": {
"lng": "121.424624",
"lat": "31.220367"
},
"静安区": {
"lng": "121.459384",
"lat": "31.247105"
},
"普陀区": {
"lng": "121.395555",
"lat": "31.249840"
},
"虹口区": {
"lng": "121.505133",
"lat": "31.264600"
},
"杨浦区": {
"lng": "121.526077",
"lat": "31.259541"
},
"闵行区": {
"lng": "121.381709",
"lat": "31.112813"
},
"宝山区": {
"lng": "121.489612",
"lat": "31.405457"
},
"嘉定区": {
"lng": "121.265300",
"lat": "31.375602"
},
"浦东新区": {
"lng": "121.544379",
"lat": "31.221517"
},
"金山区": {
"lng": "121.341970",
"lat": "30.741991"
},
"松江区": {
"lng": "121.227747",
"lat": "31.032243"
},
"青浦区": {
"lng": "121.124178",
"lat": "31.150681"
},
"奉贤区": {
"lng": "121.474042",
"lat": "30.917795"
},
"崇明区": {
"lng": "121.397417",
"lat": "31.623587"
}
};
/**
* 实践站中间地图
* url:11、/dataengine-center-oneservice/list/1356411001367874279
*/
export const WorkstationMapDefault = {
"data": [
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"wsaddressy": "31.2859",
"wsaddressx": "121.2142",
"wsname": "同济大学交通运输工程实践工作站"
},
{
"wsid": "015C671620A1D3F931631F479C89F060",
"wsaddressy": "31.2811",
"wsaddressx": "121.485",
"wsname": "中国科学院上海技术物理研究所电子科学与技术实践工作站"
},
]
}
/**
* 地图坐标数据
* url: 暂无接口数据
*/
// export const WorkstationMapDataDefault = {
// "黄埔区":{
// "lng": "121.469240",
// "lat": "31.229860",
// "workstation": [
// {
// "id": "workstation1",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation2",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation3",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "徐汇区":{
// "lng": "121.437866",
// "lat": "31.199190",
// "workstation": [
// {
// "id": "workstation4",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation5",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation6",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "长宁区":{
// "lng": "121.424624",
// "lat": "31.220367",
// "workstation": [
// {
// "id": "workstation7",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation8",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation9",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "静安区":{
// "lng": "121.459384",
// "lat": "31.247105",
// "workstation": [
// {
// "id": "workstation10",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation11",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation12",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "普陀区":{
// "lng": "121.395555",
// "lat": "31.249840",
// "workstation": [
// {
// "id": "workstation13",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation14",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation15",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "虹口区":{
// "lng": "121.505133",
// "lat": "31.264600",
// "workstation": [
// {
// "id": "workstation16",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation17",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation18",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "杨浦区":{
// "lng": "121.526077",
// "lat": "31.259541",
// "workstation": [
// {
// "id": "workstation19",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation20",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation21",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "闵行区":{
// "lng": "121.381709",
// "lat": "31.112813",
// "workstation": [
// {
// "id": "workstation22",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation23",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation24",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "宝山区":{
// "lng": "121.489612",
// "lat": "31.405457",
// "workstation": [
// {
// "id": "workstation25",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation26",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation27",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "嘉定区":{
// "lng": "121.265300",
// "lat": "31.375602",
// "workstation": [
// {
// "id": "workstation28",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation29",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation30",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "浦东新区":{
// "lng": "121.544379",
// "lat": "31.221517",
// "workstation": [
// {
// "id": "workstation31",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation32",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation33",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "金山区":{
// "lng": "121.341970",
// "lat": "30.741991",
// "workstation": [
// {
// "id": "workstation34",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation35",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation36",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "松江区":{
// "lng": "121.227747",
// "lat": "31.032243",
// "workstation": [
// {
// "id": "workstation37",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation38",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation39",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "青浦区":{
// "lng": "121.124178",
// "lat": "31.150681",
// "workstation": [
// {
// "id": "workstation40",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation41",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation42",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "奉贤区":{
// "lng": "121.474042",
// "lat": "30.917795",
// "workstation": [
// {
// "id": "workstation43",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "崇明区":{
// "lng": "121.397417",
// "lat": "31.623587",
// "workstation": [
// {
// "id": "workstation44",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// }
// };
/**
* 招生情况
* url: /dataengine-center-oneservice/list/1356231767216278142
* [{name:"zrs", quantity:0}, {name:"jnxss", quantity:0}]
*/
export const EnrollmentSituationDefault = {
"学生数量":"3621",
"今年招募":"256"
"学生数量":0,
"今年招募":0
};
/**
* 历年招募学员情况——推荐生
* url: 暂无接口数据
* url: /dataengine-center-oneservice/list/1356323092543490695
*/
export const RecommendedStuDefault = [
{
......@@ -227,381 +1154,388 @@ export const WorkstationMapBaseDataDefalt = {
* 地图坐标数据
* url: 暂无接口数据
*/
export const WorkstationMapDataDefault = {
"黄埔区":{
"lng": "121.469240",
"lat": "31.229860",
"workstation": [
{
"id": "workstation1",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation2",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation3",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"徐汇区":{
"lng": "121.437866",
"lat": "31.199190",
"workstation": [
{
"id": "workstation4",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation5",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation6",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"长宁区":{
"lng": "121.424624",
"lat": "31.220367",
"workstation": [
{
"id": "workstation7",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation8",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation9",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"静安区":{
"lng": "121.459384",
"lat": "31.247105",
"workstation": [
{
"id": "workstation10",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation11",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation12",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"普陀区":{
"lng": "121.395555",
"lat": "31.249840",
"workstation": [
{
"id": "workstation13",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation14",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation15",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"虹口区":{
"lng": "121.505133",
"lat": "31.264600",
"workstation": [
{
"id": "workstation16",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation17",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation18",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"杨浦区":{
"lng": "121.526077",
"lat": "31.259541",
"workstation": [
{
"id": "workstation19",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation20",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation21",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"闵行区":{
"lng": "121.381709",
"lat": "31.112813",
"workstation": [
{
"id": "workstation22",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation23",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation24",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"宝山区":{
"lng": "121.489612",
"lat": "31.405457",
"workstation": [
{
"id": "workstation25",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation26",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation27",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"嘉定区":{
"lng": "121.265300",
"lat": "31.375602",
"workstation": [
{
"id": "workstation28",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation29",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation30",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"浦东新区":{
"lng": "121.544379",
"lat": "31.221517",
"workstation": [
{
"id": "workstation31",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation32",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation33",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"金山区":{
"lng": "121.341970",
"lat": "30.741991",
"workstation": [
{
"id": "workstation34",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation35",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation36",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"松江区":{
"lng": "121.227747",
"lat": "31.032243",
"workstation": [
{
"id": "workstation37",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation38",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation39",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"青浦区":{
"lng": "121.124178",
"lat": "31.150681",
"workstation": [
{
"id": "workstation40",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation41",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
{
"id": "workstation42",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"奉贤区":{
"lng": "121.474042",
"lat": "30.917795",
"workstation": [
{
"id": "workstation43",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
},
"崇明区":{
"lng": "121.397417",
"lat": "31.623587",
"workstation": [
{
"id": "workstation44",
"name":"上海交通大学能源科技与未来城市实践工作站",
"lng": "121.469240",
"lat": "31.229860",
},
]
}
};
// export const WorkstationMapDataDefault = {
// "黄埔区":{
// "lng": "121.469240",
// "lat": "31.229860",
// "workstation": [
// {
// "id": "workstation1",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation2",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation3",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "徐汇区":{
// "lng": "121.437866",
// "lat": "31.199190",
// "workstation": [
// {
// "id": "workstation4",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation5",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation6",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "长宁区":{
// "lng": "121.424624",
// "lat": "31.220367",
// "workstation": [
// {
// "id": "workstation7",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation8",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation9",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "静安区":{
// "lng": "121.459384",
// "lat": "31.247105",
// "workstation": [
// {
// "id": "workstation10",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation11",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation12",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "普陀区":{
// "lng": "121.395555",
// "lat": "31.249840",
// "workstation": [
// {
// "id": "workstation13",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation14",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation15",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "虹口区":{
// "lng": "121.505133",
// "lat": "31.264600",
// "workstation": [
// {
// "id": "workstation16",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation17",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation18",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "杨浦区":{
// "lng": "121.526077",
// "lat": "31.259541",
// "workstation": [
// {
// "id": "workstation19",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation20",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation21",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "闵行区":{
// "lng": "121.381709",
// "lat": "31.112813",
// "workstation": [
// {
// "id": "workstation22",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation23",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation24",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "宝山区":{
// "lng": "121.489612",
// "lat": "31.405457",
// "workstation": [
// {
// "id": "workstation25",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation26",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation27",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "嘉定区":{
// "lng": "121.265300",
// "lat": "31.375602",
// "workstation": [
// {
// "id": "workstation28",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation29",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation30",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "浦东新区":{
// "lng": "121.544379",
// "lat": "31.221517",
// "workstation": [
// {
// "id": "workstation31",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation32",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation33",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "金山区":{
// "lng": "121.341970",
// "lat": "30.741991",
// "workstation": [
// {
// "id": "workstation34",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation35",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation36",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "松江区":{
// "lng": "121.227747",
// "lat": "31.032243",
// "workstation": [
// {
// "id": "workstation37",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation38",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation39",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "青浦区":{
// "lng": "121.124178",
// "lat": "31.150681",
// "workstation": [
// {
// "id": "workstation40",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation41",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// {
// "id": "workstation42",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "奉贤区":{
// "lng": "121.474042",
// "lat": "30.917795",
// "workstation": [
// {
// "id": "workstation43",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// },
// "崇明区":{
// "lng": "121.397417",
// "lat": "31.623587",
// "workstation": [
// {
// "id": "workstation44",
// "name":"上海交通大学能源科技与未来城市实践工作站",
// "lng": "121.469240",
// "lat": "31.229860",
// },
// ]
// }
// };
/**
* 热门课程排行
* url: 暂无接口数据
*/
export const HotTopicRankingDefault = {
"《第一课星系是如何形成的》": "数学",
"《农作物生长改良》": "生物",
"《新型能源的使用与输出》": "数学",
"《标点符号的使用以及普及》": "语文",
"《地球的自转与潮汐相关》": "天文"
};
// export const HotTopicRankingDefault = {
// "《第一课星系是如何形成的》": "数学",
// "《农作物生长改良》": "生物",
// "《新型能源的使用与输出》": "数学",
// "《标点符号的使用以及普及》": "语文",
// "《地球的自转与潮汐相关》": "天文"
// };
/**
......@@ -717,34 +1651,25 @@ export const HonoraryQualificationsSchoolDefault = [
* 优秀学生
* url: 暂无接口数据
*/
export const OutstandingStuDefault = [
{
"key": "时间",
"values": ["2023-04-06", "2023-05-11", "2023-06-09", "2023-06-23"]
},
{
"key": "学校",
"values": ["学校名称1", "学校名称2", "学校名称3", "学校名称4"]
},
{
"key": "姓名",
"values": ["学生姓名", "学生姓名", "学生姓名", "学生姓名"]
},
{
"key": "答辩论文",
"values": ["论文《第一课星系是如何形成的》", "论文《新型能源的使用与输出》", "论文《农作物生长改良》", "论文《地球的自转与潮汐相关》"]
}
]
// export const OutstandingStuDefault = [
// {
// "key": "时间",
// "values": ["2023-04-06", "2023-05-11", "2023-06-09", "2023-06-23"]
// },
// {
// "key": "学校",
// "values": ["学校名称1", "学校名称2", "学校名称3", "学校名称4"]
// },
// {
// "key": "姓名",
// "values": ["学生姓名", "学生姓名", "学生姓名", "学生姓名"]
// },
// {
// "key": "答辩论文",
// "values": ["论文《第一课星系是如何形成的》", "论文《新型能源的使用与输出》", "论文《农作物生长改良》", "论文《地球的自转与潮汐相关》"]
// }
// ]
/**
* 学生去向——合格率
* url: 暂无接口数据
*/
export const StuQualificationRateDefault = {
"学生合格率": "99%",
"学生合格数": "861"
};
/**
......
......@@ -2,182 +2,251 @@
* --------------------------实践工作站弹窗-----------------------------
*/
/**
* 基础数据
* url: 暂无接口数据
*/
export const baseDefault = {
"名称": "华东师范大学计算机与技术实践工作站",
"地址": "普陀区中山北路3663号",
"学科": "计算机",
"所辖实践点": ["华东理工大学附属闵行科技高级中学", "上海市建青实验学校", "上海交通大学附属中学浦东实验高中", "上海市复旦中学"]
};
/**
* 基础数据数量
* url: 暂无接口数据
* 基础数据整体数量
* url:/dataengine-center-oneservice/list/1356418464263621395
*/
export const baseNumDefault = {
"老师数量": "12",
"学生数量": "102",
"课题数量": "27"
};
export const BaseNumDefault = {
"data": [
{ "wsid": "假数据id", "name": "wssl", "quantity": "0" },
{ "wsid": "假数据id", "name": "sosl", "quantity": "0" },
{ "wsid": "假数据id", "name": "ktsl", "quantity": "0" },
{ "wsid": "假数据id", "name": "lnktsl", "quantity": "0" },
{ "wsid": "假数据id", "name": "zrs", "quantity": "0" },
{ "wsid": "假数据id", "name": "jnxss", "quantity": "0" },
{ "wsid": "假数据id", "name": "lssl", "quantity": "0" },
{ "wsid": "假数据id", "name": "zthgl", "quantity": "0" },
{ "wsid": "假数据id", "name": "xshgs", "quantity": "0" },
{ "wsid": "假数据id", "name": "kzzxss", "quantity": "0" },
{ "wsid": "假数据id", "name": "jtxss", "quantity": "0" },
]
// "data": [{"wsid":"00DA2922D8DAF202EEA96B45DEDA3BE7","name":"lssl","quantity":"48"},{"wsid":"00DA2922D8DAF202EEA96B45DEDA3BE7","name":"yxkrs","quantity":"99"},{"wsid":"015C671620A1D3F931631F479C89F060","name":"hgrs","quantity":"0"},{"wsid":"015C671620A1D3F931631F479C89F060","name":"whgrs","quantity":"0"},{"wsid":"015C671620A1D3F931631F479C89F060","name":"wxkrs","quantity":"1"},{"wsid":"015C671620A1D3F931631F479C89F060","name":"yxkrs","quantity":"119"},{"wsid":"0303E1C1338276A443AA78A99430B047","name":"ktsl","quantity":"10"},{"wsid":"0303E1C1338276A443AA78A99430B047","name":"lssl","quantity":"13"},{"wsid":"0303E1C1338276A443AA78A99430B047","name":"xssl","quantity":"120"},{"wsid":"0303E1C1338276A443AA78A99430B047","name":"yxkrs","quantity":"113"},{"wsid":"0791483E0764E6CC6584F9F4A0550915","name":"ktsl","quantity":"10"},{"wsid":"0791483E0764E6CC6584F9F4A0550915","name":"lssl","quantity":"8"},{"wsid":"0791483E0764E6CC6584F9F4A0550915","name":"wxkrs","quantity":"0"},{"wsid":"0791483E0764E6CC6584F9F4A0550915","name":"yxkrs","quantity":"120"},{"wsid":"0E555EB679281C9A2F90BC9F053B4C5E","name":"whgrs","quantity":"0"},{"wsid":"0E555EB679281C9A2F90BC9F053B4C5E","name":"wxkrs","quantity":"10"},{"wsid":"0F18350FDA26416A187C75D9B590D7E5","name":"hgrs","quantity":"0"},{"wsid":"0F18350FDA26416A187C75D9B590D7E5","name":"wxkrs","quantity":"0"},{"wsid":"0F18350FDA26416A187C75D9B590D7E5","name":"xssl","quantity":"120"},{"wsid":"0F18350FDA26416A187C75D9B590D7E5","name":"yxkrs","quantity":"120"},{"wsid":"12F75A65A61C4CCEEE9D396D967A474C","name":"ktsl","quantity":"10"},{"wsid":"1D1EAC79DA804C87167A32FAA0C5CAC9","name":"lssl","quantity":"12"},{"wsid":"1D1EAC79DA804C87167A32FAA0C5CAC9","name":"wxkrs","quantity":"1"},{"wsid":"1D1EAC79DA804C87167A32FAA0C5CAC9","name":"xssl","quantity":"120"},{"wsid":"245A8A9097D470943CA1162B8504C285","name":"lssl","quantity":"24"},{"wsid":"245A8A9097D470943CA1162B8504C285","name":"whgrs","quantity":"0"},{"wsid":"245A8A9097D470943CA1162B8504C285","name":"wxkrs","quantity":"5"},{"wsid":"245A8A9097D470943CA1162B8504C285","name":"xssl","quantity":"120"},{"wsid":"245A8A9097D470943CA1162B8504C285","name":"yxkrs","quantity":"115"},{"wsid":"2545E8DD0391515715BB9606CD2A4624","name":"ktsl","quantity":"33"},{"wsid":"2545E8DD0391515715BB9606CD2A4624","name":"whgrs","quantity":"0"},{"wsid":"2545E8DD0391515715BB9606CD2A4624","name":"wxkrs","quantity":"0"},{"wsid":"2545E8DD0391515715BB9606CD2A4624","name":"yxkrs","quantity":"120"},{"wsid":"2EF0757CF3EA1478850E0B3432F3427D","name":"ktsl","quantity":"11"},{"wsid":"2EF0757CF3EA1478850E0B3432F3427D","name":"whgrs","quantity":"0"},{"wsid":"2EF0757CF3EA1478850E0B3432F3427D","name":"wxkrs","quantity":"2"},{"wsid":"2EF0757CF3EA1478850E0B3432F3427D","name":"xssl","quantity":"120"},{"wsid":"2EF0757CF3EA1478850E0B3432F3427D","name":"yxkrs","quantity":"118"},{"wsid":"31639B010AC8448E9740C3D24FD34A8D","name":"whgrs","quantity":"0"},{"wsid":"31639B010AC8448E9740C3D24FD34A8D","name":"wxkrs","quantity":"6"},{"wsid":"31639B010AC8448E9740C3D24FD34A8D","name":"xssl","quantity":"120"},{"wsid":"383BE726032B77E9827223EC25690E2E","name":"ktsl","quantity":"10"},{"wsid":"383BE726032B77E9827223EC25690E2E","name":"lssl","quantity":"5"},{"wsid":"383BE726032B77E9827223EC25690E2E","name":"whgrs","quantity":"0"},{"wsid":"383BE726032B77E9827223EC25690E2E","name":"xssl","quantity":"120"},{"wsid":"3877F267FC51464D927F57587DAB1FFC","name":"hgrs","quantity":"0"},{"wsid":"3877F267FC51464D927F57587DAB1FFC","name":"ktsl","quantity":"10"},{"wsid":"3877F267FC51464D927F57587DAB1FFC","name":"xssl","quantity":"120"},{"wsid":"3877F267FC51464D927F57587DAB1FFC","name":"yxkrs","quantity":"115"},{"wsid":"3962723A7FBA90E9627A55D2C5E8BDED","name":"whgrs","quantity":"0"},{"wsid":"3962723A7FBA90E9627A55D2C5E8BDED","name":"wxkrs","quantity":"3"},{"wsid":"3962723A7FBA90E9627A55D2C5E8BDED","name":"yxkrs","quantity":"117"},{"wsid":"3B7FB9ADF476F4510ECCD6F7FB42385E","name":"hgrs","quantity":"14"},{"wsid":"3B7FB9ADF476F4510ECCD6F7FB42385E","name":"ktsl","quantity":"15"},{"wsid":"3B7FB9ADF476F4510ECCD6F7FB42385E","name":"wxkrs","quantity":"16"},{"wsid":"43C46BDC3E9B1C096180E6164EA85087","name":"hgrs","quantity":"0"},{"wsid":"43C46BDC3E9B1C096180E6164EA85087","name":"ktsl","quantity":"10"},{"wsid":"43C46BDC3E9B1C096180E6164EA85087","name":"wxkrs","quantity":"13"},{"wsid":"43C46BDC3E9B1C096180E6164EA85087","name":"xssl","quantity":"120"},{"wsid":"48262A20766F2E23991AB34602F00413","name":"hgrs","quantity":"0"},{"wsid":"48262A20766F2E23991AB34602F00413","name":"whgrs","quantity":"0"},{"wsid":"48262A20766F2E23991AB34602F00413","name":"wxkrs","quantity":"1"},{"wsid":"4F05CA0D5689DD53F5C83046222F9E3B","name":"lssl","quantity":"40"},{"wsid":"4F05CA0D5689DD53F5C83046222F9E3B","name":"whgrs","quantity":"0"},{"wsid":"4F05CA0D5689DD53F5C83046222F9E3B","name":"wxkrs","quantity":"5"},{"wsid":"4F05CA0D5689DD53F5C83046222F9E3B","name":"xssl","quantity":"120"},{"wsid":"4F05CA0D5689DD53F5C83046222F9E3B","name":"yxkrs","quantity":"115"},{"wsid":"51660BE5877799B9EA983DE1E7EDA8A5","name":"whgrs","quantity":"0"},{"wsid":"51660BE5877799B9EA983DE1E7EDA8A5","name":"wxkrs","quantity":"120"},{"wsid":"53B961A13005CDB0BB8DBDFAFA7079DD","name":"hgrs","quantity":"9"},{"wsid":"53B961A13005CDB0BB8DBDFAFA7079DD","name":"ktsl","quantity":"15"},{"wsid":"53B961A13005CDB0BB8DBDFAFA7079DD","name":"whgrs","quantity":"0"},{"wsid":"53B961A13005CDB0BB8DBDFAFA7079DD","name":"yxkrs","quantity":"103"},{"wsid":"67710F033BBEDE730E94A050ADBC04A0","name":"hgrs","quantity":"0"},{"wsid":"67710F033BBEDE730E94A050ADBC04A0","name":"lssl","quantity":"23"},{"wsid":"6CFC6CF4D718ED3306CE640418B78031","name":"ktsl","quantity":"8"},{"wsid":"6CFC6CF4D718ED3306CE640418B78031","name":"lssl","quantity":"13"},{"wsid":"6CFC6CF4D718ED3306CE640418B78031","name":"wxkrs","quantity":"0"},{"wsid":"6CFC6CF4D718ED3306CE640418B78031","name":"xssl","quantity":"120"},{"wsid":"72D5F4D210E205EB304B4844D06190C9","name":"lssl","quantity":"11"},{"wsid":"72D5F4D210E205EB304B4844D06190C9","name":"yxkrs","quantity":"106"},{"wsid":"79312B2D203F35A4BB3EF3D6A35D8E6D","name":"hgrs","quantity":"0"},{"wsid":"79312B2D203F35A4BB3EF3D6A35D8E6D","name":"ktsl","quantity":"10"},{"wsid":"79312B2D203F35A4BB3EF3D6A35D8E6D","name":"lssl","quantity":"16"},{"wsid":"79312B2D203F35A4BB3EF3D6A35D8E6D","name":"whgrs","quantity":"0"},{"wsid":"79312B2D203F35A4BB3EF3D6A35D8E6D","name":"xssl","quantity":"120"},{"wsid":"94F1400C1FD7214B627E4E37ECBA8C6D","name":"hgrs","quantity":"0"},{"wsid":"94F1400C1FD7214B627E4E37ECBA8C6D","name":"ktsl","quantity":"10"},{"wsid":"94F1400C1FD7214B627E4E37ECBA8C6D","name":"lssl","quantity":"18"},{"wsid":"94F1400C1FD7214B627E4E37ECBA8C6D","name":"whgrs","quantity":"0"},{"wsid":"94F1400C1FD7214B627E4E37ECBA8C6D","name":"xssl","quantity":"120"},{"wsid":"9BF6030100104779D8CA3045997885A4","name":"hgrs","quantity":"0"},{"wsid":"9BF6030100104779D8CA3045997885A4","name":"whgrs","quantity":"0"},{"wsid":"9BF6030100104779D8CA3045997885A4","name":"wxkrs","quantity":"6"},{"wsid":"A83196D262D236A013419C9D9AD08955","name":"hgrs","quantity":"0"},{"wsid":"A83196D262D236A013419C9D9AD08955","name":"lssl","quantity":"36"},{"wsid":"A83196D262D236A013419C9D9AD08955","name":"whgrs","quantity":"0"},{"wsid":"A83196D262D236A013419C9D9AD08955","name":"wxkrs","quantity":"40"},{"wsid":"B1882C3B9C2049D349FFF58AF9B86556","name":"lssl","quantity":"63"},{"wsid":"B1882C3B9C2049D349FFF58AF9B86556","name":"whgrs","quantity":"0"}]
}
/**
* 当日考勤分析
* url: 暂无接口数据
* 左侧基础数据-实践站介绍
* url:/dataengine-center-oneservice/list/1356487076170091294
*/
export const DailyAttendanceAnalysisDefault = {
"应到人数": "1253",
"实到人数": "1241",
"缺勤人数": "12"
};
export const BaseDefault = {
"data": [
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"plname": "上海市徐汇中学,上海市控江中学,上海市曹杨第二中学,上海晋元高级中学",
"soname": "工程(机械)",
"wsaddress": "上海市曹安公路4800号",
"wsname": "同济大学交通运输工程实践工作站"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"plname": "上海市徐汇中学,上海市控江中学,上海市曹杨第二中学,上海晋元高级中学",
"soname": "工程(机械)",
"wsaddress": "上海市曹安公路4800号",
"wsname": "同济大学交通运输工程实践工作站"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"plname": "上海市徐汇中学,上海市控江中学,上海市曹杨第二中学,上海晋元高级中学",
"soname": "工程(机械)",
"wsaddress": "上海市松江区龙腾路333号",
"wsname": "上海工程技术大学交通运输工程实践工作站"
}
]
}
/**
* 出勤率
* url: 暂无接口数据
* 中间市级课题研究进度
* url:/dataengine-center-oneservice/list/1356487662953220909
*/
export const AttendanceDefault = {
"出勤率": "97.53%"
};
export const CityResearchDefault = {
"data": [
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ktrs": "0",
"zqrs": "0",
"jtrs": "104"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ktrs": "0",
"zqrs": "0",
"jtrs": "104"
}
]
}
/**
* 缺勤原因分析
* url: 暂无接口数据
* 中间各学科学生得分
* url:/dataengine-center-oneservice/list/1356487951468907322
*/
export const ReasonForAbsenceDefault = {
"病假": "2",
"事假": "5",
"调休": "7",
"其他": "3"
};
export const SubjectStuScoreDefault = {
"data": [
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "80",
"stname": "冯**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "82",
"stname": "张**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "80",
"stname": "冯**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "82",
"stname": "胡**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "80",
"stname": "张**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "82",
"stname": "张**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "80",
"stname": "冯**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "82",
"stname": "吴**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "80",
"stname": "王**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "环境",
"wgtotal": "82",
"stname": "陈**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "天文学",
"wgtotal": "80",
"stname": "刘**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "天文学",
"wgtotal": "82",
"stname": "宋**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "天文学",
"wgtotal": "80",
"stname": "黄**"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"soname": "天文学",
"wgtotal": "82",
"stname": "李**"
},
]
}
/**
* 学习方式分析
* url: 暂无接口数据
* 右侧本期学生合格分析-退出原因分析
* url:/dataengine-center-oneservice/list/1356499488455707463
*/
export const LearningStyleAnalysisDefault = {
"问卷调查法": "80",
"访谈": "37",
"个案研究": "67",
"实验法": "71",
"观察法": "80"
};
export const QuitReasonDefault = {
"data": [
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"otsl": "1",
"otreason": "学业冲突,平时学习太紧张与工作站学习不能兼顾"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"otsl": "20",
"otreason": "学业冲突"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"otsl": "17",
"otreason": "学业冲突"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"otsl": "13",
"otreason": "学业冲突"
}
]
}
/**
* 学生选课进度
* url: 暂无接口数据
* 右侧研究课题
* url:/dataengine-center-oneservice/list/1356499780060498770
*/
export const StuCourseScheduleDefault = {
"未选课程学生数": "24人",
"已选课程学生数": "1217人"
};
/**
* 老师评分排名
* 评分:从高到低排序
* url: 暂无接口数据
*/
export const TeacherRatingRankingDefault = {
"李老师": "98",
"张老师": "92",
"黄老师": "89",
"宋老师": "84",
"刘老师": "79"
};
/**
* 本期学生合格分析
* url: 暂无接口数据
*/
export const StuQualifiedAnalysisDefault = {
"合格人数": "258",
"实际合格人数": "224",
"未合格人数": "34"
};
/**
* 退出原因分析
* url: 暂无接口数据
*/
export const ReasonForExitDefault = [
{
key: "原因1",
value: "124"
},
{
key: "原因2",
value: "103"
},
{
key: "原因3",
value: "171"
},
{
key: "原因4",
value: "119"
},
{
key: "原因5",
value: "92"
},
{
key: "原因6",
value: "135"
}
];
/**
* 学生课题研究进度
* url: 暂无接口数据
*/
export const StuTopicResearchProgressDefault = {
"李老师": "98",
"张老师": "92",
"黄老师": "89",
"宋老师": "84",
"刘老师": "79"
};
/**
* 学生市级课题研究进度
* url: 暂无接口数据
*/
export const StuMunicipalTopicResearchProgressDefault = {
"李老师": "98",
"张老师": "92",
"黄老师": "89",
"宋老师": "84",
"刘老师": "79"
};
/**
* 工作站成果
* url: 暂无接口数据
*/
export const WorkstationAchievementsDefault = [
{
"key": "名称",
"values": ["关于计算机与人工智能的联系研究", "计算机在生活和科研中的应用", "计算机的二进制", "通过计算机看世界"]
},
{
"key": "时间",
"values": ["2023-06-26", "2023-06-26", "2023-06-27", "2023-06-28"]
}
]
export const ResearchSubjectDefault = {
"data": [
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "3",
"sjname": "上海地区人群昆虫食用习惯调查及昆虫蛋白食品制作研究"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "3",
"sjname": "新型微藻富集功能的絮凝菌筛选与系统评价"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "7",
"sjname": "药物的镇痛作用"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "9",
"sjname": "半导体热电材料制备"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "3",
"sjname": "数学建模在实际生活中的应用"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "3",
"sjname": "寻找具有美白功效的天然植物多糖"
},
{
"wsid": "00DA2922D8DAF202EEA96B45DEDA3BE7",
"ryear": "2023",
"jtrs": "6",
"sjname": "大蒜提取液对于延缓橘子腐败的作用研究"
},
]
}
......
......@@ -119,10 +119,16 @@ export async function getUV() {
export async function getBaiduSiteList() {
let url = "https://api.baidu.com/json/tongji/v1/ReportService/getSiteList";
// let header = {
// "username": "shkyzx",
// "password": "Support01",
// "token": "2444afaabacc40a0819a15815d7ec10f",
// "account_type": 1
// };
let header = {
"username": "shkyzx",
"password": "Support01",
"token": "2444afaabacc40a0819a15815d7ec10f",
"userName": "shkyzx",
"accessToken": "eyJhbGciOiJIUzM4NCJ9.eyJzdWIiOiJhY2MiLCJhdWQiOiLnmb7luqbnu5_orqEiLCJ1aWQiOjM1OTI5MTE2LCJhcHBJZCI6IjEzYmQ1MDQ5YTY3NmQxMDczNzk1OTkzMjEwMmVjNTU3IiwiaXNzIjoi5ZWG5Lia5byA5Y-R6ICF5Lit5b-DIiwicGxhdGZvcm1JZCI6IjQ5NjAzNDU5NjU5NTg1NjE3OTQiLCJleHAiOjE3MDE0MTE2ODgsImp0aSI6IjgwNDIxODIxOTEzODUxOTA0MjYifQ.fJLIxDxYxTiAwbxSDnDRnYsZckxYJSa__jBtCrbc_aSWRt6sKx70SeOidQeIpFI7",
"account_type": 1
};
let body = {}
......@@ -134,12 +140,19 @@ export async function getBaiduSiteList() {
export async function getPVCountBySiteId(siteId) {
let url = "https://api.baidu.com/json/tongji/v1/ReportService/getData";
// let header = {
// "username": "shkyzx",
// "password": "Support01",
// "token": "2444afaabacc40a0819a15815d7ec10f",
// "account_type": 1
// };
let header = {
"username": "shkyzx",
"password": "Support01",
"token": "2444afaabacc40a0819a15815d7ec10f",
"account_type": 1
};
"userName": "shkyzx",
"accessToken": "eyJhbGciOiJIUzM4NCJ9.eyJzdWIiOiJhY2MiLCJhdWQiOiLnmb7luqbnu5_orqEiLCJ1aWQiOjM1OTI5MTE2LCJhcHBJZCI6IjEzYmQ1MDQ5YTY3NmQxMDczNzk1OTkzMjEwMmVjNTU3IiwiaXNzIjoi5ZWG5Lia5byA5Y-R6ICF5Lit5b-DIiwicGxhdGZvcm1JZCI6IjQ5NjAzNDU5NjU5NTg1NjE3OTQiLCJleHAiOjE3MDE0MTE2ODgsImp0aSI6IjgwNDIxODIxOTEzODUxOTA0MjYifQ.fJLIxDxYxTiAwbxSDnDRnYsZckxYJSa__jBtCrbc_aSWRt6sKx70SeOidQeIpFI7",
"account_type": 1
};
let body = {
"site_id": `${siteId}`,
"start_date": moment().format("YYYYMMDD"),
......
......@@ -135,6 +135,7 @@ export function post(url, requestData, headers) {
})
res.on('error', (err)=> {
console.log(JSON.stringify(err));
reject(err);
})
});
......@@ -143,8 +144,6 @@ export function post(url, requestData, headers) {
req.end();
})
}
......
......@@ -5,18 +5,18 @@ import { getBaiduSiteList, getBaiduStats, getPVCountBySiteId, getUV } from "./ba
const bdyAndAlyConfig = {
"科创实践工作站": {alyName:"正汇实践工作站", alyUrl:"secsa.shec.edu.cn/kc/", baiduUrl:"" },
"青少年科学研究院": {alyName:"正汇青少年研究院", alyUrl:"secsa.shec.edu.cn/qsnkxyjy/", baiduUrl:"" },
"青少年科学研究院": {alyName:"正汇青少年研究院", alyUrl:"secsa.shec.edu.cn/qsnkxyjy/", baiduUrl:"" },
"体育日常成绩": {alyName:"正汇日常体育成绩", alyUrl:"secsa.shec.edu.cn/tyjs/", baiduUrl:"" },
"学生体育网": {alyName:"正汇学生体育网", alyUrl:"secsa.shec.edu.cn/xstyw/", baiduUrl:"" },
"综评": {alyName:"正汇综评系统", alyUrl:"shsunshine-zp.shec.edu.cn/shjw/", baiduUrl:"shsunshine-zp.shec.edu.cn/shjw" },
"上海市学生体育艺术科技教育活动": {alyName:"玑脉大平台", alyUrl:"shsunshine-zp.shec.edu.cn/", baiduUrl:"shsunshine-zp.shec.edu.cn" },
"因病缺课缺勤网络直报系统": {alyName:"玑脉直报系统", alyUrl:"shxxybqq.shec.edu.cn/", baiduUrl:"shxxybqq.shec.edu.cn" },
"上海市学生体育艺术科技教育活动": {alyName:"玑脉大平台", alyUrl:"shsunshine-zp.shec.edu.cn/", baiduUrl:"shsunshine-zp.shec.edu.cn" },
// "因病缺课缺勤网络直报系统": {alyName:"玑脉直报系统", alyUrl:"shxxybqq.shec.edu.cn/", baiduUrl:"shxxybqq.shec.edu.cn" },
"OA办事管理系统":{baiduUrl:'secsagl.shec.edu.cn'},
"教软子系统":{baiduUrl:'shsunshine1-zp.shec.edu.cn'},
"精英足球训练营":{baiduUrl:''},
"明日科技之星":{baiduUrl:''},
"学生活动网及教软负责子系统":{baiduUrl:''},
"\"申生康\"上海校园防疫通系统":{alyName:"教软-申生康", alyUrl:"i-ssk.shec.edu.cn", baiduUrl:'i-ssk.shec.edu.cn'}
"\"申生康\"上海校园防疫通系统":{alyName:"教软-申生康", alyUrl:"i-ssk.shec.edu.cn/", baiduUrl:'i-ssk.shec.edu.cn'}
};
export let statsQueue = {};
......
......@@ -3,49 +3,17 @@
*/
import { getSecondPhaseUrl, healthEnum, healthTokenEnum } from "../url";
import { getHealthParameter, getSecondPhaseUrl, healthEnum, healthTokenEnum } from "../url";
import * as defaultConf from "../../../config/healthConfig"
import moment = require("moment");
import { post } from "../cronJob";
const md5 = require("md5");
function getParameter(apiId, token) {
const body = {
apiId,
appKey:200000085,
pageNum:1, //分页页数
pageSize:100, //每页大小
execType:2, //固定值
conditions:{}, //where查询条件
returnFields: [],
reqProtocol: "1"
};
// let token = "df399738-1572-4c45-bdf3-c2d2c428fa62";
// const token = "9c5e468b-eca1-48a8-a1fa-5215db2c3cc5";
const sign = md5(`apiId=${apiId}&appKey=200000085&token=${token}`);
const headers = {
apiId,
appKey:'200000085',
account:'yujc',
exexType:'3',
env:'PROD',
sign,
'Content-Type': 'application/json',
'accept': 'application/json; charset=utf-8',
}
return {body, headers};
}
export async function getStuData() {
let {body, headers} = getParameter(healthEnum.学生数班级数, healthTokenEnum.学生数班级数);
let {body, headers} = getHealthParameter(healthEnum.学生数班级数, healthTokenEnum.学生数班级数);
let stuDataSourceData:any = await post(getSecondPhaseUrl(healthEnum.学生数班级数), body, headers);
// let stuDataSourceData:any = await getInterfaceByInterfaceName("学生数班级数", body, headers);
console.log("studata======>" + JSON.stringify(stuDataSourceData));
let stuDataSource:any = stuDataSourceData || defaultConf.StuDataDefault;
let stuData = {};
stuDataSource["data"].forEach( item => {
......@@ -63,7 +31,7 @@ export async function getStuData() {
export async function getDayStuData() {
//日 昨天15点到今天15点
let {body, headers} = getParameter(healthEnum.不同年级上报学生数按日, healthTokenEnum.不同年级上报学生数按日);
let {body, headers} = getHealthParameter(healthEnum.不同年级上报学生数按日, healthTokenEnum.不同年级上报学生数按日);
let dayStuDataSourceData:any = await post(getSecondPhaseUrl(healthEnum.不同年级上报学生数按日), body, headers);
......@@ -82,7 +50,7 @@ export async function getDayStuData() {
export async function getMonthStuData() {
//月 近一个月数据
let {body, headers} = getParameter(healthEnum.不同年级上报学生数按月, healthTokenEnum.不同年级上报学生数按月);
let {body, headers} = getHealthParameter(healthEnum.不同年级上报学生数按月, healthTokenEnum.不同年级上报学生数按月);
let monthStuDataSourceData:any = await post(getSecondPhaseUrl(healthEnum.不同年级上报学生数按月), body, headers);
// let monthStuDataSourceData = await getInterfaceByInterfaceName("不同年级上报学生数按月", body, headers);
......@@ -102,7 +70,7 @@ export async function getDifferentSchoolStuNum() {
//接口参数:xxlx:"九年一贯制"
let differentSchoolType = ["幼儿园","托育机构","早教中心","托儿所","小学","初级中学","高级中学","中职校","完中","九年一贯制","十年一贯制","十二年一贯制","其他"];
let {body, headers} = getParameter(healthEnum.不同学校上报学生数, healthTokenEnum.不同学校上报学生数);
let {body, headers} = getHealthParameter(healthEnum.不同学校上报学生数, healthTokenEnum.不同学校上报学生数);
// body["apiId"] = healthEnum.不同学校上报学生数;
let differentSchoolStuNum = {};
for(let type = 0; type < differentSchoolType.length; type++) {
......@@ -121,10 +89,12 @@ export async function getDifferentSchoolStuNum() {
export async function getDefferentSymptomsTypeList() {
//接口参数:name:"发热"
let {body, headers} = getParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数);
let {body, headers} = getHealthParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数);
//各类症状预警值
let earlyWarningNumSourceData:any = await post(getSecondPhaseUrl(healthEnum.各类症状预警值), getParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数).body, getParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数).headers);
let earlyWarningNumSourceData:any = await post(getSecondPhaseUrl(healthEnum.各类症状预警值),
getHealthParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数).body,
getHealthParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数).headers);
// let earlyWarningNumSourceData = await getInterfaceByInterfaceName("各类症状预警值", getParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数).body, getParameter(healthEnum.不同症状上报学生数, healthTokenEnum.不同症状上报学生数).headers);
let earlyWarningNumSource:any = earlyWarningNumSourceData || defaultConf.SymptomWarningValueDefault;
......@@ -154,7 +124,7 @@ export async function getDefferentSymptomsTypeList() {
export async function getDifferentDistrictStuNum() {
let {body, headers} = getParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数);
let {body, headers} = getHealthParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数);
let differentDistrictStuNumSourceData:any = await post(getSecondPhaseUrl(healthEnum.不同行政区上报学生数), body, headers)
// let differentDistrictStuNumSourceData = await getInterfaceByInterfaceName("不同行政区上报学生数", body, headers);
......@@ -171,7 +141,7 @@ export async function getDifferentDistrictStuNum() {
export async function getDataStatistics() {
let {body, headers} = getParameter(healthEnum.数据统计, healthTokenEnum.数据统计);
let {body, headers} = getHealthParameter(healthEnum.数据统计, healthTokenEnum.数据统计);
let dataStatisticsSourceData:any = await post(getSecondPhaseUrl(healthEnum.数据统计), body, headers);
// let dataStatisticsSourceData = await getInterfaceByInterfaceName("数据统计", body, headers);
......@@ -185,7 +155,7 @@ export async function getDataStatistics() {
export async function getDeadline() {
let {body, headers} = getParameter(healthEnum.更新时间, healthTokenEnum.更新时间);
let {body, headers} = getHealthParameter(healthEnum.更新时间, healthTokenEnum.更新时间);
let deadlineSourceData:any = await post(getSecondPhaseUrl(healthEnum.更新时间), body, headers);
// let deadlineSourceData = await getInterfaceByInterfaceName("更新时间", body, headers);
......@@ -199,7 +169,7 @@ export async function getDeadline() {
export async function getTodayReportList() {
let {body, headers} = getParameter(healthEnum.今日上报列表, healthTokenEnum.今日上报列表);
let {body, headers} = getHealthParameter(healthEnum.今日上报列表, healthTokenEnum.今日上报列表);
let todayReportListSourceData:any = await post(getSecondPhaseUrl(healthEnum.今日上报列表), body, headers);
// let todayReportListSourceData = await getInterfaceByInterfaceName("今日上报列表", body, headers);
......@@ -235,7 +205,7 @@ export async function getTodayReportList() {
export async function getMapDistrictServiceData() {
let {body, headers} = getParameter(healthEnum.不同学校上报情况信息中间地图, healthTokenEnum.不同学校上报情况信息中间地图);
let {body, headers} = getHealthParameter(healthEnum.不同学校上报情况信息中间地图, healthTokenEnum.不同学校上报情况信息中间地图);
let mapDistrictListSource:any = defaultConf.MapDistrictDataDefault;
let mapDistrictServiceData = [];
......@@ -248,7 +218,9 @@ export async function getMapDistrictServiceData() {
// let mapSchoolListSourceData:any = await getInterfaceByInterfaceName("不同学校上报情况信息中间地图", body, headers);
let mapSchoolListSource:any = mapSchoolListSourceData || defaultConf.MapSchoolDataDefault;
let differentDistrictStuNumSourceData:any = await post(getSecondPhaseUrl(healthEnum.不同行政区上报学生数), getParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数).body, getParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数).headers);
let differentDistrictStuNumSourceData:any = await post(getSecondPhaseUrl(healthEnum.不同行政区上报学生数),
getHealthParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数).body,
getHealthParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数).headers);
// let differentDistrictStuNumSourceData:any = await getInterfaceByInterfaceName("不同行政区上报学生数", getParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数).body, getParameter(healthEnum.不同行政区上报学生数, healthTokenEnum.不同行政区上报学生数).headers);
let differentDistrictStuNumSource:any = differentDistrictStuNumSourceData || defaultConf.DifferentDistrictStuNumDefault;
......@@ -268,7 +240,7 @@ export async function getMapDistrictServiceData() {
export async function getHighIncidenceData() {
let {body, headers} = getParameter(healthEnum.按时间段上报人数统计, healthTokenEnum.按时间段上报人数统计);
let {body, headers} = getHealthParameter(healthEnum.按时间段上报人数统计, healthTokenEnum.按时间段上报人数统计);
let day = moment(new Date()).format("YYYY-MM-DD");
body["conditions"] = {"rq": day};
......@@ -290,7 +262,7 @@ export async function getHighIncidenceData() {
export async function getSymptomRanking() {
let {body, headers} = getParameter(healthEnum.按原因人数统计, healthTokenEnum.按原因人数统计);
let {body, headers} = getHealthParameter(healthEnum.按原因人数统计, healthTokenEnum.按原因人数统计);
let symptomTypesSourceData:any = await post(getSecondPhaseUrl(healthEnum.按原因人数统计), body, headers);
// let symptomTypesSourceData = await getInterfaceByInterfaceName("按原因人数统计", body, headers);
......@@ -316,7 +288,7 @@ export async function getSymptomRanking() {
export async function getNotice() {
let {body, headers} = getParameter(healthEnum.自定义公告, healthTokenEnum.自定义公告);
let {body, headers} = getHealthParameter(healthEnum.自定义公告, healthTokenEnum.自定义公告);
let noticeSourceData:any = await post(getSecondPhaseUrl(healthEnum.自定义公告), body, headers);
// let noticeSourceData = await getInterfaceByInterfaceName("自定义公告", body, headers);
......@@ -329,7 +301,7 @@ export async function getNotice() {
export async function getHealthRate() {
let {body, headers} = getParameter(healthEnum.健康率, healthTokenEnum.健康率);
let {body, headers} = getHealthParameter(healthEnum.健康率, healthTokenEnum.健康率);
let healthRateSourceData:any = await post(getSecondPhaseUrl(healthEnum.健康率), body, headers);
// let healthRateSourceData = await getInterfaceByInterfaceName("健康率", body, headers);
......@@ -368,7 +340,7 @@ export async function getHealthRate() {
export async function getHistoricalHealthData() {
let {body, headers} = getParameter(healthEnum.按月统计上报人数, healthTokenEnum.按月统计上报人数);
let {body, headers} = getHealthParameter(healthEnum.按月统计上报人数, healthTokenEnum.按月统计上报人数);
let healthRateType = ["幼儿园","托育机构","早教中心","托儿所","小学","初级中学","高级中学","中职校","完中","九年一贯制","十年一贯制","十二年一贯制","其他"];
......
/**
* 青少年科技创新实践工作站
*/
import { getParameter, getWorkstationUrl, workstationEnum, workstationTokenEnum } from "../url";
import * as defaultConf from "../../../config/workstationConfig"
import moment = require("moment");
import { post } from "../cronJob";
import { getUrl, workstationEnum } from "../url";
export async function getEnrollmentData() {
let {body, headers} = getParameter(workstationEnum.首页整体情况, workstationTokenEnum.首页整体情况);
let homePageData:any = await post(getWorkstationUrl(workstationEnum.首页整体情况), body, headers);
let stuDataSource:any = homePageData || defaultConf.HomePageDefault;
// let stuDataSource:any = defaultConf.HomePageDefault;
let enrollmentSituationBaseConf = {zrs:"学生数量", jnxss:"今年招募数"};
let enrollmentSituationBase = getBaseData(stuDataSource, enrollmentSituationBaseConf); //招生情况
//上海市青少年科学创新实践工作站
export function getWorkstationData() {
let body = {};
// let zsqk = await post(getUrl(healthEnum.招生情况), body, {});
let 招生情况 = [{mc:"学生数量", sl:"6214"},{mc:"bjs", sl:"3671"}]
let passRateConf = {zthgl:"合格率"};
let passRate = getBaseData(stuDataSource, passRateConf); //学生合格情况-合格率
return {招生情况};
}
\ No newline at end of file
let workstationMapBaseConf = {wssl:"工作站数量", sosl:"科创学科", ktsl:"课题数", ybkzyppd:"与报考专业匹配度", zthgl:"合格率"};
let workstationMapBase = getBaseData(stuDataSource, workstationMapBaseConf); //中间地图基础数据
workstationMapBase["与报考专业匹配度"] = "25.5%";
let stuQualificationRateConf = {zthgl:"学生合格率", xshgs:"学生合格数"};
let stuQualificationRate = getBaseData(stuDataSource, stuQualificationRateConf); //右侧学生去向-学生合格率、学生合格数
let topicsNumConf = {ktsl:"课题数量", lnktsl:"历年课题数量"};
let topicsNum = getBaseData(stuDataSource, topicsNumConf); //中间课题情况-今年新增课题
let topicsStatusConf = {kzzxss:"开展中学生数", jtxss:"结题学生数"};
let topicsStatus = getBaseData(stuDataSource, topicsStatusConf); //中间课题情况-课题状态
console.log(stuDataSource);
return {enrollmentSituationBase, passRate, workstationMapBase, stuQualificationRate, topicsNum, topicsStatus};
}
//------------------------------左侧----------------------------------
export async function getRecommendedStuData() {
let {body, headers} = getParameter(workstationEnum.左侧招生情况, workstationTokenEnum.左侧招生情况);
let recommendedStuData:any = await post(getWorkstationUrl(workstationEnum.左侧招生情况), body, headers);
let recommendedStuSource:any = recommendedStuData || defaultConf.RecruitDefault;
// let recommendedStuSource = defaultConf.RecruitDefault;
let recommendedStu = []; //推荐生
let selfRecommendationStu = []; //自荐生
recommendedStuSource["data"].forEach( item => {
let {ryear, tjsl, zjsl} = item;
recommendedStu.push({key:ryear, value:tjsl});
selfRecommendationStu.push({key:ryear, value:zjsl});
})
return {recommendedStu, selfRecommendationStu};
}
export async function getSourceDistributionData() {
let {body, headers} = getParameter(workstationEnum.左侧学生所属区县, workstationTokenEnum.左侧学生所属区县);
let sourceDistributionData:any = await post(getWorkstationUrl(workstationEnum.左侧学生所属区县), body, headers);
let sourceDistributionSource:any = sourceDistributionData || defaultConf.SourceDistributionDefault;
// let sourceDistributionSource = defaultConf.SourceDistributionDefault;
let sourceDistribution = [];
sourceDistributionSource["data"].forEach( item => {
let {cname, sl} = item;
sourceDistribution.push({key:cname, value:sl});
})
return sourceDistribution;
}
export async function getExitReasonData() {
let {body, headers} = getParameter(workstationEnum.左侧学生合格情况, workstationTokenEnum.左侧学生合格情况);
let exitReasonData:any = await post(getWorkstationUrl(workstationEnum.左侧学生合格情况), body, headers);
let exitReasonSource:any = exitReasonData || defaultConf.ExitReasonDefault;
// let exitReasonSource = defaultConf.ExitReasonDefault;
let exitReason = {};
exitReasonSource["data"].forEach( item => {
let {otsl, otreason} = item;
exitReason[otreason] = otsl;
})
return exitReason;
}
export async function getSubjectTeacherData() {
let {body, headers} = getParameter(workstationEnum.左侧学科老师分布, workstationTokenEnum.左侧学科老师分布);
let subjectTeacherData:any = await post(getWorkstationUrl(workstationEnum.左侧学科老师分布), body, headers);
let subjectTeacherSource:any = subjectTeacherData || defaultConf.SubjectTeacherDefault;
// let subjectTeacherSource = defaultConf.SubjectTeacherDefault;
let subjectTeacher = {};
let irslCount = 0;
subjectTeacherSource["data"].forEach( item => {
let {soname, irsl, percentage} = item;
subjectTeacher[soname] = percentage;
irslCount += parseInt(irsl);
})
return {irslCount, subjectTeacher};
}
export async function getAddWorkstation() {
let {body, headers} = getParameter(workstationEnum.左侧工作站历年数量, workstationTokenEnum.左侧工作站历年数量);
let addWorkstationData:any = await post(getWorkstationUrl(workstationEnum.左侧工作站历年数量), body, headers);
let addWorkstationSource:any = addWorkstationData || defaultConf.AddWorkstationDefault;
// let addWorkstationSource = defaultConf.AddWorkstationDefault;
let addWorkstation = [];
addWorkstationSource["data"].forEach( item => {
let {ryear, sl} = item;
addWorkstation.push({key:ryear, value:parseInt(sl)});
})
addWorkstation.sort((a, b) => {
return b.key - a.key;
});
let addWorkstationTop = addWorkstation;
if(addWorkstation.length > 10) addWorkstationTop = addWorkstation.slice(0, 10);
let count = 0;
addWorkstationTop.forEach( item => {
let {key, value} = item;
count += value;
})
addWorkstationTop.forEach( item => {
let {key, value} = item;
item.value = Math.round(((value / count) *100)*100)/100;
})
return addWorkstationTop;
}
export async function getWorkstationType() {
let {body, headers} = getParameter(workstationEnum.左侧工作站学科分布情况, workstationTokenEnum.左侧工作站学科分布情况);
let workstationTypeData:any = await post(getWorkstationUrl(workstationEnum.左侧工作站学科分布情况), body, headers);
let workstationTypeSource:any = workstationTypeData || defaultConf.WorkstationTypeDefault;
// let workstationTypeSource = defaultConf.WorkstationTypeDefault;
let workstationType = [];
workstationTypeSource["data"].forEach( item => {
let {soname, wssl, percentage} = item;
workstationType.push({key:soname, value:percentage});
})
return workstationType;
}
//---------------------------------右侧----------------------------
export async function getWorkstationStuRate() {
let {body, headers} = getParameter(workstationEnum.右侧各工作站学生合格率, workstationTokenEnum.右侧各工作站学生合格率);
let workstationStuRateData:any = await post(getWorkstationUrl(workstationEnum.右侧各工作站学生合格率), body, headers);
let workstationStuRateSource:any = workstationStuRateData || defaultConf.WorkstationStuRateDefault;
// let workstationStuRateSource = defaultConf.WorkstationStuRateDefault;
return workstationStuRateSource["data"];
}
export async function getOutstandingStu() {
let {body, headers} = getParameter(workstationEnum.右侧优秀学生, workstationTokenEnum.右侧优秀学生);
let outstandingStuData:any = await post(getWorkstationUrl(workstationEnum.右侧优秀学生), body, headers);
let outstandingStuSource:any = outstandingStuData || defaultConf.OutstandingStuDefault;
// let outstandingStuSource = defaultConf.OutstandingStuDefault;
let outstandingStu = [
{key:"时间", values:[]},
{key:"学校", values:[]},
{key:"姓名", values:[]},
{key:"研究课题", values:[]}
];
outstandingStuSource["data"].forEach( item => {
let {scname, ryear, sjname, stname} = item;
outstandingStu[0].values.push(ryear);
outstandingStu[1].values.push(scname);
outstandingStu[2].values.push(stname);
outstandingStu[3].values.push(sjname);
})
return outstandingStu;
}
export async function getStuQualificationRate() {
let {body, headers} = getParameter(workstationEnum.右侧学生去向, workstationTokenEnum.右侧学生去向);
let stuQualificationRateData:any = await post(getWorkstationUrl(workstationEnum.右侧学生去向), body, headers);
let stuQualificationRateSource:any = stuQualificationRateData || defaultConf.StuMovementDefault;
// let stuQualificationRateSource = defaultConf.StuMovementDefault;
let peopleNum985 = [];
let peopleNum211 = [];
let peopleNumOther = [];
stuQualificationRateSource["data"].forEach( item => {
let {ryear, rs1, rs2, rs3} = item;
peopleNum985.push({key:ryear, value:rs1});
peopleNum211.push({key:ryear, value:rs2});
peopleNumOther.push({key:ryear, value:rs3});
})
return {peopleNum985, peopleNum211, peopleNumOther};
}
//------------------------------中间------------------------------
export async function getHotSubjectRanking() {
let {body, headers} = getParameter(workstationEnum.中间热门排行按学科, workstationTokenEnum.中间热门排行按学科);
let hotSubjectRankingData:any = await post(getWorkstationUrl(workstationEnum.中间热门排行按学科), body, headers);
let hotSubjectRankingSource:any = hotSubjectRankingData || defaultConf.HotSubjectRankingDefault;
// let hotSubjectRankingSource = defaultConf.HotSubjectRankingDefault;
let hotSubjectRanking = [
{key:"排名", values:[]},
{key:"学科", values:[]},
{key:"报名学生数", values:[]}
];
hotSubjectRankingSource["data"].forEach( item => {
let {xh, rs, soname} = item;
hotSubjectRanking[0].values.push(xh);
hotSubjectRanking[1].values.push(soname);
hotSubjectRanking[2].values.push(rs);
})
return hotSubjectRanking;
}
export async function getHotRegionRanking() {
let {body, headers} = getParameter(workstationEnum.中间热门排行按地区, workstationTokenEnum.中间热门排行按地区);
let hotRegionRankingData:any = await post(getWorkstationUrl(workstationEnum.中间热门排行按地区), body, headers);
let hotRegionRankingSource:any = hotRegionRankingData || defaultConf.HotRegionRankingDefault;
// let hotRegionRankingSource = defaultConf.HotRegionRankingDefault;
let hotRegionRanking = [
{key:"排名", values:[]},
{key:"区域", values:[]},
{key:"报名学生数", values:[]}
];
hotRegionRankingSource["data"].forEach( item => {
let {xh, rs, cname} = item;
hotRegionRanking[0].values.push(xh);
hotRegionRanking[1].values.push(cname);
hotRegionRanking[2].values.push(rs);
})
return hotRegionRanking;
}
export async function getTopicDistribution() {
let {body, headers} = getParameter(workstationEnum.中间课题学科分布, workstationTokenEnum.中间课题学科分布);
let topicDistributionData:any = await post(getWorkstationUrl(workstationEnum.中间课题学科分布), body, headers);
let topicDistributionSource:any = topicDistributionData || defaultConf.TopicDistributionDefault;
// let topicDistributionSource = defaultConf.TopicDistributionDefault;
let topicDistribution = {};
topicDistributionSource["data"].forEach( item => {
let {ktsl, percentage, soname} = item;
topicDistribution[soname] = percentage;
})
return topicDistribution;
}
export async function getProjectStatus() {
let {body, headers} = getParameter(workstationEnum.中间课题状态, workstationTokenEnum.中间课题状态);
let projectStatusData:any = await post(getWorkstationUrl(workstationEnum.中间课题状态), body, headers);
let projectStatusSource:any = projectStatusData || defaultConf.ProjectStatusDefault;
// let projectStatusSource = defaultConf.ProjectStatusDefault;
let projectStatus = [
{key:"课题名称", values:[]},
{key:"人数", values:[]},
{key:"学科名称", values:[]}
];
projectStatusSource["data"].forEach( item => {
let {sjname, rs, soname} = item;
projectStatus[0].values.push(sjname);
projectStatus[1].values.push(rs);
projectStatus[2].values.push(soname);
})
return projectStatus;
}
export async function getTopicsResources() {
let {body, headers} = getParameter(workstationEnum.中间课题资源, workstationTokenEnum.中间课题资源);
let topicsResourcesData:any = await post(getWorkstationUrl(workstationEnum.中间课题资源), body, headers);
let topicsResourcesSource:any = topicsResourcesData || defaultConf.TopicsResourcesDefault;
// let topicsResourcesSource = defaultConf.TopicsResourcesDefault;
let topicsResources = [
{key:"工作站", values:[]},
{key:"课题", values:[]}
];
topicsResourcesSource["data"].forEach( item => {
let {wsname, sjname} = item;
topicsResources[0].values.push(wsname);
topicsResources[1].values.push(sjname);
})
return topicsResources;
}
export async function getWorkstationMap() {
let {body, headers} = getParameter(workstationEnum.实践站中间地图, workstationTokenEnum.实践站中间地图);
let workstationMapData:any = await post(getWorkstationUrl(workstationEnum.实践站中间地图), body, headers);
let workstationMapSource:any = workstationMapData || defaultConf.WorkstationMapDefault;
// let workstationMapSource = defaultConf.WorkstationMapDefault;
return {map: defaultConf.MapDataDefault , workstationMap: workstationMapSource["data"]}
}
function getBaseData(data, conf) {
let result = {};
data["data"].forEach( item => {
let {name, quantity} = item;
for (let key in conf) {
if (name == key) {
result[conf[key]] = quantity;
}
}
});
return result;
}
/**
* 实践工作站弹窗
*/
import { getParameter, getUrl, getWorkstationUrl, workstationEnum, workstationTokenEnum } from "../url";
import * as defaultConf from "../../../config/workstationPopupConfig"
import { post } from "../../../util/request";
import { getUrl, workstationEnum } from "../url";
const appKey = 200000086;
export async function getBaseNumData(id) {
let {body, headers} = getParameter(workstationEnum.工作站整体数字, workstationTokenEnum.工作站整体数字);
let baseNumData:any = await post(getWorkstationUrl(workstationEnum.工作站整体数字), body, headers);
let baseNumSource:any = baseNumData || defaultConf.BaseNumDefault;
// let baseNumSource = defaultConf.BaseNumDefault;
//基础整合数据
let baseNumConf = {lssl:"老师数量", xssl:"学生数量", ktsl:"课题数量"};
let baseNum = {"老师数量":0, "学生数量":0, "课题数量":0};
//学生选课进度
let stuCourseScheduleConf = {yxkrs:"已选课程学生数", wxkrs:"未选课程学生数"};
let stuCourseSchedule = {"已选课程学生数":0, "未选课程学生数":0};
//市级课题研究进度-课题数
let municipalLvTopicsNum:any = {"课题数量": 0};
//本期学生合格分析-合格人数、未合格人数
let stuQualifiedConf = {hgrs: "合格人数", whgrs:"未合格人数"};
let stuQualified = {"合格人数":0, "未合格人数":0};
baseNumSource["data"].forEach( item => {
let {wsid, name, quantity} = item;
if(id == wsid) {
for (let key in baseNumConf) {
if (name == key) baseNum[baseNumConf[key]] = quantity;
}
for (let key in stuCourseScheduleConf) {
if (name == key) stuCourseSchedule[stuCourseScheduleConf[key]] = quantity;
}
if (name == "ktsl") municipalLvTopicsNum["课题数量"] = quantity;
for (let key in stuQualifiedConf) {
if (name == key) stuQualified[stuQualifiedConf[key]] = quantity;
}
}
})
return {baseNum, stuCourseSchedule, municipalLvTopicsNum, stuQualified};
}
export async function getBaseData(id) {
let {body, headers} = getParameter(workstationEnum.左侧实践站介绍, workstationTokenEnum.左侧实践站介绍);
let baseData:any = await post(getWorkstationUrl(workstationEnum.左侧实践站介绍), body, headers);
let baseSource:any = baseData || defaultConf.BaseDefault;
// let baseSource = defaultConf.BaseDefault;
let baseConf = {wsname:"名称", wsaddress:"地址", soname:"学科", plname:"所辖实践点"};
let base = {"名称":"", "地址":"", "学科":"", "所辖实践点":""};
baseSource["data"].forEach( item => {
let {wsid, plname, soname, wsaddress, wsname} = item;
if (id == wsid) {
let sjdData = plname.split(",");
base["名称"] = wsname;
base["地址"] = wsaddress;
base["学科"] = soname;
base["所辖实践点"] = sjdData;
}
})
return base;
}
export async function getCityResearchProgress(id) {
let {body, headers} = getParameter(workstationEnum.中间市级课题研究进度, workstationTokenEnum.中间市级课题研究进度);
let cityResearchData:any = await post(getWorkstationUrl(workstationEnum.中间市级课题研究进度), body, headers);
let cityResearchSouorce:any = cityResearchData || defaultConf.CityResearchDefault;
// let cityResearchSouorce = defaultConf.CityResearchDefault;
let cityResearch = {"开题报告":"", "中期报告":"", "结题报告":""};
cityResearchSouorce["data"].forEach( item => {
let {wsid, ktrs, zqrs, jtrs} = item;
if (id == wsid) {
cityResearch["开题报告"] = ktrs;
cityResearch["中期报告"] = zqrs;
cityResearch["结题报告"] = jtrs;
}
})
return cityResearch;
}
export async function getSubjectStuScore(id) {
let {body, headers} = getParameter(workstationEnum.中间各学科学生得分, workstationTokenEnum.中间各学科学生得分);
let subjectStuScoreData:any = await post(getWorkstationUrl(workstationEnum.中间各学科学生得分), body, headers);
let subjectStuScoreSouorce:any = subjectStuScoreData || defaultConf.SubjectStuScoreDefault;
// let subjectStuScoreSouorce = defaultConf.SubjectStuScoreDefault;
let subjectStuScore = {};
subjectStuScoreSouorce["data"].forEach( item => {
let {wsid, soname, stname, wgtotal} = item;
if (id == wsid) {
if(!subjectStuScore[soname]) subjectStuScore[soname] = [];
subjectStuScore[soname].push({key:stname, value:wgtotal});
}
})
let subjectStuScoreMap = [];
for(let key in subjectStuScore) {
subjectStuScoreMap.push({type: key, list: subjectStuScore[key]});
}
return subjectStuScoreMap;
}
export async function getQuitReason(id) {
let {body, headers} = getParameter(workstationEnum.右侧退出原因分析, workstationTokenEnum.右侧退出原因分析);
let quitReasonData:any = await post(getWorkstationUrl(workstationEnum.右侧退出原因分析), body, headers);
let quitReasonSouorce:any = quitReasonData || defaultConf.QuitReasonDefault;
// let quitReasonSouorce = defaultConf.QuitReasonDefault;
let quitReason = [];
quitReasonSouorce["data"].forEach( item => {
let {wsid, otreason, otsl} = item;
if (id == wsid) {
quitReason.push({key:otreason, value:otsl});
}
})
return quitReason;
}
export async function getResearchSubject(id) {
let {body, headers} = getParameter(workstationEnum.右侧研究课题, workstationTokenEnum.右侧研究课题);
let researchSubjectData:any = await post(getWorkstationUrl(workstationEnum.右侧研究课题), body, headers);
let researchSubjectSouorce:any = researchSubjectData || defaultConf.ResearchSubjectDefault;
// let researchSubjectSouorce = defaultConf.ResearchSubjectDefault;
let researchSubject = [
{key:"年份", values:[]},
{key:"研究课题", values:[]},
{key:"结题学生数", values:[]}
];
researchSubjectSouorce["data"].forEach( item => {
let {wsid, ryear, jtrs, sjname} = item;
if (id == wsid) {
researchSubject[0].values.push(ryear);
researchSubject[1].values.push(sjname);
researchSubject[2].values.push(jtrs);
}
})
return researchSubject;
}
//上海市青少年科学创新实践工作站
export function getWorkstationPopupData(id) {
let body = {};
// let zsqk = await post(getUrl(healthEnum.招生情况), body, {});
let 招生情况 = [{mc:"学生数量", sl:"6214"},{mc:"bjs", sl:"3671"}]
return {招生情况};
}
\ No newline at end of file
import { requestConfig, healthConfig } from "../../serverConfig";
import { requestConfig, healthConfig, workstationConfig } from "../../serverConfig";
const md5 = require("md5");
export function getHealthParameter(apiId, token) {
const body = {
apiId,
appKey: 200000085,
pageNum:1, //分页页数
pageSize:100, //每页大小
execType:2, //固定值
conditions:{}, //where查询条件
returnFields: [],
reqProtocol: "1"
};
// let token = "df399738-1572-4c45-bdf3-c2d2c428fa62";
// const token = "9c5e468b-eca1-48a8-a1fa-5215db2c3cc5";
const sign = md5(`apiId=${apiId}&appKey=200000085&token=${token}`);
const headers = {
apiId,
appKey:'200000085',
account:'yujc',
exexType:'3',
env:'PROD',
sign,
'Content-Type': 'application/json',
'accept': 'application/json; charset=utf-8',
}
return {body, headers};
}
export function getParameter(apiId, token) {
const body = {
apiId,
appKey: 200000086,
pageNum:1, //分页页数
pageSize:100, //每页大小
execType:2, //固定值
conditions:{}, //where查询条件
returnFields: [],
reqProtocol: "1"
};
// let token = "df399738-1572-4c45-bdf3-c2d2c428fa62";
// const token = "9c5e468b-eca1-48a8-a1fa-5215db2c3cc5";
const sign = md5(`apiId=${apiId}&appKey=200000086&token=${token}`);
const headers = {
apiId,
appKey:'200000086',
account:'yujc',
exexType:'3',
env:'PROD',
sign,
'Content-Type': 'application/json',
'accept': 'application/json; charset=utf-8',
}
return {body, headers};
}
export enum urlEnum {
获取token = "/oauth/token",
......@@ -30,8 +94,6 @@ export enum urlEnum {
};
export enum healthEnum {
学生数班级数 = "1342551525711858104",
不同年级上报学生数按日 = "1342555266359937472",
......@@ -70,15 +132,67 @@ export enum healthTokenEnum {
健康率 = "01a6f925-5ed1-412e-baa4-7e11574b3d84",
}
export enum workstationEnum {
首页整体情况 = "1356231767216278142",
左侧招生情况 = "1356323092543490695",
左侧学生所属区县 = "1357404970948151324",
左侧学生合格情况 = "1356323623968098961",
左侧学科老师分布 = "1356324468705118873",
左侧工作站学科分布情况 = "1356326298316098211",
左侧工作站历年数量 = "1357408718505297959",
右侧各工作站学生合格率 = "1356390987584686765",
右侧优秀学生 = "1356391559833504443",
右侧学生去向 = "1356392344899209927",
中间热门排行按学科 = "1356395644022344403",
中间热门排行按地区 = "1356397508827728605",
实践站中间地图 = "1356411001367874279",
中间课题学科分布 = "1356412062796270323",
中间课题状态 = "1356412562565417725",
中间课题资源 = "1356412867767094023",
工作站整体数字 = "1356418464263621395",
左侧实践站介绍 = "1356487076170091294",
中间市级课题研究进度 = "1356487662953220909",
中间各学科学生得分 = "1356487951468907322",
右侧退出原因分析 = "1356499488455707463",
右侧研究课题 = "1356499780060498770",
}
export enum workstationTokenEnum {
首页整体情况 = "eb5cd378-2c9e-4161-8873-6adfe0400221",
左侧招生情况 = "1aa0614b-1c6e-4144-bfb3-4f8b667082c5",
左侧学生所属区县 = "b96d62d3-8095-483d-85f5-a8ba20342044",
左侧学生合格情况 = "563a8e2f-0671-4766-8470-eece29936b58",
左侧学科老师分布 = "47d3969e-2139-4a36-90ae-549d2816b241",
左侧工作站学科分布情况 = "8931dc62-59d8-40a0-ac79-2e3e4d0fbc4f",
左侧工作站历年数量 = "47abab0c-8ff6-4fca-9093-e71e0892976a",
右侧各工作站学生合格率 = "f9d531fb-51fd-46cb-920e-c07ac524c4a9",
右侧优秀学生 = "ae5df168-465c-4173-a871-6d1951ae8da5",
右侧学生去向 = "a14b078b-cbf5-4204-9e1e-5d8ef296cf09",
中间热门排行按学科 = "88bf8fd5-2199-4876-b3e6-98a74d5ebbb8",
中间热门排行按地区 = "c8a77cb6-b79b-4767-95ba-e0e349e3ba5a",
实践站中间地图 = "88368f83-5abb-412a-b1ac-a33919fc1676",
中间课题学科分布 = "608ca69f-d96b-4b9a-9698-5ec7bb21d836",
中间课题状态 = "0edfe892-76b9-4308-a0cc-bc0ce01e44e3",
中间课题资源 = "bb0e0d19-a543-417a-abbe-455dfef21155",
工作站整体数字 = "3450aca1-e756-4cbb-b4cf-8ce58920bd39",
左侧实践站介绍 = "9064788f-6fe0-4119-87ae-d62d85ddb4c0",
中间市级课题研究进度 = "c31c176a-7039-4f17-8865-3f2eb4e87b3f",
中间各学科学生得分 = "3dea4546-cba5-4f78-bae7-7e3e6c9e75e9",
右侧退出原因分析 = "64a18813-37c8-4ad6-8771-cbaa353bfa0a",
右侧研究课题 = "b29efe0c-baf9-4367-95b3-985ee178230d",
}
export function getUrl(urlName) {
return `${requestConfig.url}${urlName}`
}
export function getSecondPhaseUrl(urlName) {
return `${healthConfig.url}${urlName}`
}
\ No newline at end of file
}
export function getWorkstationUrl(urlName) {
return `${workstationConfig.url}${urlName}`
}
......@@ -13,7 +13,7 @@ async function lanuch() {
return;
}
initUser();
test();
// test();
httpServer.createServer(getPort());
}
......
......@@ -2,7 +2,7 @@
import { checkAccessToken } from "../biz/user";
import { SYSTEMERRORENUM } from "../config/enum";
import { middlewareCheckAccessToken } from "../data/user/user";
import { BizError } from "../util/bizError";
import { BizError, SysError } from "../util/bizError";
export async function checkToken(req, res, next) {
if (!req.headers) req.headers = {};
......@@ -20,7 +20,7 @@ export async function checkToken(req, res, next) {
next();
} else {
//校验失败
return next(new BizError(SYSTEMERRORENUM.token已过期) );
return next(new SysError(SYSTEMERRORENUM.token已过期) );
}
}
......@@ -34,7 +34,7 @@ export function adminPermission(req, res, next) {
if (isadmin) {
next();
} else {
next(new BizError(SYSTEMERRORENUM.您的账户没有访问权限) );
next(new SysError(SYSTEMERRORENUM.您的账户没有访问权限) );
}
}
......@@ -47,6 +47,6 @@ export function pagePermission(req, res, next) {
if (otherpage) {
next();
} else {
next(new BizError(SYSTEMERRORENUM.您的账户没有访问权限) );
next(new SysError(SYSTEMERRORENUM.您的账户没有访问权限) );
}
}
\ No newline at end of file
......@@ -34,12 +34,16 @@ export function setRouter(httpServer){
httpServer.post('/interface/permission/checkhomepage', checkToken, asyncHandler(userBiz.checkPermissionForHomePage) );
//二期
httpServer.get('/interface/secondPhase/gradehealth', checkToken, adminPermission, asyncHandler(healthBiz.getData));
httpServer.get('/interface/secondPhase/workstation', checkToken, adminPermission, asyncHandler(workstationBiz.getData));
httpServer.get('/interface/secondPhase/workstation/popup', checkToken, adminPermission, asyncHandler(workstationPopupBiz.getData));
httpServer.get('/interface/secondPhase/gradehealth', checkToken, asyncHandler(healthBiz.getData));
httpServer.get('/interface/secondPhase/workstation', checkToken, asyncHandler(workstationBiz.getData));
httpServer.get('/interface/secondPhase/workstation/popup', asyncHandler(workstationPopupBiz.getData));
httpServer.post('/interface/secondPhase/gradehealth', asyncHandler(healthBiz.getData));
httpServer.post('/interface/secondPhase/workstation', checkToken, adminPermission, asyncHandler(workstationBiz.getData));
httpServer.post('/interface/secondPhase/workstation/popup', checkToken, adminPermission, asyncHandler(workstationPopupBiz.getData));
httpServer.post('/interface/secondPhase/gradehealth', checkToken, asyncHandler(healthBiz.getData));
httpServer.post('/interface/secondPhase/workstation', checkToken, asyncHandler(workstationBiz.getData));
httpServer.post('/interface/secondPhase/workstation/popup', asyncHandler(workstationPopupBiz.getData));
httpServer.get('/test/secondPhase/workstation', asyncHandler(workstationBiz.getTest));
httpServer.post('/test/secondPhase/workstation', asyncHandler(workstationBiz.getTest));
}
\ No newline at end of file
......@@ -33,4 +33,16 @@ export let healthConfig = {
// execType:3,
env:"PROD",
// accept:"application/json; charset=utf-8"
}
\ No newline at end of file
}
export let workstationConfig = {
url:'http://172.22.235.5:28080/dataengine-center-oneservice/list/',
appKey:"200000086",
// account:"man_001", //yujc
// execType:3,
env:"PROD",
// accept:"application/json; charset=utf-8"
}
import { getMsg } from "../config/enum";
/**
* 异常类
* 需要和log4js共同使用
*/
import { getSysMsg } from "../config/enum";
import { getBizMsg } from "../config/errorEnum";
import { logError } from "./log";
export class BizError extends Error {
constructor(msgs) {
let errorMessage = getMsg(msgs);
super(errorMessage);
constructor(...msgs) {
let reqErrorMsg = '';
let logErrorMsg = '';
for (let i = 0; i <msgs.length; i++) {
if (!i) {
let msg = getBizMsg(msgs[i]);
reqErrorMsg = msg;
logErrorMsg = msg;
} else {
logErrorMsg += ` | ${msgs[i]} `;
}
}
logError(logErrorMsg);
super(reqErrorMsg);
}
}
\ No newline at end of file
}
export class SysError extends Error {
constructor(...msgs) {
let reqErrorMsg = '';
let logErrorMsg = '';
for (let i = 0; i <msgs.length; i++) {
if (!i) {
let msg= getSysMsg(msgs[i]);
reqErrorMsg = msg;
logErrorMsg = msg;
} else {
if (typeof msgs[i] == 'object') logErrorMsg += ` | ${JSON.stringify(msgs[i])} `;
else logErrorMsg += ` | ${msgs[i]} `;
}
}
logError(logErrorMsg);
super(reqErrorMsg);
}
}
/**
* 日志类
* 包括错误日志 普通日志
* 日志存放在根目录的logs内
*/
let log4js = require('log4js');
let path = require('path');
//log路径
export const systemLogPath = {
errorLogFile:"error",
errorLogDir:"error",
handleLogFile:"handle",
handleLogDir:"handle"
}
//日志根目录
// let baseLogPath = path.resolve(__dirname.substring(0, __dirname.indexOf("out")), 'logs');
let baseLogPath = path.resolve('./', 'logs');
let errFile = path.resolve(baseLogPath, systemLogPath.errorLogDir, systemLogPath.errorLogFile);
let handFile =path.resolve(baseLogPath, systemLogPath.handleLogDir, systemLogPath.handleLogFile);
let config = {
appenders:
{
"rule-console": {"type": "console"},
"errorLogger": {
"type": "dateFile", // 日志类型
"filename": errFile, // 输出文件名
"pattern": "yyyy-MM-dd.log", // 后缀
"alwaysIncludePattern": true, // 上面两个参数是否合并
"encoding": "utf-8", // 编码格式
"maxLogSize": 1000, // 最大存储内容
"numBackups": 3, // 当文件内容超过文件存储空间时,备份文件的数量
"path": `/${systemLogPath.errorLogDir}`
},
"handleLogger": {
"type": "dateFile",
"filename": handFile,
"pattern": "yyyy-MM-dd.log",
"alwaysIncludePattern": true,
"encoding": "utf-8",
"maxLogSize": 1000,
"numBackups": 3,
"path": `/${systemLogPath.handleLogDir}`
}
},
categories: {
"default": {"appenders": ["rule-console"], "level": "all"}, //这个配置一定要有
"errorLogger": {"appenders": ["errorLogger"], "level": "error"},
"handleLogger": {"appenders": ["handleLogger"], "level": "all"}
},
"baseLogPath": path.resolve(baseLogPath, systemLogPath.handleLogDir, systemLogPath.handleLogFile)
};
log4js.configure(config); //加载配置文件
//调用预先定义的日志名称
let errorLogger = log4js.getLogger("errorLogger");
let handleLogger = log4js.getLogger("handleLogger");
let consoleLogger = log4js.getLogger("rule-console");
//错误日志
export function logError(...errStrs) {
let str = "";
errStrs.forEach(item => {
str += item + " | ";
});
errorLogger.error(`errorInfo => ${str}`);
}
//普通日志
export function logHandle(msgStr:string) {
handleLogger.info(`logInfo => ${msgStr}`);
}
//输出日志
export function logConsole(logStr:string) {
consoleLogger.info(`logInfo => ${logStr}`);
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment