新增鉴定管理

main
mo 1 year ago
parent d8acdca958
commit 3127781edb

@ -0,0 +1,64 @@
import request from '@/utils/request'
// 创建档案鉴定
export function createAuthenticate(data) {
return request({
url: '/archives/authenticate/create',
method: 'post',
data: data
})
}
// 更新档案鉴定
export function updateAuthenticate(data) {
return request({
url: '/archives/authenticate/update',
method: 'put',
data: data
})
}
// 删除档案鉴定
export function deleteAuthenticate(id) {
return request({
url: '/archives/authenticate/delete?id=' + id,
method: 'delete'
})
}
// 获得档案鉴定
export function getAuthenticate(id) {
return request({
url: '/archives/authenticate/get?id=' + id,
method: 'get'
})
}
// 获得档案鉴定分页
export function getAuthenticatePage(query) {
return request({
url: '/archives/authenticate/page',
method: 'get',
params: query
})
}
// 获得档案鉴定列表
export function getAuthenticateList(query) {
return request({
url: '/archives/authenticate/get/record',
method: 'get',
params: query
})
}
// 导出档案鉴定 Excel
export function exportAuthenticateExcel(query) {
return request({
url: '/archives/authenticate/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

@ -0,0 +1,178 @@
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="98px"
>
<el-form-item label="鉴定人" prop="userId">
<el-input
v-model="queryParams.userId"
placeholder="请输入鉴定人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['archives:authenticate:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="档案类型" align="center" prop="type" />
<el-table-column label="鉴定时间" align="center" prop="date" width="180">
<template v-slot="scope">
<span>{{ parseTime(scope.row.date) }}</span>
</template>
</el-table-column>
<el-table-column label="档案位置" align="center" prop="position" />
<el-table-column
label="保存期限"
align="center"
prop="timeLimit"
width="180"
>
<template v-slot="scope">
<span>{{ parseTime(scope.row.timeLimit) }}</span>
</template>
</el-table-column>
<el-table-column label="鉴定人" align="center" prop="userName" />
<el-table-column label="业务实体" align="center" prop="company" />
<el-table-column label="鉴定结果" align="center" prop="result" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
<!-- 分页组件 -->
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {
getAuthenticatePage,
exportAuthenticateExcel,
} from "@/api/fileAuth/authenticate";
export default {
name: "Authenticate",
components: {},
data() {
return {
//
loading: true,
//
exportLoading: false,
//
showSearch: true,
//
total: 0,
//
list: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNo: 1,
pageSize: 10,
type: null,
date: [],
position: null,
timeLimit: null,
recordId: null,
userId: null,
userName: null,
recordName: null,
createTime: [],
createBy: null,
deptId: null,
deptName: null,
companyId: null,
company: null,
remark: null,
},
//
form: {},
//
rules: {},
};
},
created() {
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
//
getAuthenticatePage(this.queryParams).then((response) => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 导出按钮操作 */
handleExport() {
//
let params = { ...this.queryParams };
params.pageNo = undefined;
params.pageSize = undefined;
this.$modal
.confirm("是否确认导出所有档案鉴定数据项?")
.then(() => {
this.exportLoading = true;
return exportAuthenticateExcel(params);
})
.then((response) => {
this.$download.excel(response, "档案鉴定.xls");
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>

@ -0,0 +1,426 @@
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="88px"
>
<el-form-item label="档案类型" prop="vouNum">
<el-input
v-model="queryParams.type"
placeholder="请输入档案类型"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="全宗号" prop="caseNum">
<el-select
v-model="queryParams.caseNum"
placeholder="请选择全宗号"
clearable
>
<el-option
v-for="item in caseNumOptions"
:key="item.id"
:value="item.value"
:label="item.label"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="目录号" prop="catalogNum">
<el-select
v-model="queryParams.catalogNum"
placeholder="请选择目录号"
clearable
>
<el-option
v-for="item in catalogNumOptions"
:key="item.id"
:value="item.value"
:label="item.label"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="案卷号" prop="filesNum">
<el-input
v-model="queryParams.filesNum"
placeholder="请输入案卷号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAuth"
v-hasPermi="['archives:record:create']"
>鉴定</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading="loading"
:data="list"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="业务实体" align="center" prop="company" />
<el-table-column label="归档频次" align="center" prop="frequency" />
<el-table-column label="档案类型" align="center" prop="fileType">
<template v-slot="scope">
<dict-tag
:type="DICT_TYPE.ARCHIVES_FILE_TYPE"
:value="scope.row.fileType"
/>
</template>
</el-table-column>
<el-table-column label="会计年份" align="center" prop="year" />
<el-table-column label="会计月份" align="center" prop="period" />
<el-table-column label="起止凭证号" align="center" prop="vouNum" />
<el-table-column label="全宗号" align="center" prop="caseNum" />
<el-table-column label="目录号" align="center" prop="catalogNum" />
<el-table-column label="案卷号" align="center" prop="filesNum" />
<el-table-column label="档案位置" align="center" prop="site" />
<el-table-column label="关联号" align="center" prop="flowId" />
<el-table-column
label="创建日期"
align="center"
prop="createTime"
width="160"
>
<template v-slot="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="归档详情" align="center" prop="note" />
<el-table-column label="归档状态" align="center" prop="fileStatus">
<template v-slot="scope">
<dict-tag
:type="DICT_TYPE.ARCHIVES_FILE_STATUS"
:value="scope.row.fileStatus"
/>
</template>
</el-table-column>
<el-table-column label="借阅状态" align="center" prop="borrowStatus" />
<el-table-column label="鉴定状态" align="center" prop="identifyStatus" />
<el-table-column label="归档时间" align="center" prop="recordTime" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
<!-- 分页组件 -->
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {
createRecord,
updateRecord,
deleteRecord,
getRecord,
exportRecordExcel,
createCodeRule,
archivesRecord,
} from "@/api/archives/record";
// import { listDept } from "@/api/system/dept";
import { listData } from "@/api/system/dict/data";
import { getSiteTree } from "@/api/setting/organization";
import { getOrganizationPage } from "@/api/setting/organization";
import { getAuthenticateList } from "@/api/fileAuth/authenticate";
export default {
name: "Record",
components: {},
data() {
return {
propName: {
checkStrictly: true,
label: "name",
value: "id",
multiple: false,
},
propName1: {
label: "pName",
value: "pId",
multiple: false,
},
companyOptions: [], //
companyArray: [], //
siteOptions: [], //
siteArray: [], //
//
loading: true,
//
multiple: true,
//
exportLoading: false,
//
showSearch: true,
//
total: 0,
//
list: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNo: 1,
pageSize: 10,
companyId: null,
company: null,
frequency: null,
fileType: null,
year: null,
period: null,
vouNum: null,
caseNum: null,
catalogNum: null,
filesNum: null,
site: null,
flowId: null,
createTime: [],
status: null,
note: null,
fileStatus: null,
borrowStatus: null,
identifyStatus: null,
remark: null,
recordTime: [],
deptId: null,
deptName: null,
attr1: null,
attr2: null,
attr3: null,
attr4: null,
userId: null,
organizationId: null, //
depotId: null, //
cabinetId: null, //
},
//
form: {},
Fileform: {},
//
ids: [],
//
rules: {},
fileTypeOptions: [], //
fileStatusOptions: [], //
catalogNumOptions: [], //
caseNumOptions: [], //
organizationList: [],
};
},
created() {
this.getList();
this.getOrganizationList();
this.getSiteList();
this.handleInitList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
//
getAuthenticateList(this.queryParams).then((response) => {
this.list = response.list;
this.total = response.total;
this.loading = false;
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.multiple = !selection.length;
},
// //
// getCompanyList() {
// listDept().then((response) => {
// this.companyOptions = this.handleTree(response.data, "id", "parentId");
// console.log(this.companyOptions);
// });
// },
// handleChange(value) {
// console.log(value, value[value.length - 1]);
// this.form.companyId = value[value.length - 1]; //id
// },
//
getOrganizationList() {
getOrganizationPage().then((response) => {
this.organizationList = response.data.list;
});
},
handleCompanyChange(val) {
var data = this.organizationList.find((item) => item.id == val);
console.log(data);
this.form.caseNum = data.caseNum;
this.Fileform.caseNum = data.caseNum;
},
//
handleInitList() {
//
listData({
pageNo: 1,
pageSize: 100,
dictType: "archives_file_type",
}).then((res) => {
this.fileTypeOptions = res.data.list || [];
});
//
listData({
pageNo: 1,
pageSize: 100,
dictType: "archives_case_num",
}).then((res) => {
this.caseNumOptions = res.data.list || [];
});
//
listData({
pageNo: 1,
pageSize: 100,
dictType: "archives_catalog_num",
}).then((res) => {
this.catalogNumOptions = res.data.list || [];
});
//
listData({
pageNo: 1,
pageSize: 100,
dictType: "archives_file_status",
}).then((res) => {
this.fileStatusOptions = res.data.list || [];
});
},
//
getSiteList() {
getSiteTree().then((response) => {
this.siteOptions = response.data;
this.siteOptions.map((w) => {
w.children.map((l) => {
let lstr = JSON.stringify(l.children)
.replace(/depotId/g, "lId")
.replace(/cabinetId/g, "pId")
.replace(/cabinetName/g, "pName");
l.children = JSON.parse(lstr);
});
let wstr = JSON.stringify(w.children)
.replace(/organizationId/g, "wId")
.replace(/depotId/g, "pId")
.replace(/depotName/g, "pName");
w.children = JSON.parse(wstr);
});
let ostr = JSON.stringify(this.siteOptions)
.replace(/organizationId/g, "pId")
.replace(/organizationName/g, "pName");
this.siteOptions = JSON.parse(ostr);
console.log(this.siteOptions);
});
},
//
handleSiteChanged(obj) {
if (obj != null) {
this.form.organizationId = obj[0];
this.form.depotId = obj[1];
this.form.cabinetId = obj[2];
}
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
/** 表单重置 */
reset() {
this.form = {
id: undefined,
companyId: undefined,
company: undefined,
frequency: undefined,
fileType: undefined,
year: undefined,
period: undefined,
vouNum: undefined,
caseNum: undefined,
catalogNum: undefined,
filesNum: undefined,
site: undefined,
flowId: undefined,
status: undefined,
note: undefined,
fileStatus: undefined,
borrowStatus: undefined,
identifyStatus: undefined,
remark: undefined,
recordTime: undefined,
deptId: undefined,
deptName: undefined,
attr1: undefined,
attr2: undefined,
attr3: undefined,
attr4: undefined,
userId: undefined,
};
this.Fileform = {
catalogNum: null,
caseNum: null,
};
this.companyArray = [];
this.siteArray = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleAuth() {},
},
};
</script>
<style lang="scss">
.due_month .el-date-picker__header {
display: none;
}
</style>
Loading…
Cancel
Save