数量维修页面完善

This commit is contained in:
BianLzhaoMin 2024-11-21 15:36:07 +08:00
parent 4bc0c07d10
commit 800cab1c18
5 changed files with 484 additions and 36 deletions

View File

@ -191,6 +191,27 @@
"style": {
"navigationBarTitleText": "维修任务"
}
},
// 3.
{
"path": "pages/repair/code-view",
"style": {
"navigationBarTitleText": "编码设备维修"
}
},
// 4.
{
"path": "pages/repair/code-operate",
"style": {
"navigationBarTitleText": "维修"
}
},
// 5.
{
"path": "pages/repair/num-operate",
"style": {
"navigationBarTitleText": "数量设备维修"
}
}
],
"tabBar": {

View File

@ -0,0 +1,120 @@
<template>
<!-- 数量出库 -->
<view class="page-container">
<uni-row :gutter="24" class="search-form">
<uni-col :span="6">
<view class="search" style="background-color: #19be6b"> 维修完成 </view>
</uni-col>
</uni-row>
<view class="table-list-item">
<uni-row :gutter="24">
<uni-col :span="6">物资名称</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.typeName }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="6">物资类型</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.type }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="6">待修数量</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.repairNum }}</view>
</uni-col>
</uni-row>
</view>
</view>
</template>
<script setup>
import { computed, ref } from 'vue'
import { setOutboundNumAPI } from '@/services/picking/outbound.js'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
</script>
<style lang="scss" scoped>
.page-container {
display: flex;
height: 100%;
padding: 0 15rpx;
flex-direction: column;
.complete-btn {
display: flex;
padding: 20rpx;
.btn {
display: flex;
flex-direction: column;
align-items: center;
font-size: 30rpx;
font-weight: 800;
}
.bt-line {
width: 80rpx;
height: 4rpx;
background-color: #3784fb;
}
}
.search-form {
display: flex;
align-items: center;
box-sizing: content-box;
}
.search {
height: 65rpx;
background-color: #3784fb;
text-align: center;
line-height: 65rpx;
color: #fff;
}
.scroll-container {
.table-list-item {
margin: 20rpx 0;
padding: 20rpx;
background-color: #fff;
// min-height: 300rpx;
border-radius: 10rpx;
.title {
display: flex;
justify-content: space-between;
align-items: center;
}
.cont {
display: flex;
justify-content: flex-end;
line-height: 1.9;
}
.line {
margin: 20rpx 0;
height: 1px;
background-color: #e8e8e8;
}
}
}
}
//
.loading-text {
text-align: center;
font-size: 28rpx;
color: #666;
padding: 20rpx 0;
}
.outbound-btn {
width: 70%;
margin: 25rpx auto;
height: 65rpx;
line-height: 65rpx;
text-align: center;
background-color: #19be6b;
border-radius: 12rpx;
color: #fff;
}
</style>

View File

@ -0,0 +1,120 @@
<template>
<!-- 数量出库 -->
<view class="page-container">
<uni-row :gutter="24" class="search-form">
<uni-col :span="6">
<view class="search" style="background-color: #19be6b"> 维修完成 </view>
</uni-col>
</uni-row>
<view class="table-list-item">
<uni-row :gutter="24">
<uni-col :span="6">物资名称</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.typeName }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="6">物资类型</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.type }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="6">待修数量</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.repairNum }}</view>
</uni-col>
</uni-row>
</view>
</view>
</template>
<script setup>
import { computed, ref } from 'vue'
import { setOutboundNumAPI } from '@/services/picking/outbound.js'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
</script>
<style lang="scss" scoped>
.page-container {
display: flex;
height: 100%;
padding: 0 15rpx;
flex-direction: column;
.complete-btn {
display: flex;
padding: 20rpx;
.btn {
display: flex;
flex-direction: column;
align-items: center;
font-size: 30rpx;
font-weight: 800;
}
.bt-line {
width: 80rpx;
height: 4rpx;
background-color: #3784fb;
}
}
.search-form {
display: flex;
align-items: center;
box-sizing: content-box;
}
.search {
height: 65rpx;
background-color: #3784fb;
text-align: center;
line-height: 65rpx;
color: #fff;
}
.scroll-container {
.table-list-item {
margin: 20rpx 0;
padding: 20rpx;
background-color: #fff;
// min-height: 300rpx;
border-radius: 10rpx;
.title {
display: flex;
justify-content: space-between;
align-items: center;
}
.cont {
display: flex;
justify-content: flex-end;
line-height: 1.9;
}
.line {
margin: 20rpx 0;
height: 1px;
background-color: #e8e8e8;
}
}
}
}
//
.loading-text {
text-align: center;
font-size: 28rpx;
color: #666;
padding: 20rpx 0;
}
.outbound-btn {
width: 70%;
margin: 25rpx auto;
height: 65rpx;
line-height: 65rpx;
text-align: center;
background-color: #19be6b;
border-radius: 12rpx;
color: #fff;
}
</style>

