This commit is contained in:
2023-12-20 09:13:42 +08:00
commit 10c53065aa
125 changed files with 18087 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
<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>

View File

@@ -0,0 +1,77 @@
<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>

View File

@@ -0,0 +1,77 @@
<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>

View File

@@ -0,0 +1,124 @@
<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>

View File

@@ -0,0 +1,115 @@
<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>

View File

@@ -0,0 +1,102 @@
<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>

View File

@@ -0,0 +1,92 @@
<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>

View File

@@ -0,0 +1,89 @@
<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>

134
pages/modules/man-group.vue Normal file
View File

@@ -0,0 +1,134 @@
<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>

View File

@@ -0,0 +1,111 @@
<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>

View File

@@ -0,0 +1,76 @@
<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>

View File

@@ -0,0 +1,110 @@
<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>

View File

@@ -0,0 +1,142 @@
<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>

View File

@@ -0,0 +1,123 @@
<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>

View File

@@ -0,0 +1,101 @@
<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>