|
|
@@ -24,13 +24,26 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
- <el-table v-loading="loading" :data="tableData" style="width: 100%" height="400px">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="tableData"
|
|
|
+ style="width: 100%"
|
|
|
+ height="400px"
|
|
|
+ >
|
|
|
<el-table-column label="序号" type="index" width="100">
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="orgName" label="营业场所"> </el-table-column>
|
|
|
<el-table-column prop="orgTypeText" label="场所分类">
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="orgScore" label="安全指数"> </el-table-column>
|
|
|
+ <el-table-column prop="orgScore" label="安全指数">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <div>
|
|
|
+ <span class="text" @click="clickHandlerRow(row)">{{
|
|
|
+ row.orgScore
|
|
|
+ }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="levelName" label="安全等级"> </el-table-column>
|
|
|
</el-table>
|
|
|
<pagination
|
|
|
@@ -46,23 +59,119 @@
|
|
|
<!-- <el-button type="primary" @click="onSubmit">确定</el-button> -->
|
|
|
<el-button @click="onHide">取消</el-button>
|
|
|
</div>
|
|
|
+ <!-- 月度指数弹框 -->
|
|
|
+ </DialogCom>
|
|
|
+
|
|
|
+ <DialogCom title="月度指数" width="1200px" :visible.sync="monthNum">
|
|
|
+ <el-form :inline="true" class="demo-form-inline">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="上级机构1">
|
|
|
+ {{ monthNumeData.firstOrgName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="上级机构2">
|
|
|
+ {{ monthNumeData.secondOrgName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="营业场所">
|
|
|
+ {{ monthNumeData.orgTypeText }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="年月"> {{ monthNumeData.date }} </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="安全指数">
|
|
|
+ {{ monthNumeData.dataScore }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="安全等级">
|
|
|
+ {{ monthNumeData.levelName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-form-item label="指标分类">
|
|
|
+ <div
|
|
|
+ v-if="zbTableList && zbTableList.dataList.length > 0"
|
|
|
+
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="radio" class="bigbox_card">
|
|
|
+ <div :key="index" v-for="(item, index) in zbTableList.dataList" @click="cardHandler(item)">
|
|
|
+ <el-card class="box-card" >
|
|
|
+ <el-radio :label="item.typeCode">
|
|
|
+ <span>{{ item.typeName }}</span>
|
|
|
+ <div>数量:{{ item.times }},扣分:{{ item.score }}</div>
|
|
|
+ </el-radio>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <el-table
|
|
|
+ border
|
|
|
+ height="650"
|
|
|
+ pageSize="small"
|
|
|
+ v-loading="loading"
|
|
|
+ :data="itemTableList"
|
|
|
+ align="center"
|
|
|
+ fixed
|
|
|
+ >
|
|
|
+ <el-table-column label="指标分类" prop="typeName"> </el-table-column>
|
|
|
+ <el-table-column label="指标项目" prop="projectName"> </el-table-column>
|
|
|
+ <el-table-column label="指标要点" prop="pointName"> </el-table-column>
|
|
|
+ <el-table-column label="计算项目" prop="itemName"> </el-table-column>
|
|
|
+ <el-table-column label="数量" >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <div>
|
|
|
+ <span class="text" @click="clickHandlerRow(row, 1)">{{
|
|
|
+ row.times
|
|
|
+ }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="扣分" prop="score"> </el-table-column>
|
|
|
+ </el-table>
|
|
|
</DialogCom>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { mapGetters } from "vuex";
|
|
|
-import { detail } from "@/api/scorestatistics/scorestatistics.js";
|
|
|
-
|
|
|
+import { sum ,unionBy} from "lodash";
|
|
|
+import {
|
|
|
+ detail,
|
|
|
+ getBysingleOrg,
|
|
|
+} from "@/api/scorestatistics/scorestatistics.js";
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
tableData: [],
|
|
|
+ zbTableList: { dataList: [] },
|
|
|
+ itemTableList: [],
|
|
|
+ radio: "0",
|
|
|
id: null,
|
|
|
isShow: false,
|
|
|
+ monthNum: false,
|
|
|
+ monthNumeData: {
|
|
|
+ firstOrgName: "",
|
|
|
+ secondOrgName: "",
|
|
|
+ orgTypeText: "",
|
|
|
+ date: "",
|
|
|
+ levelName: "",
|
|
|
+ dataScore: "",
|
|
|
+ },
|
|
|
total: 0,
|
|
|
- loading:false,
|
|
|
+ loading: false,
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
@@ -96,17 +205,17 @@ export default {
|
|
|
},
|
|
|
//获取分页数据
|
|
|
getDetailList() {
|
|
|
- this.loading=true
|
|
|
+ this.loading = true;
|
|
|
detail(this.queryParams).then((res) => {
|
|
|
- let { code, msg, rows,total } = res;
|
|
|
+ let { code, msg, rows, total } = res;
|
|
|
if (code == 200) {
|
|
|
this.tableData = rows || [];
|
|
|
- this.total=total||0
|
|
|
+ this.total = total || 0;
|
|
|
this.isShow = true;
|
|
|
} else {
|
|
|
this.$message.error(msg);
|
|
|
}
|
|
|
- this.loading=false
|
|
|
+ this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
// 事件
|
|
|
@@ -120,6 +229,62 @@ export default {
|
|
|
|
|
|
this.tableData = [];
|
|
|
},
|
|
|
+ monthNumInit(row) {
|
|
|
+ this.monthNum = true;
|
|
|
+
|
|
|
+ // this.monthNumeData=JSON.parse(JSON.stringify(row))
|
|
|
+ // console.log(row);
|
|
|
+
|
|
|
+ getBysingleOrg({
|
|
|
+ // orgId: row.orgId,
|
|
|
+ orgId: "4358025846358081",
|
|
|
+ date: "2023-10-01",
|
|
|
+ // date: row.date,
|
|
|
+ }).then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ let { code, data, msg } = res;
|
|
|
+ if (code == 200) {
|
|
|
+ this.monthNumeData.dataScore = row.dataScore;
|
|
|
+ this.monthNumeData.levelName = row.levelName;
|
|
|
+ this.monthNumeData.date = data.date;
|
|
|
+ this.monthNumeData.orgTypeText = data.orgTypeText;
|
|
|
+ this.monthNumeData.secondOrgName = data.secondOrgName;
|
|
|
+ this.monthNumeData.firstOrgName = data.firstOrgName;
|
|
|
+ this.zbTableList = JSON.parse(JSON.stringify(data))
|
|
|
+
|
|
|
+
|
|
|
+ if (data && data.dataList.length > 0) {
|
|
|
+ let list=[]
|
|
|
+ data.dataList.forEach(item=>{
|
|
|
+ item.detailList.forEach(i=>{
|
|
|
+
|
|
|
+ list.push(i)
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+ this.zbTableList.dataList.unshift({
|
|
|
+ score: sum(this.zbTableList.dataList.map((item) => item.score)), //分数
|
|
|
+ times: sum(this.zbTableList.dataList.map((item) => item.times)), //数量
|
|
|
+ typeCode: "0",
|
|
|
+ typeName: "全部",
|
|
|
+ detailList:list
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ this.itemTableList=this.zbTableList.dataList[0].detailList||[]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // this.zbTableList=res
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clickHandlerRow(row) {
|
|
|
+ this.monthNumInit(row);
|
|
|
+ },
|
|
|
+ cardHandler(item) {
|
|
|
+ this.radio = item.typeCode;
|
|
|
+ this.itemTableList=item.detailList
|
|
|
+ },
|
|
|
//打开前的回调
|
|
|
openHandler() {},
|
|
|
|
|
|
@@ -144,4 +309,19 @@ export default {
|
|
|
.el-select {
|
|
|
width: 100%;
|
|
|
}
|
|
|
+.text {
|
|
|
+ color: #008cd6;
|
|
|
+ text-decoration: underline;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.box-card {
|
|
|
+ cursor: pointer;
|
|
|
+ width: 200px;
|
|
|
+ text-align: center;
|
|
|
+ margin-left: 20px;
|
|
|
+}
|
|
|
+.bigbox_card {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
</style>
|