View File

@ -38,7 +38,7 @@
v-for="(item, index) in detailsList"
:key="index"
class="table-list-item"
@tap="onCodingItem(item)"
@tap="onRepairItem(item)"
>
<view class="line"></view>
<uni-row :gutter="24">
@ -159,7 +159,6 @@ const onQualified = async () => {
ids.push(e.id)
}
})
console.log('合格参数', ids)
const res = await setQualifiedAPI(ids)
if (res.code === 200) {
uni.showToast({
@ -170,46 +169,24 @@ const onQualified = async () => {
}
}
//
const onCodingItem = (item) => {
//
const onRepairItem = (item) => {
//
const {
status,
manageType,
maTypeName,
typeName,
storageNum,
preNum,
alNum,
unitName,
id,
typeId,
} = item
leaseApplyInfo.value.maTypeName = maTypeName
leaseApplyInfo.value.typeName = typeName
leaseApplyInfo.value.unitName = unitName
leaseApplyInfo.value.storageNum = storageNum
leaseApplyInfo.value.preNum = preNum
leaseApplyInfo.value.alNum = alNum
leaseApplyInfo.value.id = id
leaseApplyInfo.value.typeId = typeId
leaseApplyInfo.value.manageType = manageType
if (status == 2) {
uni.showToast({ title: '该物资已完成出库!', icon: 'none' })
return
}
const { manageType, repairNum, typeName, type } = item
let queryParams = null
let codingUrl = ''
if (manageType === 0) {
codingUrl = '/pages/picking/outbound/code-outbound' //
codingUrl = '/pages/repair/code-view' //
}
if (manageType == 1) {
codingUrl = '/pages/picking/outbound/num-outbound' //
codingUrl = '/pages/repair/num-operate' //
queryParams = {
repairNum,
typeName,
type,
}
}
// leaseApplyInfo json
uni.navigateTo({ url: `${codingUrl}?queryParams=${JSON.stringify(leaseApplyInfo.value)}` })
uni.navigateTo({ url: `${codingUrl}?queryParams=${JSON.stringify(queryParams)}` })
}
//

View File

@ -0,0 +1,210 @@
<template>
<!-- 数量出库 -->
<view class="page-container">
<uni-row :gutter="24" class="search-form">
<uni-col :span="6">
<view class="search" style="background-color: #19be6b"> 维修完成 </view>
</uni-col>
</uni-row>
<view class="table-list-item">
<uni-row :gutter="24">
<uni-col :span="6">物资名称</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.typeName }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="6">物资类型</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.type }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="6">待修数量</uni-col>
<uni-col :span="18"
><view class="cont">{{ queryParams.repairNum }}</view>
</uni-col>
</uni-row>
</view>
<scroll-view scroll-y style="padding-bottom: 20rpx">
<!-- -->
<view class="table-list-item">
<!-- 维修人员 -->
<h2 style="padding: 4rpx 0; font-weight: bold">维修信息</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="维修人员">
<uni-data-select :localdata="repairPerson" placeholder="请选择维修人员" />
</uni-forms-item>
<uni-forms-item label="备注">
<uni-easyinput placeholder="请填写备注" />
</uni-forms-item>
<uni-forms-item label="附件">
<uni-file-picker fileMediatype="image" mode="grid" />
</uni-forms-item>
</uni-forms>
</view>
<!-- 内部维修 -->
<view class="table-list-item">
<h2 style="padding: 4rpx 0; font-weight: bold">内部维修</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="维修数量">
<uni-easyinput placeholder="请填写维修数量" />
</uni-forms-item>
<uni-forms-item label="配件类型">
<uni-easyinput placeholder="配件类型" />
</uni-forms-item>
<uni-forms-item label="规格型号">
<uni-easyinput placeholder="规格型号" />
</uni-forms-item>
<uni-forms-item label="是否收费">
<uni-data-select :localdata="isChargeList" placeholder="请选择是否收费" />
</uni-forms-item>
</uni-forms>
</view>
<!-- 返厂维修 -->
<view class="table-list-item">
<h2 style="padding: 4rpx 0; font-weight: bold">返厂维修</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="维修数量">
<uni-easyinput placeholder="请输入维修数量" />
</uni-forms-item>
<uni-forms-item label="配件信息">
<uni-easyinput placeholder="配件类型" />
</uni-forms-item>
<uni-forms-item label="配件厂家">
<uni-data-select :localdata="partsMillList" placeholder="请选择配件厂家" />
</uni-forms-item>
<uni-forms-item label="是否收费">
<uni-data-select :localdata="isChargeList" placeholder="请选择是否收费" />
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput placeholder="请输入配件数量" />
</uni-forms-item>
</uni-forms>
</view>
<!-- 维修报废 -->
<view class="table-list-item">
<h2 style="padding: 4rpx 0; font-weight: bold">维修报废</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="报废原因">
<uni-data-select :localdata="repairPerson" placeholder="请选择报废原因" />
</uni-forms-item>
<uni-forms-item label="损坏原因">
<uni-data-select :localdata="repairPerson" placeholder="请选择损坏原因" />
</uni-forms-item>
<uni-forms-item label="其他原因">
<uni-easyinput placeholder="请填写其他原因" />
</uni-forms-item>
<uni-forms-item label="附件">
<uni-file-picker fileMediatype="image" mode="grid" />
</uni-forms-item>
</uni-forms>
</view>
</scroll-view>
</view>
</template>
<script setup>
import { computed, ref } from 'vue'
import { setOutboundNumAPI } from '@/services/picking/outbound.js'
const query = defineProps() //
const queryParams = JSON.parse(query.queryParams)
const repairPerson = ref([
{ value: '1', text: '张麻子' },
{ value: '2', text: '张牧之' },
{ value: '3', text: '黄四郎' },
{ value: '4', text: '马邦德' },
])
const isChargeList = ref([
{ value: 1, text: '是' },
{ value: 2, text: '否' },
])
const partsMillList = ref([
{ value: 1, text: '上海机械公司' },
{ value: 2, text: '北京机械公司' },
])
</script>
<style lang="scss" scoped>
.page-container {
display: flex;
height: 100%;
padding: 0 15rpx;
flex-direction: column;
.complete-btn {
display: flex;
padding: 20rpx;
.btn {
display: flex;
flex-direction: column;
align-items: center;
font-size: 30rpx;
font-weight: 800;
}
.bt-line {
width: 80rpx;
height: 4rpx;
background-color: #3784fb;
}
}
.search-form {
display: flex;
align-items: center;
box-sizing: content-box;
}
.search {
height: 65rpx;
background-color: #3784fb;
text-align: center;
line-height: 65rpx;
color: #fff;
}
.table-list-item {
margin: 20rpx 0;
padding: 20rpx;
background-color: #fff;
border-radius: 10rpx;
.title {
display: flex;
justify-content: space-between;
align-items: center;
}
.cont {
display: flex;
justify-content: flex-end;
line-height: 1.9;
}
.line {
margin: 20rpx 0;
height: 1px;
background-color: #e8e8e8;
}
}
}
//
.loading-text {
text-align: center;
font-size: 28rpx;
color: #666;
padding: 20rpx 0;
}
.outbound-btn {
width: 70%;
margin: 25rpx auto;
height: 65rpx;
line-height: 65rpx;
text-align: center;
background-color: #19be6b;
border-radius: 12rpx;
color: #fff;
}
</style>