<template>
|
<view>
|
<page-nav title="维修验证"></page-nav>
|
|
|
<view v-show="topContent.length===0">
|
<div class="sacnBody">
|
<div class="boxImg"></div>
|
<div class="scanText">暂无维修可验证</div>
|
</div>
|
</view>
|
|
|
<view v-show="topContent.length!==0">
|
<view class="mainContent">
|
<view>
|
<u-gap height="10" bgColor="#eff0f1"></u-gap>
|
<view class="head">
|
<view class="head_block">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
模具维修信息
|
</view>
|
</view>
|
|
<view class="marginRight20">
|
<u-icon name="scan" @click="topScanClick" color="red" size="24"></u-icon>
|
</view>
|
|
</view>
|
|
|
<view :style="{maxHeight:'1200rpx',overflow: 'scroll'}">
|
<view class="marginTop20 marginLeft20 marginRight20 flex_column">
|
<!-- style="padding-bottom:70rpx;"> -->
|
<u-radio-group v-model="radioValue" class="flex_column">
|
<view class="marginBottom20 flex_column" style="width: 100%;"
|
@click="groupChange(item.mouldcode)" v-for="item in topContent"
|
:key="item.mouldcode">
|
<view class="flex_between marginBottom20">
|
<view style="display: flex;">
|
<view class="flex_column titleFont">
|
<view>维修单号:</view>
|
<view>模具编码:</view>
|
<view>模具名称:</view>
|
<view>规格型号:</view>
|
<view>维修人员:</view>
|
<view>维修时间:</view>
|
<view>停机维修:</view>
|
<view>故障描述:</view>
|
</view>
|
<view class="flex_column contentFont">
|
<view>{{item.repair_code}}</view>
|
<view>{{item.mouldcode}}</view>
|
<view>{{item.mouldname}}</view>
|
<view>{{item.mouldspec?item.mouldspec:'/'}}</view>
|
<view>{{item.repair_name}}</view>
|
<view>{{item.repair_date}}</view>
|
<view>{{item.is_shutdown==='Y'?'是':'否'}}</view>
|
<view style="width:400rpx;word-wrap:break-word">
|
{{item.failure_descript}}
|
</view>
|
</view>
|
</view>
|
<u-radio size='22' :key="item.mouldcode" :name="item.mouldcode"
|
@change="groupChange(item.mouldcode)" activeColor="red"></u-radio>
|
</view>
|
|
|
<view v-show="!item.arrowType" class="repairDetail">
|
维修详情
|
</view>
|
<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
|
<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
故障描述
|
</view>
|
</view>
|
</view>
|
<view style="margin: 0 20rpx; width: 95%;" class="contentFont">
|
{{descMessage}}
|
</view>
|
<view style="display: flex;" v-show="fileList.length!==0">
|
<view v-for="(pic,index) in fileList" :key="index">
|
<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
|
<!-- <u-icon name="close" color="#fff" size="26"
|
style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
|
@click="deletePic(pic)"></u-icon>
|
-->
|
|
<image :src="baseUrl+ pic.img1url" @click="imgPreview(pic)"
|
class="upLoadImg">
|
</image>
|
</view>
|
</view>
|
|
</view>
|
</view>
|
|
|
<u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
|
style='width: 106%;margin-left: -3%;'></u-gap>
|
<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
|
<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
停机维修
|
</view>
|
</view>
|
|
<view class="" style="width: 120rpx;display: flex;">
|
<u-button type="primary" shape='circle' size="small"
|
:text="descMessage2.toString().length>0?'否':'是'">
|
</u-button>
|
</view>
|
</view>
|
</view>
|
|
<u-gap height="5" v-show="!item.arrowType&&descMessage2" bgColor="#eff0f1"
|
style='width: 106%;margin-left: -3%;'></u-gap>
|
|
<view class="head" v-show="!item.arrowType&&descMessage2"
|
style="padding-bottom: 10rpx;">
|
<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
维修内容
|
</view>
|
</view>
|
</view>
|
<view style="margin: 0 20rpx; width: 95%;" class="contentFont">
|
{{descMessage2}}
|
</view>
|
</view>
|
|
<u-gap height="5" v-show="!item.arrowType&&descMessage3" bgColor="#eff0f1"
|
style='width: 106%;margin-left: -3%;'></u-gap>
|
|
<view class="head" v-show="!item.arrowType&&descMessage3"
|
style="padding-bottom: 10rpx;">
|
<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
更换备件
|
</view>
|
</view>
|
</view>
|
|
|
<view style="margin: 0 20rpx; width: 95%;" class="contentFont">
|
{{descMessage3}}
|
</view>
|
<view style="display: flex;" v-show="fileList2.length!==0">
|
<view v-for="(pic,index) in fileList2" :key="index">
|
<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
|
<!-- <u-icon name="close" color="#fff" size="26"
|
style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
|
@click="deletePic(pic)"></u-icon>
|
-->
|
<image :src="baseUrl+ pic.img2url" @click="imgPreview2(pic)"
|
class="upLoadImg">
|
</image>
|
</view>
|
</view>
|
|
</view>
|
</view>
|
|
|
<u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
|
style='width: 106%;margin-left: -3%;'></u-gap>
|
<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
|
<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
验证结果
|
</view>
|
</view>
|
|
|
<view class=" " style="width:250rpx;display: flex;"
|
:key="Math.random()+item.repair_code">
|
<u-button :plain="item.resultValue!=='OK'" text="正常" shape='circle'
|
size="small" style="margin-right:5rpx;"
|
@click="resultValueClick(item.mouldcode,'OK')"
|
:key="Math.random()+item.repair_code+'OK'" type="primary">
|
</u-button>
|
<u-button type="warning" :plain="item.resultValue!=='NG'"
|
shape='circle' size="small"
|
:key="Math.random()+item.repair_code+'NG'" text="异常"
|
@click="resultValueClick(item.mouldcode,'NG')">
|
</u-button>
|
</view>
|
</view>
|
</view>
|
|
<u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
|
style='width: 106%;margin-left: -3%;'></u-gap>
|
<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
|
<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
|
<view class="head_left">
|
<view class="head_bar"></view>
|
<view class="head_title">
|
剩余寿命(次)
|
</view>
|
</view>
|
|
|
<view class=" " style="width:250rpx;display: flex;">
|
|
<view class='inputClass marginTop10'>
|
<u--input placeholder="请输入数字"
|
:disabled='item.resultValue!=="OK"' border="surround"
|
type='number' v-model="surp_life"></u--input>
|
</view>
|
|
</view>
|
</view>
|
</view>
|
<!-- <u-gap height="16" v-show="!item.arrowType" bgColor="#eff0f1"
|
style='width: 106%;margin-left: -3%;'></u-gap> -->
|
|
<view style="display: flex;justify-content: center;margin : 10rpx; 0">
|
<view class="arrowClass"
|
@click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
|
<u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
|
size="24"></u-icon>
|
</view>
|
</view>
|
|
|
<u-gap height="16" bgColor="#eff0f1" style="width: 106%;margin-left: -3%;">
|
</u-gap>
|
</view>
|
</u-radio-group>
|
</view>
|
</view>
|
</view>
|
|
</view>
|
</view>
|
|
<view class="footer" style="min-height:62rpx;">
|
<u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
|
@click="submit" text="确认提交">
|
<!-- :disabled="topContent.length>0? topContent.find(i=>i.repair_code===radioValue).resultValue==='':true" -->
|
|
</u-button>
|
</view>
|
|
|
|
</view>
|
|
|
<!-- <scan-code></scan-code> -->
|
</view>
|
</template>
|
|
<script>
|
import {
|
RepairVerificationScanMouldData,
|
RepairVerificationScanMouldDataSub,
|
RepairVerificationScanMouldSave
|
} from '../../config/api.js'
|
|
// import scanCode from '@/components/scan-code/scan-code.vue'
|
export default {
|
// components: {
|
// scanCode
|
// },
|
onLoad(option) {
|
|
|
// const _this = this
|
// uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器
|
// uni.$on('scancodedate', function(content) {
|
// console.log("扫描到的内容为:", content)
|
|
|
// let r = _this.topContent.find(i => i.repair_code === content)
|
|
// if (r === undefined) {
|
// uni.$u.toast('所扫的二维码不在列表中!')
|
// // return
|
// } else {
|
// _this.topContent.forEach((item, index) => {
|
// if (item.repair_code === content) {
|
// _this.topContent.splice(index, 1)
|
// }
|
// })
|
// _this.topContent.unshift(r)
|
// _this.radioValue = content
|
// }
|
// })
|
},
|
onPullDownRefresh() {
|
setTimeout(() => {
|
this.init(() => {
|
uni.stopPullDownRefresh();
|
})
|
}, 1000);
|
},
|
data() {
|
return {
|
topRightMessageCount: 0,
|
isDisabledSubmitButton: false,
|
baseUrl: 'http://121.196.36.24:8021/',
|
topContent: [], //扫描保养工位所带出来的内容
|
radioValue: '', //单选框的值
|
scanContent: '', //扫描扫出来的值
|
|
detailContent: [], //显示详情内容
|
|
descMessage: '', //
|
descMessage2: '', //
|
descMessage3: '', //
|
imgPreviewSrcs: [], //图片预览src 故障描述
|
fileList: [], //图片数组 故障描述
|
fileList2: [], //更换备件图片
|
imgPreviewSrcs2: [],
|
|
surp_life: ''
|
|
|
}
|
},
|
created() {
|
|
|
},
|
mounted() {
|
this.init()
|
this.getRepairVerificationScanMouldData()
|
|
},
|
methods: {
|
|
// 预览图片
|
imgPreview(img) {
|
console.log(img)
|
uni.previewImage({
|
current: this.fileList.findIndex(i => i.img1url === img.img1url),
|
indicator: "number",
|
loop: true,
|
urls: this.imgPreviewSrcs
|
})
|
},
|
imgPreview2(img) {
|
uni.previewImage({
|
current: this.fileList2.findIndex(i => i.img2url === img.img2url),
|
indicator: "number",
|
loop: true,
|
urls: this.imgPreviewSrcs2
|
})
|
},
|
init() {
|
uni.stopPullDownRefresh();
|
},
|
// 单选按钮选中值改变
|
groupChange(mouldcode) {
|
this.radioValue = mouldcode
|
|
console.log(JSON.stringify(this.topContent))
|
this.topContent.forEach(item => {
|
if (item.mouldcode !== mouldcode) {
|
item.resultValue = ''
|
}
|
})
|
this.$forceUpdate()
|
|
},
|
|
// 扫码框点击
|
topScanClick() {
|
let that = this;
|
uni.scanCode({
|
onlyFromCamera: true,
|
// scanType: ['barCode', 'qrCode'],
|
scanType: ['qrCode'],
|
success: function(res) {
|
console.log('条码类型:' + res.scanType);
|
console.log('条码内容:' + res.result);
|
that.scanContent = res.result;
|
|
|
|
let r = that.topContent.find(i => i.repair_code === that.scanContent)
|
|
if (r === undefined) {
|
uni.$u.toast('所扫的二维码不在列表中!')
|
} else {
|
that.topContent.forEach((item, index) => {
|
if (item.repair_code === that.scanContent) {
|
that.topContent.splice(index, 1)
|
}
|
})
|
that.topContent.unshift(r)
|
that.radioValue = that.scanContent
|
}
|
|
},
|
complete: function(res) {
|
|
},
|
fail: function(res) {
|
console.log('条码类型:' + res.scanType);
|
console.log('条码内容:' + res.result);
|
}
|
|
});
|
},
|
|
// 获取维修列表
|
async getRepairVerificationScanMouldData(val) {
|
const res = await RepairVerificationScanMouldData({
|
mouldcode: ''
|
})
|
if (res.code === '200') {
|
this.topContent = res.data
|
this.topContent.forEach(i => {
|
i.arrowType = true
|
i.resultValue = ''
|
})
|
if (this.topContent.length > 0) {
|
this.getRepairVerificationScanMouldDataSub(this.topContent[0].repair_code, this.topContent[0]
|
.mouldcode)
|
}
|
this.radioValue = this.topContent.length > 0 ? this.topContent[0].mouldcode : ''
|
// console.log(this.topContent, 1)
|
this.$forceUpdate()
|
|
}
|
},
|
// 获取维修列表详情
|
async getRepairVerificationScanMouldDataSub(repair_code, mouldcode) {
|
const res = await RepairVerificationScanMouldDataSub({
|
repair_code,
|
mouldcode
|
})
|
this.detailContent = res.data
|
|
this.descMessage = this.detailContent.failure_descript
|
this.fileList = this.detailContent.failure_descriptimg ? this.detailContent.failure_descriptimg.filter(
|
i => i.img1url !== '') : []
|
|
this.imgPreviewSrcs = []
|
this.fileList.forEach(i => {
|
this.imgPreviewSrcs.push(this.baseUrl + i.img1url)
|
})
|
|
this.descMessage2 = this.detailContent.repair_content ? this.detailContent.repair_content : ''
|
this.descMessage3 = this.detailContent.repair_part ? this.detailContent.repair_part : ''
|
this.fileList2 = this.detailContent.repair_partimage ? this.detailContent.repair_partimage.filter(i =>
|
i.img2url !== '') : []
|
this.imgPreviewSrcs2 = []
|
this.fileList2.forEach(i => {
|
this.imgPreviewSrcs2.push(this.baseUrl + i.img2url)
|
})
|
|
this.surp_life = ''
|
this.$forceUpdate()
|
},
|
// 向下的箭头点击
|
arrowDownClick(val) {
|
this.topContent.forEach(item => {
|
item.arrowType = true
|
if (item.mouldcode === val.mouldcode) {
|
item.arrowType = false
|
item.resultValue = item.resultValue ? item.resultValue : ''
|
this.descMessage = ''
|
this.descMessage2 = ''
|
this.descMessage3 = ''
|
this.fileList = []
|
this.fileList2 = []
|
this.imgPreviewSrcs = []
|
this.imgPreviewSrcs2 = []
|
this.getRepairVerificationScanMouldDataSub(item.repair_code, item.mouldcode)
|
}
|
})
|
this.$forceUpdate()
|
},
|
//向上从箭头点击
|
arrowUpClick(val) {
|
this.topContent.forEach(item => {
|
item.arrowType = true
|
})
|
this.$forceUpdate()
|
},
|
// 验证结果点击
|
resultValueClick(mouldcode, val) {
|
|
this.surp_life = ''
|
|
this.topContent.forEach(item => {
|
if (item.mouldcode === mouldcode) {
|
item.resultValue = val
|
}
|
})
|
|
this.$forceUpdate()
|
},
|
// 确认提交按钮
|
async submit() {
|
const result = this.topContent.find(item => item.mouldcode === this.radioValue)
|
const data = {
|
repairwo: result.repair_code,
|
mouldcode: this.radioValue,
|
result: result.resultValue,
|
surp_life: this.surp_life
|
}
|
|
console.log(JSON.stringify(data));
|
this.isDisabledSubmitButton = true
|
const res = await RepairVerificationScanMouldSave(data)
|
if (res.code === '200') {
|
uni.$u.toast('提交成功!')
|
this.topContent = this.topContent.filter(i => i.mouldcode !== this
|
.radioValue)
|
this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
|
.mouldcode
|
|
} else {
|
uni.$u.toast(res.message)
|
}
|
this.isDisabledSubmitButton = false
|
this.$forceUpdate()
|
|
|
|
|
|
// const header = {
|
// 'Content-Type': 'application/x-www-form-urlencoded',
|
// 'Token': uni.getStorageSync('Token'),
|
// }
|
|
// const result = this.topContent.find(item => item.mouldcode === this.radioValue)
|
// let formData = {
|
// username: uni.getStorageSync('username'),
|
// repairwo: result.repair_code,
|
// eqpcode: result.eqpcode,
|
// wkshpcode: result.wksp_code,
|
// result: result.resultValue,
|
// }
|
|
// this.isDisabledSubmitButton = true
|
// uni.uploadFile({
|
// url: this.$baseUrl + '/AppDeviceManage/RepairVerificationScanDeviceSave',
|
// files: [{
|
// "uri": "/"
|
// }],
|
// header: header,
|
// formData: formData,
|
// success: (res) => {
|
// let result = JSON.parse(res.data)
|
// if (res.statusCode == 200 && result.code == '200') {
|
// uni.$u.toast('提交成功!')
|
// this.topContent = this.topContent.filter(i => i.repair_code !== this
|
// .radioValue)
|
// this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
|
// .repair_code
|
// } else {
|
// uni.$u.toast(result.Message)
|
// }
|
// this.isDisabledSubmitButton = false
|
// this.$forceUpdate()
|
// },
|
// fail(res) {
|
// uni.$u.toast('提交失败!')
|
// this.isDisabledSubmitButton = false
|
// },
|
// })
|
|
|
|
|
|
},
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@import url('@/style/global.css');
|
|
::v-deep .uicon-arrow-left>span {
|
display: block;
|
}
|
|
::v-deep .uicon-camera-fill {
|
font-size: 60rpx !important;
|
}
|
|
|
::v-deep .uni-progress-bar {
|
background-color: transparent !important;
|
}
|
|
.upLoadImg {
|
width: 160rpx;
|
height: 160rpx;
|
border-radius: 20rpx;
|
}
|
|
.repairDetail {
|
margin-top: 20rpx;
|
background-color: #eff0f1;
|
height: 80rpx;
|
font-size: 36rpx;
|
width: 106%;
|
margin-left: -3%;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
border-radius: 10rpx;
|
}
|
|
.arrowClass {
|
display: flex;
|
justify-content: center;
|
// background-color: #efefef;
|
width: 100rpx;
|
// border-radius: 10rpx;
|
height: 56rpx;
|
}
|
</style>
|