From 0a26d58a3906b9e13946c7cb46fae51a0de98920 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期一, 17 三月 2025 15:49:08 +0800 Subject: [PATCH] Merge branch 'dev' into dev_tides --- src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue | 413 +++++++++++++++++++++++++++------------------------------- 1 files changed, 192 insertions(+), 221 deletions(-) diff --git a/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue b/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue index 17be48c..b03f44c 100644 --- a/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue +++ b/src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue @@ -1,19 +1,22 @@ <template> <!-- 鏂囦欢鍙樻洿鐢宠 --> - <div class="file-change-request" style="height: 100%;"> + <div> <div class="search"> - <div class="search_thing"> - <div class="search_label">鐢宠鏂囦欢缂栧彿锛�</div> - <div class="search_input"><el-input v-model="queryParams.code" clearable placeholder="璇疯緭鍏�" size="small" - @keyup.enter.native="refreshTable()"></el-input></div> + <div> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> + <el-form-item label="鐢宠鏂囦欢缂栧彿" prop="code"> + <el-input v-model="queryParams.code" clearable placeholder="璇疯緭鍏�" size="small" + @keyup.enter.native="refreshTable()"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button> + </el-form-item> + </el-form> </div> - <div class="search_thing" style="padding-left: 30px;"> - <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - </div> - <div class="btns"> - <el-button size="small" type="primary" - @click="addDialogVisible = true, addInfo = {}, currentFile = {}, title = '鏂囦欢鍙樻洿鐢宠', file = null">鏂囦欢鍙樻洿鐢宠</el-button> + <div> + <el-button size="small" type="primary" icon="el-icon-plus" + @click="addDialogVisible = true, addInfo = {}, currentFile = {}, title = '鏂囦欢鍙樻洿鐢宠', file = null">鏂囦欢鍙樻洿鐢宠</el-button> <el-button :loading="outLoading" size="small" type="primary" @click="handleOut">瀵煎嚭</el-button> </div> </div> @@ -22,198 +25,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 +243,7 @@ noCheckLoading: false, checkLoading: false, addDialogVisible: false, + diaLoading: false, addInfo: {}, addPower: false, outPower: false, @@ -550,35 +531,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) { @@ -615,14 +600,6 @@ line-height: 60px; } -.search { - background-color: #fff; - height: 40px; - display: flex; - align-items: center; - position: relative; -} - .search_thing { width: 350px; display: flex; @@ -639,16 +616,10 @@ width: calc(100% - 110px); } -.table { - background-color: #fff; - height: calc(100% - 60px - 80px); - padding: 20px; -} - -.btns { - position: absolute; - right: 20px; - top: 5px; +.search { + height: 46px; + display: flex; + justify-content: space-between; } h4.title { -- Gitblit v1.9.3