Commit 76837194 authored by 陈珊's avatar 陈珊

fix

parent e8af0b3b
...@@ -98,10 +98,11 @@ export async function getProjectList(params, noloading) { ...@@ -98,10 +98,11 @@ export async function getProjectList(params, noloading) {
} }
// 获取严重问题列表 // 获取严重问题列表
export async function getImportantQuestion() { export async function getImportantQuestion(params) {
return await request({ return await request({
url: `/site/index/getLevel`, url: `/site/index/getLevel`,
method: 'get', method: 'get',
params
}) })
} }
...@@ -179,18 +180,48 @@ export async function getAreaDetail(projectId) { ...@@ -179,18 +180,48 @@ export async function getAreaDetail(projectId) {
} }
// 获取政府监管预警接口 // 获取政府监管预警接口
export async function getGovernmentRegulation() { export async function getGovernmentRegulation(params) {
return await request({ return await request({
url: '/site/question?question_level=3', url: '/site/question?question_level=3',
method: 'get', method: 'get',
params
}) })
} }
// 获取质量检测应接口 // 获取质量检测应接口
export async function getQualityInspection() { export async function getQualityInspection(params) {
return await request({ return await request({
url: '/site/index/getcheck', url: '/site/index/getcheck',
method: 'get', method: 'get',
params
})
}
// 获取外观质量接口
export async function getQualityAppearance(params) {
return await request({
url: '/site/index/appearance',
method: 'get',
params
})
}
// 获取质量事故/缺陷预警
export async function getQualityIncident(params) {
return await request({
url: '/site/index/incident',
method: 'get',
params
})
}
// 获取质量事故/缺陷预警详情
export async function getSGQXData(id) {
return await request({
url: `/site/quality/incident/${id}`,
method: 'get',
}) })
} }
......
src/assets/images/background.png

2.13 MB | W: | H:

src/assets/images/background.png

583 KB | W: | H:

