TengXF
7 months ago
4 changed files with 289 additions and 1 deletions
@ -0,0 +1,12 @@ |
|||||
|
import http from '../../../http' |
||||
|
|
||||
|
//查询物料信息列表
|
||||
|
export function getByOrder(params) { |
||||
|
return http.get('/mes/orderDayBom/getByOrder', {params}) |
||||
|
} |
||||
|
|
||||
|
//补料
|
||||
|
export function addBasicItem(data) { |
||||
|
return http.post('/mes/item-request-main/addBasicItem', data) |
||||
|
} |
||||
|
|
@ -0,0 +1,268 @@ |
|||||
|
<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;" /> |
||||
|
</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/addBasicItemApi.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 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> |
Loading…
Reference in new issue