candidate search
This commit is contained in:
parent
0053c1d52e
commit
ec81c5b3e2
|
|
@ -875,75 +875,6 @@
|
||||||
"to-fast-properties": "^2.0.0"
|
"to-fast-properties": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ckeditor/ckeditor5-build-classic": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-build-classic/-/ckeditor5-build-classic-18.0.0.tgz",
|
|
||||||
"integrity": "sha512-7nyaDU5sUSl+7wXPwr0d5bOlO2e0LRQh2iJJCJfAjjuUESwtiBGoFC+Ql5dEht0xlfARoSWQMlkUvGuHOVja7A=="
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-core": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/@ckeditor/ckeditor5-core/download/@ckeditor/ckeditor5-core-18.0.0.tgz",
|
|
||||||
"integrity": "sha1-71NcvrPEgY1GPkXnhEY/k3vy1js=",
|
|
||||||
"requires": {
|
|
||||||
"@ckeditor/ckeditor5-engine": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-utils": "^18.0.0",
|
|
||||||
"lodash-es": "^4.17.10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-editor-classic": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/@ckeditor/ckeditor5-editor-classic/download/@ckeditor/ckeditor5-editor-classic-18.0.0.tgz",
|
|
||||||
"integrity": "sha1-YquzsVFShohUzoJJ/8MKRT8k/ek=",
|
|
||||||
"requires": {
|
|
||||||
"@ckeditor/ckeditor5-core": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-engine": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-ui": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-utils": "^18.0.0",
|
|
||||||
"lodash-es": "^4.17.10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-engine": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/@ckeditor/ckeditor5-engine/download/@ckeditor/ckeditor5-engine-18.0.0.tgz",
|
|
||||||
"integrity": "sha1-iKtK8/zggGuQ/drZjJDRYkFlst4=",
|
|
||||||
"requires": {
|
|
||||||
"@ckeditor/ckeditor5-utils": "^18.0.0",
|
|
||||||
"lodash-es": "^4.17.10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-ui": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/@ckeditor/ckeditor5-ui/download/@ckeditor/ckeditor5-ui-18.0.0.tgz",
|
|
||||||
"integrity": "sha1-GSlSk6IwAR3tU/5OYgQFppwMsRU=",
|
|
||||||
"requires": {
|
|
||||||
"@ckeditor/ckeditor5-core": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-utils": "^18.0.0",
|
|
||||||
"lodash-es": "^4.17.10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-upload": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/@ckeditor/ckeditor5-upload/download/@ckeditor/ckeditor5-upload-18.0.0.tgz",
|
|
||||||
"integrity": "sha1-ay1FTh3+rcKQQW7UrkJNGGQktfo=",
|
|
||||||
"requires": {
|
|
||||||
"@ckeditor/ckeditor5-core": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-ui": "^18.0.0",
|
|
||||||
"@ckeditor/ckeditor5-utils": "^18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-utils": {
|
|
||||||
"version": "18.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/@ckeditor/ckeditor5-utils/download/@ckeditor/ckeditor5-utils-18.0.0.tgz",
|
|
||||||
"integrity": "sha1-lc1mYcAA6RV+u3BSoUKp2qNLU4g=",
|
|
||||||
"requires": {
|
|
||||||
"lodash-es": "^4.17.10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@ckeditor/ckeditor5-vue": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-vue/-/ckeditor5-vue-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-4MaQwZ04cWwqYW0732sg2aqx9ILeHIP0LSLKUuLCLR21qYONZPvxY/V/czh1DH99toaL/iwPvEoJtO2ldriPaA=="
|
|
||||||
},
|
|
||||||
"@hapi/address": {
|
"@hapi/address": {
|
||||||
"version": "2.1.4",
|
"version": "2.1.4",
|
||||||
"resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz",
|
"resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz",
|
||||||
|
|
@ -3485,12 +3416,11 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"cfb": {
|
"cfb": {
|
||||||
"version": "1.1.3",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.1.3.tgz",
|
"resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.2.0.tgz",
|
||||||
"integrity": "sha1-Bd5oFiWcjovDJxOrqQVgjuOF32Y=",
|
"integrity": "sha1-ak0IcrUl7WA0nh71H7Swv3Psqag=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"adler-32": "~1.2.0",
|
"adler-32": "~1.2.0",
|
||||||
"commander": "^2.16.0",
|
|
||||||
"crc-32": "~1.2.0",
|
"crc-32": "~1.2.0",
|
||||||
"printj": "~1.1.2"
|
"printj": "~1.1.2"
|
||||||
}
|
}
|
||||||
|
|
@ -3577,14 +3507,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"ckeditor4-vue": {
|
|
||||||
"version": "0.2.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/ckeditor4-vue/download/ckeditor4-vue-0.2.0.tgz",
|
|
||||||
"integrity": "sha1-blzFN9dsQEm31CPYapeqFBivUQA=",
|
|
||||||
"requires": {
|
|
||||||
"load-script": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"class-utils": {
|
"class-utils": {
|
||||||
"version": "0.3.6",
|
"version": "0.3.6",
|
||||||
"resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
|
"resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
|
||||||
|
|
@ -3735,7 +3657,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "2.14.1",
|
"version": "2.14.1",
|
||||||
"resolved": "https://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz?cache=0&sync_timestamp=1580710597193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.14.1.tgz",
|
"resolved": "https://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz?cache=0&sync_timestamp=1598576046744&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.14.1.tgz",
|
||||||
"integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao="
|
"integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3797,7 +3719,8 @@
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "2.20.3",
|
"version": "2.20.3",
|
||||||
"resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz",
|
"resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz",
|
||||||
"integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM="
|
"integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"commondir": {
|
"commondir": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
|
@ -9860,11 +9783,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"load-script": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ="
|
|
||||||
},
|
|
||||||
"loader-fs-cache": {
|
"loader-fs-cache": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz",
|
"resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz",
|
||||||
|
|
@ -9966,11 +9884,6 @@
|
||||||
"integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=",
|
"integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"lodash-es": {
|
|
||||||
"version": "4.17.15",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.15.tgz",
|
|
||||||
"integrity": "sha1-Ib2Wg5NUQS8j16EDQOXqxu5FXXg="
|
|
||||||
},
|
|
||||||
"lodash.defaultsdeep": {
|
"lodash.defaultsdeep": {
|
||||||
"version": "4.6.1",
|
"version": "4.6.1",
|
||||||
"resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz?cache=0&sync_timestamp=1562718178896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.defaultsdeep%2Fdownload%2Flodash.defaultsdeep-4.6.1.tgz",
|
"resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz?cache=0&sync_timestamp=1562718178896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.defaultsdeep%2Fdownload%2Flodash.defaultsdeep-4.6.1.tgz",
|
||||||
|
|
@ -13930,9 +13843,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ssf": {
|
"ssf": {
|
||||||
"version": "0.10.2",
|
"version": "0.10.3",
|
||||||
"resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.10.2.tgz",
|
"resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.10.3.tgz?cache=0&sync_timestamp=1593298770773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssf%2Fdownload%2Fssf-0.10.3.tgz",
|
||||||
"integrity": "sha1-ZbK0/N/ZZ7yOg4OkE0kAmJMRWXY=",
|
"integrity": "sha1-jq4fwpyQpVLnkhII+BiS1vd6yys=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"frac": "~1.1.2"
|
"frac": "~1.1.2"
|
||||||
}
|
}
|
||||||
|
|
@ -16124,6 +16037,11 @@
|
||||||
"string-width": "^1.0.2 || 2"
|
"string-width": "^1.0.2 || 2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"wmf": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/wmf/download/wmf-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-fRnWIQcaCMK9xrfmiKnENSmMwto="
|
||||||
|
},
|
||||||
"word-wrap": {
|
"word-wrap": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
|
"resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
|
||||||
|
|
@ -16229,22 +16147,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xlsx": {
|
"xlsx": {
|
||||||
"version": "0.15.5",
|
"version": "0.15.6",
|
||||||
"resolved": "https://registry.npm.taobao.org/xlsx/download/xlsx-0.15.5.tgz?cache=0&sync_timestamp=1580176264177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxlsx%2Fdownload%2Fxlsx-0.15.5.tgz",
|
"resolved": "https://registry.npm.taobao.org/xlsx/download/xlsx-0.15.6.tgz",
|
||||||
"integrity": "sha1-N9W7gHbeczfluwdps61V0Y1o6uw=",
|
"integrity": "sha1-Rh+EHW2eoag3XizSRr8jrs4IodU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"adler-32": "~1.2.0",
|
"adler-32": "~1.2.0",
|
||||||
"cfb": "^1.1.3",
|
"cfb": "^1.1.4",
|
||||||
"codepage": "~1.14.0",
|
"codepage": "~1.14.0",
|
||||||
"commander": "~2.17.1",
|
"commander": "~2.17.1",
|
||||||
"crc-32": "~1.2.0",
|
"crc-32": "~1.2.0",
|
||||||
"exit-on-epipe": "~1.0.1",
|
"exit-on-epipe": "~1.0.1",
|
||||||
"ssf": "~0.10.2"
|
"ssf": "~0.10.3",
|
||||||
|
"wmf": "~1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "2.17.1",
|
"version": "2.17.1",
|
||||||
"resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1580710597193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz",
|
"resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1598576046744&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz",
|
||||||
"integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78="
|
"integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
"vue-count-to": "^1.0.13",
|
"vue-count-to": "^1.0.13",
|
||||||
"vue-router": "3.0.6",
|
"vue-router": "3.0.6",
|
||||||
"vuex": "3.1.0",
|
"vuex": "3.1.0",
|
||||||
"xlsx": "^0.15.5"
|
"xlsx": "^0.15.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "7.0.0",
|
"@babel/core": "7.0.0",
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,10 @@ export function getBasicCount() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function searchCandidates(data) {
|
||||||
|
return request({
|
||||||
|
url: '/analyse/searchcandidates/',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -126,7 +126,7 @@ export const asyncRoutes = [
|
||||||
path: 'candidate',
|
path: 'candidate',
|
||||||
name: 'Candidate',
|
name: 'Candidate',
|
||||||
component: () => import('@/views/analyse/candidate.vue'),
|
component: () => import('@/views/analyse/candidate.vue'),
|
||||||
meta: { title: '成绩单查询', icon: '', perms: ['candidate_view'] }
|
meta: { title: '报告单查询', icon: '', perms: ['candidate_search'] }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'consumerrule',
|
path: 'consumerrule',
|
||||||
|
|
|
||||||
|
|
@ -61,5 +61,12 @@ div:focus {
|
||||||
|
|
||||||
// main-container global css
|
// main-container global css
|
||||||
.app-container {
|
.app-container {
|
||||||
padding: 20px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-card__body {
|
||||||
|
padding: 6px;
|
||||||
|
}
|
||||||
|
.el-card__header {
|
||||||
|
padding: 6px;
|
||||||
|
}
|
||||||
|
|
@ -1,14 +1,101 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
|
||||||
|
<el-row :gutter="6">
|
||||||
|
<el-col :xs="24" :md="8">
|
||||||
|
<el-card class="box-card">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span>查询报告单</span>
|
||||||
|
</div>
|
||||||
|
<div class="clearfix" style="color:gray">
|
||||||
|
可从excel复制过来,手动输入用回车间隔
|
||||||
|
</div>
|
||||||
|
<el-form
|
||||||
|
ref="elForm"
|
||||||
|
:model="formData"
|
||||||
|
:rules="rules"
|
||||||
|
size="medium"
|
||||||
|
label-width="80px"
|
||||||
|
style="margin-top:2px"
|
||||||
|
label-position="left"
|
||||||
|
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-form-item label="姓名列" prop="names">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.names"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 8, maxRows: 12}"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
<el-row >
|
||||||
|
<el-form-item label="身份证列" prop="numbers">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.numbers"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 8, maxRows: 12}"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
<div style="text-align:center">
|
||||||
|
<el-button type="primary" @click="searchB" >开始查询</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="24" :md="16">
|
||||||
|
<el-card class="box-card">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span>查询结果</span>
|
||||||
|
</div>
|
||||||
|
<el-button type="primary" @click="exportExcel" >导出结果</el-button>
|
||||||
|
<el-table
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
fit
|
||||||
|
highlight-current-row
|
||||||
|
style="margin-top:2px"
|
||||||
|
id="out-table"
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-table-column label="姓名">
|
||||||
|
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="身份证号">
|
||||||
|
<template slot-scope="scope">{{ scope.row.ID_number }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="报告单号">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-link :href="scope.row.url" target="_blank" type="primary">{{ scope.row.report_number }}</el-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="获得时间">
|
||||||
|
<template slot-scope="scope">{{ scope.row.issue_date }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="报告单网址" show-overflow-tooltip>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-link :href="scope.row.url" target="_blank" type="primary">{{ scope.row.url }}</el-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { searchCandidates } from "@/api/analyse"
|
||||||
import { genTree, deepClone } from "@/utils";
|
import { genTree, deepClone } from "@/utils";
|
||||||
import checkPermission from "@/utils/permission";
|
import checkPermission from "@/utils/permission";
|
||||||
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
||||||
|
import FileSaver from "file-saver";
|
||||||
|
import XLSX from "xlsx";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
|
|
@ -16,7 +103,24 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
formData:{}
|
formData:{},
|
||||||
|
rules:{
|
||||||
|
names: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请填写姓名列",
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
numbers: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请填写身份证列",
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
tableData:[]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
|
|
@ -27,6 +131,36 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
searchB(){
|
||||||
|
const loading = this.$loading({
|
||||||
|
text: '拼命查询中..',
|
||||||
|
});
|
||||||
|
searchCandidates(this.formData).then(res=>{
|
||||||
|
this.tableData = res.data
|
||||||
|
loading.close()
|
||||||
|
|
||||||
|
}).catch(e=>{
|
||||||
|
loading.close()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
exportExcel() {
|
||||||
|
var xlsxParam = { raw: true };//转换成excel时,使用原始的格式
|
||||||
|
var wb = XLSX.utils.table_to_book(document.querySelector("#out-table"),xlsxParam);
|
||||||
|
var wbout = XLSX.write(wb, {
|
||||||
|
bookType: "xlsx",
|
||||||
|
bookSST: true,
|
||||||
|
type: "array"
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
FileSaver.saveAs(
|
||||||
|
new Blob([wbout], { type: "application/octet-stream;charset=utf-8" }),
|
||||||
|
"报告单.xlsx"
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
if (typeof console !== "undefined") console.log(e, wbout);
|
||||||
|
}
|
||||||
|
return wbout;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,6 @@ from .views import *
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('basic/', BasicCount.as_view()),
|
path('basic/', BasicCount.as_view()),
|
||||||
path('quota/', Quota.as_view())
|
path('quota/', Quota.as_view()),
|
||||||
|
path('searchcandidates/', SearchCandidates.as_view())
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from requests.api import request
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
|
|
@ -7,6 +8,8 @@ from examtest.models import ExamTest
|
||||||
from question.models import Question
|
from question.models import Question
|
||||||
|
|
||||||
import pickle
|
import pickle
|
||||||
|
import requests
|
||||||
|
from lxml import etree
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
class BasicCount(APIView):
|
class BasicCount(APIView):
|
||||||
|
|
@ -29,3 +32,48 @@ class Quota(APIView):
|
||||||
with open('quota.dat','rb') as f:
|
with open('quota.dat','rb') as f:
|
||||||
data = pickle.load(f)
|
data = pickle.load(f)
|
||||||
return Response(data)
|
return Response(data)
|
||||||
|
|
||||||
|
class SearchCandidates(APIView):
|
||||||
|
perms_map = [
|
||||||
|
{'post': 'candidate_search'}]
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
names = request.data['names']
|
||||||
|
numbers = request.data['numbers']
|
||||||
|
names_ = names.split('\n')
|
||||||
|
numbers_ = numbers.split('\n')
|
||||||
|
names_l = [i.replace(' ', '') for i in names_ if i!='']
|
||||||
|
numbers_l = [i.replace(' ', '') for i in numbers_ if i!='']
|
||||||
|
candidates = []
|
||||||
|
if len(names_l)>60:
|
||||||
|
return Response({'error':'单次批量查询不允许超过60'})
|
||||||
|
if len(names_l) == len(numbers_l):
|
||||||
|
for i in range(len(names_l)):
|
||||||
|
payload = {'IndexModel[name]': names_l[i], 'IndexModel[identityNumber]': numbers_l[i], 'IndexModel[certNumber]':'', 'IndexModel[candidateNumber]':''}
|
||||||
|
try:
|
||||||
|
r = requests.post('https://fushe.chinansc.cn/open/candidate-list',data=payload, timeout=5)
|
||||||
|
r.raise_for_status()
|
||||||
|
r.close()
|
||||||
|
html = etree.HTML(r.text)
|
||||||
|
results = html.xpath("//table[@class='cert-table']")
|
||||||
|
try:
|
||||||
|
for i in results:
|
||||||
|
url = i.xpath('tr/td/a/@href')
|
||||||
|
name = i.xpath('tr[1]/td[1]/text()')
|
||||||
|
ID_number = i.xpath('tr[1]/td[2]/text()')
|
||||||
|
report_number = i.xpath('tr[2]/td[1]/text()')
|
||||||
|
issue_date = i.xpath('tr[2]/td[2]/text()')
|
||||||
|
jsondata = {
|
||||||
|
'name':name[0],
|
||||||
|
'ID_number':ID_number[0],
|
||||||
|
'report_number':report_number[0],
|
||||||
|
'issue_date':issue_date[0],
|
||||||
|
'url':'https://fushe.chinansc.cn'+ url[0]
|
||||||
|
}
|
||||||
|
candidates.append(jsondata)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return Response(candidates)
|
||||||
|
else:
|
||||||
|
return Response({'error':'姓名列和身份证列不匹配!'})
|
||||||
Binary file not shown.
Loading…
Reference in New Issue