<template>
|
<default-header-page-layout ref="page" title="工件信息单个修改">
|
<view class="page-frame with-action-user-row" :style="{height:pageBodyHeight+'px'}" v-if="pageBodyHeight">
|
<action-user-row />
|
<view class="with-action-user-row-page-content">
|
<scan-input-form-item class="forma-item" label="工件ID" v-model="barId" :msg="msg" :msg-type="msgType"
|
@search="onSearchContainter" @clear="onClearContainter" />
|
<!-- 详情 -->
|
<view v-if="Object.keys(barDetail).length > 0">
|
<!-- 状态 -->
|
<bar-status title="质量状态" :status.sync="barDetail.qualityState" :typeArr="statusArr"></bar-status>
|
<!-- 状态 -->
|
<bar-status title="工件状态" :status.sync="barDetail.workPieceState"
|
:typeArr="workPieceStatus"></bar-status>
|
|
<!-- 基础信息 -->
|
<bar-content @changeWPCurrent="changeWPCurrent" title="基础信息" :content="barDetail"
|
:propArr="detailArr" key="basic"></bar-content>
|
<!-- 加工信息 -->
|
<!-- <bar-content title="加工信息" :content="barDetail" :propArr="detailArr2" key="product"></bar-content> -->
|
<!-- 质量信息 -->
|
<!-- <bar-content title="质量信息" :content="barDetail" :propArr="detailArr3" key="material"></bar-content> -->
|
</view>
|
</view>
|
<modal-pwd @update="onClearContainter" ref="pwdRef"></modal-pwd>
|
</view>
|
<template v-slot:footer>
|
<view class="bottom-btns-row">
|
<view class="btn-frame left-btn-frame"><u-button text="返回" @click="goHome"></u-button></view>
|
<view class="btn-frame right-btn-frame"><u-button type="primary" text="确认修改"
|
:disabled="Object.keys(barDetail).length == 0" @click="comfirmUpdate"></u-button></view>
|
</view>
|
</template>
|
</default-header-page-layout>
|
</template>
|
|
<script>
|
import DefaultHeaderPageLayout from '@/components/DefaultHeaderPageLayout.vue'
|
import ActionUserRow from '@/components/ActionUserRow.vue'
|
import ScanInputFormItem from '@/components/ScanInputFormItem.vue'
|
import barContent from './modules/barContent.vue'
|
import barStatus from './modules/barStatus.vue'
|
import modalPwd from './modules/modalPwd.vue'
|
|
import {
|
parseDic,
|
$alert,
|
$successInfo
|
} from '@/static/js/utils/index.js'
|
import {
|
getBarInfoById,
|
updateBarStatus
|
} from '@/api/unBind/index.js'
|
export default {
|
name: 'baseInPage',
|
components: {
|
DefaultHeaderPageLayout,
|
ActionUserRow,
|
ScanInputFormItem,
|
barContent,
|
barStatus,
|
modalPwd
|
},
|
data() {
|
return {
|
pageBodyHeight: 0,
|
initInterVal: null,
|
msg: '',
|
msgType: 'error',
|
barId: '',
|
barDetail: {},
|
workPieceStatus: [],
|
detailArr: [{
|
code: "workPieceID",
|
title: '工件ID'
|
}, {
|
code: "workingProcedureCurrent",
|
title: '当前工序'
|
}, {
|
code: "workPieceinitOnlineTime",
|
title: '首工序上线时间'
|
}, {
|
code: "workPieceCurr",
|
title: '总加工时长'
|
}, {
|
code: "workingProcedureStartTime",
|
title: '当前工序开始时间'
|
}, {
|
code: "processingDurationForCurrent",
|
title: '当前工序加工时间'
|
}, {
|
code: "equipmentID",
|
title: '当前设备'
|
}, {
|
code: "equipmentName",
|
title: '设备名称'
|
}, {
|
code: "workPieceCurrentPosition",
|
title: '当前位置'
|
}, {
|
code: "workingProcedureCompleted",
|
title: '已完成工序'
|
},
|
{
|
code: "qualityErrorInfo",
|
title: '不合格原因'
|
}],
|
// detailArr2: [{code: "equipmentID",title: '当前设备'},{code: "equipmentName",title: '设备名称'},{code: "equipmentCurrentStateName",title: '当前位置'},{code: "workingProcedureCompleted",title: '已完成工序'}],
|
// detailArr3: [{code: "remarks",title: '备注'},{code: "processingDurationTotal",title: '总加工时长'},{code: "workPieceinitOnlineTime",title: '首工序上线时间'},{code: "number",title: '数量'}]
|
}
|
},
|
onLoad() {
|
// this.barDetail = {special: "SAE1041(0.80%~1.10%Mn)",barType: "高碳钢",barSpec: "70号",material: "229-255HBS",status: 1};
|
this.statusArr = [{
|
code: 1,
|
title: '合格'
|
}, {
|
code: 2,
|
title: '不合格'
|
}, {
|
code: 3,
|
title: '疑似'
|
}]
|
this.workPieceStatus = [{
|
code: 1,
|
title: '在制品'
|
}, {
|
code: 10,
|
title: '成品'
|
}]
|
},
|
methods: {
|
changeWPCurrent(val) {
|
this.$set(this.barDetail, 'workingProcedureCurrent', val)
|
},
|
goHome() {
|
uni.redirectTo({
|
url: '/pages/home/index'
|
})
|
},
|
onSearchContainter(barId) {
|
if (barId) {
|
this.barId = barId
|
}
|
const param = {
|
WorkPieceID: this.barId
|
}
|
getBarInfoById(param).then(res => {
|
this.barDetail = res.data || {}
|
})
|
},
|
onClearContainter() {
|
this.barId = ''
|
this.msg = ''
|
this.barDetail = {}
|
},
|
/* 页面初始化获取页面body高度的定时器 */
|
startInitInterval(callback) {
|
this.initInterVal = setInterval(() => {
|
if (this.pageBodyHeight) {
|
this.clearInitInterval()
|
callback && callback()
|
} else {
|
this.pageBodyHeight = this.$refs.page.getBodyHeight()
|
}
|
}, 200)
|
},
|
/* 清除定时器 */
|
clearInitInterval() {
|
try {
|
clearInterval(this.initInterVal)
|
this.initInterVal = null
|
} catch (e) {
|
//TODO handle the exception
|
}
|
},
|
comfirmUpdate() {
|
this.$refs.pwdRef.showModal(this.barDetail);
|
}
|
},
|
onReady() {
|
this.startInitInterval(() => {
|
/* 页面初始化后需要执行的代码在这边调用 */
|
})
|
},
|
onUnload() {
|
this.clearInitInterval()
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.bottom-btns-row {
|
display: flex;
|
padding: 10rpx 0;
|
background-color: #fff;
|
|
.btn-frame {
|
box-sizing: border-box;
|
}
|
|
.left-btn-frame {
|
width: 30%;
|
padding-left: 20rpx;
|
padding-right: 8rpx;
|
}
|
|
.right-btn-frame {
|
flex: 1;
|
padding-right: 20rpx;
|
padding-left: 8rpx;
|
}
|
|
.u-button {
|
border: 2px solid #F08202;
|
}
|
}
|
|
.forma-item {
|
margin-bottom: 24rpx;
|
}
|
|
.material-item-group {
|
background-color: $uni-bg-color;
|
padding-top: 10rpx;
|
|
.material-list-item {
|
border-bottom: 2rpx solid $uni-border-color;
|
padding-bottom: 10rpx;
|
padding-left: 60rpx;
|
margin-bottom: 10rpx;
|
position: relative;
|
|
&:last-child {
|
border-bottom: 0;
|
}
|
|
.item-row {
|
display: flex;
|
|
&>.label {
|
flex-shrink: 0;
|
color: $u-tips-color;
|
width: 144rpx;
|
}
|
|
&>.content {
|
flex-grow: 1;
|
color: $u-content-color;
|
|
uni-input {
|
font: inherit;
|
color: $u-primary;
|
text-decoration: underline;
|
}
|
}
|
}
|
|
.badge-box {
|
position: absolute;
|
top: 8rpx;
|
left: 8rpx;
|
z-index: 1;
|
}
|
|
.close-btn {
|
$closeBtnSize: 70rpx;
|
width: $closeBtnSize;
|
height: $closeBtnSize;
|
z-index: 1;
|
position: absolute;
|
top: 0rpx;
|
right: 8rpx;
|
background-color: $u-error;
|
opacity: 0.6;
|
border-radius: 25rpx;
|
|
.icon-layer {
|
position: absolute;
|
width: 100%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
z-index: 2;
|
}
|
}
|
}
|
}
|
</style>
|