From 9dd11bd6a971e13aa74ad7a8994f9710edb42590 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 25 二月 2025 15:05:51 +0800
Subject: [PATCH] 修改导出
---
src/views/CNAS/systemManagement/customerSatisfaction/index.vue | 7
src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue | 28 -
src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue | 27 -
src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue | 33 -
src/views/structural/capabilityAndLaboratory/laboratory/index.vue | 257 +++------------
src/api/cnas/process/reportResults.js | 29 +
src/views/CNAS/process/reportResults/index.vue | 431 ++++++++++++++++++++++++++
src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue | 89 ++---
src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue | 27 -
9 files changed, 549 insertions(+), 379 deletions(-)
diff --git a/src/api/cnas/process/reportResults.js b/src/api/cnas/process/reportResults.js
new file mode 100644
index 0000000..4f140af
--- /dev/null
+++ b/src/api/cnas/process/reportResults.js
@@ -0,0 +1,29 @@
+// 鎶ュ憡缁撴灉鐩稿叧鎺ュ彛
+import request from "@/utils/request";
+
+//8鎶ュ憡缁撴灉-瀵煎嚭
+export function exportProcessReport(query) {
+ return request({
+ url: "/processReport/exportProcessReport",
+ method: "get",
+ params: query,
+ });
+}
+
+// 8鎶ュ憡缁撴灉-鏂板
+export function addProcessReport(data) {
+ return request({
+ url: "/processReport/addProcessReport",
+ method: "post",
+ data: data,
+ });
+}
+
+// 8鎶ュ憡缁撴灉-淇敼
+export function doProcessReport(data) {
+ return request({
+ url: "/processReport/doProcessReport",
+ method: "post",
+ data: data,
+ });
+}
diff --git a/src/views/CNAS/process/reportResults/index.vue b/src/views/CNAS/process/reportResults/index.vue
new file mode 100644
index 0000000..dd4403e
--- /dev/null
+++ b/src/views/CNAS/process/reportResults/index.vue
@@ -0,0 +1,431 @@
+<template>
+ <div class="report-results">
+ <el-row class="title">
+ <el-col :span="12" style="padding-left: 20px;text-align: left;">鎶ュ憡缁撴灉</el-col>
+ <el-col :span="12" style="text-align: right;">
+ <el-button size="medium" type="primary" @click="handleDown" :loading="outLoading" v-if="outPower">瀵煎嚭</el-button>
+ <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button>
+ </el-col>
+ </el-row>
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">妫�楠屾姤鍛婄紪鍙凤細</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.insReportCode"
+ @keyup.enter.native="refreshTable()"></el-input></div>
+ </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>
+ <div class="table">
+ <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 290px)'"
+ :page="page" @pagination="pagination"></lims-table>
+ <!-- <ValueTable ref="ValueTable" :url="$api.processReport.pageProcessReport"
+ :delUrl="$api.processReport.delProcessReport" :componentData="componentData" :key="upIndex" /> -->
+ </div>
+ <el-dialog :title="title" :visible.sync="addDialogVisible" width="400px" top="6vh">
+ <el-row>
+ <el-col :span="24" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">妫�楠屾姤鍛婄紪鍙凤細</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.insReportCode"></el-input></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-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.pages"></el-input></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-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.number"></el-input></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-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.send"></el-input></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-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.method"></el-input></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-date-picker v-model="addInfo.sendTime" type="date" size="small" placeholder="閫夋嫨鏃ユ湡" format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd" style="width: 100%;">
+ </el-date-picker>
+ </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.sendUser" placeholder="璇烽�夋嫨" 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="24" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">绛炬敹浜猴細</div>
+ <div class="search_input">
+ <el-select v-model="addInfo.signatory" placeholder="璇烽�夋嫨" size="small" style="width: 100%;" multiple>
+ <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="24" style="margin-bottom: 16px;">
+ <div class="search_thing">
+ <div class="search_label">澶囨敞锛�</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addInfo.remark"
+ type="textarea" :rows="2"></el-input></div>
+ </div>
+ </el-col>
+ </el-row>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="addDialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="handleAdd" :loading="addLoading">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ exportProcessReport,
+ doProcessReport,
+ addProcessReport
+} from '@/api/cnas/process/reportResults.js'
+import {
+ selectUserCondition,
+} from "@/api/business/inspectionTask.js";
+export default {
+ components: {
+ limsTable
+ },
+ data() {
+ return {
+ outLoading: false,
+ addPower: true,
+ outPower: true,
+ componentData: {
+ entity: {
+ insReportCode: null,
+ // sendUserName: null,
+ orderBy: {
+ field: 'createTime',
+ order: 'desc'
+ }
+ },
+ isIndex: true,
+ showSelect: true,
+ select: true,
+ selectMethod: 'handleChangeTask',
+ do: [
+ {
+ id: 'handleWork',
+ font: '淇敼',
+ type: 'text',
+ method: 'handleWork'
+ },
+ {
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }
+ ],
+ tagField: {},
+ selectField: {
+ sendUser: {
+ select: []
+ },
+ signatory: {
+ select: []
+ },
+ },
+ // addUpload:['signatoryUrl'],
+ requiredAdd: [],
+ requiredUp: [],
+ needSort: [],
+ inputType: ''
+ },
+ entityCopy: {},
+ upIndex: 0,
+ personList: [],
+ title: '鏂板',
+ addDialogVisible: false,
+ addInfo: {
+ signatory: []
+ },
+ addLoading: false,
+ mutilSelect: [],
+ queryParams: {},
+ tableData: [],
+ column: [
+ { label: "缂栧彿", prop: "number" },
+ { label: "杈呭姪椤圭洰鍚嶇О", prop: "auxiliaryProject", width: "120px" },
+ {
+ label: "瀹為獙瀹�",
+ prop: "laboratory",
+ dataType: "tag",
+ formatData: (params) => {
+ return this.laboratoryList.find((m) => m.value == params).label;
+ },
+ },
+ { label: "鍗曚綅", prop: "unit" },
+ { label: "鏍稿噯宸ユ椂", prop: "approvedWorkingHour" },
+ { label: "閮ㄩ棬", prop: "department" },
+ { label: "澶囨敞", prop: "remarks" },
+ {
+ dataType: "action",
+ fixed: "right",
+ label: "鎿嶄綔",
+ operation: [
+ {
+ name: "缂栬緫",
+ type: "text",
+ clickFun: (row) => {
+ this.openAdd("缂栬緫", row);
+ },
+ showHide: (row) => {
+ return this.checkPermi([
+ "performance:manHour:workTimeConfig:edit",
+ ]);
+ },
+ },
+ {
+ name: "鍒犻櫎",
+ type: "text",
+ clickFun: (row) => {
+ this.handleDelete(row);
+ },
+ showHide: (row) => {
+ return this.checkPermi([
+ "performance:manHour:workTimeConfig:del",
+ ]);
+ },
+ },
+ ],
+ },
+ ],
+ page: {
+ total: 0,
+ size: 10,
+ current: 0,
+ },
+ tableLoading: false,
+ }
+ },
+ mounted() {
+ // this.entityCopy = this.HaveJson(this.componentData.entity);
+ // this.getPower()
+ this.getAuthorizedPerson()
+ },
+ methods: {
+ getPower() {
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ let up = false
+ let del = false
+ let add = false
+ let out = false
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == 'doProcessReport') {
+ up = true
+ }
+ if (power[i].menuMethod == 'addProcessReport') {
+ add = true
+ }
+ if (power[i].menuMethod == 'delProcessReport') {
+ del = true
+ }
+ if (power[i].menuMethod == 'exportProcessReport') {
+ out = true
+ }
+ }
+ if (!up) {
+ this.componentData.do.splice(1, 1)
+ }
+ if (!del) {
+ this.componentData.do.splice(0, 1)
+ }
+ this.outPower = out
+ this.addPower = add
+ },
+ handleDown() {
+ if (this.mutilSelect.length == 0) {
+ this.$message.warning('璇烽�夋嫨瑕佸鍑虹殑鏁版嵁')
+ return
+ }
+ // html瀵煎嚭涓簑ord锛屾牱瀛愬お涓戜簡锛屼唬鐮佸厛鏀剧潃鍚�
+ // exportHtmlToWord(this.$refs.content,'妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃')
+ this.outLoading = true
+ exportProcessReport({ ids: this.mutilSelect.map(m => m.id) }).then(res => {
+ this.outLoading = false
+ if (res.code === 201) return
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const url = this.javaApi + '/word/' + res.message;
+ this.$download.saveAs(url, "鎶ュ憡缁撴灉");
+ })
+ },
+ openAdd() {
+ this.title = '鏂板'
+ this.addInfo = {
+ signatory: []
+ }
+ this.addDialogVisible = true;
+ },
+ refreshTable() {
+ this.$refs['ValueTable'].selectList()
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ this.refreshTable()
+ },
+ getAuthorizedPerson() {
+ selectUserCondition().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.personList = data
+ })
+ },
+ handleAdd() {
+ this.addLoading = true
+ delete this.addInfo.createTime
+ delete this.addInfo.createUser
+ delete this.addInfo.updateTime
+ delete this.addInfo.signatoryUrl
+ delete this.addInfo.updateUserer
+ delete this.addInfo.sendUserName
+ let addInfo = this.HaveJson(this.addInfo)
+ addInfo.signatory = addInfo.signatory.join(',')
+ if (this.title == '鏂板') {
+ addProcessReport(addInfo).then(res => {
+ this.addLoading = false
+ if (res.code == 201) {
+ return
+ }
+ this.addDialogVisible = false
+ this.$message({
+ type: 'success',
+ message: '鎿嶄綔鎴愬姛!'
+ });
+ this.refreshTable()
+ }).catch(err => { })
+ } else {
+ doProcessReport(addInfo).then(res => {
+ this.addLoading = false
+ if (res.code == 201) {
+ return
+ }
+ this.addDialogVisible = false
+ this.$message({
+ type: 'success',
+ message: '鎿嶄綔鎴愬姛!'
+ });
+ this.refreshTable()
+ }).catch(err => { })
+ }
+ },
+ handleWork(row) {
+ this.title = '淇敼'
+ this.addInfo = row
+ console.log(this.addInfo)
+ this.addInfo.signatory = this.addInfo.signatory ? this.addInfo.signatory.split(',').map(m => Number(m)) : []
+ this.addDialogVisible = true;
+ },
+ handleChangeTask(list) {
+ this.mutilSelect = list
+ }
+ }
+}
+</script>
+
+<style scoped>
+.title {
+ height: 60px;
+ line-height: 60px;
+}
+
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+}
+
+.search_thing {
+ width: 350px;
+ display: flex;
+ align-items: center;
+}
+
+.search_label {
+ width: 110px;
+ font-size: 14px;
+ text-align: right;
+}
+
+.search_input {
+ width: calc(100% - 110px);
+}
+
+.table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 40px);
+ padding: 20px;
+}
+
+.tables {
+ table-layout: fixed;
+ width: 100%;
+ margin-top: 10px;
+}
+
+.tables td {
+ height: 40px;
+ width: 100px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+}
+
+.en {
+ font-size: 12px;
+ word-break: break-word;
+ /* 鑷姩鏂 */
+ overflow-wrap: break-word;
+ /* 闃叉婧㈠嚭 */
+ white-space: normal;
+ /* 榛樿鎹㈣ */
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue b/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue
index b6bb91f..1a67d66 100644
--- a/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue
+++ b/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue
@@ -19,34 +19,34 @@
</div>
<div class="table">
<lims-table :tableData="tableData" :column="columns" :height="'calc(100vh - 250px)'" @pagination="pagination"
- :page="page" :tableLoading="tableLoading"></lims-table>
+ :page="page" :tableLoading="tableLoading"></lims-table>
</div>
<AddRecord ref="addRecordRef" @submit="submit"></AddRecord>
</div>
-<!-- <div class="tables">-->
-<!-- <ZTTable-->
-<!-- :column="columns"-->
-<!-- :table-data="tableData"-->
-<!-- >-->
-<!-- <template slot="action" slot-scope="{ row }">-->
-<!-- <el-button type="text" @click="edit(row)">缂栬緫</el-button>-->
-<!-- </template>-->
-<!-- </ZTTable>-->
-<!-- <div class="pagination">-->
-<!-- <div></div>-->
-<!-- <el-pagination-->
-<!-- :page-size="pagination.pageSize"-->
-<!-- :page-sizes="[10, 20, 30, 40]"-->
-<!-- :total="pagination.total"-->
-<!-- layout="total, sizes, prev, pager, next, jumper"-->
-<!-- @current-change="handleCurrent"-->
-<!-- @size-change="handleSize"-->
-<!-- >-->
-<!-- </el-pagination>-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <AddRecord ref="addRecordRef" @submit="submit"></AddRecord>-->
+ <!-- <div class="tables">-->
+ <!-- <ZTTable-->
+ <!-- :column="columns"-->
+ <!-- :table-data="tableData"-->
+ <!-- >-->
+ <!-- <template slot="action" slot-scope="{ row }">-->
+ <!-- <el-button type="text" @click="edit(row)">缂栬緫</el-button>-->
+ <!-- </template>-->
+ <!-- </ZTTable>-->
+ <!-- <div class="pagination">-->
+ <!-- <div></div>-->
+ <!-- <el-pagination-->
+ <!-- :page-size="pagination.pageSize"-->
+ <!-- :page-sizes="[10, 20, 30, 40]"-->
+ <!-- :total="pagination.total"-->
+ <!-- layout="total, sizes, prev, pager, next, jumper"-->
+ <!-- @current-change="handleCurrent"-->
+ <!-- @size-change="handleSize"-->
+ <!-- >-->
+ <!-- </el-pagination>-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <!-- <AddRecord ref="addRecordRef" @submit="submit"></AddRecord>-->
</template>
<script>
@@ -138,8 +138,8 @@
},
methods: {
async getTableData() {
- const res = await getPageAcceptance(this.form);
- if(res.code === 200){
+ const res = await getPageAcceptance(this.form);
+ if (res.code === 200) {
this.tableData = res.data.records;
this.page.total = res.data.total;
}
@@ -150,9 +150,9 @@
},
async submit(form) {
- const {code} = await form.acceptance.id ? updateAcceptanc(this.form):addAcceptance((this.form));
- if(code == 200) {
- this.$message.success(`${form.acceptance.id ? '缂栬緫':'娣诲姞'}鎴愬姛`)
+ const { code } = await form.acceptance.id ? updateAcceptanc(this.form) : addAcceptance((this.form));
+ if (code == 200) {
+ this.$message.success(`${form.acceptance.id ? '缂栬緫' : '娣诲姞'}鎴愬姛`)
this.getTableData()
}
},
@@ -169,7 +169,7 @@
url: getAcceptanceDetails,
params: { id }
})
- if(code == 200) {
+ if (code == 200) {
return data;
}
},
@@ -183,33 +183,8 @@
url: `${exportAcceptance}`,
responseType: "blob"
})
- const blob = new Blob([res], {type: 'application/octet-stream'});
- //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
- let reader = new FileReader();
- reader.readAsText(blob, 'utf-8');
- reader.onload = () => {
- try {
- let result = JSON.parse(reader.result);
- if (result.message) {
- this.$message.error(result.message);
- } else {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '鏍囧噯鐗╄川楠屾敹.xlsx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- } catch (err) {
- console.log(err);
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '鏍囧噯鐗╄川楠屾敹.xlsx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- }
+ const blob = new Blob([res], { type: 'application/octet-stream' });
+ this.$download.saveAs(blob, '鏍囧噯鐗╄川楠屾敹.xlsx');
},
// 鍒嗛〉鍒囨崲
diff --git a/src/views/CNAS/systemManagement/customerSatisfaction/index.vue b/src/views/CNAS/systemManagement/customerSatisfaction/index.vue
index 414a023..a85c943 100644
--- a/src/views/CNAS/systemManagement/customerSatisfaction/index.vue
+++ b/src/views/CNAS/systemManagement/customerSatisfaction/index.vue
@@ -310,13 +310,10 @@
let url = '';
if (row.type == 1) {
url = this.javaApi + '/img/' + row.fileUrl
- file.downloadIamge(url, row.fileName)
+ this.$download.saveAs(url, row.fileName);
} else {
url = this.javaApi + '/word/' + row.fileUrl
- const link = document.createElement('a');
- link.href = url;
- link.download = row.fileName;
- link.click();
+ this.$download.saveAs(url, row.fileName);
}
},
// 鍒犻櫎瀹㈡埛鍒嗘瀽闄勪欢
diff --git a/src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue b/src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue
index 0548ea4..257bc6b 100644
--- a/src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue
+++ b/src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue
@@ -394,33 +394,7 @@
exportManageDocumentIssueRecycle(this.queryParams).then(res => {
this.outLoading = false
const blob = new Blob([res], { type: 'application/octet-stream' });
- // this.$download.saveAs(blob, '鍙戞斁鍥炴敹璁板綍.xlsx')
- //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
- let reader = new FileReader();
- reader.readAsText(blob, 'utf-8');
- reader.onload = () => {
- try {
- let result = JSON.parse(reader.result);
- if (result.message) {
- this.$message.error(result.message);
- } else {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '鍙戞斁鍥炴敹璁板綍.xlsx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- } catch (err) {
- console.log(err);
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '鍙戞斁鍥炴敹璁板綍.xlsx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- }
+ this.$download.saveAs(blob, '鍙戞斁鍥炴敹璁板綍.xlsx');
})
},
changeFileList(e) {
diff --git a/src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue b/src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue
index db15a30..20cd3c2 100644
--- a/src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue
+++ b/src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue
@@ -276,33 +276,7 @@
return
}
const blob = new Blob([res], { type: 'application/octet-stream' });
- //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
- let reader = new FileReader();
- reader.readAsText(blob, 'utf-8');
- reader.onload = () => {
- try {
- let result = JSON.parse(reader.result);
- if (result.message) {
- this.$message.error(result.message);
- } else {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '璇勫璁″垝.docx';
- link.click();
- this.$download.saveAs(blob, name)
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- } catch (err) {
- console.log(err);
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '璇勫璁″垝.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- }
+ this.$download.saveAs(blob, '璇勫璁″垝.docx');
})
},
lookFile(url, name) {
@@ -313,10 +287,7 @@
handleDown0(url, name) {
if (!url) return this.$message.warning('鏂囦欢鏈笂浼�')
let url0 = this.javaApi + '/word/' + url
- const link = document.createElement('a');
- link.href = url0;
- link.target = '_blank';
- link.click();
+ this.$download.saveAs(url0, name);
}
}
};
diff --git a/src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue b/src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue
index 819fa92..890ae93 100644
--- a/src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue
+++ b/src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue
@@ -172,32 +172,7 @@
return
}
const blob = new Blob([res], { type: 'application/octet-stream' });
- //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
- let reader = new FileReader();
- reader.readAsText(blob, 'utf-8');
- reader.onload = () => {
- try {
- let result = JSON.parse(reader.result);
- if (result.message) {
- this.$message.error(result.message);
- } else {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '浼氳璁板綍.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- } catch (err) {
- console.log(err);
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '浼氳璁板綍.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- }
+ this.$download.saveAs(blob, '浼氳璁板綍.docx');
})
},
}
diff --git a/src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue b/src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue
index 72a90bc..1599da1 100644
--- a/src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue
+++ b/src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue
@@ -231,32 +231,7 @@
return
}
const blob = new Blob([res], { type: 'application/octet-stream' });
- //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
- let reader = new FileReader();
- reader.readAsText(blob, 'utf-8');
- reader.onload = () => {
- try {
- let result = JSON.parse(reader.result);
- if (result.message) {
- this.$message.error(result.message);
- } else {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '璇勫鎶ュ憡.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- } catch (err) {
- console.log(err);
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '璇勫鎶ュ憡.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- }
+ this.$download.saveAs(blob, '璇勫鎶ュ憡.docx');
})
},
submit(type, row) {
diff --git a/src/views/structural/capabilityAndLaboratory/laboratory/index.vue b/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
index 820d8d2..5e33081 100644
--- a/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
+++ b/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
@@ -3,103 +3,50 @@
<div>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="璧勮川鍚嶇О" prop="name">
- <el-select
- v-model="queryParams.name"
- placeholder="閫夋嫨璧勮川鍚嶇О"
- size="small"
- @change="refreshTable()"
- >
- <el-option
- v-for="dict in dict.type.cnas_method_qualification"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- >
+ <el-select v-model="queryParams.name" placeholder="閫夋嫨璧勮川鍚嶇О" size="small" @change="refreshTable()">
+ <el-option v-for="dict in dict.type.cnas_method_qualification" :key="dict.value" :label="dict.label"
+ :value="dict.value">
{{ dict.label }}
</el-option>
</el-select>
</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-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>
<el-row class="title">
<el-col :span="12" style="text-align: left">
- <el-radio-group
- v-model="radio"
- @input="selectorSwitch"
- size="medium"
- fill="#409EFF"
- >
+ <el-radio-group v-model="radio" @input="selectorSwitch" size="medium" fill="#409EFF">
<el-radio-button :label="0">璧勮川鏄庣粏</el-radio-button>
<el-radio-button :label="1">璧勮川鎬昏</el-radio-button>
</el-radio-group>
</el-col>
<el-col :span="12" style="text-align: right" v-if="radio === 0">
- <el-button size="small" type="primary" @click="openAdd"
- >璧勮川鏇存柊</el-button
- >
- <el-button size="small" icon="el-icon-delete" @click="handleDel"
- >鍒犻櫎</el-button
- >
+ <el-button size="small" type="primary" @click="openAdd">璧勮川鏇存柊</el-button>
+ <el-button size="small" icon="el-icon-delete" @click="handleDel">鍒犻櫎</el-button>
</el-col>
</el-row>
</div>
<div v-if="radio === 0">
- <lims-table
- :tableData="tableData"
- :column="column"
- :isSelection="true"
- :handleSelectionChange="handleSelectionChange"
- @pagination="pagination"
- :height="'calc(100vh - 300px)'"
- :page="page"
- :tableLoading="tableLoading"
- ></lims-table>
+ <lims-table :tableData="tableData" :column="column" :isSelection="true"
+ :handleSelectionChange="handleSelectionChange" @pagination="pagination" :height="'calc(100vh - 300px)'"
+ :page="page" :tableLoading="tableLoading"></lims-table>
</div>
- <div
- class="table"
- v-if="radio === 1"
- v-loading="pageLoading"
- @scroll="scrollFn"
- >
+ <div class="table" v-if="radio === 1" v-loading="pageLoading" @scroll="scrollFn">
<el-row :gutter="16">
- <el-col
- :span="8"
- v-for="(m, i) in list"
- :key="i"
- :xs="24"
- :sm="12"
- :md="8"
- :lg="8"
- :xl="6"
- style="margin-bottom: 16px"
- >
+ <el-col :span="8" v-for="(m, i) in list" :key="i" :xs="24" :sm="12" :md="8" :lg="8" :xl="6"
+ style="margin-bottom: 16px">
<div class="table-item">
- <el-image
- style="
+ <el-image style="
width: 102px;
height: 102px;
margin-right: 20px;
border-radius: 16px;
- "
- :src="javaApi + '/img/' + m.imageUrl"
- >
- <div
- slot="error"
- class="image-error"
- style="
+ " :src="javaApi + '/img/' + m.imageUrl">
+ <div slot="error" class="image-error" style="
width: 100px;
height: 100px;
border-radius: 16px;
@@ -107,18 +54,11 @@
align-items: center;
justify-content: center;
border: 1px solid #eeeeee;
- "
- >
- <i
- class="el-icon-picture-outline"
- style="font-size: 30px; color: #666666"
- ></i>
+ ">
+ <i class="el-icon-picture-outline" style="font-size: 30px; color: #666666"></i>
</div>
</el-image>
- <div
- class="table-item-right"
- style="flex: 1; font-size: 12px; color: #666666"
- >
+ <div class="table-item-right" style="flex: 1; font-size: 12px; color: #666666">
<p style="line-height: 26px">
璧勮川鍚嶇О锛�<span style="color: #3a7bfa">{{ m.name }}</span>
</p>
@@ -126,168 +66,76 @@
<p style="line-height: 26px">鍒版湡鏃堕棿锛歿{ m.expireTime }}</p>
<p>
<span>鐘舵�侊細</span>
- <el-tag
- :type="m.state === 0 ? 'danger' : 'success'"
- size="small"
- >{{ m.state === 0 ? "澶辨晥" : "鏈夋晥" }}</el-tag
- >
+ <el-tag :type="m.state === 0 ? 'danger' : 'success'" size="small">{{ m.state === 0 ? "澶辨晥" : "鏈夋晥"
+ }}</el-tag>
</p>
</div>
</div>
</el-col>
</el-row>
- <div
- v-if="list.length < 1 && !pageLoading && !isLoding"
- style="
+ <div v-if="list.length < 1 && !pageLoading && !isLoding" style="
color: #909399;
font-size: 14px;
text-align: center;
margin-top: 200px;
- "
- >
+ ">
鏆傛棤鏁版嵁
</div>
<div v-if="list.length > 0">
- <el-button
- v-if="isLoding"
- type="text"
- style="display: flex; margin: 0 auto; color: #909399"
- >
+ <el-button v-if="isLoding" type="text" style="display: flex; margin: 0 auto; color: #909399">
<i class="el-icon-loading" style="font-size: 20px"></i>
</el-button>
- <el-button
- type="text"
- v-if="finishLoding"
- style="display: flex; margin: 0 auto; color: #909399"
- >宸茬粡娌℃湁鏇村鍟</el-button
- >
+ <el-button type="text" v-if="finishLoding"
+ style="display: flex; margin: 0 auto; color: #909399">宸茬粡娌℃湁鏇村鍟</el-button>
</div>
</div>
- <el-dialog
- title="璧勮川鏇存柊"
- :visible.sync="qualificationsConnectVisible"
- width="400px"
- >
- <el-form
- ref="formDataRef"
- :model="formData"
- label-position="right"
- :rules="formDataRules"
- label-width="78px"
- >
+ <el-dialog title="璧勮川鏇存柊" :visible.sync="qualificationsConnectVisible" width="400px">
+ <el-form ref="formDataRef" :model="formData" label-position="right" :rules="formDataRules" label-width="78px">
<el-form-item label="璧勮川鍚嶇О" prop="name">
- <el-select
- v-model="formData.name"
- placeholder="璇烽�夋嫨"
- style="width: 100%"
- size="small"
- clearable
- >
- <el-option
- v-for="dict in dict.type.cnas_method_qualification"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- >
+ <el-select v-model="formData.name" placeholder="璇烽�夋嫨" style="width: 100%" size="small" clearable>
+ <el-option v-for="dict in dict.type.cnas_method_qualification" :key="dict.value" :label="dict.label"
+ :value="dict.value">
{{ dict.label }}
</el-option>
</el-select>
</el-form-item>
<el-form-item label="璧勮川缂栫爜" prop="code">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="formData.code"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="formData.code"></el-input>
</el-form-item>
<el-form-item label="棰佸彂鏈烘瀯" prop="organization">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="formData.organization"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="formData.organization"></el-input>
</el-form-item>
<el-form-item label="璧勮川璇存槑" prop="explanation">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="formData.explanation"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="formData.explanation"></el-input>
</el-form-item>
<el-form-item label="棰佸彂鏃堕棿" prop="dateOfIssuance">
- <el-date-picker
- style="width: 100%"
- v-model="formData.dateOfIssuance"
- type="datetime"
- size="small"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- clearable
- placeholder="閫夋嫨鏃ユ湡"
- >
+ <el-date-picker style="width: 100%" v-model="formData.dateOfIssuance" type="datetime" size="small"
+ format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable placeholder="閫夋嫨鏃ユ湡">
</el-date-picker>
</el-form-item>
<el-form-item label="鍒版湡鏃堕棿" prop="expireTime">
- <el-date-picker
- style="width: 100%"
- v-model="formData.expireTime"
- type="datetime"
- size="small"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- clearable
- placeholder="閫夋嫨鏃ユ湡"
- >
+ <el-date-picker style="width: 100%" v-model="formData.expireTime" type="datetime" size="small"
+ format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable placeholder="閫夋嫨鏃ユ湡">
</el-date-picker>
</el-form-item>
<el-form-item label="璧勮川鍥剧墖">
- <el-upload
- ref="upload"
- :action="uploadAction"
- :on-success="(m) => handleSuccessUpImg(m, 'imageUrl')"
- accept="image/jpg,image/jpeg,image/png"
- :multiple="false"
- :limit="1"
- :headers="headers"
- :on-change="beforeUpload"
- :on-error="onError"
- >
- <el-button slot="trigger" size="small" type="primary"
- >閫夊彇鍥剧墖</el-button
- >
+ <el-upload ref="upload" :action="uploadAction" :on-success="(m) => handleSuccessUpImg(m, 'imageUrl')"
+ accept="image/jpg,image/jpeg,image/png" :multiple="false" :limit="1" :headers="headers"
+ :on-change="beforeUpload" :on-error="onError">
+ <el-button slot="trigger" size="small" type="primary">閫夊彇鍥剧墖</el-button>
</el-upload>
</el-form-item>
<el-form-item label="璧勮川闄勪欢">
- <el-upload
- ref="upload1"
- :action="uploadAction"
- :on-success="(m) => handleSuccessUpImg(m, 'fileUrl')"
- accept="image/jpg,image/jpeg,image/png,application/pdf,.doc,.docx"
- :headers="headers"
- :multiple="false"
- :limit="1"
- :on-change="beforeUpload1"
- :on-error="onError1"
- >
- <el-button slot="trigger" size="small" type="primary"
- >閫夊彇鏂囦欢</el-button
- >
+ <el-upload ref="upload1" :action="uploadAction" :on-success="(m) => handleSuccessUpImg(m, 'fileUrl')"
+ accept="image/jpg,image/jpeg,image/png,application/pdf,.doc,.docx" :headers="headers" :multiple="false"
+ :limit="1" :on-change="beforeUpload1" :on-error="onError1">
+ <el-button slot="trigger" size="small" type="primary">閫夊彇鏂囦欢</el-button>
</el-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
- <el-button @click="qualificationsConnectVisible = false"
- >鍙� 娑�</el-button
- >
- <el-button
- type="primary"
- @click="confirmQualifications"
- :loading="loading"
- >纭� 瀹�</el-button
- >
+ <el-button @click="qualificationsConnectVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmQualifications" :loading="loading">纭� 瀹�</el-button>
</span>
</el-dialog>
</div>
@@ -480,12 +328,6 @@
},
// 璧勮川鏄庣粏闄勪欢涓嬭浇
handleDownLoad(row) {
- // let url = row.fileUrl;
- // const link = document.createElement('a');
- // link.href = this.javaApi + '/img/'+ url;
- // document.body.appendChild(link);
- // link.target = '_blank';
- // link.click();
const url = process.env.VUE_APP_BASE_API + "/img/" + row.fileUrl;
this.$download.saveAs(url, row.fileUrl);
},
@@ -595,6 +437,7 @@
line-height: 40px;
margin-bottom: 10px;
}
+
.table-item {
border-radius: 8px 8px 8px 8px;
box-shadow: 4px 4px 8px 0px rgba(51, 51, 51, 0.04);
--
Gitblit v1.9.3