Bladeren bron

中审报告归档

sangwenwei 3 maanden geleden
bovenliggende
commit
28432b97b3

+ 7 - 0
src/api/sys/userService.js

@@ -180,6 +180,13 @@ export default {
 			method: "get",
 		});
 	},
+	isBggdgly:function() {
+		return request({
+			url: prefix + "/sys/user/isBggdgly",
+			method: "get",
+		});
+	},
+
 
 	queryDetailList(ids) {
 		return request({

+ 93 - 0
src/api/zs/reportArchieve/ReportArchieveService.js

@@ -0,0 +1,93 @@
+import request from '@/utils/httpRequest'
+import {CENTRECAREFUL_PATH as prefix} from "../../AppPath";
+
+export default class ReportArchieveService {
+  list (param) {
+    return request({
+      url: prefix + '/zsReportArchieve/info/list',
+      method: 'get',
+      params: param
+    })
+  }
+
+  exportTemplate() {
+  	return request({
+		url: prefix + "/zsReportArchieve/info/import/template",
+		method: "get",
+		responseType: "blob"
+  	});
+  }
+
+	importExcel (data) {
+		return request({
+			url: prefix + '/zsReportArchieve/info/importDetail',
+			method: 'post',
+			data: data
+		})
+	}
+
+	getOfficeNameList() {
+		return request({
+			url: prefix + "/zsReportArchieve/info/getOfficeNameList",
+			method: "get",
+		});
+	}
+	queryById(id) {
+		return request({
+			url: prefix + "/zsReportArchieve/info/queryById",
+			method: "get",
+			params:{id:id}
+		});
+	}
+	remove (id) {
+		return request({
+			url: prefix + '/zsReportArchieve/info/remove',
+			method: 'get',
+			params: {id: id}
+		})
+	}
+	getReportNo(reportNoType) {
+		return request({
+			url: prefix + "/zsReportArchieve/info/getReportNo",
+			method: "get",
+			params:{reportNoType:reportNoType}
+		});
+	}
+	getFileBoxNumber(reportNo) {
+		return request({
+			url: prefix + "/zsReportArchieve/info/getFileBoxNumber",
+			method: "get",
+			params:{reportNo:reportNo}
+		});
+	}
+	checkFileBoxNumber(fileBoxNumber,reportNoType) {
+		return request({
+			url: prefix + "/zsReportArchieve/info/checkFileBoxNumber",
+			method: "get",
+			params:{fileBoxNumber:fileBoxNumber,reportNoType:reportNoType}
+		});
+	}
+	checkReportTypeAndReportNo(reportNoType,reportNo) {
+		return request({
+			url: prefix + "/zsReportArchieve/info/checkReportTypeAndReportNo",
+			method: "get",
+			params:{reportNoType:reportNoType,reportNo:reportNo}
+		});
+	}
+	saveForm (param) {
+		return request({
+			url: prefix + '/zsReportArchieve/info/saveForm',
+			method: 'post',
+			data: param
+		})
+	}
+	exportFile(params) {
+		return request({
+			url: prefix + "/zsReportArchieve/info/exportFile",
+			method: "get",
+			params: params,
+			responseType: "blob",
+		});
+	}
+
+}

+ 447 - 0
src/views/zs/reportArchieve/ArchieveList.vue

@@ -0,0 +1,447 @@
+<template>
+	<div class="page">
+		<el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+			<!-- 搜索框-->
+			<el-form-item label="流水号" prop="archieveNo">
+				<el-input v-model="searchForm.archieveNo" placeholder="请输入流水号" clearable>
+				</el-input>
+			</el-form-item>
+			<el-form-item label="部门" prop="officeName">
+				<el-select v-model="searchForm.officeName" placeholder="请选择" style="width:100%;" clearable>
+					<el-option
+						v-for="item in officeNameList"
+						:key="item.officeName"
+						:label="item.officeName"
+						:value="item.officeName">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="业务类型" prop="businessType">
+				<el-select v-model="searchForm.businessType" placeholder="请选择" style="width:100%;" clearable>
+					<el-option
+						v-for="item in $dictUtils.getDictList('business_type')"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="项目名称" prop="project">
+				<el-input v-model="searchForm.project" placeholder="请输入项目名称" clearable>
+				</el-input>
+			</el-form-item>
+			<el-form-item label="报告文号" prop="reportNo">
+				<el-input v-model="searchForm.reportNo" placeholder="请输入报告文号" clearable>
+				</el-input>
+			</el-form-item>
+			<el-form-item label="报告日期" prop="reportDates">
+				<el-date-picker
+					style=""
+					placement="bottom-start"
+					format="YYYY-MM-DD"
+					value-format="YYYY-MM-DD"
+					v-model="searchForm.reportDates"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="盖章日期" prop="stampDates">
+				<el-date-picker
+					style=""
+					placement="bottom-start"
+					format="YYYY-MM-DD"
+					value-format="YYYY-MM-DD"
+					v-model="searchForm.stampDates"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="归档日期" prop="archieveDates">
+				<el-date-picker
+					style=""
+					placement="bottom-start"
+					format="YYYY-MM-DD"
+					value-format="YYYY-MM-DD"
+					v-model="searchForm.archieveDates"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="档案盒号" prop="fileBoxNumber">
+				<el-input v-model="searchForm.fileBoxNumber" placeholder="请输入档案盒号" clearable>
+				</el-input>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="合同原件" prop="originalContract">
+				<el-input v-model="searchForm.originalContract" placeholder="请输入合同原件" clearable>
+				</el-input>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="归档接收人" prop="archieveResever">
+				<!--			<UserSelect :limit='1' :modelValue="searchForm.reimBy" @update:modelValue='(value, label) => {searchForm.reimBy = value}'></UserSelect>-->
+				<el-input  v-model="searchForm.archieveResever" placeholder="请选择归档接收人">
+					<template #suffix>
+						<el-button style="background-color: white;color: #1b1e25;border-color: white;" type="primary" slot="append" icon="el-icon-search" @click="openUserDia2">
+						</el-button>
+					</template>
+				</el-input>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="存放地区(区位码)" prop="storagePlace">
+				<el-select v-model="searchForm.storagePlace" placeholder="请选择" style="width:100%;" clearable>
+					<el-option
+						v-for="item in $dictUtils.getDictList('storage_place')"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="状态" prop="status">
+				<el-select v-model="searchForm.status" placeholder="请选择" style="width:100%;" clearable>
+					<el-option
+						v-for="item in $dictUtils.getDictList('report_archieve_status')"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+					</el-option>
+				</el-select>
+			</el-form-item>
+
+			<el-form-item>
+				<el-button @click="showHide" :icon="showHideIcon">{{showHideName}}</el-button>
+				<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+				<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
+			</el-form-item>
+		</el-form>
+
+		<div class="jp-table" style="">
+			<vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" import export custom>
+				<template #tools>
+					<vxe-button
+						type="text"
+						title="下载导入模板"
+						icon="vxe-icon-copy"
+						class="tool-btn m-l-0"
+						@click="downloadTpl()"
+					>
+					</vxe-button>
+				</template>
+			</vxe-toolbar>
+			<div  class="jp-table-body">
+				<vxe-table
+					border="inner"
+					auto-resize
+					resizable
+					height="auto"
+					:loading="loading"
+					size="small"
+					ref="infoTable"
+					show-header-overflow
+					show-overflow
+					highlight-hover-row
+					:menu-config="{}"
+					:sort-config="{remote:true}"
+					:import-config="{
+									importMethod: importMethod,
+									types: ['csv', 'xls', 'xlsx'],
+									remote: true,
+								}"
+					:export-config="{
+                    remote: true,
+                    filename: `报告归档数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    sheetName: `报告归档数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    exportMethod: exportMethod,
+                    types: ['xlsx'],
+                    modes: ['current', 'selected', 'all']
+                  }"
+					:data="dataList"
+					:checkbox-config="{}">
+					<vxe-column type="seq" width="60" title="序号"></vxe-column>
+					<vxe-column type="checkbox" width="40" ></vxe-column>
+					<vxe-column width="130" title="流水号" field="archieveNo" align="center">
+						<template #default="scope">
+							<el-link  type="primary" :underline="false" @click="view(scope.row.id)">{{scope.row.archieveNo}}</el-link>
+						</template>
+					</vxe-column>
+					<vxe-column width="130" title="业务类型" field="businessType" align="center">
+						<template #default="scope">
+							{{$dictUtils.getDictLabel('business_type', scope.row.businessType, '')}}
+						</template>
+					</vxe-column>
+					<vxe-column width="130" title="项目名称" field="project" align="center">
+					</vxe-column>
+					<vxe-column width="130" title="报告文号" field="reportNo" align="center"></vxe-column>
+
+
+					<vxe-column min-width="180" title="归档经办人" field="fillingManager" align="center"></vxe-column>
+
+					<vxe-column width="100" title="项目负责人" field="projectMaster" align="center"></vxe-column>
+					<vxe-column width="100" title="签字注册会计师" field="signatureCpa" align="center"></vxe-column>
+					<vxe-column width="100" title="签字合伙人" field="signatureParter" align="center"></vxe-column>
+					<vxe-column width="100" title="项目等级" field="projectLevel" align="center"></vxe-column>
+					<vxe-column width="120" title="报告日期" field="reportDate"  align="center"></vxe-column>
+					<vxe-column width="120" title="盖章日期" field="stampDate"  align="center"></vxe-column>
+					<vxe-column width="120" title="归档日期" field="archieveDate"  align="center"></vxe-column>
+					<vxe-column width="120" title="档案盒号" field="fileBoxNumber"  align="center"></vxe-column>
+					<vxe-column width="120" title="合同原件" field="originalContract"  align="center"></vxe-column>
+					<vxe-column width="120" title="归档接收人" field="archieveReseverName"  align="center"></vxe-column>
+					<vxe-column width="120" title="存放地区(区位码)" field="storagePlace"  align="center">
+						<template #default="scope">
+							{{$dictUtils.getDictLabel('storage_place', scope.row.storagePlace, '')}}
+						</template>
+					</vxe-column>
+					<vxe-column width="100" title="状态" fixed="right" align="center" field="status">
+						<template #default="scope">
+							<el-button v-if="scope.row.status === '0'">{{$dictUtils.getDictLabel("report_archieve_status", scope.row.status, '未处理')}} </el-button>
+							<el-button v-else  type="success">{{$dictUtils.getDictLabel("report_archieve_status", scope.row.status, '已处理')}} </el-button>
+						</template>
+					</vxe-column>
+					<vxe-column title="操作" min-width="200px" fixed="right" align="center">
+						<template  #default="scope">
+							<!--				管理员修改-->
+							<el-button v-if=" (isAdmin)" text type="primary" @click="editForm(scope.row)">修改</el-button>
+
+							<el-button  v-if=" isBggdgly && '业务三部' == scope.row.officeName" text type="primary"  @click="editForm(scope.row)">修改</el-button>
+							<el-button v-if=" !isBggdgly && '业务三部' != scope.row.officeName" text type="primary"   @click="editForm(scope.row)">修改</el-button>
+							<el-button v-if=" isBggdgly && '业务三部' == scope.row.officeName" text type="primary" @click="del(scope.row.id)">删除</el-button>
+							<el-button v-if=" !isBggdgly && '业务三部' != scope.row.officeName" text type="primary" @click="del(scope.row.id)">删除</el-button>
+						</template>
+					</vxe-column>
+				</vxe-table>
+				<vxe-pager
+					background
+					size="small"
+					:current-page="tablePage.currentPage"
+					:page-size="tablePage.pageSize"
+					:total="tablePage.total"
+					:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+					:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+					@page-change="currentChangeHandle">
+				</vxe-pager>
+				<user-select2 ref="userSelect2" @doSubmit="selectUser2"></user-select2>
+				<ReportArchieveForm ref="reportArchieveForm" @refreshList="refreshList"></ReportArchieveForm>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import ReportArchieveService from '@/api/zs/reportArchieve/ReportArchieveService'
+	import userService from '@/api/sys/UserService'
+	import UserSelect2 from '@/views/utils/UserTreeSelect'
+	import ReportArchieveForm from "./ReportArchieveForm";
+	export default {
+		data () {
+			return {
+				showHideItem: false,
+				showHideIcon: 'el-icon-arrow-down',
+				showHideName: '展示',
+				num: 0,
+				visable: false,
+				gridData: [],
+				searchForm: {
+					archieveNo:'',
+					project: '',
+					officeName:'',
+					businessType:'',
+					reportNo:'',
+					reportDates:[],
+					stampDates:[],
+					archieveDates:[],
+					fileBoxNumber:'',
+					originalContract:'',
+					archieveResever:'',
+					storagePlace:'',
+					status:'',
+				},
+				dataList: [],
+				tablePage: {
+					total: 0,
+					currentPage: 1,
+					pageSize: 10,
+					orders: []
+				},
+				loading: false,
+				officeNameList:[],
+				isAdmin: false,
+				isBggdgly: false,
+
+			}
+		},
+		reportArchieveService: null,
+		created () {
+			this.reportArchieveService = new ReportArchieveService()
+			this.getOfficeNameList()
+		},
+		components: {
+			UserSelect2,
+			ReportArchieveForm,
+		},
+		mounted () {
+			this.$nextTick(() => {
+				// 将表格和工具栏进行关联
+				const $table = this.$refs.infoTable;
+				const $toolbar = this.$refs.toolbarRef;
+				$table.connect($toolbar);
+			});
+			this.refreshList();
+		},
+		activated () {
+			this.refreshList()
+		},
+		computed: {
+
+		},
+		methods: {
+			showHide () {
+				if (this.showHideItem === false) {
+					this.showHideItem = true
+					this.showHideIcon = 'el-icon-arrow-up'
+					this.showHideName = '隐藏'
+				} else {
+					this.showHideItem = false
+					this.showHideIcon = 'el-icon-arrow-down'
+					this.showHideName = '展示'
+				}
+			},
+			// 查看
+			view (id) {
+				this.$refs.reportArchieveForm.init('view', id)
+			},
+			//修改
+			editForm(row) {
+				this.$refs.reportArchieveForm.init('edit', row.id)
+			},
+			//获取部门
+			getOfficeNameList(){
+				this.reportArchieveService.getOfficeNameList().then((data) =>{
+					this.officeNameList = data
+				})
+			},
+			// 查询当前用户是否是管理员用户
+			checkIsAdmin () {
+				userService.is().then((data) => {
+					this.isAdmin = data
+				})
+			},
+			// 查询当前用户是否是中审报告归档管理员
+			checkIsBggdgly () {
+				userService.isBggdgly().then((data) => {
+					this.isBggdgly = data
+				})
+			},
+			openUserDia2(){
+				this.$refs.userSelect2.init()
+			},
+			// 获取数据列表
+			refreshList () {
+				this.loading = true
+				this.reportArchieveService.list({
+					'current': this.tablePage.currentPage,
+					'size': this.tablePage.pageSize,
+					'orders': this.tablePage.orders,
+					...this.searchForm
+				}).then((data) => {
+					this.dataList = data.records
+					this.tablePage.total = data.total
+					this.loading = false
+				})
+				this.checkIsAdmin()
+				this.checkIsBggdgly()
+			},
+			// 删除
+			del (id) {
+				let ids = id || this.$refs.infoTable.getCheckboxRecords().map(item => {
+					return item.id
+				}).join(',')
+				this.$confirm(`确定删除所选项吗?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					this.loading = true
+					this.reportArchieveService.remove(ids).then((data) => {
+						this.$message.success(data)
+						this.refreshList()
+						this.loading = false
+					})
+					// this.reimbursementService.remove(ids).then(({data}) => {
+					//   this.$message.success(data)
+					//   this.refreshList()
+					//   this.loading = false
+					// })
+				})
+			},
+			resetSearch () {
+				this.$refs.searchForm.resetFields()
+				this.refreshList()
+			},
+
+			// 当前页
+			currentChangeHandle ({ currentPage, pageSize }) {
+				this.tablePage.currentPage = currentPage
+				this.tablePage.pageSize = pageSize
+				this.refreshList()
+			},
+
+			// 自定义服务端导出
+			exportMethod ({ options }) {
+				// 传给服务端的参数
+				const params = {
+					'current': this.tablePage.currentPage,
+					'size': this.tablePage.pageSize,
+					'orders': this.tablePage.orders,
+					...this.searchForm,
+					filename: options.filename,
+					sheetName: options.sheetName,
+					isHeader: options.isHeader,
+					original: options.original,
+					mode: options.mode,
+					selectIds: options.mode === 'selected' ? options.data.map(item => item.id) : [],
+					exportFields: options.columns.map(column => column.property)
+				}
+				return this.reportArchieveService.exportFile(params).then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, options.filename)
+				}).catch(function (err) {
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+			// 下载模板
+			downloadTpl() {
+				// this.$utils.downloadExcel('/sys/user/import/template')
+				this.reportArchieveService
+					.exportTemplate()
+					.then((data) => {
+						// 将二进制流文件写入excel表,以下为重要步骤
+						this.$utils.downloadExcel(data, "报告归档导入模板");
+					})
+					.catch(function (err) {
+						if (err.response) {
+							console.log(err.response);
+						}
+					});
+			},
+			// 自定义服务端导入
+			importMethod({ file }) {
+				// 处理表单
+				const formBody = new FormData();
+				formBody.append("file", file);
+				this.reportArchieveService.importExcel(formBody).then((result) => {
+					this.$message.success({
+						dangerouslyUseHTMLString: true,
+						message: result,
+					});
+					this.refreshList();
+				});
+			},
+
+		}
+	}
+</script>

+ 531 - 0
src/views/zs/reportArchieve/ReportArchieveForm.vue

@@ -0,0 +1,531 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+	<div>
+		<el-dialog
+			:title="title"
+			:close-on-click-modal="false"
+			draggable
+			width="1300px"
+			@close="close"
+			@keyup.enter.native=""
+			v-model="visible">
+		<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method === 'view'"
+				 label-width="160px" @submit.native.prevent>
+			<el-divider content-position="left"><i class="el-icon-document"></i>
+				归档信息
+			</el-divider>
+			<el-row  :gutter="15">
+				<el-col :span="12">
+					<el-form-item label="部门" prop="officeName"
+								  :rules="[]">
+						<el-input v-model="inputForm.officeName" class="m-2" placeholder="请输入部门" clearable></el-input>
+
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="企业名称" prop="businessName"
+								  :rules="[]">
+						<el-input v-model="inputForm.businessName" class="m-2" placeholder="请输入企业名称" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="项目名称" prop="project"
+								  :rules="[]">
+						<el-input v-model="inputForm.project" class="m-2" placeholder="请输入项目名称" clearable></el-input>
+					</el-form-item>
+				</el-col>
+
+				<el-col :span="12">
+					<el-form-item label="业务类型" prop="businessType"
+								  :rules="[]">
+						<el-select style="width:100%;" v-model="inputForm.businessType" class="m-2" placeholder="请选择" clearable>
+							<el-option
+								v-for="item in $dictUtils.getDictList('business_type')"
+								:key="item.value"
+								:label="item.label"
+								:value="item.value">
+							</el-option>
+
+						</el-select>
+					</el-form-item>
+				</el-col>
+
+				<el-col :span="12">
+					<el-form-item label="报告文号类型" prop="reportNoType"
+								  :rules="[]">
+						<el-select style="width:100%;" @change="getReportNo()" v-model="inputForm.reportNoType" class="m-2" placeholder="请选择" clearable>
+							<el-option
+								v-for="item in $dictUtils.getDictList('report_no_type')"
+								:key="item.value"
+								:label="item.label"
+								:value="item.value">
+							</el-option>
+
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="报告文号" prop="reportNo"
+								  :rules="[{required: true, message:'报告文号不能为空', trigger:'blur'}]">
+						<el-input @change="getFileBoxNumber()" v-model="inputForm.reportNo" class="m-2" placeholder="请输入报告文号" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="报告涵盖期间" prop="reportingPeriod"
+								  :rules="[]">
+						<el-input v-model="inputForm.reportingPeriod" class="m-2" placeholder="请输入报告涵盖期间" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="归档经办人" prop="fillingManager"
+								  :rules="[]">
+						<el-input v-model="inputForm.fillingManager" class="m-2" placeholder="请输入归档经办人" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="项目经理" prop="projectLeader"
+								  :rules="[]">
+						<el-input v-model="inputForm.projectLeader" class="m-2" placeholder="请输入项目经理" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="项目负责人" prop="projectMaster"
+								  :rules="[]">
+						<el-input v-model="inputForm.projectMaster" class="m-2" placeholder="请输入项目负责人" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="签字注册会计师" prop="signatureCpa"
+								  :rules="[]">
+						<el-input v-model="inputForm.signatureCpa" class="m-2" placeholder="请输入签字注册会计师" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="签字合伙人" prop="signatureParter"
+								  :rules="[]">
+						<el-input v-model="inputForm.signatureParter" class="m-2" placeholder="请输入签字合伙人" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="项目等级" prop="projectLevel"
+								  :rules="[]">
+						<el-input v-model="inputForm.projectLevel" class="m-2" placeholder="请输入项目等级" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="报告日期" prop="reportDate"
+								  :rules="[]">
+						<el-date-picker
+							style="width: 100%"
+							v-model="inputForm.reportDate"
+							type="date"
+							value-format="YYYY-MM-DD"
+							placeholder="请选择日期"
+							:clearable="true"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="盖章日期" prop="stampDate"
+								  :rules="[]">
+						<el-date-picker
+							style="width: 100%"
+							v-model="inputForm.stampDate"
+							type="date"
+							value-format="YYYY-MM-DD"
+							placeholder="请选择日期"
+							:clearable="true"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="归档日期" prop="archieveDate"
+								  :rules="[]">
+						<el-date-picker
+							style="width: 100%"
+							v-model="inputForm.archieveDate"
+							type="date"
+							value-format="YYYY-MM-DD"
+							placeholder="请选择日期"
+							:clearable="true"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="盒号" prop="fileBoxNumber"
+								  :rules="[{required: true, message:'盒号不能为空', trigger:'blur'}]">
+						<el-input @blur="checkFileBoxNumber()" v-model="inputForm.fileBoxNumber" class="m-2" placeholder="请输入盒号" clearable></el-input>
+						<span style="color: red; font-weight: bold;">{{usedReportNo}}</span>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="盒数" prop="boxNumber"
+								  :rules="[]">
+						<el-input v-model="inputForm.boxNumber" class="m-2" placeholder="请输入盒数" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="本数" prop="bookNumbers"
+								  :rules="[]">
+						<el-input v-model="inputForm.bookNumbers" class="m-2" placeholder="请输入本数" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="合同原件" prop="originalContract"
+								  :rules="[]">
+						<el-input v-model="inputForm.originalContract" class="m-2" placeholder="请输入合同原件" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="资产总额(万元)" prop="totalAssets"
+								  :rules="[]">
+						<el-input v-model="inputForm.totalAssets" v-on:input="inputForm.totalAssets = inputForm.totalAssets.replace(/[^\d.]/g, '')
+                      .replace(/^\./g, '')
+                      .replace(/\.{2,}/g, '.')
+                      .replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
+                      .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^0+/, '0')" class="m-2" placeholder="请输入资产总额" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="存放地点(区位码)" prop="storagePlace"
+								  :rules="[{required: true, message:'存放地点不能为空', trigger:'blur'}]">
+						<el-select style="width:100%;" v-model="inputForm.storagePlace" class="m-2" placeholder="请选择" clearable>
+							<el-option
+								v-for="item in $dictUtils.getDictList('storage_place')"
+								:key="item.value"
+								:label="item.label"
+								:value="item.value">
+							</el-option>
+
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :span="24">
+					<el-form-item label="备注" prop="remarks"
+								  :rules="[ ]">
+						<el-input  type="textarea" placeholder="请输入说明"  maxlength="500"  style="width:100%" v-model="inputForm.remarks" show-word-limit></el-input>
+					</el-form-item>
+				</el-col>
+
+			</el-row>
+		</el-form>
+			<template #footer>
+			<span class="dialog-footer">
+			  <el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import XEUtils from 'xe-utils'
+	import ReportArchieveService from '@/api/zs/reportArchieve/ReportArchieveService'
+	import { ElDatePicker } from 'element-plus';
+	export default {
+		props: {
+			businessId: {
+				type: String,
+				default: ''
+			},
+			formReadOnly: {
+				type: Boolean,
+				default: false
+			},
+			status: {
+				type: String,
+				default: ''
+			}
+		},
+		data () {
+			return {
+				title: '',
+				method: '',
+				loading: false,
+				visible: false,
+				inputForm: {
+					id: '',
+					officeName:'',
+					businessName:'',
+					project:'',
+					businessType:'',
+					reportNoType:'',
+					reportNo:'',
+					reportingPeriod:'',
+					fillingManager:'',
+					projectLeader:'',
+					projectMaster:'',
+					signatureCpa:'',
+					signatureParter:'',
+					projectLevel:'',
+					reportDate:'',
+					stampDate:'',
+					archieveDate:'',
+					fileBoxNumber:'',
+					boxNumber:'',
+					bookNumbers:'',
+					originalContract:'',
+					totalAssets:'',
+					storagePlace:'',
+					remarks:'',
+				},
+				baseKey: '',
+				keyWatch: '',
+				dateList:[],
+				usedReportNo:'',
+			}
+		},
+		ReportArchieveService:null,
+		created () {
+			console.log('jld ')
+			this.reportArchieveService=new ReportArchieveService()
+		},
+		mounted () {
+		},
+		activated () {
+		},
+		components: {
+			ElDatePicker
+		},
+		computed: {
+			bus: {
+				get () {
+					return this.businessId
+				},
+				set (val) {
+					this.businessId = val
+				}
+			}
+		},
+		watch: {
+			'keyWatch': {
+				handler (newVal) {
+					if (this.bus) {
+						if (this.bus !== 'false') {
+							this.init('', this.bus)
+						}
+					} else {
+						this.$nextTick(() => {
+							this.$refs.inputForm.resetFields()
+						})
+					}
+				}
+			},
+			'loading': {
+				handler (newVal) {
+					this.$emit('changeLoading', newVal)
+				}
+			}
+		},
+		methods: {
+			getKeyWatch(keyWatch) {
+				this.keyWatch = keyWatch
+			},
+			init(method, id) {
+				this.method = method
+				this.inputForm={
+					id: '',
+					officeName:'',
+					businessName:'',
+					project:'',
+					businessType:'',
+					reportNoType:'',
+					reportNo:'',
+					reportingPeriod:'',
+					fillingManager:'',
+					projectLeader:'',
+					projectMaster:'',
+					signatureCpa:'',
+					signatureParter:'',
+					projectLevel:'',
+					reportDate:'',
+					stampDate:'',
+					archieveDate:'',
+					fileBoxNumber:'',
+					boxNumber:'',
+					bookNumbers:'',
+					originalContract:'',
+					totalAssets:'',
+					storagePlace:'',
+					remarks:'',
+				}
+				if (method === 'add') {
+					this.title = `新建报告归档信息`
+				} else if (method === 'edit') {
+					this.inputForm.id = id
+					this.title = '修改报告归档信息'
+				} else if (method === 'view') {
+					this.inputForm.id = id
+					this.title = '查看报告归档信息'
+				}
+				this.loading = false
+				this.visible= true
+				this.$nextTick(() => {
+					this.$refs.inputForm.resetFields()
+					this.loading = true
+					if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+						console.log('this.inputForm.id', this.inputForm.id)
+						this.reportArchieveService.queryById(this.inputForm.id).then((data)=>{
+							console.log('s',data)
+							this.inputForm = this.recover(this.inputForm, data)
+						})
+						this.loading = false
+					}
+				})
+			},
+			// 表单提交
+			 doSubmit() {
+				try {
+					this.$refs['inputForm'].validate((valid) => {
+						if (valid) {
+							this.loading = true
+							if (this.commonJS.isEmpty(this.inputForm.reportNoType)){
+								this.loading = false
+								this.$message.error('报告文号类型不能为空')
+								throw new Error('报告文号类型不能为空')
+							}
+							if (this.commonJS.isEmpty(this.inputForm.reportNo)){
+								this.loading = false
+								this.$message.error('报告文号不能为空')
+								throw new Error('报告文号不能为空')
+							}
+							if (this.commonJS.isEmpty(this.inputForm.storagePlace)){
+								this.loading = false
+								this.$message.error('存放地区不能为空')
+								throw new Error('存放地区不能为空')
+							}
+							if (this.commonJS.isNotEmpty(this.inputForm.fileBoxNumber) && this.commonJS.isNotEmpty(this.inputForm.reportNoType)){
+								this.reportArchieveService.checkFileBoxNumber(this.inputForm.fileBoxNumber,this.inputForm.reportNoType).then((data)=>{
+									if (data){
+										this.loading = false
+										this.inputForm.fileBoxNumber = ''
+										this.$message.error('该盒号已被使用,请重新输入')
+										throw new Error(`该盒号已被使用,请重新输入`)
+									}
+								})
+							}
+							this.reportArchieveService.checkReportTypeAndReportNo(this.inputForm.reportNoType,this.inputForm.reportNo).then((data) =>{
+								if (!data){
+									this.loading = false
+									this.$message.error('报告文号类型与报告文号不一致,请重新输入')
+									throw new Error('报告文号类型与报告文号不一致,请重新输入')
+								}
+								this.reportArchieveService.saveForm(this.inputForm).then((da) => {
+									this.visible = false
+									this.$emit('refreshList')
+								}).catch(() => {
+									this.$refs.inputForm.resetFields()
+									this.loading = false
+								})
+							})
+
+						} else {
+							this.loading = false
+						}
+					})
+				}catch (e) {
+					console.log('123123')
+					this.$message.error(e.message)
+				}
+
+			},
+			close() {
+				this.inputForm = {
+					id: '',
+					officeName:'',
+					businessName:'',
+					project:'',
+					businessType:'',
+					reportNoType:'',
+					reportNo:'',
+					reportingPeriod:'',
+					fillingManager:'',
+					projectLeader:'',
+					projectMaster:'',
+					signatureCpa:'',
+					signatureParter:'',
+					projectLevel:'',
+					reportDate:'',
+					stampDate:'',
+					archieveDate:'',
+					fileBoxNumber:'',
+					boxNumber:'',
+					bookNumbers:'',
+					originalContract:'',
+					totalAssets:'',
+					storagePlace:'',
+					remarks:'',
+				}
+				this.visible = false
+				this.usedReportNo = ''
+			},
+			getReportNo(){
+				console.log('id',this.inputForm.reportNoType)
+				this.reportArchieveService.getReportNo(this.inputForm.reportNoType).then((data)=>{
+					if (this.commonJS.isNotEmpty(data.fileBoxNumber)){
+						let fileBoxNumber = ''
+						let updateName = ''
+						let reportNo = ''
+						if (this.commonJS.isNotEmpty(data.fileBoxNumber)){
+							fileBoxNumber = data.fileBoxNumber
+						}
+						if (this.commonJS.isNotEmpty(data.updateName)){
+							updateName = data.updateName
+						}
+						if (this.commonJS.isNotEmpty(data.reportNo)){
+							reportNo = data.reportNo
+						}
+						this.usedReportNo = "盒号("+fileBoxNumber+")填写人("+updateName+")报告文号("+reportNo+")"
+					}else {
+						this.usedReportNo = ''
+					}
+				})
+			},
+			getFileBoxNumber(){
+				console.log('id',this.inputForm.reportNo)
+				this.reportArchieveService.getFileBoxNumber(this.inputForm.reportNo).then((data)=>{
+					if (this.commonJS.isNotEmpty(data.fileBoxNumber)){
+						let fileBoxNumber = ''
+						let updateName = ''
+						let reportNo = ''
+						if (this.commonJS.isNotEmpty(data.fileBoxNumber)){
+							fileBoxNumber = data.fileBoxNumber
+						}
+						if (this.commonJS.isNotEmpty(data.updateName)){
+							updateName = data.updateName
+						}
+						if (this.commonJS.isNotEmpty(data.reportNo)){
+							reportNo = data.reportNo
+						}
+						this.usedReportNo = "盒号("+fileBoxNumber+")填写人("+updateName+")报告文号("+reportNo+")"
+					}else {
+						this.usedReportNo = ''
+					}
+				})
+			},
+			checkFileBoxNumber(){
+				if (this.commonJS.isNotEmpty(this.inputForm.fileBoxNumber) && this.commonJS.isNotEmpty(this.inputForm.reportNoType)){
+					this.reportArchieveService.checkFileBoxNumber(this.inputForm.fileBoxNumber,this.inputForm.reportNoType).then((data)=>{
+						if (data){
+							this.loading = false
+							this.$message.error(`该盒号已被使用,请重新输入`)
+							this.inputForm.fileBoxNumber = ''
+						}
+					})
+				}
+
+			},
+
+
+		}
+
+	}
+</script>
+<style scoped>
+	/deep/ .el-input-number .el-input__inner {
+		text-align: left;
+	}
+	/deep/ .vxe-footer--row .vxe-footer--column:nth-child(1) .vxe-cell--item {
+		font-weight:700;
+	}
+</style>