Browse Source

0412 新看板

master
ruanqi 3 years ago
parent
commit
1848ee6b75
  1. 2
      src/api/production/generateReport.js
  2. 131
      src/views/modules/board/sopBoard.vue
  3. 214
      src/views/modules/board/sopBoard_old.vue
  4. 6
      src/views/modules/print/print_Abnormal_label.js
  5. 27
      src/views/modules/production/generateReport.vue

2
src/api/production/generateReport.js

@ -46,3 +46,5 @@ export const cancelSfdc= data => createAPI(`dailyPlan/cancelSfdc`, 'post', data)
export const getLiuHuaPrintData= data => createAPI(`dailyPlan/getLiuHuaPrintData`, 'post', data);
export const getTvList=data => createAPI(`dailyPlan/getTvList`, 'post', data)

131
src/views/modules/board/sopBoard.vue

@ -4,26 +4,28 @@
<h1 style="color: white">SOP指导书 当前派工单|{{seqNo}}</h1>
</div>
<div class="pdf-wrapper" ref="pdfWrapper">
<pdf ref="pdfViewer"
:src="sopUrl"
:page="sopPage"
@num-pages="setSopPages"
@page-loaded="setPageLoaded"
class="pdf-document"
<img style="max-width: 100%;max-height: 100%;vertical-align:middle;" :src="sopUrl">
<!-- <pdf ref="pdfViewer"-->
<!-- :src="sopUrl"-->
<!-- :page="sopPage"-->
<!-- @num-pages="setSopPages"-->
<!-- @page-loaded="setPageLoaded"-->
<!-- class="pdf-document"-->
></pdf>
<!-- ></pdf>-->
</div>
<div class="pdfMenu" >
<h1 style="color: white">不良指导书 当前操作员|{{operator}}</h1>
<h1 style="color: white">SQC指导书 当前操作员|{{operator}}</h1>
</div>
<div class="pdf-wrapper" ref="pdfWrapper">
<pdf ref="pdfViewer"
:src="badUrl"
:page="badPage"
@num-pages="setBadPages"
@page-loaded="setPageLoaded"
class="pdf-document"
></pdf>
<img style="max-width: 100%;max-height: 100%;vertical-align:middle;" :src="badUrl">
<!-- <pdf ref="pdfViewer"-->
<!-- :src="badUrl"-->
<!-- :page="badPage"-->
<!-- @num-pages="setBadPages"-->
<!-- @page-loaded="setPageLoaded"-->
<!-- class="pdf-document"-->
<!-- ></pdf>-->
</div>
@ -37,12 +39,9 @@
import {
getSopAddress,
} from '@/api/board.js'
import pdf from 'vue-pdf'
export default {
name: 'sopBoard',
components: {
pdf
},
data () {
return {
@ -61,71 +60,84 @@
// rollPx: 1,
sopUrl: '',
badUrl: '',
sopList:[],
badList:[],
pageLoaded: false,
timeOut:30000,
// packageUrl:'http://192.168.1.130/upload/',
packageUrl:'http://192.168.2.172/sopFile/',
// packageUrl:'http://192.168.1.83:81/upload/',
// packageUrl:'http://192.168.2.172/sopFile/',
packageUrl:'http://192.168.1.83:81/upload/',
}
},
mounted () {
this.$nextTick(() => {
this.changePdf();
this.changePage();
this.getPDF();
});
this.changePdf();
this.changePage();
this.getPDF();
},
methods: {
setSopPages(numPages) {
this.sopMax = numPages
},
setBadPages(numPages) {
this.badMax = numPages
},
setPageLoaded() {
this.pageLoaded = true
},
changePage() {
refresher = setInterval(() => {
if(this.sopPage==this.sopMax){
this.sopPage=1;
}else {
this.sopPage=Number(this.sopPage)+1
}
if(this.badPage==this.badMax){
this.badPage=1;
}else {
this.badPage=Number(this.badPage)+1
}
}, this.timeOut)
},
changePdf() {
refresher = setInterval(() => {
this.getPDF();
}, 30000)
},
changePage() {
refresher = setInterval(() => {
this.changePic()
}, 30000)
// }, this.timeOut)
},
changePic(){
if(this.sopPage==this.sopMax){
this.sopPage=1;
}else {
this.sopPage=Number(this.sopPage)+1
}
this.sopUrl=this.packageUrl+this.sopList[this.sopPage-1].attaFileNameDb;
if(this.badPage==this.badMax){
this.badPage=1;
}else {
this.badPage=Number(this.badPage)+1
}
this.badUrl=this.packageUrl+this.badList[this.badPage-1].attaFileNameDb;
},
getPDF(){
let data={
tvId: this.tvId
}
getSopAddress(data).then(({data}) => {
if(data.code==0){
if(this.sopUrl!=this.packageUrl+data.data.sopAddress){
this.sopUrl=this.packageUrl+data.data.sopAddress;
if(data.data.nowSeqNo==null||data.data.nowSeqNo==''){
this.sopUrl='';
this.badUrl='';
this.sopList=[];
this.badList=[];
this.seqNo='无';
this.operator='无';
}else if(this.seqNo!=data.data.nowSeqNo) {
this.sopUrl='';
this.badUrl='';
this.operator = data.data.nowOperator;
this.seqNo = data.data.nowSeqNo;
this.sopList=data.sop;
this.badList=data.bad;
this.sopPage=1;
}
if(this.badUrl!=this.packageUrl+data.data.badAddress){
this.badUrl=this.packageUrl+data.data.badAddress;
this.badPage=1;
this.sopMax=data.sop.length;
this.badMax=data.bad.length;
if(data.sop.length>0){
this.sopUrl=this.packageUrl+data.sop[0].attaFileNameDb;
}
if(data.bad.length>0){
this.badUrl=this.packageUrl+data.bad[0].attaFileNameDb;
}
}
console.log(this.sopUrl)
this.operator=data.data.nowOperator;
this.seqNo=data.data.nowSeqNo;
console.log( this.sopUrl)
console.log( this.badUrl)
}else {
this.sopUrl='';
this.badUrl='';
this.sopList=[];
this.badList=[];
this.seqNo='无';
this.operator='无';
}
@ -163,6 +175,7 @@
background: #ffff00;
}
.container {
font-size: 13px;
position: fixed;
top: 0;
left: 0;

214
src/views/modules/board/sopBoard_old.vue

@ -0,0 +1,214 @@
<template>
<div class="mod-config container ">
<div class="pdfMenu" >
<h1 style="color: white">SOP指导书 当前派工单|{{seqNo}}</h1>
</div>
<div class="pdf-wrapper" ref="pdfWrapper">
<pdf ref="pdfViewer"
:src="sopUrl"
:page="sopPage"
@num-pages="setSopPages"
@page-loaded="setPageLoaded"
class="pdf-document"
></pdf>
</div>
<div class="pdfMenu" >
<h1 style="color: white">SQC指导书 当前操作员|{{operator}}</h1>
</div>
<div class="pdf-wrapper" ref="pdfWrapper">
<pdf ref="pdfViewer"
:src="badUrl"
:page="badPage"
@num-pages="setBadPages"
@page-loaded="setPageLoaded"
class="pdf-document"
></pdf>
</div>
</div>
</template>
<script>
let rollstop = ''
let rolltimer = ''//
let refresher = '' //
import {
getSopAddress,
} from '@/api/board.js'
import pdf from 'vue-pdf'
export default {
name: 'sopBoard',
components: {
pdf
},
data () {
return {
tvId:this.$route.query.ip?this.$route.query.ip:'TV001',
operator:'',
seqNo:'',
sopMax: 1,
sopPage: 1,
badMax: 1,
badPage: 1,
height: 200,
tableData: [],
//
// refreshTime: 5,
// rollTime: 5,
// rollPx: 1,
sopUrl: '',
badUrl: '',
pageLoaded: false,
timeOut:30000,
// packageUrl:'http://192.168.1.130/upload/',
packageUrl:'http://192.168.2.172/sopFile/',
// packageUrl:'http://192.168.1.83:81/upload/',
}
},
mounted () {
this.$nextTick(() => {
this.changePdf();
this.changePage();
this.getPDF();
});
},
methods: {
setSopPages(numPages) {
this.sopMax = numPages
},
setBadPages(numPages) {
this.badMax = numPages
},
setPageLoaded() {
this.pageLoaded = true
},
changePage() {
refresher = setInterval(() => {
if(this.sopPage==this.sopMax){
this.sopPage=1;
}else {
this.sopPage=Number(this.sopPage)+1
}
if(this.badPage==this.badMax){
this.badPage=1;
}else {
this.badPage=Number(this.badPage)+1
}
}, this.timeOut)
},
changePdf() {
refresher = setInterval(() => {
this.getPDF();
}, 30000)
},
getPDF(){
let data={
tvId: this.tvId
}
getSopAddress(data).then(({data}) => {
if(data.code==0){
if(this.sopUrl!=this.packageUrl+data.data.sopAddress){
this.sopUrl=this.packageUrl+data.data.sopAddress;
this.sopPage=1;
}
if(this.badUrl!=this.packageUrl+data.data.badAddress){
this.badUrl=this.packageUrl+data.data.badAddress;
this.badPage=1;
}
console.log(this.sopUrl)
this.operator=data.data.nowOperator;
this.seqNo=data.data.nowSeqNo;
}else {
this.sopUrl='';
this.badUrl='';
this.seqNo='无';
this.operator='无';
}
})
}
},
created () {
// this.search()
// this.refreshTable()
}
}
</script>
<style >
.board2 .el-table .cell {
line-height: 13px;
font-size: 12px;
height: 13px;
padding: 0px;
}
.board2 .el-table .green {
background: #8cee8c;
}
.board2 .el-table .success-row {
background: #1bb61b;
}
.board2 .el-table .false-row {
/*background: #cbcb14;*/
background: #db1212;
}
.board2 .el-table .yellow-row{
background: #ffff00;
}
.container {
font-size: 13px;
position: fixed;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
content: "";
background-image: url(~@/assets/img/factory.jpg);
background-size: cover;
}
.pdf-container {
position: relative;
width: 100%;
height: 100%;
}
.pdf-wrapper {
position: relative;
width: 43%;
height: 100%;
float: left;
margin-top: 0%;
margin-left: 0%;
overflow: hidden;
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
.pdf-document {
transform-origin: center;
width: 100%;
height: 100%;
}
.pdfMenu {
width: 7%;
height: 100%;
float: left;
writing-mode: vertical-lr; /* 竖排显示,从左到右 */
text-orientation: upright; /* 竖排文字方向为正常朝向 */
display: flex; /* 使用 Flex 布局 */
align-items: center; /* 垂直居中对齐 */
}
.vertical-text {
writing-mode: vertical-lr; /* 竖排显示,从左到右 */
text-orientation: upright; /* 竖排文字方向为正常朝向 */
}
</style>

6
src/views/modules/print/print_Abnormal_label.js

@ -61,8 +61,8 @@ export function printABLabel(printList) {
LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_LINE(218,2,217,374,0,1);
LODOP.ADD_PRINT_TEXT(12,122,135,30,"异常情况通知单");
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
LODOP.ADD_PRINT_TEXT(9,120,162,30,"异常情况通知单");
LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(194,266,110,25,"工厂编码:"+printData.site);
@ -72,7 +72,7 @@ export function printABLabel(printList) {
LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(43,253,100,20,"异常原因:");
LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(68,253,120,63,printData.abnormalDesc);
LODOP.SET_PRINT_STYLEA(0,"FontSize",10);

27
src/views/modules/production/generateReport.vue

@ -265,7 +265,19 @@
<el-dialog title="开始派工单" :close-on-click-modal="false" v-drag :visible.sync="startModalFlag" width="215px">
<el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent>
<el-form-item :label="'派工单号:'">
<el-input v-model="scanSeqNo" ref="start" type="number" style="width: 130px;" @keyup.enter.native="startSeqNo()"></el-input>
<el-input v-model="scanSeqNo" ref="start" type="number" style="width: 130px;" ></el-input>
</el-form-item>
<el-form-item label="工位:" >
<el-select v-model="tvId" style="width: 130px">
<el-option label="无" value="" ></el-option>
<el-option
v-for="(item,index) in tvList"
:key="index"
:label="item.tvId+'-'+item.workStation"
:value="item.tvId"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
@ -539,6 +551,7 @@
startSeqNo,
stopWork,
continueWork,
getTvList,
} from '@/api/production/generateReport.js'
import Chooselist from '@/views/modules/common/Chooselist'
import {
@ -569,6 +582,8 @@
approveFlag:false,
abnormalList:[],
moQty:'',
tvList:[],
tvId:'',
saveHeaderData: {
wasteWeight:0,
printQty:'',
@ -966,6 +981,7 @@
},
openStart(){
this.scanSeqNo='';
this.tvId='';
this.startModalFlag=true;
this.$nextTick(() => { this.$refs.start.focus();})
},
@ -1201,7 +1217,7 @@
let inData={
username:this.$store.state.user.name,
seqNo:this.scanSeqNo,
tvId:this.tvId,
}
startSeqNo(inData).then(({data}) => {
if (data && data.code === 0) {
@ -1287,9 +1303,14 @@
}
})
},
searchAllTV(){
getTvList().then(({data}) => {
this.tvList = data.rows;
})
},
},
created () {
this.searchAllTV();
}
}
</script>

Loading…
Cancel
Save