From b4cc984336eaa33a48132397a9d71e024c5eeff1 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期三, 07 五月 2025 14:44:25 +0800 Subject: [PATCH] 1.监督管理评审-页面开发、联调 --- src/api/cnas/process/ensureResults/managementReview.js | 36 ++++++ src/views/CNAS/process/ensureResults/managementReview/index.vue | 284 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 320 insertions(+), 0 deletions(-) diff --git a/src/api/cnas/process/ensureResults/managementReview.js b/src/api/cnas/process/ensureResults/managementReview.js new file mode 100644 index 0000000..35449f4 --- /dev/null +++ b/src/api/cnas/process/ensureResults/managementReview.js @@ -0,0 +1,36 @@ +//璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡鐩稿叧鎺ュ彛 +import request from '@/utils/request' + +// 鍒嗛〉鏌ヨ +export function pageManagementReview(query) { + return request({ + url: '/managementReview/pageManagementReview', + method: 'get', + params: query + }) +} +// 瀵煎嚭 +export function exportManagementReview(query) { + return request({ + url: '/managementReview/exportManagementReview', + method: 'get', + params: query, + responseType: 'blob' + }) +} +// 鍒犻櫎 +export function deleteManagementReview(query) { + return request({ + url: '/managementReview/deleteManagementReview', + method: 'delete', + params: query + }) +} +// 鏂板淇敼鎻愪氦 +export function saveOrUpdateManagementReview(query) { + return request({ + url: '/managementReview/saveOrUpdateManagementReview', + method: 'post', + data: query + }) +} diff --git a/src/views/CNAS/process/ensureResults/managementReview/index.vue b/src/views/CNAS/process/ensureResults/managementReview/index.vue new file mode 100644 index 0000000..9e7a2a9 --- /dev/null +++ b/src/views/CNAS/process/ensureResults/managementReview/index.vue @@ -0,0 +1,284 @@ +<template> + <div class="capacity-scope"> + <div style="display: flex;justify-content: space-between"> + <div style="display: flex;"> + <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;"> + <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">鏂囦欢鍚嶇О</span> + <el-input v-model="queryParams.fileName" clearable placeholder="璇疯緭鍏�" size="small" + @keyup.enter.native="refreshTable()"></el-input> + </div> + <div style="line-height: 30px;"> + <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button> + <el-button size="mini" @click="refresh">閲嶇疆</el-button> + </div> + </div> + <div style="line-height: 30px;"> + <el-button :loading="outLoading" size="small" type="primary" style="margin-right: 10px" @click="openForm('add')">鏂板</el-button> + </div> + </div> + <div class="table"> + <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 270px)'" + :page="page" @pagination="pagination"></lims-table> + </div> + <el-dialog :visible.sync="addDialogVisible" title="璇勪环" width="900px" @close="closeDia"> + <el-form ref="form" :model="form" label-position="right" label-width="120px" :rules="formRules"> + <el-row> + <el-col :span="12"> + <el-form-item label="鏂囦欢鍚嶇О:" prop="fileName"> + <el-input v-model="form.fileName" placeholder="璇疯緭鍏�" size="small"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="璁″垝鍐呭:" prop="implementationContent"> + <el-input v-model="form.implementationContent" placeholder="璇疯緭鍏�" + size="small" + :rows="6" + type="textarea"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="鍔ㄦ�佸唴瀹�:" prop="dynamicContent"> + <el-input v-model="form.dynamicContent" placeholder="璇疯緭鍏�" + size="small" + :rows="6" + type="textarea"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="鐩戠潱浜�:" prop="supervisor"> + <el-select v-model="form.supervisor" + clearable filterable + placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="item in responsibleOptions" :key="item.name" :label="item.name" :value="item.name"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="璐ㄩ噺璇勫鏃ユ湡:" prop="superviseDate"> + <el-date-picker v-model="form.superviseDate" format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" size="small" value-format="yyyy-MM-dd" + type="date" style="width: 100%"></el-date-picker> + </el-form-item> + </el-col> + </el-row> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="closeDia">鍙� 娑�</el-button> + <el-button :loading="addLoading" type="primary" @click="handleAdd">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +import limsTable from "@/components/Table/lims-table.vue"; +import filePreview from "@/components/Preview/filePreview.vue"; +import { + exportProcessEvaluate, + doProcessEvaluate, + delProcessEvaluate, + pageProcessEvaluate, +} from '@/api/cnas/process/uncertainty.js' +import { mapGetters } from "vuex"; +import { + deleteManagementReview, + exportManagementReview, + pageManagementReview, saveOrUpdateManagementReview +} from "@/api/cnas/process/ensureResults/managementReview"; +import {selectUserCondition} from "@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment"; +export default { + name: 'Uncertainty', + components: { + limsTable, + filePreview + }, + data() { + return { + addPower: false, + outPower: false, + outLoading: false, + addDialogVisible: false, + operationType: '', + addInfo: {}, + addLoading: false, + queryParams: {}, + tableData: [], + column: [ + { label: "鏂囦欢鍚嶇О", prop: "fileName" }, + { label: "鐩戠潱浜�", prop: "supervisor" }, + { label: "璐ㄩ噺璇勫鏃ユ湡", prop: "superviseDate" }, + { + dataType: "action", + label: "鎿嶄綔", + operation: [ + { + name: "缂栬緫", + type: "text", + clickFun: (row) => { + this.openForm('edit', row); + }, + }, + { + name: "鍒犻櫎", + type: "text", + clickFun: (row) => { + this.handleDelete(row); + }, + }, + { + name: "瀵煎嚭", + type: "text", + clickFun: (row) => { + this.handleDown0(row); + }, + }, + ], + }, + ], + page: { + total: 0, + size: 10, + current: 0, + }, + tableLoading: false, + form: { + fileName: '', + implementationContent: '', + dynamicContent: '', + supervisor: '', + superviseDate: '', + }, + formRules: { + fileName: [{required: true, message: '璇峰~鍐欐枃浠跺悕绉�',trigger: 'blur'}], + implementationContent: [{required: true, message: '璇峰~鍐欒鍒掑唴瀹�',trigger: 'blur'}], + dynamicContent: [{required: true, message: '璇峰~鍔ㄦ�佸唴瀹�',trigger: 'blur'}], + supervisor: [{required: true, message: '璇烽�夋嫨鐩戠潱浜�',trigger: 'change'}], + superviseDate: [{required: true, message: '璇烽�夋嫨鏃ユ湡',trigger: 'change'}], + }, + responsibleOptions: [], + } + }, + // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭� + computed: { + ...mapGetters(["userId"]), + }, + mounted() { + this.getList() + }, + methods: { + getList() { + this.tableLoading = true; + let param = { ...this.queryParams, ...this.page }; + delete param.total; + pageManagementReview({ ...param }) + .then((res) => { + this.tableLoading = false; + if (res.code === 200) { + this.tableData = res.data.records; + this.page.total = res.data.total; + } + }) + .catch((err) => { + this.tableLoading = false; + }); + }, + pagination({ page, limit }) { + this.page.current = page; + this.page.size = limit; + this.getList(); + }, + refresh() { + this.queryParams = {}; + this.page.current = 1; + this.getList(); + }, + refreshTable() { + this.page.current = 1; + this.getList(); + }, + handleDown0(row) { + exportManagementReview({managementReviewId: row.managementReviewId}).then(res => { + const blob = new Blob([res], { type: 'application/msword' }); + this.$download.saveAs(blob, row.fileName + '.docx'); + }) + }, + // 鎵撳紑鏂板缂栬緫寮规 + openForm (type, row) { + this.addDialogVisible = true; + this.$nextTick(() => { + this.form = {} + this.$refs['form'].resetFields(); + if (type === 'edit') { + this.form = {...row} + } + this.operationType = type; + this.getUserList() + }) + }, + // 鎻愪氦琛ㄥ崟 + handleAdd() { + this.addLoading = true; + saveOrUpdateManagementReview(this.form).then((res) => { + this.addLoading = false; + this.$message.success('璇勪环鎴愬姛'); + this.closeDia(); + this.refreshTable() + }) + }, + closeDia() { + this.$refs['form'].resetFields(); + this.addDialogVisible = false; + }, + handleDelete(row) { + this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(() => { + deleteManagementReview({ managementReviewId: row.managementReviewId }).then((res) => { + this.$message.success("鍒犻櫎鎴愬姛"); + this.refresh(); + }); + }).catch(() => { }); + }, + getUserList(){ + selectUserCondition({type: 2}).then(res => { + if (res.code == 200) { + this.responsibleOptions = res.data + } + }) + }, + } +} +</script> + +<style scoped> +.search { + height: 46px; + display: flex; + justify-content: space-between; +} + +.search_thing { + width: 350px; + display: flex; + align-items: center; +} + +.search_label { + width: 80px; + font-size: 14px; + text-align: right; +} + +.search_input { + width: calc(100% - 80px); +} +</style> -- Gitblit v1.9.3