yh-ui/src/views/yh/report/view/view.vue

112 lines
4.3 KiB
Vue
Raw Normal View History

2024-11-09 18:04:27 +08:00
<template>
<div class="app-container" v-loading="loading">
2024-11-18 18:03:26 +08:00
<el-row :gutter="16">
<el-col :md="showVerify ? 19 : 24">
2024-11-09 18:04:27 +08:00
<el-card header="基本信息" class="card-box">
<el-descriptions :column="4">
<el-descriptions-item label="报表编号">{{detail.reportId | dv}}</el-descriptions-item>
<el-descriptions-item label="部门">{{detail.deptName | dv}}</el-descriptions-item>
<el-descriptions-item label="报表日期">{{detail.reportDate | dv}}</el-descriptions-item>
<el-descriptions-item label="总金额">{{detail.totalAmount | dv}} </el-descriptions-item>
<el-descriptions-item label="状态">
<dict-tag :options="dict.type.report_status" :value="detail.status" size="small"/>
</el-descriptions-item>
<el-descriptions-item label="备注" :span="3">{{detail.remark | dv}}</el-descriptions-item>
<el-descriptions-item label="创建人">{{detail.createBy | dv}}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{detail.createTime | dv}}</el-descriptions-item>
<el-descriptions-item label="更新人">{{detail.updateBy | dv}}</el-descriptions-item>
<el-descriptions-item label="更新时间">{{detail.updateTime | dv}}</el-descriptions-item>
<el-descriptions-item label="审核人">{{detail.verifyBy | dv}}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{detail.verifyTime | dv}}</el-descriptions-item>
<el-descriptions-item label="审核意见" :span="2" v-if="ReportStatus.isVerified(detail.status)">
{{detail.verifyRemark | dv}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card header="工序产量" class="card-box">
<report-prod
v-if="!loading"
:remove-search-columns="['reportId']"
:hide-columns="['reportId', 'id']"
:query="{reportId: detail.reportId}"
:custom-config="{
containerClass: null,
showTableOpera: false,
2024-11-18 18:03:26 +08:00
showSearch: false,
2024-11-21 11:09:00 +08:00
showSelection: false
2024-11-09 18:04:27 +08:00
}"/>
</el-card>
2024-11-18 18:03:26 +08:00
</el-col>
<el-col :md="5" v-if="showVerify">
2024-11-09 18:04:27 +08:00
<el-card header="审核">
<el-form :model="detail">
<el-form-item label="审核意见" prop="verifyRemark">
<el-input v-model="detail.verifyRemark" :autosize="{minRows: 2, maxRows: 10}" type="textarea" maxlength="1000" placeholder="请输入审核意见" show-word-limit/>
</el-form-item>
</el-form>
<el-row type="flex" justify="center">
<el-button type="success" icon="el-icon-check" plain @click="handleVerify(true)"> </el-button>
<el-button type="danger" icon="el-icon-close" plain @click="handleVerify(false)"> </el-button>
</el-row>
</el-card>
2024-11-18 18:03:26 +08:00
</el-col>
</el-row>
2024-11-09 18:04:27 +08:00
</div>
</template>
<script>
import {getReport, verifyReport} from "@/api/yh/report";
import ReportProd from "@/views/yh/reportProd/index.vue";
import {ReportStatus} from "@/utils/constants";
2024-11-18 18:03:26 +08:00
import {checkPermi} from "@/utils/permission";
2024-11-09 18:04:27 +08:00
export default {
name: "ReportView",
components: {ReportProd},
dicts: ['report_status'],
data() {
return {
ReportStatus,
detail: {},
loading: false,
}
},
2024-11-18 18:03:26 +08:00
computed: {
// 是否显示审核区域
showVerify() {
return this.detail != null && checkPermi(['yh:report:verify']) && ReportStatus.canVerify(this.detail.status);
}
},
2024-11-09 18:04:27 +08:00
created() {
this.detail.reportId = this.$route.params.reportId;
this.getDetail();
},
methods: {
getDetail() {
this.loading = true;
2024-11-19 18:01:30 +08:00
getReport(this.detail.reportId).then(res => {
2024-11-09 18:04:27 +08:00
this.detail = res.data;
}).finally(() => {
this.loading = false;
})
},
// 处理审核
handleVerify(pass) {
this.$confirm(`是否确认${pass ? '通过' : '驳回'}`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
verifyReport(this.detail.reportId, pass, this.detail.verifyRemark).then(res => {
if (res.code === 200) {
this.$message.success("操作成功");
this.getDetail();
}
})
})
}
}
}
</script>