中航光电PDA端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

434 lines
18 KiB

3 weeks ago
<template>
<ifrm ref="ifrm">
<u-sticky offset-top="-90">
<uni-forms ref="wrForm" class="formBox">
<!-- 绑定 -->
<uni-forms-item name="allegation"><input type="text" v-model="cardNo" @input="onInput"
class="uni-input-border" placeholder="流程卡" /></uni-forms-item>
<uni-forms-item name="allegation"><input type="text" v-model="rackValue" @input="rackInput"
class="uni-input-border" placeholder="挂具" /></uni-forms-item>
<uni-forms-item name="allegation"><input type="text" v-model="feibaValue" @input="feibaInput"
class="uni-input-border" placeholder="飞靶" /></uni-forms-item>
<uni-forms-item name="allegation"><input type="text" v-model="facilityValue" @input="facilityInput"
class="uni-input-border" placeholder="设备" /></uni-forms-item>
</uni-forms>
</u-sticky>
<view class="tableBox">
<t-table>
<t-tr>
<t-td>挂次号</t-td>
<t-td><input type="text" v-model="hangNum" /></t-td>
</t-tr>
</t-table>
<uni-card title="流程卡">
<uni-table border stripe emptyText="暂无更多数据" class="table">
<uni-tr>
<uni-th align="center">操作</uni-th>
<uni-th align="center">车间订单号</uni-th>
<uni-th align="center">产品号</uni-th>
<uni-th align="center">批次号</uni-th>
<uni-th align="center">镀种</uni-th>
<uni-th align="center">数量</uni-th>
<uni-th align="center">班组</uni-th>
<uni-th align="center">当前工序号</uni-th>
<uni-th align="center">当前工序</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in cardData" :key="index">
<uni-td align="center" style="width: 150rpx;"><button size="mini" class="button" type="primary"
@click="removeClick(item)">删除</button></uni-td>
<uni-td align="center">{{ item.woCode }}</uni-td>
<uni-td align="center">{{ item.partCode }}</uni-td>
<uni-td align="center">{{ item.batchNo }}</uni-td>
<uni-td align="center">{{ item.plate }}</uni-td>
<uni-td align="center">{{ item.makeQty }}</uni-td>
<uni-td align="center">{{ item.makeTeam }}</uni-td>
<uni-td align="center">{{ item.orders }}</uni-td>
<uni-td align="center">{{ item.ppsName }}</uni-td>
</uni-tr>
</uni-table>
<!-- <t-table>
<t-tr>
<t-td>车间订单号</t-td>
<t-td>{{ bindModel.woCode }}</t-td>
</t-tr>
<t-tr>
<t-td>产品号</t-td>
<t-td>{{ bindModel.partCode }}</t-td>
</t-tr>
<t-tr>
<t-td>批次号</t-td>
<t-td>{{ bindModel.batchNo }}</t-td>
</t-tr>
<t-tr>
<t-td>镀种</t-td>
<t-td>{{ bindModel.plate }}</t-td>
</t-tr>
<t-tr>
<t-td>计划员</t-td>
<t-td>{{ bindModel.planUser }}</t-td>
</t-tr>
<t-tr>
<t-td>数量</t-td>
<t-td>{{ bindModel.makeQty }}</t-td>
</t-tr>
<t-tr>
<t-td>班组</t-td>
<t-td>{{ bindModel.makeTeam }}</t-td>
</t-tr>
<t-tr>
<t-td>当前工序号</t-td>
<t-td>{{ bindModel.orders }}</t-td>
</t-tr>
<t-tr>
<t-td>当前工序</t-td>
<t-td>{{ bindModel.ppsName }}</t-td>
</t-tr>
<t-tr>
<t-td>下一工序号</t-td>
<t-td>{{ bindModel.nextOrders }}</t-td>
</t-tr>
<t-tr>
<t-td>下一工序</t-td>
<t-td>{{ bindModel.nextPpsName }}</t-td>
</t-tr>
<t-tr>
<t-td>加工状态</t-td>
<t-td>{{ bindModel.runStatus }}</t-td>
</t-tr>
</t-table> -->
</uni-card>
<uni-card title="挂具信息">
<uni-table border stripe emptyText="暂无更多数据" class="table">
<uni-tr>
<uni-th align="center">操作</uni-th>
<uni-th align="center">编号</uni-th>
<uni-th align="center">名称</uni-th>
<uni-th align="center">状态</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in rackSetData" :key="index">
<uni-td align="center" style="width: 150rpx;"><button size="mini" class="button" type="primary"
@click="removeRackClick(item)">删除</button></uni-td>
<uni-td align="center">{{ item.rsCode }}</uni-td>
<uni-td align="center">{{ item.rsType }}</uni-td>
<uni-td align="center">{{ item.rsStatusTitle }}</uni-td>
</uni-tr>
</uni-table>
<!-- <t-table>
<t-tr>
<t-td>编号</t-td>
<t-td>{{ bsRackSet.rsCode }}</t-td>
</t-tr>
<t-tr>
<t-td>名称</t-td>
<t-td>{{ bsRackSet.rsType }}</t-td>
</t-tr>
<t-tr>
<t-td>状态</t-td>
<t-td>{{ bsRackSet.rsStatusTitle }}</t-td>
</t-tr>
</t-table> -->
</uni-card>
<uni-card title="飞靶">
<t-table>
<t-tr>
<t-td>编号</t-td>
<t-td>{{ bsFeiBaSet.fsCode }}</t-td>
</t-tr>
<t-tr>
<t-td>名称</t-td>
<t-td>{{ bsFeiBaSet.fsType }}</t-td>
</t-tr>
<t-tr>
<t-td>状态</t-td>
<t-td>{{ bsFeiBaSet.fsStatusTitle }}</t-td>
</t-tr>
</t-table>
</uni-card>
<uni-card title="设备">
<t-table>
<t-tr>
<t-td>编号</t-td>
<t-td>{{ deEquipmentCard.deviceCode }}</t-td>
</t-tr>
<t-tr>
<t-td>名称</t-td>
<t-td>{{ deEquipmentCard.deviceName }}</t-td>
</t-tr>
<t-tr>
<t-td>状态</t-td>
<t-td>{{ deEquipmentCard.usedText }}</t-td>
</t-tr>
</t-table>
</uni-card>
</view>
<view class="buttonBox bottomFixed">
<button class="button" type="primary" @click="submitClick">绑定</button>
</view>
</ifrm>
</template>
<script>
import ifrm from '@/pages/index/ifrm';
import tTable from '@/components/t-table/t-table.vue';
import tTh from '@/components/t-table/t-th.vue';
import tTr from '@/components/t-table/t-tr.vue';
import tTd from '@/components/t-table/t-td.vue';
import scan from '../../mixin/scan.js';
export default {
mixins: [scan],
components: {
ifrm,
tTable,
tTh,
tTr,
tTd
},
data() {
return {
cardNo: '',
oldCardNo: '',
rackValue: '',
oldFackValue: '',
feibaValue: '',
oldFeibaValue: '',
facilityValue: '',
oldFacilityValue: '',
time: null,
// bindModel: {},
bsRackSet: {},
bsFeiBaSet: {},
deEquipmentCard: {},
cardData: [],
hangNum: null,
rackSetData: []
};
},
onNavigationBarButtonTap(btn) {
this.$refs.ifrm.topMenuClick(btn);
},
onShow() {},
methods: {
getData(code, num) {
if (!code) return;
let url = '';
if (num == 1) {
url = 'pdaLoad/loadBindData/' + code;
} else if (num == 2) {
url = 'pdaLoad/getBsRackSetByCode/' + code;
} else if (num == 3) {
url = 'pdaLoad/getBsFeiBaSetByCode/' + code;
}
this.$ajax.request({
url,
method: 'GET',
success: data => {
console.log(data);
if (num == 1) {
var bool = true;
this.cardData.forEach(item => {
if (item.id === data.bindModel.id) {
bool = false;
}
});
if (bool) {
this.cardData.push(data.bindModel);
}
} else if (num == 2) {
if (data.planList !== null && data.planList.length > 0) {
this.cardData = [...this.cardData, ...data.planList]
}
this.rackSetData.push(data.bsRackSet);
if (data.bsFeiBaSet !== null) {
this.bsFeiBaSet = data.bsFeiBaSet;
}
} else if (num == 3) {
this.bsFeiBaSet = data.bsFeiBaSet;
if (data.planList !== null && data.planList.length > 0) {
this.cardData = [...this.cardData, ...data.planList]
}
if (data.rsList.length > 0) {
this.rackSetData = [...this.rackSetData, ...data.rsList]
}
}
uni.showToast({
title: '数据获取成功',
icon: 'none'
});
}
});
},
getEcByDeviceCode(code) {
this.$ajax.request({
url: 'pdaLoad/getEcByDeviceCode',
method: 'POST',
data: {
deviceCode: code
},
success: data => {
this.deEquipmentCard = data;
uni.showToast({
title: '数据获取成功',
icon: 'none'
});
}
})
},
submitClick() {
let wpIdList = [];
let rsIdList = [];
this.cardData.forEach(item => {
wpIdList.push(item.id);
});
this.rackSetData.forEach(item => {
rsIdList.push(item.rsId);
});
this.$ajax.request({
url: 'pdaSave/binding',
data: {
wpIdList,
rsIdList,
fsCode: this.feibaValue,
deviceCode: this.facilityValue,
hangNum: this.hangNum
},
method: 'POST',
success: data => {
this.hangNum = null;
this.cardNo = '';
this.oldCardNo = '';
this.rackValue = '';
this.oldFackValue = '';
this.feibaValue = '';
this.oldFeibaValue = '';
this.facilityValue = '';
this.oldFacilityValue = '';
this.cardData = [];
this.bsRackSet = {};
this.bsFeiBaSet = {};
this.deEquipmentCard = {};
this.rackSetData = []
uni.showToast({
title: '绑定成功'
});
}
});
},
removeClick(obj) {
this.cardData.forEach((item, index) => {
if (item.id == obj.id) {
this.cardData.splice(index, 1);
}
});
},
removeRackClick(obj) {
this.rackSetData.forEach((item, index) => {
if (item.id == obj.id) {
this.rackSetData.splice(index, 1);
}
});
},
onInput(e) {
console.log(e.detail.value);
clearTimeout(this.time);
if (e.detail.value.length == 0) {
this.oldCardNo = '';
this.cardNo = e.detail.value;
}
if (e.detail.value.length < this.oldCardNo.length) {
this.cardNo = e.detail.value;
this.oldCardNo = this.cardNo;
return;
}
this.time = setTimeout(() => {
if (this.cardNo.length >= 1) {
this.cardNo = e.detail.value.slice(this.oldCardNo.length);
this.oldValue = this.cardNo;
this.getData(this.cardNo, 1);
}
}, 2000);
},
rackInput(e) {
clearTimeout(this.time);
if (e.detail.value.length == 0) {
this.oldFackValue = '';
this.rackValue = e.detail.value;
}
if (e.detail.value.length < this.oldFackValue.length) {
this.rackValue = e.detail.value;
this.oldFackValue = this.rackValue;
return;
}
this.time = setTimeout(() => {
if (this.rackValue.length >= 1) {
this.rackValue = e.detail.value.slice(this.oldFackValue.length);
this.oldValue = this.rackValue;
this.getData(this.rackValue, 2);
}
}, 2000);
},
feibaInput(e) {
clearTimeout(this.time);
if (e.detail.value.length == 0) {
this.oldFeibaValue = '';
this.feibaValue = e.detail.value;
}
if (e.detail.value.length < this.oldFeibaValue.length) {
this.feibaValue = e.detail.value;
this.oldFeibaValue = this.feibaValue;
return;
}
this.time = setTimeout(() => {
if (this.feibaValue.length >= 1) {
this.feibaValue = e.detail.value.slice(this.oldFeibaValue.length);
this.oldValue = this.feibaValue;
this.getData(this.feibaValue, 3);
}
}, 2000);
},
facilityInput(e) {
clearTimeout(this.time);
if (e.detail.value.length == 0) {
this.oldFacilityValue = '';
this.facilityValue = e.detail.value;
}
if (e.detail.value.length < this.oldFacilityValue.length) {
this.facilityValue = e.detail.value;
this.oldFacilityValue = this.facilityValue;
return;
}
this.time = setTimeout(() => {
if (this.facilityValue.length >= 1) {
this.facilityValue = e.detail.value.slice(this.oldFacilityValue.length);
this.oldValue = this.facilityValue;
this.getEcByDeviceCode(this.facilityValue);
}
}, 2000);
}
}
};
</script>
<style scoped lang="scss">
.uni-forms-item {
margin-bottom: 6px !important;
}
.formBox {
background-color: #fff;
}
.tableBox {
padding-bottom: 110rpx;
}
.bottomFixed {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding-bottom: 20rpx;
padding-top: 10rpx;
background-color: #fff;
}
</style>