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.
287 lines
7.4 KiB
287 lines
7.4 KiB
<template>
|
|
<!-- 列表展示标准模版 -->
|
|
<view class="container">
|
|
<view class="list">
|
|
<view class="item" v-for="(item,index) in list" :key="index">
|
|
<view class="title">
|
|
<view class="title-txt">
|
|
{{item.repMaterialCode}}
|
|
</view>
|
|
<view class="time">
|
|
{{`${$time.formatDate(item.createTime)}`}}
|
|
</view>
|
|
</view>
|
|
<!-- <view class="dec">
|
|
<view>计划编码:</view><view>{{item.planDayCode}}</view>
|
|
</view>
|
|
<view class="dec">
|
|
<view>批次编码:</view><view>{{item.planBatchCode}}</view>
|
|
</view> -->
|
|
<view class="dec">
|
|
<view>产品编码:</view><view>{{item.productCode}}</view>
|
|
</view>
|
|
<view class="dec">
|
|
<view>工序编码:</view><view>{{item.processCode}}</view>
|
|
</view>
|
|
<view class="dec">
|
|
<view>物料规格:</view><view>{{item.repMaterialModel}}</view>
|
|
</view>
|
|
<view class="dec">
|
|
<view>物料数量:</view>
|
|
<view> {{item.repMaterialCounts * queryForm.planCount}}</view>
|
|
</view>
|
|
<view class="dec" style="font-weight: bold;">
|
|
<view >补料数量:</view>
|
|
<view > <u-input v-model="item.srcMaterialCounts" type="number" placeholder="补料数量" border="true" clearable="true" style="width: 100px;" @update:modelValue="calculatePass(item,queryForm.planCount)" />
|
|
</view>
|
|
</view>
|
|
<view class="dec">
|
|
<view>
|
|
<u-button size="medium" type="error" @click="deleteItem(item)" style="width: 20px;">删除物料</u-button>
|
|
</view>
|
|
<!-- <view >
|
|
<u-button size="medium" type="success" @click="setupNum(item)" style="margin-left: 100px;width: 20px;">选择数量</u-button>
|
|
</view> -->
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="footer">
|
|
<view class="btns" v-if="listSize!=0">
|
|
<u-button type="success" @click="handleSubmit" :loading='loading' :disabled='loading'>提交</u-button>
|
|
</view>
|
|
<view class="btns" v-if="listSize == 0">
|
|
<u-button type="success" @click="navigateBack" :loading='loading' :disabled='loading'>返回</u-button>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
/*初始化*/
|
|
import {
|
|
onLoad,
|
|
onShow,
|
|
onReachBottom
|
|
} from '@dcloudio/uni-app'
|
|
import {
|
|
ref,
|
|
getCurrentInstance
|
|
} from 'vue'
|
|
/*引入API*/
|
|
import * as addBasicItemApi from "@/api/mes/workScheduling/addBasicItem/index.ts"
|
|
import * as dictApi from "@/api/mes/dict/dictApi.ts"
|
|
const { proxy } = getCurrentInstance()
|
|
const loading = ref(false)
|
|
const showProduct = ref(false)
|
|
const paramData = ref()
|
|
const typeList = ref([])
|
|
const list = ref([])
|
|
const listSize = ref(1)
|
|
const productList = ref([{label:'产品1',value: '111',name:'产品'},{label:'产品2',value: '222',name:'产品'}])
|
|
|
|
const queryForm = ref({
|
|
planNoDay:'',
|
|
productCode:'',
|
|
workroomCode:'',
|
|
workBillNo:'',
|
|
lineCode:'',
|
|
processrouteCode:'',
|
|
batchCode:'',
|
|
processCode:'',
|
|
planCount:''
|
|
})
|
|
const saveData = ref({
|
|
planDayCode:'',
|
|
workBillNo:'',
|
|
batchCode:'',
|
|
workstationCode:'',
|
|
productCode:'',
|
|
processCode:'',
|
|
requestType:'2',
|
|
list:[]
|
|
})
|
|
|
|
//删除物料
|
|
function deleteItem(val) {
|
|
const index = list.value.findIndex(item => item.repMaterialCode === val.repMaterialCode);
|
|
if (index !== -1) {
|
|
list.value.splice(index, 1);
|
|
listSize.value -= 1
|
|
console.log(listSize.value)
|
|
}
|
|
}
|
|
|
|
function calculatePass(item,planCount){
|
|
const count = item.repMaterialCounts * planCount
|
|
if(item.srcMaterialCounts > count){
|
|
proxy.$modal.showToast('数量不能超过最大物料数')
|
|
setTimeout(() => {
|
|
item.srcMaterialCounts=count
|
|
proxy.$modal.closeLoading()
|
|
}, 500)
|
|
}
|
|
if(item.srcMaterialCounts <= 0 ){
|
|
proxy.$modal.showToast('数量必须大于0')
|
|
setTimeout(() => {
|
|
item.srcMaterialCounts=1
|
|
proxy.$modal.closeLoading()
|
|
}, 500)
|
|
}
|
|
}
|
|
|
|
// 提交事件
|
|
function handleSubmit(){
|
|
saveData.value.planDayCode = queryForm.value.planNoDay
|
|
saveData.value.workBillNo = queryForm.value.workBillNo
|
|
saveData.value.batchCode = queryForm.value.batchCode
|
|
saveData.value.workstationCode = queryForm.value.workroomCode
|
|
saveData.value.productCode = queryForm.value.productCode
|
|
saveData.value.processCode = queryForm.value.processCode
|
|
saveData.value.list = list.value
|
|
// 提交接口
|
|
proxy.$modal.confirm('确定提交处理吗').then(() => {
|
|
proxy.$modal.loading('加载中')
|
|
loading.value = true
|
|
addBasicItemApi.addBasicItem(saveData.value).then((res) => {
|
|
proxy.$modal.closeLoading()
|
|
if (res.data) {
|
|
proxy.$modal.showToast('操作成功')
|
|
|
|
setTimeout(() => {
|
|
proxy.$tab.navigateBack()
|
|
loading.value = false
|
|
proxy.$modal.closeLoading()
|
|
}, 1000)
|
|
} else {
|
|
proxy.$modal.showToast('操作失败')
|
|
loading.value = false
|
|
proxy.$modal.closeLoading()
|
|
}
|
|
}).catch(() => {
|
|
proxy.$modal.closeLoading()
|
|
loading.value = false
|
|
})
|
|
})
|
|
}
|
|
function navigateBack() {
|
|
proxy.$tab.navigateBack()
|
|
}
|
|
|
|
// 获取类型字典函数
|
|
async function getDictInfo(){
|
|
await dictApi.getDict("uom").then((res) => {
|
|
proxy.$modal.closeLoading()
|
|
if (res) {
|
|
typeList.value = res
|
|
} else {
|
|
}
|
|
}).catch(() => {
|
|
})
|
|
}
|
|
async function getBasicItem() {
|
|
proxy.$modal.loading('加载中')
|
|
await addBasicItemApi.getByOrder(queryForm.value).then((res) => {
|
|
proxy.$modal.closeLoading()
|
|
if (res.data.length > 0) {
|
|
list.value = list.value.concat(res.data);
|
|
listSize.value = res.data.length
|
|
} else {
|
|
}
|
|
}).catch(() => {
|
|
proxy.$modal.closeLoading()
|
|
})
|
|
}
|
|
|
|
/*通用方法*/
|
|
onLoad((option) => {
|
|
if (option.obj) {
|
|
paramData.value = JSON.parse(decodeURIComponent(option.obj)); // 将字符串转换为对象并存入paramData
|
|
queryForm.value.planNoDay = paramData.value.planMasterCode
|
|
queryForm.value.productCode = paramData.value.productCode
|
|
queryForm.value.workroomCode = paramData.value.workroomCode
|
|
queryForm.value.lineCode = paramData.value.lineCode
|
|
queryForm.value.processrouteCode = paramData.value.prouteCode
|
|
queryForm.value.batchCode = paramData.value.batchCode
|
|
queryForm.value.processCode = paramData.value.workingNode
|
|
queryForm.value.workBillNo = paramData.value.schedulingCode
|
|
queryForm.value.planCount = paramData.value.planCount
|
|
}
|
|
})
|
|
onShow(() => {
|
|
getDictInfo()
|
|
getBasicItem()
|
|
})
|
|
onReachBottom(() => {
|
|
|
|
})
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
// .footer {
|
|
// position: fixed;
|
|
// bottom: 0;
|
|
// left: 0;
|
|
// width: 100%;
|
|
// background-color: #fff; /* 设置 footer 的背景颜色 */
|
|
// /* 其他样式属性,例如 padding、border 等 */
|
|
// }
|
|
.container{
|
|
background: #f5f5f5;
|
|
min-height: 100vh;
|
|
}
|
|
.list {
|
|
background: #f5f5f5;
|
|
margin-top: 20rpx;
|
|
.item {
|
|
padding: 30rpx 30rpx 0px 30rpx;
|
|
margin-top: 20rpx;
|
|
background: white;
|
|
position: relative;
|
|
.title {
|
|
display: flex;
|
|
align-items: center;
|
|
padding-bottom: 20rpx;
|
|
.title-txt {
|
|
color: #409eff;
|
|
font-weight: bold;
|
|
font-size: 36rpx;
|
|
width: 0px;
|
|
flex: 1;
|
|
word-wrap: break-word;
|
|
}
|
|
.time {
|
|
color: #919191;
|
|
}
|
|
}
|
|
.dec {
|
|
padding-bottom: 20rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
view {
|
|
&:nth-child(1){
|
|
width: 160rpx;;
|
|
}
|
|
&:nth-child(2){
|
|
color: #999999;
|
|
flex: 1;
|
|
width: 0px;
|
|
word-wrap: break-word;
|
|
}
|
|
}
|
|
}
|
|
.last {
|
|
padding-bottom: 30rpx;
|
|
}
|
|
.bottom {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
border-top: 1px solid #E4E4E4;
|
|
padding: 20rpx 0px;
|
|
height: 90rpx;
|
|
}
|
|
}
|
|
}
|
|
</style>
|