fuliqi
2024-04-03 bce10b2db48c97a23543189368ceb6a8f3737fb3
src/views/system/calculate/report/index.vue
@@ -63,48 +63,21 @@
    <el-card class="box-card" v-for="(item) in checkResultList">
      <div slot="header" class="clearfix">
        <span>{{ item.checkUnitName }}</span>
        <span>{{ checkUnitName }}</span>
        <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">详情</el-button>
      </div>
      <div class="text item">合同<span class="time">{{ item.checkUnitName }}</span></div>
      <div class="text item">核算金额<span class="time">{{ "40090" }}</span></div>
      <div class="text item">考核分数<span class="time">{{ item.checkScore }}</span></div>
      <div class="text item">核算时间
      <div class="text item">合同<span class="time">{{ checkUnitName }}</span></div>
      <div class="text item">总金额<span class="time">{{ "1000元" }}</span></div>
      <div class="text item">扣减金额<span class="time">{{ "10元" }}</span></div>
      <div class="text item">剩余金额<span class="time">{{ "990元" }}</span></div>
      <div class="text item">最新核算时间
        <span class="time">{{ item.checkTime }}</span>
      </div>
      <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-show="item.publish != 1"  v-hasPermi="['result:contract:publish']">确认发布</el-button>
      <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-show="item.publish == 1"  v-hasPermi="['result:contract:publish']">已发布</el-button>
    </el-card>
    <!-- <el-table v-loading="loading" :data="checkResultList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="考核对象" align="center" prop="checkUnitName" />
      <el-table-column label="考核" align="center" prop="examineName" />
      <el-table-column label="考核范围":formatter="examineRangeFormatter" align="center" prop="examineRange" />
      <el-table-column label="考核频率" :formatter="frequencyFormatter" align="center" prop="frequency" />
      <el-table-column label="考核分数" falign="center" prop="checkScore" />
      <el-table-column label="考核时间" align="center" prop="checkTime" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-view"
            @click="handleDetail(scope.row)"
          >详情</el-button>
         <el-button
           type="text"
           size="mini"
           icon="el-icon-edit"
           @click="handleSetManualScore(scope.row)"
         >人工打分</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
@@ -112,15 +85,7 @@
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    /> -->
    <el-dialog :title="manualScoreTitle" :visible.sync="manualScoreOpen" width="500px" append-to-body>
      <el-input v-model="manualScoreForm.manualScore" type="number" placeholder="请为该单位打分"/>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitManualScore">确 定</el-button>
        <el-button @click="cancelManualScore">取 消</el-button>
      </div>
    </el-dialog>
    />
    <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="700px" append-to-body>
      <el-descriptions class="margin-top" :column="3" border>
@@ -132,37 +97,35 @@
            <i class="el-icon-user"></i>
            核算对象
          </template>
          {{detail.checkUnitName}}
          {{checkUnitName}}
        </el-descriptions-item>
        <el-descriptions-item>
          <template slot="label">
            <i class="el-icon-s-management"></i>
            合同名称
          </template>
          {{detail.checkUnitName}}
          {{checkUnitName}}
        </el-descriptions-item>
      </el-descriptions>
        <el-table
          :data="tableData"
          show-summary
          :summary-method="getSummaries"
          style="width: 100%">
          <el-table-column
            prop="name"
            label="规则名"
            prop="time"
            label="核算日期"
            width="180">
          </el-table-column>
          <el-table-column
            prop="amount"
            label="数量"
            width="180">
            prop="score"
            label="考核分数"
            width="180"
            doNotSum>
          </el-table-column>
          <el-table-column
            prop="money"
            label="金额(元)">
          </el-table-column>
          <el-table-column
            prop="total"
            label="合计(元)">
            label="扣减金额(元)">
          </el-table-column>
        </el-table>
    </el-dialog>
@@ -191,27 +154,16 @@
      detail:{
      },
      checkUnitName:'成都x运维',
      tableData: [{
        name: '存储故障',
        amount: '100',
        money: '100',
        total: '10000'
        time: '2024-03-03',
        score: '94',
        money: '10',
      }, {
        name: '时钟不同步24小时未修复',
        amount: '100',
        money: '100.45',
        total: '10045'
      }, {
        name: '一机一档24小时未修复',
        amount: '100',
        money: '100',
        total: '10000'
      }, {
        name: '视频运行率(96%)',
        amount: '100',
        money: '100.45',
        total: '10045'
      }],
        time: '2024-04-03',
        score: '95',
        money: '0',
      }, ],
      manualScoreOpen: false,
      manualScoreForm: {},
      manualScoreTitle: '',
@@ -277,7 +229,7 @@
        this.queryParams["end"] = this.daterangeCheckTime[1];
      }
      listCheckResult(this.queryParams).then(response => {
        this.checkResultList = response.data;
        this.checkResultList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
@@ -318,12 +270,6 @@
        this.cancelManualScore();
        this.getList();
      })
    },
    handleSetManualScore(row) {
      this.manualScoreForm.id = row.id;
      this.manualScoreForm.manualScore = parseInt(row.manualScore);
      this.manualScoreTitle = row.checkUnitName + '人工打分'
      this.manualScoreOpen = true;
    },
    handleDetail(row) {
      this.detail = row;
@@ -411,6 +357,35 @@
      this.download('system/checkResult/export', {
        ...this.queryParams
      }, `checkResult_${new Date().getTime()}.xlsx`)
    },
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '合计';
          return;
        }
        const values = data.map(item => Number(item[column.property]));
        if (!values.every(value => isNaN(value))) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          sums[index] += ' 元';
          if (column.property === 'score') {
            sums[index] = '-'; // 或者其他你想要显示的内容
          }
        } else {
          sums[index] = 'N/A';
        }
      });
      return sums;
    }
  }
};