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

347 lines
9.3 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 style="background-color: #fff;">
<uni-row style="margin-bottom: 5px;">
<uni-col :span="3">
<u-button type="primary" style="font-size: 24px;" name="logIn" @click="empinput"> </u-button>
</uni-col>
<uni-col :span="18"></uni-col>
<uni-col :span="6">
<view style="position: absolute;right: 0;top:5px;font-size: 22px;">
{{empName?empName+' 您好!':'请登录!'}}
</view>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="12">
<uni-card :is-shadow="false" is-full>
<u-cell-group :border="false">
<u-cell title="工单" :clickable="true" name="pwo" @click="input">
<u-icon slot="right-icon" size="25" name="edit-pen-fill" label="填写"
label-pos="bottom"></u-icon>
<span slot="value" class="value">{{pwoCode}}</span>
</u-cell>
<u-cell title="作业编码" :clickable="true" @click="selectJob">
<u-icon slot="right-icon" size="25" name="list-dot" label="切换" label-pos="bottom"></u-icon>
<span slot="value" class="value">{{job.code}}</span>
</u-cell>
<u-cell title="设备" :clickable="true">
<u-button slot="right-icon" type="primary" :plain="false" v-if="!job.eqpId"
@click="eqpInput"> </u-button>
<!-- <u-icon slot="right-icon" size="25" name="edit-pen-fill" label="填写" label-pos="bottom"></u-icon> -->
<span slot="value" class="value">{{eqpValue}}</span>
</u-cell>
<u-cell title="SN" :border="false" :clickable="true" name="sn" @click="input">
<u-icon slot="right-icon" size="25" name="edit-pen-fill" label="填写"
label-pos="bottom"></u-icon>
<span slot="value" class="value">{{snCode}}</span>
</u-cell>
</u-cell-group>
</uni-card>
</uni-col>
<!-- <uni-col :span="2">
<u-line direction="col" length="50px"></u-line>
</uni-col> -->
<uni-col :span="12">
<uni-card :is-shadow="false" is-full>
<u-cell-group :border="false">
<u-cell title="物料编码">
<span slot="value" class="value">{{job.ptNoTar}}</span>
<u-button slot="right-icon" type="primary" @click="report" :plain="false"> </u-button>
</u-cell>
<u-cell title="物料名称">
<span slot="value" class="value">{{job.ptTitleTar}}</span>
</u-cell>
<u-cell title="工序名称">
<span slot="value" class="value">{{job.opTitle}}</span>
</u-cell>
<u-cell title="作业数量" :border="false">
<span slot="value" class="value">{{job.planNum}}</span>
</u-cell>
</u-cell-group>
</uni-card>
</uni-col>
</uni-row>
<uni-row>
<u-divider text="数据采集进度" textSize="20"></u-divider>
<u-line-progress :percentage="80" inactiveColor="" height="20"></u-line-progress>
</uni-row>
<!-- <u-picker style="width: 80%;" :show=" showMenu" @close="Menuclose" @confirm="confirm" @cancel="cancel"
:columns="columns" :closeOnClickOverlay="true"></u-picker> -->
<u-action-sheet :actions="columns" @select="confirm" cancelText="取消" @close="cancel" title="请选择模式"
:show="showMenu" :closeOnClickOverlay="true"></u-action-sheet>
<view>
<!-- 输入框 -->
<uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input" :title="'输入'+title"
@confirm="dialogInputConfirm"></uni-popup-dialog>
</uni-popup>
<uni-popup ref="selectDialog" type="dialog">
<uni-popup-dialog type="info" cancelText="关闭" confirmText="确定" title="请选择作业" @confirm="dialogConfirm"
@close="dialogClose">
<u-radio-group v-model="job" iconPlacement="right" :borderBottom="true" placement="column">
<u-radio v-for="(item, index) in jobList" :customStyle="{marginBottom: '16px'}" :name="item"
:key="index" labelSize="20" :label="item.name"></u-radio>
</u-radio-group>
</uni-popup-dialog>
</uni-popup>
</view>
</view>
</template>
<script>
import {
updatePwoJob,
listEquipment,
getEquipment,
getPwoJob,
listPwoJob
} from "@/api/mes/jobReport.js"
import {
listEmployee,
} from "@/api/mes/jobIn.js"
export default {
data() {
return {
showMenu: false,
// columns: [
// ['常规功能', 'MES智能终端']
// ],
columns: [{
name: '常规功能',
path: '/pages/work/index'
},
{
name: 'MES智能终端',
path: '/pages/work/mesIT'
},
],
empName: null,
title: null,
pwoCode: null,
jobCode: null,
eqpValue: null,
snCode: null,
//作业列表
jobList: [],
radiovalue: null,
//作业信息
job: []
}
},
methods: {
//根据点击的cell来赋值title
input(e) {
console.log(e)
if (e.name == 'pwo') {
this.title = '工单'
}
if (e.name == 'sn') {
this.title = 'SN'
}
this.$refs.inputDialog.open()
},
empinput() {
this.title = '人员编码'
this.$refs.inputDialog.open()
},
eqpInput() {
this.title = '设备编码';
this.$refs.inputDialog.open()
},
//输入框确认按钮
dialogInputConfirm(val) {
//根据标题进入相应的逻辑运算
if (val && this.title == '工单') {
uni.showLoading({
title: '正在跳转中'
})
setTimeout(() => {
uni.hideLoading()
this.pwoCode = val
this.getJobByPwo(val);
// 关闭窗口后,恢复默认内容
this.$refs.inputDialog.close()
this.$refs.selectDialog.open()
}, 1000)
} else if (val && this.title == 'SN') {
uni.showLoading()
setTimeout(() => {
uni.hideLoading()
this.snCode = val
// 关闭窗口后,恢复默认内容
this.$refs.inputDialog.close()
}, 1000)
} else if (val && this.title == '人员编码') {
uni.showLoading({
title: '正在绑定中'
});
setTimeout(() => {
uni.hideLoading()
this.empCode = val;
listEmployee({
empCode: val
}).then(res => {
if (res.total > 0) {
this.empName = res.rows[0].name;
this.$refs.inputDialog.close()
} else {
this.$modal.msgError("未查询到相关人员,请重新输入!");
}
})
}, 1000)
} else if (val && this.title == '设备编码') {
uni.showLoading();
setTimeout(() => {
uni.hideLoading()
//根据设备编码来获取设备id
listEquipment({
equipmentCode: val
}).then(async res => {
if (res.total > 0) {
this.job.eqpId = res.rows[0].id;
this.eqpValue = res.rows[0].equipmentCode + ':' + res.rows[0]
.equipmentTitle
updatePwoJob(this.job).then(res => {
this.$modal.msgSuccess("作业上机成功!");
});
this.$refs.inputDialog.close()
} else {
this.$modal.msgError("未查询到该设备信息!");
}
});
}, 1000)
} else {
this.$modal.msgError("请输入" + this.title);
}
},
//根据输入的工单获取作业信息
async getJobByPwo(val) {
await listPwoJob({
pwoCode: val
}).then(res => {
this.jobList = res.rows.map(item => {
item.name = item.code;
item.disabled = false;
return item;
});
})
},
//打开选择作业弹框
selectJob() {
this.$refs.selectDialog.open()
},
//选择作业弹框的确认按钮存入job信息赋值设备信息
dialogConfirm() {
if (this.job) {
this.eqpValue = null;
if (this.job.eqpId) {
getEquipment(this.job.eqpId).then(async res => {
this.eqpValue = res.data.equipmentCode + ':' + res.data.equipmentTitle
})
}
this.$refs.selectDialog.close()
}
},
//作业选择弹框关闭
dialogClose() {
this.$refs.selectDialog.close()
},
//报工弹框
report() {
},
//模式选择弹框关闭
Menuclose() {
this.showMenu = false
},
//模式选择弹框确认
confirm(e) {
console.log(e)
// if (e.value == '常规功能') {
// this.$tab.reLaunch('/pages/work/index');
// } else if (e.value == 'MES智能终端') {
// this.$tab.reLaunch('/pages/work/mesIT');
// }
this.$tab.reLaunch(e.path);
},
//模式选择弹框取消
cancel() {
this.showMenu = false
},
//获取模式选择点击事件
onNavigationBarButtonTap(e) {
console.log(e)
this.showMenu = !this.showMenu;
},
}
}
</script>
<style lang="scss">
::v-deep .u-cell__body__content {
flex: 0.5;
}
::v-deep .u-cell__title-text {
font-size: 24px !important;
font-weight: 900;
}
::v-deep .u-cell__body {
padding: 5px 15px;
height: 50px;
}
::v-deep .u-line-progress__text {
font-size: 18px;
margin-right: 20px;
}
::v-deep .u-line-progress {
margin: 10px;
}
::v-deep .uni-popup-dialog {
width: 500px;
}
::v-deep .uni-dialog-input {
font-size: 20px
}
::v-deep .u-cell__right-icon-wrap {
position: absolute;
right: 80px;
}
.u-reset-button {
background-color: #3c9cff;
font-size: 20px;
color: #fff;
width: 80px;
height: 40px;
// margin-left: 10px;
}
.value {
font-size: 22px
}
.radio-group-wrapper {
max-height: 200px;
/* 设置最大高度,超过该高度将显示滚动条 */
overflow-y: auto;
/* 仅在内容溢出时显示垂直滚动条 */
width: 100%;
}
@media screen and (min-width: 600px) and (orientation:landscape) {
::v-deep .u-cell__title-text {
font-size: 24px;
font-weight: 900;
}
}
</style>