From dd05e06f8a116c6f14c3c78cfc3113d7787043fd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 14 三月 2025 14:29:39 +0800
Subject: [PATCH] 管理体系文件bug
---
src/components/UpPdfStamp/index.vue | 2
src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue | 370 +++++++++++++++++++++++++---------------------------
2 files changed, 179 insertions(+), 193 deletions(-)
diff --git a/src/components/UpPdfStamp/index.vue b/src/components/UpPdfStamp/index.vue
index 9b8fe8c..844eac4 100644
--- a/src/components/UpPdfStamp/index.vue
+++ b/src/components/UpPdfStamp/index.vue
@@ -4,7 +4,7 @@
v-if="isUpFile">
<input type="file" @change="handleFileUpload" accept="application/pdf" ref="fileInput" />
</div>
- <p style="color: red;font-size: 12px;margin: 16px 0;" v-if="canvasNumPages > 0">鎻愮ず锛氬湪鏂囦欢鑼冨洿鍐咃紝鍗曞嚮榧犳爣鐩栫珷锛屽弻鍑婚紶鏍囧凡鐩栧ソ绔犲鍙垹闄ゅ綋鍓嶇珷</p>
+ <div style="color: red;font-size: 12px;margin: 16px 0;" v-if="canvasNumPages > 0">鎻愮ず锛氬湪鏂囦欢鑼冨洿鍐咃紝鍗曞嚮榧犳爣鐩栫珷锛屽弻鍑婚紶鏍囧凡鐩栧ソ绔犲鍙垹闄ゅ綋鍓嶇珷</div>
<canvas ref="pdfCanvas" @click="e => handleCanvasClick(e, index)" style="border: 1px solid #000;"
@dblclick="e => removeStamp(e, index)" v-for="(item, index) in canvasNumPages" :key="index"></canvas>
</div>
diff --git a/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue b/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue
index 17be48c..3817ac1 100644
--- a/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue
+++ b/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue
@@ -1,6 +1,6 @@
<template>
<!-- 鏂囦欢鍙樻洿鐢宠 -->
- <div class="file-change-request" style="height: 100%;">
+ <div class="file-change-request">
<div class="search">
<div class="search_thing">
<div class="search_label">鐢宠鏂囦欢缂栧彿锛�</div>
@@ -22,198 +22,175 @@
:height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table>
</div>
<el-dialog :title="title" :visible.sync="addDialogVisible" top="0vh" width="950px">
- <el-row>
- <el-col :span="12" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鐢宠缂栧彿锛�</div>
- <div class="search_input"><el-input v-model="addInfo.code" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="12" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">瀹℃壒浜猴細</div>
- <div class="search_input">
- <el-select v-model="addInfo.checkUser" :disabled="title == '瀹℃牳'" filterable size="small"
- style="width: 100%;">
- <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
+ <div v-loading="diaLoading">
+ <el-row>
+ <el-col :span="12" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鐢宠缂栧彿锛�</div>
+ <div class="search_input"><el-input v-model="addInfo.code" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
</div>
- </div>
- </el-col>
- <el-col :span="12" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">鏈熸湜鍙樻洿鏃堕棿锛�</div>
- <div class="search_input">
- <el-date-picker v-model="addInfo.expectAlterDate" :disabled="title == '瀹℃牳'" format="yyyy-MM-dd"
- placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
- </el-date-picker>
+ </el-col>
+ <el-col :span="12" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">瀹℃壒浜猴細</div>
+ <div class="search_input">
+ <el-select v-model="addInfo.checkUser" :disabled="title == '瀹℃牳'" filterable size="small"
+ style="width: 100%;">
+ <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
</div>
- </div>
- </el-col>
- <el-col :span="12" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">瀹為檯鍙樻洿鏃堕棿锛�</div>
- <div class="search_input">
- <el-date-picker v-model="addInfo.actuallyAlterDate" :disabled="title == '瀹℃牳'" format="yyyy-MM-dd"
- placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
- </el-date-picker>
+ </el-col>
+ <el-col :span="12" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">鏈熸湜鍙樻洿鏃堕棿锛�</div>
+ <div class="search_input">
+ <el-date-picker v-model="addInfo.expectAlterDate" :disabled="title == '瀹℃牳'" format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </div>
</div>
- </div>
- </el-col>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">閫夋嫨鏂囦欢锛�</div>
- <div class="search_input">
- <el-select v-model="addInfo.alterBeforeCode" :disabled="title == '瀹℃牳'" allow-create clearable filterable
- size="small" style="width: 100%;" @change="getCurrentFile">
- <el-option v-for="item in fileList" :key="item.documentCode" :label="item.title"
- :value="item.documentCode">
- </el-option>
- </el-select>
+ </el-col>
+ <el-col :span="12" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">瀹為檯鍙樻洿鏃堕棿锛�</div>
+ <div class="search_input">
+ <el-date-picker v-model="addInfo.actuallyAlterDate" :disabled="title == '瀹℃牳'" format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </div>
</div>
- </div>
- </el-col>
- <el-col :span="24">
- <h4 class="title">褰撳墠鏂囦欢淇℃伅</h4>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鏂囦欢缂栧彿锛�</div>
- <div class="search_input"><el-input v-model="currentFile.documentCode" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鏂囦欢鍚嶇О锛�</div>
- <div class="search_input"><el-input v-model="currentFile.name" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鏂囦欢鐗堟湰锛�</div>
- <div class="search_input"><el-input v-model="currentFile.version" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鎻愪氦浜猴細</div>
- <div class="search_input"><el-select v-model="currentFile.createUser" disabled filterable size="small"
- style="width: 100%;">
+ </el-col>
+ <el-col :span="24" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">閫夋嫨鏂囦欢锛�</div>
+ <div class="search_input">
+ <el-select v-model="addInfo.alterBeforeCode" :disabled="title == '瀹℃牳'" allow-create clearable filterable
+ size="small" style="width: 100%;" @change="getCurrentFile">
+ <el-option v-for="item in fileList" :key="item.documentCode" :label="item.title"
+ :value="item.documentCode">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="24">
+ <h4 class="title">褰撳墠鏂囦欢淇℃伅</h4>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鏂囦欢缂栧彿锛�</div>
+ <div class="search_input"><el-input v-model="currentFile.documentCode" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鏂囦欢鍚嶇О锛�</div>
+ <div class="search_input"><el-input v-model="currentFile.name" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鏂囦欢鐗堟湰锛�</div>
+ <div class="search_input"><el-input v-model="currentFile.version" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鎻愪氦浜猴細</div>
+ <div class="search_input"><el-select v-model="currentFile.createUser" disabled filterable size="small"
+ style="width: 100%;">
<el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select></div>
- </div>
- </el-col>
- <!-- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">瀹℃牳浜猴細</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addInfo.version" disabled></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">浣滃簾浜猴細</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addInfo.version" disabled></el-input></div>
- </div>
- </el-col> -->
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鎻愪氦鏃堕棿锛�</div>
- <div class="search_input"><el-input v-model="currentFile.createTime" clearable disabled placeholder="璇疯緭鍏�"
- size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">瀹℃牳鏃堕棿锛�</div>
- <div class="search_input"><el-input v-model="currentFile.effectiveDate" clearable disabled placeholder="璇疯緭鍏�"
- size="small"></el-input></div>
- </div>
- </el-col>
- <!-- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">浣滃簾鏃堕棿锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addInfo.version" disabled></el-input></div>
- </div>
- </el-col> -->
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鏂囦欢鐘舵�侊細</div>
- <div class="search_input">
- <el-select v-model="currentFile.state" disabled size="small" style="width: 100%;">
- <el-option v-for="item in fileState" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
</div>
- </div>
- </el-col>
- <!-- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鏂囦欢璇存槑锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addInfo.instructions" type="textarea"
- :rows="2" disabled></el-input></div>
- </div>
- </el-col> -->
- <el-col :span="24">
- <h4 class="title">鏂囦欢鍙樻洿鐢宠</h4>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鍙樻洿鍚庣紪鍙凤細</div>
- <div class="search_input"><el-input v-model="addInfo.alterAfterCode" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鍙樻洿鍚庡悕绉帮細</div>
- <div class="search_input"><el-input v-model="addInfo.alterAfterName" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鍓嶄竴鐗堟湰澶勭悊锛�</div>
- <div class="search_input">
- <el-select v-model="addInfo.method" :disabled="title == '瀹℃牳'" size="small" style="width: 100%;">
- <el-option label="浣滃簾" value="浣滃簾"></el-option>
- <el-option label="瀛樻。涓嶅彲鐢�" value="瀛樻。涓嶅彲鐢�">
- </el-option>
- </el-select>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鎻愪氦鏃堕棿锛�</div>
+ <div class="search_input"><el-input v-model="currentFile.createTime" clearable disabled placeholder="璇疯緭鍏�"
+ size="small"></el-input></div>
</div>
- </div>
- </el-col>
- <el-col :span="8" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鍙樻洿鍚庣増鏈細</div>
- <div class="search_input"><el-input v-model="addInfo.alterAfterVersion" :disabled="title == '瀹℃牳'" clearable
- placeholder="璇疯緭鍏�" size="small"></el-input></div>
- </div>
- </el-col>
- <el-col :span="16" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鍙樻洿璇存槑锛�</div>
- <div class="search_input"><el-input v-model="addInfo.alterNote" :disabled="title == '瀹℃牳'" :rows="2"
- clearable placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input></div>
- </div>
- </el-col>
- <el-col v-if="title != '瀹℃牳'" :span="24" style="margin-bottom: 16px;">
- <div class="search_thing" style="width: 100%;">
- <div class="search_label">鐩稿叧闄勪欢锛�</div>
- <div class="search_input"><el-upload v-if="addDialogVisible" :auto-upload="false" :multiple="false"
- :on-change="handleChangeUpload" accept='.pdf' action="#" style="margin: 8px 0 0px 50px;">
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">瀹℃牳鏃堕棿锛�</div>
+ <div class="search_input"><el-input v-model="currentFile.effectiveDate" clearable disabled placeholder="璇疯緭鍏�"
+ size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鏂囦欢鐘舵�侊細</div>
+ <div class="search_input">
+ <el-select v-model="currentFile.state" disabled size="small" style="width: 100%;">
+ <el-option v-for="item in fileState" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="24">
+ <h4 class="title">鏂囦欢鍙樻洿鐢宠</h4>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鍙樻洿鍚庣紪鍙凤細</div>
+ <div class="search_input"><el-input v-model="addInfo.alterAfterCode" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鍙樻洿鍚庡悕绉帮細</div>
+ <div class="search_input"><el-input v-model="addInfo.alterAfterName" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鍓嶄竴鐗堟湰澶勭悊锛�</div>
+ <div class="search_input">
+ <el-select v-model="addInfo.method" :disabled="title == '瀹℃牳'" size="small" style="width: 100%;">
+ <el-option label="浣滃簾" value="浣滃簾"></el-option>
+ <el-option label="瀛樻。涓嶅彲鐢�" value="瀛樻。涓嶅彲鐢�">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="8" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鍙樻洿鍚庣増鏈細</div>
+ <div class="search_input"><el-input v-model="addInfo.alterAfterVersion" :disabled="title == '瀹℃牳'" clearable
+ placeholder="璇疯緭鍏�" size="small"></el-input></div>
+ </div>
+ </el-col>
+ <el-col :span="16" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鍙樻洿璇存槑锛�</div>
+ <div class="search_input"><el-input v-model="addInfo.alterNote" :disabled="title == '瀹℃牳'" :rows="2"
+ clearable placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input></div>
+ </div>
+ </el-col>
+ <el-col v-if="title != '瀹℃牳'" :span="24" style="margin-bottom: 16px;">
+ <div class="search_thing" style="width: 100%;">
+ <div class="search_label">鐩稿叧闄勪欢锛�</div>
+ <div class="search_input"><el-upload v-if="addDialogVisible" :auto-upload="false" :multiple="false"
+ :on-change="handleChangeUpload" accept='.pdf' action="#" style="margin: 8px 0 0px 50px;">
<el-button size="small" type="primary">涓婁紶闄勪欢</el-button>
</el-upload></div>
- </div>
- </el-col>
- <UpPdfStamp v-if="title == '瀹℃牳' && addDialogVisible" ref="UpPdfStamp" :isUpFile="false" @uploadPDF="uploadPDF">
- </UpPdfStamp>
- </el-row>
+ </div>
+ </el-col>
+ <UpPdfStamp v-if="title == '瀹℃牳' && addDialogVisible" ref="UpPdfStamp" :isUpFile="false" @uploadPDF="uploadPDF">
+ </UpPdfStamp>
+ </el-row>
+ </div>
<span v-if="title != '瀹℃牳'" slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">鍙� 娑�</el-button>
<el-button :loading="addLoading" type="primary" @click="handleAdd">纭� 瀹�</el-button>
@@ -263,6 +240,7 @@
noCheckLoading: false,
checkLoading: false,
addDialogVisible: false,
+ diaLoading: false,
addInfo: {},
addPower: false,
outPower: false,
@@ -550,35 +528,39 @@
let alterBeforeCode = this.addInfo.alterBeforeCode
this.getCurrentFile(alterBeforeCode)
this.addDialogVisible = true
+ this.diaLoading = true
checkManageDocumentAlterPdf({ id: row.id }).then(res => {
//
+ this.diaLoading = false
const blob = new Blob([res]);
const file = new File([blob], row.name, { type: 'application/pdf' })
this.$refs.UpPdfStamp.lookFile(file)
this.currentInfo = row
}).catch(err => {
+ this.diaLoading = false
console.log(err)
})
},
// 瀹℃牳淇濆瓨
- async uploadPDF(pdfBlob) {
+ uploadPDF(pdfBlob) {
+ const file = new File([pdfBlob], this.fileName, { type: 'application/pdf' })
+ console.log('file---', file)
const formData = new FormData();
- formData.append('file', pdfBlob, this.fileName + '.pdf'); // 鏂囦欢瀛楁
+ formData.append('file', file, this.fileName + '.pdf'); // 鏂囦欢瀛楁
formData.append('id', this.currentInfo.id); // 鏂囦欢鍚嶅瓧娈�
formData.append('state', this.type); // 鏂囦欢鍚嶅瓧娈�
-
- let res = await checkManageDocumentAlter(formData)
- this.checkLoading = false
- this.noCheckLoading = false
- if (res.code == 200) {
+ checkManageDocumentAlter(formData).then(res => {
this.$message({ message: '鎿嶄綔鎴愬姛', type: 'success' });
this.addDialogVisible = false;
+ this.checkLoading = false
+ this.noCheckLoading = false
this.refreshTable()
return true
- } else {
- this.$message({ message: '鎿嶄綔澶辫触', type: 'error' });
+ }).catch(err => {
+ this.checkLoading = false
+ this.noCheckLoading = false
return false
- }
+ })
},
// 鎻愪氦瀹℃牳
handleCheckSub(type) {
@@ -610,6 +592,10 @@
</script>
<style scoped>
+>>> .el-dialog__body {
+ max-height: 75vh;
+ overflow-y: auto;
+}
.title {
height: 60px;
line-height: 60px;
--
Gitblit v1.9.3