From 8fd9e43b8ae22e64c62afee56c24df682f8c47c9 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期日, 16 三月 2025 15:57:54 +0800
Subject: [PATCH] 成品下单下载为pdf
---
src/views/business/productOrder/index.vue | 96 +++++++++++++++++++++++++----------------------
1 files changed, 51 insertions(+), 45 deletions(-)
diff --git a/src/views/business/productOrder/index.vue b/src/views/business/productOrder/index.vue
index 747cfe7..5ca78c6 100644
--- a/src/views/business/productOrder/index.vue
+++ b/src/views/business/productOrder/index.vue
@@ -15,17 +15,11 @@
<el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
@keyup.enter.native="refreshTable()"></el-input>
</el-form-item>
- <el-form-item>
- <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
- @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
- <el-button size="small" @click="refresh()">閲� 缃�</el-button>
- <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
- </el-form-item>
- <el-form-item label="鏍峰搧缂栧彿" prop="sampleCode" v-if="more">
- <el-input v-model="entity.sampleCode" clearable placeholder="璇疯緭鍏�" size="small"
- @keyup.enter.native="refreshTable">
- </el-input>
- </el-form-item>
+<!-- <el-form-item label="鏍峰搧缂栧彿" prop="sampleCode" v-if="more">-->
+<!-- <el-input v-model="entity.sampleCode" clearable placeholder="璇疯緭鍏�" size="small"-->
+<!-- @keyup.enter.native="refreshTable">-->
+<!-- </el-input>-->
+<!-- </el-form-item>-->
<el-form-item label="涓嬪崟鏃堕棿" prop="createTime" v-if="more">
<el-date-picker v-model="entity.createTime" clearable format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss">
@@ -41,13 +35,24 @@
@keyup.enter.native="refreshTable">
</el-input>
</el-form-item>
+ <el-form-item>
+ <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
+ @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </el-form-item>
</el-form>
</div>
<div class="table-tab">
<div>
<ul class="tab">
- <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">{{ m.label }}
- </li>
+ <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">寰呭鏍�</li>
+ <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">妫�楠屼腑</li>
+ <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">濮旀墭宸叉</li>
+ <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">鎶芥牱宸叉</li>
+ <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">閫�鍥�</li>
+ <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">鎾ら攢</li>
+ <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">鍏ㄩ儴</li>
</ul>
</div>
<div>
@@ -55,7 +60,7 @@
@click="downLoad">瀵煎嚭</el-button>
<el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">娣诲姞妫�楠岄」</el-button>
<el-button size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button>
- <el-button size="small" type="primary" @click="playOrder(1)">涓嬪崟</el-button>
+ <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">涓嬪崟</el-button>
</div>
</div>
<div class="table">
@@ -146,7 +151,7 @@
</el-row>
</span>
</el-dialog>
- <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
+ <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%" @close="closeDia">
<div v-if="dataDialogVisible">
<lims-table :tableData="tableDataLook" :column="tableDataLookColumn" @pagination="tableDataLookPagination"
height="500px" key="tableDataLook" :page="tableDataLookPage"
@@ -168,8 +173,7 @@
<span slot="footer" class="dialog-footer">
<el-row>
<el-button @click="handleNo">{{ deleteTilte == '鎾ら攢' ? '鍙� 娑�' : '涓嶉�氳繃' }}</el-button>
- <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '鎾ら攢' ? '纭� 瀹�' : '閫�
- 杩�'}}</el-button>
+ <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '鎾ら攢' ? '纭� 瀹�' : '閫氳繃'}}</el-button>
</el-row>
</span>
</el-dialog>
@@ -303,7 +307,6 @@
<script>
import vueQr from 'vue-qr'
import PrintJS from 'print-js'
-import file from "@/utils/file";
import PrintDialog from "@/views/business/productOrder/components/printDialog.vue";
import AddInspectionDia from "@/views/business/productOrder/components/addInspectionDia.vue";
import limsTable from "@/components/Table/lims-table.vue";
@@ -317,8 +320,8 @@
import { selectUserCondition } from "@/api/performance/class";
import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
import {mapGetters} from "vuex";
-// import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
export default {
+ name: 'ProductOrder',
components: {
limsTable,
AddInspectionDia,
@@ -543,6 +546,7 @@
quashDialogVisible: false,
issuedDialogVisible: false,
dataDialogVisible: false, // 鏁版嵁鏌ョ湅寮规
+ currentRow: {}, // 鏁版嵁鏌ョ湅寮规
tableDataLookTableLoading: false, // 鏁版嵁鏌ョ湅寮规
tableDataLook: [],
tableDataLookPage: {
@@ -685,7 +689,7 @@
label: '寰呭鏍�',
value: 0
}, {
- label: '寰呮楠�',
+ label: '妫�楠屼腑',
value: 1
},
{
@@ -758,7 +762,7 @@
}
const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
this.tableLoading = true
- selectInsOrderParameter(params).then(res => {
+ selectInsOrderParameter({...this.page,...params}).then(res => {
this.upIndex++
this.tableLoading = false
if (res.code === 200) {
@@ -872,9 +876,10 @@
},
// 瀵煎嚭璁板綍
downLoad() {
- rawAllInsOrderExport({ ...this.entity }).then(res => {
- let url = this.javaApi + '/word/' + res.data
- this.$download.saveAs(url, '濮旀墭妫�娴嬩俊鎭鍑�.xlsx');
+ const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
+ rawAllInsOrderExport({ ...params }).then(res => {
+ const blob = new Blob([res], { type: 'application/octet-stream' });
+ this.$download.saveAs(blob, '濮旀墭妫�娴嬩俊鎭鍑�.xlsx');
}).catch(err => {
console.log('err---', err);
})
@@ -937,12 +942,13 @@
// 鏁版嵁鏌ョ湅
handleDataLook(row) {
this.dataDialogVisible = true;
- this.getDataTableList(row)
+ this.currentRow = row;
+ this.getDataTableList(this.currentRow)
},
// 鏌ヨ鏁版嵁鏌ョ湅鍒楄〃鏁版嵁
getDataTableList(row) {
this.tableDataLookTableLoading = true
- selectSampleAndProductByOrderId({ id: row.id }).then(res => {
+ selectSampleAndProductByOrderId({ id: row.id, ...this.tableDataLookPage }).then(res => {
this.tableDataLookTableLoading = false
if (res.code === 200) {
this.tableDataLook = res.data.records
@@ -954,7 +960,15 @@
},
tableDataLookPagination(page) {
this.tableDataLookPage.size = page.limit
- this.getDataTableList()
+ this.getDataTableList(this.currentRow)
+ },
+ closeDia () {
+ this.tableDataLookPage = {
+ total: 0,
+ size: 10,
+ current: 1
+ }
+ this.dataDialogVisible = false
},
// 闄勪欢鏌ョ湅
handleFileLook(row) {
@@ -982,25 +996,21 @@
downFile({
id: row.id,
}).then(res => {
- if (res.code === 200) {
- let url = '';
- if (res.data.type == 1) {
- url = this.javaApi + '/img/' + res.data.fileUrl
- this.$download.saveAs(url, row.fileName);
- } else {
- url = this.javaApi + '/word/' + res.data.fileUrl
- this.$download.saveAs(url, row.fileName);
- }
- }
+ this.$download.saveAs(res.data.fileUrl, row.fileName);
}).catch(error => {
})
},
// 涓嬭浇鎶ュ憡
download(row) {
- let url = this.javaApi + '/word/' + row.urlS ? row.urlS : row.url;
- if (url) {
- this.$download.saveAs(url, this.downLoadInfo.fileName);
+ let url = row.urlS ? row.urlS : row.url;
+ if(url){
+ url = url.split('.')[0]+'.pdf'
+ const link = document.createElement('a');
+ link.href = this.javaApi + url;
+ link.target = '_blank';
+ document.body.appendChild(link);
+ link.click();
}
},
// 鎾ら攢
@@ -1127,10 +1137,6 @@
userId: this.distributeData.userId,
sonLaboratory: this.distributeData.sonLaboratory,
}).then(res => {
- if (res.code === 201) {
- this.upLoad = false
- return
- }
this.$message.success('淇敼鎴愬姛')
this.upLoad = false
this.issuedDialogVisible = false
@@ -1176,7 +1182,7 @@
handleVerify(row) {
this.$router.push({ path: "/productOrder/add", query: { examine: 1, active: 3, currentId: row.id } });
},
- handleTab(m, i) {
+ handleTab(i) {
this.tabIndex = i;
this.refreshTable()
},
--
Gitblit v1.9.3