Browse Source

新包装,缺陷数据采集,拆包功能

pull/132/head
wangxy 3 years ago
parent
commit
dc97bdd733
5 changed files with 204 additions and 36 deletions
  1. +9
    -0
      src/api/quality/pkg.js
  2. +72
    -0
      src/views/quality/component/unpack.vue
  3. +39
    -29
      src/views/quality/defectdata.vue
  4. +14
    -7
      src/views/quality/pkg.vue
  5. +70
    -0
      src/views/quality/pkgDefeck.vue

+ 9
- 0
src/api/quality/pkg.js View File

@ -85,3 +85,12 @@ export function getQueryList (query) {
})
}
//拆除包装
export function demolitionPkg (data) {
return request({
url: `/admin/log/packorder/splitpackorderitem`,
method: 'get',
params: data
})
}

+ 72
- 0
src/views/quality/component/unpack.vue View File

@ -0,0 +1,72 @@
<template>
<el-dialog
class="un-pack-container"
title="拆除包装"
width="600px"
:close-on-click-modal="false"
:visible.sync="currentVisible"
@close="cancel">
<div>
<el-input maxlength="50"
ref="pkgInput"
v-model="pkgNum"
placeholder="条码"
style="width:400px;"
autofocus></el-input>
<el-button type="primary" @click="submitLogin" class="confirm-pkgnum-button">确定</el-button>
</div>
<div slot="footer" class="dialog-footer">
<el-button class="confirm-btn" @click="cancel"> </el-button>
</div>
</el-dialog>
</template>
<script>
import * as api from '@/api/quality/pkg.js'
export default {
props: {
isVisible: {
default: false,
}
},
data() {
return {
currentVisible: this.isVisible,
pkgNum: ''
}
},
methods: {
cancel() {
this.$emit('completeCallBack', false)
},
submitLogin() {
if (!this.pkgNum) {
this.msgError("请先录入条码")
return
}
let params = {
packOrderId: this.pkgNum
}
this.$confirm('是否确认拆除该条码?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
return api.demolitionPkg(params)
}).then(() => {
this.msgSuccess('拆包成功')
}).catch(() => {})
}
},
}
</script>
<style lang="scss" scoped>
.un-pack-container {
.confirm-pkgnum-button {
background: #0A708F;
width: 100px;
margin-bottom: 50px;
}
}
</style>

+ 39
- 29
src/views/quality/defectdata.vue View File

