TengXF
6 months ago
4 changed files with 15 additions and 639 deletions
@ -1,319 +0,0 @@ |
|||
<template> |
|||
<!-- 详情 --> |
|||
<view class="detail-container"> |
|||
<view class="info"> |
|||
<view class="title"> |
|||
<view>产品返线登记详情</view> |
|||
</view> |
|||
<!-- 主数据 --> |
|||
<view class="dec"> |
|||
<view class="dec-item"> |
|||
<view>返线编码:</view> |
|||
<view>{{paramData.backlineBillno}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>离线编码:</view> |
|||
<view>{{paramData.offlineCode}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>计划编码:</view> |
|||
<view>{{paramData.planCode}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>工单编码:</view> |
|||
<view>{{paramData.workBillno}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>产品编码:</view> |
|||
<view>{{paramData.productCode}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>工序编码:</view> |
|||
<view>{{paramData.processCode}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>工位编码:</view> |
|||
<view>{{paramData.stationCode}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>离线原因:</view> |
|||
<view>{{paramData.offlineReson}}</view> |
|||
</view> |
|||
<view class="dec-item"> |
|||
<view>质检人员:</view> |
|||
<view>{{paramData.checkPersonCode}}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="footer"> |
|||
<view class="btns"> |
|||
<button class="reset" @click="reject">驳回</button> |
|||
<button class="sure" @click="submitForm" :loading='loading' :disabled='loading'>提交</button> |
|||
</view> |
|||
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> |
|||
</view> |
|||
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { |
|||
onLoad, |
|||
onShow |
|||
} from '@dcloudio/uni-app' |
|||
import { |
|||
ref, |
|||
getCurrentInstance |
|||
} from 'vue' |
|||
import * as productOfflineApi from "@/api/mes/productBackline/productBacklineApi.ts" |
|||
const { proxy } = getCurrentInstance() |
|||
const paramData = ref() |
|||
const data = ref({}) |
|||
const subList = ref([]) |
|||
const loading = ref(false) |
|||
const from = ref()//1从我的进入3从审核进入 |
|||
function getShowDetail() { |
|||
productOfflineApi.orderDayPage().then((res) => { |
|||
subList.value = res.data.list |
|||
}).catch(() => { }) |
|||
} |
|||
// 点击“确定”按钮事件 |
|||
function submitForm() { |
|||
proxy.$modal.confirm('确定提交吗').then(() => { |
|||
proxy.$modal.loading('加载中') |
|||
loading.value = true |
|||
productOfflineApi.orderDayPage().then((res) => { |
|||
proxy.$modal.closeLoading() |
|||
if (res.data) { |
|||
proxy.$modal.showToast('成功') |
|||
setTimeout(() => { |
|||
proxy.$tab.navigateBack() |
|||
loading.value = false |
|||
}, 1500) |
|||
} else { |
|||
proxy.$modal.showToast('失败') |
|||
loading.value = false |
|||
} |
|||
}).catch(() => { |
|||
proxy.$modal.closeLoading() |
|||
loading.value = false |
|||
}) |
|||
}) |
|||
} |
|||
// 点击“暂停”按钮事件 |
|||
function reject(item) { |
|||
proxy.$modal.confirm('确定驳回申请吗?').then(() => { |
|||
proxy.$modal.loading('加载中') |
|||
loading.value = true |
|||
orderDayPlan.orderDayPage().then(async (res) => { |
|||
if (res.data) { |
|||
proxy.$modal.showToast('成功') |
|||
setTimeout(() => { |
|||
proxy.$tab.navigateBack() |
|||
loading.value = false |
|||
}, 1500) |
|||
} else { |
|||
proxy.$modal.showToast('失败') |
|||
loading.value = false |
|||
} |
|||
}).catch(() => { |
|||
proxy.$modal.closeLoading() |
|||
loading.value = false |
|||
}) |
|||
|
|||
}) |
|||
} |
|||
onLoad((option) => { |
|||
if (option.obj) { |
|||
paramData.value = JSON.parse(option.obj); // 将字符串转换为对象并存入paramData |
|||
} |
|||
if (option.type) type.value = option.type; |
|||
if (option.from) from.value = option.from; |
|||
if (option.number) { |
|||
number.value = option.number; |
|||
} |
|||
console.log(paramData.value) |
|||
}) |
|||
onShow(() => { |
|||
getShowDetail() |
|||
}) |
|||
|
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.detail-container { |
|||
min-height: 100vh; |
|||
background: white; |
|||
} |
|||
|
|||
.line { |
|||
background: #f5f5f5; |
|||
height: 20rpx; |
|||
} |
|||
|
|||
.info { |
|||
background: white; |
|||
} |
|||
|
|||
|
|||
.tab { |
|||
border-bottom: 1px solid #e4e4e4; |
|||
|
|||
} |
|||
|
|||
.title { |
|||
display: flex; |
|||
align-items: center; |
|||
padding: 20rpx 30rpx; |
|||
border-bottom: 1px solid #e4e4e4; |
|||
|
|||
view { |
|||
&:nth-child(1) { |
|||
flex: 1; |
|||
border-left: 10rpx solid #409eff; |
|||
padding-left: 20rpx; |
|||
font-weight: bold; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.dec { |
|||
padding: 30rpx; |
|||
|
|||
.dec-item { |
|||
padding-bottom: 30rpx; |
|||
display: flex; |
|||
|
|||
view { |
|||
&:nth-child(1) { |
|||
width: 160rpx; |
|||
} |
|||
|
|||
&:nth-child(2) { |
|||
color: #888888; |
|||
flex: 1; |
|||
width: 0px; |
|||
word-wrap: break-word; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.dec2 { |
|||
padding: 10rpx 30rpx; |
|||
display: flex; |
|||
|
|||
view { |
|||
&:nth-child(1) { |
|||
width: 180rpx; |
|||
} |
|||
|
|||
&:nth-child(2) { |
|||
color: #888888; |
|||
flex: 1; |
|||
width: 0px; |
|||
word-wrap: break-word; |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.items { |
|||
border-radius: 12rpx; |
|||
background: #F5F5F5; |
|||
padding-bottom: 20rpx; |
|||
|
|||
.items-name { |
|||
padding: 20rpx; |
|||
border-bottom: 1px solid #dedede; |
|||
} |
|||
|
|||
.items-dec { |
|||
padding: 0px 20rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
.list { |
|||
padding: 20rpx; |
|||
|
|||
.item { |
|||
display: flex; |
|||
margin-bottom: 20rpx; |
|||
|
|||
.item-box { |
|||
border-radius: 12rpx; |
|||
border: 1px solid #dedede; |
|||
border-radius: 12rpx; |
|||
|
|||
flex: 1; |
|||
width: 0rpx; |
|||
} |
|||
|
|||
.spare-title { |
|||
padding: 20rpx 30rpx; |
|||
border-bottom: 1px solid #e4e4e4; |
|||
display: flex; |
|||
|
|||
.title-txt { |
|||
color: #409eff; |
|||
font-size: 30rpx; |
|||
font-weight: bold; |
|||
flex: 1; |
|||
} |
|||
} |
|||
|
|||
.dec { |
|||
color: #9c9c9c; |
|||
padding: 0rpx 30rpx 20rpx; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
.add-btn { |
|||
display: flex; |
|||
justify-content: flex-start; |
|||
align-items: center; |
|||
} |
|||
|
|||
.footer { |
|||
position: fixed; |
|||
bottom: 0px; |
|||
left: 0px; |
|||
width: 100%; |
|||
z-index: 22; |
|||
} |
|||
|
|||
.btns { |
|||
display: flex; |
|||
|
|||
|
|||
button { |
|||
flex: 1; |
|||
} |
|||
|
|||
.sure { |
|||
background: #409eff; |
|||
color: white; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border: 1px solid #409eff; |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
|
|||
.reset { |
|||
// background: #F5F5F5; |
|||
background: #ff7a45; /* 使用浅蓝色作为背景色 */ |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,305 +0,0 @@ |
|||
<template> |
|||
<!-- 列表展示标准模版 --> |
|||
<view> |
|||
<u-form :model="form"> |
|||
<view> |
|||
<u-form-item label="产品编码" prop="productionCode"> |
|||
<view> |
|||
<!-- <u-input v-model="form.productName" type="select" @click="showProduct = true" placeholder="请选择产品编码"/> --> |
|||
<u-input v-model="form.productionCode" /> |
|||
</view> |
|||
</u-form-item> |
|||
</view> |
|||
<view> |
|||
<u-form-item label="工作类型" prop="reworkTypeName"> |
|||
<view> |
|||
<u-input v-model="form.reworkTypeName" type="select" @click="showReworkType = true" placeholder="请选择工作类型"/> |
|||
</view> |
|||
</u-form-item> |
|||
</view> |
|||
<view> |
|||
<u-form-item label="是否替换" prop="replaceFlagName"> |
|||
<view> |
|||
<u-input v-model="form.replaceFlagName" type="select" @click="showReplaceFlag = true" placeholder="请选择是否有替换件"/> |
|||
</view> |
|||
</u-form-item> |
|||
</view> |
|||
<view> |
|||
<u-form-item label="返修动作" prop="reworkAction"> |
|||
<view> |
|||
<u-input v-model="form.reworkAction" placeholder="请输入返修动作"/> |
|||
</view> |
|||
</u-form-item> |
|||
</view> |
|||
<view> |
|||
<u-form-item label="返修人员" prop="reworkPersoncode"> |
|||
<view> |
|||
<u-input v-model="form.reworkPersoncode" placeholder="请输入返修人员"/> |
|||
</view> |
|||
</u-form-item> |
|||
</view> |
|||
<view> |
|||
<u-form-item label="返修时间" prop="reworkStr" > |
|||
<view> |
|||
<u-input v-model="form.reworkStr" type="select" @click="showReworkTime = true" placeholder="请选择返修时间"/> |
|||
</view> |
|||
</u-form-item> |
|||
</view> |
|||
<view class="btns"> |
|||
<button class="sure" @click="handleSubmit" :loading='loading' :disabled='loading'>提交处理</button> |
|||
</view> |
|||
</u-form> |
|||
<!-- <view class="footer"> |
|||
|
|||
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> |
|||
</view> |
|||
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> --> |
|||
</view> |
|||
<view> |
|||
<u-select v-model="showProduct" :list="productList" @confirm="selectProduct"></u-select> |
|||
</view> |
|||
|
|||
<view> |
|||
<u-select v-model="showReworkType" :list="reworkTypeList" @confirm="selectReworkType"></u-select> |
|||
</view> |
|||
|
|||
<view> |
|||
<u-select v-model="showReplaceFlag" :list="replaceFlagList" @confirm="selectReplaceFlag"></u-select> |
|||
</view> |
|||
|
|||
<view> |
|||
<u-picker v-model="showReworkTime" mode="time" :params="reworkTimeParams" @confirm="selectReworkTime"></u-picker> |
|||
</view> |
|||
|
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import requestButton from '@/mycomponents/button/requestButton.vue' |
|||
/*初始化*/ |
|||
import { |
|||
onLoad, |
|||
onShow, |
|||
onReachBottom |
|||
} from '@dcloudio/uni-app' |
|||
import { |
|||
ref, |
|||
getCurrentInstance |
|||
} from 'vue' |
|||
/*引入API*/ |
|||
import * as reworkSingleApi from "@/api/mes/reworkSingle/reworkSingleApi.ts" |
|||
const { proxy } = getCurrentInstance() |
|||
const loading = ref(false) |
|||
/*列表数据集*/ |
|||
const list = ref([]) |
|||
const productItem = ref() |
|||
const showProduct = ref(false) |
|||
const showReworkType = ref(false) |
|||
const showReplaceFlag = ref(false) |
|||
const showReworkTime = ref(false) |
|||
const paramData = ref() |
|||
const productList = ref([{label:'产品1',value: '111',name:'产品'},{label:'产品2',value: '222',name:'产品'}]) |
|||
const reworkTypeList = ref([{label:'返工',value: '1'},{label:'返修',value: '2'}]) |
|||
const replaceFlagList = ref([{label:'是',value: '1'},{label:'否',value: '2'}]) |
|||
const reworkTimeParams =ref({ |
|||
year: true, |
|||
month: true, |
|||
day: true, |
|||
hour: true, |
|||
minute: true, |
|||
second: true, |
|||
timestamp: true, |
|||
}) |
|||
const form = ref({ |
|||
status:'1', |
|||
reworkAction:'', |
|||
reworkPersoncode:'', |
|||
processCode:'', |
|||
productionCode:'', |
|||
productName:'', |
|||
stationCode:'', |
|||
offlineReson:'', |
|||
productDestination:'', |
|||
reworkType:'', |
|||
reworkTypeName:'', |
|||
replaceFlag:'', |
|||
replaceFlagName:'', |
|||
reworkTime:'', |
|||
reworkStr:'' |
|||
}) |
|||
|
|||
/*分页参数*/ |
|||
const params = ref({ |
|||
pageNo: 1, |
|||
pageSize: 50, |
|||
flagDo:3 |
|||
}) |
|||
// 提交事件 |
|||
function handleSubmit(){ |
|||
// 验证必填项 |
|||
if(form.value.productionCode=='' && form.value.productionCode.trim() == ''){ |
|||
proxy.$modal.showToast('请先选择产品') |
|||
return |
|||
} |
|||
if(form.value.reworkType=='' && form.value.reworkType.trim() == ''){ |
|||
proxy.$modal.showToast('请先选择工作类型') |
|||
return |
|||
} |
|||
if(form.value.replaceFlag =='' && form.value.replaceFlag.trim() == ''){ |
|||
proxy.$modal.showToast('请先选择是否有替换件') |
|||
return |
|||
} |
|||
// 提交接口 |
|||
proxy.$modal.confirm('确定提交处理吗').then(() => { |
|||
proxy.$modal.loading('加载中') |
|||
loading.value = true |
|||
reworkSingleApi.create(form.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 selectProduct(index){ |
|||
form.value.productionCode = index[0].value |
|||
form.value.productName = index[0].label |
|||
showProduct.value = false |
|||
} |
|||
// 选择工作类型回调函数 |
|||
function selectReworkType(index){ |
|||
form.value.reworkType = index[0].value |
|||
form.value.reworkTypeName = index[0].label |
|||
showReworkType.value = false |
|||
} |
|||
// 选择是否有替换件回调函数 |
|||
function selectReplaceFlag(index){ |
|||
form.value.replaceFlag = index[0].value |
|||
form.value.replaceFlagName = index[0].label |
|||
showReplaceFlag.value = false |
|||
} |
|||
// 选择返工返修时间回调函数 |
|||
function selectReworkTime(index){ |
|||
const dateStr = `${index.year}-${index.month}-${index.day} ${index.hour}:${index.minute}:${index.second}` |
|||
form.value.reworkStr = dateStr |
|||
form.value.reworkTime = index.timestamp + '000' |
|||
console.log(form.value.reworkTime) |
|||
showReworkTime.value = false |
|||
} |
|||
|
|||
function getworkSchedulingPage() { |
|||
reworkSingleApi.getworkSchedulingPage(params.value).then((res) => { |
|||
proxy.$modal.closeLoading() |
|||
if (res.data.list.length > 0) { |
|||
list.value = res.data.list |
|||
productList.value = transList(res.data.list) |
|||
} else { |
|||
proxy.$modal.closeLoading() |
|||
} |
|||
}).catch(() => { |
|||
proxy.$modal.closeLoading() |
|||
}) |
|||
} |
|||
|
|||
function transList(data) { |
|||
const productList = data.map(item => { |
|||
return { |
|||
"label": item.productName, |
|||
"value": item.productCode |
|||
}; |
|||
}); |
|||
return productList; |
|||
} |
|||
|
|||
function findProductByCode(productCode) { |
|||
productItem.value = list.value.find(item => item.productCode === productCode); |
|||
form.value.workBillno = productItem.value.schedulingCode |
|||
form.value.planCode = productItem.value.planMasterCode |
|||
form.value.processCode = productItem.value.workingNode |
|||
form.value.stationCode = productItem.value.currentWorkstation |
|||
} |
|||
|
|||
|
|||
/*是否显示"没有更多了"*/ |
|||
// const status = ref('loadmore') |
|||
|
|||
|
|||
|
|||
/*通用方法*/ |
|||
|
|||
onLoad((option) => { |
|||
if (option.obj) { |
|||
paramData.value = JSON.parse(decodeURIComponent(option.obj)); // 将字符串转换为对象并存入paramData |
|||
form.value.workBillno = paramData.value.schedulingCode |
|||
form.value.planCode = paramData.value.planMasterCode |
|||
form.value.processCode = paramData.value.workingNode |
|||
form.value.stationCode = paramData.value.currentWorkstation |
|||
form.value.productionCode = paramData.value.productCode |
|||
} |
|||
}) |
|||
|
|||
|
|||
onShow(() => { |
|||
// params.value.pageNo = 1 |
|||
// list.value = [] |
|||
// status.value = 'loadmore' |
|||
// getworkSchedulingPage() |
|||
}) |
|||
onReachBottom(() => { |
|||
// getList() |
|||
}) |
|||
|
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.footer { |
|||
position: fixed; |
|||
bottom: 0px; |
|||
left: 0px; |
|||
width: 100%; |
|||
z-index: 22; |
|||
} |
|||
|
|||
.btns { |
|||
display: flex; |
|||
|
|||
|
|||
button { |
|||
flex: 1; |
|||
} |
|||
|
|||
.sure { |
|||
background: #409eff; |
|||
color: white; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border: 1px solid #409eff; |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
|
|||
.reset { |
|||
background: #ff7a45; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |
Loading…
Reference in new issue