You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
277 lines
6.5 KiB
277 lines
6.5 KiB
<template>
|
|
<view>
|
|
<view class="input-box">
|
|
<view class="icon search"></view>
|
|
<input placeholder="搜索设备编号" v-model="deviceNo" placeholder-style="color:#c0c0c0;" @input="toSearch()" />
|
|
</view>
|
|
|
|
<view v-if="!serviceList" class="mart60 fotct font14 fcor666">
|
|
<image mode="widthFix" style="width: 70vw;" src="../../../static/img/noorder.png"></image>
|
|
</view>
|
|
<view class="width94 serlist border-r mart15" v-for="(item,index) in serviceList" :key="index"
|
|
@click="assignOrder(item.deviceNo)">
|
|
<view class="notes">
|
|
<view class="width75 margle">
|
|
<view class="font18 fcor333 fontwig6">编号: {{item.deviceNo}}</view>
|
|
<view class="font13 fcor999 mart5" v-if="sourceId == 1">申请时间:
|
|
{{item.createTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
|
|
</view>
|
|
</view>
|
|
<view class="storestus" v-if="item.bindStatus">
|
|
已绑定
|
|
</view>
|
|
<view class="otstatucs" v-if="!item.bindStatus">
|
|
未绑定
|
|
</view>
|
|
</view>
|
|
<view class="conts">
|
|
<view class="margle10 font13 fcor999">设备类型: {{item.deviceType | toFilter()}}</view>
|
|
</view>
|
|
</view>
|
|
<view class="height40"></view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getDeviceList,
|
|
assignOrder,
|
|
replace
|
|
} from '../../../Utils/Api.js';
|
|
let app = getApp();
|
|
export default {
|
|
data() {
|
|
return {
|
|
serviceList: [], //设备列表˚
|
|
sourceId: '', // 来源id
|
|
orderNo: '', //订单号
|
|
buildStatus: false, //是否分配
|
|
deviceNo: '', // 设备编号
|
|
assderid: '', //分配id
|
|
storeid:'', //门店id
|
|
pageNum: 1,
|
|
pagesize: 10,
|
|
isLoadMore: false, //是否加载中
|
|
}
|
|
},
|
|
filters: {
|
|
// 过滤器
|
|
toFilter: function(id) {
|
|
let codeName;
|
|
for (let i = 0; i < app.globalData.Dictionaries.DEVICE_TYPE.length; i++) {
|
|
if (id == app.globalData.Dictionaries.DEVICE_TYPE[i].codeValue) {
|
|
codeName = app.globalData.Dictionaries.DEVICE_TYPE[i].codeName;
|
|
}
|
|
}
|
|
return codeName;
|
|
},
|
|
},
|
|
onReachBottom() { //上拉触底函数
|
|
if (!this.isLoadMore) { //此处判断,上锁,防止重复请求
|
|
this.isLoadMore = true
|
|
this.pageNum += 1
|
|
this.getDeviceList()
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
this.sourceId = options.id;
|
|
this.orderNo = options.orderNo;
|
|
this.storeid = options.storeid;
|
|
this.assderid = options.assderid;
|
|
if (this.sourceId == 1 || this.sourceId == 5) {
|
|
this.buildStatus = true;
|
|
this.getDeviceList();
|
|
}
|
|
if (this.sourceId == 2 || this.sourceId == 4) {
|
|
this.buildStatus = false;
|
|
this.getDeviceList();
|
|
}
|
|
if (this.sourceId == 3) {
|
|
this.buildStatus = '';
|
|
this.getDeviceList();
|
|
}
|
|
},
|
|
methods: {
|
|
//查询列表
|
|
getDeviceList() {
|
|
let datas = {
|
|
pageNum: this.pageNum,
|
|
pageSize: this.pagesize,
|
|
buildStatus: this.buildStatus,
|
|
deviceNo: this.deviceNo,
|
|
storeId: this.storeid
|
|
}
|
|
getDeviceList(datas).then(res => {
|
|
if (res.return_code == '000000' && res.return_data.list != '') {
|
|
this.serviceList = this.serviceList.concat(res.return_data.list);
|
|
if (res.return_data.pages == this.pageNum) {
|
|
this.isLoadMore = true;
|
|
} else {
|
|
this.isLoadMore = false
|
|
}
|
|
} else {
|
|
this.serviceList = '';
|
|
}
|
|
})
|
|
},
|
|
//搜索设备
|
|
toSearch() {
|
|
this.pageNum = 1;
|
|
this.pageSize = 10;
|
|
this.serviceList = [];
|
|
this.getDeviceList();
|
|
},
|
|
//分配设备
|
|
assignOrder(item) {
|
|
if (this.sourceId == 2) {
|
|
uni.showModal({
|
|
title: '温馨提示',
|
|
content: '是否分配当前设备',
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
uni.showLoading({
|
|
title: '加载中'
|
|
})
|
|
let serviceList = [];
|
|
serviceList.push(item);
|
|
let datas = {
|
|
"orderNo": this.orderNo,
|
|
"deviceNoList": serviceList
|
|
}
|
|
assignOrder(datas).then(res => {
|
|
uni.hideLoading();
|
|
if (res.return_code == '000000') {
|
|
uni.showToast({
|
|
title: '分配成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateBack({})
|
|
} else {
|
|
uni.showToast({
|
|
title: res.return_msg,
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
} else if (res.cancel) {}
|
|
}
|
|
});
|
|
}
|
|
|
|
if (this.sourceId == 4) {
|
|
uni.showModal({
|
|
title: '温馨提示',
|
|
content: '是否更换当前设备',
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
uni.showLoading({
|
|
title: '加载中'
|
|
})
|
|
let serviceList = [];
|
|
serviceList.push(item);
|
|
let datas = {
|
|
"deviceOrderAssignId": this.assderid,
|
|
"deviceNo": item
|
|
}
|
|
replace(datas).then(res => {
|
|
uni.hideLoading();
|
|
if (res.return_code == '000000') {
|
|
uni.showToast({
|
|
title: '分配成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateBack({})
|
|
} else {
|
|
uni.showToast({
|
|
title: res.return_msg,
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
} else if (res.cancel) {}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.input-box {
|
|
width: 90%;
|
|
margin-left: 5%;
|
|
margin-top: 15px;
|
|
margin-bottom: 15px;
|
|
height: 70rpx;
|
|
background-color: #f5f5f5;
|
|
border-radius: 10rpx;
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.icon {
|
|
display: flex;
|
|
align-items: center;
|
|
position: absolute;
|
|
top: 2px;
|
|
left: 5px;
|
|
width: 60upx;
|
|
height: 60upx;
|
|
font-size: 34upx;
|
|
color: #c0c0c0;
|
|
}
|
|
|
|
input {
|
|
padding-left: 50upx;
|
|
height: 28upx;
|
|
font-size: 28upx;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.serlist {
|
|
border: 1px solid #f6f6f6;
|
|
box-shadow: 0upx 4upx 8upx rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.notes {
|
|
width: calc(100% - 40rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 30rpx 0 10rpx 20rpx;
|
|
}
|
|
|
|
.storestus {
|
|
padding: 1px 5px;
|
|
color: #91bb88;
|
|
font-size: 14px;
|
|
background-color: #e8fbe6;
|
|
}
|
|
|
|
.otstatucs {
|
|
background-color: #fbeee4;
|
|
color: #db8c73;
|
|
font-size: 14px;
|
|
padding: 1px 5px;
|
|
}
|
|
|
|
.conts {
|
|
width: calc(100% - 60rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
padding: 0 0rpx 30rpx 14rpx;
|
|
}
|
|
|
|
.xfimg {
|
|
width: 100rpx;
|
|
bottom: 60rpx;
|
|
position: fixed;
|
|
right: 40rpx;
|
|
}
|
|
</style>
|
|
|