From 616a1831249c79a051415e1a9fa3e32683a40d00 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期二, 29 八月 2023 15:47:36 +0800
Subject: [PATCH] 修改设备
---
src/views/experiment/checkTheReport/index.vue | 357 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 251 insertions(+), 106 deletions(-)
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index e14b79e..b4efda6 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -1,13 +1,27 @@
<template>
<div class="content-main">
<div class="top-bar">
- <el-form ref="form" :inline="true">
- <el-form-item class="sermargin">
+ <el-form ref="form" :inline="true" :model="searchData" label-position="left">
+ <el-form-item label="鏍峰搧缂栧彿:">
<el-input
- v-model="input"
+ v-model="searchData.sample_code"
class="input-form"
- placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鎶ュ憡鍗曞彿/鏍峰搧缂栧彿/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+ placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�"
@keyup.enter.native="getData"
+ />
+ </el-form-item>
+ <el-form-item label="鎶ュ憡鍗曞彿:">
+ <el-input
+ v-model="searchData.reportCode"
+ class="input-form"
+ placeholder="璇疯緭鍏ユ姤鍛婂崟鍙�"
+ />
+ </el-form-item>
+ <el-form-item label="鐢宠鍗曞彿:">
+ <el-input
+ v-model="searchData.application_code"
+ class="input-form"
+ placeholder="璇疯緭鍏ョ敵璇峰崟鍙�"
/>
</el-form-item>
<el-form-item>
@@ -16,7 +30,9 @@
</el-form-item>
</el-form>
<el-form>
- <el-button class="rightBtn" type="primary" icon="el-icon-document" @click="exportData">瀵煎嚭鎶ュ憡</el-button>
+ <el-button class="rightBtn" type="primary" icon="el-icon-document"
+ >瀵煎嚭鎶ュ憡</el-button
+ >
</el-form>
</div>
<div class="library-table">
@@ -26,77 +42,123 @@
<el-radio-button>鍏ㄩ儴</el-radio-button>
<el-radio-button label="0">寰呮彁浜�</el-radio-button>
<el-radio-button label="1">寰呭鏍�</el-radio-button>
- <el-radio-button label="2">宸插鏍�</el-radio-button>
+ <el-radio-button label="2">寰呯瀛�</el-radio-button>
+ <el-radio-button label="3">宸插畬鎴�</el-radio-button>
</el-radio-group>
+
+ <el-checkbox v-model="checked" style="margin-left: 20px"
+ >浠呯湅鎴戠殑</el-checkbox
+ >
</div>
</div>
+ <el-dialog
+ top="10vh"
+ title="鎶ュ憡棰勮"
+ :visible.sync="dialogVisible"
+ width="60%">
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="printFun()">鎵撳嵃</el-button>
+ </span>
+ <div class="printStyle">
+ <Preview id="printRaw" :reportData="reportData" v-if="reportType===0"></Preview>
+ <TestReport id="printFinished" :reportData="reportData" v-else></TestReport>
+ </div>
+ </el-dialog>
<div class="table-box">
<el-table
ref="reportTable"
:max-height="800"
- :cell-style="{textAlign: 'center'}"
- :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
+ :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{
+ border: '0px',
+ background: '#f5f7fa',
+ color: '#606266',
+ boxShadow: 'inset 0 1px 0 #ebeef5',
+ textAlign: 'center',
+ }"
:data="reportTable"
style="width: 100%"
>
- <el-table-column
- type="selection"
- label=""
- min-width="5%"
- />
+ <el-table-column type="selection" label="" min-width="5%" />
<el-table-column
prop="materialCode"
label="鏍峰搧缂栧彿"
sortable
min-width="10%"
- />
+ >
+ <template slot-scope="scope">
+ <span style="color: #409eff;">
+ {{ scope.row.materialCode }}
+ </span>
+ </template></el-table-column
+ >
<el-table-column
prop="reportCode"
label="鎶ュ憡鍗曞彿"
sortable
min-width="10%"
- />
+ >
+ <template slot-scope="scope">
+ <span style="color: #409eff;">
+ {{ scope.row.reportCode }}
+ </span>
+ </template></el-table-column
+ >
<el-table-column
prop="inspectionCode"
label="鐢宠鍗曞彿"
sortable
min-width="10%"
- />
- <el-table-column
- prop="approver"
- label="瀹℃壒浜�"
- min-width="5%"
- />
- <el-table-column
- prop="status"
- label="瀹℃壒鐘舵��"
- min-width="8%"
>
+ <template slot-scope="scope">
+ <span style="color: #409eff;">
+ {{ scope.row.inspectionCode }}
+ </span>
+ </template></el-table-column
+ >
+ <el-table-column prop="approver" label="瀹℃壒浜�" min-width="8%">
<template slot-scope="scope">
<span>
- <el-tag type="info">{{ scope.row.status == 0 ? '寰呮彁浜�' :
- scope.row.status == 1 ? '寰呭鏍�' :
- scope.row.status == 2 ? '浠g瀛�' :'宸插畬鎴�' }}</el-tag>
+ <el-tag v-if="scope.row.approver!=null && scope.row.approver!=''" type="info" icon="el-icon-user">
+ <i class="el-icon-user">{{ scope.row.approver }}</i>
+ </el-tag>
</span>
- </template></el-table-column>
- <el-table-column
- prop="conclusion"
- label="妫�楠岀粨璁�"
- min-width="10%"
- />
- <el-table-column
- prop="name"
- label="缂栧埗浜�"
- min-width="8%"
- />
- <el-table-column
- label="鎿嶄綔"
- min-width="8%"
- >
+ </template>
+ </el-table-column>
+ <el-table-column prop="status" label="瀹℃壒鐘舵��" min-width="8%">
<template slot-scope="scope">
- <el-button type="text" size="small" @click="handleClick(scope.row)">棰勮</el-button>
- <el-button type="text" size="small">鎵撳嵃</el-button>
+ <span>
+ <el-tag type="info">{{
+ scope.row.status == 0
+ ? "寰呮彁浜�"
+ : scope.row.status == 1
+ ? "寰呭鏍�"
+ : scope.row.status == 2
+ ? "浠g瀛�"
+ : "宸插畬鎴�"
+ }}</el-tag>
+ </span>
+ </template></el-table-column
+ >
+ <el-table-column prop="conclusion" label="妫�楠岀粨璁�" min-width="8%" />
+ <el-table-column prop="name" label="缂栧埗浜�" min-width="8%">
+ <template slot-scope="scope">
+ <span>
+ <el-tag type="info" icon="el-icon-user">
+ <i class="el-icon-user">{{ scope.row.name }}</i>
+ </el-tag>
+ </span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" min-width="8%">
+ <template slot-scope="scope">
+ <el-button
+ type="text"
+ size="small"
+ @click="previewFun(scope.row)"
+ >鏌ョ湅鎶ュ憡</el-button
+ >
</template>
</el-table-column>
</el-table>
@@ -118,100 +180,183 @@
</template>
<script>
-import { selectAllReport } from '@/api/experiment/checkTheReport'
+import { selectAllReport,getReportData } from "@/api/experiment/checkTheReport";
+import Preview from "@/components/experiment/checkTheReport/index.vue";
+import TestReport from "@/components/experiment/template_testReport/index.vue"
+import PrintJS from 'print-js'
export default {
data() {
return {
- input: '',
+ reportData: [],
+ reportType: 0,
+ searchData:{
+ sample_code:'',
+ reportCode:'',
+ application_code: ''
+ },
checkStatus: undefined,
- reportTable: [],
+ reportTable: [
+ {
+ materialCode:'SN23-0517001',
+ reportCode: 'SN23-0517001',
+ inspectionCode: 'SN23-0517001',
+ approver:'榛勫皬鏄�',
+ status: '',
+ conclusion: 1,
+ name: '榛勫皬鏄�'
+ },
+ {
+ materialCode:'SN23-0517001',
+ reportCode: 'SN23-0517001',
+ inspectionCode: 'SN23-0517001',
+ approver:'榛勫皬鏄�',
+ status: '',
+ conclusion: 1,
+ name: '榛勫皬鏄�'
+ }
+ ],
page: 1,
total: 0,
- pageSize: 10
- }
+ pageSize: 10,
+ checked: true,
+ dialogVisible: false,
+ };
},
created() {
- this.getData()
+ // this.getData();
+ },
+ mounted(){
+ },
+ components:{
+ Preview,
+ TestReport
},
methods: {
+ async queryReportByRCode(code){
+ const resp = await getReportData({code:code});
+ this.reportData = resp.data;
+ this.dialogVisible = true;
+ console.log(this.reportData);
+ },
+ //鏌ョ湅鎶ュ憡鎸夐挳
+ previewFun(row){
+ console.log(row)
+ this.reportType = row.type;
+ this.queryReportByRCode(row.reportCode);
+ },
+ //鎵撳嵃鎸夐挳
+ printFun(){
+ this.dialogVisible = false;
+ PrintJS({
+ printable: this.reportType===0 ? "printRaw" : "printFinished",
+ type: "html",
+ // header: "鍘熸潗鏂欐娴嬫姤鍛�",
+ targetStyles: ["*"],
+ ignoreElements: ["no-ignore"],
+ });
+ },
// 鐘舵�佹寜閽�
handleRadioChange() {
- this.getData()
+ this.getData();
},
// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
handleSizeChange(val) {
- console.log(`姣忛〉 ${val} 鏉)
- this.pageSize = val
- this.getData()
+ console.log(`姣忛〉 ${val} 鏉);
+ this.pageSize = val;
+ this.getData();
},
// 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
handleCurrentChange(val) {
- console.log(`褰撳墠椤�: ${val}`)
- this.page = val
- this.getData()
+ console.log(`褰撳墠椤�: ${val}`);
+ this.page = val;
+ this.getData();
},
// 閲嶇疆鎸夐挳
resetData() {
- this.input = undefined
- this.page = 1
- this.pageSize = 10
- this.checkStatus = undefined
- this.getData()
+ this.searchData={
+ sample_code:'',
+ reportCode:'',
+ application_code: ''
+ },
+ this.page = 1;
+ this.pageSize = 10;
+ this.checkStatus = undefined;
+ this.getData();
},
// 鏌ヨ鍒楄〃
async getData() {
const params = {
page: this.page,
pageSize: this.pageSize,
- name: this.input ? this.input : undefined,
- status: this.checkStatus ? this.checkStatus : undefined
- }
- const { data } = await selectAllReport(params)
- this.reportTable = data.row
- this.total = data.total
- }
- }
-}
+ name: this.searchData.sample_code ? this.searchData.sample_code : undefined,
+ status: this.checkStatus ? this.checkStatus : undefined,
+ };
+ const { data } = await selectAllReport(params);
+ this.reportTable = data.row;
+ console.log(data.row);
+ this.total = data.total;
+ },
+ },
+};
</script>
<style lang="scss" scoped>
-.top-bar{
- margin: -25px -15px;
- background: #fff;
+.top-bar {
+ margin: -25px -15px;
+ background: #fff;
+ display: flex;
+ justify-content: space-between;
+ padding: 5px 24px 0px 24px;
+ .input-form {
+ width: 250px;
+ margin-right: 30px;
+ }
+ .el-dropdown-link {
+ cursor: pointer;
+ color: #409eff;
+ }
+ .el-icon-arrow-down {
+ font-size: 12px;
+ }
+}
+.library-table {
+ height: 80vh;
+ overflow: scroll;
+ background-color: #fff;
+ flex: 1;
+ margin: 0px -15px;
+ margin-top: 40px;
+ display: flex;
+ flex-direction: column;
+ .table-header {
+ padding: 20px;
display: flex;
justify-content: space-between;
- padding: 5px 24px 0px 24px;
- .input-form {
- width: 800px;
+ .el-form-item {
+ margin-bottom: 30px !important;
}
-}
-.library-table{
- background-color: #fff;
- flex: 1;
- margin: 0px -15px;
- margin-top: 40px;
+ }
+ .table-box {
+ padding: 0px 20px;
+ margin-top: 0px;
+ flex: 1;
+ background: #fff;
+ display: flex;
+ flex-direction: column;
+ > div:nth-child(2) {
display: flex;
- flex-direction: column;
- .table-header{
- padding: 20px;
- display: flex;
- justify-content: space-between;
- .el-form-item{
- margin-bottom: 30px !important;
- }
- }
- .table-box{
- padding: 0px 20px;
- margin-top: 0px;
- flex: 1;
- background: #fff;
- display: flex;
- flex-direction: column;
- >div:nth-child(2){
- display: flex;
- justify-content: end;
- margin: 10px 0;
- }
- }
+ justify-content: end;
+ margin: 10px 0;
}
+ }
+ .printStyle{
+ overflow: scroll;
+ height:500px;
+ .el-button{
+ position: absolute;
+ top: 10vh;
+ left: 90%;
+ }
+ }
+}
</style>
--
Gitblit v1.9.3