啊哈哈

main
LX 2024-03-14 16:43:13 +08:00
parent 70f193d2f5
commit 66e28fc37c
54 changed files with 67 additions and 4982 deletions

View File

@ -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

View File

@ -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'

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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}

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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 }

View File

@ -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) {

View File

@ -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 }

View File

@ -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>

View File

@ -1,19 +1,19 @@
<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>
<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>
</template>
@ -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>

View File

@ -38,7 +38,7 @@ export default {
delLoading: false,
delAllLoading: false,
// 弹窗属性
dialog: false,
dialog: true,
// Form 表单
form: {},
// 重置表单

View File

@ -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()
}
next()
}
})

View File

@ -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,

View File

@ -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: {
// 部署包上传

View File

@ -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 // 请求超时时间
})

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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) {

View File

@ -54,7 +54,7 @@ export default {
...mapGetters(['deployUploadApi'])
},
created() {
this.initWebSocket()
},
mounted() {
this.initSelect()

View File

@ -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 = {