Commit a06dcdcf authored by xulihui's avatar xulihui

bug修复

parent cef2e7c3
......@@ -42,24 +42,50 @@ public class CommonController
{
try
{
log.info("开始下载文件,fileName={}, delete={}", fileName, delete);
if (!FileUtils.checkAllowDownload(fileName))
{
log.error("文件名称非法,不允许下载: {}", fileName);
throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
}
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = GassafetyProgressConfig.getDownloadPath() + fileName;
log.info("文件完整路径: {}", filePath);
// 检查文件是否存在
java.io.File file = new java.io.File(filePath);
if (!file.exists()) {
log.error("文件不存在: {}", filePath);
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("文件不存在:" + fileName);
return;
}
log.info("文件大小: {} bytes", file.length());
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, realFileName);
FileUtils.writeBytes(filePath, response.getOutputStream());
log.info("文件下载成功");
if (delete)
{
FileUtils.deleteFile(filePath);
log.info("已删除临时文件: {}", fileName);
}
}
catch (Exception e)
{
log.error("下载文件失败", e);
log.error("下载文件失败,fileName={}", fileName, e);
try {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("下载失败:" + e.getMessage());
} catch (Exception ex) {
log.error("写入错误信息失败", ex);
}
}
}
......
......@@ -23,7 +23,7 @@ public class TEmergencyResources extends BaseEntity
private String resourceName;
/** 资源类型 */
@Excel(name = "资源类型")
@Excel(name = "资源类型", dictType = "sys_resource_type")
private String resourceType;
/** 经度 */
......
......@@ -50,6 +50,7 @@ public class TPlanInfo extends BaseEntity
/*到期时间*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "到期时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
/** 图片路径 */
......
......@@ -85,6 +85,7 @@
<el-table v-loading="loading" :data="resourcesList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="45" align="center" />
<el-table-column label="编号" align="center" prop="id" width="50"/>
<el-table-column label="资源名称" align="center" prop="resourceName" />
<el-table-column label="资源类型" align="center" prop="resourceType" :formatter="resourceTypeFormat" />
<el-table-column label="经度" align="center" prop="longitude" />
......
......@@ -78,6 +78,7 @@
<el-table v-loading="loading" :data="inforList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="fEnterpriseId" />
<el-table-column label="所属区县名称" align="center" prop="fDistrictName" />
<el-table-column label="统一社会信用代码" align="center" prop="fBizCode" />
<el-table-column label="企业名称" align="center" prop="fCompanyName" />
......@@ -192,91 +193,91 @@
<el-row>
<el-col :span="12">
<el-form-item label="企业主要负责人数量" prop="fResponsibleCount">
<el-input v-model="form.fResponsibleCount" type="number" placeholder="请输入企业主要负责人数量" />
<el-input v-model.number="form.fResponsibleCount" type="number" placeholder="请输入企业主要负责人数量" @input="(val) => handleNumberInput(val, 'fResponsibleCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="安全生产管理人数量" prop="fManagementCount">
<el-input v-model="form.fManagementCount" type="number" placeholder="请输入安全生产管理人数量" />
<el-input v-model.number="form.fManagementCount" type="number" placeholder="请输入安全生产管理人数量" @input="(val) => handleNumberInput(val, 'fManagementCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="运行、维护和抢修人数量" prop="fMaintenanceCount">
<el-input v-model="form.fMaintenanceCount" type="number" placeholder="请输入运行、维护和抢修人数量" />
<el-input v-model.number="form.fMaintenanceCount" type="number" placeholder="请输入运行、维护和抢修人数量" @input="(val) => handleNumberInput(val, 'fMaintenanceCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业主要负责人持证数量" prop="fResponsibleCertCount">
<el-input v-model="form.fResponsibleCertCount" type="number" placeholder="请输入企业主要负责人持证数量" />
<el-input v-model.number="form.fResponsibleCertCount" type="number" placeholder="请输入企业主要负责人持证数量" @input="(val) => handleNumberInput(val, 'fResponsibleCertCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="安全生产管理人持证数量" prop="fManagementCertCount">
<el-input v-model="form.fManagementCertCount" type="number" placeholder="请输入安全生产管理人持证数量" />
<el-input v-model.number="form.fManagementCertCount" type="number" placeholder="请输入安全生产管理人持证数量" @input="(val) => handleNumberInput(val, 'fManagementCertCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运行、维护和抢修人支持数量" prop="fMaintenanceCertCount">
<el-input v-model="form.fMaintenanceCertCount" type="number" placeholder="请输入运行、维护和抢修人支持数量" />
<el-input v-model.number="form.fMaintenanceCertCount" type="number" placeholder="请输入运行、维护和抢修人支持数量" @input="(val) => handleNumberInput(val, 'fMaintenanceCertCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="门站数量" prop="fStationCount">
<el-input v-model="form.fStationCount" type="number" placeholder="请输入门站数量" />
<el-input v-model.number="form.fStationCount" type="number" placeholder="请输入门站数量" @input="(val) => handleNumberInput(val, 'fStationCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="燃气储配站数量" prop="fStorageStationCount">
<el-input v-model="form.fStorageStationCount" type="number" placeholder="请输入燃气储配站数量" />
<el-input v-model.number="form.fStorageStationCount" type="number" placeholder="请输入燃气储配站数量" @input="(val) => handleNumberInput(val, 'fStorageStationCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="气化站数量" prop="fGasificationStationCount">
<el-input v-model="form.fGasificationStationCount" type="number" placeholder="请输入气化站数量" />
<el-input v-model.number="form.fGasificationStationCount" type="number" placeholder="请输入气化站数量" @input="(val) => handleNumberInput(val, 'fGasificationStationCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="混气站数量" prop="fMixingStationCount">
<el-input v-model="form.fMixingStationCount" type="number" placeholder="请输入混气站数量" />
<el-input v-model.number="form.fMixingStationCount" type="number" placeholder="请输入混气站数量" @input="(val) => handleNumberInput(val, 'fMixingStationCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="加气站数量" prop="fGasStationCount">
<el-input v-model="form.fGasStationCount" type="number" placeholder="请输入加气站数量" />
<el-input v-model.number="form.fGasStationCount" type="number" placeholder="请输入加气站数量" @input="(val) => handleNumberInput(val, 'fGasStationCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="灌装站数量" prop="fFillingStationCount">
<el-input v-model="form.fFillingStationCount" type="number" placeholder="请输入灌装站数量" />
<el-input v-model.number="form.fFillingStationCount" type="number" placeholder="请输入灌装站数量" @input="(val) => handleNumberInput(val, 'fFillingStationCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="供应站数量" prop="fSupplyStationCount">
<el-input v-model="form.fSupplyStationCount" type="number" placeholder="请输入供应站数量" />
<el-input v-model.number="form.fSupplyStationCount" type="number" placeholder="请输入供应站数量" @input="(val) => handleNumberInput(val, 'fSupplyStationCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调压站数量" prop="fPressureStationCount">
<el-input v-model="form.fPressureStationCount" type="number" placeholder="请输入调压站数量" />
<el-input v-model.number="form.fPressureStationCount" type="number" placeholder="请输入调压站数量" @input="(val) => handleNumberInput(val, 'fPressureStationCount')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="其他站数量" prop="fOtherStationCount">
<el-input v-model="form.fOtherStationCount" type="number" placeholder="请输入其他站数量" />
<el-input v-model.number="form.fOtherStationCount" type="number" placeholder="请输入其他站数量" @input="(val) => handleNumberInput(val, 'fOtherStationCount')" />
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -568,6 +569,19 @@ export default {
this.getList();
},
methods: {
/** 处理数字输入限制 */
handleNumberInput(value, field) {
if (value !== null && value !== undefined && value !== '') {
const numValue = Number(value);
if (numValue > 10000000) {
this.$set(this.form, field, 10000000);
this.$message.warning('输入值不能超过10000000');
} else if (numValue < 0) {
this.$set(this.form, field, 0);
this.$message.warning('输入值不能小于0');
}
}
},
/** 查询年度行业指标汇总 - 燃气企业基本情况信息列表 */
getList() {
this.loading = true;
......
......@@ -158,7 +158,7 @@ export default {
flex-direction: column;
height: 100%;
.top {
height: 38.7%;
height: 47%;
.left {
width: 70%;
......
......@@ -316,6 +316,7 @@ export default {
planTypeList:[],
planLevelList:[],
enterpriseList:[],
options: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -369,8 +370,15 @@ export default {
this.planLevelList = response.data;
})
this.getlackenterprise();
this.getDicts("enterprise_type").then(response => {
this.options = response.data;
console.log("this.options = " + JSON.stringify(this.options))
});
},
methods: {
enterpriseTypeFormat(row) {
return this.selectDictLabel(this.options, row.enterpriseType);
},
getlackenterprise(){
getlackenterprise().then(response => {
this.lackenterpriseList = response.data;
......@@ -590,20 +598,50 @@ export default {
this.exportLoading = true;
return exportPlanInfo(queryParams);
}).then(response => {
this.download(response.msg);
console.log('导出响应:', response);
if (!response.msg) {
this.$message.error('导出失败:未获取到文件名');
this.exportLoading = false;
}).catch(() => {});
return;
}
// 方法1:使用隐藏的 a 标签触发下载(推荐)
const fileName = response.msg;
const downloadUrl = process.env.VUE_APP_BASE_API + '/common/download?fileName=' + encodeURIComponent(fileName) + '&delete=true';
console.log('下载地址:', downloadUrl);
// 创建隐藏的 a 标签
const link = document.createElement('a');
link.href = downloadUrl;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
// 清理
setTimeout(() => {
document.body.removeChild(link);
this.exportLoading = false;
this.$message.success('导出成功');
}, 100);
}).catch((error) => {
console.error('导出错误:', error);
this.$message.error('导出失败');
this.exportLoading = false;
});
}
}
};
</script>
<style>
.division{
.division{
display:flex;
flex-direction:row;
justify-content:flex-start;
}
.dbtn {
}
.dbtn {
display: inline-block;
line-height: normal;
padding-left: 2px;
......@@ -613,17 +651,17 @@ export default {
border-style: solid;
border-width: 0;
color: rgb(48, 180, 107);
}
.titletitle{
}
.titletitle{
background: #1c84c6;
color: white;height:
20px;line-height:
20px;text-align: center;
margin-bottom: 10px;
}
}
</style>
<style lang="scss" scoped>
::v-deep .el-select{
::v-deep .el-select{
width: 100%;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment