上传记录、档案信息添加

master
wanglei 2 years ago
parent d5e1526bd7
commit 085fe641ac

@ -0,0 +1,10 @@
import request from '@/utils/request'
// 查询档案目录列表
export function listSearch(query) {
return request({
url: '/dangan/search/list',
method: 'get',
params: query
})
}

@ -78,7 +78,7 @@
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="400px">
<template slot-scope="scope">
<el-button
size="mini"
@ -107,13 +107,25 @@
icon="el-icon-thumb"
@click="handleDACJ(scope.row)"
>档案采集</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleSCJL(scope.row)"
>上传记录</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleDAXX(scope.row)"
>档案信息</el-button>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改档案目录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="上级目录" prop="pid">
<treeselect
v-model="form.pid"
@ -125,7 +137,7 @@
/>
</el-form-item>
<el-form-item label="业务类型" prop="ywType" v-if="!form.id && form.pid===0">
<el-select v-model="form.ywType" placeholder="请选择业务类型" style="width: 100%;">
<el-select v-model="form.ywType" placeholder="请选择业务类型" style="width: 100%;" @change="changeYwType">
<el-option
v-for="dict in dict.type.yw_type"
:key="dict.value"
@ -135,7 +147,9 @@
</el-select>
</el-form-item>
<el-form-item label="目录名称" prop="muName">
<el-input v-model="form.muName" placeholder="请输入目录名称" />
<el-input v-model="form.muName" placeholder="请输入目录名称" style="width:310px;margin-right:10px;"/>
<el-button size="mini" type="primary" @click="selectXZCSQ(0)"></el-button>
<el-button size="mini" type="primary" @click="selectXZCSQ(2)">/</el-button>
</el-form-item>
<el-form-item label="显示顺序" prop="orderNum">
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
@ -158,18 +172,145 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 选择乡镇或村/社区 -->
<el-dialog :title="xzcsq.title" :visible.sync="xzcsq.open" width="800px" append-to-body top="6vh">
<div>
<el-form :model="xzcsq.queryParams" :inline="true" label-width="70px">
<el-form-item label="目录名称" prop="muName" style="margin-bottom: 10px">
<el-input
v-model="xzcsq.queryParams.muName"
placeholder="请输入目录名称"
clearablesize="small"
@keyup.enter.native="xzcsqQuery"
/>
</el-form-item>
<el-form-item label="父区域" prop="pid" v-if="xzcsq.queryParams.areaType===2">
<el-select v-model="xzcsq.queryParams.pid" placeholder="请选择">
<el-option
v-for="item in xzcsq.parentOption"
:key="item.id"
:label="item.muName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-search" size="small" @click="xzcsqQuery"></el-button>
</el-form-item>
</el-form>
<el-alert title="双击选择" type="info" style="margin-bottom: 10px;" :closable="false"></el-alert>
<el-table v-loading="xzcsq.loading" :data="xzcsq.list" @row-dblclick="xzcsqRowChange">
<el-table-column label="目录名称" align="center" prop="muName" />
<el-table-column label="区域分类" align="center" prop="areaType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.area_type" :value="scope.row.areaType"/>
</template>
</el-table-column>
</el-table>
<pagination
v-show="xzcsq.total>0"
:total="xzcsq.total"
:page.sync="xzcsq.queryParams.pageNum"
:limit.sync="xzcsq.queryParams.pageSize"
@pagination="xzcsqQuery"
/>
</div>
</el-dialog>
<!-- 上传记录 -->
<el-dialog title="上传记录" :visible.sync="scjl.open" width="1000px" append-to-body top="6vh">
<el-tabs v-model="scjl.recognize" @tab-click="scjlActiveClick">
<el-tab-pane label="未识别" name="0">
<div v-if="scjl.list.length>0" style="display:flex;justify-content: space-between;margin:10px;">
<el-checkbox v-model="scjl.checkAll" @change="handleCheckAllChange"></el-checkbox>
<el-button icon="el-icon-full-screen" type="primary" @click="OCRRecognition">OCR</el-button>
</div>
<div class="wsb">
<el-checkbox v-for="item in scjl.list" :label="item.picName" :key="item.id" v-model="item.checked" @change="handleCheckChange(item)">
<div class="list">
<el-image
style="width: 120px; height: 120px"
:src="item.picUrl"
:preview-src-list="[item.picUrl]">
</el-image>
<p>{{ item.picName }}</p>
<p>{{ item.muPath }}</p>
<p>{{ item.wlsjPath }}</p>
</div>
</el-checkbox>
</div>
<el-empty :image-size="240" v-if="scjl.list.length===0"></el-empty>
</el-tab-pane>
<el-tab-pane label="已识别" name="1">
<div class="ysb">
<div class="list" v-for="item in scjl.list" :label="item.picName" :key="item.id">
<el-image
style="width: 120px; height: 120px"
:src="item.picUrl"
:preview-src-list="[item.picUrl]">
</el-image>
<p>{{ item.picName }}</p>
<p>{{ item.muPath }}</p>
<p>{{ item.wlsjPath }}</p>
</div>
</div>
<el-empty :image-size="240" v-if="scjl.list.length===0"></el-empty>
</el-tab-pane>
</el-tabs>
</el-dialog>
<!-- 档案信息 -->
<el-dialog title="档案信息" :visible.sync="daxx.open" width="900px" append-to-body top="6vh">
<el-table :data="daxx.list">
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="身份证号" align="center" prop="cardId" />
<el-table-column label="户主姓名" align="center" prop="hzName" />
<el-table-column label="与户主关系" align="center" prop="relation" />
<el-table-column label="出生日期" align="center" prop="birthday" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="地址" align="center" prop="address" />
<el-table-column label="籍贯" align="center" prop="jiguan" />
<el-table-column label="档案图片" align="center" prop="pictures" >
<template slot-scope="scope">
<image-preview :src="scope.row.pictures" :width="50" :height="50"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
<pagination
v-show="daxx.total>0"
:total="daxx.total"
:page.sync="daxx.queryParams.pageNum"
:limit.sync="daxx.queryParams.pageSize"
@pagination="daxxQuery"
/>
</el-dialog>
</div>
</template>
<script>
import { listCatalog, getCatalog, delCatalog, addCatalog, updateCatalog } from "@/api/dangan/catalog";
import { listPictureRecard } from "@/api/dangan/pictureRecard";
import { listAreaSort } from "@/api/dangan/areaSort";
import { listSearch } from "@/api/dangan/search";
import { collectRecongnize } from "@/api/dangan/collection";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Catalog",
components: { Treeselect },
dicts: ['yw_type', 'sys_normal_disable'],
dicts: ['yw_type', 'sys_normal_disable', 'area_type'],
data() {
return {
//
@ -213,11 +354,48 @@ export default {
orderNum: [
{ required: true, message: "目录顺序不能为空", trigger: "blur" }
],
},
// /
xzcsq:{
title:"",
open: false,
list: [],
parentOption: [],
total: 0,
queryParams:{
pageNum: 1,
pageSize: 10,
muName: null,
areaType: 2,
pid: null,
}
},
//
scjl:{
open: false,
checkAll: false,
list: [],
// ID
muId: null,
recognize: '0'
},
//
daxx:{
open: false,
list: [],
total: 0,
queryParams:{
pageNum: 1,
pageSize: 10,
ywType: null,
id: null,
}
}
};
},
created() {
this.getList();
this.getParentOption();
},
methods: {
/** 查询目录列表 */
@ -345,9 +523,181 @@ export default {
handleDACJ(row){
this.$router.push("/collection?id=" + row.id);
},
//
selectPid(){
this.form.ywType = undefined;
}
},
//
changeYwType(val){
this.form.muName = this.dict.type.yw_type.find(option => option.value === val).label;
},
/** 查询乡镇列表 */
getParentOption() {
listAreaSort({
pageNum: 1,
pageSize: 1000000000,
areaType: 0
}).then(response => {
this.xzcsq.parentOption = response.rows;
});
},
// /
selectXZCSQ(areaType){
this.xzcsq.list = [];
this.xzcsq.queryParams.pageNum = 1;
this.xzcsq.queryParams.pageSize = 10;
this.xzcsq.queryParams.pid = null;
if(areaType===0){
this.xzcsq.title = '选择乡镇';
}
if(areaType===1){
this.xzcsq.title = '选择村/社区';
}
this.xzcsq.open = true;
this.xzcsq.queryParams.areaType = areaType;
this.xzcsqQuery()
},
// /
xzcsqQuery(){
listAreaSort(this.xzcsq.queryParams).then(response => {
this.xzcsq.list = response.rows;
this.xzcsq.total = response.total;
});
},
// /
xzcsqRowChange(row){
this.form.muName = row.muName;
this.xzcsq.open = false;
},
//
handleSCJL(row){
this.scjl.list = [];
this.scjl.open = true;
this.scjl.muId = row.id;
this.scjl.recognize = '0';
this.getPictureRecard();
},
//
getPictureRecard(){
listPictureRecard({
pageNum: 1,
pageSize: 1000000000,
muId: this.scjl.muId,
recognize: this.scjl.recognize,
}).then(response => {
this.scjl.list = response.rows;
});
},
//
scjlActiveClick(tab){
this.scjl.recognize = tab.name;
this.scjl.list = [];
this.getPictureRecard();
},
//
handleCheckAllChange(val) {
this.scjl.list.forEach(item =>{
item['checked']= val
})
this.scjl.list = [...this.scjl.list]
},
//
handleCheckChange(val) {
let checkAll = true
this.scjl.list.forEach(item=>{
if(!item['checked']){
checkAll = false
}
})
this.scjl.list = [...this.scjl.list]
this.scjl.checkAll = checkAll
},
// OCR
OCRRecognition(){
let arr = [];
this.scjl.list.forEach(item => {
if(item.checked){
arr.push(item)
}
})
if(arr.length>0){
collectRecongnize(arr).then(response => {
this.scjl.list = [];
this.$modal.msgSuccess("操作成功");
this.getPictureRecard();
});
}else {
this.$alert(`请先选择需要识别的档案!`, `提示`, {
type: 'warning'
});
}
},
//
handleDAXX(row){
this.daxx.list = [];
this.daxx.open = true;
this.daxx.queryParams.pageNum = 1;
this.daxx.queryParams.pageSize = 10;
this.daxx.queryParams.id = row.id;
this.daxx.queryParams.ywType = row.ywType;
this.daxxQuery()
},
//
daxxQuery(){
listSearch(this.daxx.queryParams).then(response => {
if(this.daxx.queryParams.ywType==='0'){
this.daxx.list = response.czrkdj;
}else {
this.daxx.list=[]
}
this.daxx.total = response.total;
});
},
}
};
</script>
<style scoped lang="scss">
::v-deep .el-checkbox__inner{
width: 20px;
height: 20px;
}
::v-deep .el-checkbox__inner::after {
height: 10px;
left: 7px;
top: 2px;
}
.wsb{
display:flex;
flex-wrap: wrap;
max-height: 540px;
overflow-y: scroll;
.list{
width:160px;
background:#eee;
margin:5px;
text-align:center;
padding:10px;
border-radius:10px
}
}
.ysb {
display:flex;
flex-wrap: wrap;
min-height:250px;
max-height: 540px;
overflow-y: scroll;
.list{
width:160px;
background:#eee;
margin:5px 15px;
text-align:center;
padding-top:10px;
border-radius:10px
}
}
</style>

Loading…
Cancel
Save