|
@@ -26,7 +26,11 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <view class="work-list">
|
|
|
|
|
|
|
+ <view v-if="activeType == 'quality'">
|
|
|
|
|
+ <InspectionWorkList pageName="myList" :way="orderType == 1 ? 'todo' : 'done'" ref="inspectionWorkListRef"></InspectionWorkList>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <view v-else class="work-list">
|
|
|
<u-list @scrolltolower="scrolltolower" :key="activeType" :preLoadScreen="page * 10">
|
|
<u-list @scrolltolower="scrolltolower" :key="activeType" :preLoadScreen="page * 10">
|
|
|
<u-list-item v-for="(item, index) in dataList" :key="index">
|
|
<u-list-item v-for="(item, index) in dataList" :key="index">
|
|
|
<CardTime :time="item.createTime" />
|
|
<CardTime :time="item.createTime" />
|
|
@@ -43,7 +47,7 @@
|
|
|
<template v-slot:list>
|
|
<template v-slot:list>
|
|
|
<view class="search_list">
|
|
<view class="search_list">
|
|
|
<u-form labelPosition="left" :model="formData" labelWidth="180" labelAlign="left" class="baseForm">
|
|
<u-form labelPosition="left" :model="formData" labelWidth="180" labelAlign="left" class="baseForm">
|
|
|
- <u-form-item v-if="orderType == 1" label="类型:" class="required-form" borderBottom
|
|
|
|
|
|
|
+ <u-form-item v-if="orderType == 1 && statusRange[activeType].length > 0" label="类型:" class="required-form" borderBottom
|
|
|
prop="assetType">
|
|
prop="assetType">
|
|
|
<u-checkbox-group v-model="searchFrom.orderStatus" placement="row" size="30"
|
|
<u-checkbox-group v-model="searchFrom.orderStatus" placement="row" size="30"
|
|
|
@change="statusChange">
|
|
@change="statusChange">
|
|
@@ -74,6 +78,8 @@
|
|
|
import {
|
|
import {
|
|
|
getByCode
|
|
getByCode
|
|
|
} from '@/api/pda/common.js'
|
|
} from '@/api/pda/common.js'
|
|
|
|
|
+
|
|
|
|
|
+ import { workorderMyPage } from '@/api/pda/workOrder'
|
|
|
|
|
|
|
|
import SearchPopup from '@/pages/pda/components/searchPopup.vue'
|
|
import SearchPopup from '@/pages/pda/components/searchPopup.vue'
|
|
|
import {
|
|
import {
|
|
@@ -89,7 +95,10 @@
|
|
|
import {
|
|
import {
|
|
|
nextTick
|
|
nextTick
|
|
|
} from 'vue'
|
|
} from 'vue'
|
|
|
-
|
|
|
|
|
|
|
+ import InspectionWorkList from '@/pages/qms/inspectionWork/list.vue'
|
|
|
|
|
+ import {
|
|
|
|
|
+ getPlanOrderList
|
|
|
|
|
+ } from '@/api/warehouseManagement'
|
|
|
|
|
|
|
|
// import { postJ } from '@/utils/api'
|
|
// import { postJ } from '@/utils/api'
|
|
|
let [isEnd] = [false]
|
|
let [isEnd] = [false]
|
|
@@ -97,7 +106,8 @@
|
|
|
components: {
|
|
components: {
|
|
|
KdCard,
|
|
KdCard,
|
|
|
CardTime,
|
|
CardTime,
|
|
|
- SearchPopup
|
|
|
|
|
|
|
+ SearchPopup,
|
|
|
|
|
+ InspectionWorkList
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
@@ -167,6 +177,39 @@
|
|
|
badge: {
|
|
badge: {
|
|
|
value: 0
|
|
value: 0
|
|
|
}
|
|
}
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ name: '生产工单',
|
|
|
|
|
+ type: 'production',
|
|
|
|
|
+ workOrderType: 6,
|
|
|
|
|
+ index: 3,
|
|
|
|
|
+ // url: `/pages/maintain_service/detail/detail?`,
|
|
|
|
|
+ url: `/pages/pda/workOrder/extrusionMolding/index?`,
|
|
|
|
|
+ badge: {
|
|
|
|
|
+ value: 0
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ name: '质检工单',
|
|
|
|
|
+ type: 'quality',
|
|
|
|
|
+ workOrderType: 7,
|
|
|
|
|
+ index: 4,
|
|
|
|
|
+ // url: `/pages/maintain_service/detail/detail?`,
|
|
|
|
|
+ url: ``,
|
|
|
|
|
+ badge: {
|
|
|
|
|
+ value: 0
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ name: '盘点工单',
|
|
|
|
|
+ type: 'stocktaking',
|
|
|
|
|
+ workOrderType: 8,
|
|
|
|
|
+ index: 5,
|
|
|
|
|
+ // url: `/pages/maintain_service/detail/detail?`,
|
|
|
|
|
+ url: `/pages/warehouse/workOrder/inventory/inventory?`,
|
|
|
|
|
+ badge: {
|
|
|
|
|
+ value: 0
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
],
|
|
],
|
|
|
activeType: 'maintenance',
|
|
activeType: 'maintenance',
|
|
@@ -296,7 +339,10 @@
|
|
|
value: 8,
|
|
value: 8,
|
|
|
text: '已派单'
|
|
text: '已派单'
|
|
|
}
|
|
}
|
|
|
- ]
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ quality: [],
|
|
|
|
|
+ stocktaking: [],
|
|
|
|
|
+ production: [],
|
|
|
},
|
|
},
|
|
|
searchFrom: {
|
|
searchFrom: {
|
|
|
code: '',
|
|
code: '',
|
|
@@ -308,8 +354,16 @@
|
|
|
codeData: [],
|
|
codeData: [],
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ created() {
|
|
|
|
|
+ uni.$off('successInit')
|
|
|
|
|
+ uni.$on('successInit', (data) => {
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ this.$refs.inspectionWorkListRef.successInit()
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
async onLoad(e) {
|
|
async onLoad(e) {
|
|
|
-
|
|
|
|
|
|
|
+ console.log('e~~~', e)
|
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
|
console.log(this)
|
|
console.log(this)
|
|
|
this.isInstall = false
|
|
this.isInstall = false
|
|
@@ -319,10 +373,16 @@
|
|
|
if (this.orderType == 1) {
|
|
if (this.orderType == 1) {
|
|
|
await this.getCount()
|
|
await this.getCount()
|
|
|
}
|
|
}
|
|
|
- this.handleTabChange(this.tabList[this.tabsCurrent])
|
|
|
|
|
|
|
+ const targetTab = this.tabList[this.tabsCurrent]
|
|
|
|
|
+ if (targetTab) {
|
|
|
|
|
+ this.handleTabChange(targetTab)
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
+ onUnload() {
|
|
|
|
|
+ uni.$off('successInit')
|
|
|
|
|
+ },
|
|
|
onShow(e) {
|
|
onShow(e) {
|
|
|
console.log(this.orderType);
|
|
console.log(this.orderType);
|
|
|
if (this.isInstall) return
|
|
if (this.isInstall) return
|
|
@@ -431,8 +491,14 @@
|
|
|
handleDetail(item) {
|
|
handleDetail(item) {
|
|
|
let url = this.tabList[this.activeIndex]?.url
|
|
let url = this.tabList[this.activeIndex]?.url
|
|
|
if (!url) return
|
|
if (!url) return
|
|
|
- // url += `id=${item.id}&workOrderCode=${item.workOrderCode}&BizType=${item.bizType}`
|
|
|
|
|
- url += `id=${item.id}&planId=${item.planId}&code=${item.code}&&orderType=${this.orderType}`
|
|
|
|
|
|
|
+ if(this.activeType == 'stocktaking') {
|
|
|
|
|
+ url += `id=${item.id}&status=${item.status}`
|
|
|
|
|
+ } else if(this.activeType == 'production') {
|
|
|
|
|
+ url += `id=${item.id}&title=${item.taskName}&singleReport=${item.singleReport}`
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // url += `id=${item.id}&workOrderCode=${item.workOrderCode}&BizType=${item.bizType}`
|
|
|
|
|
+ url += `id=${item.id}&planId=${item.planId}&code=${item.code}&&orderType=${this.orderType}`
|
|
|
|
|
+ }
|
|
|
console.log(url)
|
|
console.log(url)
|
|
|
uni.navigateTo({
|
|
uni.navigateTo({
|
|
|
url
|
|
url
|
|
@@ -452,37 +518,45 @@
|
|
|
this.page = 1
|
|
this.page = 1
|
|
|
this.reset()
|
|
this.reset()
|
|
|
this.searchShow = false
|
|
this.searchShow = false
|
|
|
|
|
+ if(this.activeType == 'quality'){
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ this.$refs.inspectionWorkListRef.getList()
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
getCount() {
|
|
getCount() {
|
|
|
statistics().then(data => {
|
|
statistics().then(data => {
|
|
|
console.log('onsole.log(data)-----------')
|
|
console.log('onsole.log(data)-----------')
|
|
|
console.log(data)
|
|
console.log(data)
|
|
|
|
|
+ console.log('this.tabList~~~', this.tabList)
|
|
|
this.tabList = this.tabList.map(item => {
|
|
this.tabList = this.tabList.map(item => {
|
|
|
|
|
+ console.log('item~~~', item)
|
|
|
|
|
+ let badgeValue = 0
|
|
|
switch (item.type) {
|
|
switch (item.type) {
|
|
|
case 'maintenance':
|
|
case 'maintenance':
|
|
|
- return {
|
|
|
|
|
- ...item, badge: {
|
|
|
|
|
- value: data.maintenanceNum
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ badgeValue = data.maintenanceNum
|
|
|
|
|
+ break
|
|
|
case 'patrol':
|
|
case 'patrol':
|
|
|
- return {
|
|
|
|
|
- ...item, badge: {
|
|
|
|
|
- value: data.patrolInspection
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ badgeValue = data.patrolInspection
|
|
|
|
|
+ break
|
|
|
case 'quantity':
|
|
case 'quantity':
|
|
|
- return {
|
|
|
|
|
- ...item, badge: {
|
|
|
|
|
- value: data.quantityNum
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ badgeValue = data.quantityNum
|
|
|
|
|
+ break
|
|
|
case 'repair':
|
|
case 'repair':
|
|
|
- return {
|
|
|
|
|
- ...item, badge: {
|
|
|
|
|
- value: data.repairsNum
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ badgeValue = data.repairsNum
|
|
|
|
|
+ break
|
|
|
|
|
+ case 'production':
|
|
|
|
|
+ badgeValue = data.productionNum
|
|
|
|
|
+ break
|
|
|
|
|
+ case 'check':
|
|
|
|
|
+ badgeValue = data.checkNum
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+ return {
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ badge: {
|
|
|
|
|
+ value: badgeValue
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
@@ -505,12 +579,69 @@
|
|
|
// })
|
|
// })
|
|
|
},
|
|
},
|
|
|
getList() {
|
|
getList() {
|
|
|
|
|
+ if(this.activeType == 'quality'){
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
uni.showLoading({
|
|
uni.showLoading({
|
|
|
title: '加载中'
|
|
title: '加载中'
|
|
|
})
|
|
})
|
|
|
console.log('this.searchFrom-----------------')
|
|
console.log('this.searchFrom-----------------')
|
|
|
console.log(this.searchFrom)
|
|
console.log(this.searchFrom)
|
|
|
- const params = {
|
|
|
|
|
|
|
+ isEnd = false
|
|
|
|
|
+
|
|
|
|
|
+ const userInfo = uni.getStorageSync('userInfo')
|
|
|
|
|
+
|
|
|
|
|
+ if(this.activeType == 'production'){
|
|
|
|
|
+ let statusList = []
|
|
|
|
|
+ if(this.orderType == 1){
|
|
|
|
|
+ statusList = [4, 5, 7]
|
|
|
|
|
+ } else {
|
|
|
|
|
+ statusList = [6, 10]
|
|
|
|
|
+ }
|
|
|
|
|
+ workorderMyPage({
|
|
|
|
|
+ pageNum: this.page,
|
|
|
|
|
+ size: 10,
|
|
|
|
|
+ ...this.searchFrom,
|
|
|
|
|
+ statusList: statusList,
|
|
|
|
|
+ workCenterIds: userInfo.workCenterIds
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ console.log('workorderMyPage~~~', res)
|
|
|
|
|
+
|
|
|
|
|
+ if (res.list?.length > 0) {
|
|
|
|
|
+ this.dataList = this.dataList.concat(res.list)
|
|
|
|
|
+ isEnd = this.dataList.length >= res.count
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.dataList = []
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log(this.dataList)
|
|
|
|
|
+ uni.hideLoading()
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ } else if(this.activeType == 'stocktaking'){
|
|
|
|
|
+
|
|
|
|
|
+ getPlanOrderList({
|
|
|
|
|
+ pageNum: this.page,
|
|
|
|
|
+ size: 10,
|
|
|
|
|
+ status: this.orderType == 1 ? 0 : 2,
|
|
|
|
|
+ ...this.searchFrom,
|
|
|
|
|
+ executorId: userInfo.userId
|
|
|
|
|
+ }).then(res => {
|
|
|
|
|
+ if (res.list?.length > 0) {
|
|
|
|
|
+ // if (params.page === 1) {
|
|
|
|
|
+ // this.dataList = []
|
|
|
|
|
+ // }
|
|
|
|
|
+ // this.dataList.push(...res.data.list.records)
|
|
|
|
|
+ this.dataList = this.dataList.concat(res.list)
|
|
|
|
|
+ isEnd = this.dataList.length >= res.count
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.dataList = []
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log(this.dataList)
|
|
|
|
|
+ uni.hideLoading()
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const params = {
|
|
|
type: this.tabList[this.activeIndex].workOrderType,
|
|
type: this.tabList[this.activeIndex].workOrderType,
|
|
|
pageNum: this.page,
|
|
pageNum: this.page,
|
|
|
size: 10,
|
|
size: 10,
|
|
@@ -536,8 +667,8 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- isEnd = false
|
|
|
|
|
- console.log(params);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ console.log('params~~~', params);
|
|
|
getWorkOrderList(params)
|
|
getWorkOrderList(params)
|
|
|
.then(res => {
|
|
.then(res => {
|
|
|
if (res.list?.length > 0 && params.type === this.tabList[this.activeIndex].workOrderType) {
|
|
if (res.list?.length > 0 && params.type === this.tabList[this.activeIndex].workOrderType) {
|
|
@@ -556,6 +687,8 @@
|
|
|
.catch(() => {
|
|
.catch(() => {
|
|
|
uni.hideLoading()
|
|
uni.hideLoading()
|
|
|
})
|
|
})
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
//(1:巡点检;2:保养;3:维修;4:盘点)
|
|
//(1:巡点检;2:保养;3:维修;4:盘点)
|
|
|
// _getMyWorkOrderList(params, loading = true) {
|
|
// _getMyWorkOrderList(params, loading = true) {
|
|
@@ -615,15 +748,25 @@
|
|
|
position: relative;
|
|
position: relative;
|
|
|
|
|
|
|
|
.tab_box {
|
|
.tab_box {
|
|
|
- width: 100%;
|
|
|
|
|
|
|
+ flex: 1;
|
|
|
height: 68rpx;
|
|
height: 68rpx;
|
|
|
-
|
|
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ overflow-x: auto;
|
|
|
|
|
+ overflow-y: hidden;
|
|
|
|
|
+ -webkit-overflow-scrolling: touch;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+
|
|
|
|
|
+ &::-webkit-scrollbar {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
.tab_item {
|
|
.tab_item {
|
|
|
height: 68rpx;
|
|
height: 68rpx;
|
|
|
line-height: 68rpx;
|
|
line-height: 68rpx;
|
|
|
padding: 0 20rpx;
|
|
padding: 0 20rpx;
|
|
|
font-size: 32rpx;
|
|
font-size: 32rpx;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
// color: #979C9E;
|
|
// color: #979C9E;
|
|
|
|
|
|
|
|
}
|
|
}
|