|
|
|
|
@ -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>
|
|
|
|
|
|