啊哈哈
parent
70f193d2f5
commit
66e28fc37c
|
|
@ -1,8 +1,8 @@
|
|||
ENV = 'development'
|
||||
|
||||
# 接口地址
|
||||
VUE_APP_BASE_API = 'http://localhost:8000'
|
||||
VUE_APP_WS_API = 'ws://localhost:8000'
|
||||
VUE_APP_BASE_API = 'http://192.168.56.138:8080'
|
||||
VUE_APP_WS_API = 'ws://192.168.56.138:8080'
|
||||
|
||||
# 是否启用 babel-plugin-dynamic-import-node插件
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@ ENV = 'production'
|
|||
|
||||
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
|
||||
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
|
||||
VUE_APP_BASE_API = 'https://eladmin.vip'
|
||||
#VUE_APP_BASE_API = 'https://eladmin.vip'
|
||||
# 如果接口是 http 形式, wss 需要改为 ws
|
||||
VUE_APP_WS_API = 'wss://eladmin.vip'
|
||||
#VUE_APP_WS_API = 'wss://eladmin.vip'
|
||||
|
||||
VUE_APP_BASE_API = 'http://192.168.56.138:8080'
|
||||
VUE_APP_WS_API = 'ws://192.168.56.138:8080'
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function queryAgvStatus(params) {
|
||||
return request({
|
||||
url: 'api/queryAgvStatus',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/agvTask',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/agvTask/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/agvTask',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getAres(params) {
|
||||
return request({
|
||||
url: 'api/area',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/area',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/area/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/area',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/asn',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/asn/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/asn',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/asnDetail',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/asnDetail/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/asnDetail',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function doCheckAsn(ids) {
|
||||
return request({
|
||||
url: 'api/asnDetail/checkAsn',
|
||||
method: 'put',
|
||||
data:ids
|
||||
})
|
||||
}
|
||||
|
||||
export function collectMOCreate(data) {
|
||||
return request({
|
||||
url: 'api/asnDetail/createMoInfo',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, del,edit,doCheckAsn,collectMOCreate}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/baseCode',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/baseCode/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/baseCode',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/billType',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/billType/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/billType',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/box',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/box/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/box',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function callBox(ids) {
|
||||
return request({
|
||||
url: 'api/box/callBox',
|
||||
method: 'post',
|
||||
data:ids
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del,callBox }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/dataPickTicketDetail',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/dataPickTicketDetail/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/dataPickTicketDetail',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/inventory',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/inventory/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/inventory',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/inventoryLog',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/inventoryLog/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/inventoryLog',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getItems(params) {
|
||||
return request({
|
||||
url: 'api/item',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/item',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/item/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/item',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/itemKey',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/itemKey/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/itemKey',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/pickDetail',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/pickDetail/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/pickDetail',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function allocate(ids) {
|
||||
return request({
|
||||
url: 'api/pickDetail/allocate',
|
||||
method: 'post',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function cancelAllocate(ids) {
|
||||
return request({
|
||||
url: 'api/pickDetail/cancelAllocate',
|
||||
method: 'post',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function picking(pickDetailId) {
|
||||
return request({
|
||||
url: 'api/pickDetail/picking',
|
||||
method: 'post',
|
||||
data: pickDetailId
|
||||
})
|
||||
}
|
||||
|
||||
export function pickBarBack(pickDetailId) {
|
||||
return request({
|
||||
url: 'api/pickDetail/pickBarBack',
|
||||
method: 'post',
|
||||
data: pickDetailId
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del,allocate,cancelAllocate,picking,pickBarBack }
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getPoints(params) {
|
||||
return request({
|
||||
url: 'api/point',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/point',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/point/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/point',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del,getPoints }
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getStocks(params) {
|
||||
return request({
|
||||
url: 'api/stock',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function queryKyStockList(params) {
|
||||
return request({
|
||||
url: 'api/stock/queryKyStockList',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/stock',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/stock/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/stock',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
export function getStockTypes(params) {
|
||||
return request({
|
||||
url: 'api/stockType',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/stockType',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/stockType/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/stockType',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/sysAppUpdate',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/sysAppUpdate/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/sysAppUpdate',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
import request from '@/utils/request'
|
||||
export function getTaskInfo(id) {
|
||||
export function getTaskInfo(data) {
|
||||
return request({
|
||||
url: 'api/task/queryAsnTask?asnDetailId='+id ,
|
||||
method: 'get'
|
||||
url: '/zwwms/dcx/queryVueServlet',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function add(data) {
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/taskLog',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/taskLog/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/taskLog',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -4,44 +4,7 @@
|
|||
|
||||
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
|
||||
|
||||
<div class="right-menu">
|
||||
<template v-if="device!=='mobile'">
|
||||
<search id="header-search" class="right-menu-item" />
|
||||
|
||||
<el-tooltip content="全屏缩放" effect="dark" placement="bottom">
|
||||
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
|
||||
<el-tooltip content="布局设置" effect="dark" placement="bottom">
|
||||
<size-select id="size-select" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
|
||||
</template>
|
||||
|
||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||
<div class="avatar-wrapper">
|
||||
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" class="user-avatar">
|
||||
<i class="el-icon-caret-bottom" />
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<span style="display:block;" @click="show = true">
|
||||
<el-dropdown-item>
|
||||
布局设置
|
||||
</el-dropdown-item>
|
||||
</span>
|
||||
<router-link to="/user/center">
|
||||
<el-dropdown-item>
|
||||
个人中心
|
||||
</el-dropdown-item>
|
||||
</router-link>
|
||||
<span style="display:block;" @click="open">
|
||||
<el-dropdown-item divided>
|
||||
退出登录
|
||||
</el-dropdown-item>
|
||||
</span>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
<template>
|
||||
<div :class="{'has-logo':showLogo}">
|
||||
<logo v-if="showLogo" :collapse="isCollapse" />
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||
<el-menu
|
||||
:default-active="activeMenu"
|
||||
:collapse="isCollapse"
|
||||
:background-color="variables.menuBg"
|
||||
:text-color="variables.menuText"
|
||||
:active-text-color="variables.menuActiveText"
|
||||
:collapse-transition="false"
|
||||
unique-opened
|
||||
mode="vertical"
|
||||
>
|
||||
<sidebar-item v-for="route in sidebarRouters" :key="route.path" :item="route" :base-path="route.path" />
|
||||
<el-menu :default-active="defaultActive" :router="false" unique-opened :collapse="!isAsideActive"
|
||||
class="el-menu-aside" :collapse-transition="false">
|
||||
<el-menu-item index="/home" @click.native="handleSelectMenu('/dashboard')">
|
||||
首页
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/user/center" @click.native="handleSelectMenu('/user/center')">
|
||||
用户中心
|
||||
</el-menu-item>
|
||||
|
||||
<el-menu-item index="/duochaxun/view1" @click.native="handleSelectMenu('/duochaxun/view1')">
|
||||
测试1
|
||||
</el-menu-item>
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
|
|
@ -31,6 +31,9 @@ export default {
|
|||
'sidebarRouters',
|
||||
'sidebar'
|
||||
]),
|
||||
defaultActive() {
|
||||
return this.$route.path
|
||||
},
|
||||
activeMenu() {
|
||||
const route = this.$route
|
||||
const { meta, path } = route
|
||||
|
|
@ -49,6 +52,12 @@ export default {
|
|||
isCollapse() {
|
||||
return !this.sidebar.opened
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 点击 el-submenu 时可以跳转
|
||||
handleSelectMenu(path) {
|
||||
this.$router.push(path)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ export default {
|
|||
delLoading: false,
|
||||
delAllLoading: false,
|
||||
// 弹窗属性
|
||||
dialog: false,
|
||||
dialog: true,
|
||||
// Form 表单
|
||||
form: {},
|
||||
// 重置表单
|
||||
|
|
|
|||
|
|
@ -41,13 +41,7 @@ router.beforeEach((to, from, next) => {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
/* has no token*/
|
||||
if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
|
||||
next()
|
||||
} else {
|
||||
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
|
||||
NProgress.done()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ export const constantRouterMap = [
|
|||
meta: { title: '登录', noCache: true },
|
||||
component: (resolve) => require(['@/views/login'], resolve),
|
||||
hidden: true
|
||||
},{ path: '/home',
|
||||
},
|
||||
{ path: '/home',
|
||||
meta: { title: '登录', noCache: true },
|
||||
component: (resolve) => require(['@/views/home'], resolve),
|
||||
hidden: true
|
||||
|
|
@ -38,7 +39,7 @@ export const constantRouterMap = [
|
|||
{
|
||||
path: '/',
|
||||
component: Layout,
|
||||
redirect: '/dashboard',
|
||||
redirect: 'noredirect',
|
||||
children: [
|
||||
{
|
||||
path: 'dashboard',
|
||||
|
|
@ -48,6 +49,19 @@ export const constantRouterMap = [
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/duochaxun',
|
||||
component: Layout,
|
||||
redirect: 'noredirect',
|
||||
children: [
|
||||
{
|
||||
path: 'view1',
|
||||
component: (resolve) => require(['@/views/duochaxun/view1'], resolve),
|
||||
name: 'Dashboard',
|
||||
meta: { title: '测试1'}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/user',
|
||||
component: Layout,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// 适配 Nginx 反向代理
|
||||
const baseUrl = process.env.VUE_APP_BASE_API === '/' ? '' : process.env.VUE_APP_BASE_API
|
||||
const baseUrl = process.env.VUE_APP_BASE_API
|
||||
const api = {
|
||||
state: {
|
||||
// 部署包上传
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import Cookies from 'js-cookie'
|
|||
|
||||
// 创建axios实例
|
||||
const service = axios.create({
|
||||
baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API : '/', // api 的 base_url
|
||||
baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url
|
||||
timeout: Config.timeout // 请求超时时间
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -1,196 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
<!-- 新增 -->
|
||||
<el-button
|
||||
slot="left"
|
||||
v-permission="['admin','sysAppUpdate:add']"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="el-icon-upload"
|
||||
@click="crud.toAdd"
|
||||
>上传
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.add ? '文件上传' : '编辑文件'" width="500px">
|
||||
<el-form ref="form" :model="form" size="small" label-width="80px">
|
||||
|
||||
<el-form-item label="项目名称">
|
||||
<el-input v-model="form.appName" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="版本代码">
|
||||
<el-input v-model="form.versionCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="版本名称">
|
||||
<el-input v-model="form.versionName" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="更新内容">
|
||||
<el-input v-model="form.modifyContent" style="width: 370px;" type="textarea" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 上传文件 -->
|
||||
<el-form-item v-if="crud.status.add" label="上传">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:limit="1"
|
||||
:before-upload="beforeUpload"
|
||||
:auto-upload="false"
|
||||
:headers="headers"
|
||||
:on-success="handleSuccess"
|
||||
:on-error="handleError"
|
||||
:action="appUploadApi + '?versionCode='+form.versionCode+'&appName='+form.appName+'&versionName='+form.versionName+'&modifyContent='+form.modifyContent"
|
||||
>
|
||||
<div class="eladmin-upload"><i class="el-icon-upload" /> 添加文件</div>
|
||||
<div slot="tip" class="el-upload__tip">可上传任意格式文件,且不超过200M</div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button v-if="crud.status.add" :loading="loading" type="primary" @click="upload">确认</el-button>
|
||||
<el-button v-else :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="id" />
|
||||
<el-table-column prop="appName" label="项目名称" />
|
||||
<el-table-column prop="updateStatus" label="更新状态" />
|
||||
<el-table-column prop="versionCode" label="版本代码" />
|
||||
<el-table-column prop="versionName" label="版本名称" />
|
||||
<el-table-column prop="modifyContent" label="修改内容" />
|
||||
<el-table-column prop="downloadUrl" label="下载网站">
|
||||
<template slot-scope="scope">
|
||||
<el-popover
|
||||
:content="scope.row.downloadUrl"
|
||||
placement="top-start"
|
||||
title="路径"
|
||||
width="200"
|
||||
trigger="hover"
|
||||
>
|
||||
<a
|
||||
slot="reference"
|
||||
:href="baseApi + scope.row.downloadUrl "
|
||||
class="el-link--primary"
|
||||
style="word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color: #1890ff;font-size: 13px;"
|
||||
target="_blank"
|
||||
>
|
||||
{{ scope.row.downloadUrl }}
|
||||
</a>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="apkSize" label="程序大小">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.apkSize < 1024">{{ Number(scope.row.apkSize).toFixed(2) }}K</span>
|
||||
<span v-if="scope.row.apkSize > 1024">{{ Number(scope.row.apkSize/1024).toFixed(2) }}M</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="apkMd5" label="APKMD5" />
|
||||
<el-table-column v-if="checkPer(['admin','sysAppUpdate:edit','sysAppUpdate:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件2-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudSysAppUpdate from '@/api/sysAppUpdate'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import { mapGetters } from 'vuex'
|
||||
import { getToken } from '@/utils/auth'
|
||||
const defaultForm = { id: null, name: '', versionCode: '', versionName: '', modifyContent: '' }
|
||||
export default {
|
||||
components: { pagination, crudOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'app_update', url: 'api/sysAppUpdate', idField: 'id', sort: 'id,desc', crudMethod: { ...crudSysAppUpdate }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headers: { 'Authorization': getToken() },
|
||||
permission: {
|
||||
edit: ['admin', 'sysAppUpdate:edit'],
|
||||
del: ['admin', 'sysAppUpdate:del']
|
||||
},
|
||||
rules: {
|
||||
updateStatus: [
|
||||
{ required: true, message: '更新状态.不能为空', trigger: 'blur' }
|
||||
],
|
||||
versionCode: [
|
||||
{ required: true, message: '版本代码.不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'baseApi',
|
||||
'appUploadApi'
|
||||
])
|
||||
},
|
||||
created() {
|
||||
this.crud.optShow.add = false
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
upload() {
|
||||
this.$refs.upload.submit()
|
||||
},
|
||||
beforeUpload(file) {
|
||||
let isLt2M = true
|
||||
isLt2M = file.size / 1024 / 1024 < 200
|
||||
if (!isLt2M) {
|
||||
this.loading = false
|
||||
this.$message.error('上传文件大小不能超过 200MB!')
|
||||
}
|
||||
return isLt2M
|
||||
},
|
||||
handleSuccess(response, file, fileList) {
|
||||
this.crud.notify('上传成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.$refs.upload.clearFiles()
|
||||
this.crud.status.add = CRUD.STATUS.NORMAL
|
||||
this.crud.resetForm()
|
||||
this.crud.toQuery()
|
||||
},
|
||||
// 监听上传失败
|
||||
handleError(e, file, fileList) {
|
||||
const msg = JSON.parse(e.message)
|
||||
this.$notify({
|
||||
title: msg.message,
|
||||
type: 'error',
|
||||
duration: 2500
|
||||
})
|
||||
this.loading = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,149 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">编号</label>
|
||||
<el-input v-model="query.code" clearable placeholder="编号" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">名称</label>
|
||||
<el-input v-model="query.name" clearable placeholder="名称" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<rrOperation :crud="crud" />
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :tableKey='tableKey' />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="库区编号" prop="code">
|
||||
<el-input v-model="form.code" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="库区名称" prop="name">
|
||||
<el-input v-model="form.name" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="form.description" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="code" label="库区编号" />
|
||||
<el-table-column prop="name" label="库区名称" />
|
||||
<el-table-column prop="description" label="描述" />
|
||||
<el-table-column prop="enabled" label="启用">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="position:absolute;right: 0">
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudArea from '@/api/area'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import { inject } from "vue";
|
||||
|
||||
const defaultForm = { id: null,enabled: 1,code: null,name: null,description: null}
|
||||
export default {
|
||||
name: 'Area',
|
||||
// eslint-disable-next-line vue/no-unused-components
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus'],
|
||||
cruds() {
|
||||
return CRUD({ title: '库区', url: 'api/area', idField: 'id', sort: 'id,desc', crudMethod: { ...crudArea },
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: false
|
||||
},
|
||||
queryOnPresenterCreated: true
|
||||
})
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
show_update: true,
|
||||
queryTypeOptions: [
|
||||
{ key: 'code', display_name: '代码' },
|
||||
{ key: 'name', display_name: '名称' },
|
||||
{ key: 'enabled', display_name: '状态' },
|
||||
{ key: 'heat', display_name: '热度' }
|
||||
],
|
||||
permission: {
|
||||
add: ['admin', 'area:add'],
|
||||
edit: ['admin', 'area:edit'],
|
||||
del: ['admin', 'area:del']
|
||||
},
|
||||
tableKey:'api/area',
|
||||
rules: {
|
||||
code: [
|
||||
{ required: true, message: '库区编号不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
}, mounted() {
|
||||
//初始化数据
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
// 改变状态
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.code + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudArea.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,132 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="仓库" prop="deptId">
|
||||
<el-select v-model="dept.deptId" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in depts"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型ID">
|
||||
未设置字典,请手动设置 Select
|
||||
</el-form-item>
|
||||
<el-form-item label="来源ID">
|
||||
<el-input v-model="form.sourceId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="客户ID">
|
||||
未设置字典,请手动设置 Select
|
||||
</el-form-item>
|
||||
<el-form-item label="系统单号">
|
||||
<el-input v-model="form.relatedbill1" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="客户订单号">
|
||||
<el-input v-model="form.relatedbill2" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="地址">
|
||||
<el-input v-model="form.address" :rows="3" type="textarea" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户ID">
|
||||
<el-input v-model="form.userId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户名">
|
||||
<el-input v-model="form.username" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker v-model="form.createTime" type="datetime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单时间">
|
||||
<el-date-picker v-model="form.orderDate" type="datetime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="ID" />
|
||||
<el-table-column prop="deptId" label="仓库ID" />
|
||||
<el-table-column prop="billTypeId" label="单据类型ID" />
|
||||
<el-table-column prop="sourceId" label="来源ID" />
|
||||
<el-table-column prop="structureId" label="客户ID" />
|
||||
<el-table-column prop="relatedbill1" label="系统单号" />
|
||||
<el-table-column prop="relatedbill2" label="客户订单号" />
|
||||
<el-table-column prop="address" label="地址" />
|
||||
<el-table-column prop="userId" label="用户ID" />
|
||||
<el-table-column prop="username" label="用户名" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column prop="orderDate" label="订单时间" />
|
||||
<el-table-column v-if="checkPer(['admin','asn:edit','asn:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudDept from '@/api/system/dept'
|
||||
import crudAsn from '@/api/asn'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation.vue'
|
||||
import crudOperation from '@crud/CRUD.operation.vue'
|
||||
import udOperation from '@crud/UD.operation.vue'
|
||||
import pagination from '@crud/Pagination.vue'
|
||||
|
||||
const defaultForm = { id: null, deptId: null, billTypeId: null, sourceId: null, structureId: null, relatedbill1: null, relatedbill2: null, address: null, userId: null, username: null, createTime: null, orderDate: null }
|
||||
export default {
|
||||
name: 'Asn',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'asn', url: 'api/asn', idField: 'id', sort: 'id,desc', crudMethod: { ...crudAsn }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dept:{
|
||||
deptId:""
|
||||
},
|
||||
depts:[],
|
||||
permission: {
|
||||
add: ['admin', 'asn:add'],
|
||||
edit: ['admin', 'asn:edit'],
|
||||
del: ['admin', 'asn:del']
|
||||
},
|
||||
rules: {
|
||||
deptId: [
|
||||
{ required: true, message: '仓库ID不能为空', trigger: 'blur' }
|
||||
]
|
||||
} }
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="code" prop="code">
|
||||
<el-input v-model="form.code" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="id" prop="id">
|
||||
<el-input v-model="form.id" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="key" prop="key">
|
||||
<el-input v-model="form.key" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="value" prop="value">
|
||||
<el-input v-model="form.value" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="code" label="code" />
|
||||
<el-table-column prop="id" label="id" />
|
||||
<el-table-column prop="key" label="key" />
|
||||
<el-table-column prop="value" label="value" />
|
||||
<el-table-column v-if="checkPer(['admin','baseCode:edit','baseCode:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudBaseCode from '@/api/baseCode'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { code: null, id: null, key: null, value: null }
|
||||
export default {
|
||||
name: 'BaseCode',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'baseCode', url: 'api/baseCode', idField: 'id', sort: 'id,desc', crudMethod: { ...crudBaseCode }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'baseCode:add'],
|
||||
edit: ['admin', 'baseCode:edit'],
|
||||
del: ['admin', 'baseCode:del']
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
],
|
||||
id: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
],
|
||||
key: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
],
|
||||
value: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
]
|
||||
} }
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,204 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">编号</label>
|
||||
<el-input v-model="query.code" clearable placeholder="请输入编号" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">名称</label>
|
||||
<el-input v-model="query.name" clearable placeholder="请输入名称" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">类型</label>
|
||||
<el-select v-model="query.type" clearable placeholder="请选择类型" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="billType in dict.bill_type"
|
||||
:key="billType.id"
|
||||
:label="billType.label"
|
||||
:value="billType.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<label class="el-form-item-label">是否启用</label>
|
||||
<el-select v-model="query.enabled" clearable placeholder="请选择" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="baseStatus in dict.base_staus"
|
||||
:key="baseStatus.id"
|
||||
:label="baseStatus.label"
|
||||
:value="baseStatus.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<rrOperation :crud="crud"/>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission"/>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="编号" prop="code">
|
||||
<el-input v-model="form.code" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-select v-model="form.type" style="width: 370px;" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.bill_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
size="small"
|
||||
style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column label="序号" type="index" width="50"/>
|
||||
<el-table-column prop="code" label="编号"/>
|
||||
<el-table-column prop="name" label="名称"/>
|
||||
<el-table-column prop="type" label="类型">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.bill_type[scope.row.type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="enabled" label="启用">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudBillType from '@/api/billType'
|
||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import rrOperation from "@crud/RR.operation.vue";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
code: null,
|
||||
name: null,
|
||||
deptId: null,
|
||||
type: null,
|
||||
sourceName: null,
|
||||
sourceId: null,
|
||||
createBy: null,
|
||||
updateBy: null,
|
||||
createTime: null,
|
||||
updateTime: null
|
||||
}
|
||||
export default {
|
||||
name: 'BillType',
|
||||
components: {rrOperation, pagination, crudOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['bill_type', 'base_staus'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '单据类型',
|
||||
url: 'api/billType',
|
||||
idField: 'id',
|
||||
sort: 'id,desc',
|
||||
crudMethod: {...crudBillType},
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: false
|
||||
}
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'billType:add'],
|
||||
edit: ['admin', 'billType:edit'],
|
||||
del: ['admin', 'billType:del']
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
{required: true, message: '请输入编号', trigger: 'blur'},
|
||||
],
|
||||
name: [
|
||||
{required: true, message: '请输入名称', trigger: 'blur'},
|
||||
],
|
||||
type: [
|
||||
{required: true, message: '请选择类型', trigger: 'blur'},
|
||||
],
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.name + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudBillType.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,290 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">编号</label>
|
||||
<el-input v-model="query.code" clearable placeholder="请输入编号" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">物料代码</label>
|
||||
<el-input v-model="query.itemCode" clearable placeholder="请输入物料代码" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">点位编码</label>
|
||||
<el-input
|
||||
v-model="query.pointCode"
|
||||
clearable
|
||||
placeholder="请输入点位编码"
|
||||
style="width: 185px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">是否启用</label>
|
||||
<el-select v-model="query.enabled" clearable placeholder="请选择" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="baseStatus in dict.base_staus"
|
||||
:key="baseStatus.id"
|
||||
:label="baseStatus.label"
|
||||
:value="baseStatus.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
|
||||
<rrOperation :crud="crud"/>
|
||||
</div>
|
||||
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="success"
|
||||
icon="el-icon-edit"
|
||||
v-permission="permission.callBox"
|
||||
@click="callBox(crud.selections)"
|
||||
>
|
||||
呼叫
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="编号" prop="code">
|
||||
<el-input v-model="form.code" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料" prop="item">
|
||||
<el-select v-model="form.item" @focus="getItem" filterable placeholder="请选择物料" value-key="id"
|
||||
style="width: 370px;">
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
:disabled="!item.enabled"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="点位" prop="point">
|
||||
<el-select v-model="form.point" @focus="getPoint" filterable placeholder="请选点位" value-key="id"
|
||||
style="width: 370px;">
|
||||
<el-option
|
||||
v-for="point in points"
|
||||
:key="point.id"
|
||||
:label="point.code"
|
||||
:value="point"
|
||||
:disabled="point.status!='FREE'"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
size="small"
|
||||
style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column label="序号" type="index" width="50"/>
|
||||
<el-table-column prop="code" label="编号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :show-overflow-tooltip="true" prop="pointName" label="点位编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.point.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="enabled" label="启用">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column v-if="checkPer(['admin','box:edit','box:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudBox from '@/api/box'
|
||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import {getItems} from "@/api/item"
|
||||
import {getPoints} from "@/api/point"
|
||||
import DonMessage from '@/utils/message'
|
||||
import crudBillType from "@/api/billType";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
code: null,
|
||||
item: null,
|
||||
point: null,
|
||||
createBy: null,
|
||||
updateBy: null,
|
||||
createTime: null,
|
||||
updateTime: null
|
||||
}
|
||||
export default {
|
||||
name: 'Box',
|
||||
components: {pagination, crudOperation, rrOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '按钮盒',
|
||||
url: 'api/box',
|
||||
idField: 'id',
|
||||
sort: 'id,desc',
|
||||
crudMethod: {...crudBox},
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
}
|
||||
|
||||
})
|
||||
},mounted() {
|
||||
this.getItem()
|
||||
this.getPoint()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
points: [],
|
||||
params: {
|
||||
type: ''
|
||||
},
|
||||
permission: {
|
||||
add: ['admin', 'box:add'],
|
||||
edit: ['admin', 'box:edit'],
|
||||
del: ['admin', 'box:del'],
|
||||
callBox: ['admin', 'box:callBox']
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
{required: true, message: '编号必填', trigger: 'blur'}
|
||||
],
|
||||
item: [
|
||||
{required: true, message: '物料必填', trigger: 'blur'}
|
||||
],
|
||||
point: [
|
||||
{required: true, message: '点位必填', trigger: 'blur'}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
getItem() {
|
||||
getItems({}).then(res => {
|
||||
this.items = res.content.map(function (obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
getPoint() {
|
||||
this.params.type = 'SHIP'//发货点位
|
||||
getPoints(this.params).then(res => {
|
||||
this.points = res.content.map(function (obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
console.log(obj)
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
callBox(datas) {
|
||||
if (this.$refs.table.selection.length >= 1) {
|
||||
this.$confirm(`选中的${datas.length}条数据呼叫确认?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const ids = [];
|
||||
for (let i = 0; i < datas.length; i++) {
|
||||
ids.push(datas[i].id)
|
||||
}
|
||||
crudBox.callBox(ids).then(res => {
|
||||
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery();
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$refs.table.clearSelection()
|
||||
DonMessage.info('取消成功!')
|
||||
});
|
||||
} else {
|
||||
DonMessage.error('请至少选中一条记录!')
|
||||
}
|
||||
|
||||
},
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.code + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudBillType.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="仓库ID" prop="deptId">
|
||||
未设置字典,请手动设置 Select
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型ID">
|
||||
未设置字典,请手动设置 Select
|
||||
</el-form-item>
|
||||
<el-form-item label="来源ID">
|
||||
<el-input v-model="form.sourceId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="客户ID">
|
||||
未设置字典,请手动设置 Select
|
||||
</el-form-item>
|
||||
<el-form-item label="系统单号">
|
||||
<el-input v-model="form.relatedbill1" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="客户订单号">
|
||||
<el-input v-model="form.relatedbill2" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="地址">
|
||||
<el-input v-model="form.address" :rows="3" type="textarea" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker v-model="form.createTime" type="datetime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单时间">
|
||||
<el-date-picker v-model="form.orderDate" type="datetime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="来源名称">
|
||||
<el-input v-model="form.sourceName" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态">
|
||||
<el-input v-model="form.status" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人">
|
||||
<el-input v-model="form.createBy" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改人">
|
||||
<el-input v-model="form.updateBy" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改时间">
|
||||
<el-input v-model="form.updateTime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="ID" />
|
||||
<el-table-column prop="deptId" label="仓库ID" />
|
||||
<el-table-column prop="billTypeId" label="单据类型ID" />
|
||||
<el-table-column prop="sourceId" label="来源ID" />
|
||||
<el-table-column prop="structureId" label="客户ID" />
|
||||
<el-table-column prop="relatedbill1" label="系统单号" />
|
||||
<el-table-column prop="relatedbill2" label="客户订单号" />
|
||||
<el-table-column prop="address" label="地址" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column prop="orderDate" label="订单时间" />
|
||||
<el-table-column prop="sourceName" label="来源名称" />
|
||||
<el-table-column prop="status" label="订单状态" />
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
<el-table-column prop="updateBy" label="修改人" />
|
||||
<el-table-column prop="updateTime" label="修改时间" />
|
||||
<el-table-column v-if="checkPer(['admin','asn:edit','asn:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudAsn from '@/api/asn'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { id: null, deptId: null, billTypeId: null, sourceId: null, structureId: null, relatedbill1: null, relatedbill2: null, address: null, createTime: null, orderDate: null, sourceName: null, status: null, createBy: null, updateBy: null, updateTime: null }
|
||||
export default {
|
||||
name: 'Asn',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'asn', url: 'api/asn', idField: 'id', sort: 'id,desc', crudMethod: { ...crudAsn }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'asn:add'],
|
||||
edit: ['admin', 'asn:edit'],
|
||||
del: ['admin', 'asn:del']
|
||||
},
|
||||
rules: {
|
||||
deptId: [
|
||||
{ required: true, message: '仓库ID不能为空', trigger: 'blur' }
|
||||
]
|
||||
} }
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,252 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">代码</label>
|
||||
<el-input v-model="query.code" clearable placeholder="请输入代码" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">名称</label>
|
||||
<el-input v-model="query.name" clearable placeholder="请输入名称" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">规格</label>
|
||||
<el-input v-model="query.specs" clearable placeholder="请输入规格" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">是否启用</label>
|
||||
<el-select v-model="query.enabled" clearable placeholder="请选择" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="baseStatus in dict.base_staus"
|
||||
:key="baseStatus.id"
|
||||
:label="baseStatus.label"
|
||||
:value="baseStatus.value"
|
||||
/>
|
||||
</el-select>
|
||||
<rrOperation :crud="crud"/>
|
||||
</div>
|
||||
|
||||
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
|
||||
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
action="/api/item/import_data"
|
||||
:file-list="fileList"
|
||||
:on-error="handleErr"
|
||||
:on-success=" (response, file, fileList) => {
|
||||
return handleSuccess(response, file, fileList,crud);}"
|
||||
:headers="headers"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" icon="el-icon-upload2">导入</el-button>
|
||||
</el-upload>
|
||||
|
||||
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="600px">
|
||||
<el-form ref="form" :model="form" :inline="true" :rules="rules" size="small" label-width="66px">
|
||||
<el-form-item label="代码" prop="code">
|
||||
<el-input v-model="form.code" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="规格">
|
||||
<el-input v-model="form.specs" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-select v-model="form.unit" filterable placeholder="请选择" style="width: 180px;"
|
||||
:default-first-option="true">
|
||||
<el-option
|
||||
v-for="item in dict.item_unit"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="长">
|
||||
<el-input v-model="form.length" type="number" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="宽">
|
||||
<el-input v-model="form.width" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="高">
|
||||
<el-input v-model="form.height" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="重量">
|
||||
<el-input v-model="form.weight" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="form.description" :rows="3" type="textarea" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
size="small"
|
||||
style="width: 100%;"
|
||||
height="68vh"
|
||||
@selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column label="序号" type="index" width="50"/>
|
||||
<el-table-column prop="code" label="代码" width="150"/>
|
||||
<el-table-column prop="name" label="名称" width="150"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="stockType" label="类型">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.stockType != null">{{ scope.row.stockType.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="specs" label="规格"/>
|
||||
<el-table-column prop="unit" label="单位">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.item_unit[scope.row.unit] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="length" label="长"/>
|
||||
<el-table-column prop="width" label="宽"/>
|
||||
<el-table-column prop="height" label="高"/>
|
||||
<el-table-column prop="weight" label="重量"/>
|
||||
<el-table-column prop="description" label="描述"/>
|
||||
<el-table-column prop="enabled" label="启用" width="50">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudItem from '@/api/item'
|
||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import DonMessage from "@/utils/message";
|
||||
import {getToken} from "@/utils/auth";
|
||||
|
||||
const defaultForm = {id: null}
|
||||
export default {
|
||||
name: 'Item',
|
||||
components: {pagination, crudOperation, rrOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus', 'item_unit'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '物料', url: 'api/item', idField: 'id', sort: 'id,desc', crudMethod: {...crudItem}, optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
}
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headers: { 'Authorization': getToken() },
|
||||
fileList: [],
|
||||
permission: {
|
||||
add: ['admin', 'item:add'],
|
||||
edit: ['admin', 'item:edit'],
|
||||
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
{required: true, message: '代码不能为空', trigger: 'blur'}
|
||||
],
|
||||
name: [
|
||||
{required: true, message: '名称不能为空', trigger: 'blur'}
|
||||
],
|
||||
unit: [
|
||||
{required: true, message: '单位不能为空', trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{key: 'code', display_name: '代码'},
|
||||
{key: 'name', display_name: '名称'},
|
||||
{key: 'specs', display_name: '规格'}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleSuccess(response, file, fileList,crud) {
|
||||
|
||||
let myError = response.toString();//转字符串
|
||||
DonMessage.success("" + response['message'])
|
||||
crud.toQuery()
|
||||
|
||||
},
|
||||
handleErr(err, file, fileList) {
|
||||
|
||||
let myError = err.toString();//转字符串
|
||||
myError = myError.replace("Error: ", "") // 去掉前面的" Error: "
|
||||
myError = JSON.parse(myError);//转对象
|
||||
DonMessage.error("" + myError['message'])
|
||||
},
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
// 改变状态
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.code + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudItem.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,267 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">代码</label>
|
||||
<el-input v-model="query.code" clearable placeholder="代码" style="width: 120px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">名称</label>
|
||||
<el-input v-model="query.name" clearable placeholder="名称" style="width: 120px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">状态</label>
|
||||
<el-select
|
||||
v-model="query.status"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="状态"
|
||||
class="filter-item"
|
||||
style="width: 100px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.use_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<label class="el-form-item-label">库区</label>
|
||||
<el-select v-model="query.areaCode" style="width: 120px;" clearable placeholder="请选择" @keyup.enter.native="crud.toQuery" class="filter-item" @change="crud.toQuery">
|
||||
<el-option
|
||||
v-for="item in areas"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<!-- <label class="el-form-item-label">启用</label>-->
|
||||
<!-- <el-input v-model="query.enabled" clearable placeholder="0"
|
||||
style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery" />-->
|
||||
<rrOperation :crud="crud" />
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" >
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
:headers="headers"
|
||||
action="/api/point/import_point"
|
||||
:file-list="fileList"
|
||||
:on-error="handleErr"
|
||||
:on-success=" (response, file, fileList) => { return handleSuccess(response, file, fileList,crud);}"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" icon="el-icon-upload2">导入</el-button>
|
||||
</el-upload>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
|
||||
<el-form-item label="代码" prop="code">
|
||||
<el-input v-model="form.code" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="名称">
|
||||
<el-input v-model="form.name" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-select v-model="form.type" filterable placeholder="请选择" style="width: 180px;"
|
||||
:default-first-option="true">
|
||||
<el-option
|
||||
v-for="item in dict.point_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="form.description" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="库区" prop="area">
|
||||
<el-select v-model="form.area" value-key="id" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in areas"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" height="66vh" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="code" label="代码" />
|
||||
<el-table-column prop="name" label="名称" />
|
||||
<el-table-column prop="type" label="类型">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.point_type[scope.row.type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="area" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.use_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="description" label="描述" />
|
||||
<el-table-column :show-overflow-tooltip="true" prop="area" label="库区">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.area.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :show-overflow-tooltip="true" prop="dept" label="仓库">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.dept.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="启用" align="center" prop="enabled">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudPoint from '@/api/point'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import { getAres } from '@/api/area'
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import {getToken} from "@/utils/auth";
|
||||
import DonMessage from "@/utils/message";
|
||||
|
||||
const defaultForm = { id: null,status: 'FREE',enabled: 1,code:null,name: null,description: null,area: null }
|
||||
export default {
|
||||
name: 'Point',
|
||||
components: { Treeselect, pagination, crudOperation, udOperation ,rrOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus', 'use_status','point_type'],
|
||||
cruds() {
|
||||
return CRUD({ title: '地标', url: 'api/point', idField: 'id', sort: 'id,desc', crudMethod: { ...crudPoint },
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
},
|
||||
queryOnPresenterCreated: true
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headers: { 'Authorization': getToken() },
|
||||
queryTypeOptions: [
|
||||
{ key: 'code', display_name: '代码' },
|
||||
{ key: 'name', display_name: '名称' },
|
||||
{ key: 'status', display_name: '状态' },
|
||||
{ key: 'beatCode', display_name: '区域编码' },
|
||||
{ key: 'areaCode', display_name: '仓库' },
|
||||
{ key: 'enabled', display_name: '启用' }
|
||||
],
|
||||
areas: [],
|
||||
permission: {
|
||||
add: ['admin', 'point:add'],
|
||||
edit: ['admin', 'point:edit'],
|
||||
del: ['admin', 'point:del']
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
{ required: true, message: '代码不能为空', trigger: 'blur' }
|
||||
],
|
||||
type: [
|
||||
{ required: true, message: '类型不能为空', trigger: 'blur' }
|
||||
],
|
||||
area: [
|
||||
{ required: true, message: '库区不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
console.log('123123213123131')
|
||||
this.getArea()
|
||||
},
|
||||
methods: {
|
||||
handleSuccess(response, file, fileList,crud) {
|
||||
let myError = response.toString();//转字符串
|
||||
DonMessage.success("" + response['message'])
|
||||
crud.toQuery()
|
||||
},
|
||||
handleErr(err, file, fileList) {
|
||||
|
||||
let myError = err.toString();//转字符串
|
||||
myError = myError.replace("Error: ", "") // 去掉前面的" Error: "
|
||||
myError = JSON.parse(myError);//转对象
|
||||
DonMessage.error("" + myError['message'])
|
||||
},
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
// 改变状态
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudPoint.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
},
|
||||
getArea() {
|
||||
getAres({ }).then(res => {
|
||||
this.areas= res.content.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,239 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<el-input v-model="query.code" clearable placeholder="代码" style="width: 150px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-select
|
||||
v-model="query.status"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="状态"
|
||||
class="filter-item"
|
||||
style="width: 150px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.use_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select
|
||||
v-model="query.stockTypeCode"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="容器类型"
|
||||
class="filter-item"
|
||||
style="width: 150px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stockTypes"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<rrOperation :crud="crud" />
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" >
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
:headers="headers"
|
||||
action="/api/stock/import_stock"
|
||||
:file-list="fileList"
|
||||
:on-error="handleErr"
|
||||
:on-success=" (response, file, fileList) => { return handleSuccess(response, file, fileList,crud);}"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" icon="el-icon-upload2">导入</el-button>
|
||||
</el-upload>
|
||||
</crudOperation>
|
||||
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="代码" prop="code">
|
||||
<el-input v-model="form.code" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="stockType" >
|
||||
<el-select v-model="form.stockType" value-key="id" filterable placeholder="请选择" style="width: 180px;">
|
||||
<el-option
|
||||
v-for="item in stockTypes"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" height="66vh" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;height: 90%" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="code" label="代码" />
|
||||
<el-table-column :show-overflow-tooltip="true" prop="stockType" label="类型">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.stockType.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="area" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.use_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="启用" align="center" prop="enabled">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="point" label="地标">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.point !=null">{{scope.row.point.name}}K</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudStock from '@/api/stock'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import { getStockTypes } from '@/api/stockType'
|
||||
import DonMessage from "@/utils/message";
|
||||
import {getToken} from "@/utils/auth";
|
||||
|
||||
const defaultForm = { id: null, status: 'FREE',stockType: null,code: null, pid: null, pointId: null, subCount: null, name: null, typeId: null, length: null, width: null, height: null, weight: null, size: null, useWeight: null, useSize: null, usageWeight: null, usageSize: null, enabled: 1, createBy: null, updateBy: null, createTime: null, updateTime: null, topId: null }
|
||||
export default {
|
||||
name: 'Stock',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus', 'use_status'],
|
||||
cruds() {
|
||||
return CRUD({ title: '容器', url: 'api/stock', idField: 'id', sort: 'id,desc', crudMethod: { ...crudStock },
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
},
|
||||
queryOnPresenterCreated: true
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headers: { 'Authorization': getToken() },
|
||||
tableKey: 'api/stock',
|
||||
permission: {
|
||||
add: ['admin', 'stock:add'],
|
||||
edit: ['admin', 'stock:edit'],
|
||||
del: ['admin', 'stock:del']
|
||||
},
|
||||
stockTypes: [],
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: '容器ID不能为空', trigger: 'blur' }
|
||||
],
|
||||
code: [
|
||||
{ required: true, message: '容器代码不能为空', trigger: 'blur' }
|
||||
],
|
||||
stockType: [
|
||||
{ required: true, message: '容器类型不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
console.log('123123213123131')
|
||||
this.getStockType()
|
||||
},
|
||||
methods: {
|
||||
handleSuccess(response, file, fileList,crud) {
|
||||
let myError = response.toString();//转字符串
|
||||
DonMessage.success("" + response['message'])
|
||||
crud.toQuery()
|
||||
},
|
||||
handleErr(err, file, fileList) {
|
||||
|
||||
let myError = err.toString();//转字符串
|
||||
myError = myError.replace("Error: ", "") // 去掉前面的" Error: "
|
||||
myError = JSON.parse(myError);//转对象
|
||||
|
||||
DonMessage.error("" + myError['message'])
|
||||
},
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
getStockType() {
|
||||
getStockTypes({ }).then(res => {
|
||||
this.stockTypes= res.content.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
// 改变状态
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.code + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudStock.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<label class="el-form-item-label">代码</label>
|
||||
<el-input v-model="query.code" clearable placeholder="代码" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">名称</label>
|
||||
<el-input v-model="query.name" clearable placeholder="名称" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<rrOperation :crud="crud" />
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" tableKey='api/stockType'/>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="400px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="代码" prop="code">
|
||||
<el-input v-model="form.code" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="名称">
|
||||
<el-input v-model="form.name" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="长">
|
||||
<el-input v-model="form.length" type="number" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="宽">
|
||||
<el-input v-model="form.width" type="number" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="高">
|
||||
<el-input v-model="form.height" type="number" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="code" label="代码" />
|
||||
<el-table-column prop="name" label="名称" />
|
||||
<el-table-column label="启用" align="center" prop="enabled">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.enabled"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.enabled)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="length" label="长" />
|
||||
<el-table-column prop="width" label="宽" />
|
||||
<el-table-column prop="height" label="高" />
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="false"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="position:absolute;right: 0">
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudStockType from '@/api/stockType'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import crudArea from "@/api/area";
|
||||
|
||||
const defaultForm = { id: null,code: null,name :null }
|
||||
export default {
|
||||
name: 'StockType',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus'],
|
||||
cruds() {
|
||||
return CRUD({ title: '容器类型', url: 'api/stockType', idField: 'id', sort: 'id,desc', crudMethod: { ...crudStockType },
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
},
|
||||
queryOnPresenterCreated: true
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'stockType:add'],
|
||||
edit: ['admin', 'stockType:edit'],
|
||||
del: ['admin', 'stockType:del']
|
||||
},
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: 'ID不能为空', trigger: 'blur' }
|
||||
],
|
||||
code: [
|
||||
{ required: true, message: '代码不能为空', trigger: 'blur' }
|
||||
]
|
||||
}}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
// 改变状态
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.code + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudStockType.edit(data).then(res => {
|
||||
this.crud.notify(this.dict.label.base_staus[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}).catch(() => {
|
||||
data.enabled = !data.enabled
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">tableType</label>
|
||||
<el-input v-model="query.tableType" clearable placeholder="tableType" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<rrOperation :crud="crud" />
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="tableType">
|
||||
<el-input v-model="form.tableType" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="value">
|
||||
<el-input v-model="form.value" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="id" />
|
||||
<el-table-column prop="tableType" label="tableType" />
|
||||
<el-table-column prop="value" label="value" />
|
||||
<el-table-column prop="createBy" label="createBy" />
|
||||
<el-table-column prop="createTime" label="createTime" />
|
||||
<el-table-column v-if="checkPer(['admin','tableConfig:edit','tableConfig:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudTableConfig from '@/api/tableConfig'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { id: null, tableType: null, value: null, createBy: null, updateBy: null, createTime: null, updateTime: null }
|
||||
export default {
|
||||
name: 'TableConfig',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'tableconfig', url: 'api/tableConfig', idField: 'id', sort: 'id,desc', crudMethod: { ...crudTableConfig }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'tableConfig:add'],
|
||||
edit: ['admin', 'tableConfig:edit'],
|
||||
del: ['admin', 'tableConfig:del']
|
||||
},
|
||||
rules: {
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{ key: 'tableType', display_name: 'tableType' }
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,323 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!-- 搜索 -->
|
||||
<el-input v-model="query.itemCode" clearable placeholder="物料代码" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-input v-model="query.itemName" clearable placeholder="物料名称" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-input v-model="query.po" clearable placeholder="MO票" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-select
|
||||
v-model="query.status"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="状态"
|
||||
class="filter-item"
|
||||
style="width: 100px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.asn_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px" />
|
||||
<rrOperation :crud="crud" />
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" >
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="permission.checkAsn"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="collectMO = true"
|
||||
icon="el-icon-document-add"
|
||||
>
|
||||
MO票采集
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="permission.checkAsn"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="el-icon-bottom-right"
|
||||
:disabled="crud.selections.length === 0"
|
||||
@click="checkAsn(crud.selections)"
|
||||
>
|
||||
收 货
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="info"
|
||||
icon="el-icon-s-order"
|
||||
@click="doAsnTask(crud.selections[0].id)"
|
||||
:disabled="crud.selections.length !== 1"
|
||||
>收货详情</el-button>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
:headers="headers"
|
||||
action="/api/asnDetail/import_mo"
|
||||
:file-list="fileList"
|
||||
:on-error="handleErr"
|
||||
:on-success=" (response, file, fileList) => { return handleSuccess(response, file, fileList,crud);}"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" icon="el-icon-upload2">导入</el-button>
|
||||
</el-upload>
|
||||
</crudOperation>
|
||||
<AsnTask ref="asnTask" />
|
||||
</div>
|
||||
<!--MO票采集表单组件-->
|
||||
<el-dialog title="MO票采集" :visible.sync="collectMO" width="400px">
|
||||
<el-form ref="form2" :model="form2" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="MO票" prop="po">
|
||||
<el-input v-model="form2.po" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="容器" prop="stock">
|
||||
<el-select v-model="form2.stock" @focus="getStock" value-key="id" filterable placeholder="请选择容器" style="width: 200px;">
|
||||
<el-option
|
||||
v-for="item in stocks"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="collectMO= false">取 消</el-button>
|
||||
<el-button type="primary" @click="collectMO2()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="400px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="物料" prop="item">
|
||||
<el-select v-model="form.item" @focus="getItem" value-key="id" filterable placeholder="请选择物料" style="width: 200px;">
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="容器" prop="stock">
|
||||
<el-select v-model="form.stock" @focus="getStock" value-key="id" filterable placeholder="请选择容器" style="width: 200px;">
|
||||
<el-option
|
||||
v-for="item in stocks"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单数量">
|
||||
<el-input v-model="form.orderQty" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号">
|
||||
<el-input v-model="form.propC1" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.remark" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" height="68vh" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler" >
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="index" :index="indexMethod" label="序号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="stock" label="容器">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.stock.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="状态" >
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.asn_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderQty" label="订单数量" />
|
||||
<el-table-column prop="receivedQty" label="收货数量" />
|
||||
<el-table-column prop="propC1" label="批次号" />
|
||||
<el-table-column prop="po" label="MO票" width="200"/>
|
||||
<el-table-column prop="remark" label="备注" />
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
<el-table-column prop="createTime" label="创建时间" width="135" sortable/>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudAsnDetail, {add} from '@/api/asnDetail'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import {getItems} from "@/api/item"
|
||||
import {queryKyStockList} from "@/api/stock"
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import Search from "@/views/monitor/log/search.vue"
|
||||
import AsnTask from "@/views/business-data/asnDetail/viewAsnTask"
|
||||
import DonMessage from "@/utils/message";
|
||||
import DateRangePicker from "@/components/DateRangePicker/index.vue";
|
||||
import {getToken} from "@/utils/auth";
|
||||
|
||||
const defaultForm = { id: null, asnId: null, item: null, stock: null, lineNo: null, po: null, status: 'OPEN', orderQty: 0, receivedQty: 0, moveQty: 0, putQty: 0, weight: 0, volume: 0, remark: null, propC1: null, propC2: null, propC3: null, propC4: null, propC5: null, propC6: null, propD1: null, propD2: null, deptId: null, sourceName: null, sourceId: null, createBy: null, updateBy: null, createTime: null, updateTime: null }
|
||||
export default {
|
||||
name: 'AsnDetail',
|
||||
components: {DateRangePicker, AsnTask, Search, Treeselect, pagination, crudOperation, rrOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['asn_status'],
|
||||
cruds() {
|
||||
return CRUD({ title: '收货数据', url: 'api/asnDetail', idField: 'id', sort: 'id,desc', crudMethod: { ...crudAsnDetail }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headers: { 'Authorization': getToken() },
|
||||
items: [],
|
||||
stocks: [],
|
||||
form2: {po: null,stock: null},
|
||||
permission: {
|
||||
add: ['admin', 'asnDetail:add'],
|
||||
edit: ['admin', 'asnDetail:edit'],
|
||||
del: ['admin', 'asnDetail:del'],
|
||||
checkAsn: ['admin', 'asnDetail:checkAsn']
|
||||
},
|
||||
rules: {
|
||||
item: [
|
||||
{ required: true, message: '物料不能为空', trigger: 'blur' }
|
||||
],
|
||||
stock: [
|
||||
{ required: true, message: '容器不能为空', trigger: 'blur' }
|
||||
],
|
||||
po: [
|
||||
{ required: true, message: 'MO票不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{ key: 'itemCode', display_name: '物料代码' },
|
||||
{ key: 'itemName', display_name: '物料名称' },
|
||||
{ key: 'po', display_name: 'MO票' },
|
||||
{ key: 'status', display_name: '状态' }
|
||||
],
|
||||
collectMO: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
//初始化数据
|
||||
},
|
||||
methods: {
|
||||
handleSuccess(response, file, fileList,crud) {
|
||||
let myError = response.toString();//转字符串
|
||||
DonMessage.success("" + response['message'])
|
||||
crud.toQuery()
|
||||
},
|
||||
handleErr(err, file, fileList) {
|
||||
|
||||
let myError = err.toString();//转字符串
|
||||
myError = myError.replace("Error: ", "") // 去掉前面的" Error: "
|
||||
myError = JSON.parse(myError);//转对象
|
||||
DonMessage.error("" + myError['message'])
|
||||
},
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
getItem() {
|
||||
getItems({ }).then(res => {
|
||||
this.items= res.content.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
getStock() {
|
||||
queryKyStockList({ }).then(res => {
|
||||
this.stocks= res.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
indexMethod(index) {
|
||||
return index * 1+1;
|
||||
},
|
||||
checkAsn(datas) {
|
||||
this.$confirm(`选中的${datas.length}条数据收货确认?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const ids = []
|
||||
for (let i = 0; i < datas.length; i++) {
|
||||
ids.push(datas[i].id)
|
||||
}
|
||||
crudAsnDetail.doCheckAsn(ids).then(res => {
|
||||
DonMessage.success('收货成功!');
|
||||
this.crud.toQuery()
|
||||
this.getStock()
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
DonMessage.success('收货失败!');
|
||||
})
|
||||
},
|
||||
collectMO2() {
|
||||
crudAsnDetail.collectMOCreate(this.form2).then(res => {
|
||||
this.collectMO=false
|
||||
this.crud.toQuery()
|
||||
this.getStock()
|
||||
this.resetForm()
|
||||
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
// 显示日志
|
||||
doAsnTask(id) {
|
||||
this.$refs.asnTask.dialog = true
|
||||
this.$refs.asnTask.doInit(id)
|
||||
},
|
||||
//重置表单
|
||||
resetForm() {
|
||||
this.$refs["form2"].resetFields();
|
||||
this.$data.form2=JSON.parse(JSON.stringify(this.$options.data().form2))
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,261 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle" type="flex">
|
||||
<!-- 搜索 -->
|
||||
<div>
|
||||
<label class="el-form-item-label">创建日期</label>
|
||||
<date-range-picker v-model="query.createTime" style="width: 365px;" class="filter-item"/>
|
||||
|
||||
<label class="el-form-item-label">完成日期</label>
|
||||
<date-range-picker v-model="query.endTime" style="width: 365px;" class="filter-item"/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="el-form-item-label">任务序号</label>
|
||||
<el-input
|
||||
v-model="query.id"
|
||||
clearable
|
||||
placeholder="请输入任务序号"
|
||||
style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">任务组号</label>
|
||||
<el-input
|
||||
v-model="query.jobForce"
|
||||
clearable
|
||||
placeholder="请输入任务组号"
|
||||
style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
<label class="el-form-item-label">任务状态</label>
|
||||
<el-select v-model="query.status" clearable placeholder="请选择" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="taskStatus in dict.task_status"
|
||||
:key="taskStatus.id"
|
||||
:label="taskStatus.label"
|
||||
:value="taskStatus.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<label class="el-form-item-label">任务类型</label>
|
||||
<el-select v-model="query.type" clearable placeholder="请选择" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="taskType in dict.task_type"
|
||||
:key="taskType.id"
|
||||
:label="taskType.label"
|
||||
:value="taskType.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<label class="el-form-item-label">容器编码</label>
|
||||
<el-input
|
||||
v-model="query.stockCode"
|
||||
clearable
|
||||
placeholder="请输入容器编码"
|
||||
style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
|
||||
<rrOperation :crud="crud"/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission"/>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="容器编码" prop="stockCode">
|
||||
<el-input v-model="form.stockCode" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="容器类型" prop="stockTypeCode">
|
||||
<el-input v-model="form.stockTypeCode" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="起点位置" prop="startSlotCode">
|
||||
<el-input v-model="form.startSlotCode" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="终点位置" prop="endSlotCode">
|
||||
<el-input v-model="form.endSlotCode" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="容器当前位置" prop="slotCode">
|
||||
<el-input v-model="form.slotCode" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务状态" prop="status">
|
||||
<el-select v-model="form.status" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.task_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务类型">
|
||||
<el-input v-model="form.type" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工作类型" prop="jobType">
|
||||
<el-input v-model="form.jobType" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="id" label="任务序号"/>
|
||||
<el-table-column prop="stockCode" label="容器码"/>
|
||||
|
||||
<el-table-column prop="startSlotCode" label="起点位置"/>
|
||||
<el-table-column prop="endSlotCode" label="终点位置"/>
|
||||
<el-table-column prop="slotCode" label="容器当前位置" width="100"/>
|
||||
<el-table-column prop="status" label="任务状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.task_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type" label="任务类型">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.task_type[scope.row.type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="jobType" label="工作类型">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.jobType === "01" ? '料箱' : scope.row.jobType }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="jobPriority" label="优先级"/>
|
||||
<el-table-column prop="jobForce" label="任务组号"/>
|
||||
<el-table-column prop="jobForceAsc" label="任务组顺序号" width="120"/>
|
||||
<el-table-column prop="jobMessage" label="返回报文"/>
|
||||
<el-table-column prop="createTime" label="创建时间" width="140"/>
|
||||
<el-table-column prop="startTime" label="开始时间" width="140"/>
|
||||
<el-table-column prop="endTime" label="完成时间" width="140"/>
|
||||
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudAgvTask from '@/api/agvTask'
|
||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import DateRangePicker from "@/components/DateRangePicker/index.vue";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
stockCode: null,
|
||||
stockTypeCode: null,
|
||||
startSlotCode: null,
|
||||
endSlotCode: null,
|
||||
slotCode: null,
|
||||
status: null,
|
||||
type: null,
|
||||
jobId: null,
|
||||
jobType: null,
|
||||
jobPriority: null,
|
||||
jobPriorityType: null,
|
||||
jobForce: null,
|
||||
jobForceAsc: null,
|
||||
jobMessage: null,
|
||||
jobMessageTime: null,
|
||||
createTime: null,
|
||||
startTime: null,
|
||||
endTime: null
|
||||
}
|
||||
export default {
|
||||
name: 'AgvTask',
|
||||
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus', 'task_status', 'task_type'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: 'agvTask',
|
||||
url: 'api/agvTask',
|
||||
idField: 'id',
|
||||
sort: 'id,desc',
|
||||
crudMethod: {...crudAgvTask},
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
}
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'agvTask:add'],
|
||||
edit: ['admin', 'agvTask:edit'],
|
||||
del: ['admin', 'agvTask:del']
|
||||
},
|
||||
rules: {
|
||||
stockCode: [
|
||||
{required: true, message: '容器码不能为空', trigger: 'blur'}
|
||||
],
|
||||
stockTypeCode: [
|
||||
{required: true, message: '容器类型不能为空', trigger: 'blur'}
|
||||
],
|
||||
startSlotCode: [
|
||||
{required: true, message: '起点位置不能为空', trigger: 'blur'}
|
||||
],
|
||||
endSlotCode: [
|
||||
{required: true, message: '终点位置不能为空', trigger: 'blur'}
|
||||
],
|
||||
slotCode: [
|
||||
{required: true, message: '容器当前位置不能为空', trigger: 'blur'}
|
||||
],
|
||||
status: [
|
||||
{required: true, message: '任务状态不能为空', trigger: 'blur'}
|
||||
],
|
||||
jobType: [
|
||||
{required: true, message: '工作类型不能为空', trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{key: 'stockCode', display_name: '容器码'},
|
||||
{key: 'stockTypeCode', display_name: '容器类型'},
|
||||
{key: 'startSlotCode', display_name: '起点位置'},
|
||||
{key: 'endSlotCode', display_name: '终点位置'},
|
||||
{key: 'slotCode', display_name: '容器当前位置'},
|
||||
{key: 'status', display_name: '任务状态'},
|
||||
{key: 'type', display_name: '任务类型'},
|
||||
{key: 'jobId', display_name: '下游任务号'},
|
||||
{key: 'jobMessage', display_name: '返回报文'}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,217 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">容器码</label>
|
||||
<el-input v-model="query.stockCode" clearable placeholder="容器码" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">容器类型</label>
|
||||
<el-input v-model="query.stockTypeCode" clearable placeholder="容器类型" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">起点位置</label>
|
||||
<el-input v-model="query.startSlotCode" clearable placeholder="起点位置" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">终点位置</label>
|
||||
<el-input v-model="query.endSlotCode" clearable placeholder="终点位置" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">容器当前位置</label>
|
||||
<el-input v-model="query.slotCode" clearable placeholder="容器当前位置" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">任务状态</label>
|
||||
<el-select
|
||||
v-model="query.status"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="状态"
|
||||
class="filter-item"
|
||||
style="width: 150px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.task_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<!-- <el-input v-model="query.status" clearable placeholder="任务状态" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />-->
|
||||
<label class="el-form-item-label">任务类型</label>
|
||||
<el-input v-model="query.type" clearable placeholder="任务类型" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">下游任务号</label>
|
||||
<el-input v-model="query.jobId" clearable placeholder="下游任务号" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<label class="el-form-item-label">返回报文</label>
|
||||
<el-input v-model="query.jobMessage" clearable placeholder="返回报文" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<date-range-picker
|
||||
v-model="query.jobMessageTime"
|
||||
start-placeholder="jobMessageTimeStart"
|
||||
end-placeholder="jobMessageTimeStart"
|
||||
class="date-item"
|
||||
/>
|
||||
<date-range-picker
|
||||
v-model="query.createTime"
|
||||
start-placeholder="createTimeStart"
|
||||
end-placeholder="createTimeStart"
|
||||
class="date-item"
|
||||
/>
|
||||
<date-range-picker
|
||||
v-model="query.startTime"
|
||||
start-placeholder="startTimeStart"
|
||||
end-placeholder="startTimeStart"
|
||||
class="date-item"
|
||||
/>
|
||||
<date-range-picker
|
||||
v-model="query.endTime"
|
||||
start-placeholder="endTimeStart"
|
||||
end-placeholder="endTimeStart"
|
||||
class="date-item"
|
||||
/>
|
||||
<rrOperation :crud="crud" />
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="容器码" prop="stockCode">
|
||||
<el-input v-model="form.stockCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="容器类型" prop="stockTypeCode">
|
||||
<el-input v-model="form.stockTypeCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="起点位置" prop="startSlotCode">
|
||||
<el-input v-model="form.startSlotCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="终点位置" prop="endSlotCode">
|
||||
<el-input v-model="form.endSlotCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="容器当前位置" prop="slotCode">
|
||||
<el-input v-model="form.slotCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务状态" prop="status">
|
||||
<el-select v-model="form.status" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.task_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务类型">
|
||||
<el-input v-model="form.type" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工作类型" prop="jobType">
|
||||
<el-input v-model="form.jobType" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="任务ID" />
|
||||
<el-table-column prop="stockCode" label="容器码" />
|
||||
<el-table-column prop="stockTypeCode" label="容器类型" />
|
||||
<el-table-column prop="startSlotCode" label="起点位置" />
|
||||
<el-table-column prop="endSlotCode" label="终点位置" />
|
||||
<el-table-column prop="slotCode" label="容器当前位置" />
|
||||
<el-table-column prop="status" label="任务状态" />
|
||||
<el-table-column prop="type" label="任务类型" />
|
||||
<el-table-column prop="jobId" label="下游任务号" />
|
||||
<el-table-column prop="jobType" label="工作类型" />
|
||||
<el-table-column prop="jobPriority" label="优先级" />
|
||||
<el-table-column prop="jobPriorityType" label="强制优先级" />
|
||||
<el-table-column prop="jobForce" label="任务组" />
|
||||
<el-table-column prop="jobForceAsc" label="任务组执行顺序" />
|
||||
<el-table-column prop="jobMessage" label="返回报文" />
|
||||
<el-table-column prop="jobMessageTime" label="变动时间" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column prop="startTime" label="开始时间" />
|
||||
<el-table-column prop="endTime" label="完成时间" />
|
||||
<el-table-column v-if="checkPer(['admin','agvTask:edit','agvTask:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudAgvTask from '@/api/agvTask'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { id: null, stockCode: null, stockTypeCode: null, startSlotCode: null, endSlotCode: null, slotCode: null, status: null, type: null, jobId: null, jobType: null, jobPriority: null, jobPriorityType: null, jobForce: null, jobForceAsc: null, jobMessage: null, jobMessageTime: null, createTime: null, startTime: null, endTime: null }
|
||||
export default {
|
||||
name: 'AgvTask',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus', 'task_status'],
|
||||
cruds() {
|
||||
return CRUD({ title: 'agvTask', url: 'api/agvTask', idField: 'id', sort: 'id,desc', crudMethod: { ...crudAgvTask }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'agvTask:add'],
|
||||
edit: ['admin', 'agvTask:edit'],
|
||||
del: ['admin', 'agvTask:del']
|
||||
},
|
||||
rules: {
|
||||
stockCode: [
|
||||
{ required: true, message: '容器码不能为空', trigger: 'blur' }
|
||||
],
|
||||
stockTypeCode: [
|
||||
{ required: true, message: '容器类型不能为空', trigger: 'blur' }
|
||||
],
|
||||
startSlotCode: [
|
||||
{ required: true, message: '起点位置不能为空', trigger: 'blur' }
|
||||
],
|
||||
endSlotCode: [
|
||||
{ required: true, message: '终点位置不能为空', trigger: 'blur' }
|
||||
],
|
||||
slotCode: [
|
||||
{ required: true, message: '容器当前位置不能为空', trigger: 'blur' }
|
||||
],
|
||||
status: [
|
||||
{ required: true, message: '任务状态不能为空', trigger: 'blur' }
|
||||
],
|
||||
jobType: [
|
||||
{ required: true, message: '工作类型不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{ key: 'stockCode', display_name: '容器码' },
|
||||
{ key: 'stockTypeCode', display_name: '容器类型' },
|
||||
{ key: 'startSlotCode', display_name: '起点位置' },
|
||||
{ key: 'endSlotCode', display_name: '终点位置' },
|
||||
{ key: 'slotCode', display_name: '容器当前位置' },
|
||||
{ key: 'status', display_name: '任务状态' },
|
||||
{ key: 'type', display_name: '任务类型' },
|
||||
{ key: 'jobId', display_name: '下游任务号' },
|
||||
{ key: 'jobMessage', display_name: '返回报文' }
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<el-input v-model="query.itemCode" clearable placeholder="物料代码" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-input v-model="query.itemName" clearable placeholder="物料名称" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-select
|
||||
v-model="query.taskStatus"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="任务状态"
|
||||
class="filter-item"
|
||||
style="width: 150px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.task_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<rrOperation :crud="crud" />
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" height="66vh" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="index" :index="indexMethod" label="序号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="dstStockCode" label="目标容器编码" />
|
||||
<el-table-column prop="dstPointCode" label="目标点位编码" />
|
||||
<el-table-column prop="taskStatus" label="任务状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.task_status[scope.row.taskStatus] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="planQty" label="计划数量" />
|
||||
<el-table-column prop="moveQty" label="移位数量" />
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudTask from '@/api/task'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { id: null, itemId: null, itemKeyId: null, billCode: null, taskType: null, asnDetailId: null, moveDetailId: null, waveDetailId: null, pickDetailId: null, srcStockId: null, dstStockId: null, srcPointId: null, dstPointId: null, srcStockCode: null, dstStockCode: null, srcPointCode: null, dstPointCode: null, invStatus: null, taskStatus: null, beSkip: null, beBack: null, planQty: null, moveQty: null, putCode: null, invId: null, deptId: null, createBy: null, updateBy: null, createTime: null, updateTime: null }
|
||||
export default {
|
||||
name: 'Task',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['task_status'],
|
||||
cruds() {
|
||||
return CRUD({ title: '收货任务', url: 'api/task', idField: 'id', sort: 'id,desc', crudMethod: { ...crudTask },
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
},
|
||||
queryOnPresenterCreated: true
|
||||
}
|
||||
)
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'task:add'],
|
||||
edit: ['admin', 'task:edit'],
|
||||
del: ['admin', 'task:del']
|
||||
},
|
||||
rules: {
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{ key: 'itemCode', display_name: '物料代码' },
|
||||
{ key: 'itemName', display_name: '物料名称' },
|
||||
{ key: 'taskStatus', display_name: '任务状态' }
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
indexMethod(index) {
|
||||
return index * 1+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<label class="el-form-item-label">物料编码</label>
|
||||
<el-input v-model="query.itemCode" clearable placeholder="请输入物料编码" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
|
||||
<label class="el-form-item-label">物料名称</label>
|
||||
<el-input v-model="query.itemName" clearable placeholder="请输入物料名称" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
|
||||
<label class="el-form-item-label">批次号</label>
|
||||
<el-input v-model="query.propC1" clearable placeholder="请输入批次号" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<rrOperation :crud="crud" />
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission"/>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="点位" prop="point">
|
||||
<el-select v-model="form.point" filterable placeholder="请选点位" value-key="id" style="width: 370px;">
|
||||
<el-option
|
||||
v-for="point in points"
|
||||
:key="point.id"
|
||||
:label="point.code"
|
||||
:value="point"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="容器" prop="stock">
|
||||
<el-select v-model="form.stock" value-key="id" filterable placeholder="请选择容器" style="width: 370px;">
|
||||
<el-option
|
||||
v-for="stock in stocks"
|
||||
:key="stock.id"
|
||||
:label="stock.code"
|
||||
:value="stock"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量">
|
||||
<el-input v-model="form.quantity" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="分配数">
|
||||
<el-input v-model="form.queuedQty" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="重量">
|
||||
<el-input v-model="form.weight" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="体积">
|
||||
<el-input v-model="form.volume" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="form.description" :rows="3" type="textarea" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
|
||||
|
||||
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="pointCode" label="点位号"/>
|
||||
<el-table-column prop="stockCode" label="容器号"/>
|
||||
<el-table-column prop="quantity" label="数量"/>
|
||||
<el-table-column prop="queuedQty" label="占用数"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="批次号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.propC1 }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="description" label="描述"/>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudInventory from '@/api/inventory'
|
||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
billCode: null,
|
||||
itemKey: null,
|
||||
point: null,
|
||||
pointCode: null,
|
||||
stock: null,
|
||||
stockCode: null,
|
||||
bigStockId: null,
|
||||
quantity: null,
|
||||
queuedQty: null,
|
||||
weight: null,
|
||||
volume: null,
|
||||
description: null,
|
||||
beLock: null,
|
||||
beReject: null,
|
||||
status: null,
|
||||
storageDate: null,
|
||||
deptId: null,
|
||||
createBy: null,
|
||||
updateBy: null,
|
||||
createTime: null,
|
||||
updateTime: null
|
||||
}
|
||||
export default {
|
||||
name: 'Inventory',
|
||||
components: {pagination, crudOperation, rrOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '库存信息',
|
||||
url: 'api/inventory',
|
||||
idField: 'id',
|
||||
sort: 'id,desc',
|
||||
crudMethod: {...crudInventory}
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
points: [],
|
||||
stocks:[],
|
||||
permission: {
|
||||
add: ['admin', 'inventory:add'],
|
||||
edit: ['admin', 'inventory:edit'],
|
||||
del: ['admin', 'inventory:del']
|
||||
},
|
||||
rules: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,132 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<el-input v-model="query.itemCode" clearable placeholder="物料代码" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-input v-model="query.itemName" clearable placeholder="物料名称" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-select v-model="query.logType" clearable placeholder="操作类型" class="filter-item" @keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="logtype in dict.inv_log_type"
|
||||
:key="logtype.id"
|
||||
:label="logtype.label"
|
||||
:value="logtype.value"
|
||||
@change="crud.toQuery"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="query.incDec" clearable placeholder="增加/减少" class="filter-item" @keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
v-for="incdec in dict.inc_dec"
|
||||
:key="incdec.id"
|
||||
:label="incdec.label"
|
||||
:value="incdec.value"
|
||||
@change="crud.toQuery"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-model="query.propC1" clearable placeholder="请输入批次号" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px" />
|
||||
<rrOperation :crud="crud" />
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="批次号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.propC1 }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="logType" label="操作类型">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.inv_log_type[scope.row.logType] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="incDec" label="增加/减少">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.inc_dec[scope.row.incDec] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="srcPointCode" label="源点位号" />
|
||||
<el-table-column prop="srcStockCode" label="源容器号" />
|
||||
<el-table-column prop="dstPointCode" label="目标点位号" />
|
||||
<el-table-column prop="dstStockCode" label="目标容器号" />
|
||||
<el-table-column prop="srcQty" label="源数量" />
|
||||
<el-table-column prop="dstQty" label="目标数量" />
|
||||
<el-table-column prop="occurQuantity" label="发生数量" />
|
||||
<el-table-column prop="occurTime" label="发生时间" />
|
||||
<el-table-column prop="description" label="描述" />
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudInventoryLog from '@/api/inventoryLog'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import crudTask from "@/api/task";
|
||||
import DateRangePicker from "@/components/DateRangePicker/index.vue";
|
||||
|
||||
const defaultForm = { id: null, logType: null, incDec: null, relatedBill: null, itemKeyId: null, soi: null, occurQuantity: null, occurTime: null, status: null, refObj: null, refObjId: null, description: null, deptId: null, createBy: null, updateBy: null, createTime: null, updateTime: null, srcPointId: null, srcPointCode: null, srcStockId: null, srcStockCode: null, dstPointId: null, dstPointCode: null, dstStockId: null, dstStockCode: null, srcQty: null, dstQty: null }
|
||||
export default {
|
||||
name: 'InventoryLog',
|
||||
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['inv_log_type', 'inc_dec'],
|
||||
cruds() {
|
||||
return CRUD({ title: 'inventoryLog', url: 'api/inventoryLog', idField: 'id', sort: 'id,desc', crudMethod: { ...crudInventoryLog },
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
},
|
||||
queryOnPresenterCreated: true
|
||||
}
|
||||
)
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'inventoryLog:add'],
|
||||
edit: ['admin', 'inventoryLog:edit'],
|
||||
del: ['admin', 'inventoryLog:del']
|
||||
},
|
||||
rules: {
|
||||
logType: [
|
||||
{ required: true, message: '操作类型不能为空', trigger: 'blur' }
|
||||
],
|
||||
incDec: [
|
||||
{ required: true, message: '增加/减少不能为空', trigger: 'blur' }
|
||||
]
|
||||
} }
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="ID">
|
||||
<el-input v-model="form.id" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料序号">
|
||||
<el-input v-model="form.itemId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号">
|
||||
<el-input v-model="form.propC1" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="序列号">
|
||||
<el-input v-model="form.propC2" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改时间">
|
||||
<el-input v-model="form.updateTime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="ID" />
|
||||
<el-table-column prop="itemId" label="物料序号" />
|
||||
<el-table-column prop="propC1" label="批次号" />
|
||||
<el-table-column prop="propC2" label="序列号" />
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column v-if="checkPer(['admin','itemKey:edit','itemKey:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudItemKey from '@/api/itemKey'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { id: null, itemId: null, propC1: null, propC2: null, propC3: null, propC4: null, propC5: null, propC6: null, propD1: null, propD2: null, deptId: null, createBy: null, updateBy: null, createTime: null, updateTime: null }
|
||||
export default {
|
||||
name: 'ItemKey',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'item_key', url: 'api/itemKey', idField: 'id', sort: 'id,desc', crudMethod: { ...crudItemKey }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'itemKey:add'],
|
||||
edit: ['admin', 'itemKey:edit'],
|
||||
del: ['admin', 'itemKey:del']
|
||||
},
|
||||
rules: {
|
||||
} }
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
<template>
|
||||
<div class="echart" id="mychart" :style="myChartStyle"></div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as echarts from "echarts";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], //横坐标
|
||||
yData: [23, 24, 18, 25, 27, 28, 25], //数据
|
||||
myChartStyle: {float: "left", width: "100%", height: "400px"} //图表样式
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.initEcharts();
|
||||
},
|
||||
methods: {
|
||||
initEcharts() {
|
||||
// 基本柱状图
|
||||
const option = {
|
||||
color: ['#1E90FF'], // 深蓝色和黄色
|
||||
xAxis: {
|
||||
data: this.xData
|
||||
},
|
||||
yAxis: {},
|
||||
series: [
|
||||
{
|
||||
type: "bar", //形状为柱状图
|
||||
data: this.yData
|
||||
}
|
||||
]
|
||||
};
|
||||
const myChart = echarts.init(document.getElementById("mychart"));
|
||||
myChart.setOption(option);
|
||||
//随着屏幕大小调节图表
|
||||
window.addEventListener("resize", () => {
|
||||
myChart.resize();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
@ -1,418 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!-- 查询操作-->
|
||||
<el-form ref="form" :inline="true" :model="form" label-width="70px">
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="query.itemCode" clearable placeholder="请输入物料编码" style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="物料名称">
|
||||
<el-input v-model="query.itemName" clearable placeholder="请输入物料名称" style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="任务号">
|
||||
|
||||
<el-input v-model="query.po" clearable placeholder="请输入任务号" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
</el-form-item>
|
||||
<!-- 搜索-->
|
||||
<rrOperation :crud="crud"/>
|
||||
<!-- 重置-->
|
||||
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置
|
||||
</el-button>
|
||||
</el-form>
|
||||
|
||||
|
||||
<div class="statusButton" style="border-bottom: solid lightgray 1px;">
|
||||
<el-radio-group v-model="radio3" @change="clickChange" size="small">
|
||||
<el-radio-button label="全部"> 全部</el-radio-button>
|
||||
<el-radio-button label="打开"> 打开</el-radio-button>
|
||||
<el-radio-button label="已分配">已分配</el-radio-button>
|
||||
<el-radio-button label="拣货完成"> 拣货完成</el-radio-button>
|
||||
</el-radio-group>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 业务操作-->
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="show_fp"
|
||||
@click="allocate(crud.selections)"
|
||||
>
|
||||
分配
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:loading="crud.delAllLoading"
|
||||
:disabled="show_cancelfp"
|
||||
@click="cancelAllocate(crud.selections)"
|
||||
>
|
||||
取消分配
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="danger"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:loading="crud.delAllLoading"
|
||||
:disabled="show_jh"
|
||||
@click="getPickTask(crud.selections[0].id)"
|
||||
>
|
||||
拣货确认
|
||||
</el-button>
|
||||
|
||||
</crudOperation>
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small"
|
||||
style="width: 100%;"
|
||||
height="58vh"
|
||||
@selection-change="selectionChangeHandlerTwo">
|
||||
<el-table-column type="selection" width="50"/>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
align="center"
|
||||
label="序号"
|
||||
:resizable="false"
|
||||
type="index"
|
||||
width="50"
|
||||
/>
|
||||
|
||||
|
||||
<el-table-column prop="po" width="120" label="任务号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.pick_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderQty" label="订单数量"/>
|
||||
<el-table-column prop="allocatedQty" label="分配数量"/>
|
||||
<el-table-column prop="pickedQty" label="拣货数量"/>
|
||||
<el-table-column prop="remark" label="备注"/>
|
||||
|
||||
<el-table-column prop="createBy" label="创建人"/>
|
||||
<el-table-column prop="createTime" width="150px" label="创建时间"/>
|
||||
<el-table-column label="操作" width="150px" align="center">
|
||||
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" :disabled="scope.row.status!='OPEN'" type="primary" icon="el-icon-edit"
|
||||
@click="editPick(scope.row)"/>
|
||||
<template>
|
||||
<el-popconfirm
|
||||
title="确定删除吗?"
|
||||
icon='el-icon-delete'
|
||||
icon-color='red'
|
||||
@confirm="deletePick(scope.row)"
|
||||
>
|
||||
<el-button slot="reference" :disabled="scope.row.status!='OPEN'" size="mini" type="danger"
|
||||
icon="el-icon-delete"/>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--拣货确认界面-->
|
||||
<PickTask ref="pickTask"/>
|
||||
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="物料" prop="item">
|
||||
<el-select v-model="form.item" @focus="getItem" filterable placeholder="请选择物料" value-key="id"
|
||||
style="width: 370px;">
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单数量">
|
||||
<el-input v-model="form.orderQty" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.remark" :rows="3" type="textarea" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudPickDetail from '@/api/pickDetail'
|
||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import {getItems} from "@/api/item"
|
||||
import PickTask from "@/views/business-data/pickDetail/pickTicketTask.vue"
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
pickId: null,
|
||||
item: null,
|
||||
lineNo: null,
|
||||
po: null,
|
||||
status: 'OPEN',
|
||||
orderQty: 0,
|
||||
allocatedQty: 0,
|
||||
pickedQty: 0,
|
||||
shippedQty: 0,
|
||||
weight: 0,
|
||||
volume: 0,
|
||||
remark: null,
|
||||
propC1: null,
|
||||
propC2: null,
|
||||
propC3: null,
|
||||
propC4: null,
|
||||
propC5: null,
|
||||
propC6: null,
|
||||
propD1: null,
|
||||
propD2: null,
|
||||
deptId: null,
|
||||
sourceName: null,
|
||||
sourceId: null,
|
||||
createBy: null,
|
||||
updateBy: null,
|
||||
createTime: null,
|
||||
updateTime: null
|
||||
}
|
||||
export default {
|
||||
name: 'PickDetail',
|
||||
components: {PickTask, pagination, crudOperation, rrOperation, udOperation},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['pick_status'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '出库明细',
|
||||
url: 'api/pickDetail',
|
||||
idField: 'id',
|
||||
sort: 'id,desc',
|
||||
crudMethod: {...crudPickDetail},
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: false,
|
||||
download: true
|
||||
}
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show_fp: true,
|
||||
show_jh: true,
|
||||
show_cancelfp: true,
|
||||
radio3: '全部',
|
||||
items: [],
|
||||
permission: {
|
||||
add: ['admin', 'pickDetail:add'],
|
||||
edit: ['admin', 'pickDetail:edit'],
|
||||
del: ['admin', 'pickDetail:del']
|
||||
},
|
||||
rules: {
|
||||
item: [
|
||||
{required: true, message: '物料必填', trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{key: 'itemCode', display_name: '物料编码'},
|
||||
{key: 'itemName', display_name: '物料名称'},
|
||||
{key: 'po', display_name: '任务号'},
|
||||
{key: 'status', display_name: '状态'}
|
||||
]
|
||||
}
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
getItem() {
|
||||
getItems({}).then(res => {
|
||||
this.items = res.content.map(function (obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
selectionChangeHandlerTwo(val) {
|
||||
this.crud.selections = val
|
||||
if (this.crud.selections.length == 0) {
|
||||
this.show_jh = true;
|
||||
this.show_fp = true;
|
||||
this.show_cancelfp = true;
|
||||
return;
|
||||
}
|
||||
|
||||
const status = [];
|
||||
for (let i = 0; i < val.length; i++) {
|
||||
status.push(this.crud.selections[i].status)
|
||||
}
|
||||
|
||||
if (this.isAllEqual(status) && status[0] == "OPEN") {
|
||||
this.show_jh = true;
|
||||
this.show_fp = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.isAllEqual(status) && status[0] == "ALLOCATE") {
|
||||
this.show_jh = true;
|
||||
this.show_fp = true;
|
||||
this.show_cancelfp = false;
|
||||
}
|
||||
//拣货
|
||||
if (this.crud.selections.length == 1 && this.crud.selections[0].orderQty == this.crud.selections[0].allocatedQty) {
|
||||
this.show_jh = false;
|
||||
this.show_fp = true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
allocate(datas) {
|
||||
this.$confirm(`选中的${datas.length}条数据分配确认?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
|
||||
const ids = [];
|
||||
for (let i = 0; i < datas.length; i++) {
|
||||
ids.push(datas[i].id)
|
||||
}
|
||||
crudPickDetail.allocate(ids).then(res => {
|
||||
this.crud.notify('分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
this.crud.toQuery();
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$refs.table.clearSelection()
|
||||
this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
});
|
||||
},
|
||||
cancelAllocate(datas) {
|
||||
this.$confirm(`选中的${datas.length}条数据取消分配确认?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
|
||||
const ids = [];
|
||||
for (let i = 0; i < datas.length; i++) {
|
||||
ids.push(datas[i].id)
|
||||
}
|
||||
crudPickDetail.cancelAllocate(ids).then(res => {
|
||||
this.crud.notify('取消分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
this.crud.toQuery();
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$refs.table.clearSelection()
|
||||
this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
});
|
||||
},
|
||||
getPickTask(id) {
|
||||
this.$refs.pickTask.dialog = true
|
||||
this.$refs.pickTask.queryPickTask(id)
|
||||
},
|
||||
shuaxin() {
|
||||
this.crud.toQuery();
|
||||
},
|
||||
clickChange(lab) {
|
||||
if (lab === "全部") {
|
||||
this.crud.resetQuery();
|
||||
this.crud.toQuery();
|
||||
} else if (lab === "打开") {
|
||||
this.query.status = 'OPEN'
|
||||
this.crud.toQuery();
|
||||
} else if (lab === "已分配") {
|
||||
this.query.status = 'ALLOCATE'
|
||||
this.crud.toQuery();
|
||||
} else if (lab === "拣货完成") {
|
||||
this.query.status = 'PICK_ALL'
|
||||
this.crud.toQuery();
|
||||
}
|
||||
},
|
||||
resetQuery() {
|
||||
this.radio3 = '全部';
|
||||
this.crud.resetQuery()
|
||||
},
|
||||
editPick(data) {
|
||||
this.crud.toEdit(data)
|
||||
},
|
||||
deletePick(data) {
|
||||
this.crud.doDelete(data)
|
||||
}, isAllEqual(array) {
|
||||
if (array.length > 0) {
|
||||
return !array.some(function (value, index) {
|
||||
return value !== array[0];
|
||||
});
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
<template>
|
||||
<el-dialog :visible.sync="dialog" :before-close="handleClose" append-to-body title="拣货确认-拣货记录" width="88%">
|
||||
<!-- 搜索 -->
|
||||
<div class="head-container">
|
||||
<!-- 导出 -->
|
||||
<div style="display: inline-block;">
|
||||
<el-button
|
||||
:loading="downloadLoading"
|
||||
size="mini"
|
||||
class="filter-item"
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
@click="downloadMethod"
|
||||
>导出
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
:loading="downloadLoading"
|
||||
size="mini"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-lollipop"
|
||||
@click="picking"
|
||||
>整单拣货
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
:loading="downloadLoading"
|
||||
size="mini"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-potato-strips"
|
||||
@click="pickBarBack"
|
||||
>整单退拣
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--表格渲染-->
|
||||
<el-table v-loading="loading" :data="data" style="width: 100%;margin-top: -10px;">
|
||||
<el-table-column type="index" :index="indexMethod" label="序号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="任务号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.pickDetail.po }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="srcStockCode" label="容器"/>
|
||||
|
||||
<el-table-column prop="srcPointCode" label="原点位"/>
|
||||
<el-table-column prop="dstPointCode" label="目标点位"/>
|
||||
|
||||
<el-table-column prop="planQty" label="分配数量"/>
|
||||
<el-table-column prop="moveQty" label="拣货数量"/>
|
||||
<el-table-column prop="createBy" label="创建人"/>
|
||||
<el-table-column prop="createTime" label="创建时间"/>
|
||||
</el-table>
|
||||
<el-dialog :visible.sync="errorDialog" append-to-body title="异常详情" width="85%">
|
||||
<pre>{{ errorInfo }}</pre>
|
||||
</el-dialog>
|
||||
<!--分页组件-->
|
||||
<el-pagination
|
||||
:total="total"
|
||||
:current-page="page + 1"
|
||||
:page-size="6"
|
||||
style="margin-top:8px;"
|
||||
layout="total, prev, pager, next"
|
||||
@size-change="sizeChange"
|
||||
@current-change="pageChange"
|
||||
/>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crud from '@/mixins/crud'
|
||||
import DateRangePicker from '@/components/DateRangePicker'
|
||||
import {queryPickTask} from "@/api/task";
|
||||
import crudPickDetail from "@/api/pickDetail";
|
||||
import DonMessage from "@/utils/message";
|
||||
import CRUD from '@crud/crud'
|
||||
|
||||
export default {
|
||||
components: {DateRangePicker},
|
||||
mixins: [crud],
|
||||
dicts: ['task_status'],
|
||||
data() {
|
||||
|
||||
return {
|
||||
pickDetailId: 0,
|
||||
title: '任务日志',
|
||||
errorInfo: '', errorDialog: false,
|
||||
enabledTypeOptions: [
|
||||
{key: 'true', display_name: '成功'},
|
||||
{key: 'false', display_name: '失败'}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
queryPickTask(id) {
|
||||
queryPickTask(id).then(res => {
|
||||
this.data = res;
|
||||
|
||||
this.loading = false;
|
||||
this.pickDetailId = id;
|
||||
return true;
|
||||
})
|
||||
},
|
||||
indexMethod(index) {
|
||||
return index * 1 + 1;
|
||||
},
|
||||
picking() {
|
||||
this.$confirm(`确认整单拣货?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
|
||||
crudPickDetail.picking(this.pickDetailId).then(res => {
|
||||
this.$parent.crud.notify('拣货成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
this.queryPickTask(this.pickDetailId)
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$parent.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
});
|
||||
},
|
||||
pickBarBack() {
|
||||
this.$confirm(`确认整单退拣?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
|
||||
crudPickDetail.pickBarBack(this.pickDetailId).then(res => {
|
||||
this.$parent.crud.notify('退拣成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
this.queryPickTask(this.pickDetailId)
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$parent.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
});
|
||||
},
|
||||
handleClose(done) {
|
||||
done();
|
||||
this.$parent.shuaxin();//刷新父组件查询方法
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.java.hljs {
|
||||
color: #444;
|
||||
background: #ffffff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__body {
|
||||
padding: 0 20px 10px 20px !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,171 +0,0 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="ID">
|
||||
<el-input v-model="form.id" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料序号">
|
||||
<el-input v-model="form.itemId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料属性序号">
|
||||
<el-input v-model="form.itemKeyId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务序号">
|
||||
<el-input v-model="form.taskId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="源容器">
|
||||
<el-input v-model="form.srcStockId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标容器">
|
||||
<el-input v-model="form.dstStockId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="源点位">
|
||||
<el-input v-model="form.srcLocId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标点位">
|
||||
<el-input v-model="form.dstLocId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="源容器编码">
|
||||
<el-input v-model="form.srcStockCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标容器编码">
|
||||
<el-input v-model="form.dstStockCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="源点位编码">
|
||||
<el-input v-model="form.srcLocCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标点位编码">
|
||||
<el-input v-model="form.dstLocCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="属性6">
|
||||
<el-input v-model="form.invStatus" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="退回">
|
||||
<el-input v-model="form.beBack" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="拣货数量">
|
||||
<el-input v-model="form.moveQty" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发运数量">
|
||||
<el-input v-model="form.shipQty" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上架号">
|
||||
<el-input v-model="form.putCode" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="库存ID">
|
||||
<el-input v-model="form.invId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库ID">
|
||||
<el-input v-model="form.deptId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人">
|
||||
<el-input v-model="form.createBy" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改人">
|
||||
<el-input v-model="form.updateBy" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发运人">
|
||||
<el-input v-model="form.shipBy" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发运时间">
|
||||
<el-input v-model="form.shipTime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-input v-model="form.createTime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改时间">
|
||||
<el-input v-model="form.updateTime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="ID" />
|
||||
<el-table-column prop="itemId" label="物料序号" />
|
||||
<el-table-column prop="itemKeyId" label="物料属性序号" />
|
||||
<el-table-column prop="taskId" label="任务序号" />
|
||||
<el-table-column prop="srcStockId" label="源容器" />
|
||||
<el-table-column prop="dstStockId" label="目标容器" />
|
||||
<el-table-column prop="srcLocId" label="源点位" />
|
||||
<el-table-column prop="dstLocId" label="目标点位" />
|
||||
<el-table-column prop="srcStockCode" label="源容器编码" />
|
||||
<el-table-column prop="dstStockCode" label="目标容器编码" />
|
||||
<el-table-column prop="srcLocCode" label="源点位编码" />
|
||||
<el-table-column prop="dstLocCode" label="目标点位编码" />
|
||||
<el-table-column prop="invStatus" label="属性6" />
|
||||
<el-table-column prop="beBack" label="退回" />
|
||||
<el-table-column prop="moveQty" label="拣货数量" />
|
||||
<el-table-column prop="shipQty" label="发运数量" />
|
||||
<el-table-column prop="putCode" label="上架号" />
|
||||
<el-table-column prop="invId" label="库存ID" />
|
||||
<el-table-column prop="deptId" label="仓库ID" />
|
||||
<el-table-column prop="createBy" label="创建人" />
|
||||
<el-table-column prop="updateBy" label="修改人" />
|
||||
<el-table-column prop="shipBy" label="发运人" />
|
||||
<el-table-column prop="shipTime" label="发运时间" />
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column prop="updateTime" label="修改时间" />
|
||||
<el-table-column v-if="checkPer(['admin','taskLog:edit','taskLog:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudTaskLog from '@/api/taskLog'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { id: null, itemId: null, itemKeyId: null, taskId: null, srcStockId: null, dstStockId: null, srcLocId: null, dstLocId: null, srcStockCode: null, dstStockCode: null, srcLocCode: null, dstLocCode: null, invStatus: null, beBack: null, moveQty: null, shipQty: null, putCode: null, invId: null, deptId: null, createBy: null, updateBy: null, shipBy: null, shipTime: null, createTime: null, updateTime: null }
|
||||
export default {
|
||||
name: 'TaskLog',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({ title: 'taskLog', url: 'api/taskLog', idField: 'id', sort: 'id,desc', crudMethod: { ...crudTaskLog }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'taskLog:add'],
|
||||
edit: ['admin', 'taskLog:edit'],
|
||||
del: ['admin', 'taskLog:del']
|
||||
},
|
||||
rules: {
|
||||
} }
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<el-dialog :visible.sync="dialog" append-to-body title="收货详情" width="88%">
|
||||
<div class="app-container">
|
||||
<!-- 搜索 -->
|
||||
<div class="head-container">
|
||||
<!-- 导出 -->
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
@size-change="sizeChange"
|
||||
@current-change="pageChange"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -75,12 +75,17 @@ export default {
|
|||
]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.doInit()
|
||||
},
|
||||
methods: {
|
||||
doInit(id) {
|
||||
getTaskInfo(id).then(res => {
|
||||
this.data = res;
|
||||
this.loading = false;
|
||||
return true;
|
||||
doInit() {
|
||||
// const params = { methodType: 'kchzcx', viewCount: 100, currentPage: 1 }
|
||||
const params = null
|
||||
getTaskInfo(params).then(res => {
|
||||
this.data = res
|
||||
this.loading = false
|
||||
return true
|
||||
})
|
||||
},
|
||||
indexMethod(index) {
|
||||
|
|
@ -54,7 +54,7 @@ export default {
|
|||
...mapGetters(['deployUploadApi'])
|
||||
},
|
||||
created() {
|
||||
this.initWebSocket()
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.initSelect()
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ function resolve(dir) {
|
|||
}
|
||||
|
||||
const name = defaultSettings.title // 网址标题
|
||||
const port = 8080 // 端口配置
|
||||
const port = 8089 // 端口配置
|
||||
|
||||
// All configuration explanations can be find in https://cli.vuejs.org/config/
|
||||
module.exports = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue