From 47d35088a4314f0f3afa284973874b9da9e1cb4d Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期三, 22 十一月 2023 10:13:20 +0800
Subject: [PATCH] modified: src/views/quality/teststandard/standard-form.vue
---
src/views/quality/rawMaterial/index.vue | 131 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 118 insertions(+), 13 deletions(-)
diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue
index ae5e1c2..b5ba1b6 100644
--- a/src/views/quality/rawMaterial/index.vue
+++ b/src/views/quality/rawMaterial/index.vue
@@ -19,12 +19,16 @@
<basic-container>
<ttable
:table="table"
+ :resultData="resultData"
@handleSelectionChange="handleSelectionChange"
:prelang="prelang"
:options="options"
:ajaxFun="ajaxFun"
+ @queryParam="getQueryParam($event)"
ref="rawMaterialTable">
- <template #toolbar></template>
+ <template #toolbar>
+ <el-button @click="exportRawMaterial" type="primary" >瀵煎嚭</el-button>
+ </template>
</ttable>
</basic-container>
<!-- 寮圭獥, 鏂板 / 淇敼 -->
@@ -33,18 +37,36 @@
ref="addOrUpdate"
@refreshDataList="getData"
></RawMaterialForm>
+ <el-dialog
+ top="10vh"
+ title="鎵撳嵃棰勮"
+ :visible.sync="printDialogVisible"
+ width="60%">
+ <div style="width:100%;height: 60vh;overflow-y: scroll;">
+ <printTemplate id="printRaw" :formData="printFormData"></printTemplate>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="()=>{printDialogVisible = false;this.printFormData=null}">鍙� 娑�</el-button>
+ <el-button type="primary" @click="printFun()">鎵� 鍗�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
-
<script>
import ttable from '@/views/common/ztt-table.vue'
-import { getRawInspectList,delObj } from '@/api/quality/rawMaterial'
+import { getRawInspectList,delObj,exportRawMaterial,getObj } from '@/api/quality/rawMaterial'
import RawMaterialForm from './rawMaterial-form'
import * as fecha from 'element-ui/lib/utils/date'
import { mapGetters } from 'vuex'
+import PrintJS from 'print-js'
+import printTemplate from './rawMaterial-print.vue'
export default {
data() {
return {
+ printFormData: null,
+ printDialogVisible: false,
+ queryParam: {},
+ resultData:[],
addOrUpdateVisible: false,
type: [1],
prelang: 'rawMaterial',
@@ -61,7 +83,7 @@
isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H
isSearch: true, // 楂樼骇鏌ヨ鎸夐挳
- defaultOrderBy: { column: 'formTime', direction: 'desc' },
+ defaultOrderBy: { column: 'createTime', direction: 'desc' },
},
table: {
total: 0,
@@ -78,6 +100,14 @@
isSearch: true,
searchInfoType: 'text',
render: { fun: this.addOrUpdateHandle }
+ },
+ {
+ minWidth: '120',
+ prop: 'projectName',
+ label: '椤圭洰鍚嶇О',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
},
{
minWidth: '120',
@@ -127,6 +157,7 @@
prop: 'createTime',
label: '鎶ユ鏃ユ湡',
isTrue: true,
+ sort: true,
isSearch: true,
searchInfoType: 'text',
formatter: this.formatDateTime,
@@ -166,8 +197,11 @@
label: '鍚堟牸鐘舵��',
isTrue: true,
isSearch: true,
- searchInfoType: 'text',
+ searchInfoType: 'select',
formatter: this.formatJudgeState,
+ optList: () => {
+ return this.StateList
+ }
},
],
toolbar: [
@@ -175,16 +209,21 @@
text: '鏂板',
type: 'primary',
fun: this.addOrUpdateHandle
- },
- {
- text: '瀵煎嚭',
- }
- ],
+ }],
operator: [{
text: '鎵撳嵃',
type: 'text',
size: 'small',
- },{
+ fun: this.previewFun,
+ show: {
+ val: [
+ '1',
+ '0'
+ ],
+ key: 'judgeState'
+ }
+ },
+ {
text: '浣滃簾',
type: 'text',
size: 'small',
@@ -197,19 +236,80 @@
minWidth: 100
},
},
- insStateList: [{label:'鍏ㄩ儴',value:''},{label:'宸叉娴�',value:'1'},{label:'鏈娴�',value:'0'}]
+ insStateList: [{label:'鍏ㄩ儴',value:''},{label:'宸叉娴�',value:'1'},{label:'鏈娴�',value:'0'}],
+ StateList: [{label:'鍏ㄩ儴',value:''},{label:'宸插悎鏍�',value:'1'},{label:'涓嶅悎鏍�',value:'0'}],
}
},
components: {
ttable,
RawMaterialForm,
+ printTemplate,
},
created() {
+
},
computed: {
...mapGetters(['permissions'])
},
+ watch:{
+ printFormData(newVal){
+ if(newVal){
+ this.printFormData = newVal
+ }
+ }
+ },
methods:{
+ //鏌ョ湅鎶ュ憡鎸夐挳
+ previewFun(row){
+ getObj(row.id).then(res=>{
+ this.printFormData = res.data.data
+ this.printDialogVisible = true
+ }).catch(error=>{
+ console.log(error);
+ })
+ },
+ //鎵撳嵃鎸夐挳
+ printFun() {
+ this.printDialogVisible = false;
+ PrintJS({
+ printable: "printRaw",
+ type: "html",
+ maxWidth: 880,
+ // header: "鍘熸潗鏂欐娴嬫姤鍛�",
+ style: '@page {margin: 10mm 5mm;}',
+ targetStyles: ["*"],
+ ignoreElements: ["no-ignore"],
+ orientation: 'portrait'
+ });
+ },
+ getQueryParam(data){
+ this.queryParam = data
+ },
+ exportRawMaterial(){
+ exportRawMaterial(this.queryParam).then(res=>{
+ console.log(res)
+ this.downloadFun(res)
+ }).catch(error=>{
+ console.log(error);
+ })
+ },
+ downloadFun(result){
+ if(result == null || result == undefined){
+ return;
+ }
+ var nameList = result.headers['content-disposition'];
+ nameList = decodeURI(nameList);
+ var fileName = nameList.split('=')[1];
+ const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
+ const downloadElement = document.createElement('a') // 鏂板缓涓�涓狣OM鑺傜偣
+ const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺�
+ downloadElement.href = href
+ downloadElement.download = fileName // 涓嬭浇鍚庢枃浠跺悕
+ document.body.appendChild(downloadElement) // 灏嗘柊澧炵殑鑺傜偣鎸傝浇鍒伴〉闈笂
+ downloadElement.click() // 鐐瑰嚮涓嬭浇
+ document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌
+ window.URL.revokeObjectURL(href)
+ },
// 鍒犻櫎
deleteHandle(row) {
this.$confirm('鏄惁纭鍒犻櫎璇ユ暟鎹細' + row.code , '鎻愮ず', {
@@ -231,9 +331,13 @@
},
// 鏂板 / 淇敼
addOrUpdateHandle(row) {
+ console.log(row);
this.$router.push({
name: 'rawMaterialForm',
- query: { id: row == null ? null : row.id }
+ query: {
+ id: row == null ? null : row.id,
+ resultVal: row == null ? null : row.judgeState
+ }
})
},
formatInsState(row, column, cellValue){
@@ -257,6 +361,7 @@
},
getData() {
this.$refs.rawMaterialTable.getDataList()
+
},
// table鑷甫浜嬩欢
handleSelectionChange(val) {
--
Gitblit v1.9.3