src/assets/images/background.png
src/assets/images/background.png
src/assets/images/background.png
src/assets/images/background.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -103,14 +103,15 @@ export default { ...@@ -103,14 +103,15 @@ export default {
top: 0; top: 0;
width: 100%; width: 100%;
height: 80px; height: 80px;
background: url("@/assets/images/index/img_dingbu@2x.png"); background: url("@/assets/images/index/img_dingbu@2x.gif");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.left-nav { .left-nav {
width: calc(100% / 3); width: max-content;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
z-index: 9;
span { span {
color: #fff; color: #fff;
font-size: 18px; font-size: 18px;
...@@ -125,12 +126,15 @@ export default { ...@@ -125,12 +126,15 @@ export default {
} }
.mid-title { .mid-title {
width: calc(100% / 3); width: calc(100% / 3);
height: 100%;
position: absolute;
left: 50%;
transform: translateX(-50%);
font-size: 32px; font-size: 32px;
color: #fefeff; color: #fefeff;
text-align: center; text-align: center;
letter-spacing: 3px; letter-spacing: 3px;
line-height: 60px; line-height: 60px;
position: relative;
span { span {
position: absolute; position: absolute;
left: 0; left: 0;
......
...@@ -23,10 +23,11 @@ export default { ...@@ -23,10 +23,11 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.title { .title {
font-size: 18px; font-size: 18px;
font-weight: 600;
color: #fff; color: #fff;
line-height: 40px !important; line-height: 40px !important;
text-align: center; text-align: center;
background: url("@/assets/images/index/icon_toubg@2x.png"); background: url("@/assets/images/index/icon_toubg@2x.gif");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
position: relative; position: relative;
...@@ -38,6 +39,7 @@ export default { ...@@ -38,6 +39,7 @@ export default {
transform: translateY(-50%); transform: translateY(-50%);
color: #43bcd2; color: #43bcd2;
font-size: 14px; font-size: 14px;
padding-right: 10px;
} }
.left-slot { .left-slot {
position: absolute; position: absolute;
......
...@@ -34,7 +34,7 @@ export default { ...@@ -34,7 +34,7 @@ export default {
line-height: 40px !important; line-height: 40px !important;
text-align: left; text-align: left;
padding-left: 15px; padding-left: 15px;
background: url("@/assets/images/index/icon_toubuj.png"); background: url("@/assets/images/index/icon_toubuj.gif");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
display: flex; display: flex;
......
...@@ -200,64 +200,62 @@ ...@@ -200,64 +200,62 @@
></el-table-column> ></el-table-column>
</el-table> </el-table>
<div class="inner-title"> <div class="inner-title" v-if="appearance_quality_project.appearance_quality_score > 0">
质量评定<span>(得分:{{ project_info.quality_score }})</span> 外观质量<span>(得分:{{ appearance_quality_project.appearance_quality_score }})</span>
</div> </div>
<el-table <el-table v-if="appearance_quality_project.appearance_quality_score > 0"
border border
class="dialog-data-table" class="dialog-data-table"
:data="pd_info" :data="pd_info"
style="margin-top: 0" style="margin-top: 0"
:span-method="handleSpan"
:max-height="400" :max-height="400"
> >
<el-table-column <el-table-column
label="单位工程名称" label="单位工程名称"
align="left" align="left"
prop="parent_name"
:show-overflow-tooltip=true
></el-table-column>
<el-table-column
label="是否为主要单位"
align="center"
prop="tis_main_unit_name"
></el-table-column>
<el-table-column
label="外观质量得分"
align="center"
prop="tappearance_quality_score"
></el-table-column>
<el-table-column
label="分部工程名称"
align="left"
prop="part_name" prop="part_name"
:show-overflow-tooltip=true :show-overflow-tooltip=true
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="是否为主要分部" label="是否为主要单位"
align="center" align="center"
prop="is_main_distribution_name" prop="is_main_unit_name"
width="200"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="重要隐蔽或关键单元工程个数" label="应得分"
align="center" align="center"
prop="concealed_critical_num" prop="appearance_should_score"
width="150"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="重要隐蔽或关键单元工程的优良率" label="实得分"
align="center" align="center"
prop="concealed_critical_percentage" prop="appearance_quality_score"
width="150"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="一般单元工程个数" label="得分率"
align="center" align="center"
prop="general_num" prop="appearance_score_per"
></el-table-column> width="150"
>
<template slot-scope="scope">
{{scope.row.appearance_score_per}}%
</template>
</el-table-column>
<el-table-column <el-table-column
label="一般单元工程优良率" label="评分结果"
align="center" align="center"
prop="general_percentage" prop="appearance_pd_value"
></el-table-column> width="150"
>
<template slot-scope="scope">
<el-tag type="info" size="small" v-if="scope.row.appearance_pd_value == 0">{{scope.row.appearance_pd_str}}</el-tag>
<el-tag type="success" size="small" v-if="scope.row.appearance_pd_value == 1">{{scope.row.appearance_pd_str}}</el-tag>
<el-tag type="danger" size="small" v-if="scope.row.appearance_pd_value == 2">{{scope.row.appearance_pd_str}}</el-tag>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
...@@ -363,6 +361,7 @@ export default { ...@@ -363,6 +361,7 @@ export default {
check_info: [], check_info: [],
ZFJGVisible: false, ZFJGVisible: false,
currentRowData: {}, currentRowData: {},
appearance_quality_project: {}
}; };
}, },
computed: { computed: {
...@@ -402,7 +401,8 @@ export default { ...@@ -402,7 +401,8 @@ export default {
this.excellence_info = [res.data.excellence_info]; this.excellence_info = [res.data.excellence_info];
this.question_info = [res.data.question_info]; this.question_info = [res.data.question_info];
this.project_info = res.data.project_info; this.project_info = res.data.project_info;
this.pd_info = res.data.pd_info; this.pd_info = res.data.appearance_quality.list || [];
this.appearance_quality_project = res.data.appearance_quality.project || {};
// this.check_info = res.data.check_info; // this.check_info = res.data.check_info;
this.allData = [...res.data.check_info]; this.allData = [...res.data.check_info];
......
...@@ -17,9 +17,10 @@ ...@@ -17,9 +17,10 @@
<script> <script>
import ZLPD from "./ZLJCPD.vue"; import ZLPD from "./ZLJCPD.vue";
import ZLJC from "./ZLJC.vue"; import ZLJC from "./ZLJC.vue";
import sgqx from "./SGQX.vue";
export default { export default {
name: "GCZLIndex", name: "GCZLIndex",
components: { ZLPD, ZLJC }, components: { ZLPD, ZLJC, sgqx },
props: { props: {
visible: { visible: {
type: Boolean, type: Boolean,
......
<template>
<div style="height: 100%; margin-top: 10px; overflow: auto;">
<div style="color: #D9D9D9;">
<div>发生较大及以上质量事故的工程直接判定为0分;发生一般质量事故的工程工程质量模块的分值在原有基础上直接扣除50%的分值。</div>
<div style="margin-top: 5px;">工程存在质量缺陷的,每出现1个质量缺陷,工程质量模块分值在原有分值基础上折减15%;最高折减50%。</div>
</div>
<div class="flex-box">
<div class="flex-item">
<el-image :src="require('@/assets/images/icon_jiaoda.png')" style="width: 40px; height: 40px; margin-right: 15px;"></el-image>
<div class="txt">较大及以上质量事故:</div>
<div class="num">{{info.zdsg_num || 0}}</div>
</div>
<div class="flex-item">
<el-image :src="require('@/assets/images/icon_yiban.png')" style="width: 40px; height: 40px; margin-right: 15px;"></el-image>
<div class="txt">一般质量事故:</div>
<div class="num" style="color: #BD60E9;">{{info.ybsg_num || 0}}</div>
</div>
<div class="flex-item">
<el-image :src="require('@/assets/images/icon_quexian.png')" style="width: 40px; height: 40px; margin-right: 15px;"></el-image>
<div class="txt">质量缺陷:</div>
<div class="num" style="color: #EB9334;">{{info.zlqx_num || 0}}</div>
</div>
<div class="flex-item">
<el-image :src="require('@/assets/images/icon_leiji.png')" style="width: 40px; height: 40px; margin-right: 15px;"></el-image>
<div class="txt">累计扣分:</div>
<div class="num">{{info.score_per || 0}}<span class="unit">%</span></div>
</div>
</div>
<el-table
border
class="dialog-data-table"
:data="tableData"
v-loading="loading"
:element-loading-background="loadingBG"
>
<el-table-column label="类型" align="left" prop="type_str" width="190"></el-table-column>
<el-table-column label="描述" align="left" prop="remark"></el-table-column>
<el-table-column label="附件" align="center" prop="file" width="110">
<template slot-scope="scope">
<el-popover trigger="click" v-if="scope.row.files_list && scope.row.files_list.length > 0">
<div slot="reference"><i class="el-icon-link" style="font-size: 20px;"></i></div>
<div style="display: flex">
<template v-for="item in scope.row.files_list">
<div class="pop-img" v-if="item.url" style="cursor: pointer; margin-right: 10px;">
<el-image v-if="getFileType(item.url)['type'] == 'pdf'" @click="pdfView(item.url)" :src="require('@/assets/images/icon_pdf.png')" fit="contain" style="width: 40px; height: 40px"></el-image>
<el-image v-else :src="item.url" fit="contain" :preview-src-list="[item.url]" style="width: 40px; height: 40px"></el-image>
</div>
</template>
</div>
</el-popover>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { getSGQXData } from "@/api/dataStatis";
export default {
props: {
data: {
type: Object,
default: () => {
return {};
},
},
tabnamenow:{
type: String,
default: 'ZLPD'
}
},
data() {
return {
info: {},
tableData: [],
loading: false,
loadingBG: "rgba(0, 0, 0, 0.2)",
};
},
methods: {
getData() {
let id = this.tabnamenow == 'ZLPD' ? this.data.id : this.data.project_id
getSGQXData(id).then((res) => {
this.info = res.data.project || {}
this.tableData = res.data.list || {}
})
},
pdfView(url){
window.open(url)
},
getFileType(url) {
var urlArr = url.split('.');
var ext = urlArr[urlArr.length - 1];
var icon = '';
var type = '';
switch(ext){
case 'jpg':
case 'jpeg':
case 'png':
case 'gif':
case 'bmp':
icon = 'img.png';
type = 'image';
break;
case 'pdf':
icon = 'icon-pdf1';
type = 'pdf';
break;
case 'mp4':
icon = 'icon-shipin1';
type = 'video';
break;
case 'doc':
case 'docx':
icon = 'icon-word';
type = 'doc';
break;
}
return { 'icon': icon, 'type': type };
},
},
mounted() {
this.getData();
},
};
</script>
<style lang="less" scoped>
.flex-box{
display: flex;
justify-content: space-between;
margin: 10px 0 20px;
.flex-item{
background: #12407F;
border-radius: 4px;
width: calc(25% - 8px);
color: #FFFFFF;
font-size: 14px;
padding: 10px;
display: flex;
align-items: center;
.num{
font-size: 20px;
color: #EB3434;
margin-left: 5px;
.unit{
font-size: 10px;
margin-left: 5px;
}
}
}
}
</style>
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
{{ data.project_name }} {{ data.project_name }}
</div> </div>
<div> <div>
质量评定得分:<span class="count">{{ data.quality_score }}</span> 外观质量评定得分:<span class="count">{{ appearance_quality_project.appearance_quality_score>0?appearance_quality_project.appearance_quality_score:'--' }}</span>
</div> </div>
</div> </div>
<el-table <el-table
...@@ -16,59 +16,58 @@ ...@@ -16,59 +16,58 @@
v-loading="loading" v-loading="loading"
:element-loading-background="loadingBG" :element-loading-background="loadingBG"
height="calc(100% - .7rem)" height="calc(100% - .7rem)"
:span-method="handleSpan"
> >
<el-table-column <el-table-column
label="单位工程名称" label="单位工程名称"
align="center"
prop="parent_name"
></el-table-column>
<el-table-column
label="是否为主要单位"
align="center"
prop="tis_main_unit_name"
></el-table-column>
<el-table-column
label="外观质量得分"
align="center"
prop="tappearance_quality_score"
></el-table-column>
<el-table-column
label="分部工程名称"
align="left" align="left"
prop="part_name" prop="part_name"
:show-overflow-tooltip=true :show-overflow-tooltip=true
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="是否为主要分部" label="是否为主要单位"
align="center" align="center"
prop="is_main_distribution_name" prop="is_main_unit_name"
width="200"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="重要隐蔽或关键单元工程个数" label="应得分"
align="center" align="center"
prop="concealed_critical_num" prop="appearance_should_score"
width="150"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="重要隐蔽或关键单元工程的优良率" label="实得分"
align="center" align="center"
prop="concealed_critical_percentage" prop="appearance_quality_score"
width="150"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="一般单元工程个数" label="得分率"
align="center" align="center"
prop="general_num" prop="appearance_score_per"
></el-table-column> width="150"
>
<template slot-scope="scope">
{{scope.row.appearance_score_per}}%
</template>
</el-table-column>
<el-table-column <el-table-column
label="一般单元工程优良率" label="评分结果"
align="center" align="center"
prop="general_percentage" prop="appearance_pd_value"
></el-table-column> width="150"
>
<template slot-scope="scope">
<el-tag type="info" size="small" v-if="scope.row.appearance_pd_value == 0">{{scope.row.appearance_pd_str}}</el-tag>
<el-tag type="success" size="small" v-if="scope.row.appearance_pd_value == 1">{{scope.row.appearance_pd_str}}</el-tag>
<el-tag type="danger" size="small" v-if="scope.row.appearance_pd_value == 2">{{scope.row.appearance_pd_str}}</el-tag>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
</template> </template>
<script> <script>
import { getZLPDList } from "@/api/dataStatis"; import { getZLPDList, getAreaDetail } from "@/api/dataStatis";
export default { export default {
name: "ZFJGDetail", name: "ZFJGDetail",
...@@ -86,6 +85,7 @@ export default { ...@@ -86,6 +85,7 @@ export default {
loading: false, loading: false,
loadingBG: "rgba(0, 0, 0, 0.2)", loadingBG: "rgba(0, 0, 0, 0.2)",
appearance_quality_project: {}
}; };
}, },
...@@ -141,8 +141,9 @@ export default { ...@@ -141,8 +141,9 @@ export default {
return rowspan; return rowspan;
}, },
getData() { getData() {
getZLPDList(this.data.id).then((res) => { getAreaDetail(this.data.id).then((res) => {
this.tableData = res.data.list; this.tableData = res.data.appearance_quality.list || [];
this.appearance_quality_project = res.data.appearance_quality.project || [];
}); });
}, },
}, },
......
...@@ -9,12 +9,12 @@ ...@@ -9,12 +9,12 @@
<div class="scores"> <div class="scores">
<div class="score-title"> <div class="score-title">
<div class="title">问题信息</div> <div class="title">问题信息</div>
<div <!-- <div
class="got-score" class="got-score"
:style="{ color: data.question_status == 1 ? '#DF3333' : '#30B34F' }" :style="{ color: data.question_status == 1 ? '#DF3333' : '#30B34F' }"
> >
{{ data.question_status_str }} {{ data.question_status_str }}
</div> </div> -->
</div> </div>
<div class="score-detail"> <div class="score-detail">
<div class="w-100"><span>工程名称:</span><div>{{ data.project_name }}</div></div> <div class="w-100"><span>工程名称:</span><div>{{ data.project_name }}</div></div>
...@@ -25,11 +25,11 @@ ...@@ -25,11 +25,11 @@
<div class="w-100"><span>标段名称:</span><div>{{ data.lot_project_name }}</div></div> <div class="w-100"><span>标段名称:</span><div>{{ data.lot_project_name }}</div></div>
<div class="w-100"><span>所属机构:</span><div>{{ data.c_company_name }}</div></div> <div class="w-100"><span>所属机构:</span><div>{{ data.c_company_name }}</div></div>
<div class="w-100"><span>所属单位:</span><div>{{ data.units_company_name }}</div></div> <div class="w-100"><span>所属单位:</span><div>{{ data.units_company_name }}</div></div>
<div class="w-100"><span>问题分类:</span><div>{{ data.category_name }}</div></div> <!-- <div class="w-100"><span>问题分类:</span><div>{{ data.category_name }}</div></div> -->
<div class="w-100"><span>问题等级:</span><div>{{ data.question_level_str }}</div></div> <div class="w-100"><span>问题等级:</span><div>{{ data.question_level_str }}</div></div>
<div class="w-100"><span>问题种类:</span><div>{{ data.question_type_str }}</div></div> <div class="w-100"><span>问题种类:</span><div>{{ data.question_type_str }}</div></div>
<div class="w-100"><span>处理状态:</span><div>{{ data.question_status_str }}</div></div> <!-- <div class="w-100"><span>处理状态:</span><div>{{ data.question_status_str }}</div></div> -->
<div class="w-100"><span>法规依据:</span><div>{{ data.legal_basis }}</div></div> <!-- <div class="w-100"><span>法规依据:</span><div>{{ data.legal_basis }}</div></div> -->
<div class="w-100"><span>系统问题描述:</span><div>{{ data.system_question }}</div></div> <div class="w-100"><span>系统问题描述:</span><div>{{ data.system_question }}</div></div>
<div class="w-100"><span>用户问题描述:</span><div>{{ data.user_question }}</div></div> <div class="w-100"><span>用户问题描述:</span><div>{{ data.user_question }}</div></div>
</div> </div>
......
...@@ -29,9 +29,9 @@ ...@@ -29,9 +29,9 @@
/> />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="问题类型:"> <!-- <el-form-item label="问题类型:">
<el-input size="small" v-model="searchForm.category_name" placeholder="请输入"></el-input> <el-input size="small" v-model="searchForm.category_name" placeholder="请输入"></el-input>
</el-form-item> </el-form-item> -->
<el-form-item label="问题种类:"> <el-form-item label="问题种类:">
<el-select <el-select
style="width: 1rem" style="width: 1rem"
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="处理状态:"> <!-- <el-form-item label="处理状态:">
<el-select <el-select
style="width: 1rem" style="width: 1rem"
v-model="searchForm.question_status" v-model="searchForm.question_status"
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
:key="option.key" :key="option.key"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleSearch" size="small" <el-button type="primary" @click="handleSearch" size="small"
>查询</el-button >查询</el-button
...@@ -172,11 +172,11 @@ export default { ...@@ -172,11 +172,11 @@ export default {
prop: "utype_str", prop: "utype_str",
minWidth: "100px", minWidth: "100px",
}, },
{ // {
label: "问题类型", // label: "问题类型",
prop: "name", // prop: "name",
minWidth: "120px", // minWidth: "120px",
}, // },
{ {
label: "问题种类", label: "问题种类",
prop: "question_type_str", prop: "question_type_str",
...@@ -200,12 +200,12 @@ export default { ...@@ -200,12 +200,12 @@ export default {
hasSlot: true, hasSlot: true,
minWidth: "100px", minWidth: "100px",
}, },
{ // {
label: "处理状态", // label: "处理状态",
prop: "question_status_str", // prop: "question_status_str",
minWidth: "100px", // minWidth: "100px",
hasSlot: true, // hasSlot: true,
}, // },
], ],
question_level: [], question_level: [],
question_status: [], question_status: [],
......
...@@ -44,13 +44,9 @@ ...@@ -44,13 +44,9 @@
@row-click="rowClickGCZL" @row-click="rowClickGCZL"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="scope.header.slot == 'quality_score'"> <template v-if="scope.header.slot == 'appearance_quality_score'">
<span <span
:style="{ >{{ scope.row.appearance_quality_score>0?scope.row.appearance_quality_score:'--' }}</span
color:
scope.row.quality_score < warningNum[5] ? '#f86262' : '',
}"
>{{ scope.row.quality_score }}</span
> >
</template> </template>
<template v-if="scope.header.slot == 'quality_check_score'"> <template v-if="scope.header.slot == 'quality_check_score'">
...@@ -343,6 +339,39 @@ ...@@ -343,6 +339,39 @@
</template> </template>
</template> </template>
</STable2> </STable2>
<STable2
:headers="header8"
:table-data="data8"
@row-click="(e)=>{rowClickGCZL(e)}"
v-if="tabListActive == 3"
>
<template slot-scope="scope">
<template v-if="scope.header.slot == 'avg_appearance_score'">
<span>
{{ scope.row.avg_appearance_score>0?(scope.row.avg_appearance_score+'%'):'--' }}
</span>
</template>
<template v-if="scope.header.slot == 'appearance_quality_score'">
<span>
{{ scope.row.appearance_quality_score>0?scope.row.appearance_quality_score:'--' }}
</span>
</template>
</template>
</STable2>
<STable2
:headers="header9"
:table-data="data9"
@row-click="(e)=>{rowClickSgqx(e)}"
v-if="tabListActive == 4"
>
<template slot-scope="scope">
<template v-if="scope.header.slot == 'score_per'">
<span>
{{ scope.row.score_per }}%
</span>
</template>
</template>
</STable2>
</Section2> </Section2>
</div> </div>
</div> </div>
...@@ -358,6 +387,8 @@ import { ...@@ -358,6 +387,8 @@ import {
getWarningStatusNum, getWarningStatusNum,
getGovernmentRegulation, getGovernmentRegulation,
getQualityInspection, getQualityInspection,
getQualityAppearance,
getQualityIncident
} from "@/api/dataStatis"; } from "@/api/dataStatis";
import { mapState } from "vuex"; import { mapState } from "vuex";
...@@ -417,10 +448,10 @@ export default { ...@@ -417,10 +448,10 @@ export default {
align: "left", align: "left",
}, },
{ {
name: "质量评定", name: "外观质量",
props: "quality_score", props: "appearance_quality_score",
width: "20%", width: "20%",
slot: "quality_score", slot: "appearance_quality_score",
}, },
{ {
name: "质量检测", name: "质量检测",
...@@ -538,30 +569,30 @@ export default { ...@@ -538,30 +569,30 @@ export default {
{ {
name: "工程名称", name: "工程名称",
props: "project_name", props: "project_name",
width: "15%", width: "25%",
align: "left", align: "left",
}, },
{ {
name: "所属区域", name: "所属区域",
props: "city_name", props: "city_name",
width: "15%", width: "10%",
align: "left", align: "left",
}, },
{ {
name: "单位名称", name: "单位名称",
props: "units_company_name", props: "units_company_name",
width: "15%", width: "20%",
}, },
{ {
name: "单位类型", name: "单位类型",
props: "utype_str", props: "utype_str",
width: "10%", width: "10%",
}, },
{ // {
name: "问题类型", // name: "问题类型",
props: "name", // props: "name",
width: "10%", // width: "10%",
}, // },
{ {
name: "问题种类", name: "问题种类",
props: "question_type_str", props: "question_type_str",
...@@ -654,14 +685,101 @@ export default { ...@@ -654,14 +685,101 @@ export default {
CXCYVisible: false, CXCYVisible: false,
GCZLVisible: false, GCZLVisible: false,
areaDialogVisible: false, areaDialogVisible: false,
tabListArr: ['工程分值预警', '政府监管预警', '质量检测预警'], tabListArr: ['工程分值预警', '政府监管预警', '质量检测预警','外观质量预警', '质量事故/缺陷预警'],
tabListActive: 0, tabListActive: 0,
QuestionDetailVisible: false, QuestionDetailVisible: false,
isProvice: true, isProvice: true,
questionId: "", questionId: "",
tabListDialog: [], tabListDialog: [],
tabNameDialog: "", tabNameDialog: "",
GCZLDialogTitle: '' GCZLDialogTitle: '',
header8: [
{
name: "工程名称",
props: "project_name",
width: "32%",
align: "left",
},
{
name: "所属区域",
props: "city_name",
width: "8%",
},
{
name: "主要单位工程总数",
props: "main_general_num",
width: "10%",
},
{
name: "一般单位工程总数",
props: "general_num",
width: "10%",
},
{
name: "单位工程总数",
props: "part_num",
width: "8%",
},
{
name: "质量事故",
props: "quality_incident",
width: "8%",
},
{
name: "质量缺陷",
props: "quality_defects",
width: "8%",
},
{
name: "平均得分率",
props: "avg_appearance_score",
width: "8%",
slot: "avg_appearance_score",
},
{
name: "整体得分",
props: "appearance_quality_score",
width: "8%",
slot: "appearance_quality_score",
}
],
data8: [],
header9: [
{
name: "工程名称",
props: "project_name",
width: "50%",
align: "left",
},
{
name: "所属区域",
props: "city_name",
width: "8%",
},
{
name: "较大及以上质量事故",
props: "zdsg_num",
width: "12%",
},
{
name: "一般质量事故",
props: "ybsg_num",
width: "10%",
},
{
name: "质量缺陷",
props: "zlqx_num",
width: "10%",
},
{
name: "扣除分值",
props: "score_per",
width: "10%",
slot: "score_per",
}
],
data9: []
}; };
}, },
methods: { methods: {
...@@ -698,21 +816,21 @@ export default { ...@@ -698,21 +816,21 @@ export default {
getProjectList({ limit: 100 }, false).then((res) => { getProjectList({ limit: 100 }, false).then((res) => {
this.data1 = res.data.data; this.data1 = res.data.data;
this.data2 = res.data.data; this.data2 = res.data.data;
if (this.data2.length != 0) { // if (this.data2.length != 0) {
for(var i=0; i<this.data2.length; i++){ // for(var i=0; i<this.data2.length; i++){
for(var j=i+1;j<this.data2.length;j++){ // for(var j=i+1;j<this.data2.length;j++){
//如果第一个比第二个小,就交换他们两个位置 // //如果第一个比第二个小,就交换他们两个位置
if(this.data2[i].quality_total_score < this.data2[j].quality_total_score){ // if(this.data2[i].quality_total_score < this.data2[j].quality_total_score){
var temp = this.data2[i].quality_total_score; // var temp = this.data2[i].quality_total_score;
this.data2[i].quality_total_score = this.data2[j].quality_total_score; // this.data2[i].quality_total_score = this.data2[j].quality_total_score;
this.data2[j].quality_total_score = temp; // this.data2[j].quality_total_score = temp;
} // }
} // }
} // }
} // }
this.data3 = res.data.data; this.data3 = res.data.data;
}); });
getImportantQuestion().then((res) => { getImportantQuestion({ limit: 100 }).then((res) => {
this.data5 = res.data; this.data5 = res.data;
}); });
this.initMap(); this.initMap();
...@@ -1142,14 +1260,26 @@ export default { ...@@ -1142,14 +1260,26 @@ export default {
} else { } else {
this.tabNameDialog = "ZLPD" this.tabNameDialog = "ZLPD"
this.tabListDialog = [ this.tabListDialog = [
{ name: "ZLPD", label: "质量评定" }, { name: "ZLPD", label: "外观质量" },
{ name: "ZLJC", label: "质量检测" }, { name: "ZLJC", label: "质量检测" },
{ name: "sgqx", label: "质量事故/缺陷" },
]; ];
this.GCZLDialogTitle = '工程质量详情' this.GCZLDialogTitle = '工程质量详情'
} }
this.currentRowData = data; this.currentRowData = data;
this.GCZLVisible = true; this.GCZLVisible = true;
}, },
rowClickSgqx(data){
this.tabNameDialog = "ZLPD"
this.tabListDialog = [
{ name: "ZLPD", label: "外观质量" },
{ name: "ZLJC", label: "质量检测" },
{ name: "sgqx", label: "质量事故/缺陷" },
];
this.GCZLDialogTitle = '工程质量详情'
this.GCZLVisible = true;
this.$eventBus.$emit("switchTabGC", "sgqx");
},
rowClickArea(index, data) { rowClickArea(index, data) {
console.log(index, data.type, data); console.log(index, data.type, data);
if (index == 0) { if (index == 0) {
...@@ -1164,8 +1294,9 @@ export default { ...@@ -1164,8 +1294,9 @@ export default {
if (data.type == 5 || data.type == 7 || data.type == 4) { if (data.type == 5 || data.type == 7 || data.type == 4) {
this.tabNameDialog = "ZLPD" this.tabNameDialog = "ZLPD"
this.tabListDialog = [ this.tabListDialog = [
{ name: "ZLPD", label: "质量评定" }, { name: "ZLPD", label: "外观质量" },
{ name: "ZLJC", label: "质量检测" }, { name: "ZLJC", label: "质量检测" },
{ name: "sgqx", label: "质量事故/缺陷" },
]; ];
this.GCZLDialogTitle = '工程质量详情' this.GCZLDialogTitle = '工程质量详情'
this.GCZLVisible = true; this.GCZLVisible = true;
...@@ -1194,20 +1325,30 @@ export default { ...@@ -1194,20 +1325,30 @@ export default {
changeTab(e){ changeTab(e){
this.tabListActive = e this.tabListActive = e
if (e == 0) { if (e == 0) {
getImportantQuestion().then((res) => { getImportantQuestion({ limit: 100 }).then((res) => {
this.data5 = res.data; this.data5 = res.data;
}); });
} }
if (e == 1) { if (e == 1) {
getGovernmentRegulation().then((res) => { getGovernmentRegulation({ limit: 100 }).then((res) => {
this.data6 = res.data.data; this.data6 = res.data.data;
}); });
} }
if (e == 2) { if (e == 2) {
getQualityInspection().then((res) => { getQualityInspection({ limit: 100 }).then((res) => {
this.data7 = res.data.list; this.data7 = res.data.list;
}); });
} }
if (e == 3) {
getQualityAppearance({ limit: 100 }).then((res) => {
this.data8 = res.data;
});
}
if (e == 4) {
getQualityIncident({ limit: 100 }).then((res) => {
this.data9 = res.data;
});
}
}, },
returnCity(){ returnCity(){
this.isProvice = true this.isProvice = true
......
...@@ -37,13 +37,9 @@ ...@@ -37,13 +37,9 @@
{{ data.quality_check_score }} {{ data.quality_check_score }}
</span> </span>
</template> </template>
<template #quality_score="{ data }"> <template #appearance_quality_score="{ data }">
<span <span>
:style="{ {{ data.appearance_quality_score>0?data.appearance_quality_score:'--' }}
color: data.quality_score < warningNum[5] ? '#f86262' : '',
}"
>
{{ data.quality_score }}
</span> </span>
</template> </template>
<template #quality_total_score="{ data }"> <template #quality_total_score="{ data }">
...@@ -87,8 +83,8 @@ export default { ...@@ -87,8 +83,8 @@ export default {
sortable: true, sortable: true,
}, },
{ {
label: "质量评定得分", label: "外观质量得分",
prop: "quality_score", prop: "appearance_quality_score",
hasSlot: true, hasSlot: true,
sortable: true, sortable: true,
}, },
......
...@@ -46,13 +46,9 @@ ...@@ -46,13 +46,9 @@
{{ data.quality_check_score }} {{ data.quality_check_score }}
</span> </span>
</template> </template>
<template #quality_score="{ data }"> <template #appearance_quality_score="{ data }">
<span <span>
:style="{ {{ data.appearance_quality_score }}
color: data.quality_score < warningNum[5] ? '#f86262' : '',
}"
>
{{ data.quality_score }}
</span> </span>
</template> </template>
<template #excellence_score="{ data }"> <template #excellence_score="{ data }">
...@@ -109,8 +105,8 @@ export default { ...@@ -109,8 +105,8 @@ export default {
sortable: true, sortable: true,
}, },
{ {
label: "质量评定得分", label: "外观质量得分",
prop: "quality_score", prop: "appearance_quality_score",
hasSlot: true, hasSlot: true,
sortable: true, sortable: true,
}, },
......
...@@ -23,7 +23,7 @@ module.exports = defineConfig({ ...@@ -23,7 +23,7 @@ module.exports = defineConfig({
port: 3000, port: 3000,
proxy: { proxy: {
'/site': { '/site': {
target: 'http://192.168.0.212/', target: 'http://sldtpg.com/',
changeOrigin: true, changeOrigin: true,
// pathRewrite: { // pathRewrite: {
// '^/api': '' // '^/api': ''
......
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