解决app页面跳转传参问题

This commit is contained in:
BianLzhaoMin 2024-12-17 17:21:13 +08:00
parent fb1b098f60
commit b68e9764fe
17 changed files with 1002 additions and 735 deletions

View File

@ -2,7 +2,7 @@
"version" : "1.0",
"configurations" : [
{
"playground" : "custom",
"playground" : "standard",
"type" : "uni-app:app-android"
},
{

View File

@ -1,7 +1,7 @@
<template>
<!-- 编码绑定-->
<view class="page-container">
<div class="card" style="margin-bottom: 10px;">
<div class="card" style="margin-bottom: 10px">
<uni-forms :model="formData" label-width="100" :border="true">
<uni-forms-item label="物资名称:" name="maTypeName">
<span class="form-view">{{ queryParams.maTypeName }}</span>
@ -112,7 +112,7 @@
</uni-col>
<uni-col :span="7">
<view>
<uni-easyinput v-model="item.outFacCode" placeholder="请输入"/>
<uni-easyinput v-model="item.outFacCode" placeholder="请输入" />
</view>
</uni-col>
<!-- <uni-col :span="3">
@ -139,27 +139,28 @@
</template>
<script setup>
import { ref, computed,onUnmounted } from 'vue'
import { ref, computed, onUnmounted, reactive } from 'vue'
import { setBindCodingAPI } from '@/services/new-purchase/bind.js'
import { debounce } from 'lodash-es'
import { onLoad,onShow } from '@dcloudio/uni-app'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
import { onLoad, onShow } from '@dcloudio/uni-app'
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
const codeBindingList = ref([])
const codeNum = ref(0)
const queryBindForm = ref({
typeId: '', // typeId
typeName: queryParams.typeName, //
typeName: '', //
codePrefix: '', //
maTypeName: queryParams.maTypeName, //
maTypeName: '', //
codeSuffixEnd: '', //
codeSuffixStart: '', //
})
//
const waitBindNum = computed(() => {
return queryParams.checkNum - queryParams.bindNum - codeNum.value
return queryParams.value.checkNum - queryParams.value.bindNum - codeNum.value
})
//
@ -174,8 +175,8 @@ const onHandleBinding = debounce(async () => {
//
const bindParams = {
typeId: queryParams.typeId,
taskId: queryParams.taskId,
typeId: queryParams.value.typeId,
taskId: queryParams.value.taskId,
dtoList: codeBindingList.value,
}
@ -277,20 +278,27 @@ const onHandelDelete = (index) => {
//
const onCodeIdentify = () => {
uni.navigateTo({ url: `/pages/new-purchase/bind/coding-scan?queryParams=${JSON.stringify(queryParams)}` })
uni.navigateTo({
url: `/pages/new-purchase/bind/coding-scan?queryParams=${JSON.stringify(
queryParams.value,
)}`,
})
}
const maskClick = () => {}
//
onLoad(() => {
onLoad((options) => {
//
uni.$on('onUpdate', (num) => {
console.log('监听事件',num)
if(num>0){
console.log('监听事件', num)
if (num > 0) {
codeNum.value = num
}
})
queryParams.value = JSON.parse(options.queryParams)
queryBindForm.value.typeName = queryParams.value.typeName
queryBindForm.value.maTypeName = queryParams.value.maTypeName
})
//
onUnmounted(() => {
@ -331,7 +339,7 @@ onUnmounted(() => {
font-size: 14px;
}
}
.form-view{
.form-view {
width: 100%;
height: 100%;
display: flex;

View File

@ -1,7 +1,7 @@
<template>
<!-- 编码绑定-->
<view class="page-container">
<div class="card" style="margin-bottom: 10px;">
<div class="card" style="margin-bottom: 10px">
<uni-forms :model="formData" label-width="100" :border="true">
<uni-forms-item label="物资名称:" name="maTypeName">
<span class="form-view">{{ queryParams.maTypeName }}</span>
@ -31,7 +31,6 @@
</uni-forms-item>
<!-- <uni-forms-item label="出场日期:" name="warnDocuments">
</uni-forms-item> -->
</uni-forms>
</div>
<div class="btn">
@ -45,10 +44,11 @@
import { ref, computed } from 'vue'
import { setBindCodingAPI } from '@/services/new-purchase/bind.js'
import { debounce } from 'lodash-es'
import { onShow } from '@dcloudio/uni-app'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
console.log(queryParams)
import { onShow, onLoad } from '@dcloudio/uni-app'
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
// console.log(queryParams)
const formData = ref({
maCode: '',
outFacCode: '',
@ -56,7 +56,11 @@ const formData = ref({
const codeNun = ref(0)
//
const waitBindNum = computed(() => {
return queryParams.checkNum - queryParams.bindNum - codeNun.value
return queryParams.value.checkNum - queryParams.value.bindNum - codeNun.value
})
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
})
//
@ -67,7 +71,7 @@ const scanStart = () => {
onlyFromCamera: true,
scanType: ['qrCode', 'pdf417'],
success: (res) => {
console.log('扫码结果:' + res.result);
console.log('扫码结果:' + res.result)
formData.value.maCode = res.result
},
fail: (err) => {
@ -75,23 +79,25 @@ const scanStart = () => {
// title: '',
// icon: 'none'
// });
}
});
},
})
}
//
const onHandleBinding = debounce(async () => {
let codeList = [{
"typeName": queryParams.typeName,
"maTypeName": queryParams.maTypeName,
"outFacCode": formData.value.outFacCode,
"maCode": formData.value.maCode
}]
let codeList = [
{
typeName: queryParams.value.typeName,
maTypeName: queryParams.value.maTypeName,
outFacCode: formData.value.outFacCode,
maCode: formData.value.maCode,
},
]
//
const bindParams = {
typeId: queryParams.typeId,
taskId: queryParams.taskId,
typeId: queryParams.value.typeId,
taskId: queryParams.value.taskId,
dtoList: codeList,
}
@ -104,23 +110,23 @@ const onHandleBinding = debounce(async () => {
title: '编码绑定成功!',
icon: 'none',
})
formData.value.outFacCode = ""
formData.value.maCode = ""
codeNun.value = codeNun.value+1;
uni.$emit('onUpdate',codeNun.value)
formData.value.outFacCode = ''
formData.value.maCode = ''
codeNun.value = codeNun.value + 1
uni.$emit('onUpdate', codeNun.value)
}
}, 500)
//
//
const backPage = () => {
uni.navigateBack({
delta: 1
delta: 1,
})
}
//
onShow(() => {
setTimeout(()=>{
setTimeout(() => {
scanStart()
},500)
}, 500)
})
</script>
@ -137,7 +143,7 @@ onShow(() => {
border-radius: 6px;
box-shadow: 0 2upx 4upx 0 rgba(0, 0, 0, 0.1);
}
.scan-btn{
.scan-btn {
width: 94%;
margin: 5px auto;
}
@ -161,7 +167,7 @@ onShow(() => {
}
}
}
.form-view{
.form-view {
width: 100%;
height: 100%;
display: flex;

View File

@ -103,10 +103,14 @@
<script setup>
import { ref, onUnmounted } from 'vue'
import { getPurchaseBindDetailsAPI } from '@/services/new-purchase/bind.js'
import { onLoad,onShow } from '@dcloudio/uni-app'
import { onLoad, onShow } from '@dcloudio/uni-app'
const detailsList = ref([])
const query = defineProps() //
// const query = defineProps() //
onLoad((options) => {
queryParams.value.taskId = options.taskId
queryParams.value.id = options.id
leaseApplyInfo.value.taskId = options.taskId
})
//
const options = ref([
{
@ -139,8 +143,8 @@ const options = ref([
const queryParams = ref({
pageNum: 1,
pageSize: 10,
taskId: query.taskId,
id: query.id,
taskId: '',
id: '',
statusList: [3, 13],
})
@ -152,7 +156,7 @@ const leaseApplyInfo = ref({
bindNum: '', //
checkNum: '', //
typeId: '', // typeId
taskId: query.taskId, // taskId
taskId: '', // taskId
})
//
@ -186,7 +190,11 @@ const onClick = (e, item) => {
}
// 2.
if (index === 1) {
uni.navigateTo({ url: `/pages/new-purchase/bind/coding-scan?queryParams=${JSON.stringify(leaseApplyInfo.value)}` })
uni.navigateTo({
url: `/pages/new-purchase/bind/coding-scan?queryParams=${JSON.stringify(
leaseApplyInfo.value,
)}`,
})
}
// 3.
if (index === 2) {
@ -197,7 +205,6 @@ const onClick = (e, item) => {
onShow(() => {
getOutboundDetailsData()
})
</script>
<style lang="scss" scoped>

View File

@ -36,7 +36,12 @@
</uni-row>
<scroll-view scroll-y @scrolltolower="onScrollTolower" class="scroll-container">
<view class="table-list-item" :key="index" @click="handleItem(item)" v-for="(item, index) in tableList">
<view
class="table-list-item"
:key="index"
@click="handleItem(item)"
v-for="(item, index) in tableList"
>
<div class="line"></div>
<uni-row :gutter="24">
<uni-col :span="6">到货时间</uni-col>

View File

@ -16,11 +16,10 @@
</uni-row>
</view> -->
<scroll-view scroll-y @scrolltolower="onScrollTolower" style="padding-bottom: 85rpx">
<view class="table-list-item" v-for="item in codeDeviceList" :key="item.id">
<uni-row :gutter="24">
<uni-col :span="7" >类型名称</uni-col>
<uni-col :span="7">类型名称</uni-col>
<uni-col :span="13">
<view class="cont">{{ queryParams.maTypeName }}</view>
</uni-col>
@ -51,7 +50,6 @@
</uni-col>
</uni-row>
</view>
</scroll-view>
<view class="outbound-btn" @tap="onHandleOutbound"> 入库 </view>
@ -60,13 +58,14 @@
<script setup>
import { ref, computed } from 'vue'
import { getMachineById,setInboundCodeAPI } from '@/services/purchase.js'
import { onBackPress,onLoad } from '@dcloudio/uni-app'
import { getMachineById, setInboundCodeAPI } from '@/services/purchase.js'
import { onBackPress, onLoad } from '@dcloudio/uni-app'
const codeDeviceList = ref([])
const total = ref(0)
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
// const typeId = ref('')
// const taskId = ref('')
@ -74,7 +73,8 @@ const queryParams = JSON.parse(query.queryParams)
// const typeName = ref('')
//
onLoad(() => {
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
// typeId.value = options.typeId
// taskId.value = options.taskId
// maTypeName.value = options.maTypeName
@ -91,10 +91,10 @@ onLoad(() => {
//
const getCodeDeviceListData = async () => {
console.log('queryParams',queryParams)
console.log('queryParams', queryParams.value)
let obj = {
"typeId":queryParams.typeId,
"taskId":queryParams.taskId,
typeId: queryParams.value.typeId,
taskId: queryParams.value.taskId,
}
const res = await getMachineById(obj)
codeDeviceList.value.push(...res.data)
@ -106,13 +106,11 @@ const getCodeDeviceListData = async () => {
}
}
//
const onScrollTolower = () => {
console.log('滚动触底--')
}
//
const onChangeChecked = (item) => {
item.checked = !item.checked
@ -140,7 +138,12 @@ const onHandleOutbound = async () => {
}
})
const res = await setInboundCodeAPI({taskId:queryParams.taskId, typeId:queryParams.typeId, purchaseId:queryParams.id, inPutList: paramsList })
const res = await setInboundCodeAPI({
taskId: queryParams.value.taskId,
typeId: queryParams.value.typeId,
purchaseId: queryParams.value.id,
inPutList: paramsList,
})
if (res.code === 200) {
uni.showToast({

View File

@ -35,8 +35,17 @@
</view>
</uni-col>
<uni-col :span="6">
<view class="coding-btn" style="padding: 10rpx 0;color: #fe9a09;background-color: #fff7eb;border: 1px solid #fe9a09;"
@click="getMaInfo">编码检索</view>
<view
class="coding-btn"
style="
padding: 10rpx 0;
color: #fe9a09;
background-color: #fff7eb;
border: 1px solid #fe9a09;
"
@click="getMaInfo"
>编码检索</view
>
</uni-col>
</uni-row>
</view>
@ -67,8 +76,10 @@ import { getCodeDeviceListAPI, setOutboundNumAPI } from '@/services/picking/outb
import { onBackPress } from '@dcloudio/uni-app'
import { debounce } from 'lodash-es'
import { onShow } from '@dcloudio/uni-app'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
import { onLoad } from '@dcloudio/uni-app'
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
const formData = ref({})
const codeData = ref({})
const codeNum = ref(0)
@ -76,14 +87,19 @@ const codeNum = ref(0)
const queryCodeParams = ref({
pageNum: 1,
pageSize: 10,
typeId: queryParams.typeId,
typeId: '',
maStatus: 1,
maCode: '',
})
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
queryCodeParams.value.typeId = queryParams.value.typeId
})
//
const maxNum = computed(() => {
//
const waitNum = queryParams.preNum - queryParams.alNum - codeNum.value
const waitNum = queryParams.value.preNum - queryParams.value.alNum - codeNum.value
return waitNum
})
//
@ -94,7 +110,7 @@ const scanStart = () => {
onlyFromCamera: true,
scanType: ['qrCode', 'pdf417'],
success: (res) => {
console.log('扫码结果:' + res.result);
console.log('扫码结果:' + res.result)
queryCodeParams.value.maCode = res.result
},
fail: (err) => {
@ -102,19 +118,19 @@ const scanStart = () => {
// title: '',
// icon: 'none'
// });
}
});
},
})
}
//
const getMaInfo = async() => {
const getMaInfo = async () => {
console.log('queryCodeParams', queryCodeParams.value)
const res = await getCodeDeviceListAPI(queryCodeParams.value)
console.log(res)
if(res.code==200){
if(res.rows&&res.rows.length>0){
if (res.code == 200) {
if (res.rows && res.rows.length > 0) {
codeData.value = res.rows[0]
}else{
} else {
uni.showToast({ title: '未查询到该编码', icon: 'none' })
}
}
@ -130,17 +146,17 @@ const onHandleOutbound = async () => {
title: '出库成功!',
icon: 'none',
})
queryCodeParams.value.maCode="";
codeData.value = {};
codeNum.value = codeNum.value+1;
uni.$emit('onUpdate',codeNun.value)
queryCodeParams.value.maCode = ''
codeData.value = {}
codeNum.value = codeNum.value + 1
uni.$emit('onUpdate', codeNun.value)
}
}
//
onShow(() => {
setTimeout(()=>{
setTimeout(() => {
scanStart()
},500)
}, 500)
})
</script>
@ -173,16 +189,16 @@ onShow(() => {
}
}
}
.scan-btn{
.scan-btn {
width: 94%;
margin: 5px auto;
}
.form-view{
.form-view {
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
}
//
.loading-text {
text-align: center;

View File

@ -120,13 +120,14 @@
</template>
<script setup>
import { ref, computed,onUnmounted } from 'vue'
import { onLoad,onShow } from '@dcloudio/uni-app'
import { ref, computed, onUnmounted } from 'vue'
import { onLoad, onShow } from '@dcloudio/uni-app'
import { getCodeDeviceListAPI, setOutboundNumAPI } from '@/services/picking/outbound.js'
import { onBackPress } from '@dcloudio/uni-app'
import { debounce } from 'lodash-es'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
const formData = ref({})
const codeDeviceList = ref([])
const total = ref(0)
@ -136,7 +137,7 @@ const codeNum = ref(0)
const queryCodeParams = ref({
pageNum: 1,
pageSize: 10,
typeId: queryParams.typeId,
typeId: '',
maStatus: 1,
maCode: '',
})
@ -144,7 +145,7 @@ const queryCodeParams = ref({
//
const maxNum = computed(() => {
// 1.
const waitNum = queryParams.preNum - queryParams.alNum - codeNum.value
const waitNum = queryParams.value.preNum - queryParams.value.alNum - codeNum.value
// 2.
return total.value > waitNum ? waitNum : total.value
@ -163,12 +164,15 @@ const getCodeDeviceListData = async () => {
}
total.value = res.total
}
getCodeDeviceListData()
//
const onCodeIdentify = () => {
console.log('编码识别--')
uni.navigateTo({ url: `/pages/picking/outbound/code-outScan?queryParams=${JSON.stringify(queryParams)}` })
uni.navigateTo({
url: `/pages/picking/outbound/code-outScan?queryParams=${JSON.stringify(
queryParams.value,
)}`,
})
// //
// uni.scanCode({
// onlyFromCamera: true,
@ -231,7 +235,7 @@ const onHandleOutbound = async () => {
}
//
const { typeId, parentId } = queryParams
const { typeId, parentId } = queryParams.value
//
const paramsList = []
codeDeviceList.value.map((e) => {
@ -268,19 +272,20 @@ const onHandleOutbound = async () => {
}
//
onLoad(() => {
onLoad((options) => {
//
uni.$on('onUpdate', (num) => {
console.log('监听事件', num)
codeNum.value = num
})
queryParams.value = JSON.parse(options.queryParams)
queryCodeParams.typeId = queryParams.value.typeId
getCodeDeviceListData()
})
//
onUnmounted(() => {
uni.$off('onUpdate') //
})
</script>
<style lang="scss" scoped>
@ -312,12 +317,12 @@ onUnmounted(() => {
}
}
}
.form-view{
.form-view {
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
}
//
.loading-text {
text-align: center;

View File

@ -13,10 +13,12 @@
</uni-row>
<scroll-view scroll-y class="scroll-container">
<view v-for="(item, index) in detailsList"
<view
v-for="(item, index) in detailsList"
:key="index"
class="table-list-item"
@tap="onCodingItem(item)">
@tap="onCodingItem(item)"
>
<div class="title">
<span style="font-size: 15px; font-weight: 800">领料出库</span>
<span v-if="item.status == 2" style="color: #3784fb">已完成</span>
@ -101,10 +103,10 @@
<script setup>
import { ref, onUnmounted } from 'vue'
import { getOutboundDetailsAPI } from '@/services/picking/outbound.js'
import { onLoad,onShow } from '@dcloudio/uni-app'
import { onLoad, onShow } from '@dcloudio/uni-app'
const detailsList = ref([])
const query = defineProps() //
// const query = defineProps() //
//
const leaseApplyInfo = ref({
@ -117,15 +119,20 @@ const leaseApplyInfo = ref({
unitName: '', //
storageNum: '', //
preNum: '', //
parentId: query.id, // id
parentId: '', // id
id: '', // id
typeId: '', // typeId
manageType: '', // manageType
})
onLoad((options) => {
leaseApplyInfo.value.parentId = options.id
getOutboundDetailsData()
})
//
const getOutboundDetailsData = async () => {
const { data: res } = await getOutboundDetailsAPI(query.id)
const { data: res } = await getOutboundDetailsAPI(leaseApplyInfo.value.parentId)
detailsList.value = res.leaseApplyDetailsList
console.log(res.leaseApplyInfo)
leaseApplyInfo.value.leaseUnitId = res.leaseApplyInfo.leaseUnitId
@ -150,7 +157,7 @@ const onCodingItem = (item) => {
unitName,
id,
typeId,
unitValue
unitValue,
} = item
leaseApplyInfo.value.maTypeName = maTypeName
leaseApplyInfo.value.typeName = typeName

View File

@ -29,11 +29,16 @@
<span class="form-view">{{ queryParams.alNum }}</span>
</uni-forms-item>
<uni-forms-item label="出库数量:">
<uni-easyinput v-model="outboundNum" type="number" :clearable="false" placeholder="出库数量" @input="onChangeNumber"/>
<uni-easyinput
v-model="outboundNum"
type="number"
:clearable="false"
placeholder="出库数量"
@input="onChangeNumber"
/>
</uni-forms-item>
</uni-forms>
<view class="outbound-btn" @tap="onHandleOutbound"> 出库 </view>
</view>
</view>
@ -42,40 +47,46 @@
<script setup>
import { computed, ref } from 'vue'
import { setOutboundNumAPI } from '@/services/picking/outbound.js'
import { onLoad } from '@dcloudio/uni-app'
const formData = ref({})
const outboundNum = ref(0)
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
//
const maxNum = computed(() => {
// 1.
const waitNum = queryParams.preNum - queryParams.alNum
const waitNum = queryParams.value.preNum - queryParams.value.alNum
// 2.
return queryParams.storageNum > waitNum ? waitNum : queryParams.storageNum
return queryParams.value.storageNum > waitNum ? waitNum : queryParams.value.storageNum
})
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
})
// change
const onChangeNumber = (e) => {
// outboundNum.value
setTimeout(()=>{
if(queryParams.unitValue==1){
outboundNum.value = Number(e.replace(/[^\d.]/g,''))
}else{
outboundNum.value = Number(e.replace(/[^\d]/g,''))
setTimeout(() => {
if (queryParams.value.unitValue == 1) {
outboundNum.value = Number(e.replace(/[^\d.]/g, ''))
} else {
outboundNum.value = Number(e.replace(/[^\d]/g, ''))
}
if (Number(e)<= 0) {
outboundNum.value = 0;
if (Number(e) <= 0) {
outboundNum.value = 0
}
if (Number(e) > maxNum.value) {
uni.showToast({
title: '已达到当前物资最大出库数量!',
icon: 'none',
})
outboundNum.value = maxNum.value;
outboundNum.value = maxNum.value
}
},500)
}, 500)
}
//
@ -89,7 +100,8 @@ const onHandleOutbound = async () => {
}
//
const { maTypeName, typeName, preNum, alNum, id, typeId, parentId, manageType } = queryParams
const { maTypeName, typeName, preNum, alNum, id, typeId, parentId, manageType } =
queryParams.value
//
const params = {
alNum,
@ -186,7 +198,7 @@ const onHandleOutbound = async () => {
background-color: #e8e8e8;
}
}
.form-view{
.form-view {
width: 100%;
height: 100%;
display: flex;

View File

@ -1,7 +1,6 @@
<template>
<!-- 数量出库 -->
<view class="page-container">
<view class="table-list-item">
<uni-row :gutter="24">
<uni-col :span="6">物资名称</uni-col>
@ -22,18 +21,30 @@
</uni-col>
</uni-row>
</view>
<uni-row :gutter="24" class="search-form" style="background: #fff;padding: 10px;margin: 5px;border-radius: 5px;">
<uni-row
:gutter="24"
class="search-form"
style="background: #fff; padding: 10px; margin: 5px; border-radius: 5px"
>
<uni-col :span="5">
<view class="btnBox" style="background-color: #18bc37" @click="changeTab(1)"> 内部维修 </view>
<view class="btnBox" style="background-color: #18bc37" @click="changeTab(1)">
内部维修
</view>
</uni-col>
<uni-col :span="5">
<view class="btnBox" style="background-color: #f3a73f" @click="changeTab(2)"> 返场维修 </view>
<view class="btnBox" style="background-color: #f3a73f" @click="changeTab(2)">
返场维修
</view>
</uni-col>
<uni-col :span="5">
<view class="btnBox" style="background-color: #EE6969" @click="changeTab(3)"> 待报废 </view>
<view class="btnBox" style="background-color: #ee6969" @click="changeTab(3)">
待报废
</view>
</uni-col>
<uni-col :span="5">
<view class="btnBox" style="background-color: #18bc37" @click="saveCode"> 维修完成 </view>
<view class="btnBox" style="background-color: #18bc37" @click="saveCode">
维修完成
</view>
</uni-col>
</uni-row>
<scroll-view scroll-y style="padding-bottom: 20rpx">
@ -55,15 +66,15 @@
</view>
<!-- 内部维修 -->
<view class="table-list-item" v-if="repairType==1">
<view class="table-list-item" v-if="repairType == 1">
<h2 style="padding: 4rpx 0; font-weight: bold">内部维修</h2>
<uni-forms ref="baseForm" label-align="right" >
<uni-forms ref="baseForm" label-align="right">
<!-- <uni-forms-item label="维修数量">
<uni-easyinput placeholder="请填写维修数量" v-model="formLeft.repairNum"/>
</uni-forms-item> -->
<div v-for="(item, index) in partItems" :key="index">
<uni-forms-item label="配件类型">
<uni-easyinput placeholder="配件类型" v-model="item.partId"/>
<uni-easyinput placeholder="配件类型" v-model="item.partId" />
<!-- <ssha-dropdownSelect
:search="true"
label="label"
@ -75,24 +86,41 @@
</ssha-dropdownSelect> -->
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput placeholder="配件数量" v-model="item.partNum" type="number" :clearable="false" @input="partCheckNum(item)"/>
<uni-easyinput
placeholder="配件数量"
v-model="item.partNum"
type="number"
:clearable="false"
@input="partCheckNum(item)"
/>
</uni-forms-item>
<uni-forms-item label="是否收费">
<div style="width: 100%;display: flex;">
<uni-data-select :localdata="isChargeList" v-model="item.isCharge" placeholder="请选择是否收费" />
<div style="width:50px;margin-left: 10px;">
<span style="margin-right: 10px;font-size: 24px;color: #19be6b;" @click="addPart">+</span>
<span style="font-size: 24px;color: red;" @click="delPart(index)">-</span>
<div style="width: 100%; display: flex">
<uni-data-select
:localdata="isChargeList"
v-model="item.isCharge"
placeholder="请选择是否收费"
/>
<div style="width: 50px; margin-left: 10px">
<span
style="margin-right: 10px; font-size: 24px; color: #19be6b"
@click="addPart"
>+</span
>
<span
style="font-size: 24px; color: red"
@click="delPart(index)"
>-</span
>
</div>
</div>
</uni-forms-item>
</div>
</uni-forms>
</view>
<!-- 返厂维修 -->
<view class="table-list-item" v-if="repairType==2">
<view class="table-list-item" v-if="repairType == 2">
<h2 style="padding: 4rpx 0; font-weight: bold">返厂维修</h2>
<uni-forms ref="baseForm" label-align="right">
<!-- <uni-forms-item label="维修数量">
@ -101,23 +129,51 @@
<div v-for="(item, index) in partItemsMiddle" :key="index">
<uni-forms-item label="配件名称">
<uni-easyinput placeholder="配件类型" v-model="item.partName"/>
<uni-easyinput placeholder="配件类型" v-model="item.partName" />
</uni-forms-item>
<uni-forms-item label="物资厂家">
<uni-data-select :localdata="partsMillList" v-model="item.supplierId" placeholder="请选择物资厂家" />
<uni-data-select
:localdata="partsMillList"
v-model="item.supplierId"
placeholder="请选择物资厂家"
/>
</uni-forms-item>
<uni-forms-item label="是否收费">
<uni-data-select :localdata="isChargeList" v-model="item.isCharge" placeholder="请选择是否收费" />
<uni-data-select
:localdata="isChargeList"
v-model="item.isCharge"
placeholder="请选择是否收费"
/>
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput v-model="item.partNum" placeholder="请输入配件数量" type="number" :clearable="false" @input="partCheckNum(item)"/>
<uni-easyinput
v-model="item.partNum"
placeholder="请输入配件数量"
type="number"
:clearable="false"
@input="partCheckNum(item)"
/>
</uni-forms-item>
<uni-forms-item label="金额">
<div style="width: 100%;display: flex;">
<uni-easyinput v-model="item.partPrice" placeholder="请输入金额" type="number" :clearable="false" @input="costCheckNum(item)"/>
<div style="width:50px;margin-left: 10px;">
<span style="margin-right: 10px;font-size: 24px;color: #19be6b;" @click="addMidPart">+</span>
<span style="font-size: 24px;color: red;" @click="delMidPart(index)">-</span>
<div style="width: 100%; display: flex">
<uni-easyinput
v-model="item.partPrice"
placeholder="请输入金额"
type="number"
:clearable="false"
@input="costCheckNum(item)"
/>
<div style="width: 50px; margin-left: 10px">
<span
style="margin-right: 10px; font-size: 24px; color: #19be6b"
@click="addMidPart"
>+</span
>
<span
style="font-size: 24px; color: red"
@click="delMidPart(index)"
>-</span
>
</div>
</div>
</uni-forms-item>
@ -126,17 +182,24 @@
</view>
<!-- 维修报废 -->
<view class="table-list-item" v-if="repairType==3">
<view class="table-list-item" v-if="repairType == 3">
<h2 style="padding: 4rpx 0; font-weight: bold">维修报废</h2>
<uni-forms ref="baseForm" label-align="right">
<!-- <uni-forms-item label="报废数量">
<uni-easyinput placeholder="请填写报废数量" v-model="formRight.scrapNum"/>
</uni-forms-item> -->
<uni-forms-item label="报废原因">
<uni-easyinput placeholder="请填写报废原因" v-model="formRight.scrapReason"/>
<uni-easyinput
placeholder="请填写报废原因"
v-model="formRight.scrapReason"
/>
</uni-forms-item>
<uni-forms-item label="损坏原因">
<uni-data-select :localdata="damageReasonList" v-model="formRight.scrapType" placeholder="请选择损坏原因" />
<uni-data-select
:localdata="damageReasonList"
v-model="formRight.scrapType"
placeholder="请选择损坏原因"
/>
</uni-forms-item>
<!-- <uni-forms-item label="其他原因">
<uni-easyinput placeholder="请填写其他原因" />
@ -152,10 +215,16 @@
<script setup>
import { computed, ref } from 'vue'
import { partTypeTreeList,getSupplierList,saveRepairRow } from '@/services/repair/repair.js'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
const rowIndex = query.rowIndex;
import { partTypeTreeList, getSupplierList, saveRepairRow } from '@/services/repair/repair.js'
import { onLoad } from '@dcloudio/uni-app'
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
})
const rowIndex = query.rowIndex
const repairType = ref(1)
const changeTab = async (e) => {
@ -179,13 +248,13 @@ const isChargeList = ref([
{ value: 2, text: '否' },
])
//
const partItems = ref([{ partType: "", partNum: "", isCharge: "",partId: "16" }])
const partItems = ref([{ partType: '', partNum: '', isCharge: '', partId: '16' }])
const addPart = () => {
partItems.value.push({ partType: "", partNum: "", isCharge: "", partId: "16" });
partItems.value.push({ partType: '', partNum: '', isCharge: '', partId: '16' })
}
const delPart = (index) => {
if (partItems.value.length > 1) {
partItems.value.splice(index, 1);
partItems.value.splice(index, 1)
}
}
const partIds = ref([])
@ -193,35 +262,42 @@ const formLeft = ref({
// repairNum:0
})
const partTreeData = ref([])
const getPartTreeData = async() => {
const getPartTreeData = async () => {
const res = await partTypeTreeList({})
partTreeData.value = res.data;
partTreeData.value = res.data
console.log(res)
}
getPartTreeData()
//
const partsMillList = ref([])
const getSupplierListData = async() => {
const getSupplierListData = async () => {
const res = await getSupplierList({})
partsMillList.value = res.rows.map(item=>{
partsMillList.value = res.rows.map((item) => {
let obj = {
value:item.supplierId,
text:item.supplier
value: item.supplierId,
text: item.supplier,
}
return obj
});
})
}
getSupplierListData()
const partItemsMiddle = ref([{ partName: "", supplierId: "", partNum: "", partPrice: "0", isCharge: "" },])
const partItemsMiddle = ref([
{ partName: '', supplierId: '', partNum: '', partPrice: '0', isCharge: '' },
])
const addMidPart = () => {
partItemsMiddle.value.push({ partName: "", supplierId: "", partNum: "", partPrice: "0", isCharge: "" });
partItemsMiddle.value.push({
partName: '',
supplierId: '',
partNum: '',
partPrice: '0',
isCharge: '',
})
}
const delMidPart = (index) => {
if (partItemsMiddle.value.length > 1) {
partItemsMiddle.value.splice(index, 1);
partItemsMiddle.value.splice(index, 1)
}
}
const formMiddle = ref({
@ -232,23 +308,24 @@ const formMiddle = ref({
//
const formRight = ref({
// scrapNum:0,
scrapType:undefined,
scrapReason:undefined,
scrapType: undefined,
scrapReason: undefined,
})
const rowData = ref(queryParams)
const rowData = ref({})
//
const saveCode = async() => {
console.log(rowData)
if(repairType.value==1){
const saveCode = async () => {
// console.log(rowData)
rowData.value = queryParams.value
if (repairType.value == 1) {
for (let i = 0; i < partItems.value.length; i++) {
rowData.value.repairDeviceList[rowIndex].codeInRepairPartList.push({
isCharge: partItems.value[i].isCharge,
partId: partItems.value[i].partId,
partNum: partItems.value[i].partNum,
// repairNum: formLeft.value.repairNum,
});
})
}
}else if(repairType.value==2){
} else if (repairType.value == 2) {
for (let i = 0; i < partItemsMiddle.value.length; i++) {
rowData.value.repairDeviceList[rowIndex].codeOutRepairPartList.push({
isCharge: partItemsMiddle.value[i].isCharge,
@ -257,26 +334,26 @@ const saveCode = async() => {
partName: partItemsMiddle.value[i].partName,
supplierId: partItemsMiddle.value[i].supplierId,
// repairNum: formMiddle.value.repairNum,
});
})
}
}else if(repairType.value==3){
} else if (repairType.value == 3) {
// this.uploadKey = Date.now();
// if(this.fileList.length!=0){
// await this.getImaUpload(),
formRight.value.fileList = [];
formRight.value.fileList = []
// }else{
// formRight.value.fileList = this.fileListTemp;
// }
// console.log('formRight.value',formRight.value)
rowData.value.repairDeviceList[rowIndex].codeScrapRepairPartList.push(formRight.value)
}
rowData.value.repairDeviceList[rowIndex].repairType = repairType.value;
rowData.value.repairDeviceList[rowIndex].repairType = repairType.value
saveRepairRow(rowData.value.repairDeviceList).then(async (response) => {
if (response.code == 200) {
uni.showToast({ title: '保存成功', icon: 'none' })
uni.navigateBack({
delta: 2 //
});
delta: 2, //
})
// this.$modal.msgSuccess("");
// this.fileList=[];
// this.fileListTemp=[];
@ -291,31 +368,25 @@ const saveCode = async() => {
// e.disrepairNum = Number(e.typeRepairNum) - Number(e.typeRepairedNum);
// });
}
});
})
}
// change
const partCheckNum = (item) => {
// console.log(item)
// console.log(item.partNum)
setTimeout(()=>{
item.partNum = Number(String(item.partNum).replace(/[^\d.]/g,''))
},500)
setTimeout(() => {
item.partNum = Number(String(item.partNum).replace(/[^\d.]/g, ''))
}, 500)
}
// change
const costCheckNum = (item) => {
// console.log(item)
// console.log(item.partPrice)
setTimeout(()=>{
item.partPrice = Number(String(item.partPrice).replace(/[^\d.]/g,''))
},500)
setTimeout(() => {
item.partPrice = Number(String(item.partPrice).replace(/[^\d.]/g, ''))
}, 500)
}
</script>
<style lang="scss" scoped>

View File

@ -30,7 +30,9 @@
<uni-row :gutter="24">
<uni-col :span="6">待修数量</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.typeRepairNum - queryParams.typeRepairedNum }}</view>
><view class="cont">{{
queryParams.typeRepairNum - queryParams.typeRepairedNum
}}</view>
</uni-col>
</uni-row>
</view>
@ -49,7 +51,7 @@
</label>
</checkbox-group>
</view> -->
<div v-for="(item,index) in repairDeviceList" :key="index" >
<div v-for="(item, index) in repairDeviceList" :key="index">
<view class="table-list-item" @click="goOperate(index)">
<uni-row :gutter="24">
<!-- <uni-col :span="2">
@ -65,52 +67,59 @@
</label>
</checkbox-group>
</uni-col> -->
<uni-col :span="2">{{ index+1 }}.</uni-col>
<uni-col :span="2">{{ index + 1 }}.</uni-col>
<!-- <uni-col :span="6">{{ queryParams.type }}</uni-col> -->
<uni-col :span="16">{{item.code}}</uni-col>
<uni-col :span="16">{{ item.code }}</uni-col>
<uni-col :span="6">
<view class="cont" v-if="item.status == '1'" style="color: green">已完成</view>
<view class="cont" v-if="item.status == '0'" style="color: red">未完成</view>
<view class="cont" v-if="item.status == '1'" style="color: green"
>已完成</view
>
<view class="cont" v-if="item.status == '0'" style="color: red"
>未完成</view
>
</uni-col>
</uni-row>
</view>
</div>
</view>
</template>
<script setup>
import { computed, ref } from 'vue'
import { auditRepairPass } from '@/services/repair/repair.js'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
console.log(queryParams)
import { onLoad } from '@dcloudio/uni-app'
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
// console.log(queryParams)
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
})
const allChecked = ref(false)
const repairDeviceList = ref(queryParams.repairDeviceList)
//
const goOperate = (index) => {
const codingUrl = '/pages/repair/repairManage/code-operate' //
uni.navigateTo({ url: `${codingUrl}?queryParams=${JSON.stringify(queryParams)}&rowIndex=${index}` })
uni.navigateTo({
url: `${codingUrl}?queryParams=${JSON.stringify(queryParams.value)}&rowIndex=${index}`,
})
}
const onQualified = async () => {
console.log(queryParams)
const res = await auditRepairPass(queryParams.ids)
const res = await auditRepairPass(queryParams.value.ids)
if (res.code === 200) {
uni.showToast({
title: '操作成功!',
icon: 'none',
})
uni.navigateBack({
delta: 1 //
});
delta: 1, //
})
}
}
</script>
<style lang="scss" scoped>

View File

@ -111,13 +111,14 @@
<script setup>
import { ref, onUnmounted, computed } from 'vue'
import { getRepairDetailsAPI, auditRepairPass } from '@/services/repair/repair.js'
import { onLoad,onShow } from '@dcloudio/uni-app'
const detailsList = ref([])
const query = defineProps() //
import { onLoad, onShow } from '@dcloudio/uni-app'
// const detailsList = ref([])
// const query = defineProps() //
const taskId = ref('')
//
const getOutboundDetailsData = async () => {
const res = await getRepairDetailsAPI({ taskId: query.taskId })
const res = await getRepairDetailsAPI({ taskId: taskId.value })
detailsList.value = res.data
detailsList.value = detailsList.value.map((e) => {
return { ...e, isChecked: false }
@ -160,10 +161,10 @@ const onQualified = async () => {
const ids = []
detailsList.value.forEach((e) => {
if (e.isChecked) {
if(e.ids.length>0){
e.ids.forEach((f =>{
if (e.ids.length > 0) {
e.ids.forEach((f) => {
ids.push(f)
}))
})
}
}
})
@ -195,8 +196,10 @@ const onRepairItem = (item) => {
onShow(() => {
getOutboundDetailsData()
})
//
onLoad(() => {
onLoad((options) => {
taskId.value = options.taskId
getOutboundDetailsData()
//
uni.$on('onUpdate', () => {

View File

@ -3,7 +3,9 @@
<view class="page-container">
<uni-row :gutter="24" class="search-form">
<uni-col :span="6">
<view class="search" style="background-color: #19be6b" @click="saveNumAll"> 维修完成 </view>
<view class="search" style="background-color: #19be6b" @click="saveNumAll">
维修完成
</view>
</uni-col>
</uni-row>
<view class="table-list-item">
@ -22,7 +24,9 @@
<uni-row :gutter="24">
<uni-col :span="6">待修数量</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.typeRepairNum - queryParams.typeRepairedNum }}</view>
><view class="cont">{{
queryParams.typeRepairNum - queryParams.typeRepairedNum
}}</view>
</uni-col>
</uni-row>
</view>
@ -48,13 +52,19 @@
<!-- 内部维修 -->
<view class="table-list-item">
<h2 style="padding: 4rpx 0; font-weight: bold">内部维修</h2>
<uni-forms ref="baseForm" label-align="right" >
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="维修数量">
<uni-easyinput placeholder="请填写维修数量" v-model="formLeft.repairNum" type="number" :clearable="false" @input="repairCheckNum1"/>
<uni-easyinput
placeholder="请填写维修数量"
v-model="formLeft.repairNum"
type="number"
:clearable="false"
@input="repairCheckNum1"
/>
</uni-forms-item>
<div v-for="(item, index) in partItems" :key="index">
<uni-forms-item label="配件类型">
<uni-easyinput placeholder="配件类型" v-model="item.partId"/>
<uni-easyinput placeholder="配件类型" v-model="item.partId" />
<!-- <ssha-dropdownSelect
:search="true"
label="label"
@ -66,18 +76,35 @@
</ssha-dropdownSelect> -->
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput placeholder="配件数量" v-model="item.partNum" type="number" :clearable="false" @input="partCheckNum(item)"/>
<uni-easyinput
placeholder="配件数量"
v-model="item.partNum"
type="number"
:clearable="false"
@input="partCheckNum(item)"
/>
</uni-forms-item>
<uni-forms-item label="是否收费">
<div style="width: 100%;display: flex;">
<uni-data-select :localdata="isChargeList" v-model="item.isCharge" placeholder="请选择是否收费" />
<div style="width:50px;margin-left: 10px;">
<span style="margin-right: 10px;font-size: 24px;color: #19be6b;" @click="addPart">+</span>
<span style="font-size: 24px;color: red;" @click="delPart(index)">-</span>
<div style="width: 100%; display: flex">
<uni-data-select
:localdata="isChargeList"
v-model="item.isCharge"
placeholder="请选择是否收费"
/>
<div style="width: 50px; margin-left: 10px">
<span
style="margin-right: 10px; font-size: 24px; color: #19be6b"
@click="addPart"
>+</span
>
<span
style="font-size: 24px; color: red"
@click="delPart(index)"
>-</span
>
</div>
</div>
</uni-forms-item>
</div>
</uni-forms>
</view>
@ -87,27 +114,61 @@
<h2 style="padding: 4rpx 0; font-weight: bold">返厂维修</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="维修数量">
<uni-easyinput placeholder="请输入维修数量" v-model="formMiddle.repairNum" type="number" :clearable="false" @input="repairCheckNum2"/>
<uni-easyinput
placeholder="请输入维修数量"
v-model="formMiddle.repairNum"
type="number"
:clearable="false"
@input="repairCheckNum2"
/>
</uni-forms-item>
<uni-forms-item label="物资厂家">
<uni-data-select :localdata="partsMillList" v-model="formMiddle.supplierId" placeholder="请选择物资厂家" />
<uni-data-select
:localdata="partsMillList"
v-model="formMiddle.supplierId"
placeholder="请选择物资厂家"
/>
</uni-forms-item>
<div v-for="(item, index) in partItemsMiddle" :key="index">
<uni-forms-item label="配件名称">
<uni-easyinput placeholder="配件类型" v-model="item.partName"/>
<uni-easyinput placeholder="配件类型" v-model="item.partName" />
</uni-forms-item>
<uni-forms-item label="是否收费">
<uni-data-select :localdata="isChargeList" v-model="item.isCharge" placeholder="请选择是否收费" />
<uni-data-select
:localdata="isChargeList"
v-model="item.isCharge"
placeholder="请选择是否收费"
/>
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput v-model="item.partNum" placeholder="请输入配件数量" type="number" :clearable="false" @input="partCheckNum(item)"/>
<uni-easyinput
v-model="item.partNum"
placeholder="请输入配件数量"
type="number"
:clearable="false"
@input="partCheckNum(item)"
/>
</uni-forms-item>
<uni-forms-item label="金额">
<div style="width: 100%;display: flex;">
<uni-easyinput v-model="item.partPrice" placeholder="请输入金额" type="number" :clearable="false" @input="costCheckNum(item)"/>
<div style="width:50px;margin-left: 10px;">
<span style="margin-right: 10px;font-size: 24px;color: #19be6b;" @click="addMidPart">+</span>
<span style="font-size: 24px;color: red;" @click="delMidPart(index)">-</span>
<div style="width: 100%; display: flex">
<uni-easyinput
v-model="item.partPrice"
placeholder="请输入金额"
type="number"
:clearable="false"
@input="costCheckNum(item)"
/>
<div style="width: 50px; margin-left: 10px">
<span
style="margin-right: 10px; font-size: 24px; color: #19be6b"
@click="addMidPart"
>+</span
>
<span
style="font-size: 24px; color: red"
@click="delMidPart(index)"
>-</span
>
</div>
</div>
</uni-forms-item>
@ -120,13 +181,25 @@
<h2 style="padding: 4rpx 0; font-weight: bold">维修报废</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="报废数量">
<uni-easyinput placeholder="请填写报废数量" v-model="formRight.scrapNum" type="number" :clearable="false" @input="repairCheckNum3"/>
<uni-easyinput
placeholder="请填写报废数量"
v-model="formRight.scrapNum"
type="number"
:clearable="false"
@input="repairCheckNum3"
/>
</uni-forms-item>
<uni-forms-item label="报废原因">
<uni-easyinput placeholder="请填写报废原因" v-model="formRight.scrapReason"/>
<uni-easyinput
placeholder="请填写报废原因"
v-model="formRight.scrapReason"
/>
</uni-forms-item>
<uni-forms-item label="损坏原因">
<uni-data-select :localdata="damageReasonList" placeholder="请选择损坏原因" />
<uni-data-select
:localdata="damageReasonList"
placeholder="请选择损坏原因"
/>
</uni-forms-item>
<!-- <uni-forms-item label="其他原因">
<uni-easyinput placeholder="请填写其他原因" />
@ -142,9 +215,15 @@
<script setup>
import { computed, ref } from 'vue'
import { partTypeTreeList,getSupplierList,saveRepairRow } from '@/services/repair/repair.js'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
import { partTypeTreeList, getSupplierList, saveRepairRow } from '@/services/repair/repair.js'
import { onLoad } from '@dcloudio/uni-app'
// const query = defineProps() //
// const queryParams = JSON.parse(query.queryParams)
const queryParams = ref({})
onLoad((options) => {
queryParams.value = JSON.parse(options.queryParams)
})
const repairPerson = ref([
{ value: '1', text: '张麻子' },
{ value: '2', text: '张牧之' },
@ -162,67 +241,66 @@ const isChargeList = ref([
{ value: 2, text: '否' },
])
//
const partItems = ref([{ partType: "", partNum: "", isCharge: "",partId: "7" }])
const partItems = ref([{ partType: '', partNum: '', isCharge: '', partId: '7' }])
const addPart = () => {
partItems.value.push({ partType: "", partNum: "", isCharge: "", partId: "7" });
partItems.value.push({ partType: '', partNum: '', isCharge: '', partId: '7' })
}
const delPart = (index) => {
if (partItems.value.length > 1) {
partItems.value.splice(index, 1);
partItems.value.splice(index, 1)
}
}
const partIds = ref([])
const formLeft = ref({
repairNum:0
repairNum: 0,
})
const partTreeData = ref([])
const getPartTreeData = async() => {
const getPartTreeData = async () => {
const res = await partTypeTreeList({})
partTreeData.value = res.data;
partTreeData.value = res.data
console.log(res)
}
getPartTreeData()
//
const partsMillList = ref([])
const getSupplierListData = async() => {
const getSupplierListData = async () => {
const res = await getSupplierList({})
partsMillList.value = res.rows.map(item=>{
partsMillList.value = res.rows.map((item) => {
let obj = {
value:item.supplierId,
text:item.supplier
value: item.supplierId,
text: item.supplier,
}
return obj
});
})
}
getSupplierListData()
const partItemsMiddle = ref([{ partName: "", partNum: "", partPrice: "0", isCharge: "" },])
const partItemsMiddle = ref([{ partName: '', partNum: '', partPrice: '0', isCharge: '' }])
const addMidPart = () => {
partItemsMiddle.value.push({ partName: "", partNum: "", partPrice: "0", isCharge: "" });
partItemsMiddle.value.push({ partName: '', partNum: '', partPrice: '0', isCharge: '' })
}
const delMidPart = (index) => {
if (partItemsMiddle.value.length > 1) {
partItemsMiddle.value.splice(index, 1);
partItemsMiddle.value.splice(index, 1)
}
}
const formMiddle = ref({
supplierId:undefined,
repairNum:0
supplierId: undefined,
repairNum: 0,
})
//
const formRight = ref({
scrapNum:0,
scrapType:undefined,
scrapReason:undefined,
scrapNum: 0,
scrapType: undefined,
scrapReason: undefined,
})
const rowData = ref(queryParams)
//
const saveNumAll = async() => {
const saveNumAll = async () => {
console.log(rowData)
if(formRight.value.scrapNum!=0){
if (formRight.value.scrapNum != 0) {
// this.$refs["formLeft","formMiddle","formRight"].validate(async(valid)=>{
// if(valid){
for (let i = 0; i < partItems.value.length; i++) {
@ -231,7 +309,7 @@ const saveNumAll = async() => {
partId: partItems.value[i].partId,
partNum: partItems.value[i].partNum,
repairNum: formLeft.value.repairNum,
});
})
}
for (let i = 0; i < partItemsMiddle.value.length; i++) {
rowData.value.repairDeviceList[0].numberOutRepairPartList.push({
@ -241,24 +319,24 @@ const saveNumAll = async() => {
partName: partItemsMiddle.value[i].partName,
supplierId: formMiddle.value.supplierId,
repairNum: formMiddle.value.repairNum,
});
})
}
// this.uploadKey = Date.now();
// if(this.fileList.length!=0){
// await this.getImaUpload(),
formRight.value.fileList = [];
formRight.value.fileList = []
// }else{
// formRight.value.fileList = this.fileListTemp;
// }
// console.log('formRight.value',formRight.value)
rowData.value.repairDeviceList[0].numberScrapRepairPartList.push(formRight.value)
rowData.value.repairDeviceList[0].repairType = 1;
rowData.value.repairDeviceList[0].repairType = 1
saveRepairRow(rowData.value.repairDeviceList).then(async (response) => {
if (response.code == 200) {
uni.showToast({ title: '保存成功', icon: 'none' })
uni.navigateBack({
delta: 1 //
});
delta: 1, //
})
// this.$modal.msgSuccess("");
// this.fileList=[];
// this.fileListTemp=[];
@ -273,10 +351,10 @@ const saveNumAll = async() => {
// e.disrepairNum = Number(e.typeRepairNum) - Number(e.typeRepairedNum);
// });
}
});
})
// }
// })
}else{
} else {
// this.$refs["formLeft","formMiddle"].validate(async(valid)=>{
// if(valid){
for (let i = 0; i < partItems.value.length; i++) {
@ -285,7 +363,7 @@ const saveNumAll = async() => {
partId: partItems.value[i].partId,
partNum: partItems.value[i].partNum,
repairNum: formLeft.value.repairNum,
});
})
}
for (let i = 0; i < partItemsMiddle.value.length; i++) {
rowData.value.repairDeviceList[0].numberOutRepairPartList.push({
@ -295,24 +373,24 @@ const saveNumAll = async() => {
partName: partItemsMiddle.value[i].partName,
supplierId: formMiddle.value.supplierId,
repairNum: formMiddle.value.repairNum,
});
})
}
// this.uploadKey = Date.now();
// if(this.fileList.length!=0){
// await this.getImaUpload(),
formRight.value.fileList = [];
formRight.value.fileList = []
// }else{
// formRight.value.fileList = this.fileListTemp;
// }
console.log('formRight.value',formRight.value)
console.log('formRight.value', formRight.value)
rowData.value.repairDeviceList[0].numberScrapRepairPartList.push(formRight.value)
rowData.value.repairDeviceList[0].repairType = 1;
rowData.value.repairDeviceList[0].repairType = 1
saveRepairRow(rowData.value.repairDeviceList).then(async (response) => {
if (response.code == 200) {
uni.showToast({ title: '保存成功', icon: 'none' })
uni.navigateBack({
delta: 1 //
});
delta: 1, //
})
// this.$modal.msgSuccess("");
// this.fileList=[];
// this.fileListTemp=[];
@ -328,96 +406,103 @@ const saveNumAll = async() => {
// });
// this.openNum=false;
}
});
})
// }
// })
}
}
// change
const repairCheckNum1 = (e) => {
setTimeout(()=>{
let maxNum = queryParams.typeRepairNum - queryParams.typeRepairedNum;
setTimeout(() => {
let maxNum = queryParams.value.typeRepairNum - queryParams.value.typeRepairedNum
console.log(maxNum)
if(queryParams.unitValue==1){
formLeft.value.repairNum = Number(e.replace(/[^\d.]/g,''))
}else{
formLeft.value.repairNum = Number(e.replace(/[^\d]/g,''))
if (queryParams.value.unitValue == 1) {
formLeft.value.repairNum = Number(e.replace(/[^\d.]/g, ''))
} else {
formLeft.value.repairNum = Number(e.replace(/[^\d]/g, ''))
}
if (Number(e)<= 0) {
formLeft.value.repairNum = 0;
if (Number(e) <= 0) {
formLeft.value.repairNum = 0
}
if ((formLeft.value.repairNum+formMiddle.value.repairNum+formRight.value.scrapNum) > maxNum) {
if (
formLeft.value.repairNum + formMiddle.value.repairNum + formRight.value.scrapNum >
maxNum
) {
uni.showToast({
title: '已达到当前物资最大维修数量!',
icon: 'none',
})
formLeft.value.repairNum = 0;
formLeft.value.repairNum = 0
}
},500)
}, 500)
}
// change
const repairCheckNum2 = (e) => {
setTimeout(()=>{
let maxNum = queryParams.typeRepairNum - queryParams.typeRepairedNum;
setTimeout(() => {
let maxNum = queryParams.value.typeRepairNum - queryParams.value.typeRepairedNum
console.log(maxNum)
if(queryParams.unitValue==1){
formMiddle.value.repairNum = Number(e.replace(/[^\d.]/g,''))
}else{
formMiddle.value.repairNum = Number(e.replace(/[^\d]/g,''))
if (queryParams.value.value.unitValue == 1) {
formMiddle.value.repairNum = Number(e.replace(/[^\d.]/g, ''))
} else {
formMiddle.value.repairNum = Number(e.replace(/[^\d]/g, ''))
}
if (Number(e)<= 0) {
formMiddle.value.repairNum = 0;
if (Number(e) <= 0) {
formMiddle.value.repairNum = 0
}
if ((formLeft.value.repairNum+formMiddle.value.scrapNum+formRight.value.scrapNum) > maxNum) {
if (
formLeft.value.repairNum + formMiddle.value.scrapNum + formRight.value.scrapNum >
maxNum
) {
uni.showToast({
title: '已达到当前物资最大维修数量!',
icon: 'none',
})
formMiddle.value.repairNum = 0;
formMiddle.value.repairNum = 0
}
},500)
}, 500)
}
// change
const repairCheckNum3 = (e) => {
setTimeout(()=>{
let maxNum = queryParams.typeRepairNum - queryParams.typeRepairedNum;
setTimeout(() => {
let maxNum = queryParams.value.typeRepairNum - queryParams.value.typeRepairedNum
console.log(maxNum)
if(queryParams.unitValue==1){
formRight.value.scrapNum = Number(e.replace(/[^\d.]/g,''))
}else{
formRight.value.scrapNum = Number(e.replace(/[^\d]/g,''))
if (queryParams.value.unitValue == 1) {
formRight.value.scrapNum = Number(e.replace(/[^\d.]/g, ''))
} else {
formRight.value.scrapNum = Number(e.replace(/[^\d]/g, ''))
}
if (Number(e)<= 0) {
formRight.value.scrapNum = 0;
if (Number(e) <= 0) {
formRight.value.scrapNum = 0
}
if ((formLeft.value.repairNum+formMiddle.value.scrapNum+formRight.value.scrapNum) > maxNum) {
if (
formLeft.value.repairNum + formMiddle.value.scrapNum + formRight.value.scrapNum >
maxNum
) {
uni.showToast({
title: '已达到当前物资最大维修数量!',
icon: 'none',
})
formRight.value.scrapNum = 0;
formRight.value.scrapNum = 0
}
},500)
}, 500)
}
// change
const partCheckNum = (item) => {
// console.log(item)
// console.log(item.partNum)
setTimeout(()=>{
item.partNum = Number(String(item.partNum).replace(/[^\d.]/g,''))
},500)
setTimeout(() => {
item.partNum = Number(String(item.partNum).replace(/[^\d.]/g, ''))
}, 500)
}
// change
const costCheckNum = (item) => {
// console.log(item)
// console.log(item.partPrice)
setTimeout(()=>{
item.partPrice = Number(String(item.partPrice).replace(/[^\d.]/g,''))
},500)
setTimeout(() => {
item.partPrice = Number(String(item.partPrice).replace(/[^\d.]/g, ''))
}, 500)
}
</script>
<style lang="scss" scoped>

View File

@ -11,10 +11,14 @@
<view class="search">查询</view>
</uni-col>
<uni-col :span="4">
<view class="search" style="background-color: #19be6b" @tap="handleAllPass">通过</view>
<view class="search" style="background-color: #19be6b" @tap="handleAllPass"
>通过</view
>
</uni-col>
<uni-col :span="4">
<view class="search" style="background-color: #ff4949" @tap="handleAllFail">驳回</view>
<view class="search" style="background-color: #ff4949" @tap="handleAllFail"
>驳回</view
>
</uni-col>
</uni-row>
@ -112,14 +116,15 @@
<script setup>
import { ref, onUnmounted, computed } from 'vue'
import { getAuditInfo,innerAudit } from '@/services/repair/testExamine.js'
import { onLoad,onShow } from '@dcloudio/uni-app'
import { getAuditInfo, innerAudit } from '@/services/repair/testExamine.js'
import { onLoad, onShow } from '@dcloudio/uni-app'
const detailsList = ref([])
const query = defineProps() //
// const query = defineProps() //
const taskId = ref('')
//
const getDetailsData = async () => {
const res = await getAuditInfo({ taskId: query.taskId })
const res = await getAuditInfo({ taskId: taskId.value })
detailsList.value = res.rows
detailsList.value = detailsList.value.map((e) => {
return { ...e, isChecked: false }
@ -161,9 +166,19 @@ const handleAllPass = async () => {
detailsList.value.forEach((item) => {
if (item.isChecked) {
console.log(item)
let obj = { id: item.id, status: "1",specificationType: item.specificationType,machineTypeName:item.machineTypeName,
repairNum:item.repairNum,repairedNum:item.repairedNum,typeId:item.typeId,taskId:item.taskId,
auditId:item.id,repairId:item.repairId,maId:item.maId}
let obj = {
id: item.id,
status: '1',
specificationType: item.specificationType,
machineTypeName: item.machineTypeName,
repairNum: item.repairNum,
repairedNum: item.repairedNum,
typeId: item.typeId,
taskId: item.taskId,
auditId: item.id,
repairId: item.repairId,
maId: item.maId,
}
ids.push(obj)
}
})
@ -193,9 +208,19 @@ const handleAllFail = async () => {
detailsList.value.forEach((item) => {
if (item.isChecked) {
console.log(item)
let obj = { id: item.id, status: "2",specificationType: item.specificationType,machineTypeName:item.machineTypeName,
repairNum:item.repairNum,repairedNum:item.repairedNum,typeId:item.typeId,taskId:item.taskId,
auditId:item.id,repairId:item.repairId,maId:item.maId}
let obj = {
id: item.id,
status: '2',
specificationType: item.specificationType,
machineTypeName: item.machineTypeName,
repairNum: item.repairNum,
repairedNum: item.repairedNum,
typeId: item.typeId,
taskId: item.taskId,
auditId: item.id,
repairId: item.repairId,
maId: item.maId,
}
ids.push(obj)
}
})
@ -228,7 +253,8 @@ onShow(() => {
getDetailsData()
})
//
onLoad(() => {
onLoad((options) => {
taskId.value = options.taskId
getDetailsData()
//
uni.$on('onUpdate', () => {

View File

@ -11,10 +11,12 @@
<view class="search">查询</view>
</uni-col>
<uni-col :span="4">
<view class="search" style="background-color: #19be6b" @tap="onQualified">通过</view>
<view class="search" style="background-color: #19be6b" @tap="onQualified"
>通过</view
>
</uni-col>
<uni-col :span="4">
<view class="search" style="background-color: #ff4949" >驳回</view>
<view class="search" style="background-color: #ff4949">驳回</view>
</uni-col>
</uni-row>
@ -119,13 +121,14 @@
<script setup>
import { ref, onUnmounted, computed } from 'vue'
import { getRepairedDetailList } from '@/services/repair/testedInBound.js'
import { onLoad,onShow } from '@dcloudio/uni-app'
import { onLoad, onShow } from '@dcloudio/uni-app'
const detailsList = ref([])
const query = defineProps() //
// const query = defineProps() //
const taskId = ref('')
//
const getDetailsData = async () => {
const res = await getRepairedDetailList(query.taskId)
const res = await getRepairedDetailList(taskId.value)
detailsList.value = res.rows
detailsList.value = detailsList.value.map((e) => {
return { ...e, isChecked: false }
@ -201,7 +204,8 @@ onShow(() => {
getDetailsData()
})
//
onLoad(() => {
onLoad((options) => {
taskId.value = options.taskId
getDetailsData()
//
uni.$on('onUpdate', () => {

View File

@ -6,7 +6,7 @@ import { useMemberStore } from '@/stores'
* baseURL 设置请求ip地址和端口
*/
const ENV = process.env.NODE_ENV
export const baseURL = ENV === 'development' ? 'http://192.168.2.246:18080' : '***'
export const baseURL = ENV === 'development' ? 'http://192.168.0.244:18580' : '***'
// export const baseURL = ENV === 'development' ? '/api' : '***'
/**
* httpInterceptor 分别拦截 request uploadFile 请求