姜玉琦 2024-04-26 01:51:01 +08:00
commit 4b984e6c12
7 changed files with 112 additions and 132 deletions

View File

@ -90,8 +90,8 @@ const sumForBsEnginAuditing=data=>{
data4:getValue(4), data4:getValue(4),
data5:getValue(5), data5:getValue(5),
data6:getValue(6), data6:getValue(6),
}; };
obj.percent=obj.data1==0?0:obj.data3*100.0/obj.data1; obj.percent=obj.data2==0?0:obj.data3*100.0/obj.data2;
if(obj.percent>100){ if(obj.percent>100){
obj.percent=100; obj.percent=100;
} }
@ -137,10 +137,17 @@ const selectForBigEnginList=data=>{
}); });
}); });
}; };
const groupBYProject=data=>{
return request({
url:'/project/costOutput/groupBYProject',
method: 'post',
data:data
})
}
export default{ export default{
selectYearAndMonth, selectYearAndMonth,
sumByDeptId, sumByDeptId,
sumForBsEnginAuditing, sumForBsEnginAuditing,
selectForBigEnginList selectForBigEnginList,
groupBYProject
} }

View File

@ -52,7 +52,7 @@
</div> </div>
</div> </div>
<div :class="(nav >=70 && nav <80) || nav==7? 'head-nav active' : 'head-nav'" style="position: relative;" <div v-if="!isTypeBuser" :class="(nav >=70 && nav <80) || nav==7? 'head-nav active' : 'head-nav'" style="position: relative;"
class="has-submenu"> class="has-submenu">
<div @click="pageJump(7, '#/engin')">工程管理</div> <div @click="pageJump(7, '#/engin')">工程管理</div>
<div class="header-btn-list"> <div class="header-btn-list">
@ -481,7 +481,7 @@ export default {
<style lang="less"> <style lang="less">
.head-title{ .head-title{
z-index: 9999; z-index: 999;
} }
.main-header { .main-header {
.head-title-tab { .head-title-tab {

View File

@ -1,16 +1,26 @@
<template> <template>
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" class="mag-detail-dialog"> <MyDialog v-if="show" v-model="show" width="1600px" height="850px" class="mag-detail-dialog">
<template slot="title">{{info.title }}</template> <template slot="title">{{ info.title }}</template>
<div style="text-align: center;color:dodgerblue;"> <div style="text-align: center;color:dodgerblue;">
{{ info.name }} - {{ info.topicName }} - {{ info.deptName }} - {{ info.authorName }} - {{ info.createTime|formatDateTime }} {{ info.name }} - {{ info.topicName }} - {{ info.deptName }} - {{ info.authorName }} - {{
info.createTime | formatDateTime }}
</div> </div>
<div class="scroll" style="max-height: calc(100% - 100px);overflow: auto;"> <div class="scroll" style="max-height: calc(100% - 100px);overflow: auto;">
<div style="display: flex;justify-content: center;">
<el-image v-if="info.imageUrl" class="info-image" :src="'/jhapi' + info.imageUrl + '.min.jpg'"
:preview-src-list="['/jhapi' + info.imageUrl]"></el-image> <div v-if="info.imageUrl && info.imageUrl.length > 0" style="width:calc(100% - 16px);">
<el-image v-for="(item, idx) in info.imageUrl" :key="idx" class="info-image" :src="item + '.min.jpg'" :preview-src-list="[item]"></el-image>
</div>
<!--
<el-carousel >
<el-carousel-item v-for="(item, idx) in info.imageUrl" :key="idx">
<el-image class="info-image" :src="item + '.min.jpg'" :preview-src-list="[item]"></el-image>
</el-carousel-item>
</el-carousel>
-->
<pre v-html="info.content" style="white-space: break-spaces;"></pre>
</div> </div>
<pre v-html="info.content" style="white-space: break-spaces;"></pre>
</div>
</MyDialog> </MyDialog>
</template> </template>
@ -27,17 +37,17 @@ export default {
data() { data() {
return { return {
show: false, show: false,
info:{}, info: {},
}; };
}, },
mounted() { mounted() {
}, },
methods: { methods: {
showDialog(data) { showDialog(data) {
this.show = true this.show = true
this.info=data; this.info = data;
}, },
}, },
}; };
@ -52,15 +62,18 @@ export default {
</style> </style>
<style lang="less"> <style lang="less">
.mag-detail-dialog { .mag-detail-dialog {
.popup-project-introduction-con{ .popup-project-introduction-con {
height: 100%; height: 100%;
.popup-project-introduction-details{
.popup-project-introduction-details {
height: 100%; height: 100%;
.quality-table.special-table{
.quality-table.special-table {
height: 100%; height: 100%;
} }
} }
} }
.popup-project-introduction-min { .popup-project-introduction-min {
transform: translateY(100px); transform: translateY(100px);
} }
@ -77,13 +90,22 @@ export default {
} }
} }
.el-carousel.el-carousel--horizontal{
.el-image.info-image{
height: 300px; height: 300px;
width: 100%;
.el-image__inner{
width:auto !important;
}
.el-carousel__arrow i{
font-size: 40px;
}
}
.el-image.info-image {
width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding:6px; padding: 6px;
} }
} }
</style> </style>

View File

@ -11,8 +11,8 @@
<el-table-column label="作者" align="center" prop="authorName" /> <el-table-column label="作者" align="center" prop="authorName" />
<el-table-column label="期刊主图" align="center" prop="imageUrl"> <el-table-column label="期刊主图" align="center" prop="imageUrl">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-image v-if="row.imageUrl" class="row-image" :src="'/jhapi' + row.imageUrl + '.min.jpg'" <el-image v-if="row.imageUrl && row.imageUrl.length>0" class="row-image" :src="row.imageUrl[0] + '.min.jpg'"
:preview-src-list="['/jhapi' + row.imageUrl]"></el-image> :preview-src-list="row.imageUrl"></el-image>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="标题" align="center" prop="title"> <el-table-column label="标题" align="center" prop="title">
@ -64,8 +64,11 @@ export default {
}, },
methods: { methods: {
doRowClick(row,col,e){ doRowClick(row,col,e){
this.$refs.dlg.showDialog(row); if(e.target.className.indexOf("el-image__inner")==-1){
//this.$refs.dlg.showDialog(row);
e.target.offsetParent.parentElement.querySelector(".el-image__inner").click();
}
}, },
handleCurrentChange(n) { handleCurrentChange(n) {
this.index = n; this.index = n;
@ -98,7 +101,9 @@ export default {
if (tmps && tmps.length > 0) { if (tmps && tmps.length > 0) {
tmps = tryToJson(tmps, []); tmps = tryToJson(tmps, []);
if (tmps.length > 0) { if (tmps.length > 0) {
it.imageUrl = tmps[0]; it.imageUrl = tmps.map(it=>{
return "/jhapi"+it;
});
} }
} }
return it; return it;

View File

@ -668,7 +668,7 @@ export default {
return x; return x;
}, },
doShowDlg3() { doShowDlg3() {
this.$refs.dlg3.showDialog() this.$refs.dlg3.showDialog(this.deptInfo?.id || 0)
}, },
doShowDlg1() { doShowDlg1() {
this.$refs.dlg1.showDialog() this.$refs.dlg1.showDialog()

View File

@ -1,85 +1,43 @@
<template> <template>
<MyDialog v-if="show" v-model="show" width="1000px" ref="dlg"> <MyDialog v-if="show" v-model="show" width="1000px" ref="dlg">
<template slot="title"> <template slot="title">
<div class="warning-info-title" style="padding-left: 20px;" v-if="1==2"> <div class="warning-info-title" style="padding-left: 20px;">
<div :class="nav == 0 ? 'active' : ''" class="nav-item" @click="toggleNav(0)"></div> <div :class="nav == 'a1' ? 'active' : ''" class="nav-item" @click="toggleNav('a1')"></div>
<div :class="nav == 1 ? 'active' : ''" class="nav-item" @click="toggleNav(1)"></div> <div :class="nav == 'a2' ? 'active' : ''" class="nav-item" @click="toggleNav('a2')"></div>
<div :class="nav == 2 ? 'active' : ''" class="nav-item" @click="toggleNav(2)"></div> </div>
</div> <el-tabs v-model="nav" class="my-tabs" @tab-click="handleClick" v-if="1==2">
<el-tabs v-model="nav" class="my-tabs" > <el-tab-pane label="按在建、前期、拟建、完成项目分类" name="a1"></el-tab-pane>
<el-tab-pane label="重点项目计划汇总" name="0"></el-tab-pane> <el-tab-pane label="按省、市、新区、新城级分类" name="a2"></el-tab-pane>
<el-tab-pane label="按续建、新建、前期项目分类" name="1"></el-tab-pane> </el-tabs>
<el-tab-pane label="按省、市、新区、新城级分类" name="2"></el-tab-pane>
</el-tabs>
</template> </template>
<h1 v-if="1==2">20232023.4.12.xlsx</h1> <el-table :data="tableData" class="mytable" height="500" style="width: 100%;background: transparent;">
<el-table v-show="nav == 0" :data="tableData1" class="mytable" height="500" style="width: 100%;background: transparent;"> <el-table-column prop="remark" label="分类项" >
<el-table-column prop="prj" label="重点项目计划项目个数" width="200"> </el-table-column>
<el-table-column prop="node" label="总投资(亿元)" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color:#01A9FF;font-size: 12px;">{{ scope.row.node }}</span> <span style="color:#fff;font-size: 12px;">{{ scope.row.remark }}项目</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="days" label="年度投资(亿元)" width="120"> <el-table-column prop="money" label="项目数" >
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color:red">{{ scope.row.days }}</span> <span style="color:#01A9FF;font-size: 12px;">{{ scope.row.month }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="date" label="备注" class-name="text-left"> <el-table-column prop="money" label="总投资(亿元)" >
</el-table-column>
</el-table>
<el-table v-show="nav == 1" :data="tableData2" class="mytable my-data2" style="width: 100%;background: transparent;"
ref="fbsubordinateUnit">
<el-table-column prop="prj" label="分类项" class-name="text-left" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<span style="font-size: 16px;font-weight: bold;">{{ scope.row.prj }}</span> <span style="color:red;font-size: 12px;">{{ scope.row.money.toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column prop="node" label="项目数" width="150" >
<template slot-scope="scope">
<span style="color:#01A9FF;font-size: 12px;">{{ scope.row.node }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="days" label="总投资(亿元)"> <el-table-column prop="money2" label="年度投资(亿元)" >
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color:red">{{ scope.row.days }}</span> <span style="color:#fff">{{ scope.row.money2.toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column prop="date" label="年度投资(亿元)">
</el-table-column>
</el-table>
<el-table v-show="nav == 2" :data="tableData3" class="mytable my-data2" style="width: 100%;background: transparent;"
ref="fbsubordinateUnit">
<el-table-column prop="prj" label="分类项" class-name="text-left" width="150">
<template slot-scope="scope">
<span style="font-size: 16px;font-weight: bold;">{{ scope.row.prj }}</span>
</template>
</el-table-column>
<el-table-column prop="node" label="项目数" width="150" >
<template slot-scope="scope">
<span style="color:#01A9FF;font-size: 12px;">{{ scope.row.node }}</span>
</template>
</el-table-column>
<el-table-column prop="days" label="总投资(亿元)" width="150">
<template slot-scope="scope">
<span style="color:red">{{ scope.row.days }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="date" label="年度投资(亿元)" width="150">
</el-table-column>
<el-table-column prop="bak" label="备注" class-name="text-left">
</el-table-column>
</el-table> </el-table>
</MyDialog> </MyDialog>
</template> </template>
@ -92,52 +50,40 @@ export default {
}, },
data() { data() {
return { return {
activeName: 'second', nav: "a1",
nav: 0, dept:0,
show: false, show: false,
tableData1: [], tableData: []
tableData2: [],
tableData3: [],
}; };
}, },
mounted() { mounted() {},
window.dlg2 = this
this.tableData1 = [
{ prj: '65', node: '515.97', days: 134.86, date: '投资说明芯片项目总投26亿元年度投资20亿元置业6宗住宅用地及城投3宗娱乐用地总投33亿元协同创新基地总投5亿元。' },
]
this.tableData2 = [
{ prj: '续建项目', node: '15', days: 183.28, date: '71.32' },
{ prj: '新建项目', node: '34', days: 273.93, date: '63.54' },
{ prj: '前期项目', node: '16', days: 58.76 , date: '' },
{ prj: '合计', node: '65', days: 515.97 , date: '134.86' },
]
this.tableData3 = [
{ prj: '省级重点项目', node: '9', days: 215.26, date: '60.67' ,bak:'创维、1980泾造中心二期、智谷二期、智谷一期、锦越坊、泊创广场、城市阳台院士坊、文化艺术中心、交大医院'},
{ prj: '市级重点项目', node: '10', days: 72.29, date: '40.97' ,bak:'小动力电池一、二期、芯片产业园、创普斯二期、隆基100GW、50GW、泊跃人工智能产业园、荟锦坊一、二期、市政道路'},
{ prj: '新区重点项目', node: '7', days: 52.44 , date: '11.39' ,bak:'城市阳台公园、崇文商业、泊湾中心、云和悦、云如逸、云雨间、泊域人才中心'},
{ prj: '新城重点项目', node: '38', days: 175.98 , date: '21.83' },
{ prj: '合计', node: '64', days: 515.97 , date: '134.86' },
]
},
methods: { methods: {
toggleNav(n) { toggleNav(tab){
this.nav = n; this.nav=tab;
this.loadData();
}, },
showDialog() { loadData(){
let postData={
id:this.dept,
costType:this.nav=="a1"?1:2,
year:new Date().getFullYear()
};
this.$api.costOut.groupBYProject(postData).then(d=>{
this.tableData=(d.data||[]).map(it=>{
it.money=(it.money||0)/10000.0/10000.0;
it.money2=(it.money2||0)/10000.0/10000.0;
return it;
});
});
},
showDialog(dept) {
this.dept=dept;
this.show = true this.show = true
this.loadData();
} }
}, },
}; };

View File

@ -76,7 +76,7 @@
{{ row.mag }} {{ row.mag }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-for="(it, idx) in dataListTitles" :label="it"> <el-table-column v-for="(it, idx) in dataListTitles" :label="it" :key="idx">
<template slot-scope="{row}"> <template slot-scope="{row}">
<span style="cursor: pointer;" @click="showMagDlg(row,idx)">{{ row.list[idx].cnt }}</span> <span style="cursor: pointer;" @click="showMagDlg(row,idx)">{{ row.list[idx].cnt }}</span>
</template> </template>
@ -169,7 +169,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="项目名称"/> <el-table-column prop="remark" label="项目名称"/>
<el-table-column prop="costName" label="成本名称"/> <el-table-column prop="costName" label="成本名称"/>
<el-table-column prop="money" label="付款金额(万元)"> <el-table-column prop="money" label="申报金额(万元)">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ (row.money||0).toFixed(2) }} {{ (row.money||0).toFixed(2) }}
</template> </template>