任务生成

This commit is contained in:
2022-12-12 16:35:31 +08:00
parent 262b688684
commit aa6b6371dd
9 changed files with 361 additions and 205 deletions

View File

@@ -1,79 +1,28 @@
import {post, post2} from '@config/http.js'
import {post2} from '@config/http.js'
// import store from '../vuex/store'
// 指令管理
// 1.1 查询未完成指令
export const queryInstraction = (keyword, scode, ncode) => post2('api/hand/insts', {
export const queryInstraction = (keyword, scode, ncode) => post2('api/axg/hand/insts', {
keyword: keyword,
start_devicecode: scode,
next_devicecode: ncode
})
// 1.2 指令操作
export const instOperation = (uuid, type) => post2('api/hand/inst', {
export const instOperation = (uuid, type) => post2('api/axg/hand/inst', {
inst_uuid: uuid,
type: type
})
// 任务管理
// 1.1 查询未完成指令
export const queryTask = (keyword, scode, ncode) => post2('api/hand/tasks', {
export const queryTask = (keyword, scode, ncode) => post2('api/axg/hand/tasks', {
keyword: keyword,
start_devicecode: scode,
next_devicecode: ncode
})
// 1.2 指令操作
export const taskOperation = (uuid, type) => post2('api/hand/taskoperation', {
export const taskOperation = (uuid, type) => post2('api/axg/hand/taskoperation', {
inst_uuid: uuid,
type: type
})
// 送料
// 1.1查询区域点位
export const sendMaterialqueryPoint = () => post('api/pda/sendMaterial/queryPoint', {})
// 1.2送料确定
export const sendMaterialconfirm = (rid, pid, pcode, qty) => post('api/pda/sendMaterial/confirm', {
region_id: rid,
point_id: pid,
point_code: pcode,
qty: qty
})
// 叫料
// 1.1查询区域点位
export const callMaterialqueryPoint = () => post('api/pda/callMaterial/queryPoint', {})
// 1.2叫料确定
export const callMaterialconfirm = (rid, pid, pcode) => post('api/pda/callMaterial/confirm', {
region_id: rid,
point_id: pid,
point_code: pcode
})
// 送空托盘
// 1.1查询区域点位
export const sendEmptyqueryPoint = () => post('api/pda/sendEmpty/queryPoint', {})
// 1.2送托盘确认
export const sendEmptyconfirm = (rid, pid, pcode, vcode, qty) => post('api/pda/sendEmpty/confirm', {
region_id: rid,
point_id: pid,
point_code: pcode,
vehicle_code: vcode,
qty: qty
})
// 呼叫空托盘
// 1.1查询区域点位
export const callEmptyqueryPoint = () => post('api/pda/callEmpty/queryPoint', {})
// 1.2送料确定
export const callEmptyconfirm = (rid, pid, pcode, qty) => post('api/pda/callEmpty/confirm', {
region_id: rid,
point_id: pid,
point_code: pcode,
qty: qty
})
// 组盘-托盘数量绑定
// 1.1托盘数量绑定确认
export const emptyAndQtyconfirm = (vcode, qty) => post('api/pda/emptyAndQty/confirm', {
vehicle_code: vcode,
qty: qty
})

View File

@@ -1,4 +1,4 @@
import {post, post2} from '@config/http.js'
import {post} from '@config/http.js'
// 测试接口返回结果
export const test = () => post('test/1', {})
@@ -18,105 +18,90 @@ export const updatePass = (Rfold, Rfnew) => post('api/pda/updatePass', {
RfnewPass: Rfnew
})
/** 呼叫空托盘 */
// 1.1查询区域
export const queryArea = () => post('api/pda/callEmpty/queryArea', {})
/** 任务生成 */
// 1.1查询设备
// export const queryDevice = () => post('api/pda/queryDevice', {})
export const queryDevice = () => {
let res = {
result: [
{
region_id: '1',
region_code: '1',
region_name: '1111',
deviceArr: [
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
},
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
},
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
},
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
}, {
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
}
]
},
{
region_id: '2',
region_code: '1',
region_name: '1111',
deviceArr: [
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
},
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
},
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
},
{
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
}, {
device_id: '1',
device_code: '1',
device_name: 'aaaa',
seq_num: '11111'
}
]
}
]
}
return res
}
// 1.2根据区域查询点位
export const queryPointByArea = (code) => post('api/pda/callEmpty/queryPointByArea', {
area_code: code
})
// 1.3 呼叫空托盘确定
export const callEmptyConfirm = (id, code, pname, acode) => post('api/pda/callEmpty/confirm', {
point_id: id,
point_code: code,
point_name: pname,
area_code: acode
})
/** 托盘点位绑定 */
// 1.1查询区域
export const queryArea1 = () => post('api/pda/sendEmpty/queryArea', {})
// 1.2根据区域查询点位
export const queryPointByArea1 = (code) => post('api/pda/sendEmpty/queryPointByArea', {
area_code: code
})
// 1.2托盘点位绑定确认
export const bindingConfirm = (code, vcode, status, is) => post('api/pda/binding/confirm', {
point_code: code,
vehicle_code: vcode,
point_status: status,
is_lock: is
})
/** 盘点管理 */
// 1.1查询物料
export const queryMaterial = (page, size) => post('api/pda/check/queryMaterial', {
page: page,
size: size
})
// 1.2查询盘点单据
export const queryIvt = (suuid, tuuid, page, size) => post('api/pda/check/queryIvt', {
sect_uuid: suuid,
struct_uuid: tuuid,
page: page,
size: size
})
// 1.3盘点确定
export const checkConfirm = (arr) => post('api/pda/check/confirm', {
JSONarray: arr
})
// 1.4查询库区
export const querySectCode = () => post('api/pda/check/querySectCode', {})
// 1.5查询仓位
export const queryStructCode = (uuid) => post('api/pda/check/queryStructCode', {
sect_uuid: uuid
})
/** 入窑输送线规则 */
// 1.1根据规则模式查询信息
export const queryInfo = (mode) => post('api/pda/ruleSetting/queryInfo', {
mode: mode
})
export const ruleSettingConfirm = (mode, is, JSONArray) => post('api/pda/ruleSetting/confirm', {
mode: mode,
is_used: is,
JSONArray: JSONArray
})
/** 托盘物料绑定 */
// 1.1根据托盘查询信息
export const queryInfoByVehicle = (code) => post('api/pda/bindingMaterial/queryInfoByVehicle', {
vehicle_code: code
})
// 1.2确定
export const bindingMaterialConfirm = (id, code, mname, pcsn, qty, vcode) => post('api/pda/bindingMaterial/confirm', {
material_id: id,
material_code: code,
material_name: mname,
pcsn: pcsn,
qty: qty,
vehicle_code: vcode
})
/** 定点任务 */
// 1.1查询设备起点和终点
export const queryDevice = () => post2('api/hand/queryDevice', {
})
// 1.2任务生成
export const handTask = (type, num, scode, fy, fz, ncode, ty, tz) => post2('api/hand/task', {
task_type: type,
emptypallet_num: num,
export const pdaTask = (scode, ncode) => post('api/pda/task', {
start_devicecode: scode,
form_y: fy,
form_z: fz,
next_devicecode: ncode,
to_y: ty,
to_z: tz
})
// 1.3查询任务类型
export const taskType = () => post2('api/hand/task_type', {
})
// 1.4查询货架点位的列、层
export const storageCode = (code) => post2('api/hand/queryStorageExtra', {
storage_code: code
next_devicecode: ncode
})

View File

@@ -5,7 +5,7 @@
<div class="userInfo">
<div class="fxcol">
<p class="p1">{{$store.getters.userInfo !== '' ? JSON.parse($store.getters.userInfo).nickName : ''}}</p>
<p class="p2">欢迎进入永裕手持系统</p>
<p class="p2">欢迎进入马钢手持系统</p>
</div>
<div class="exit" @click="Quit">
<i class="icon-exit"></i>
@@ -16,15 +16,10 @@
<div class="con">
<ul>
<!-- <li v-for="e in menuList" :key="e.menu_id" @click="toPage(e)">{{e.name}}</li> -->
<li @click="goInner('/TaskManage')">任务管理</li>
<li @click="goInner('/PaintTask')">任务生成</li>
<li @click="goInner('/ZlManage')">指令管理</li>
<li @click="goInner('/Password')">修改密码</li>
<li @click="goInner('/SendMater')">送料</li>
<li @click="goInner('/EquipCallMater')">叫料</li>
<li @click="goInner('/SendEmptyPallet')">送空托盘</li>
<li @click="goInner('/CallEmptyPallet')">呼叫空托盘</li>
<li @click="goInner('/GroupPallet')">组盘</li>
<li @click="goInner('/FixedPointTask')">定点任务</li>
<li @click="goInner('/TaskManage')">任务管理</li>
<!-- <li @click="goInner('/Password')">修改密码</li> -->
</ul>
</div>
</section>
@@ -45,6 +40,9 @@ export default {
document.getElementsByTagName('body')[0].className = 'bgwhite'
this.$store.dispatch('receiveMaterObj', {})
},
beforeDestroy () {
document.body.removeAttribute('class', 'bgwhite')
},
created () {
// this._authority()
},

View File

@@ -2,7 +2,7 @@
<section>
<section class="content">
<p class="p1">欢迎来到</p>
<p class="p2">永裕手持系统</p>
<p class="p2">马钢手持系统</p>
<div class="input-box">
<input type="text" class="allwidth" placeholder="请输入用户名" v-model="loginname">
</div>

View File

@@ -26,11 +26,11 @@
<li>
<span>单据打印地址:</span>
<input type="text" v-model="billPrintip">
</li>
</li> -->
<li>
<span>刷新时间(s):</span>
<input type="text" v-model="setTime">
</li> -->
<input type="number" v-model="setTime">
</li>
</ul>
</section>
<section class="submit-bar">
@@ -49,7 +49,7 @@ export default {
imgip: this.$store.getters.imgip,
printip: this.$store.getters.printUrl || 'http://10.5.29.104:8000',
billPrintip: this.$store.getters.billPrintUrl || 'http://10.5.29.191:8000',
setTime: this.$store.getters.setTime,
setTime: this.$store.getters.setTime / 1000,
factid: '1',
storeid: '1'
}
@@ -80,10 +80,10 @@ export default {
// this.toast('请填写单据打印地址')
// return
// }
// if (this.setTime === '') {
// this.toast('请填写刷新时间')
// return
// }
if (this.setTime === '') {
this.toast('请填写刷新时间')
return
}
// 删除id为printid的DOM节点
// var printid = document.getElementById('printid')
// if (printid) {
@@ -113,7 +113,7 @@ export default {
this.$store.dispatch('setImgIp', this.imgip)
this.$store.dispatch('setPrintUrl', this.printip)
this.$store.dispatch('setBillPrintUrl', this.billPrintip)
this.$store.dispatch('setRefreshTime', this.setTime)
this.$store.dispatch('setRefreshTime', this.setTime * 1000)
this.$router.push('/login')
}
}

View File

@@ -0,0 +1,236 @@
<template>
<section>
<nav-bar title="任务生成"></nav-bar>
<section class="content mgt15">
<div class="locate_block_wrap">
<div class="locate_block" v-for="e in areaArr" :key="e.region_id">
<div class="locate_name" @click="getPonit(e)">
<h2>{{e.region_name}}</h2>
<div class="iconfont open_icon" :class="{'is_reverse': e.checked === true}"></div>
</div>
<div v-show="e.checked === true" class="site_block clear" ref="liCon">
<div class="site_item fl" v-for="(el, i) in e.deviceArr" :key="i" @click="setInfo(el)">
<div class="site_item_box clear">
<h3 class="fl">站点</h3>
<div class="fl site_item_box_inner_r">
<p class="bg_white">{{el.device_name}}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="submit-bar">
<div class="dot_item">
<p class="p1">起始点</p>
<p class="p2">设备号{{scodeObj.device_name}}</p>
</div>
<div class="dot_item">
<p class="p1">目标点</p>
<p class="p2">设备号{{ncodeObj.device_name}}</p>
</div>
<div class="btn_block">
<button class="btn btn1" :class="{'btn-disabled': JSON.stringify(scodeObj) === '{}' && JSON.stringify(ncodeObj) === '{}'}" @click="cancle">清空</button>
<button class="btn btn1" :class="{'btn-disabled': JSON.stringify(scodeObj) === '{}' || JSON.stringify(ncodeObj) === '{}'}" :disabled="disabled1" @click="toSure">确认</button>
</div>
</section>
</section>
</template>
<script>
import NavBar from '@components/NavBar.vue'
import DropdownMenu from '@components/DropdownMenu.vue'
import {queryDevice, pdaTask} from '@config/getData2'
export default {
name: 'PaintTask',
components: {
NavBar,
DropdownMenu
},
data () {
return {
interTime: this.$store.getters.setTime,
timer: null,
areaArr: [],
scodeObj: {},
ncodeObj: {},
disabled1: false
}
},
mounted () {
this.refresh()
},
beforeDestroy () {
clearInterval(this.timer)
this.timer = null
},
methods: {
refresh () {
this._queryDevice()
this.timer = setInterval(() => {
this._queryDevice()
}, this.interTime)
},
/** 查询设备 */
async _queryDevice () {
let res = await queryDevice()
this.areaArr = [...res.result]
this.areaArr.map(el => {
this.$set(el, 'checked', true)
})
},
getPonit (e) {
this.areaArr.map(el => {
if (el.region_id === e.region_id) {
e.checked = !e.checked
}
})
},
/** 设为起始点目标点 */
setInfo (e) {
if (JSON.stringify(this.scodeObj) === '{}') {
this.scodeObj = e
} else if (JSON.stringify(this.ncodeObj) === '{}') {
this.ncodeObj = e
}
},
/** 清空点位选择 */
cancle () {
this.scodeObj = {}
this.ncodeObj = {}
this.disabled1 = true
},
toSure () {
this.disabled1 = true
if (JSON.stringify(this.scodeObj) === '{}' || JSON.stringify(this.ncodeObj) === '{}') {
this.disabled1 = false
return
}
this._pdaTask()
},
async _pdaTask () {
try {
let res = await pdaTask(this.scodeObj.device_code, this.ncodeObj.device_code)
this.toast(res.desc)
clearInterval(this.timer)
this.timer = null
setTimeout(() => {
this.refresh()
this.scodeObj = {}
this.ncodeObj = {}
this.disabled1 = false
}, 2000)
} catch (err) {
this.disabled1 = false
}
}
}
}
</script>
<style lang="stylus" scoped>
@import '~@style/mixin'
.locate_block
width 100%
background-color #fff
border-radius 5px
padding .1rem
margin-bottom .12rem
.locate_name
position relative
_wh(100%,24px)
h2
_font(16px,24px,#000,500)
.site_block
_wh(100%,auto)
overflow hidden
transition height .3s
.site_item
_wh(32%,50px)
padding 0 .1rem
margin-top .12rem
background-color #e5e5e5
border-radius 5px
margin-right 2%
overflow hidden
&:nth-child(3n)
margin-right 0
.site_item_box
_wh(100%, 40px)
margin 5px 0
overflow hidden
h3
display block
width 18px
_font(14px,20px,#000,500)
.site_item_box_inner_r
_fj(center)
flex-direction column
_wh(calc(100% - 18px), 40px)
background-color #fff
border-radius 3px
overflow hidden
p
display block
_wh(100%, 20px)
overflow hidden
_font(14px,20px,#999,,center)
padding 0 .05rem
.bg_white
background-color #fff
.open_icon
position absolute
right 0
top 0
_wh(24px,24px)
_font(20px,24px,$red,,right)
transition all .3s
transform rotateZ(180deg)
.is_reverse
transform rotateZ(0)
.gray
background-color #e5e5e5
.blue
background-color $blue
.green
background-color $green
.orange
background-color orange
.submit-bar
height 1.6rem
padding .1rem
.dot_item
width 35%
background-color #e5e5e5
.p1
display block
height .6rem
_font(.15rem,.6rem,,,center)
border-bottom .01rem solid #fff
overflow hidden
.p2
display block
height .8rem
padding 0 .05rem
_font(.15rem,.8rem,,,center)
overflow hidden
.btn_block
_wh(20%, 1.4rem)
_fj()
flex-direction column
.btn1
width 100%
.content
height calc(100% - 2.7rem)
.locate_block_wrap
height calc(100% - 2.8rem)
overflow-y auto
.msg_item_flex_2
width 100%
_fj()
.msg_item1
width calc(50% - .1rem)
.from_item
border-bottom .01rem solid #dcdfe6
</style>

View File

@@ -10,12 +10,7 @@ const Setup = r => require.ensure([], () => r(require('../pages/login/Setup')),
const Password = r => require.ensure([], () => r(require('../pages/proj/Password')), 'Password')
const TaskManage = r => require.ensure([], () => r(require('../pages/proj/TaskManage')), 'TaskManage')
const ZlManage = r => require.ensure([], () => r(require('../pages/proj/ZlManage')), 'ZlManage')
const SendMater = r => require.ensure([], () => r(require('../pages/proj/SendMater')), 'SendMater')
const EquipCallMater = r => require.ensure([], () => r(require('../pages/proj/EquipCallMater')), 'EquipCallMater')
const SendEmptyPallet = r => require.ensure([], () => r(require('../pages/proj/SendEmptyPallet')), 'SendEmptyPallet')
const CallEmptyPallet = r => require.ensure([], () => r(require('../pages/proj/CallEmptyPallet')), 'CallEmptyPallet')
const GroupPallet = r => require.ensure([], () => r(require('../pages/proj/GroupPallet')), 'GroupPallet')
const FixedPointTask = r => require.ensure([], () => r(require('../pages/proj/FixedPointTask')), 'FixedPointTask')
const PaintTask = r => require.ensure([], () => r(require('../pages/proj/PaintTask')), 'PaintTask')
Vue.use(Router)
@@ -61,28 +56,8 @@ export default new Router({
component: ZlManage
},
{
path: '/SendMater', // 送料
component: SendMater
},
{
path: '/EquipCallMater', // 叫料
component: EquipCallMater
},
{
path: '/SendEmptyPallet', // 送空托盘
component: SendEmptyPallet
},
{
path: '/CallEmptyPallet', // 呼叫空托盘
component: CallEmptyPallet
},
{
path: '/GroupPallet', // 组盘
component: GroupPallet
},
{
path: '/FixedPointTask', // 定点任务
component: FixedPointTask
path: '/PaintTask', // 任务生成
component: PaintTask
}
],
scrollBehavior (to, from, savedPosition) {

View File

@@ -548,4 +548,17 @@ header
.el-radio__input.is-checked+.el-radio__label
color#323232
.el-radio__inner:hover
border-color: $red
border-color: $red
//
.icons
height .8rem
.item_icon
_fj()
margin-right .2rem
.color_icon
_wh(.3rem, .3rem)
border-radius 50%
margin-right .1rem
.font_icon
_font(.28rem, .8rem, #000)

View File

@@ -7,7 +7,7 @@ const acsUrl = 'http://192.168.81.153:8010'
const imgip = 'http://192.168.81.155:8080'
const printUrl = ''
const billPrintUrl = ''
const setTime = '15'
const setTime = '5000'
/**
* App通用配置
*/