添加页面
56
pages.json
@@ -96,6 +96,62 @@
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/entry/group-to-store",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/entry/empty-tray-to-store",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/outbound/empty-tray-out-store",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/outbound/out-store-confirm",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/in/store-info",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/pick/pick-task",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/task/equip-task-manage",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
// "pageOrientation": "landscape",
|
||||
|
||||
102
pages/entry/empty-tray-to-store.vue
Normal file
@@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar :title="title"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">条码</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<search-box
|
||||
v-model="val1"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd_wrapper">
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">重量</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<input type="number" class="filter_input" v-model="obj.material_weight" disabled>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">数量</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<input type="number" class="filter_input" v-model="obj.material_qty" disabled>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">牌号</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<input type="text" class="filter_input" v-model="obj.material_code" disabled>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submit-bar">
|
||||
<button class="zd-col-6 button-default" @tap="clearUp">清空</button>
|
||||
<button class="zd-col-15 button-primary" :class="{'button-info': !val1}" :disabled="disabled" @tap="_zpxxTask">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {zpxxTask} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
val1: '',
|
||||
obj: {},
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
onLoad (options) {
|
||||
this.title = options.title
|
||||
},
|
||||
created () {
|
||||
},
|
||||
methods: {
|
||||
clearUp () {
|
||||
this.val1 = ''
|
||||
this.obj = {}
|
||||
},
|
||||
async _zpxxTask () {
|
||||
this.disabled = true
|
||||
if (!this.val1) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await zpxxTask(this.val1)
|
||||
this.disabled = false
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
this.obj = res
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
||||
117
pages/entry/group-to-store.vue
Normal file
@@ -0,0 +1,117 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar :title="title"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">载具编码</span>
|
||||
</view>
|
||||
<view class="zd-col-24 filter_select">
|
||||
<search-box
|
||||
v-model="val1"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">关联单据</span>
|
||||
</view>
|
||||
<view class="zd-col-24 filter_select">
|
||||
<search-box
|
||||
v-model="val2"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="fontcol1">物料编码</th>
|
||||
<th>物料名称</th>
|
||||
<th>物料规格</th>
|
||||
<th>批次</th>
|
||||
<th>单重</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i" @tap="toCheck(e)">
|
||||
<td class="fontcol1">{{e.material_id}}</td>
|
||||
<td>{{e.material_name}}</td>
|
||||
<td>{{e.material_spec}}</td>
|
||||
<td>{{e.pcsn}}</td>
|
||||
<td>{{e.single_weight}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submit-bar">
|
||||
<button class="zd-col-6 button-default">清空</button>
|
||||
<button class="zd-col-15 button-primary" :class="{'button-info': !pkId}" :disabled="disabled">组盘确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {unpackShelfInfo, cbjqlTask} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
val1: '',
|
||||
val2: '',
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
onLoad (options) {
|
||||
this.title = options.title
|
||||
},
|
||||
methods: {
|
||||
async _unpackShelfInfo () {
|
||||
let res = await unpackShelfInfo()
|
||||
this.dataList = [...res]
|
||||
},
|
||||
toCheck (e) {
|
||||
this.pkId = this.pkId === e.material_id ? '' : e.material_id
|
||||
},
|
||||
async _cbjqlTask () {
|
||||
this.disabled = true
|
||||
if (!this.pkId) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await cbjqlTask(this.pkId)
|
||||
this.pkId = ''
|
||||
this.disabled = false
|
||||
this._unpackShelfInfo()
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
@import '../../common/style/mixin.styl';
|
||||
.msg_wrapper
|
||||
height auto
|
||||
min-height 30%
|
||||
</style>
|
||||
@@ -5,7 +5,7 @@
|
||||
<view class="userInfo-wrap">
|
||||
<view class="userInfo">
|
||||
<text v-if="userName !== ''" class="p1">{{userName}}</text>
|
||||
<text class="p2">欢迎进入华弘手持系统!</text>
|
||||
<text class="p2">欢迎进入恒森WMS手持系统!</text>
|
||||
</view>
|
||||
<view class="exit" @tap="Quit">
|
||||
<view class="icon-exit"></view>
|
||||
@@ -15,14 +15,23 @@
|
||||
<view class="zd_home_wrapper">
|
||||
<view class="menus_wrap">
|
||||
<view class="fir_menu_wrap">
|
||||
<view class="fir_menu-item" v-for="e in menuList" :key="e.id" @tap="toPage(e)">
|
||||
<image class="menu-img" :src="require('../../static/image/menu/' + e.icon + '.png')" alt="">
|
||||
<view class="fir_menu-item" v-for="(e, i) in menuList" :key="i" @tap="toPage1(e)">
|
||||
<image class="menu-img" :src="require('../../static/image/menu/' + e.path + '.png')" alt="">
|
||||
<view class="menu-name">{{e.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="sec_menu_wraper" :class="show ? 'popshow' : 'pophide'">
|
||||
<view class="pop-title">{{title}}</view>
|
||||
<view class="sec_menu_w">
|
||||
<view class="sec_menu-item" :style="{'background-image': 'url(' + require('../../static/image/menu/' + icon + '.png') + ')'}" v-for="(e, i) in secM" :key="'sontree' + i" @click="toPage2(e)">
|
||||
<view class="menu-name_inner">{{e.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="show" class="modal" @click.stop="show = false"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -32,18 +41,17 @@
|
||||
return {
|
||||
userName: '',
|
||||
menuList: [
|
||||
{id: 1, title: '拆包机搬运', icon: 'RF01', path: '/pages/manage/cbj-carry'},
|
||||
{id: 2, title: '压机搬运', icon: 'RF02', path: '/pages/manage/press-carry'},
|
||||
{id: 3, title: '物料报废', icon: 'RF03', path: '/pages/manage/mater-scrap'},
|
||||
{id: 4, title: '人工分拣', icon: 'RF04', path: '/pages/manage/man-sort'},
|
||||
{id: 5, title: '任务管理', icon: 'RF05', path: '/pages/manage/task-manage'},
|
||||
{id: 6, title: '指令管理', icon: 'RF06', path: '/pages/manage/inst-manage'},
|
||||
{id: 7, title: '压制混碾满料搬运', icon: 'RF07', path: '/pages/manage/yzhnml-carry'},
|
||||
{id: 8, title: '条码解绑', icon: 'RF08', path: '/pages/manage/vehicle-unbind'},
|
||||
{id: 9, title: '组盘查看', icon: 'RF09', path: '/pages/manage/group-task'}
|
||||
{title: '入库管理', path: 'RF01', sonTree: [{title: '组盘入库', path: '/pages/entry/group-to-store'}, {title: '空托盘入库', path: '/pages/entry/empty-tray-to-store'}]},
|
||||
{title: '出库管理', path: 'RF02', sonTree: [{title: '空托盘出库', path: '/pages/outbound/empty-tray-out-store'}, {title: '出库确认', path: '/pages/outbound/out-store-confirm'}]},
|
||||
{title: '在库管理', path: 'RF03', sonTree: [{title: '库存信息', path: '/pages/in/store-info'}]},
|
||||
{title: '拣选管理', path: 'RF04', sonTree: [{title: '拣选作业', path: '/pages/pick/pick-task'}]},
|
||||
{title: '盘点管理', path: 'RF05', sonTree: [{title: '盘点作业', path: '/pages/check/check-task'}]},
|
||||
{title: '任务管理', path: 'RF06', sonTree: [{title: '设备作业管理', path: '/pages/task/equip-task-manage'}]}
|
||||
],
|
||||
show: false,
|
||||
secM: []
|
||||
secM: [],
|
||||
icon: '',
|
||||
title: ''
|
||||
};
|
||||
},
|
||||
created () {
|
||||
@@ -52,12 +60,16 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async _authority () {
|
||||
let res = await authority()
|
||||
this.menuList = [...res.sonTree]
|
||||
|
||||
toPage1 (e) {
|
||||
if (e.sonTree.length > 0) {
|
||||
this.show = true
|
||||
this.secM = e.sonTree
|
||||
|
||||
this.icon = e.path
|
||||
this.title = e.title
|
||||
}
|
||||
},
|
||||
toPage (e) {
|
||||
toPage2 (e) {
|
||||
let url = e.path + '?title=' + e.title
|
||||
uni.redirectTo({
|
||||
url: url
|
||||
@@ -153,4 +165,57 @@
|
||||
.menu-name
|
||||
_font(28rpx, 38rpx, #444,,center)
|
||||
padding 0 20rpx
|
||||
.sec_menu_wraper
|
||||
position fixed
|
||||
bottom 0
|
||||
left 0
|
||||
width 100%
|
||||
background-color #f4f5f5
|
||||
box-shadow 0 -8px 16px 0 rgba(28,31,33,.1)
|
||||
border-top-left-radius 20rpx
|
||||
border-top-right-radius 20rpx
|
||||
z-index 2017
|
||||
transition all .3s
|
||||
.modal
|
||||
position fixed
|
||||
bottom 0
|
||||
left 0
|
||||
_wh(100%, 100%)
|
||||
background-color rgba(0,0,0,0.8)
|
||||
z-index 2010
|
||||
.sec_menu_w
|
||||
width calc(100% - 76rpx)
|
||||
margin 30rpx auto 60rpx auto
|
||||
_fj(flex-start)
|
||||
flex-wrap wrap
|
||||
.sec_menu-item
|
||||
_wh(30%, 120rpx)
|
||||
margin-bottom 20rpx
|
||||
border-radius 10rpx
|
||||
background-size 40% auto
|
||||
background-position right 90%
|
||||
background-repeat no-repeat
|
||||
&:nth-child(3n+2)
|
||||
margin-left 5%
|
||||
margin-right 5%
|
||||
&:nth-child(5n+1) .menu-name_inner
|
||||
background linear-gradient(to right, rgba(73,102,255,0.8) 0%, rgba(117,142,255,0.8) 100%)
|
||||
&:nth-child(5n+2) .menu-name_inner
|
||||
background linear-gradient(to right, rgba(254, 168, 20,0.8) 0%, rgba(255, 177, 1,0.8) 100%)
|
||||
&:nth-child(5n+3) .menu-name_inner
|
||||
background linear-gradient(to right, rgba(0, 228, 153,0.8) 0%, rgba(0, 241, 197,0.8) 100%)
|
||||
&:nth-child(5n+4) .menu-name_inner
|
||||
background linear-gradient(to right, rgba(162, 86, 171,0.8) 0%, rgba(183,120,190,0.8) 100%)
|
||||
&:nth-child(5n+5) .menu-name_inner
|
||||
background linear-gradient(to right, rgba(146, 94, 52,0.8) 0%, rgba(162, 116, 79,0.8) 100%)
|
||||
.menu-name_inner
|
||||
_wh(100%, 100%)
|
||||
_fj(center)
|
||||
_font(28rpx, 30rpx, #fff, 700, center)
|
||||
border-radius 10rpx
|
||||
padding 10rpx
|
||||
overflow hidden
|
||||
.pop-title
|
||||
margin 60rpx 38rpx 0 38rpx
|
||||
_font(30rpx, 60rpx, #000,700,center)
|
||||
</style>
|
||||
|
||||
19
pages/in/store-info.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="zd_content bg">
|
||||
<view class="p1">欢迎来到</view>
|
||||
<view class="p2">华弘手持系统!</view>
|
||||
<view class="p2">恒森WMS手持系统!</view>
|
||||
<view class="input-box">
|
||||
<input class="large-input" type="text" placeholder="请输入用户名" v-model="user">
|
||||
</view>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<view class="content-header"></view>
|
||||
<view class="content-body">
|
||||
<view class="title">
|
||||
<text>又有新版本了,升级到最新版本,享受更丰富、稳定、快速的功能和体验!</text>
|
||||
<text>恒森WMS手持系统又有新版本了,升级到最新版本,享受更丰富、稳定、快速的功能和体验!</text>
|
||||
</view>
|
||||
<view class="footer flex-center">
|
||||
<template>
|
||||
|
||||
90
pages/outbound/empty-tray-out-store.vue
Normal file
@@ -0,0 +1,90 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<nav-bar :title="title"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">托盘码</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<search-box
|
||||
v-model="val1"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">托盘类型</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<uni-data-select v-model="index1" :localdata="options1"></uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row border-bottom">
|
||||
<view class="zd-col-7">
|
||||
<span class="filter_label">出库点</span>
|
||||
</view>
|
||||
<view class="zd-col-17 filter_select">
|
||||
<input type="text" class="filter_input">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submit-bar">
|
||||
<button class="zd-col-6 button-default" @tap="clearUp">清空</button>
|
||||
<button class="zd-col-15 button-primary" :class="{'button-info': !val1}" :disabled="disabled">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {zpxxTask} from '@/utils/getData2.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
val1: '',
|
||||
options1: [{value: 0, text: '困料区域', point: []}, {value: 1, text: '缓存货架区域', point: []}],
|
||||
index1: '',
|
||||
disabled: false
|
||||
};
|
||||
},
|
||||
onLoad (options) {
|
||||
this.title = options.title
|
||||
},
|
||||
methods: {
|
||||
clearUp () {
|
||||
this.val1 = ''
|
||||
},
|
||||
async _zpxxTask () {
|
||||
this.disabled = true
|
||||
if (!this.val1) {
|
||||
this.disabled = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await zpxxTask(this.val1)
|
||||
this.disabled = false
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: 'none'
|
||||
})
|
||||
this.obj = res
|
||||
} catch (e) {
|
||||
this.disabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
||||
19
pages/outbound/out-store-confirm.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
||||
19
pages/pick/pick-task.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
||||
19
pages/task/equip-task-manage.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |