|  | @@ -24,13 +24,26 @@
 | 
											
												
													
														|  |            </el-form-item>
 |  |            </el-form-item>
 | 
											
												
													
														|  |          </el-form>
 |  |          </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 label="序号" type="index" width="100">
 | 
											
												
													
														|  |            </el-table-column>
 |  |            </el-table-column>
 | 
											
												
													
														|  |            <el-table-column prop="orgName" label="营业场所"> </el-table-column>
 |  |            <el-table-column prop="orgName" label="营业场所"> </el-table-column>
 | 
											
												
													
														|  |            <el-table-column prop="orgTypeText" label="场所分类">
 |  |            <el-table-column prop="orgTypeText" label="场所分类">
 | 
											
												
													
														|  |            </el-table-column>
 |  |            </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-column prop="levelName" label="安全等级"> </el-table-column>
 | 
											
												
													
														|  |          </el-table>
 |  |          </el-table>
 | 
											
												
													
														|  |          <pagination
 |  |          <pagination
 | 
											
										
											
												
													
														|  | @@ -46,23 +59,119 @@
 | 
											
												
													
														|  |          <!-- <el-button type="primary" @click="onSubmit">确定</el-button> -->
 |  |          <!-- <el-button type="primary" @click="onSubmit">确定</el-button> -->
 | 
											
												
													
														|  |          <el-button @click="onHide">取消</el-button>
 |  |          <el-button @click="onHide">取消</el-button>
 | 
											
												
													
														|  |        </div>
 |  |        </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>
 |  |      </DialogCom>
 | 
											
												
													
														|  |    </div>
 |  |    </div>
 | 
											
												
													
														|  |  </template>
 |  |  </template>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <script>
 |  |  <script>
 | 
											
												
													
														|  |  import { mapGetters } from "vuex";
 |  |  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 {
 |  |  export default {
 | 
											
												
													
														|  |    data() {
 |  |    data() {
 | 
											
												
													
														|  |      return {
 |  |      return {
 | 
											
												
													
														|  |        tableData: [],
 |  |        tableData: [],
 | 
											
												
													
														|  | 
 |  | +      zbTableList: { dataList: [] },
 | 
											
												
													
														|  | 
 |  | +      itemTableList: [],
 | 
											
												
													
														|  | 
 |  | +      radio: "0",
 | 
											
												
													
														|  |        id: null,
 |  |        id: null,
 | 
											
												
													
														|  |        isShow: false,
 |  |        isShow: false,
 | 
											
												
													
														|  | 
 |  | +      monthNum: false,
 | 
											
												
													
														|  | 
 |  | +      monthNumeData: {
 | 
											
												
													
														|  | 
 |  | +        firstOrgName: "",
 | 
											
												
													
														|  | 
 |  | +        secondOrgName: "",
 | 
											
												
													
														|  | 
 |  | +        orgTypeText: "",
 | 
											
												
													
														|  | 
 |  | +        date: "",
 | 
											
												
													
														|  | 
 |  | +        levelName: "",
 | 
											
												
													
														|  | 
 |  | +        dataScore: "",
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  |        total: 0,
 |  |        total: 0,
 | 
											
												
													
														|  | -      loading:false,
 |  | 
 | 
											
												
													
														|  | 
 |  | +      loading: false,
 | 
											
												
													
														|  |        queryParams: {
 |  |        queryParams: {
 | 
											
												
													
														|  |          pageNum: 1,
 |  |          pageNum: 1,
 | 
											
												
													
														|  |          pageSize: 10,
 |  |          pageSize: 10,
 | 
											
										
											
												
													
														|  | @@ -96,17 +205,17 @@ export default {
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      //获取分页数据
 |  |      //获取分页数据
 | 
											
												
													
														|  |      getDetailList() {
 |  |      getDetailList() {
 | 
											
												
													
														|  | -      this.loading=true
 |  | 
 | 
											
												
													
														|  | 
 |  | +      this.loading = true;
 | 
											
												
													
														|  |        detail(this.queryParams).then((res) => {
 |  |        detail(this.queryParams).then((res) => {
 | 
											
												
													
														|  | -        let { code, msg, rows,total } = res;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        let { code, msg, rows, total } = res;
 | 
											
												
													
														|  |          if (code == 200) {
 |  |          if (code == 200) {
 | 
											
												
													
														|  |            this.tableData = rows || [];
 |  |            this.tableData = rows || [];
 | 
											
												
													
														|  | -          this.total=total||0
 |  | 
 | 
											
												
													
														|  | 
 |  | +          this.total = total || 0;
 | 
											
												
													
														|  |            this.isShow = true;
 |  |            this.isShow = true;
 | 
											
												
													
														|  |          } else {
 |  |          } else {
 | 
											
												
													
														|  |            this.$message.error(msg);
 |  |            this.$message.error(msg);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        this.loading=false
 |  | 
 | 
											
												
													
														|  | 
 |  | +        this.loading = false;
 | 
											
												
													
														|  |        });
 |  |        });
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      // 事件
 |  |      // 事件
 | 
											
										
											
												
													
														|  | @@ -120,6 +229,62 @@ export default {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |        this.tableData = [];
 |  |        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() {},
 |  |      openHandler() {},
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -144,4 +309,19 @@ export default {
 | 
											
												
													
														|  |  .el-select {
 |  |  .el-select {
 | 
											
												
													
														|  |    width: 100%;
 |  |    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>
 |  |  </style>
 |