Commit 6b1374d9 by 葛青博

社保新增考生校对、考生管理

1 parent 2e5e928b
...@@ -13,7 +13,7 @@ module.exports = { ...@@ -13,7 +13,7 @@ module.exports = {
proxyTable: {}, proxyTable: {},
// Various Dev Server settings // Various Dev Server settings
host: '192.168.9.102', // can be overwritten by process.env.HOST host: '192.168.9.102', // 'localhost', // // can be overwritten by process.env.HOST
port: 8990, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined port: 8990, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false, autoOpenBrowser: false,
errorOverlay: true, errorOverlay: true,
......
...@@ -24,6 +24,16 @@ export const constantRouterMap = [{ ...@@ -24,6 +24,16 @@ export const constantRouterMap = [{
component: reslove => require(['@/views/Home/show'], reslove), component: reslove => require(['@/views/Home/show'], reslove),
}] }]
}, },
// {
// path: '/system/examinee',
// name: '考生管理',
// component: reslove => require(['@/views/System/SysExaminee'], reslove),
// },
// {
// path: '/system/proofread',
// name: '考生校对',
// component: reslove => require(['@/views/System/SysExaminee/proofreading'], reslove),
// },
// { // {
// path: '/home', // path: '/home',
...@@ -46,16 +56,14 @@ export const constantRouterMap = [{ ...@@ -46,16 +56,14 @@ export const constantRouterMap = [{
/** /**
* 异步路由 * 异步路由
*/ */
export const asyncRouterMap = [ export const asyncRouterMap = [{
{
path: '/monitor', path: '/monitor',
name: '报表统计', name: '报表统计',
component: reslove => require(['@/views/layout'], reslove), component: reslove => require(['@/views/layout'], reslove),
meta: { meta: {
icon: 'gy-icon-jianguan' icon: 'gy-icon-jianguan'
}, },
children: [ children: [{
{
path: '/monitor/show', path: '/monitor/show',
name: '报表展示', name: '报表展示',
component: reslove => require(['@/views/report/show'], reslove), component: reslove => require(['@/views/report/show'], reslove),
...@@ -72,22 +80,22 @@ export const asyncRouterMap = [ ...@@ -72,22 +80,22 @@ export const asyncRouterMap = [
} }
] ]
}, },
// { // {
// path: '/monitor', // path: '/monitor',
// name: '实时视频', // name: '实时视频',
// component: reslove => require(['@/views/layout'], reslove), // component: reslove => require(['@/views/layout'], reslove),
// meta: { // meta: {
// icon: 'gy-icon-jianguan' // icon: 'gy-icon-jianguan'
// }, // },
// children: [ // children: [
// { // {
// path: '/system/playvideo', // path: '/system/playvideo',
// name: '实时视频', // name: '实时视频',
// component: reslove => require(['@/views/videos/playvideo'], reslove), // component: reslove => require(['@/views/videos/playvideo'], reslove),
// } // }
// ] // ]
// }, // },
{ {
path: '/system/playvideo', path: '/system/playvideo',
name: '数据检索', name: '数据检索',
meta: { meta: {
...@@ -108,7 +116,12 @@ export const asyncRouterMap = [ ...@@ -108,7 +116,12 @@ export const asyncRouterMap = [
path: '/activity/report', path: '/activity/report',
name: '状态报表', name: '状态报表',
component: reslove => require(['@/views/activity/report'], reslove), component: reslove => require(['@/views/activity/report'], reslove),
} },
{
path: '/system/proofread',
name: '考生校对',
component: reslove => require(['@/views/System/SysExaminee/proofreading'], reslove),
},
] ]
}, },
// { // {
...@@ -181,8 +194,12 @@ export const asyncRouterMap = [ ...@@ -181,8 +194,12 @@ export const asyncRouterMap = [
path: '/search/dbs', path: '/search/dbs',
name: '人口库管理', name: '人口库管理',
component: reslove => require(['@/views/Search/facedb/database'], reslove), component: reslove => require(['@/views/Search/facedb/database'], reslove),
} },
{
path: '/system/examinee',
name: '考生管理',
component: reslove => require(['@/views/System/SysExaminee'], reslove),
},
] ]
} }
] ]
......
...@@ -21,6 +21,7 @@ function startLoading() { //使用Element loading-start 方法 ...@@ -21,6 +21,7 @@ function startLoading() { //使用Element loading-start 方法
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}) })
} }
function endLoading() { //使用Element loading-close 方法 function endLoading() { //使用Element loading-close 方法
loading.close() loading.close()
} }
...@@ -47,8 +48,9 @@ export function tryHideFullScreenLoading() { ...@@ -47,8 +48,9 @@ export function tryHideFullScreenLoading() {
/**@param /**@param
* 请求前的拦截器 * 请求前的拦截器
*/ */
service.interceptors.request.use(function (config) { service.interceptors.request.use(function(config) {
const token = localStorage.getItem('atoken'); const token = localStorage.getItem('atoken');
// config.headers['app-code'] = 1
//截取API添加时间戳防止请求缓存 //截取API添加时间戳防止请求缓存
if (config.method == "get") { if (config.method == "get") {
config.params = { config.params = {
...@@ -68,7 +70,7 @@ service.interceptors.request.use(function (config) { ...@@ -68,7 +70,7 @@ service.interceptors.request.use(function (config) {
} }
} }
return config return config
}, function (err) { }, function(err) {
//tryHideFullScreenLoading(); //tryHideFullScreenLoading();
}); });
...@@ -77,7 +79,7 @@ service.interceptors.request.use(function (config) { ...@@ -77,7 +79,7 @@ service.interceptors.request.use(function (config) {
* @param * @param
* 响应前的拦截器 * 响应前的拦截器
*/ */
service.interceptors.response.use(function (res) { service.interceptors.response.use(function(res) {
//tryHideFullScreenLoading(); //tryHideFullScreenLoading();
if (res.data) { if (res.data) {
if (res.data.ecode === 401) { if (res.data.ecode === 401) {
...@@ -89,7 +91,7 @@ service.interceptors.response.use(function (res) { ...@@ -89,7 +91,7 @@ service.interceptors.response.use(function (res) {
} }
} }
return res; return res;
}, function (err) { }, function(err) {
//tryHideFullScreenLoading(); //tryHideFullScreenLoading();
return Promise.reject(err); return Promise.reject(err);
}) })
......
<template>
<div class="statusdetail">
<el-dialog
:title="titlename"
:visible.sync="show"
width="40%"
>
<div class="activitychart" id="activitychart" v-show="curshow == 'chart'&&!noImg"></div>
<div class="imgbox" v-show="curshow == 'img'&&!noImg">
<div v-for="(item,index) in imgData" class="item-img-box" :key="index">
<img :src="API.picUrl+'picture/'+item.facePath+item.facePic" alt="">
</div>
</div>
<div class="" v-show="noImg">
暂无数据
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="show = false">取 消</el-button>
<el-button type="primary" @click="show = false">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import defaultPhotos from './index.json'
export default {
data() {
return {
show:false,
curshow:'img',
titlename:'抓拍图片',
imgData:[],
noImg:false
}
},
methods:{
initImg(data){
this.imgData = []
this.show = true
this.titlename = '抓拍图片'
this.curshow = 'img'
this.axios.get(this.API.url + '/faceRecognitions',{
params:{
mallId: data.mallId,
personUnid:data.personUnid,
sortName: "counttime",
sortOrder: "DESC"
}
}).then(res => {
if(res.data.data){
this.imgData = res.data.data;
this.noImg=false;
}else{
this.noImg=true;
}
})
},
chageperiod(){
},
},
mounted(){
}
}
</script>
<style lang="stylus" scoped>
.activitychart{
height 40vh
width 40vw
}
.report-select{
width 100%
overflow hidden
}
.imgbox{
overflow auto
height 60vh
}
.item-img-box{
width 155px
height 200px
float left
overflow hidden
border-radius 5px
margin 0 0 20px 20px
img {
height 100%
width 100%
}
}
</style>
{ "success": true, "code": 200, "msg": "select success", "data": [{ "id": 5235, "deviceId": 3, "channelId": 3, "gateId": 4, "deviceSerialnum": "227d123e-bf7a040f", "channelSerialnum": "227d123e-bf7a040f-01", "personType": 2, "facePic": "227d123e-bf7a040f-20200604085749-face-0.jpg", "mood": 0, "age": 2, "gender": 1, "direction": 1, "counttime": "2020-06-04 08:57:49", "countdate": "2020-06-04 00:00:00", "modifyTime": "2020-06-04 08:58:10", "createTime": "2020-06-04 08:58:10", "mallId": 4, "accountId": 1, "personUnid": "26aabf3c-a475-11ea-8f93-0367bf41ed29", "status": 0, "happyConf": 0, "historyArrivalCount": 0, "todayArrivalCount": 0, "unid": "05629698-538d-4e75-a42e-db4c42cffa60", "faceScore": 100.0, "faceType": 1, "facePicNum": 1, "bodyPicNum": 0, "faceFeatureType": 1, "bodyFeatureType": -1, "facePath": "face/20200604/227d123e-bf7a040f-01/", "trackPath": "track/20200604/227d123e-bf7a040f-01/" }, { "id": 5168, "deviceId": 3, "channelId": 3, "gateId": 4, "deviceSerialnum": "227d123e-bf7a040f", "channelSerialnum": "227d123e-bf7a040f-01", "personType": 2, "facePic": "227d123e-bf7a040f-20200603171413-face-0.jpg", "mood": 0, "age": 2, "gender": 1, "direction": 1, "counttime": "2020-06-03 17:14:13", "countdate": "2020-06-03 00:00:00", "modifyTime": "2020-06-03 17:14:36", "createTime": "2020-06-03 17:14:36", "mallId": 4, "accountId": 1, "personUnid": "26aabf3c-a475-11ea-8f93-0367bf41ed29", "status": 0, "happyConf": 0, "historyArrivalCount": 0, "todayArrivalCount": 0, "unid": "954833a5-b6c6-47cd-a648-51557acdc489", "faceScore": 97.0, "faceType": 1, "facePicNum": 1, "bodyPicNum": 0, "faceFeatureType": 1, "bodyFeatureType": -1, "facePath": "face/20200603/227d123e-bf7a040f-01/", "trackPath": "track/20200603/227d123e-bf7a040f-01/" }, { "id": 5074, "deviceId": 3, "channelId": 3, "gateId": 4, "deviceSerialnum": "227d123e-bf7a040f", "channelSerialnum": "227d123e-bf7a040f-01", "personType": 2, "facePic": "227d123e-bf7a040f-20200603090054-face-0.jpg", "mood": 0, "age": 2, "gender": 1, "direction": 1, "counttime": "2020-06-03 09:00:54", "countdate": "2020-06-03 00:00:00", "modifyTime": "2020-06-03 09:01:16", "createTime": "2020-06-03 09:01:16", "mallId": 4, "accountId": 1, "personUnid": "26aabf3c-a475-11ea-8f93-0367bf41ed29", "status": 0, "happyConf": 0, "historyArrivalCount": 0, "todayArrivalCount": 0, "unid": "2eb6ace3-fb91-4502-9470-8af73b2e19b7", "faceScore": 97.0, "faceType": 1, "facePicNum": 1, "bodyPicNum": 0, "faceFeatureType": 1, "bodyFeatureType": -1, "facePath": "face/20200603/227d123e-bf7a040f-01/", "trackPath": "track/20200603/227d123e-bf7a040f-01/" }, { "id": 4941, "deviceId": 3, "channelId": 3, "gateId": 4, "deviceSerialnum": "227d123e-bf7a040f", "channelSerialnum": "227d123e-bf7a040f-01", "personType": 2, "facePic": "227d123e-bf7a040f-20200602120353-face-0.jpg", "mood": 0, "age": 2, "gender": 1, "direction": 1, "counttime": "2020-06-02 12:03:53", "countdate": "2020-06-02 00:00:00", "modifyTime": "2020-06-02 12:04:15", "createTime": "2020-06-02 12:04:15", "mallId": 4, "accountId": 1, "personUnid": "26aabf3c-a475-11ea-8f93-0367bf41ed29", "status": 0, "happyConf": 0, "historyArrivalCount": 0, "todayArrivalCount": 0, "unid": "ec57bdc5-5c2e-4b41-968d-efbf366a620b", "faceScore": 100.0, "faceType": 1, "facePicNum": 1, "bodyPicNum": 0, "faceFeatureType": 1, "bodyFeatureType": -1, "facePath": "face/20200602/227d123e-bf7a040f-01/", "trackPath": "track/20200602/227d123e-bf7a040f-01/" }] }
\ No newline at end of file \ No newline at end of file
<template>
<div class="template-box content_div_main">
<el-row class="">
<el-form :inline="true" class="search-form" size="small">
<el-form-item label="考点名称:" label-width="82px">
<el-select v-model="examinationId" placeholder="请选择" @change="changeExamination">
<el-option
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="人员类型:">
<el-select v-model="typeId" placeholder="请选择">
<el-option
v-for="item in types"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="校对结果:">
<el-select v-model="proofrendResut" placeholder="请选择">
<el-option
v-for="item in snapshots"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号:">
<el-input type="text" class="bla bra br0" v-model="idCard" placeholder="" style="width: 192px"></el-input>
</el-form-item>
<el-form-item>
<el-button class="search-btn" @click="getUserList" :disabled="examinationId === '' || typeId === ''">查询</el-button>
<el-button class="search-btn ml10" @click="upLoadData" :disabled="examinationId === '' || typeId === ''">上传校对结果</el-button>
</el-form-item>
</el-form>
</el-row>
<el-row>
<el-table :data="systableData" style="width:98%;margin:20px auto;" class="table_m_type" height="700">
<div slot="empty">
<div class="no-data-box">
<img src="../../../assets/img/nodata.png" alt="暂无数据"/>
<div>暂无数据</div>
</div>
</div>
<el-table-column type="index" width="" label="序号"></el-table-column>
<!-- <el-table-column prop="" label="序号" width=""></el-table-column> -->
<el-table-column prop="idCard" label="身份证号" width=""></el-table-column>
<el-table-column prop="" label="校对结果" width="">
<template slot-scope="scope">
<div>{{ scope.row.snapshotCount > 0 ? '认证通过' : '认证不通过' }}</div>
</template>
</el-table-column>
<el-table-column prop="" label="证件照片" align="center">
<template slot-scope="scope">
<el-popover placement="left" trigger="hover">
<div class="face-img-box" slot="reference">
<img
:src="dealCardImg(scope.row)"
width="50"
height="50"
alt
class="face-img"
:onerror="defaultImg"
/>
</div>
<img
:src="dealCardImg(scope.row)"
:alt="dealCardImg(scope.row)"
width="200"
height="200"
class="zoomout-img"
:onerror="defaultImg"
/>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="" label="抓拍照片" width="">
<template slot-scope="scope" align="center">
<div class="tab-btn-box">
<span class="table-btn" @click="getItemUserImg(scope.$index, scope.row)">抓拍照片</span>
</div>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row>
<div style="display: flex; flex-direction:row-reverse ">
<el-pagination
class="mt10"
@current-change="handleCurrentChange" :current-page.sync="currentPage"
:page-size="limit"
background
layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</el-row>
<el-row>
<statusdetails ref="detail"></statusdetails>
</el-row>
</div>
</template>
<script>
const { picUrls = '' } = window.SECURITY_CONF
import defaultImg from "@/assets/img/default.png";
import statusdetails from './detail'
export default {
components:{
statusdetails
},
data() {
return {
options: [],
examinationId: "",
systableData: [],
total:0,
currentPage:1,
limit:20,
proofrendResut: '全部',
types: [],
typeId: "",
idCard: null,
accountId:localStorage.getItem("accountId"),
snapshots: [
{
value: '全部',
lable: '全部'
},
{
value: 'snapshotCount',
label: '认证不通过'
},
{
value: 'snapshotCount_gt',
label: '认证通过'
}
],
picUrls,
defaultImg,
}
},
methods: {
async upLoadData () {
try {
const response = await this.axios.get(this.API.url+`/persons/socialSecurity/sendComparisonResults`, {
params: {
mallId: this.examinationId,
personType: this.typeId
}
});
this.$alert(response.data.msg, '', {
confirmButtonText: '确定'
});
} catch (err) {
this.$message.error("上传校队失败");
}
},
userDataSuccess () {
this.$alert('这是一段内容', '标题名称', {
confirmButtonText: '确定'
});
},
getMalls () {
this.axios.get(this.API.url+`/malls`, {
params: {
accountId: this.accountId,
status: 1,
type: 1
}
}).then(response => {
if (response && response.data && response.data.data) {
this.options = response.data.data
} else {
this.options = []
}
});
},
// 获取所有用户
getUserList () {
const { proofrendResut } = this
let data = {}
if (proofrendResut === '全部') {
data = {
snapshotCount: null
}
} else if (proofrendResut === 'snapshotCount') {
data = {
snapshotCount: 0
}
} else if (proofrendResut === 'snapshotCount_gt') {
data = {
snapshotCount_gt: 0
}
}
this.axios.get(this.API.url+`/persons`, {
params: {
mallId: this.examinationId,
idCard: this.idCard === "" ? null : this.idCard,
page:this.currentPage,
pageSize: this.limit,
...data
}
}).then(response => {
if (response.data && response.data.data && response.data.data.list) {
// response.data.data.list.forEach((item, index) => {
// item.tabOrder = ++index;
// });
this.systableData = response.data.data.list
this.total = response.data.data.total || 0
} else {
this.systableData = []
}
});
},
getTypes () {
this.axios.get(this.API.url+"/personTypes", {
params: {
accountId: this.accountId,
mallId: this.examinationId,
}
}).then(response => {
if (response && response.data && response.data.data) {
this.types = response.data.data
} else {
this.types = []
}
});
},
changeExamination () {
if (this.examinationId !== '') {
this.getTypes()
}
},
handleCurrentChange(val){
this.currentPage = val;
this.getUserList();
},
dealCardImg(row) {
let img_path = "";
if (!row.personPic) {
img_path = this.defaultImg;
} else {
img_path = this.picUrls + "/" + row.personPic;
}
return img_path;
},
getItemUserImg (index, row) { // 单条获取照片
this.$refs.detail.initImg(row)
},
},
created() {
this.getMalls()
},
};
</script>
<style lang="stylus" scoped>
.progress-content {
width 100%;
display flex;
justify-content space-between;
align-items center;
box-sizing border-box;
padding-right 18px;
margin-bottom 10px;
}
.line {
width 100%;
height 1px;
background-color #efefef;
}
.face-img-box {
position relative;
width 50px;
height 50px;
border 1px solid #dcdcdc;
margin 0px auto;
cursor zoom-in;
}
.pic-popover {
margin 5px 0;
padding 10px;
background #fff;
border 1px solid #ebeef5;
box-shadow 0 2px 12px 0 rgba(0, 0, 0, 0.1);
border-radius 4px;
}
.face-img {
width 50px;
height 50px;
}
.zoomout-img {
width auto;
height 200px;
}
</style>
...@@ -3,6 +3,7 @@ window.SECURITY_CONF = { ...@@ -3,6 +3,7 @@ window.SECURITY_CONF = {
// picUrls: 'http://15.72.10.193/images/', // picUrls: 'http://15.72.10.193/images/',
// mapUrls: 'http://15.72.10.193/map' // mapUrls: 'http://15.72.10.193/map'
urls: 'https://store.keliuyun.com/report', urls: 'https://store.keliuyun.com/report',
// urls: 'http://192.168.9.146:17070',
picUrls: 'https://vion-retail.oss-cn-beijing.aliyuncs.com/', picUrls: 'https://vion-retail.oss-cn-beijing.aliyuncs.com/',
mapUrls: 'http://19610hs911.iask.in/static/pics/qingdaoMap/roadmap' mapUrls: 'http://19610hs911.iask.in/static/pics/qingdaoMap/roadmap'
} }
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!