lanan-repair-app/pages-repair/applyList/todoDetail.vue
2024-10-23 15:37:56 +08:00

345 lines
8.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<VNavigationBar background-color="#fff" :title="title" title-color="#333"></VNavigationBar>
<view class="body">
<view class="repairInfo">
<view class="header">
配件信息
</view>
<view class="repairItem" v-for="(item, index) in repairList" :key="index">
<view class="repairName">{{ item.waresName }} <text class="repairNum">×{{item.waresCount}}</text></view>
<view class="grid">
<view style="grid-area: a" class="girdItem">
<text class="label">配件分类</text>
<text class="value">{{ item.typeName }}</text>
</view>
<view style="grid-area: b" class="girdItem">
<text class="label">当前库存</text>
<text class="value">{{ item.wares.stock }}</text>
</view>
<view style="grid-area: c" class="girdItem">
<text class="label">单位</text>
<text class="value">{{ item.wares.unit }}</text>
</view>
<view style="grid-area: d" class="girdItem">
<text class="label">编码</text>
<text class="value">{{ item.wares.code || ""}}</text>
</view>
</view>
</view>
</view>
</view>
<view v-if="canOperate" class="footer">
<view class="no" @click="confirmOpe('no')">
{{ backText }}
</view>
<view class="yes" @click="confirmOpe('yes')">
{{ yesText }}
</view>
</view>
</view>
</template>
<script>
import VNavigationBar from "@/components/VNavigationBar.vue";
import request from '@/utils/request';
import {getDictTextByCodeAndValue} from "@/utils/utils";
export default {
components: {
VNavigationBar
},
data() {
return {
viewType:"",
id:"",
title:"",
canOperate:false,
backText:"",
yesText:"",
repairList: [
// {
// name: '7字小钩',
// num: 3,
// type: '机电',
// unit: '桶',
// total: 35,
// code: 'XCQHCJYS7 SPI SP 5W30 4L'
// },
// {
// name: '7字小钩',
// num: 3,
// type: '机电',
// unit: '桶',
// total: 35,
// code: 'XCQHCJYS7 SPI SP 5W30 4L'
// }
]
};
},
onLoad(data){
this.viewType = data.viewType
this.canOperate = data.canOperate
this.id = data.id
this.getDetail()
},
methods:{
getDetail(){
let url;
let params={};
if("apply"==this.viewType){
this.title = "配件申请单详情"
//配件申请单
url = "/admin-api/repair/twi/list"
params.twId = this.id
}else{
if("receive"==this.viewType){
//领料
this.title = "领料单详情"
this.yesText="我已领料"
this.backText="未领料(拒绝)"
}else{
this.title = "退料单详情"
this.yesText="我已退料"
this.backText="未退料(拒绝)"
}
//领料单、退料单
url = "/admin-api/repair/so/get"
params.id = this.id
}
request({
url: url,
method: 'get',
params:params
}).then((res) => {
if (res.code == 200) {
if("apply"==this.viewType){
//配件申请单
res.data.map((item)=>{
getDictTextByCodeAndValue("repair_unit",item.wares.unit).then(value => {
item.wares.unit = value
}).catch(error => {
item.wares.unit = "未知"
console.error(error);
});
})
this.repairList = res.data
}else{
//领料单、退料单
let goodsList = res.data.goodsList
let thisRepairList = []
goodsList.map((item)=>{
getDictTextByCodeAndValue("repair_unit",item.wares.unit).then(value => {
item.wares.unit = value
}).catch(error => {
item.wares.unit = "未知"
console.error(error);
});
thisRepairList.push({
waresName:item.wares.name,
waresCount:item.goodsCount,
typeName:item.typeName,
wares:item.wares
})
})
this.repairList = thisRepairList
console.log(this.repairList,"this.repairList")
}
}
})
},
confirmOpe(type){
if("yes"==type){
let url;
let params={id:this.id};
if("receive"==this.viewType) {
//领料
url = "/admin-api/repair/so/confirmGet"
}else{
//退料
url = "/admin-api/repair/so/confirmBack"
}
request({
url: url,
method: 'get',
params:params
}).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '操作成功!',
icon: 'none'
})
setTimeout(() => {
uni.navigateBack()
}, 700)
}
})
}else{
//作废单据
let url = "/admin-api/repair/so/void"
let dataObj={
id:this.id,
soStatus:'06'
}
request({
url: url,
method: 'POST',
data:dataObj
}).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '操作成功!',
icon: 'none'
})
setTimeout(() => {
uni.navigateBack()
}, 700)
}
})
}
},
}
}
</script>
<style lang="less" scoped>
.container {
height: 100%;
background: #F3F5F7;
display: flex;
flex-direction: column;
}
.body {
flex: 1;
height: 0;
overflow: auto;
.todoInfo {
margin: 20rpx 32rpx;
background-color: #fff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
padding: 30rpx;
.todoName {
font-weight: bold;
font-size: 32rpx;
color: #333333;
margin-bottom: 16rpx;
}
.todoDate {
font-size: 24rpx;
color: #858BA0;
margin-bottom: 30rpx;
}
.line {
height: 1rpx;
background-color: #DDDDDD;
margin: 30rpx 0;
}
.grid {
display: grid;
grid-template-areas:
'a b'
'c c';
gap: 20rpx;
.gridItem {
display: flex;
flex-direction: column;
row-gap: 10rpx;
font-size: 28rpx;
.gridItemLabel {
color: #858BA0;
}
.gridItemValue {
color: #333333;
}
}
}
}
.repairInfo {
margin: 20rpx 32rpx;
background-color: #fff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
.header {
padding: 30rpx;
border-bottom: 1rpx solid #DDDDDD;
}
.repairItem {
padding: 30rpx;
border-bottom: 1rpx solid #DDDDDD;
&:last-child {
border-bottom: none;
}
}
.repairName {
display: flex;
align-items: center;
column-gap: 20rpx;
font-size: 32rpx;
color: #333333;
margin-bottom: 30rpx;
.repairNum {
font-size: 28rpx;
color: #0174F6;
}
}
.grid {
display: grid;
grid-template-areas:
'a b'
'c d';
grid-template-columns: 1fr 1fr;
gap: 30rpx;
.girdItem {
display: flex;
flex-direction: column;
row-gap: 12rpx;
font-size: 28rpx;
.label {
color: #858BA0;
}
.value {
color: #333333;
}
}
}
}
}
.footer {
background-color: #fff;
display: flex;
justify-content: space-between;
align-items: center;
padding: 30rpx 32rpx;
.yes, .no {
width: 310rpx;
height: 76rpx;
border-radius: 38rpx 38rpx 38rpx 38rpx;
display: flex;
align-items: center;
justify-content: center;
column-gap: 10rpx;
}
.yes {
background: #0174F6;
color: #FFFFFF;
}
.no {
border: 2rpx solid #858BA0;
color: #858BA0;
}
}
</style>