fuliqi
2025-01-06 4a29f490dfbbb10b70c32d3944a33961040f5910
核算重构
3个文件已修改
93 ■■■■ 已修改文件
src/api/platform/calculate-report.js 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/check/result/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/contract/report/index.vue 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/calculate-report.js
@@ -18,9 +18,9 @@
}
// 通过id获取核算报告
export const getCalculateReportById = (params) => {
export const getCalculateReportById = (contractId,whichYear) => {
    return axios({
        url: "/calculate-report/" + params,
        url: "/calculate-report/" + contractId+"/"+whichYear,
        method: "GET"
    })
}
@@ -70,9 +70,16 @@
}
// 修改发布状态
export const updatePublishStatus = (data) => {
export const updatePublishStatus =  (contractId,whichYear) => {
  return axios({
    url: "/calculate-report/status/" + data,
    url: "/calculate-report/status/" + contractId+"/"+whichYear,
    method: "PUT",
  })
}
// 修改发布状态
  export const updatePublishStatusById =  (id,status) => {
    return axios({
      url: "/calculate-report/status/detail/"+ id+"/"+status,
      method: "PUT",
    })
}
src/views/system/check/result/index.vue
@@ -230,7 +230,6 @@
      })
    },
    initEchart() {
      const option = {
        grid: {
          left: 0,
src/views/system/contract/report/index.vue
@@ -13,24 +13,33 @@
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row> -->
    <div v-if="checkResultList && checkResultList.length > 0">
      <el-card class="box-card" v-for="item in checkResultList" :key="item.id">
    <el-row v-if="checkResultList && checkResultList.length > 0">
      <el-col
        :xl="8"
        :lg="8"
        :md="12"
        :sm="12"
        :xs="12"
        v-for="item in checkResultList"
        :key="item.id"
      >
      <el-card class="box-card" >
        <div slot="header" class="clearfix">
          <span>{{ item.unitName }}</span>
          <span>{{ item.unitName +item.whichYear+"年核算报告" }}</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.contractName }}</span></div>
        <div class="text item">最近扣减金额<span class="time">{{ item.latestDeductMoney }}</span></div>
        <div class="text item">累计扣减金额<span class="time">{{ item.deductMoney }}</span></div>
        <div class="text item">最近扣减金额<span class="time">{{ item.latestDeductMoney ?  item.latestDeductMoney:0 }}</span></div>
        <div class="text item">累计扣减金额<span class="time">{{ item.deductMoney ? item.deductMoney:0}}</span></div>
        <div class="text item">最近核算月份
          <span v-if="item.latestTime" class="time">{{ new Date(item.latestTime).getFullYear() }}年{{ new Date(item.latestTime).getMonth() }}月</span>
          <span v-if="item.latestTime" class="time">{{ new Date(item.latestTime).getFullYear() }}年{{ new Date(item.latestTime).getMonth()+1 }}月</span>
          <span v-else class="time">暂无</span>
        </div>
        <el-button size="small" type="primary" round style="float: right;margin-left: 18px;" @click="handleExport(item)" v-hasPermi="['system:calculate:report:export']">导出</el-button>
        <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-if="item.status === 'not_publish'" :disabled="!item.canPublish" v-hasPermi="['system:calculate:report:status']">确认发布</el-button>
        <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-if="item.status === 'published'" v-hasPermi="['system:calculate:report:status']">取消发布</el-button>
        <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)"  v-hasPermi="['system:calculate:report:status']">确认发布</el-button>
      </el-card>
    </div>
      </el-col>
    </el-row>
    <el-empty v-else description="暂无数据"></el-empty>
    <pagination
@@ -45,7 +54,7 @@
      <div style="display: flex; flex-direction: row; width: 100%;margin-bottom: 10px; justify-content: center; align-items: center">
        <div style="line-height: 16px">应用规则:</div>
        <div v-for="ruleItem in detail.ruleList" :key="ruleItem.id" style="display: flex; margin-right: 50px;">
          <div style="line-height: 16px;margin-right: 10px;display: flex; align-items: center">{{ ruleItem.scoreCondition }}分</div>
          <div style="line-height: 16px;margin-right: 10px;display: flex; align-items: center">{{ ruleItem.scoreCondition }}</div>
          <div style="line-height: 16px;max-width: 300px;word-wrap:break-word;word-break:normal;color: #2273b9">{{ ruleItem.description }}</div>
        </div>
      </div>
@@ -94,13 +103,38 @@
            width="180">
            <template slot-scope="scope">
              <el-input
                :disabled="!scope.row.latest"
                type="number"
                :precision="2" :step="0.1"
                :min="0" :max="1000000"
                v-model="scope.row.deductMoney"
                :disabled="!checkRole(['admin'])"
                placeholder="请输入扣减金额">
              </el-input>
            </template>
          </el-table-column>
          <el-table-column
            prop="status"
            label="发布状态"
            width="150"
            v-if="checkRole(['admin'])"
          >
            <template slot-scope="scope">
              <el-button
                size="small"
                type="text"
                v-if="scope.row.status === 'published'"
                @click="handleDetailPublish(scope.row)"
              >
                取消发布
              </el-button>
              <el-button
                v-else
                size="small"
                type="text"
                @click="handleDetailPublish(scope.row)"
                >
                发布
              </el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -123,8 +157,8 @@
</template>
<script>
import { getCalculateReports, getCalculateReportById, backfill, updatePublishStatus } from "@/api/platform/calculate-report";
import { getCalculateReports, getCalculateReportById, backfill, updatePublishStatus,updatePublishStatusById } from "@/api/platform/calculate-report";
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
export default {
  name: "CheckResult",
  data() {
@@ -174,6 +208,8 @@
    this.getList();
  },
  methods: {
    checkPermi,
    checkRole,
    frequencyFormatter(row) {
      if (row.frequency === "1") {
        return "月度考核"
@@ -241,7 +277,7 @@
      // })
    },
    handleDetail(row) {
      getCalculateReportById(row.id).then(res => {
      getCalculateReportById(row.contractId,row.whichYear).then(res => {
        this.detail = res.data
        this.detailTitle = row.unitName + '考核结果'
        this.detailOpen = true
@@ -249,15 +285,22 @@
    },
    handlePublish(row) {
      let text = row.status === 'published' ? '取消发布' : '发布';
      this.$modal.confirm('确认要【' + text + "】【" + row.contractName + "】【" + new Date(row.latestTime).getMonth() + "月】" + '的核算报告吗?').then(function() {
      this.$modal.confirm('确认要【' + text + "】【" +  row.unitName +row.whichYear+"年】" + '的核算报告吗?').then(function() {
        // return publishCheckResult(ids);
      }).then(() => {
        updatePublishStatus(row.id).then(res => {
        updatePublishStatus(row.contractId,row.whichYear).then(res => {
          this.getList();
          this.$modal.msgSuccess(text + "成功");
        })
      }).catch(() => {});
    },
    handleDetailPublish(row){
      let text = row.status === 'published' ? '取消发布' : '发布';
      row.status = row.status === 'published' ? 'not_publish' : 'published'
      updatePublishStatusById(row.id,row.status).then(res => {
        this.$modal.msgSuccess(text + "成功");
      })
    },
    /** 搜索按钮操作 */
    handleQuery() {
@@ -274,7 +317,7 @@
    submitForm() {
      let data = {
        id: this.detail.id,
        recordList: this.detail.recordList.filter(item => item.latest)
        recordList: this.detail.recordList
      }
      if (data.recordList.length > 0) {
        backfill(data).then(res => {