TengXF
5 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