| | |
| | | > |
| | | <el-card class="box-card" > |
| | | <div slot="header" class="clearfix"> |
| | | <span>{{ item.unitName +item.whichYear+"年核算报告" }}</span> |
| | | <span>{{ item.unitName +item.whichYear+"年"+item.whichMonth+"月核算报告" }}</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 ? 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()+1 }}月</span> |
| | | <span v-if="item.latestMonth" class="time">{{ item.whichYear }}年{{ item.latestMonth }}月{{item.latestDay}}日</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" type="primary" round style="float: right;margin-left: 18px;" @click="handleExport(item.whichYear,item.whichMonth,null,item.contractId,item.contractName)" v-hasPermi="['system:calculate:report:export']">导出</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> |
| | | </el-col> |
| | |
| | | :summary-method="getSummaries" |
| | | style="width: 100%;text-align:center"> |
| | | <el-table-column |
| | | prop="createTime" |
| | | label="核算日期" |
| | | prop="whichMonth" |
| | | label="核算月份" |
| | | width="180"> |
| | | <template slot-scope="scope"> |
| | | <span> {{ scope.row.whichYear +'年'+ scope.row.whichMonth+ '月' + scope.row.whichDay+ '日'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="score" |
| | | label="考核分数" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-link @click="toScorePage(scope.row)">{{scope.row.score}}</el-link> |
| | | <el-link @click="toScorePage(scope.row,detail.unitId)">{{scope.row.score}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="status" |
| | | label="发布状态" |
| | | label="操作" |
| | | width="150" |
| | | v-if="checkRole(['admin'])" |
| | | > |
| | |
| | | <el-button |
| | | size="small" |
| | | type="text" |
| | | v-if="scope.row.status === 'published'" |
| | | v-if="scope.row.status === 'PUBLISHED'" |
| | | @click="handleDetailPublish(scope.row)" |
| | | > |
| | | 取消发布 |
| | |
| | | @click="handleDetailPublish(scope.row)" |
| | | > |
| | | 发布 |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | type="text" |
| | | @click="handleExport(scope.row.whichYear,scope.row.whichMonth,scope.row.whichDay,detail.contractId,detail.contractName)" |
| | | > |
| | | 导出 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | // }) |
| | | }, |
| | | handleDetail(row) { |
| | | getCalculateReportById(row.contractId,row.whichYear).then(res => { |
| | | getCalculateReportById(row.contractId,row.whichYear,row.whichMonth).then(res => { |
| | | this.detail = res.data |
| | | this.detailTitle = row.unitName + '考核结果' |
| | | this.detailOpen = true |
| | | }) |
| | | }, |
| | | handlePublish(row) { |
| | | let text = row.status === 'published' ? '取消发布' : '发布'; |
| | | let text = row.status === 'PUBLISHED' ? '取消发布' : '发布'; |
| | | this.$modal.confirm('确认要【' + text + "】【" + row.unitName +row.whichYear+"年】" + '的核算报告吗?').then(function() { |
| | | // return publishCheckResult(ids); |
| | | }).then(() => { |
| | |
| | | |
| | | }, |
| | | handleDetailPublish(row){ |
| | | let text = row.status === 'published' ? '取消发布' : '发布'; |
| | | row.status = row.status === 'published' ? 'not_publish' : 'published' |
| | | let text = row.status === 'PUBLISHED' ? '取消发布' : '发布'; |
| | | row.status = row.status === 'PUBLISHED' ? 'UNPUBLISHED' : 'PUBLISHED' |
| | | updatePublishStatusById(row.id,row.status).then(res => { |
| | | this.$modal.msgSuccess(text + "成功"); |
| | | }) |
| | |
| | | |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport(item) { |
| | | handleExport(whichYear,whichMonth,whichDay,contractId,contractName) { |
| | | |
| | | const name = contractName+whichYear+'年'+(whichMonth==null? '': whichMonth+'月')+(whichDay==null? '': whichDay+'日')+'运维核算.xlsx' |
| | | this.download('calculate-report/export', { |
| | | ...{ 'contractId': item.contractId } |
| | | }, `${item.contractName}运维核算.xlsx`) |
| | | ...{ 'whichYear': whichYear,'whichMonth': whichMonth,'whichDay':whichDay, 'contractId': contractId}, |
| | | }, `${name}`) |
| | | }, |
| | | /** 合计行 */ |
| | | getSummaries(param) { |
| | |
| | | }); |
| | | return sums; |
| | | }, |
| | | toScorePage() { |
| | | // 使用Vue Router进行页面跳转 |
| | | this.$router.push('/contract/score/index'); |
| | | toScorePage(row,unitId) { |
| | | // 使用Vue Router进行页面跳转 |
| | | const { startDate, endDate } = this.getMonthDatesFormatted(row.whichYear, row.whichMonth); |
| | | const time = [startDate,endDate] |
| | | this.$router.push({path: '/contract/score', query: {unitId: unitId, time: time}}); |
| | | }, |
| | | getMonthDatesFormatted(year, month) { |
| | | const startDate = new Date(year, month - 1, 1); |
| | | const endDate = new Date(year, month, 0); |
| | | |
| | | // 格式化成 YYYY-MM-DD |
| | | const formatDate = (date) => { |
| | | const yyyy = date.getFullYear(); |
| | | const mm = String(date.getMonth() + 1).padStart(2, '0'); |
| | | const dd = String(date.getDate()).padStart(2, '0'); |
| | | return `${yyyy}-${mm}-${dd}`; |
| | | }; |
| | | |
| | | return { |
| | | startDate: formatDate(startDate), |
| | | endDate: formatDate(endDate) |
| | | }; |
| | | }, |
| | | // 删除按钮 |
| | | handleDelete() { |
| | | |