物料库存
This commit is contained in:
@@ -379,7 +379,7 @@ uni-button:after {
|
||||
.item-status {
|
||||
font-size: 26rpx;
|
||||
color: #fff;
|
||||
line-height: 14px;
|
||||
line-height: 30rpx;
|
||||
padding: 6rpx 1rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 10rpx;
|
||||
@@ -405,6 +405,12 @@ uni-button:after {
|
||||
height: 1rpx;
|
||||
background-color: #b8b8ba;
|
||||
}
|
||||
.item-line-2 {
|
||||
width: 1rpx;
|
||||
height: 30rpx;
|
||||
background-color: #000;
|
||||
margin: 0 14rpx;
|
||||
}
|
||||
|
||||
/** 提交栏 **/
|
||||
.submit-bar {
|
||||
@@ -453,6 +459,17 @@ uni-button:after {
|
||||
background-color: #ff6a00;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
.submit-button_c {
|
||||
font-size: 34rpx;
|
||||
line-height: 88rpx;
|
||||
color: #ff6a00;
|
||||
text-align: center;
|
||||
letter-spacing: 1rpx;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ff6a00;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
.submit-more {
|
||||
width: 20%;
|
||||
font-size: 34rpx;
|
||||
|
||||
@@ -40,6 +40,14 @@
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/modules/mater-inventory",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
// "pageOrientation": "landscape",
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
menuList: [
|
||||
{id: '1', name: '人工排产', icon: 'RF01', path: '/pages/modules/man-paichan'},
|
||||
{id: '2', name: '涂线板', icon: 'RF02', path: '/pages/modules/wire-board'},
|
||||
{id: '3', name: '物料库存', icon: 'RF03', path: '/pages/manage/man-group-disk'}
|
||||
{id: '3', name: '物料库存', icon: 'RF03', path: '/pages/modules/mater-inventory'}
|
||||
]
|
||||
};
|
||||
},
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="呼叫满料"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>起点</th>
|
||||
<th>终点</th>
|
||||
<th>任务状态</th>
|
||||
<th>备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i">
|
||||
<td>{{e.point_name1}}</td>
|
||||
<td>{{e.point_name2}}</td>
|
||||
<td>{{e.task_status}}</td>
|
||||
<td>{{e.remark}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_callingMaterialTaskShow">刷新</button>
|
||||
<button class="submit-button" :disabled="disabled" @tap="toSure">呼叫满料</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {callingMaterialTaskShow, callingMaterialTask} from '@/utils/getData1.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._callingMaterialTaskShow()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _callingMaterialTaskShow () {
|
||||
let res = await callingMaterialTaskShow()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 呼叫满料 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
try {
|
||||
let res = await callingMaterialTask()
|
||||
this.disabled = false
|
||||
this._callingMaterialTaskShow()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,77 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="呼叫木盘"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>起点</th>
|
||||
<th>终点</th>
|
||||
<th>任务状态</th>
|
||||
<th>备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i">
|
||||
<td>{{e.point_name1}}</td>
|
||||
<td>{{e.point_name2}}</td>
|
||||
<td>{{e.task_status}}</td>
|
||||
<td>{{e.remark}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_callingWoodenPalletTaskShow">刷新</button>
|
||||
<button class="submit-button" :disabled="disabled" @tap="toSure">呼叫木盘</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {callingWoodenPalletTaskShow, callingWoodenPalletTask} from '@/utils/getData1.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._callingWoodenPalletTaskShow()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _callingWoodenPalletTaskShow () {
|
||||
let res = await callingWoodenPalletTaskShow()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 呼叫木盘 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
try {
|
||||
let res = await callingWoodenPalletTask()
|
||||
this.disabled = false
|
||||
this._callingWoodenPalletTaskShow()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,77 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="空盘入库"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>起点</th>
|
||||
<th>终点</th>
|
||||
<th>任务状态</th>
|
||||
<th>备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i">
|
||||
<td>{{e.point_name1}}</td>
|
||||
<td>{{e.point_name2}}</td>
|
||||
<td>{{e.task_status}}</td>
|
||||
<td>{{e.remark}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_emptyDiskIntoStorageShow">刷新</button>
|
||||
<button class="submit-button" :disabled="disabled" @tap="toSure">空盘入库</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {emptyDiskIntoStorageShow, emptyDiskIntoStorageTask} from '@/utils/getData1.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._emptyDiskIntoStorageShow()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _emptyDiskIntoStorageShow () {
|
||||
let res = await emptyDiskIntoStorageShow()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 空盘入库 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
try {
|
||||
let res = await emptyDiskIntoStorageTask()
|
||||
this.disabled = false
|
||||
this._emptyDiskIntoStorageShow()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,124 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="设备点检"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">设备号</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">状态</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index2" :localdata="options2" @change="selectChange2"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item filter_item_1">
|
||||
<view class="filter_label">备注</view>
|
||||
<view class="filter_input_wraper filter_input_wraper_1">
|
||||
<textarea class="filter_textarea" v-model="remark"></textarea>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !index1 || !index2}" :disabled="disabled1" @tap="toSure">确认</button>
|
||||
<button class="submit-button" @tap="toCancle">取消</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {deviceInfo, deviceStatus, deviceCheckVerify} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options1: [],
|
||||
index1: '',
|
||||
options2: [],
|
||||
index2: '',
|
||||
remark: '',
|
||||
disabled1: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._deviceInfo()
|
||||
this._deviceStatus()
|
||||
},
|
||||
methods: {
|
||||
/** 选择器 */
|
||||
selectChange1(e) {
|
||||
this.index1 = e
|
||||
},
|
||||
selectChange2(e) {
|
||||
this.index2 = e
|
||||
},
|
||||
/** 获取设备下拉框 */
|
||||
async _deviceInfo () {
|
||||
let res = await deviceInfo()
|
||||
this.options1 = [...res]
|
||||
},
|
||||
/** 获取设备状态下拉框 */
|
||||
async _deviceStatus () {
|
||||
let res = await deviceStatus()
|
||||
this.options2 = [...res]
|
||||
},
|
||||
/** 确定 */
|
||||
async toSure () {
|
||||
this.disabled1 = true
|
||||
if (!this.index1) {
|
||||
uni.showToast({
|
||||
title: '设备号不能为空',
|
||||
icon: 'none'
|
||||
})
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
if (!this.index2) {
|
||||
uni.showToast({
|
||||
title: '状态不能为空',
|
||||
icon: 'none'
|
||||
})
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let userName = this.$store.getters.userInfo !== '' ? JSON.parse(this.$store.getters.userInfo).username : ''
|
||||
let res = await deviceCheckVerify(this.index1, userName,this.remark, this.index2)
|
||||
this.disabled1 = false
|
||||
this.index1 = ''
|
||||
this.index2 = ''
|
||||
this.remark = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
toCancle () {
|
||||
this.disabled1 = false
|
||||
this.index1 = ''
|
||||
this.index2 = ''
|
||||
this.remark = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.filter_item_1, .filter_input_wraper_1
|
||||
align-items: flex-start
|
||||
height 210rpx
|
||||
</style>
|
||||
@@ -1,115 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="设备操作"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">设备号</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">动作</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index2" :localdata="options2" @change="selectChange2"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !index1 || !index2}" :disabled="disabled1" @tap="toSure">确认</button>
|
||||
<button class="submit-button" @tap="toCancle">取消</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {deviceInfo, deviceStatus, deviceCheckVerify} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options1: [],
|
||||
index1: '',
|
||||
options2: [],
|
||||
index2: '',
|
||||
disabled1: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._deviceInfo()
|
||||
this._deviceStatus()
|
||||
},
|
||||
methods: {
|
||||
/** 选择器 */
|
||||
selectChange1(e) {
|
||||
this.index1 = e
|
||||
},
|
||||
selectChange2(e) {
|
||||
this.index2 = e
|
||||
},
|
||||
/** 获取设备下拉框 */
|
||||
async _deviceInfo () {
|
||||
let res = await deviceInfo()
|
||||
this.options1 = [...res]
|
||||
},
|
||||
/** 获取设备状态下拉框 */
|
||||
async _deviceStatus () {
|
||||
let res = await deviceStatus()
|
||||
this.options2 = [...res]
|
||||
},
|
||||
/** 确定 */
|
||||
async toSure () {
|
||||
this.disabled1 = true
|
||||
if (!this.index1) {
|
||||
uni.showToast({
|
||||
title: '设备号不能为空',
|
||||
icon: 'none'
|
||||
})
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
if (!this.index2) {
|
||||
uni.showToast({
|
||||
title: '状态不能为空',
|
||||
icon: 'none'
|
||||
})
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let userName = this.$store.getters.userInfo !== '' ? JSON.parse(this.$store.getters.userInfo).username : ''
|
||||
let res = await deviceCheckVerify(this.index1, userName, this.index2)
|
||||
this.disabled1 = false
|
||||
this.index1 = ''
|
||||
this.index2 = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
toCancle () {
|
||||
this.disabled1 = false
|
||||
this.index1 = ''
|
||||
this.index2 = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.filter_item_1, .filter_input_wraper_1
|
||||
align-items: flex-start
|
||||
height 210rpx
|
||||
</style>
|
||||
@@ -1,102 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="强制静置"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">静置时间</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="text" class="filter_input" v-model="val1">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>困料位置</th>
|
||||
<th>设备号</th>
|
||||
<th>静置时间</th>
|
||||
<th>剩余静置时间</th>
|
||||
<th>预计完成时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i" @tap="toCheck(e)" :class="{'checked': e.group_id === pkId}">
|
||||
<td>{{e.point_code}}</td>
|
||||
<td>{{e.device_code}}</td>
|
||||
<td>{{e.standing_time}}</td>
|
||||
<td>{{e.timeDifferenceMinutes}}</td>
|
||||
<td>{{e.estimatedCompletionTimeString}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_forcedRestingShow">刷新</button>
|
||||
<button class="submit-button" :class="{'btn-disabled': !val1 || !pkId}" :disabled="disabled" @tap="toSure">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {forcedRestingShow, forcedRestingSubmit} from '@/utils/getData2.js'
|
||||
import {dateTimeFtt} from '@/utils/utils.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
pkObj: {},
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._forcedRestingShow()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _forcedRestingShow () {
|
||||
let res = await forcedRestingShow()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 确认 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
if (!this.val1 || !this.pkId) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await forcedRestingSubmit(this.val1, this.pkId)
|
||||
this.disabled = false
|
||||
this.pkId = ''
|
||||
this.pkObj = {}
|
||||
this.val1 = ''
|
||||
this._forcedRestingShow()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
},
|
||||
toCheck (e) {
|
||||
this.pkId = this.pkId === e.group_id ? '' : e.group_id
|
||||
this.pkObj = this.pkId === e.group_id ? e : {}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,92 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="混碾搬运"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">载具编码</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">混碾位置</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !val1 || !index1}" :disabled="disabled1" @tap="toSure">确认</button>
|
||||
<button class="submit-button" @tap="toCancle">取消</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {getBlendingCode, sendTask} from '@/utils/getData1.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
options1: [],
|
||||
index1: '',
|
||||
disabled1: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._getBlendingCode()
|
||||
},
|
||||
methods: {
|
||||
/** 选择器 */
|
||||
selectChange1(e) {
|
||||
this.index1 = e
|
||||
},
|
||||
/** 下拉框-混碾位置 */
|
||||
async _getBlendingCode () {
|
||||
let res = await getBlendingCode()
|
||||
this.options1 = [...res]
|
||||
},
|
||||
/** 确定 */
|
||||
async toSure () {
|
||||
this.disabled1 = true
|
||||
if (!this.val1 || !this.index1) {
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await sendTask(this.val1, this.index1)
|
||||
this.disabled1 = false
|
||||
this.val1 = ''
|
||||
this.index1 = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
toCancle () {
|
||||
this.disabled1 = false
|
||||
this.val1 = ''
|
||||
this.index1 = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.filter_item_1, .filter_input_wraper_1
|
||||
align-items: flex-start
|
||||
height 210rpx
|
||||
</style>
|
||||
@@ -1,89 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="混碾操作"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>压机编号</th>
|
||||
<th>泥料号</th>
|
||||
<th>工单号</th>
|
||||
<th>是否上料</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i" @tap="toCheck(e)" :class="{'checked': e.record_id === pkId}">
|
||||
<td>{{e.device_code}}</td>
|
||||
<td>{{e.material_id}}</td>
|
||||
<td>{{e.workorder_id}}</td>
|
||||
<td>{{e.is_finish}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_mixRequestInfo">刷新</button>
|
||||
<button class="submit-button" :disabled="disabled" @tap="toSure">删除</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {mixRequestInfo, mixDeleteInfo} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
pkObj: {},
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._mixRequestInfo()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _mixRequestInfo () {
|
||||
let res = await mixRequestInfo()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 删除 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
if (!this.pkId) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await mixDeleteInfo(this.pkObj)
|
||||
this.disabled = false
|
||||
this.pkId = ''
|
||||
this.pkObj = {}
|
||||
this._mixRequestInfo()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
},
|
||||
toCheck (e) {
|
||||
this.pkId = this.pkId === e.record_id ? '' : e.record_id
|
||||
this.pkObj = this.pkId === e.record_id ? e : {}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,134 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="人工组盘"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">载具编码</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">载具类型</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">点位编码</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<zxz-uni-data-select v-model="index2" filterable :localdata="options2" @inputChange="inputChange" @change="change"></zxz-uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">物料重量</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="number" class="filter_input" v-model="val2">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !index1 || !index2}" :disabled="disabled1" @tap="toSure">确认</button>
|
||||
<button class="submit-button" @tap="toCancle">取消</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {getPressCode, getVehicleType, groupmanual} from '@/utils/getData1.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
val2: '',
|
||||
options1: [],
|
||||
index1: '',
|
||||
options2: [],
|
||||
index2: '',
|
||||
disabled1: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._getPressCode()
|
||||
this._getVehicleType()
|
||||
},
|
||||
methods: {
|
||||
change(e) {
|
||||
// console.log('e:', e);
|
||||
},
|
||||
inputChange(e) {
|
||||
// console.log(e);
|
||||
},
|
||||
/** 选择器 */
|
||||
selectChange1(e) {
|
||||
this.index1 = e
|
||||
},
|
||||
// selectChange2(e) {
|
||||
// this.index2 = e
|
||||
// },
|
||||
/** 获取载具类型下拉框 */
|
||||
async _getVehicleType () {
|
||||
let res = await getVehicleType()
|
||||
this.options1 = [...res]
|
||||
},
|
||||
/** 获取点位编码下拉框 */
|
||||
async _getPressCode () {
|
||||
let res = await getPressCode()
|
||||
this.options2 = [...res]
|
||||
},
|
||||
/** 确定 */
|
||||
async toSure () {
|
||||
this.disabled1 = true
|
||||
if (!this.index1) {
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
if (!this.index2) {
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await groupmanual(this.val1, this.index1, this.index2, this.val2)
|
||||
this.disabled1 = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
this.index1 = ''
|
||||
this.index2 = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
toCancle () {
|
||||
this.disabled1 = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
this.index1 = ''
|
||||
this.index2 = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.filter_item_1, .filter_input_wraper_1
|
||||
align-items: flex-start
|
||||
height 210rpx
|
||||
</style>
|
||||
113
pages/modules/mater-inventory.vue
Normal file
113
pages/modules/mater-inventory.vue
Normal file
@@ -0,0 +1,113 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="物料库存"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">物料</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-wrapper">
|
||||
<view class="item-wrap" v-for="(e, i) in dataList" :key="i">
|
||||
<view class="zd-row jcflexstart mgb10">
|
||||
<view class="item-font-1 item-font-5">{{e.material_code}}</view>
|
||||
<view class="item-line-2"></view>
|
||||
<view class="item-font-1 item-font-6">{{e.material_name}}</view>
|
||||
</view>
|
||||
<view class="zd-row jcflexstart">
|
||||
<view class="item-font-1 item-font-6">点位:</view>
|
||||
<view class="item-font-1">{{e.point_code}}{{e.point_name}}</view>
|
||||
</view>
|
||||
<view class="zd-row">
|
||||
<view class="zd-col-20 zd-row jcflexstart">
|
||||
<view class="item-font-4">设备:</view>
|
||||
<view class="item-font-4">{{e.vehicle_code}}</view>
|
||||
</view>
|
||||
<view class="zd-col-4 item-status" :class="'item-status-' + e.vehicle_type">{{textState(e.vehicle_type)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submit-bar_new">
|
||||
<button class="zd-col-7 submit-button_c" @tap="toClear">清空</button>
|
||||
<button class="zd-col-15 submit-button_new" @tap="_getInventoryMaterialInfo">查询</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {materialList, getInventoryMaterialInfo} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
disabled: false,
|
||||
options1: [],
|
||||
index1: '',
|
||||
pkId: ''
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._materialList()
|
||||
},
|
||||
methods: {
|
||||
textState (e) {
|
||||
switch (e) {
|
||||
case '1':
|
||||
return '普涂'
|
||||
break
|
||||
case '2':
|
||||
return '连涂'
|
||||
break
|
||||
default:
|
||||
return ''
|
||||
break
|
||||
}
|
||||
},
|
||||
selectChange1 (e) {
|
||||
this.index1 = e
|
||||
},
|
||||
/** 下拉框查询 */
|
||||
async _materialList () {
|
||||
let res = await materialList()
|
||||
this.options1 = [...res]
|
||||
},
|
||||
async _getInventoryMaterialInfo () {
|
||||
let res = await getInventoryMaterialInfo(this.index1)
|
||||
this.dataList = [...res]
|
||||
},
|
||||
toClear () {
|
||||
this.index1 = ''
|
||||
this.dataList = []
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
.item-font-5
|
||||
color #2b87ff
|
||||
font-weight bold
|
||||
.item-font-6
|
||||
color #000
|
||||
.item-font-4
|
||||
color #323232
|
||||
.item-status
|
||||
border-top-left-radius: 15rpx
|
||||
border-bottom-left-radius: 0
|
||||
border-top-right-radius: 0
|
||||
border-bottom-right-radius: 15rpx
|
||||
.item-status-1
|
||||
background-color: #f3ccb5;
|
||||
color: #ff5e00;
|
||||
.item-status-2
|
||||
background-color: #96f3b8;
|
||||
color: #36744c;
|
||||
</style>
|
||||
@@ -1,111 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="包装入库"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">托盘编码</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">物料数量</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="number" class="filter_input" v-model="val2">
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">剩余数量</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="number" class="filter_input" v-model="val3">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>起点1</th>
|
||||
<th>终点1</th>
|
||||
<th>起点2</th>
|
||||
<th>终点2</th>
|
||||
<th>任务状态</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i">
|
||||
<td>{{e.point_name1}}</td>
|
||||
<td>{{e.point_name2}}</td>
|
||||
<td>{{e.point_name3}}</td>
|
||||
<td>{{e.point_name4}}</td>
|
||||
<td>{{e.task_status}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_manualSortingPackingTaskShow">刷新</button>
|
||||
<button class="submit-button" :class="{'btn-disabled': !val1 || !val2}" :disabled="disabled" @tap="toSure">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {manualSortingPackingTaskShow, manualSortingPackingTask} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
val2: '',
|
||||
val3: '0',
|
||||
dataList: [],
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._manualSortingPackingTaskShow()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _manualSortingPackingTaskShow () {
|
||||
let res = await manualSortingPackingTaskShow()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 确认 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
if (!this.val1 || !this.val2) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await manualSortingPackingTask(this.val1, this.val2, this.val3)
|
||||
this.disabled = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
this.val3 = '0'
|
||||
this._manualSortingPackingTaskShow()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,76 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="托盘绑定"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">木托盘编码</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">钢托盘编码</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val2" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !val1 || !val2}" :disabled="disabled" @tap="toSure">确认</button>
|
||||
<button class="submit-button" @tap="toCancle">清空</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {manualSortingBindingVehicle} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
val2: '',
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
/** 确定 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
if (!this.val1 || !this.val2) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await manualSortingBindingVehicle(this.val2, this.val1)
|
||||
this.disabled = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
},
|
||||
toCancle () {
|
||||
this.disabled = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
</style>
|
||||
@@ -1,110 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="压机搬运"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">载具编码</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">搬运起点</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<zxz-uni-data-select v-model="index2" filterable :localdata="options2" @inputChange="inputChange" @change="change"></zxz-uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">砖块数量</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="number" class="filter_input" v-model="val2">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !index2}" :disabled="disabled1" @tap="toSure">确认</button>
|
||||
<button class="submit-button" @tap="toCancle">取消</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {pressPointList, pressTask} from '@/utils/getData1.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
val2: '',
|
||||
options2: [],
|
||||
index2: '',
|
||||
disabled1: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._pressPointList()
|
||||
},
|
||||
methods: {
|
||||
change(e) {
|
||||
// console.log('e:', e);
|
||||
},
|
||||
inputChange(e) {
|
||||
// console.log(e);
|
||||
},
|
||||
// selectChange2(e) {
|
||||
// this.index2 = e
|
||||
// },
|
||||
/** 获取下拉框 */
|
||||
async _pressPointList () {
|
||||
let res = await pressPointList()
|
||||
this.options2 = [...res]
|
||||
},
|
||||
/** 确定 */
|
||||
async toSure () {
|
||||
this.disabled1 = true
|
||||
if (!this.index2) {
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await pressTask(this.index2, this.val1, this.val2)
|
||||
this.disabled1 = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
this.index2 = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
toCancle () {
|
||||
this.disabled1 = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
this.index2 = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.filter_item_1, .filter_input_wraper_1
|
||||
align-items: flex-start
|
||||
height 210rpx
|
||||
</style>
|
||||
@@ -1,142 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="货架盘点"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">库位编码</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="text" placeholder="输入货架号码" class="filter_input" v-model="val1">
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">库位状态</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<uni-data-select v-model="index" :localdata="options" @change="selectChange"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="index === '2' || index === '3'" class="filter_item">
|
||||
<view class="filter_label">托盘编码</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="text" class="filter_input" v-model="val2">
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="index === '3'" class="filter_item">
|
||||
<view class="filter_label">砖块数量</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="number" class="filter_input" v-model="val3">
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="index === '3'" class="filter_item">
|
||||
<view class="filter_label">物料编码</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="text" class="filter_input" v-model="val4">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="index === '3'" class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>物料编码</th>
|
||||
<th>物料名称</th>
|
||||
<th>物料规格</th>
|
||||
<th>物料型号</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i" @tap="toCheck(e)" :class="{'checked': e.material_id === pkId}">
|
||||
<td>{{e.material_code}}</td>
|
||||
<td>{{e.material_name}}</td>
|
||||
<td>{{e.material_spec}}</td>
|
||||
<td>{{e.material_model}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_shelfMaterialQuery">查询</button>
|
||||
<button class="submit-button" :class="{'btn-disabled': !val1 || !index || (index === '2' && !val2) || (index === '3' && (!val2 || !val3 || !pkId))}" :disabled="disabled" @tap="toSure">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import {shelfMaterialQuery, shelfUpdateData} from '@/utils/getData2.js'
|
||||
import {dateTimeFtt} from '@/utils/utils.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
index: '',
|
||||
options: [{value: '1', text: '空位'}, {value: '2', text: '空盘'}, {value: '3', text: '有料'}],
|
||||
val2: '',
|
||||
val3: '',
|
||||
val4: '',
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
selectChange(e) {
|
||||
this.index = e
|
||||
},
|
||||
/** grid查询 */
|
||||
async _shelfMaterialQuery () {
|
||||
let res = await shelfMaterialQuery(this.val4)
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 确认 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
if (!this.val1 || !this.index || (this.index === '2' && !this.val2) || (this.index === '3' && (!this.val2 || !this.val3 || !this.pkId))) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let vcode = ''
|
||||
let qty = ''
|
||||
let id = ''
|
||||
if (this.index === '2') {
|
||||
vcode = this.val2
|
||||
}
|
||||
if (this.index === '3') {
|
||||
vcode = this.val2
|
||||
qty = this.val3
|
||||
id = this.pkId
|
||||
}
|
||||
let res = await shelfUpdateData(this.val1, this.index, vcode, qty, id)
|
||||
this.disabled = false
|
||||
this.pkId = ''
|
||||
this.val1 = ''
|
||||
this.index = ''
|
||||
this.val2 = ''
|
||||
this.val3 = ''
|
||||
this.val4 = ''
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
},
|
||||
toCheck (e) {
|
||||
this.pkId = this.pkId === e.material_id ? '' : e.material_id
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,123 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="分拣排产"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>工单号</th>
|
||||
<th>物料编码</th>
|
||||
<th>物料名称</th>
|
||||
<th>工单状态</th>
|
||||
<th>开工人</th>
|
||||
<th>创建者</th>
|
||||
<th>计划量</th>
|
||||
<th>实际量</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i" @tap="toCheck(e)" :class="{'checked': e.workorder_code === pkId}">
|
||||
<td>{{e.workorder_code}}</td>
|
||||
<td>{{e.material_code}}</td>
|
||||
<td>{{e.material_name}}</td>
|
||||
<td>{{e.workorder_status}}</td>
|
||||
<td>{{e.operator}}</td>
|
||||
<td>{{e.create_name}}</td>
|
||||
<td><input type="number" class="sin_input" v-model="e.plan_qty"></td>
|
||||
<td>{{e.real_qty}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" :class="{'btn-disabled': !pkId}" :disabled="disabled1" @tap="toSure1">开工</button>
|
||||
<button class="submit-button" :class="{'btn-disabled': !pkId}" :disabled="disabled2" @tap="toSure2">完工</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {manualSortingOrders, manualSortingProductionScheduling, manualSortingProductionComplete} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
pkObj: {},
|
||||
disabled1: false,
|
||||
disabled2: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._manualSortingOrders()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _manualSortingOrders () {
|
||||
let res = await manualSortingOrders()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
toCheck (e) {
|
||||
this.pkId = this.pkId === e.workorder_code ? '' : e.workorder_code
|
||||
this.pkObj = this.pkId === e.workorder_code ? e : {}
|
||||
},
|
||||
/** 开工 */
|
||||
async toSure1 () {
|
||||
this.disabled1 = true
|
||||
if (!this.pkId) {
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let userName = this.$store.getters.userInfo !== '' ? JSON.parse(this.$store.getters.userInfo).username : ''
|
||||
let res = await manualSortingProductionScheduling(this.pkId, userName)
|
||||
this.disabled1 = false
|
||||
this.pkId = ''
|
||||
this.pkObj = {}
|
||||
this._manualSortingOrders()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
/** 完工 */
|
||||
async toSure2 () {
|
||||
this.disabled2 = true
|
||||
if (!this.pkId) {
|
||||
this.disabled2 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let userName = this.$store.getters.userInfo !== '' ? JSON.parse(this.$store.getters.userInfo).username : ''
|
||||
let res = await manualSortingProductionComplete(this.pkId, userName)
|
||||
this.disabled2 = false
|
||||
this.pkId = ''
|
||||
this.pkObj = {}
|
||||
this._manualSortingOrders()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled2 = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -1,101 +0,0 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar title="剩料入库"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">托盘编码</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="filter_item">
|
||||
<view class="filter_label">物料数量</view>
|
||||
<view class="filter_input_wraper">
|
||||
<input type="number" class="filter_input" v-model="val2">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>起点</th>
|
||||
<th>终点</th>
|
||||
<th>任务状态</th>
|
||||
<th>备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i">
|
||||
<td>{{e.point_name1}}</td>
|
||||
<td>{{e.point_name2}}</td>
|
||||
<td>{{e.task_status}}</td>
|
||||
<td>{{e.remark}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-bar">
|
||||
<button class="submit-button" @tap="_forcedRestingShow">刷新</button>
|
||||
<button class="submit-button" :class="{'btn-disabled': !val1 || !val2}" :disabled="disabled" @tap="toSure">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {callingResidueMaterialTaskShow, callingResidueMaterialTask} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val1: '',
|
||||
val2: '',
|
||||
dataList: [],
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this._callingResidueMaterialTaskShow()
|
||||
},
|
||||
methods: {
|
||||
/** grid查询 */
|
||||
async _callingResidueMaterialTaskShow () {
|
||||
let res = await callingResidueMaterialTaskShow()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
/** 确认 */
|
||||
async toSure () {
|
||||
this.disabled = true
|
||||
if (!this.val1 || !this.val2) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await callingResidueMaterialTask(this.val1, this.val2)
|
||||
this.disabled = false
|
||||
this.val1 = ''
|
||||
this.val2 = ''
|
||||
this._callingResidueMaterialTaskShow()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
</style>
|
||||
@@ -39,9 +39,9 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submit-bar_new">
|
||||
<button class="zd-col-6 submit-button_new" @tap="toClear">清空</button>
|
||||
<button class="zd-col-8 submit-button_new" @tap="_coatedWireIntoStorageTaskShow">刷新</button>
|
||||
<button class="zd-col-8 submit-button_new" :class="{'btn-disabled': !val1 || !val2}" :disabled="disabled" @tap="_coatedWireIntoStorageTask">确认</button>
|
||||
<button class="zd-col-5 submit-button_c" @tap="toClear">清空</button>
|
||||
<button class="zd-col-5 submit-button_c" @tap="_coatedWireIntoStorageTaskShow">刷新</button>
|
||||
<button class="zd-col-13 submit-button_new" :class="{'btn-disabled': !val1 || !val2}" :disabled="disabled" @tap="_coatedWireIntoStorageTask">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -1,99 +1 @@
|
||||
import request from './request.js'
|
||||
|
||||
/**
|
||||
* 人工组盘
|
||||
*/
|
||||
// 点位编码
|
||||
export const getPressCode = () => request({
|
||||
url:'api/pda/group/getPressCode',
|
||||
data: {}
|
||||
})
|
||||
// 获取载具类型
|
||||
export const getVehicleType = () => request({
|
||||
url:'api/pda/group/getVehicleType',
|
||||
data: {}
|
||||
})
|
||||
// 人工组盘-确认
|
||||
export const groupmanual = (vcode, vtype, pcode, weight) => request({
|
||||
url:'api/pda/group/manual',
|
||||
data: {
|
||||
vehicle_code: vcode,
|
||||
vehicle_type: vtype,
|
||||
point_code: pcode,
|
||||
material_weight: weight
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* 混碾搬运
|
||||
*/
|
||||
// 获取混碾机数据
|
||||
export const getBlendingCode = () => request({
|
||||
url:'api/pda/move/getBlendingCode',
|
||||
data: {}
|
||||
})
|
||||
// 确认
|
||||
export const sendTask = (vcode, spcode) => request({
|
||||
url:'api/pda/move/sendTask',
|
||||
data: {
|
||||
vehicle_code: vcode,
|
||||
start_point_code: spcode,
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* 人工分拣
|
||||
*/
|
||||
// 呼叫木盘
|
||||
// 呼叫木盘刷新
|
||||
export const callingWoodenPalletTaskShow = () => request({
|
||||
url:'api/pda/manualSorting/callingWoodenPalletTaskShow',
|
||||
data: {}
|
||||
})
|
||||
// 呼叫木盘任务
|
||||
export const callingWoodenPalletTask = () => request({
|
||||
url:'api/pda/manualSorting/callingWoodenPalletTask',
|
||||
data: {}
|
||||
})
|
||||
|
||||
|
||||
// 呼叫满料
|
||||
// 呼叫满料刷新
|
||||
export const callingMaterialTaskShow = () => request({
|
||||
url:'api/pda/manualSorting/callingMaterialTaskShow',
|
||||
data: {}
|
||||
})
|
||||
// 呼叫满料确认
|
||||
export const callingMaterialTask = () => request({
|
||||
url:'/api/pda/manualSorting/callingMaterialTask',
|
||||
data: {}
|
||||
})
|
||||
|
||||
// 空盘入库
|
||||
// 空盘入库刷新
|
||||
export const emptyDiskIntoStorageShow = () => request({
|
||||
url:'api/pda/manualSorting/emptyDiskIntoStorageShow',
|
||||
data: {}
|
||||
})
|
||||
// 空盘入库确认
|
||||
export const emptyDiskIntoStorageTask = () => request({
|
||||
url:'api/pda/manualSorting/emptyDiskIntoStorageTask',
|
||||
data: {}
|
||||
})
|
||||
|
||||
// 压机搬运
|
||||
// 压机叫料
|
||||
export const pressTask = (dcode, vcode, qty, id) => request({
|
||||
url:'api/pda/pressSendMaterial/pressTask',
|
||||
data: {
|
||||
device_code: dcode,
|
||||
vehicle_code: vcode,
|
||||
qty: qty,
|
||||
user_id: id
|
||||
}
|
||||
})
|
||||
// 搬运起点
|
||||
export const pressPointList = () => request({
|
||||
url:'api/pda/pressSendMaterial/pressPointList',
|
||||
data: {}
|
||||
})
|
||||
|
||||
@@ -26,55 +26,55 @@ export const handLogin = (user, password) => request({
|
||||
* 人工排产
|
||||
*/
|
||||
// 工单
|
||||
// export const manualSortingOrders = () => request({
|
||||
// url:'api/pda/manualSorting/orders',
|
||||
// data: {}
|
||||
// })
|
||||
export const manualSortingOrders = () => {
|
||||
let res = [
|
||||
{
|
||||
"workorder_code": "231117001",
|
||||
"material_code": "ZJB",
|
||||
"material_name": "正极板",
|
||||
"workorder_status": "1",
|
||||
"operator": null,
|
||||
"create_name": "管理员",
|
||||
"plan_qty": "1111",
|
||||
"real_qty": "0"
|
||||
},
|
||||
{
|
||||
"workorder_code": "231128002",
|
||||
"material_code": "FJB",
|
||||
"material_name": "负极板",
|
||||
"workorder_status": "3",
|
||||
"operator": null,
|
||||
"create_name": "管理员",
|
||||
"plan_qty": "2222",
|
||||
"real_qty": "0"
|
||||
},
|
||||
{
|
||||
"workorder_code": "231128003",
|
||||
"material_code": "BFJB",
|
||||
"material_name": "边负极板",
|
||||
"workorder_status": "4",
|
||||
"operator": 'admin',
|
||||
"create_name": "管理员",
|
||||
"plan_qty": "1111",
|
||||
"real_qty": "0"
|
||||
},
|
||||
{
|
||||
"workorder_code": "231212003",
|
||||
"material_code": "BFJB",
|
||||
"material_name": "边负极板",
|
||||
"workorder_status": "1",
|
||||
"operator": null,
|
||||
"create_name": "管理员",
|
||||
"plan_qty": "8989767",
|
||||
"real_qty": "0"
|
||||
}
|
||||
]
|
||||
return res
|
||||
}
|
||||
export const manualSortingOrders = () => request({
|
||||
url:'api/pda/manualSorting/orders',
|
||||
data: {}
|
||||
})
|
||||
// export const manualSortingOrders = () => {
|
||||
// let res = [
|
||||
// {
|
||||
// "workorder_code": "231117001",
|
||||
// "material_code": "ZJB",
|
||||
// "material_name": "正极板",
|
||||
// "workorder_status": "1",
|
||||
// "operator": null,
|
||||
// "create_name": "管理员",
|
||||
// "plan_qty": "1111",
|
||||
// "real_qty": "0"
|
||||
// },
|
||||
// {
|
||||
// "workorder_code": "231128002",
|
||||
// "material_code": "FJB",
|
||||
// "material_name": "负极板",
|
||||
// "workorder_status": "3",
|
||||
// "operator": null,
|
||||
// "create_name": "管理员",
|
||||
// "plan_qty": "2222",
|
||||
// "real_qty": "0"
|
||||
// },
|
||||
// {
|
||||
// "workorder_code": "231128003",
|
||||
// "material_code": "BFJB",
|
||||
// "material_name": "边负极板",
|
||||
// "workorder_status": "4",
|
||||
// "operator": 'admin',
|
||||
// "create_name": "管理员",
|
||||
// "plan_qty": "1111",
|
||||
// "real_qty": "0"
|
||||
// },
|
||||
// {
|
||||
// "workorder_code": "231212003",
|
||||
// "material_code": "BFJB",
|
||||
// "material_name": "边负极板",
|
||||
// "workorder_status": "1",
|
||||
// "operator": null,
|
||||
// "create_name": "管理员",
|
||||
// "plan_qty": "8989767",
|
||||
// "real_qty": "0"
|
||||
// }
|
||||
// ]
|
||||
// return res
|
||||
// }
|
||||
// 开工
|
||||
export const productionScheduling = (code, user) => request({
|
||||
url:'api/pda/manualSorting/productionScheduling',
|
||||
@@ -96,14 +96,14 @@ export const productionComplete = (code, user) => request({
|
||||
* 涂板线
|
||||
*/
|
||||
// 数据
|
||||
// export const coatedWireIntoStorageTaskShow = () => request({
|
||||
// url:'api/pda/manualSorting/coatedWireIntoStorageTaskShow',
|
||||
// data: {}
|
||||
// })
|
||||
export const coatedWireIntoStorageTaskShow = () => {
|
||||
let res = [{"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"1","remark":"普涂线01对接位01"}, {"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"2","remark":"普涂线01对接位01"}, {"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"3","remark":"普涂线01对接位01"}, {"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"4","remark":"普涂线01对接位01"}]
|
||||
return res
|
||||
}
|
||||
export const coatedWireIntoStorageTaskShow = () => request({
|
||||
url:'api/pda/manualSorting/coatedWireIntoStorageTaskShow',
|
||||
data: {}
|
||||
})
|
||||
// export const coatedWireIntoStorageTaskShow = () => {
|
||||
// let res = [{"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"1","remark":"普涂线01对接位01"}, {"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"2","remark":"普涂线01对接位01"}, {"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"3","remark":"普涂线01对接位01"}, {"point_name1":"普涂线01对接位01","point_name2":'普涂线01对接位01',"point_name3":'普涂线01对接位01',"point_name4":'普涂线01对接位01',"task_status":"4","remark":"普涂线01对接位01"}]
|
||||
// return res
|
||||
// }
|
||||
// 入库
|
||||
export const coatedWireIntoStorageTask = (code, qty) => request({
|
||||
url:'api/pda/manualSorting/coatedWireIntoStorageTask',
|
||||
@@ -121,10 +121,18 @@ export const materialList = () => request({
|
||||
url:'api/pda/materialList',
|
||||
data: {}
|
||||
})
|
||||
// export const materialList = () => {
|
||||
// let res = [{"value":"BFJB","text":"边负极板"},{"value":"FJB","text":"负极板"},{"value":"ZJB","text":"正极板"}]
|
||||
// return res
|
||||
// }
|
||||
// 根据物料获取库存数据
|
||||
export const getInventoryMaterialInfo = (code) => request({
|
||||
url:'api/pda/getInventoryMaterialInfo',
|
||||
data: {
|
||||
material_code: code
|
||||
}
|
||||
})
|
||||
})
|
||||
// export const getInventoryMaterialInfo = (code) => {
|
||||
// let res = [{"material_code":"FJB","material_name":"负极板","point_code":"01-09-01","point_name":"01排09列01层","vehicle_code":"T202312060006","vehicle_type":"1"}]
|
||||
// return res
|
||||
// }
|
||||
Reference in New Issue
Block a user