<template>
|
<view>
|
<page-nav title="设备维修申请"></page-nav>
|
|
|
<view v-show="topContent.length===0">
|
<div class="sacnBody">
|
<div class="scanImg" @click="topScanClick"></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" style="max-height: 370rpx;overflow:scroll;">
|
<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="28"></u-icon>
|
</view>
|
|
</view>
|
|
<view class="marginTop20 marginLeft20 marginRight20 flex_column">
|
<!-- <u-radio-group class=""> -->
|
<view class="marginBottom20 flex_between" @click="groupChange(item.code)"
|
v-for="item in topContent" :key="item.code">
|
<view style="display: flex;">
|
<view class="flex_column titleFont">
|
<view>工位编码:</view>
|
<view>工位名称:</view>
|
<view>生产车间:</view>
|
</view>
|
<view class="flex_column contentFont">
|
<view>{{item.code}}</view>
|
<view>{{item.name}}</view>
|
<view>{{item.wksp_name}}</view>
|
</view>
|
</view>
|
<!-- <u-radio size='40' :key="item.code" :name="item.code"
|
@change="groupChange(item.code)" activeColor="red"></u-radio> -->
|
</view>
|
<!-- </u-radio-group> -->
|
</view>
|
|
</view>
|
<u-gap height="10" bgColor="#eff0f1"></u-gap>
|
|
<view class="head" 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="marginRight20" style="width: 200rpx;">
|
<uni-data-select v-model="selectValue" :clear="false" :localdata="selectRange"
|
@change="selectChange">
|
</uni-data-select>
|
</view>
|
</view>
|
</view>
|
<u-gap height="10" bgColor="#eff0f1"></u-gap>
|
|
<view class="head" 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 class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
|
<u--textarea placeholder="请输入" confirm-type="send" border="surround" height='100'
|
v-model="descMessage">
|
</u--textarea>
|
</view>
|
|
|
|
<view style="display: flex;">
|
<view v-for="(pic,index) in fileList" :key="pic.name">
|
<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
|
<u-icon name="close" color="#fff" size="13"
|
style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
|
@click="deletePic(pic)"></u-icon>
|
|
<image :src="pic.uri" @click="imgPreview(pic)" class="upLoadImg"></image>
|
</view>
|
</view>
|
<image v-if="fileList.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
|
margin: 20rpx;padding: 30rpx;
|
" @click="selectPics">
|
</view>
|
|
</view>
|
|
</view>
|
</view>
|
|
|
|
<u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
|
@click="submit" :disabled="descMessage.toString().length===0" text="确认提交">
|
</u-button>
|
|
</view>
|
|
|
<scan-code></scan-code>
|
</view>
|
</template>
|
|
<script>
|
import {
|
MaintainScanDeviceApplyQrCodeData,
|
MaintainScanDeviceApplySave
|
} from '../../config/api.js'
|
import {
|
data
|
} from '../../uni_modules/uview-ui/libs/mixin/mixin.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)
|
_this.getMaintainScanDeviceApplyQrCodeData(content)
|
})
|
},
|
onPullDownRefresh() {
|
setTimeout(() => {
|
this.init(() => {
|
uni.stopPullDownRefresh();
|
})
|
}, 1000);
|
},
|
data() {
|
return {
|
isDisabledSubmitButton: false,
|
|
topContent: [], //扫描保养工位所带出来的内容
|
centerContent: [], //保养项目内容
|
scanContent: '', //扫描扫出来的值
|
// radioValue: '', //单选框的值
|
|
selectValue: 'A',
|
selectRange: [{
|
value: 'A',
|
text: '设备点检'
|
}, {
|
value: 'B',
|
text: '设备保养'
|
}, {
|
value: 'C',
|
text: '安灯呼叫'
|
}, {
|
value: 'D',
|
text: '手工'
|
}],
|
descMessage: '', //故障描述
|
|
imgPreviewSrcs: [], //图片预览src
|
fileList: [], //图片数组
|
}
|
},
|
created() {
|
// const a = [{
|
// name: 1
|
// }]
|
// const b = [{
|
// name: 1
|
// }]
|
// console.log([...a, ...b])
|
},
|
mounted() {
|
this.init()
|
// this.getMaintainScanDeviceApplyQrCodeData('101')
|
|
},
|
methods: {
|
// 选择图片
|
selectPics() {
|
var that = this;
|
uni.chooseImage({
|
count: 3,
|
success: (res) => {
|
const files = res.tempFiles;
|
for (let i = 0; i < files.length; i++) {
|
let obj = new Object();
|
obj.name = 'photo' + i + new Date().getTime();
|
obj.uri = files[i].path;
|
that.fileList.push(obj);
|
if (obj.src == null || obj.src == '' || obj.src == undefined) {
|
that.imgPreviewSrcs.push(obj.uri)
|
} else {
|
that.imgPreviewSrcs.push(obj.src)
|
}
|
|
}
|
}
|
})
|
},
|
// 预览图片
|
imgPreview(img) {
|
uni.previewImage({
|
current: this.fileList.findIndex(i => i.name === img.name),
|
indicator: "number",
|
loop: true,
|
urls: this.imgPreviewSrcs
|
|
})
|
},
|
// 删除图片
|
deletePic(img) {
|
console.log(img)
|
this.fileList = this.fileList.filter(i => i.name !== img.name)
|
this.imgPreviewSrcs = this.imgPreviewSrcs.filter(i => i !== img.uri)
|
},
|
init() {
|
uni.stopPullDownRefresh();
|
},
|
|
selectChange(val) {
|
console.log(val)
|
},
|
// 扫码工位 的扫码框点击
|
topScanClick() {
|
// if (this.topContent.length > 0) {
|
// return uni.$u.toast('请先提交此维修申请!')
|
// }
|
|
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 flag = false
|
that.topContent.forEach(item => {
|
if (item.code === res.result) {
|
flag = true
|
}
|
})
|
if (flag) {
|
that.$u.toast('此条码已扫描,已在列表中!')
|
} else {
|
//处理扫码事件
|
that.getMaintainScanDeviceApplyQrCodeData(that.scanContent);
|
}
|
},
|
complete: function(res) {
|
|
},
|
fail: function(res) {
|
console.log('条码类型:' + res.scanType);
|
console.log('条码内容:' + res.result);
|
}
|
|
});
|
},
|
|
// 获取维修工位
|
async getMaintainScanDeviceApplyQrCodeData(val) {
|
const data = {
|
eqpcode: val
|
}
|
|
const res = await MaintainScanDeviceApplyQrCodeData(data)
|
if (res.code === '200') {
|
this.topContent = []
|
this.topContent.unshift(res.data[0])
|
}
|
},
|
|
// 确认提交按钮
|
async submit() {
|
const header = {
|
// 'Content-Type': 'multipart/form-data',
|
// 'Content-Type': 'application/x-www-form-urlencoded',
|
'Token': uni.getStorageSync('Token')
|
// 'rediskey': uni.getStorageSync('rediskey'),
|
// 'admin': uni.getStorageSync('usercode'),
|
// 'username': encodeURIComponent(uni.getStorageSync('username')),
|
// 'navTabId': uni.getStorageSync('usercode'),
|
// 'userid': uni.getStorageSync('userid'),
|
// 'guid': uni.getStorageSync('guid'),
|
// 'usertype': 'APP'
|
}
|
|
|
|
|
/*
|
在电脑上请求是需要H5的代码
|
手机上请求是需要APP-PLUS的代码
|
*/
|
// #ifdef H5
|
// console.log('H5')
|
// let formData = new FormData()
|
// formData.append("username", uni.getStorageSync('username'))
|
// formData.append("eqpcode", this.topContent[0].code)
|
// formData.append("wkshpcode", this.topContent[0].wksp_code)
|
// formData.append("faultsourcecode", this.selectValue)
|
// formData.append("faultdescr", this.descMessage)
|
// this.fileList.forEach((item, index) => {
|
// formData.append('files1', item.file)
|
// })
|
// MaintainScanDeviceApplySave(formData).then(res => {
|
// console.log(res, 1)
|
// })
|
// #endif
|
|
|
|
|
|
// #ifdef APP-PLUS ||MP
|
|
let formData = {
|
eqpcode: this.topContent[0].code,
|
wkshpcode: this.topContent[0].wksp_code,
|
faultsourcecode: this.selectValue,
|
faultdescr: this.descMessage,
|
}
|
|
|
console.log(formData)
|
console.log(this.fileList, 'fileList')
|
|
|
this.isDisabledSubmitButton = true
|
uni.uploadFile({
|
url: this.$baseUrl + '/DeviceManager/MaintainScanDeviceApplySave',
|
files: this.fileList.length === 0 ? [{
|
uri: '/'
|
}] : this.fileList,
|
// files: [{"uri": "/" }],
|
header: header,
|
formData: formData,
|
success: (res) => {
|
// console.log(res, '1')
|
let result = JSON.parse(res.data)
|
if (res.statusCode == 200 && result.code == '200') {
|
uni.$u.toast('提交成功!')
|
this.fileList = []
|
this.imgPreviewSrcs = []
|
this.descMessage = ''
|
this.topContent = []
|
this.centerContent = []
|
} else {
|
uni.$u.toast(result.Message)
|
}
|
this.isDisabledSubmitButton = false
|
},
|
fail(res) {
|
// console.log(res, '1')
|
uni.$u.toast('提交失败!')
|
this.isDisabledSubmitButton = false
|
},
|
})
|
|
// #endif
|
|
|
},
|
}
|
}
|
</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;
|
}
|
|
.uploader {
|
/deep/.u-add-tips {
|
display: none;
|
}
|
}
|
|
::v-deep .uni-progress-bar {
|
background-color: transparent !important;
|
}
|
|
.upLoadImg {
|
width: 160rpx;
|
height: 160rpx;
|
border-radius: 20rpx;
|
}
|
</style>
|