提交代码

dev_xds
姜玉琦 2024-04-25 22:22:16 +08:00
parent 8c4f6c2566
commit 808bd00b14
8 changed files with 495 additions and 324 deletions

View File

@ -111,12 +111,11 @@
</el-form-item> </el-form-item>
<el-form-item label="审批内容"> <el-form-item label="审批内容">
<div v-for="(file, index) in initData.files" :key="index"> <div v-for="(file, index) in initData.files" :key="index">
<el-button <el-link
size="mini" type="primary"
type="text"
icon="el-icon-paperclip" icon="el-icon-paperclip"
@click="handledownload(file)" @click="handledownload(file)"
>{{ file.substring(file.lastIndexOf("/") + 1) }}</el-button >{{ file.substring(file.lastIndexOf("/") + 1) }}</el-link
> >
</div> </div>
</el-form-item> </el-form-item>
@ -475,6 +474,10 @@ export default {
height: 100%; height: 100%;
float: left; float: left;
padding-left: 20px; padding-left: 20px;
.el-link .el-link--inner{
word-break: break-all !important;
}
} }
} }
.containers { .containers {

View File

@ -53,7 +53,7 @@
<el-form-item label="审批内容" prop="files"> <el-form-item label="审批内容" prop="files">
<FileUpload <FileUpload
@input="fileInput" @input="fileInput"
:limit="18" :limit="30"
v-model="form.files" v-model="form.files"
:fileType="['pdf', 'png', 'jpg', 'jpeg']" :fileType="['pdf', 'png', 'jpg', 'jpeg']"
/> />

View File

@ -53,7 +53,7 @@
<el-form-item label="审批内容" prop="files"> <el-form-item label="审批内容" prop="files">
<FileUpload <FileUpload
@input="fileInput" @input="fileInput"
:limit="18" :limit="30"
:fileType="['pdf', 'png', 'jpg', 'jpeg']" :fileType="['pdf', 'png', 'jpg', 'jpeg']"
/> />
</el-form-item> </el-form-item>

View File

@ -116,12 +116,11 @@
</el-form-item> </el-form-item>
<el-form-item label="审批内容"> <el-form-item label="审批内容">
<div v-for="(file, index) in initData.files" :key="index"> <div v-for="(file, index) in initData.files" :key="index">
<el-button <el-link
size="mini" type="primary"
type="text"
icon="el-icon-paperclip" icon="el-icon-paperclip"
@click="handledownload(file)" @click="handledownload(file)"
>{{ file.substring(file.lastIndexOf("/") + 1) }}</el-button >{{ file.substring(file.lastIndexOf("/") + 1) }}</el-link
> >
</div> </div>
</el-form-item> </el-form-item>
@ -255,7 +254,7 @@ export default {
returnTaskList: [], // 退 returnTaskList: [], // 退
returnTask: false, returnTask: false,
returnTaskBtn: false, returnTaskBtn: false,
fileTypes:['pdf','png','jpg','jpeg'], fileTypes: ["pdf", "png", "jpg", "jpeg"],
}; };
}, },
computed: {}, computed: {},
@ -619,9 +618,11 @@ export default {
}, },
handledownload(url) { handledownload(url) {
let fileType = url.split("."); let fileType = url.split(".");
if(this.fileTypes.indexOf(fileType[fileType.length-1].toLocaleLowerCase())>-1){ if (
window.open(process.env.VUE_APP_BASE_API+url); this.fileTypes.indexOf(fileType[fileType.length - 1].toLocaleLowerCase()) > -1
}else{ ) {
window.open(process.env.VUE_APP_BASE_API + url);
} else {
this.$download.resource(url); this.$download.resource(url);
} }
}, },
@ -671,6 +672,10 @@ export default {
height: 100%; height: 100%;
float: left; float: left;
padding-left: 20px; padding-left: 20px;
.el-link .el-link--inner{
word-break: break-all !important;
}
} }
} }
.containers { .containers {

View File

@ -1,78 +1,78 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form
:model="queryParams" :model="queryParams"
ref="queryForm" ref="queryForm"
size="small" size="small"
:inline="true" :inline="true"
v-show="showSearch" v-show="showSearch"
label-width="68px" label-width="68px"
> >
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<el-input <el-input
v-model="queryParams.projectName" v-model="queryParams.projectName"
placeholder="请输入项目名称" placeholder="请输入项目名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目分类" prop="projectType">
<el-select
v-model="queryParams.projectType"
placeholder="请选择项目分类"
clearable
>
<el-option
v-for="dict in dict.type.project_category"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/> />
</el-form-item> </el-select>
<el-form-item label="项目分类" prop="projectType"> </el-form-item>
<el-select <el-form-item label="建设类型" prop="projectNature">
v-model="queryParams.projectType" <el-select
placeholder="请选择项目分类" v-model="queryParams.projectNature"
clearable placeholder="请选择项目建设类型"
> clearable
<el-option >
v-for="dict in dict.type.project_category" <el-option
:key="dict.value" v-for="dict in dict.type.project_build_type"
:label="dict.label" :key="dict.value"
:value="dict.value" :label="dict.label"
/> :value="dict.value"
</el-select> />
</el-form-item> </el-select>
<el-form-item label="建设类型" prop="projectNature"> </el-form-item>
<el-select <el-form-item label="责任主体" prop="deptId" v-hasPermi="['project:project:zgs']">
v-model="queryParams.projectNature" <el-select v-model="queryParams.deptId" placeholder="请选择责任主体" clearable>
placeholder="请选择项目建设类型" <el-option
clearable v-for="dict in depts"
> :key="dict.deptId"
<el-option :label="dict.deptName"
v-for="dict in dict.type.project_build_type" :value="dict.deptId"
:key="dict.value" ></el-option>
:label="dict.label" </el-select>
:value="dict.value" </el-form-item>
/> <el-form-item label="汇总时间">
</el-select> <el-date-picker
</el-form-item> v-model="daterangeTime"
<el-form-item label="责任主体" prop="deptId" v-hasPermi="['project:project:zgs']"> style="width: 240px"
<el-select v-model="queryParams.deptId" placeholder="请选择责任主体" clearable> value-format="yyyy-MM-dd"
<el-option type="daterange"
v-for="dict in depts" range-separator="-"
:key="dict.deptId" start-placeholder="开始日期"
:label="dict.deptName" end-placeholder="结束日期"
:value="dict.deptId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="汇总时间">
<el-date-picker
v-model="daterangeTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
@ -85,240 +85,403 @@
> >
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table <el-table
v-loading="loading" v-loading="loading"
:data="dataList" :data="dataList"
:span-method="objectSpanMethod" :span-method="objectSpanMethod"
height="700" height="700"
stripe border stripe
> border
>
<el-table-column
label="项目名称"
align="left"
prop="projectName"
width="180"
class-name="small-padding fixed-width"
fixed="left"
show-overflow-tooltip
/>
<el-table-column
label="参建单位"
align="left"
fixed="left"
prop="unitName"
width="163"
show-overflow-tooltip
/>
<el-table-column label="项目详情" align="center">
<el-table-column label="劳务实名制" align="center">
<el-table-column
label="劳务人员"
align="center"
prop="lwry"
width="90"
show-overflow-tooltip
/>
<el-table-column label="实名制接入" align="center" prop="lwsm" width="90">
<template slot-scope="scope">
<el-tag v-if="scope.row.lwsm == 1" type="success" effect="dark"
>已接入</el-tag
>
<el-tag v-if="scope.row.lwsm == 0" type="danger" effect="dark"
>未接入</el-tag
>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="节点预警" align="center" prop="jdyj" width="90">
<template slot-scope="scope">
<el-tag v-if="scope.row.jdyj == 1" type="success" effect="dark"></el-tag>
<el-tag v-if="scope.row.jdyj == 2" type="danger" effect="dark"></el-tag>
</template>
</el-table-column>
<el-table-column <el-table-column
label="项目名称" label="劳资预警"
align="left" align="center"
prop="projectName" prop="lzyjs"
width="180" width="90"
class-name="small-padding fixed-width"
fixed="left"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column label="参建单位" align="left" fixed="left" prop="unitName" width="163" show-overflow-tooltip/> <el-table-column label="项目预警" align="center">
<el-table-column label="项目详情" align="center"> <el-table-column
<el-table-column label="劳务实名制" align="center"> label="AI预警"
<el-table-column label="劳务人员" align="center" prop="lwry" width="90" show-overflow-tooltip/> align="center"
<el-table-column label="实名制接入" align="center" prop="lwsm" width="90"> prop="aiyjs"
<template slot-scope="scope"> width="90"
<el-tag v-if="scope.row.lwsm==1" type="success" effect="dark"></el-tag> show-overflow-tooltip
<el-tag v-if="scope.row.lwsm==0" type="danger" effect="dark"></el-tag> />
</template> <el-table-column
</el-table-column> label="安全预警"
</el-table-column> align="center"
<el-table-column label="节点预警" align="center" prop="jdyj" width="90"> prop="aqyjs"
<template slot-scope="scope"> width="90"
<el-tag v-if="scope.row.jdyj==1" type="success" effect="dark"></el-tag> show-overflow-tooltip
<el-tag v-if="scope.row.jdyj==2" type="danger" effect="dark"></el-tag> />
</template> <el-table-column
</el-table-column> label="质量预警"
<el-table-column label="环境检测" align="center" prop="hjjc" width="90"> align="center"
<template slot-scope="scope"> prop="zlyjs"
<el-tag v-if="scope.row.hjjc==1" type="success" effect="dark"></el-tag> width="90"
<el-tag v-if="scope.row.hjjc==0" type="danger" effect="dark"></el-tag> show-overflow-tooltip
</template> />
</el-table-column> <el-table-column
<el-table-column label="项目预警" align="center"> label="环境预警"
<el-table-column label="AI预警" align="center" prop="aiyjs" width="90" show-overflow-tooltip/> align="center"
<el-table-column label="安全预警" align="center" prop="aqyjs" width="90" show-overflow-tooltip/> prop="hjyjs"
<el-table-column label="质量预警" align="center" prop="zlyjs" width="90" show-overflow-tooltip/> width="90"
<el-table-column label="环境预警" align="center" prop="hjyjs" width="90" show-overflow-tooltip/> show-overflow-tooltip
</el-table-column> />
</el-table-column> </el-table-column>
<el-table-column label="安全管理" align="center"> </el-table-column>
<el-table-column label="安责险" align="center" prop="azx" width="80" show-overflow-tooltip> <el-table-column label="安全管理" align="center">
<template slot-scope="scope"> <el-table-column
<el-tag v-if="scope.row.azx==1" type="success" effect="dark"></el-tag> label="安责险"
<el-tag v-if="scope.row.azx==0" type="danger" effect="dark"></el-tag> align="center"
</template> prop="azx"
</el-table-column> width="80"
<el-table-column label="一切险" align="center" prop="yqx" width="80" show-overflow-tooltip> show-overflow-tooltip
<template slot-scope="scope"> >
<el-tag v-if="scope.row.yqx==1" type="success" effect="dark"></el-tag> <template slot-scope="scope">
<el-tag v-if="scope.row.yqx==0" type="danger" effect="dark"></el-tag> <el-tag v-if="scope.row.azx == 1" type="success" effect="dark"></el-tag>
</template> <el-tag v-if="scope.row.azx == 0" type="danger" effect="dark"></el-tag>
</el-table-column> </template>
<el-table-column label="安全隐患排查" align="center">
<el-table-column label="甲方代表" align="center" prop="aqyhpc_jfdb" width="90" show-overflow-tooltip/>
<el-table-column label="监理单位" align="center" prop="aqyhpc_jldw" width="90" show-overflow-tooltip/>
<el-table-column label="总包单位" align="center" prop="aqyhpc_zbdw" width="90" show-overflow-tooltip/>
</el-table-column>
<el-table-column label="特种人员" align="center" prop="tzry" width="90" show-overflow-tooltip/>
<el-table-column label="应急演练" align="center" prop="yjyl" width="90" show-overflow-tooltip/>
<el-table-column label="教育培训" align="center" prop="zxpx" width="90" show-overflow-tooltip/>
</el-table-column> </el-table-column>
<el-table-column label="质量管理" align="center"> <el-table-column
<el-table-column label="质量隐患排查" align="center"> label="一切险"
<el-table-column label="甲方代表" align="center" prop="zlyhpc_jfdb" width="90" show-overflow-tooltip/> align="center"
<el-table-column label="监理单位" align="center" prop="zlyhpc_jldw" width="90" show-overflow-tooltip/> prop="yqx"
<el-table-column label="总包单位" align="center" prop="zlyhpc_zbdw" width="90" show-overflow-tooltip/> width="80"
</el-table-column> show-overflow-tooltip
<el-table-column label="取样复试" align="center" prop="clqyfs" width="90" show-overflow-tooltip/> >
<el-table-column label="材料封样" align="center" prop="clfy" width="90" show-overflow-tooltip/> <template slot-scope="scope">
<el-table-column label="实测实量" align="center" prop="cscl" width="90" show-overflow-tooltip/> <el-tag v-if="scope.row.yqx == 1" type="success" effect="dark"></el-tag>
<el-table-column label="举牌验收" align="center" prop="jpys" width="90" show-overflow-tooltip/> <el-tag v-if="scope.row.yqx == 0" type="danger" effect="dark"></el-tag>
</template>
</el-table-column> </el-table-column>
<el-table-column label="视频监控" align="center"> <el-table-column label="安全隐患排查" align="center">
<el-table-column label="实时监控" align="center" prop="ssjk" width="90"> <el-table-column
<template slot-scope="scope"> label="甲方代表"
<el-tag v-if="scope.row.ssjk!=0" type="success" effect="dark"></el-tag> align="center"
<el-tag v-if="scope.row.ssjk==0" type="danger" effect="dark"></el-tag> prop="aqyhpc_jfdb"
</template> width="90"
</el-table-column> show-overflow-tooltip
<el-table-column label="AI监控" align="center" prop="aijk" width="90"> />
<template slot-scope="scope"> <el-table-column
<el-tag v-if="scope.row.aijk==1" type="success" effect="dark"></el-tag> label="监理单位"
<el-tag v-if="scope.row.aijk==0" type="danger" effect="dark"></el-tag> align="center"
</template> prop="aqyhpc_jldw"
</el-table-column> width="90"
<el-table-column label="项目全景" align="center" prop="yssys" width="120" show-overflow-tooltip/> show-overflow-tooltip
/>
<el-table-column
label="总包单位"
align="center"
prop="aqyhpc_zbdw"
width="90"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
<el-table-column label="工程管理" align="center"> <el-table-column
<el-table-column label="项目标准化" align="center" prop="bzh" width="120" show-overflow-tooltip/> label="特种人员"
<el-table-column label="审批进行中" align="center" prop="gcsq" width="120" show-overflow-tooltip/> align="center"
<el-table-column label="审批已完成" align="center" prop="gcsp" width="120" show-overflow-tooltip/> prop="tzry"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="应急演练"
align="center"
prop="yjyl"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="教育培训"
align="center"
prop="zxpx"
width="90"
show-overflow-tooltip
/>
</el-table-column>
<el-table-column label="质量管理" align="center">
<el-table-column label="质量隐患排查" align="center">
<el-table-column
label="甲方代表"
align="center"
prop="zlyhpc_jfdb"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="监理单位"
align="center"
prop="zlyhpc_jldw"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="总包单位"
align="center"
prop="zlyhpc_zbdw"
width="90"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
</el-table> <el-table-column
</div> label="取样复试"
</template> align="center"
prop="clqyfs"
<script> width="90"
import { show-overflow-tooltip
selectStatisticsProjectList, exportView />
} from "@/api/statistics/statisticsProject"; <el-table-column
import axios from 'axios'; label="材料封样"
import { saveAs } from 'file-saver'; align="center"
import { getToken } from '@/utils/auth' prop="clfy"
width="90"
export default { show-overflow-tooltip
name: "statisticsProject", />
components: {}, <el-table-column
dicts: [ label="实测实量"
"project_build_type", align="center"
"project_category", prop="cscl"
], width="90"
data() { show-overflow-tooltip
return { />
// <el-table-column
loading: true, label="举牌验收"
// align="center"
showSearch: true, prop="jpys"
// width="90"
total: 0, show-overflow-tooltip
// />
queryParams: { </el-table-column>
projectName: null, <el-table-column label="视频监控" align="center">
projectType: "1", <el-table-column label="实时监控" align="center" prop="ssjk" width="90">
projectNature: null, <template slot-scope="scope">
deptId: null, <el-tag v-if="scope.row.ssjk != 0" type="success" effect="dark"
}, >已开通</el-tag
// >
form: {}, <el-tag v-if="scope.row.ssjk == 0" type="danger" effect="dark"></el-tag>
// </template>
rules: {}, </el-table-column>
depts: [], <el-table-column label="AI监控" align="center" prop="aijk" width="90">
dataList:[], <template slot-scope="scope">
daterangeTime:[], <el-tag v-if="scope.row.aijk == 1" type="success" effect="dark"
}; >已开通</el-tag
}, >
created() { <el-tag v-if="scope.row.aijk == 0" type="danger" effect="dark"></el-tag>
this.getList(); </template>
this.$api.publics.getZgsDeptList().then((d) => { </el-table-column>
this.depts = d?.data || []; <el-table-column
label="项目全景"
align="center"
prop="yssys"
width="120"
show-overflow-tooltip
/>
</el-table-column>
<el-table-column label="工程管理" align="center">
<el-table-column
label="项目标准化"
align="center"
prop="bzh"
width="120"
show-overflow-tooltip
/>
<el-table-column
label="审批进行中"
align="center"
prop="gcsq"
width="120"
show-overflow-tooltip
/>
<el-table-column
label="审批已完成"
align="center"
prop="gcsp"
width="120"
show-overflow-tooltip
/>
</el-table-column>
</el-table>
</div>
</template>
<script>
import {
selectStatisticsProjectList,
exportView,
} from "@/api/statistics/statisticsProject";
import axios from "axios";
import { saveAs } from "file-saver";
import { getToken } from "@/utils/auth";
export default {
name: "statisticsProject",
components: {},
dicts: ["project_build_type", "project_category"],
data() {
return {
//
loading: true,
//
showSearch: true,
//
total: 0,
//
queryParams: {
projectName: null,
projectType: "1",
projectNature: null,
deptId: null,
},
//
form: {},
//
rules: {},
depts: [],
dataList: [],
daterangeTime: [],
};
},
created() {
this.getList();
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
},
methods: {
/** 查询项目管理列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeTime && "" != this.daterangeTime) {
this.queryParams.params["beginTime"] = this.daterangeTime[0];
this.queryParams.params["endTime"] = this.daterangeTime[1];
}
selectStatisticsProjectList(this.queryParams).then((response) => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
}); });
}, },
methods: { /** 搜索按钮操作 */
/** 查询项目管理列表 */ handleQuery() {
getList() { this.getList();
this.loading = true; },
this.queryParams.params = {}; /** 重置按钮操作 */
if (null != this.daterangeTime && "" != this.daterangeTime) { resetQuery() {
this.queryParams.params["beginTime"] = this.daterangeTime[0]; this.resetForm("queryForm");
this.queryParams.params["endTime"] = this.daterangeTime[1]; this.handleQuery();
} },
selectStatisticsProjectList(this.queryParams).then((response) => { objectSpanMethod({ row, column, rowIndex, columnIndex }) {
this.dataList = response.rows; // column.propertykey
this.total = response.total; let _row = 1;
this.loading = false; if ([0, 4, 7, 8, 12, 13, 18, 19, 27].includes(columnIndex)) {
}); var spanArr = this.getSpanArr(column.property);
}, _row = spanArr[rowIndex];
/** 搜索按钮操作 */ }
handleQuery() { const _col = _row > 0 ? 1 : 0;
this.getList(); return {
}, rowspan: _row,
/** 重置按钮操作 */ colspan: _col,
resetQuery() { };
this.resetForm("queryForm"); },
this.handleQuery(); //
}, getSpanArr(spanKey) {
objectSpanMethod({ row, column, rowIndex, columnIndex }) { let data = this.dataList;
// column.propertykey var spanArr = [];
let _row = 1; var pos = "";
if([0,4,7,8,12,13,18,19,27].includes(columnIndex)){ for (var i = 0; i < data.length; i++) {
var spanArr = this.getSpanArr(column.property); if (i === 0) {
_row = spanArr[rowIndex]; spanArr.push(1);
} pos = 0;
const _col = _row > 0 ? 1 : 0; } else {
return { //
rowspan: _row, if (
colspan: _col, data[i][spanKey] === data[i - 1][spanKey] &&
}; data[i].projectId === data[i - 1].projectId
}, ) {
// spanArr[pos] += 1;
getSpanArr(spanKey) { spanArr.push(0);
let data = this.dataList;
var spanArr = [];
var pos = "";
for (var i = 0; i < data.length; i++) {
if (i === 0) {
spanArr.push(1);
pos = 0;
} else { } else {
// spanArr.push(1);
if (data[i][spanKey] === data[i - 1][spanKey] && data[i].projectId === data[i - 1].projectId) { pos = i;
spanArr[pos] += 1;
spanArr.push(0);
} else {
spanArr.push(1);
pos = i;
}
} }
} }
return spanArr; }
}, return spanArr;
/** 导出按钮操作 */
handleExport() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeTime && "" != this.daterangeTime) {
this.queryParams.params["beginTime"] = this.daterangeTime[0];
this.queryParams.params["endTime"] = this.daterangeTime[1];
}
let url = process.env.VUE_APP_BASE_API + '/statistics/project/exportView';
axios({
method: 'post',
url: url,
data: this.queryParams,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
}).then((res) => {
this.loading = false;
let timeStamp = new Date().getTime();
const blob = new Blob([res.data], { type: 'application/vnd.ms-excel;charset=utf-8' })
this.saveAs(blob, decodeURIComponent('项目汇总数据_'+timeStamp+'.xlsx'))
})
},
saveAs(text, name, opts) {
saveAs(text, name, opts);
},
}, },
}; /** 导出按钮操作 */
</script> handleExport() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeTime && "" != this.daterangeTime) {
this.queryParams.params["beginTime"] = this.daterangeTime[0];
this.queryParams.params["endTime"] = this.daterangeTime[1];
}
let url = process.env.VUE_APP_BASE_API + "/statistics/project/exportView";
axios({
method: "post",
url: url,
data: this.queryParams,
responseType: "blob",
headers: { Authorization: "Bearer " + getToken() },
}).then((res) => {
this.loading = false;
let timeStamp = new Date().getTime();
const blob = new Blob([res.data], {
type: "application/vnd.ms-excel;charset=utf-8",
});
this.saveAs(blob, decodeURIComponent("项目汇总数据_" + timeStamp + ".xlsx"));
});
},
saveAs(text, name, opts) {
saveAs(text, name, opts);
},
},
};
</script>

