This commit is contained in:
zzyuan 2025-12-09 18:56:56 +08:00
commit 25179e7051
9 changed files with 151 additions and 49 deletions

View File

@ -164,6 +164,18 @@ export function getSysUserListApi(data) {
params:data
})
}
export function getApplyUserListApi(data) {
return request({
url: '/certificate/certificate_check/certificateCheck/applyUserlist',
method: 'get',
headers: {
//"merchant-id":"378915229716713472",
},
params:data
})
}
export function getDevicelistApi(data) {
return request({
url: '/certificate/certificate_returnmanage/certificateSave/devicelist',

View File

@ -1,6 +1,5 @@
import request from '@/utils/request'
// 证件管理-新增
export function getStatisticsApi(data) {
return request({
url: '/certificate/certificate_manage/certificateInfo/statistics',
@ -11,3 +10,14 @@ export function getStatisticsApi(data) {
data: data
})
}
export function getTaskStatisticsApi(data) {
return request({
url: '/certificate/certificate_manage/certificateInfo/taskStatistics',
method: 'post',
headers: {
//"merchant-id":"378915229716713472",
},
data: data
})
}

View File

@ -204,7 +204,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="baseForm.name" placeholder="请输入" maxlength="30" clearable/>
<el-input v-model="baseForm.name" readonly="true" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col el-col :span="12" v-if="baseForm.deptId !== 0">
@ -425,7 +425,7 @@
//
open: false,
checked: false,
isCreateFlage:true,
isCreateFlage:false,
userNameFlage:false,
certificateNos:[],
userIds:[],

View File

@ -382,7 +382,7 @@
if(CertificateNos!=null&&CertificateNos.length>0){
}else{
this.$modal.msgError("请选择证件");
this.$modal.msgWarning("请选择证件");
return;
}
var titlemsg="是否确定自助取证?"

View File

@ -33,7 +33,7 @@
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@ -90,7 +90,7 @@
</template>
</el-table-column>
<el-table-column label="申请状态" align="center" prop="applyState" :show-overflow-tooltip="true">
<template slot-scope="scope">
<template slot-scope="scope">
<span v-if="scope.row.applyState==-1" style="color: #FF7322;font-size: 15px;">待提交</span>
<span v-if="scope.row.applyState==0" style="color: #FF7322;font-size: 15px;">待审核</span>
<span v-if="scope.row.applyState==1" style="color: #FEE838;font-size: 15px;">审核中</span>
@ -98,7 +98,7 @@
<span v-if="scope.row.applyState==3" style="color: #FEE838;font-size: 15px;">已驳回</span>
<span v-if="scope.row.applyState==4" style="color: #FF7322;font-size: 15px;">已执行</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -107,7 +107,7 @@
@click="handleUpdate(scope.row)"
>编辑</el-button>
<el-button
size="mini"
size="mini"
type="text"
@click="handleView(scope.row)"
>查看</el-button>
@ -119,19 +119,27 @@
>删除</el-button>
</template>
</el-table-column>
</el-table>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title+''" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="120px" style="height: 650px;overflow-y: auto;">
<el-row>
<el-form-item label-width="120px" label="申请类型" prop="applyType">
<el-radio-group v-model="baseForm.applyType" size="small">
<el-radio @change="handleRadioChange('1')" label="1">存证</el-radio>
<el-radio @change="handleRadioChange('2')" label="2">取证</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="申请人" prop="name">
@ -155,7 +163,7 @@
:label="item.certificateNo"
:value="item.certificateNo"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
@ -237,7 +245,7 @@
:action="upload.url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:file-list="fileList"
:file-list="fileList"
:on-success="handleFileSuccess"
:on-remove="handleRemove"
:on-preview="handlePreviewDownloadFile"
@ -293,7 +301,7 @@
<el-button type="primary" @click="submitForm2"> </el-button>
<el-button @click="cancel2"> </el-button>
</div>
</el-dialog>
</el-dialog>
<el-dialog title="附件列表" :visible.sync="openFile" width="400px" append-to-body>
<div style="width: 100%;padding: 10px;color: #46a6ff;">
@ -301,10 +309,10 @@
{{ item.name }}
</div>
</div>
<div slot="footer" class="dialog-footer">
<div slot="footer" class="dialog-footer">
<el-button @click="openFile=false"> </el-button>
</div>
</el-dialog>
</el-dialog>
</div>
</template>
@ -357,13 +365,13 @@
pageNum: 1,
pageSize: 10,
idNumber:null,//
name:null,//
name:null,//
},
activeName:"baseSetting",
deviceData:{},
//
postOptions: [],
//
postOptions: [],
//
baseForm: {
userId:"",
applyType:1,
@ -405,8 +413,8 @@
dateRange: [
{ required: true, message: "预计使用时间不能为空", trigger: "change" }
],
},
},
//
upload: {
//
@ -450,7 +458,7 @@
}
getCertificateApplyListPageApi(param).then(response => {
this.tableListData = response.rows;
this.total = Number(response.total);
this.loading = false;
});
@ -470,15 +478,15 @@
startTime:"",
endTime:"",
dateRange:[]
};
};
this.resetForm("baseForm");
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.reset();
this.open = true;
this.isReadOnly=false;
this.title = "新增";
this.title = "新增";
console.log("this.baseForm",this.baseForm);
},
/** 修改按钮操作 */
@ -486,7 +494,7 @@
this.reset();
this.open = true;
this.isReadOnly=true;
this.baseForm = Object.assign({}, row)
this.baseForm = Object.assign({}, row)
this.baseForm.dateRange = [row.startTime,row.endTime]
if(row.fileUrl&&row.fileUrl!=''){
let arr = row.fileUrl.split(",");
@ -503,7 +511,7 @@
}
his.isView = false
this.title = "修改";
},
},
handleView(row) {
this.reset();
this.open = true;
@ -543,8 +551,8 @@
this.baseForm.endTime = ""
}
//applyState -1 0
this.baseForm.applyState = type;
//fileUrls
this.baseForm.applyState = type;
//fileUrls
this.baseForm.fileUrls = this.fileUrls
this.baseForm.fileNames = this.fileNames
console.log("this.baseForm",this.baseForm);
@ -590,7 +598,9 @@
//
handleSelect(){
this.openSelectUser = true;
getSysUserListApi({}).then(response => {
console.log("this.baseForm",this.baseForm);
const param={"applyType":this.baseForm.applyType}
getApplyUserListApi(param).then(response => {
console.log("response",response);
this.allUserList=response;
this.$set(this.baseForm2,"userId",this.baseForm.userId)
@ -637,7 +647,7 @@
this.getCertificateList();//
},
/** 删除按钮操作 */
handleDelete(row) {
handleDelete(row) {
this.$modal.confirm('是否确认删除数据项?').then(() => {
delCertificateApplyApi({checkId:row.checkId}).then(response => {
console.log("delCertificateApplyApi",response);
@ -655,9 +665,9 @@
handleFileSuccess(response, file, fileList) {
this.upload.isUploading = false;
if(response.code==200){
this.fileUrls.push(response.data.url)
this.fileUrls.push(response.data.url)
this.fileNames.push(response.data.name)
this.$modal.msgSuccess(response.msg);
this.$modal.msgSuccess(response.msg);
}else{
this.$modal.msgError(response.msg);
}
@ -672,7 +682,7 @@
this.fileUrls.splice(sum, 1)
this.fileNames.splice(sum, 1)
},
async handlePreviewDownloadFile(file) {
async handlePreviewDownloadFile(file) {
if (file.url != null && file.url !== '') {
let downloadUrl = file.url;
try {
@ -692,17 +702,17 @@
console.error(error);
}
}
if (file.raw != null && file.raw !== '') {
if (file.raw != null && file.raw !== '') {
const blob = file.raw; // Blob
const link = document.createElement('a');
link.href = URL.createObjectURL(blob); // URL
link.download = file.name; //
document.body.appendChild(link); // DOM
link.click(); //
document.body.removeChild(link); // <a>
document.body.removeChild(link); // <a>
}
},
checkFile(row){
checkFile(row){
this.fileList=[]
this.fileUrls=[]
this.fileNames = []
@ -729,7 +739,7 @@
// this.single = selection.length !== 1
// this.multiple = !selection.length
},
formatDate(date) {
formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 0
const day = String(date.getDate()).padStart(2, '0');

View File

@ -111,6 +111,8 @@
v-model="baseForm.processDate"
type="date"
placeholder="选择日期"
:disabled-date="disabledBeforeToday"
:picker-options="pickerOptions"
format="yyyy-MM-dd" style="width: 100%"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
@ -145,6 +147,13 @@
components: { Treeselect },
data() {
return {
pickerOptions: {
disabledDate(time) {
//
return time.getTime() < Date.now() - 8.64e7// -8.64e7
//
// return time.getTime() > Date.now() - 8.64e7// -8.64e7
} },
//
loading: true,
//
@ -215,6 +224,14 @@
},
methods: {
disabledBeforeToday(time) {
//
const today = new Date();
today.setHours(0, 0, 0, 0); // 12
//
console.log("disabledBeforeToday",time)
return time.getTime() < today.getTime();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -262,7 +279,7 @@
const CertificateNos = this.ids
if(CertificateNos!=null&&CertificateNos.length>0){
}else{
this.$modal.msgError("请选择证件");
this.$modal.msgWarning("请选择证件");
return;
}
this.open = true;
@ -280,7 +297,7 @@
const CertificateNos = this.ids
if(CertificateNos!=null&&CertificateNos.length>0){
}else{
this.$modal.msgError("请选择证件");
this.$modal.msgWarning("请选择证件");
return;
}
this.open = true;

View File

@ -68,8 +68,8 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<div style="width: 98%;margin: 10px;display: flex;flex-direction: column;align-items: flex-end;">
<div style="font-weight: bold;">存证任务数/已完成数{{saveNum}}/{{saveNumd}}</div>
<div style="font-weight: bold;">取证任务数/已完成数{{takeNum}}/{{takeNumd}}</div>
<div style="font-weight: bold;">存证任务数/已完成数{{statistics.saveNum}}/{{statistics.savedNum}}</div>
<div style="font-weight: bold;">取证任务数/已完成数{{statistics.takeNum}}/{{statistics.takedNum}}</div>
</div>
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<el-table-column type="selection" width="60" align="center" fixed="left"/>
@ -170,6 +170,7 @@
} from '@/api/system/dept'
import { getCertificateTaskListPageApi,addCertificateInfoApi, updateCertificateInfoApi, deleteCertificateInfoApi,
getCertificateTakeReturnPageApi,addCertificateCheckApi,getCertificateTaskNumApi } from "@/api/certificateManage/index";
import { getTaskStatisticsApi } from "@/api/certificateStatistics/index";
import base64 from 'base-64';
import { getToken } from '@/utils/auth'
import Treeselect from '@riophae/vue-treeselect'
@ -206,6 +207,12 @@
checked: false,
//
deptOptions: [],
statistics:{
saveNum:0,
savedNum:0,
takeNum:0,
takedNum:0
},
//
queryParams: {
pageNum: 1,
@ -313,6 +320,7 @@
mounted(){
this.getList();
this.getNum();
this.initStatistics();
},
methods: {
@ -320,6 +328,17 @@
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.initStatistics();ss
},
initStatistics(){
let param = {}
getTaskStatisticsApi(param).then(response => {
console.log("getTaskStatisticsApi",response)
if(response.code==200){
this.statistics =response.data;
console.log("this.statistics",this.statistics)
}
});
},
/** 重置按钮操作 */
resetQuery() {

View File

@ -17,10 +17,10 @@
<el-option label="大型" value="3"/>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="unitName">
<el-form-item label="关键字" prop="keyWord">
<el-input
v-model="queryParams.unitName"
placeholder="请输入单位名称"
v-model="queryParams.keyWord"
placeholder="请输入"
clearable maxlength="20"
style="width: 300px"
@keyup.enter.native="handleQuery"
@ -145,7 +145,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="功能接口" prop="funImp">
<el-input v-model="baseForm.funImp" placeholder="请输入功能接口" maxlength="30" clearable/>
<el-input v-model="baseForm.funImp" placeholder="http://xxx.xxx.xxx:8088/externaltask/accessfunction" maxlength="30" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -235,6 +235,8 @@
queryParams: {
pageNum: 1,
pageSize: 10,
deviceName:"",
deviceType:"",
keyWord:"",//
},
activeName:"baseSetting",
@ -252,7 +254,8 @@
deviceAddr:"",
deviceMac:"",
deviceGateway:"",
devicePwd:""
devicePwd:"",
funImp:"http://xxx.xxx.xxx:8088/externaltask/accessfunction"
},
//
baseFormRules: {
@ -343,6 +346,8 @@
let param = {
"pageNum":this.queryParams.pageNum,
"pageSize":this.queryParams.pageSize,
"deviceName":this.queryParams.deviceName,
"deviceType":this.queryParams.deviceType,
"searchValue":this.queryParams.keyWord
}
console.log("param",param)
@ -373,7 +378,8 @@
deviceAddr:"",
deviceMac:"",
deviceGateway:"",
devicePwd:""
devicePwd:"",
funImp:"http://xxx.xxx.xxx:8088/externaltask/accessfunction"
};
this.resetForm("baseForm");
},

View File

@ -100,8 +100,8 @@
></right-toolbar>
</el-row>
<div style="width: 98%;margin: 10px;display: flex;justify-content: flex-end;">
<span style="font-weight: bold;">有证人数231</span>
<span style="font-weight: bold;margin-left: 20px;">无证人数65</span>
<span style="font-weight: bold;">有证人数{{statistics.ownNum}}</span>
<span style="font-weight: bold;margin-left: 20px;">无证人数{{statistics.unOwnNum}}</span>
</div>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center"/>
@ -170,6 +170,7 @@ import {
deptTreeSelect,
} from '@/api/system/user'
import {getCertificateUserListPageApi,addCertificateCheckApi} from "@/api/certificateManage/index"
import { getStatisticsApi } from "@/api/certificateStatistics/index";
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
@ -206,6 +207,22 @@ export default {
children: 'children',
label: 'label',
},
statistics:{
registerNum:0,
ownNum:0,
unOwnNum:0,
storeNum:0,
unStoreNum:0,
passPortNum:0,
outPassPortNum:0,
inPassPortNum:0,
hMCardNum:0,
outHMCardNum:0,
inHMCardNum:0,
taiwanNum:0,
outTaiwanNum:0,
inTaiwanNum:0,
},
//
queryParams: {
pageNum: 1,
@ -241,6 +258,7 @@ export default {
created() {
this.getList()
this.getDeptTree()
this.initStatistics();
},
methods: {
/* 手机号码脱敏 */
@ -248,6 +266,16 @@ export default {
if (!phone) return ''
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
},
initStatistics(){
let param = {}
getStatisticsApi(param).then(response => {
console.log("getStatisticsApi",response)
if(response.code==200){
this.statistics =response.data;
console.log("this.statistics",this.statistics)
}
});
},
/** 查询用户列表 */
getList() {
this.loading = true