@ -1,7 +1,17 @@
<template>
<div class="defectdata-container" v-loading="loading">
<permiss-login @getLoginMessage="getLoginMessage" :isShowRepair="isShowRepair" />
<div class="up" v-show="isLoginVisible">
<div style="height: 50px;">
<span>工位</span>
<el-select v-model="WorkPlaceNr" filterable placeholder="请选择">
<el-option
v-for="item in stationArray"
:key="item['WorkPlace-WorkPlaceNr']"
:label="item['WorkPlace-Descr']"
:value="item['WorkPlace-WorkPlaceNr']"
/>
</el-select>
</div>
<div class="up">
<div class="up-left">
<div class="up-left-up">
<div class="title">
@ -89,7 +99,7 @@
</div>
</div>
</div>
<div class="down" v-show="isLoginVisible">
<div class="down">
<div class="down-left">
<el-row :gutter="20">
<el-col :span="24">
@ -141,6 +151,7 @@
</template>
<script>
import * as api from '@/api/quality/defectdata.js'
import { getWorkplaceList } from '@/api/system/station'
import { codeparser } from '@/api/quality/pkg.js'
import permissLogin from './component/login'
export default {
@ -167,22 +178,21 @@ export default {
viewBlock: {},
errorPoints: [],
loading: false,
isLoginVisible: false, //
isShowRepair: false, //
form:{}
form:{},
SerialorderId: '',
stationArray: [], //
WorkPlaceNr: '',
}
},
created() {
this.codeparser()
getWorkplaceList(this.queryParams).then(({code, data = []}) => {
if (code === 200) {
this.stationArray = data
}
})
},
methods: {
getLoginMessage({form, actPosItem, isLoginSuccess}) {
this.form={
...form,
actPosItem:actPosItem
};
this.isLoginVisible = isLoginSuccess
},
getViewsofarticle() {
api.getViewsofarticle([this.code]).then((res) => {
this.seeImgs = res.data
@ -325,10 +335,14 @@ export default {
},
//
submitError() {
if (!this.WorkPlaceNr) {
this.msgError("请先选择工位")
return
}
api.insertDefectrecord({
"QM_SerialOrderRuting-PlantNr": this.form['Person-PlantNr'],
    "QM_SerialOrderRuting-SerialorderId": this.form.SerialorderId,
    "QM_SerialOrderRuting-WorkPlaceNr": this.form.actPosItem,
// "QM_SerialOrderRuting-PlantNr": this.form['Person-PlantNr'],
    "QM_SerialOrderRuting-SerialorderId": this.SerialorderId,
    "QM_SerialOrderRuting-WorkPlaceNr": this.WorkPlaceNr,
'QM_SerialOrderRuting-DefectRecord':this.errorList
})
.then((res) => {
@ -362,7 +376,12 @@ export default {
//
enterPress(e) {
let code = e.target.value.trim();
this.form.SerialorderId=code;
if (code === 'one') {
this.$emit('handleActiveNameTwo', code)
this.code = ''
return
}
this.SerialorderId = code
let ruleCode = this.codeRules.filter(
(code) => code['CodeParser-ParserId'] == 'PackOrder'
)[0]
@ -430,12 +449,11 @@ export default {
<style lang="scss" scoped>
.defectdata-container {
width: 100%;
height: calc(100vh - 80px);
height: calc(100vh - 135px);
display: flex;
flex-direction: column;
padding: 16px;
padding: 10px;
box-sizing: border-box;
margin-top: 29px;
background: #f5f7fc;
.title {
width: calc(100% - 48px);
@ -466,7 +484,7 @@ export default {
}
.up {
width: 100%;
height: calc(100% - 16px - 100px - 80px);
height: calc(100% - 16px - 80px);
display: flex;
flex-direction: row;
margin-bottom: 16px;
@ -572,16 +590,11 @@ export default {
width: 100%;
height: calc(100% - 56px);
background: #f5f7fc;
// padding: 24px;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
position: relative;
// img {
// width: 600px;
// height: 400px;
// }
.coord-circle {
position: absolute;
z-index: 1;
@ -598,11 +611,8 @@ export default {
height: 100px;
display: flex;
flex-direction: row;
// padding: 16px 24px;
// box-sizing: border-box;
.down-left,
.down-right {
// width: calc((100% - 16px) / 2);
height: 100%;
background: #fff;
padding: 16px;


+ 14
- 7
src/views/quality/pkg.vue View File

@ -90,6 +90,7 @@
<script>
import * as api from '@/api/quality/pkg.js'
export default {
name: 'pkg',
data() {
return {
tableData: [], //
@ -196,6 +197,12 @@ export default {
})
},
enterPress(e) { //
// twotab
if (e.target.value === 'two') {
this.$emit('handleActiveNameOne', e.target.value)
this.pkgNum = ''
return
}
let code = this.getRuleCode(e.target.value)
if (this.activePkg.length) { //
this.checkPackOrder(code)
@ -359,16 +366,16 @@ export default {
}
.pkg-container {
width: 100%;
height: 100%;
height: calc(100% - 85px);
background: #F5F7FC;
margin-top: 32px;
// margin-top: 32px;
.pck-list-container { //
display: flex;
width: 100%;
.pkg-list-left { //
padding: 10px;
padding: 10px 10px 0 10px;
width: 25%;
height: calc(65vh);
height: calc(65vh - 10px);
.pkg-list-info {
background: #fff;
padding-bottom: 10px;
@ -440,8 +447,8 @@ export default {
}
.pkg-footer { //
display:flex;
height: calc(35vh - 82px);
padding: 0 10px 10px 10px;
height: calc(35vh - 135px);
padding: 0 10px 0px 10px;
.pkg-footer-left { //
margin: 10px 10px 10px 0;
width:50%;
@ -462,7 +469,7 @@ export default {
}
}
.pkg-footer-right { //
margin: 10px 10px 10px 0;
margin: 10px 0px 10px 0;
width:50%;
padding: 10px;
background:#fff;


+ 70
- 0
src/views/quality/pkgDefeck.vue View File

@ -0,0 +1,70 @@
<template>
<div class="app-container pkg-defect-wrapper">
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
<el-tab-pane label="包装" name="first">
<pkgComponent @handleActiveNameOne="handleActiveName" />
</el-tab-pane>
<el-tab-pane label="缺陷数据采集" name="second">
<defectData @handleActiveNameTwo="handleActiveName" />
</el-tab-pane>
</el-tabs>
<el-button type="danger" @click="unPackClick" class="unpack-wrapper">拆除包装</el-button>
<unpack
v-if="isVisible"
:isVisible="isVisible"
@completeCallBack="completeCallBack" />
</div>
</template>
<script>
import pkgComponent from './pkg.vue'
import defectData from './defectdata.vue'
import unpack from './component/unpack.vue'
export default {
name: 'pkgDefeck',
components: {
pkgComponent,
defectData,
unpack
},
data() {
return {
activeName: 'first',
isVisible: false,
}
},
methods: {
unPackClick() {
this.isVisible = true
},
handleActiveName(value) {
if (value === 'two') {
this.activeName = 'second'
} else if (value === 'one') {
this.activeName = 'first'
}
},
completeCallBack(value) {
this.isVisible = value
},
handleClick(tab, event) {
// console.log(tab, event);
},
},
}
</script>
<style lang="scss">
.pkg-defect-wrapper {
position: relative;
.el-tabs--border-card>.el-tabs__content {
padding: 0;
}
.unpack-wrapper {
background: #DC605C;
position: absolute;
top: 39px;
right: 32px;
width: 100px;
}
}
</style>

Loading…
Cancel
Save