View File

@ -14,24 +14,22 @@ import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.vo.ProjectViewExport; import com.yanzhu.jh.project.domain.vo.ProjectViewExport;
import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport; import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport;
import com.yanzhu.jh.project.service.IProjectViewService; import com.yanzhu.jh.project.service.IProjectViewService;
import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -309,7 +307,7 @@ public class ProjectViewController extends BaseBuildNodeController{
tempCell.setCellStyle(headerStyle); tempCell.setCellStyle(headerStyle);
tempCell = tempRow.createCell(5); tempCell = tempRow.createCell(5);
tempCell.setCellValue("环境检测"); tempCell.setCellValue("劳资预警");
tempCell.setCellStyle(headerStyle); tempCell.setCellStyle(headerStyle);
tempCell = tempRow.createCell(6); tempCell = tempRow.createCell(6);
@ -493,7 +491,7 @@ public class ProjectViewController extends BaseBuildNodeController{
tempCell.setCellStyle(contentStyle); tempCell.setCellStyle(contentStyle);
tempCell = tempRow.createCell(5); tempCell = tempRow.createCell(5);
tempCell.setCellValue(view.getHjjc().equals("0")?"未接入":"已接入"); tempCell.setCellValue(Convert.toStr(view.getLzyjs(),"0"));
tempCell.setCellStyle(contentStyle); tempCell.setCellStyle(contentStyle);
tempCell = tempRow.createCell(6); tempCell = tempRow.createCell(6);

View File

@ -86,8 +86,10 @@ public class ProjectViewExport implements Serializable {
private String gcsp; private String gcsp;
private String jdyj; private String jdyj;
private String hjjc; @Excel(name = "劳资预警", width = 20,align = HorizontalAlignment.CENTER)
private String lzyjs;
private String hjyjs; private String hjyjs;
private String zlyjs; private String zlyjs;
private String aqyjs; private String aqyjs;
@ -326,12 +328,12 @@ public class ProjectViewExport implements Serializable {
this.jdyj = jdyj; this.jdyj = jdyj;
} }
public String getHjjc() { public String getLzyjs() {
return hjjc; return lzyjs;
} }
public void setHjjc(String hjjc) { public void setLzyjs(String lzyjs) {
this.hjjc = hjjc; this.lzyjs = lzyjs;
} }
public String getHjyjs() { public String getHjyjs() {

View File

@ -43,7 +43,7 @@
(select count(1) from vw_flow_all a where a.businessKey = sp.id and a.startDeptName = pui.unitName and a.finishTime is not null)as gcsp, (select count(1) from vw_flow_all a where a.businessKey = sp.id and a.startDeptName = pui.unitName and a.finishTime is not null)as gcsp,
(select count(1) from sur_project_standard a where a.project_id = sp.id and a.dept_id = pui.unitId and a.is_del=0)as bzh, (select count(1) from sur_project_standard a where a.project_id = sp.id and a.dept_id = pui.unitId and a.is_del=0)as bzh,
(select count(1) from sur_project_photography a where a.project_id = sp.id and a.is_del=0)as yssys, (select count(1) from sur_project_photography a where a.project_id = sp.id and a.is_del=0)as yssys,
'0' as hjjc, (select count(1) from flow_labour_info a where a.project_id = sp.id and a.deptId=pui.unitId and a.is_del=0) as lzyjs,
'0' as hjyjs, '0' as hjyjs,
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=1 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as zlyjs, (select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=1 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as zlyjs,
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=0 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as aqyjs, (select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=0 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as aqyjs,