Files
rd_mes_uniapp/pages/basic/empEqpStart.vue
2025-12-18 14:11:48 +08:00

270 lines
6.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<t-emp />
<uni-card class="eqpInfo">
<uni-row class="eqpCode">
<uni-col :span="10">
<span>设备编码</span>
</uni-col>
<uni-col :span="14">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" v-model="eqpCode" type="text" />
</uni-col>
</uni-row>
<uni-row class="eqpName">
<uni-col :span="10">
<span>设备名称</span>
</uni-col>
<uni-col :span="14">
<span>{{ eqpName }}</span>
</uni-col>
</uni-row>
<button type="primary" class="searchBtn" @click="searchEqp">查询</button>
</uni-card>
<view class="jobInfo">
<uni-card class="jobs" v-for="(item, index) in searchJobWithEqp" :key="index">
<uni-section class="mb-10" :title="jobStatuses[item.jobStatus - 1]"
:title-color="jobStatusColor[item.jobStatus - 1]" title-font-size="40rpx" type="line" />
<uni-row>
<uni-col :span="8">作业编码</uni-col>
<uni-col :span="12" :offset="3">{{ item.jobCode }}</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">工单编码</uni-col>
<uni-col :span="12" :offset="3">{{ item.pwoCode }}</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">目标产品编码</uni-col>
<uni-col :span="12" :offset="3">{{ item.tarProCode }}</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">产品名称</uni-col>
<uni-col :span="12" :offset="3">{{ item.tarProName }}</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">规格一</uni-col>
<uni-col :span="12" :offset="3">{{ item.specification1 }}</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">制程名称</uni-col>
<uni-col :span="12" :offset="3">{{ item.opTitle }}</uni-col>
</uni-row><uni-row>
<uni-col :span="8">目标产量</uni-col>
<uni-col :span="12" :offset="3">{{ item.planNum }}</uni-col>
</uni-row><uni-row>
<uni-col :span="8">未完成</uni-col>
<uni-col :span="12" :offset="3">{{ item.unfinishedNum }}</uni-col>
</uni-row>
</uni-card>
</view>
<button v-if="isLegal" type="primary" class="confirmStart" @click="submit">确认上机</button>
</view>
</template>
<script>
import {
addStart,
listEmpEqpHistory
} from '@/api/basic/empEqpHistory.js'
import {
listPwoJob
} from '@/api/mes/jobReport.js'
import {
listEmployee
} from '@/api/mes/jobIn.js'
import {
listEquipment
} from '@/api/basic/cutter.js'
import {
getInfo
} from '@/api/login'
import {
getDicts
} from '@/api/system/dict/dictData.js'
export default {
data() {
return {
userId: null,
empName: this.$store.state.employee.empName,
empCode: this.$store.state.employee.empCode,
eqpCode: null,
eqpId: null,
eqpName: null,
jobStatuses: [],
jobStatusColor: [
'#FFBA00',
'#13CE66',
'#1890FF'
],
searchJobWithEqp: [],
isLegal: false
}
},
methods: {
// 根据设备编码查询设备名称
async searchEqp() {
this.eqpId = null
this.eqpName = null
this.isLegal = false
if (this.eqpCode) {
await listEquipment({
equipmentCode: this.eqpCode
}).then((res) => {
if (res.rows.length > 0) {
this.eqpId = res.rows[0].id
this.eqpName = res.rows[0].equipmentTitle
this.isLegal = true
} else {
this.eqpName = null
this.searchJobWithEqp = null
this.$modal.showToast("未查询到设备信息,请检查设备编号")
}
})
} else {
this.$modal.showToast("请先输入设备编码")
}
this.searchJob()
},
// 根据设备查找关联的作业信息
searchJob() {
this.searchJobWithEqp = []
if (!this.isLegal) {
this.eqpName = null
} else {
this.$modal.loading('查询中')
listPwoJob({
eqpId: this.eqpId
}).then(async res => {
this.$modal.closeLoading()
for (var i in res.rows) {
// 只显示已派工、材料已转入、作业开工3个状态的作业信息
let filterNum = res.rows[i].status % 9
if (filterNum > 0 && filterNum < 4 && res.rows[i].status != 1) {
this.searchJobWithEqp.push({
jobCode: res.rows[i].code,
pwoCode: res.rows[i].pwoCode,
tarProCode: res.rows[i].ptNoTar,
tarProName: res.rows[i].ptTitleTar,
specification1: res.rows[i].specification1,
opTitle: res.rows[i].opTitle,
planNum: res.rows[i].targetNum,
unfinishedNum: res.rows[i].unFinishQty,
jobStatus: filterNum
})
}
}
}).catch(() => {
this.$modal.showToast("查询失败")
})
}
},
scanBar() {
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: (res) => {
this.eqpCode = res.result;
},
fail: () => {
this.$modal.showToast("获取设备编码失败")
}
});
},
submit() {
if (this.eqpCode) {
this.$modal.loading('提交中')
addStart({
empCode: this.empCode,
eqpCode: this.eqpCode
}).then(res => {
this.$modal.closeLoading();
this.$modal.msgSuccess("上机成功!")
setTimeout(() => {
uni.navigateBack()
}, 500);
})
} else {
this.$modal.showToast("请先输入设备编码")
}
}
},
// 根据账号获取员工姓名和账号ID
onLoad() {
// 获取字典中的作业状态
getDicts("mes_job_status").then(res => {
for (var i in res.data) {
let filterNum = res.data[i].dictValue % 9
if (filterNum > 0 && filterNum < 4 && res.data[i].dictValue != 1) {
this.jobStatuses.push(res.data[i].dictLabel)
}
}
})
console.log(this.jobStatuses)
}
}
</script>
<style scoped lang="scss">
.container {
padding: 6px 12px;
box-sizing: border-box;
display: flex;
flex-direction: column;
overflow: hidden;
/* #ifdef H5 */
height: calc(100vh - 44px);
/* #endif */
/* #ifndef H5 */
height: 100vh;
/* #endif */
}
.eqpInfo {
display: flex;
flex-direction: column;
max-height: 20vh;
margin: 10px 0 0 0 !important;
padding: 0;
border-radius: 10px;
.eqpCode,
.eqpName,
.searchBtn {
flex: 1;
font-size: 1.5rem;
line-height: 2rem;
}
.searchBtn {
margin-top: 30rpx;
height: 5vh;
width: 80%;
line-height: 5vh;
font-size: 2rem;
}
}
.jobInfo {
flex: 1;
width: auto;
overflow: scroll;
padding: 4px 0;
.jobs {
margin: 0 0 2px 0 !important;
}
}
.confirmStart {
height: 6vh;
width: 90vw;
margin-top: 1vh;
// height: 6vh;
// position: absolute;
// bottom: 4px;
// left: 5vw;
line-height: 6vh;
font-size: 2rem;
}
</style>