|
|
|
<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 setup lang="ts">
|
|
|
|
import {
|
|
|
|
onLoad,
|
|
|
|
} from '@dcloudio/uni-app'
|
|
|
|
import {
|
|
|
|
ref,
|
|
|
|
getCurrentInstance
|
|
|
|
} from 'vue'
|
|
|
|
|
|
|
|
import * as repairOrderApi from "@/api/repairOrder.js"
|
|
|
|
const { proxy } = getCurrentInstance()
|
|
|
|
|
|
|
|
const repairOrderList = ref([])
|
|
|
|
const type = ref('')
|
|
|
|
|
|
|
|
// 获取设备保修列表
|
|
|
|
function getList() {
|
|
|
|
proxy.$modal.loading('加载中')
|
|
|
|
repairOrderApi.repairOrderList({
|
|
|
|
type: type.value,
|
|
|
|
result: 'TEMPORARILY'
|
|
|
|
}).then((res) => {
|
|
|
|
proxy.$modal.closeLoading()
|
|
|
|
res.data.forEach(item=>{
|
|
|
|
item.checked = false
|
|
|
|
})
|
|
|
|
repairOrderList.value = res.data
|
|
|
|
})
|
|
|
|
}
|
|
|
|
function chooseItem(item){
|
|
|
|
let arr = repairOrderList.value.filter(cur=>cur.id != item.id)
|
|
|
|
arr.forEach(item=>{
|
|
|
|
item.checked = false
|
|
|
|
})
|
|
|
|
item.checked = !item.checked
|
|
|
|
}
|
|
|
|
function sure(){
|
|
|
|
let data =repairOrderList.value.filter(cur=>cur.checked)[0]
|
|
|
|
uni.$emit('chooseOrder',data)
|
|
|
|
proxy.$tab.navigateBack()
|
|
|
|
}
|
|
|
|
onLoad((option) => {
|
|
|
|
if (option.type) type.value = option.type;
|
|
|
|
getList()
|
|
|
|
})
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.container{
|
|
|
|
background: #f5f5f5;
|
|
|
|
min-height: 100vh;
|
|
|
|
}
|
|
|
|
.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;
|
|
|
|
word-wrap: break-word;
|
|
|
|
}
|
|
|
|
|
|
|
|
.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>
|