zhang_li
9 months ago
12 changed files with 800 additions and 72 deletions
@ -0,0 +1,256 @@ |
|||||
|
<template> |
||||
|
<!-- 维修工单 --> |
||||
|
<view class="container"> |
||||
|
<view class="list"> |
||||
|
<view class="item" v-for="(item,index) in repairOrderList" :key="index" @click="chooseItem(item)"> |
||||
|
<u-checkbox v-model="item.checked" shape="circle" style="margin-top: 8rpx;"></u-checkbox> |
||||
|
<view class="right"> |
||||
|
<view class="title"> |
||||
|
<view class="title-txt"> |
||||
|
{{item.describes}} |
||||
|
</view> |
||||
|
<u-tag text="待接单" v-if="item.status == 'PENDING'" bg-color='rgba(255,255,255,0)' color='#fe8463' |
||||
|
border-color='#fe8463' type="primary" shape='circle' /> |
||||
|
<u-tag text="已撤回" v-else-if="item.status=='REJECTED'" bg-color='rgba(255,255,255,0)' |
||||
|
color='#d7d7d7' border-color='#d7d7d7 ' type="warning" shape='circle' /> |
||||
|
<u-tag text="已转办" v-else-if="item.status=='TRANSFERRED'" bg-color='rgba(255,255,255,0)' |
||||
|
color='#e01f54' border-color='#e01f54' type="success" shape='circle' /> |
||||
|
<u-tag text="已接单" v-else-if="item.status=='PECEIVED'" bg-color='rgba(255,255,255,0)' |
||||
|
color='#005eaa' border-color='#005eaa ' type="error" shape='circle' /> |
||||
|
<u-tag text="已验证" v-else-if="item.status=='VERIFIED'" bg-color='rgba(255,255,255,0)' |
||||
|
color='#2EC7C9' border-color='#2EC7C9' type="info" shape='circle' /> |
||||
|
<u-tag text="已完成" v-else-if="item.status=='COMPLETED'" bg-color='rgba(255,255,255,0)' |
||||
|
color='#2ba471' border-color='#2ba471' type="info" shape='circle' /> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
工单单号:<span>{{item.number}}</span> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
类型:<span>{{item.type=='DEVICE'?'设备':item.type=='TECH'?'工艺':'模具'}}</span> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
{{`${type=='DEVICE'?'设备' : '模具'}`}}编号:<span>{{item.deviceNumber}}</span> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
{{`${type=='DEVICE'?'设备' : '模具'}`}}名称:<span>{{item.name}}</span> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
所属厂区:<span>{{item.factoryAreaName}}</span> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
班次:<span>{{item.classesName}}</span> |
||||
|
</view> |
||||
|
<view class="dec"> |
||||
|
故障类型:<span>{{item.faultTypeName}}</span> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="footer"> |
||||
|
<view class="btns"> |
||||
|
<button class="sure" @click="sure"> 确定</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> |
||||
|
import * as repairOrderApi from "@/api/repairOrder.js" |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
repairOrderList: [], |
||||
|
type: '' |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取设备保修列表 |
||||
|
getList() { |
||||
|
this.$modal.loading('加载中') |
||||
|
repairOrderApi.repairOrderList({ |
||||
|
type: this.type, |
||||
|
result: 'TEMPORARILY' |
||||
|
}).then((res) => { |
||||
|
this.$modal.closeLoading() |
||||
|
res.data.forEach(item=>{ |
||||
|
item.checked = false |
||||
|
}) |
||||
|
this.repairOrderList = res.data |
||||
|
}) |
||||
|
}, |
||||
|
chooseItem(item){ |
||||
|
let arr = this.repairOrderList.filter(cur=>cur.id != item.id) |
||||
|
arr.forEach(item=>{ |
||||
|
item.checked = false |
||||
|
}) |
||||
|
item.checked = !item.checked |
||||
|
}, |
||||
|
sure(){ |
||||
|
let data =this.repairOrderList.filter(cur=>cur.checked)[0] |
||||
|
uni.$emit('chooseOrder',data) |
||||
|
this.$tab.navigateBack() |
||||
|
} |
||||
|
}, |
||||
|
onLoad(option) { |
||||
|
if (option.type) this.type = option.type; |
||||
|
}, |
||||
|
onShow() { |
||||
|
this.getList() |
||||
|
|
||||
|
}, |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.list { |
||||
|
background: #f5f5f5; |
||||
|
margin-top: 20rpx; |
||||
|
padding-bottom: 120rpx; |
||||
|
.item { |
||||
|
padding: 30rpx 30rpx 0px 30rpx; |
||||
|
margin-top: 20rpx; |
||||
|
background: white; |
||||
|
display: flex; |
||||
|
align-items: flex-start; |
||||
|
.right{ |
||||
|
flex: 1; |
||||
|
} |
||||
|
.title { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
padding-bottom: 20rpx; |
||||
|
|
||||
|
.title-txt { |
||||
|
color: #409eff; |
||||
|
font-weight: bold; |
||||
|
font-size: 36rpx; |
||||
|
width: 0px; |
||||
|
flex: 1; |
||||
|
} |
||||
|
|
||||
|
.time { |
||||
|
color: #919191; |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.dec { |
||||
|
padding-bottom: 20rpx; |
||||
|
|
||||
|
span { |
||||
|
color: #999999; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.last { |
||||
|
padding-bottom: 30rpx; |
||||
|
} |
||||
|
|
||||
|
.bottom { |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
border-top: 1px solid #E4E4E4; |
||||
|
padding: 20rpx 0px; |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.list { |
||||
|
background: #f5f5f5; |
||||
|
margin-top: 20rpx; |
||||
|
|
||||
|
.item { |
||||
|
padding: 30rpx 30rpx 0px 30rpx; |
||||
|
margin-top: 20rpx; |
||||
|
background: white; |
||||
|
|
||||
|
.title { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
padding-bottom: 20rpx; |
||||
|
|
||||
|
.title-txt { |
||||
|
color: #409eff; |
||||
|
font-weight: bold; |
||||
|
font-size: 36rpx; |
||||
|
width: 0px; |
||||
|
flex: 1; |
||||
|
} |
||||
|
|
||||
|
.time { |
||||
|
color: #919191; |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.dec { |
||||
|
padding-bottom: 20rpx; |
||||
|
|
||||
|
span { |
||||
|
color: #999999; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.last { |
||||
|
padding-bottom: 30rpx; |
||||
|
} |
||||
|
|
||||
|
.bottom { |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
border-top: 1px solid #E4E4E4; |
||||
|
padding: 20rpx 0px; |
||||
|
position: relative; |
||||
|
|
||||
|
|
||||
|
.button { |
||||
|
position: absolute; |
||||
|
right: 0rpx; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.footer { |
||||
|
position: fixed; |
||||
|
bottom: 0px; |
||||
|
left: 0px; |
||||
|
width: 100%; |
||||
|
} |
||||
|
|
||||
|
.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; |
||||
|
border-radius: 0px; |
||||
|
|
||||
|
&::after { |
||||
|
border-radius: 0px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</style> |
Loading…
Reference in new issue