no message
parent
5f7d3812cf
commit
3a73ca8f72
|
|
@ -2,6 +2,6 @@ ENV = 'production'
|
|||
|
||||
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
|
||||
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
|
||||
VUE_APP_BASE_API = 'https://eladmin.vip'
|
||||
VUE_APP_BASE_API = '/'
|
||||
# 如果接口是 http 形式, wss 需要改为 ws
|
||||
VUE_APP_WS_API = 'wss://eladmin.vip'
|
||||
VUE_APP_WS_API = '/'
|
||||
|
|
|
|||
|
|
@ -54,5 +54,12 @@ export function sendAgvTask(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
export function toAgvTaskFinish(data) {
|
||||
return request({
|
||||
url: '/api/agvTask/toAgvTaskFinish',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del,missionStateCallback,agvTaskCallback ,sendAgvTask}
|
||||
export default { add, edit, del,missionStateCallback,agvTaskCallback ,sendAgvTask,toAgvTaskFinish}
|
||||
|
|
|
|||
|
|
@ -29,4 +29,4 @@ export function getBillType() {
|
|||
method: 'post'
|
||||
})
|
||||
}
|
||||
export default { add, edit, del }
|
||||
export default { add, edit, del, getBillType }
|
||||
|
|
|
|||
|
|
@ -32,21 +32,23 @@ export function bindOrder(data) {
|
|||
})
|
||||
}
|
||||
|
||||
//按钮车呼叫
|
||||
export function callTrolley(id,pointCode) {
|
||||
// 按钮车呼叫
|
||||
export function callTrolley(id, pointCode) {
|
||||
return request({
|
||||
url: 'api/app/callTrolley?id='+id+"&pointCode="+pointCode,
|
||||
url: 'api/app/callTrolley?id=' + id + '&pointCode=' + pointCode,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
//按钮盒呼叫
|
||||
export function callBox(data) {
|
||||
// 按钮盒呼叫
|
||||
export function callBox(id) {
|
||||
return request({
|
||||
url: 'api/app/callBox',
|
||||
url: 'api/appScene/asn/rqRkSub',
|
||||
method: 'post',
|
||||
data
|
||||
data: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del,bindOrder ,callBox}
|
||||
export default { add, edit, del, bindOrder, callBox }
|
||||
|
|
|
|||
|
|
@ -11,8 +11,7 @@ export function getItems(params) {
|
|||
export function getItemsList(params) {
|
||||
return request({
|
||||
url: 'api/item/itemList',
|
||||
method: 'get',
|
||||
params
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function add(data) {
|
||||
|
|
|
|||
|
|
@ -68,11 +68,27 @@ export function pointCallStock(data) {
|
|||
|
||||
export function pointStockBack(data) {
|
||||
return request({
|
||||
url: 'api/appScene/pointStockBack',
|
||||
url: 'api/task/STAgvReceiving',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function pointStockRk(data) {
|
||||
return request({
|
||||
url: 'api/task/pointStockRk',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function pointStockCk(ids) {
|
||||
return request({
|
||||
url: 'api/task/pointStockCk',
|
||||
method: 'post',
|
||||
data: {
|
||||
'ids': ids
|
||||
}
|
||||
})
|
||||
}
|
||||
export function fullStockOut(data) {
|
||||
return request({
|
||||
url: 'api/appScene/fullStockOut',
|
||||
|
|
@ -89,4 +105,4 @@ export function multiAdjust(data) {
|
|||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del,getPoints,queryPointList ,fullStockIn,pointCallStock,fullStockOut,pointStockBack,multiAdjust}
|
||||
export default { add, edit, del,pointStockCk,getPoints,queryPointList ,fullStockIn,pointCallStock,fullStockOut,pointStockBack,multiAdjust,pointStockRk}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,19 @@
|
|||
|
||||
/* 全局修改el-table 表头和内容颜色 header color content color */
|
||||
.el-table th {
|
||||
font-size: 14px;
|
||||
font-size: 12px;
|
||||
background: #F6F9FC !important;
|
||||
color: #606266;
|
||||
}
|
||||
// 表格td 文本和元素间距
|
||||
.el-table--small .el-table__cell {
|
||||
padding: 3px 0;
|
||||
}
|
||||
// table鼠标经过时变色
|
||||
.el-table__body tr:hover>td{
|
||||
background-color: #a0c2e7 !important;
|
||||
}
|
||||
/*.el-table__body tr.current-row>td{
|
||||
background-color: #a0c2e7 !important;
|
||||
color: #fff;
|
||||
}*/
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ import Cookies from 'js-cookie'
|
|||
|
||||
import 'normalize.css/normalize.css'
|
||||
|
||||
import Element, { Table, TableColumn } from 'element-ui'
|
||||
import Element, { Table, TableColumn,Button } from 'element-ui'
|
||||
const ButtonProps = Element.Button.props
|
||||
ButtonProps.loading = { type: Boolean, default: false } // 按钮禁用
|
||||
const TableProps = Element.Table.props
|
||||
const TableColumnProps = Element.TableColumn.props
|
||||
TableProps.border = { type: Boolean, default: true } // 边框
|
||||
|
|
@ -12,6 +14,7 @@ TableProps.align = { type: String, default: 'center' } // 居中
|
|||
TableProps.stripe = { type: Boolean, default: true } // 斑马纹
|
||||
TableColumnProps.showOverflowTooltip = { type: Boolean, default: true } // 文本溢出
|
||||
// TableColumnProps.sortable = { type: Boolean, default: true } // 置默认的排序列和排序顺序
|
||||
Vue.use(Button)
|
||||
Vue.use(Table)
|
||||
Vue.use(TableColumn)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,168 @@
|
|||
@import 'reset'
|
||||
@import "variables.styl"
|
||||
.icon
|
||||
width 1em
|
||||
height 1em
|
||||
vertical-align -0.15em
|
||||
fill currentColor
|
||||
overflow hidden
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform rotate(0deg)
|
||||
}
|
||||
100% {
|
||||
transform rotate(360deg)
|
||||
}
|
||||
}
|
||||
.tc
|
||||
text-align center
|
||||
.tl
|
||||
text-align left
|
||||
.tr
|
||||
text-align right
|
||||
.spin
|
||||
animation spin .6s infinite linear
|
||||
display inline-block
|
||||
|
||||
html
|
||||
height 100%
|
||||
|
||||
body
|
||||
font-size 12px
|
||||
font-family "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif
|
||||
height 100%
|
||||
|
||||
.ivu-select-dropdown
|
||||
padding 0
|
||||
|
||||
.lineov2
|
||||
overflow hidden
|
||||
text-overflow ellipsis
|
||||
display -webkit-box
|
||||
-webkit-line-clamp 2
|
||||
-webkit-box-orient vertical
|
||||
|
||||
.lineov1
|
||||
text-overflow ellipsis
|
||||
overflow hidden
|
||||
white-space nowrap
|
||||
|
||||
.flex-container
|
||||
display flex
|
||||
|
||||
.align-center
|
||||
align-items center
|
||||
|
||||
.flex-center
|
||||
display flex
|
||||
align-items center
|
||||
|
||||
.flex-top
|
||||
display flex
|
||||
align-items flex-start
|
||||
|
||||
.justify-end
|
||||
justify-content flex-end
|
||||
|
||||
.flex-one
|
||||
flex 1 1 0
|
||||
|
||||
.flex-two
|
||||
flex 2
|
||||
|
||||
.mouse-pointer
|
||||
cursor pointer
|
||||
|
||||
.no-break
|
||||
word-break keep-all
|
||||
white-space nowrap
|
||||
|
||||
.break-all
|
||||
word-break break-all
|
||||
white-space normal
|
||||
|
||||
/* ---- Chrome ----*/
|
||||
.scroll::-webkit-scrollbar
|
||||
width: 5px;
|
||||
|
||||
/*滚动条粗细*/
|
||||
|
||||
.scroll::-webkit-scrollbar-track
|
||||
-webkit-box-shadow: none;
|
||||
background: #f8f8f9; /*滑道颜色*/
|
||||
border-radius: 5px;
|
||||
|
||||
/*滑道的圆滑度*/
|
||||
|
||||
.scroll::-webkit-scrollbar-thumb
|
||||
background: #c1c1c1; /*滑块颜色*/
|
||||
border-radius: 5px
|
||||
|
||||
/*滑块圆滑度*/
|
||||
|
||||
.scroll::-webkit-scrollbar-thumb:hover
|
||||
background: gray;
|
||||
|
||||
/*滑块上浮*/
|
||||
|
||||
/*--- FirFox ---*/
|
||||
.scroll
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: orange green;
|
||||
|
||||
/* --- IE ---*/
|
||||
body
|
||||
scrollbar-arrow-color: #f4ae21; /*三角箭头的颜色*/
|
||||
scrollbar-face-color: #333; /*立体滚动条的颜色*/
|
||||
scrollbar-3dlight-color: #666; /*立体滚动条亮边的颜色*/
|
||||
scrollbar-highlight-color: #666; /*滚动条空白部分的颜色*/
|
||||
scrollbar-shadow-color: #999; /*立体滚动条阴影的颜色*/
|
||||
scrollbar-darkshadow-color: #666; /*立体滚动条强阴影的颜色*/
|
||||
scrollbar-track-color: #666; /*立体滚动条背景颜色*/
|
||||
scrollbar-base-color: #f8f8f8;
|
||||
|
||||
/*滚动条的基本颜色*/
|
||||
|
||||
.common-table
|
||||
width 100%
|
||||
border-collapse: collapse;
|
||||
tr > td, tr > th
|
||||
border 1px solid $border-color
|
||||
padding 5px 8px
|
||||
tr > th
|
||||
font-weight bolder
|
||||
white-space nowrap
|
||||
|
||||
.inline-div
|
||||
display inline-block
|
||||
|
||||
[class~=flex].gutter-span
|
||||
> * + *
|
||||
margin-left .75rem
|
||||
|
||||
.warning
|
||||
color $yellow
|
||||
.active
|
||||
color $active-color
|
||||
.white
|
||||
color white
|
||||
.gold
|
||||
color $gold-color
|
||||
.gray
|
||||
color $gray-color
|
||||
.red
|
||||
color $red
|
||||
.blue
|
||||
color $blue
|
||||
.green
|
||||
color green
|
||||
.bg-white
|
||||
background #fff
|
||||
.pct100
|
||||
width 100%
|
||||
.bolder-font
|
||||
font-weight bolder
|
||||
|
||||
.large-tip
|
||||
font-size 16px
|
||||
|
|
@ -41,6 +41,7 @@
|
|||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" height="67vh" 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="code" label="库区编号" />
|
||||
<el-table-column prop="name" label="库区名称" />
|
||||
<el-table-column prop="description" label="描述" />
|
||||
|
|
@ -154,9 +155,10 @@ export default {
|
|||
})
|
||||
},
|
||||
getAgvSceneAllDate(){
|
||||
selectEgvSceneAll().then(res => {
|
||||
/*selectEgvSceneAll().then(res => {
|
||||
this.avgSceneOptions=res;
|
||||
})
|
||||
})*/
|
||||
console.log("tableKey:"+this.$options.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ export default {
|
|||
pointList: [],
|
||||
rules: {
|
||||
code: [
|
||||
{required: true, message: '请输入编号', trigger: 'blur'},
|
||||
{ required: true, message: '请输入编号', trigger: 'blur'},
|
||||
],
|
||||
name: [
|
||||
{required: true, message: '请输入名称', trigger: 'blur'},
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
<el-option
|
||||
v-for="item in pointList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
|
|
@ -98,6 +98,7 @@
|
|||
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="code" label="编号"/>
|
||||
<el-table-column prop="name" label="名称"/>
|
||||
<el-table-column prop="lampStatus" label="单据类型"/>
|
||||
|
|
@ -126,11 +127,13 @@
|
|||
|
||||
<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"
|
||||
/>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
:disabled="scope.row.enabled == false "
|
||||
@click="callBox(scope.row)"
|
||||
>入场/呼叫
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -184,7 +187,7 @@ export default {
|
|||
crudMethod: {...crudBox},
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
edit: true,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
|
|
@ -253,30 +256,21 @@ export default {
|
|||
})
|
||||
})
|
||||
},
|
||||
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('请至少选中一条记录!')
|
||||
}
|
||||
callBox(row) {
|
||||
this.$confirm(`确认操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
crudBox.callBox(row.id).then(res => {
|
||||
this.crud.notify(res.message,res.status)
|
||||
this.crud.toQuery();
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$refs.table.clearSelection()
|
||||
DonMessage.info('取消成功!')
|
||||
});
|
||||
},
|
||||
changeEnabled(data, val) {
|
||||
this.$confirm('此操作将 "' + this.dict.label.base_staus[val] + '" ' + data.code + ', 是否继续?', '提示', {
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="装载数">
|
||||
<el-form-item label="预期占用数">
|
||||
<el-input v-model="form.extendD1" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="存储库区" prop="goodType">
|
||||
|
|
@ -131,7 +131,7 @@
|
|||
<el-table-column prop="name" label="名称" width="150"/>
|
||||
<el-table-column prop="goodType" label="存储库区" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column prop="extendD1" label="装载数"/>
|
||||
<el-table-column prop="extendD1" label="预期占用数"/>
|
||||
<el-table-column prop="unit" label="单位">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.item_unit[scope.row.unit] }}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.name" clearable placeholder="名称" style="width: 120px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.storageType" clearable placeholder="分配容器" style="width: 100px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-select
|
||||
v-model="query.status"
|
||||
clearable
|
||||
|
|
@ -24,7 +26,39 @@
|
|||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="query.areaName" style="width: 120px;" clearable placeholder="请选择"
|
||||
<el-select
|
||||
v-model="query.agvStatus"
|
||||
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>
|
||||
<el-select
|
||||
v-model="query.type"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="类型"
|
||||
class="filter-item"
|
||||
style="width: 100px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.point_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="query.areaName" style="width: 120px;" clearable placeholder="库区"
|
||||
@keyup.enter.native="crud.toQuery" class="filter-item" @change="crud.toQuery">
|
||||
<el-option
|
||||
v-for="area in areas"
|
||||
|
|
@ -33,6 +67,15 @@
|
|||
:value="area.name"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="query.enabled" clearable placeholder="是否启用" style="width: 100px;" class="filter-item"
|
||||
@change="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'-->
|
||||
|
|
@ -46,11 +89,26 @@
|
|||
size="mini"
|
||||
v-show="true"
|
||||
:loading="crud.delAllLoading"
|
||||
:disabled="crud.selections.length === 0 "
|
||||
:disabled="crud.selections.length !== 1 "
|
||||
@click="callStockBackOut(crud.selections)"
|
||||
>
|
||||
容器出场
|
||||
</el-button>
|
||||
<el-button
|
||||
v-permission="permission.stockAsn"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
v-show="true"
|
||||
:loading="crud.delAllLoading"
|
||||
:disabled="crud.selections.length !== 1 "
|
||||
@click="EmptyCarBackStatus=true"
|
||||
>
|
||||
容器入场
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
v-permission="permission.stockAgvTask"
|
||||
slot="right"
|
||||
|
|
@ -60,7 +118,7 @@
|
|||
size="mini"
|
||||
v-show="true"
|
||||
:loading="crud.delAllLoading"
|
||||
:disabled="crud.selections.length === 0 "
|
||||
:disabled="crud.selections.length !== 1 "
|
||||
@click="callEmptyCarStatus=true"
|
||||
>
|
||||
容器搬运
|
||||
|
|
@ -165,7 +223,23 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="当前容器">
|
||||
<el-form-item label="锁定状态">
|
||||
<el-select
|
||||
v-model="form.agvStatus"
|
||||
size="small"
|
||||
placeholder="锁定状态"
|
||||
class="filter-item"
|
||||
style="width: 370px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.use_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="分配容器">
|
||||
<el-select v-model="form.storageType" clearable value-key="id" filterable placeholder="请选择" style="width: 370px;">
|
||||
<el-option
|
||||
v-for="item in storageTypes"
|
||||
|
|
@ -195,7 +269,8 @@
|
|||
<el-table border 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="id" label="ID"/>
|
||||
<el-table-column prop="code" :show-overflow-tooltip="false" label="代码"/>
|
||||
<el-table-column prop="name" label="名称"/>
|
||||
<el-table-column prop="type" label="类型">
|
||||
<template slot-scope="scope">
|
||||
|
|
@ -207,12 +282,17 @@
|
|||
<div>{{ scope.row.area.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="status" label="状态">
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.use_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="storageType" label="当前容器">
|
||||
<el-table-column prop="agvStatus" label="锁定状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.use_status[scope.row.agvStatus] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="storageType" label="分配容器">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.storageType !=null">{{ scope.row.storageType }}</span>
|
||||
</template>
|
||||
|
|
@ -237,7 +317,8 @@
|
|||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="160px" align="center">
|
||||
<el-table-column fixed="right"
|
||||
v-if="checkPer(['admin','item:edit'])" label="操作" width="60px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
|
|
@ -247,19 +328,6 @@
|
|||
style="float: left"
|
||||
>
|
||||
</udOperation>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
width="50px">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" v-if="false" align="center" size="mini" @click="callEmptyCarStatusOffOn(scope.row)">呼叫空车
|
||||
</el-button>
|
||||
|
||||
<el-button @click="showFullStockOut(scope.row)" v-if="false" type="primary" align="center" size="small">呼叫满车
|
||||
</el-button>
|
||||
<el-button @click="emptyCarBack(scope.row)" v-if="false" type="primary" align="center" size="small">空车入库</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -288,7 +356,7 @@ import pointUrl from '@/api/point'
|
|||
import multiAdjust from "@/views/base-data/point/multiAdjust.vue";
|
||||
import {getStockTypes} from "@/api/stockType";
|
||||
|
||||
const defaultForm = {id: null, status: 'FREE', enabled: 1, code: null, name: null, description: null, area: null, storageType: null,beatCode: null,heat: null}
|
||||
const defaultForm = {id: null,agvStatus: null, status: 'FREE', enabled: 1, code: null, name: null, description: null, area: null, storageType: null,beatCode: null,heat: null}
|
||||
export default {
|
||||
name: 'Point',
|
||||
components: {
|
||||
|
|
@ -429,11 +497,12 @@ export default {
|
|||
this.callStock.pointCode = this.from1.pointCode
|
||||
this.callStock.ids=ids
|
||||
pointUrl.pointCallStock(this.callStock).then(res => {
|
||||
this.callEmptyCarStatus = false;
|
||||
this.crud.notify(res.message,res.status)
|
||||
this.crud.toQuery()
|
||||
this.crud.notify("搬运成功", CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
}).catch(e => {
|
||||
this.crud.notify("搬运失败", CRUD.NOTIFICATION_TYPE.ERROR);
|
||||
if (res.status===200){
|
||||
this.callStock={};
|
||||
this.callEmptyCarStatus=false
|
||||
}
|
||||
})
|
||||
},
|
||||
//容器入场
|
||||
|
|
@ -443,7 +512,7 @@ export default {
|
|||
ids.push(datas[i].id)
|
||||
}
|
||||
this.fromBack.ids=ids;
|
||||
pointUrl.pointStockBack(this.fromBack).then(res => {
|
||||
pointUrl.pointStockRk(this.fromBack).then(res => {
|
||||
this.EmptyCarBackStatus = false;
|
||||
this.crud.toQuery()
|
||||
this.crud.notify("入场成功", CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
|
|
@ -451,6 +520,16 @@ export default {
|
|||
this.crud.notify("入场失败", CRUD.NOTIFICATION_TYPE.ERROR);
|
||||
})
|
||||
},
|
||||
callStockBackOut(datas) {
|
||||
const ids = [];
|
||||
for (let i = 0; i < datas.length; i++) {
|
||||
ids.push(datas[i].id)
|
||||
}
|
||||
pointUrl.pointStockCk(ids).then(res => {
|
||||
this.crud.toQuery()
|
||||
this.crud.notify(res.message, res.status);
|
||||
})
|
||||
},
|
||||
//获取点位表的数据
|
||||
getPointListData() {
|
||||
crudPoint.queryPointList({}).then(res => {
|
||||
|
|
|
|||
|
|
@ -2,30 +2,30 @@
|
|||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<el-input v-model="query.relatedBill1" clearable placeholder="系统单号" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.relatedBill2" clearable placeholder="登记单号" 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 start-placeholder="创建日期" v-model="query.createTime" class="date-item" />
|
||||
<rrOperation :crud="crud"/>
|
||||
<el-input v-model="query.relatedBill1" clearable placeholder="系统单号" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.relatedBill2" clearable placeholder="登记单号" 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 start-placeholder="创建日期" v-model="query.createTime" class="date-item" />
|
||||
<rrOperation :crud="crud"/>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :table-key="this.$options.name">
|
||||
<crudOperation :permission="permission" :tableKey="this.$options.name">
|
||||
<el-button
|
||||
slot="left"
|
||||
v-permission="permission.pointUsed"
|
||||
|
|
@ -121,14 +121,11 @@
|
|||
<el-table-column v-if="checkPer(['admin','asn:edit','asn:del'])" fixed="right" label="操作" style="width: 120px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-permission="permission.add"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
icon="el-icon-document-add"
|
||||
@click="jumpAsnDetail(scope.row.relatedBill1)"
|
||||
>
|
||||
查看明细
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="jumpAsnDetail(scope.row)"
|
||||
>明细
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -149,7 +146,6 @@ import pagination from '@crud/Pagination'
|
|||
import { getItems } from '@/api/item'
|
||||
import { getBillType } from '@/api/billType'
|
||||
import crudAsnDetail from "@/api/asnDetail";
|
||||
import DonMessage from "@/utils/message";
|
||||
import DateRangePicker from '@/components/DateRangePicker'
|
||||
|
||||
const defaultForm = { id: null, dept: null, billType: null, orderOrigin: null, structure: null, erTime: null, relatedBill1: null, relatedBill2: null, sourceName: null, status: null, address: null, createBy: null, updateBy: null, createTime: null, updateTime: null, orderDate: null }
|
||||
|
|
@ -193,9 +189,9 @@ export default {
|
|||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
jumpAsnDetail(relatedBill1) {
|
||||
jumpAsnDetail(asn) {
|
||||
// 路径/home对应我在router目录下index.js中定义的path属性值
|
||||
this.$router.push({ path: '/business-data/asnDetail/asnDetail', query: { relatedBill1: relatedBill1 }})
|
||||
this.$router.push({ path: '/business-data/asnDetail/asnDetail', query: { asn: asn }})
|
||||
},
|
||||
startAsn(id) {
|
||||
this.$confirm(`确定开始收货?`, '提示', {
|
||||
|
|
|
|||
|
|
@ -2,240 +2,185 @@
|
|||
<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.relatedBill1" clearable placeholder="系统单号" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-select v-model="query.itemCode" placeholder="物料代码" style="width: 140px;" class="filter-item">
|
||||
<el-option
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
v-for="item in this.itemListData"
|
||||
:key="item.code"
|
||||
:label="item.code"
|
||||
:value="item.code">
|
||||
<span style="float: left">{{ item.code }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-input v-model="query.itemName" clearable placeholder="物料名称" 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 start-placeholder="创建日期" v-model="query.createTime" class="date-item" style="width: 100px"/>
|
||||
<rrOperation :crud="crud"/>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :table-key="this.$options.name">
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="permission.checkAsn"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="collectMO = true"
|
||||
icon="el-icon-document-add"
|
||||
v-if="false"
|
||||
>
|
||||
MO票采集
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="permission.checkAsn"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="el-icon-bottom-right"
|
||||
:disabled="receivingStatus"
|
||||
@click="checkAsn(crud.selections)"
|
||||
v-if="false"
|
||||
>
|
||||
收 货
|
||||
</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 !== 1 || containerReplacementStatus"
|
||||
@click="ontainerReplacementOnOff=true"
|
||||
v-if="false"
|
||||
>
|
||||
容器更换
|
||||
</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"
|
||||
v-if="false"
|
||||
>收货详情
|
||||
</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" v-if="false" type="success" icon="el-icon-upload2">导入</el-button>
|
||||
</el-upload>
|
||||
</crudOperation>
|
||||
<AsnTask ref="asnTask"/>
|
||||
</div>
|
||||
<!--表单组件-->
|
||||
<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="100px">
|
||||
<!-- <el-form-item label="所属订单">
|
||||
<el-input v-model="form.asn.relatedBill1" style="width: 200px;"/>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="所属订单" prop="item">
|
||||
<el-select v-model="form.asn.relatedBill1" value-key="id" filterable placeholder="请所属订单"
|
||||
style="width: 200px;" @change="applicantTypes">
|
||||
<el-option
|
||||
v-for="item in asnList"
|
||||
:key="item.id"
|
||||
:label="item.relatedBill1"
|
||||
:value="item.relatedBill1"
|
||||
/>
|
||||
</el-select>
|
||||
<el-form ref="asnForm" :inline="true" :model="asnFrom" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="系统单号" prop="relatedBill1">
|
||||
<el-input v-model="asnFrom.relatedBill1" style="width: 140px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料" prop="item" style="width: 200px">
|
||||
<el-select v-model="form.item" 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 label="订单来源">
|
||||
<el-input v-model="asnFrom.orderOrigin" style="width: 140px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单数量">
|
||||
<el-input v-model="form.orderQty" style="width: 200px;"/>
|
||||
<el-form-item label="货主" filters filter-method>
|
||||
<el-input v-model="asnFrom.structure" style="width: 140px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="收货数量">
|
||||
<el-input v-model="form.receivedQty" style="width: 200px;"/>
|
||||
<el-form-item label="登记单号">
|
||||
<el-input v-model="asnFrom.relatedBill2" style="width: 140px;" />
|
||||
</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.propC2" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="序列号">
|
||||
<el-input type="textarea" v-model="form.propC3" style="width: 270px;"/>
|
||||
</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="this.selectionChangeHandler" @row-click="this.clickRow" border>
|
||||
<el-table-column prop="asn.relatedBill1" label="入库单号" width="100"/>
|
||||
<el-table-column prop="asn.billType.name" label="单据类型" width="100"/>
|
||||
<el-table-column prop="asn.status" label="入库单状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.asn_status[scope.row.asn.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="lineNo" width="50" label="行号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.lineNo }}</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 :show-overflow-tooltip="true" prop="propC4" label="操作方式">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.propC4 }}</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="propC2" label="成品物料编码"/>
|
||||
<el-table-column prop="propC3" label="序列号" :show-overflow-tooltip="true"/>
|
||||
<el-table-column prop="createTime" label="创建时间" width="135" />
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" fixed="right" width="120px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="true"
|
||||
<el-form-item label="订单状态" prop="status">
|
||||
<el-select
|
||||
v-model="asnFrom.status"
|
||||
filterable
|
||||
placeholder="订单状态"
|
||||
style="width: 140px;"
|
||||
>
|
||||
</udOperation>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<el-option
|
||||
v-for="item in dict.asn_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<el-select v-model="asnFrom.billType" value-key="id" filterable placeholder="请选择单据类型"
|
||||
style="width: 140px;">
|
||||
<el-option
|
||||
v-for="item in billTypeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<div style="float: right;">
|
||||
<pagination/>
|
||||
</el-form>
|
||||
<el-divider></el-divider>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :tableKey="this.$options.name">
|
||||
<el-button
|
||||
slot="left"
|
||||
v-permission="permission.edit"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="editAsn()"
|
||||
>
|
||||
保存
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="permission.add"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
plain="plain"
|
||||
icon="el-icon-document-add"
|
||||
@click="crud.toAdd"
|
||||
>
|
||||
添加物料
|
||||
</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="120px">
|
||||
<el-form-item label="物料" prop="item" style="width: 200px">
|
||||
<el-select v-model="form.item" value-key="id" filterable placeholder="请选择物料"
|
||||
style="width: 200px;">
|
||||
<el-option
|
||||
v-for="item in itemList"
|
||||
: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.receivedQty" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上架数量">
|
||||
<el-input v-model="form.putQty" 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.propC2" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="序列号">
|
||||
<el-input type="textarea" v-model="form.propC3" style="width: 270px;"/>
|
||||
</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" height="67vh" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column prop="asn.relatedBill1" label="入库单号" width="100"/>
|
||||
<el-table-column prop="asn.billType.name" label="单据类型" width="100"/>
|
||||
<el-table-column prop="asn.status" label="入库单状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.asn_status[scope.row.asn.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="lineNo" width="50" label="行号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.lineNo }}</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 :show-overflow-tooltip="true" prop="propC4" label="操作方式">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.propC4 }}</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>
|
||||
<el-table-column prop="receivedQty" label="收货数量"/>
|
||||
<el-table-column prop="putQty" label="上架数量"/>
|
||||
<el-table-column prop="propC1" label="中标批次名称"/>
|
||||
<el-table-column prop="propC2" label="成品物料编码"/>
|
||||
<el-table-column prop="propC3" label="序列号" :show-overflow-tooltip="true"/>
|
||||
<el-table-column prop="createTime" label="创建时间" width="135" />
|
||||
<el-table-column v-if="checkPer(['admin','asnDetail:edit','asnDetail:del'])" :show-overflow-tooltip="false" label="操作" fixed="right" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudAsnDetail, {add, updateContainer} 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 crudAsnDetail from '@/api/asnDetail'
|
||||
import crudItem from '@/api/item'
|
||||
import crudAsn from '@/api/asn'
|
||||
import crudBillType from '@/api/billType'
|
||||
import {selectEgvSceneAll} from '@/api/agvScene'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import {getItems, getItemsList} from "@/api/item"
|
||||
import {queryKyStockList} from "@/api/stock"
|
||||
import {getAsnList} from "@/api/asn"
|
||||
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,
|
||||
asn: {relatedBill1:null},
|
||||
asn:null,
|
||||
item: null,
|
||||
stock: null,
|
||||
lineNo: null,
|
||||
|
|
@ -266,246 +211,91 @@ const defaultForm = {
|
|||
}
|
||||
export default {
|
||||
name: 'AsnDetail',
|
||||
components: {DateRangePicker, AsnTask, Search, Treeselect, pagination, crudOperation, rrOperation, udOperation},
|
||||
// eslint-disable-next-line vue/no-unused-components
|
||||
components: { 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},
|
||||
return CRUD({ title: '入库明细', url: 'api/asnDetail', idField: 'id', sort: 'id,desc', crudMethod: { ...crudAsnDetail },
|
||||
optShow: {
|
||||
add: true,
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
reset: true,
|
||||
download: true
|
||||
download: false
|
||||
},
|
||||
queryOnPresenterCreated: false
|
||||
})
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
headers: {'Authorization': getToken()},
|
||||
fileList:[],
|
||||
asnList: [],
|
||||
items: [],
|
||||
stocks: [],
|
||||
form2: {po: null, stock: null},
|
||||
form3: {stockName: null, newStock: null, asnDetailUpdate: null},
|
||||
show_update: true,
|
||||
queryTypeOptions: [
|
||||
{ key: 'code', display_name: '代码' },
|
||||
{ key: 'name', display_name: '名称' },
|
||||
{ key: 'enabled', display_name: '状态' },
|
||||
{ key: 'heat', display_name: '热度' }
|
||||
],
|
||||
permission: {
|
||||
add: ['admin', 'asnDetail:add'],
|
||||
edit: ['admin', 'asnDetail:edit'],
|
||||
del: ['admin', 'asnDetail:del'],
|
||||
checkAsn: ['admin', 'asnDetail:checkAsn']
|
||||
download: ['admin', 'asnDetail:download']
|
||||
},
|
||||
rules: {
|
||||
item: [
|
||||
{required: true, message: '物料不能为空', trigger: 'blur'}
|
||||
],
|
||||
stock: [
|
||||
{required: true, message: '容器不能为空', trigger: 'blur'}
|
||||
code: [
|
||||
{ required: true, message: '库区编号不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{key: 'itemCode', display_name: '物料代码'},
|
||||
{key: 'itemName', display_name: '物料名称'},
|
||||
{key: 'po', display_name: 'MO票'},
|
||||
{key: 'status', display_name: '状态'}
|
||||
],
|
||||
collectMO: false,
|
||||
// 收货按钮的控制
|
||||
receivingStatus: true,
|
||||
//容器更换按钮的控制
|
||||
containerReplacementStatus: true,
|
||||
ontainerReplacementOnOff: false,
|
||||
itemListData: []
|
||||
itemList:[],
|
||||
billTypeList:[],
|
||||
asnFrom:{}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
//初始化数据
|
||||
this.itemDataGet()
|
||||
this.getItem()
|
||||
this.getAsns()
|
||||
this.getItemList()
|
||||
this.getBillTypeList()
|
||||
this.defaultTableList()
|
||||
},
|
||||
methods: {
|
||||
// 默认数据
|
||||
defaultTableList() {
|
||||
this.query.relatedBill1 = this.$route.query.relatedBill1
|
||||
defaultForm.asn.relatedBill1 = this.query.relatedBill1
|
||||
|
||||
let statusList=[];
|
||||
statusList.push('OPEN')
|
||||
statusList.push('ACTIVE')
|
||||
statusList.push('PUTAWAY')
|
||||
statusList.push('RECEIVING')
|
||||
this.query.statusList = statusList
|
||||
this.crud.toQuery()
|
||||
},
|
||||
applicantTypes(value){
|
||||
this.asnList.forEach(item => {
|
||||
if(item.id===item.id){
|
||||
console.log("item:"+item)
|
||||
this.form.asn.value = item
|
||||
}
|
||||
})
|
||||
},
|
||||
jumpAsnDetail() {
|
||||
this.query.relatedBill1 = this.$route.query.relatedBill1
|
||||
defaultForm.asn.relatedBill1=this.query.relatedBill1
|
||||
this.crud.toQuery()
|
||||
},
|
||||
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
|
||||
})
|
||||
})
|
||||
},
|
||||
getAsns() {
|
||||
getAsnList({}).then(res => {
|
||||
this.asnList = res.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
|
||||
// 加载单头
|
||||
defaultTableList() {
|
||||
if (this.$route.query.asn.id===undefined){
|
||||
this.crud.notify("找不到入库单",400)
|
||||
}else {
|
||||
this.asn = this.$route.query.asn
|
||||
this.query.asnId = this.asn.id
|
||||
this.asnFrom = this.asn
|
||||
this.crud.toQuery()
|
||||
this.getStock()
|
||||
this.resetForm()
|
||||
|
||||
}).catch(() => {
|
||||
}
|
||||
},
|
||||
getItemList() {
|
||||
crudItem.getItemsList({}).then(res => {
|
||||
this.itemList = res.map(function (obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
// 显示日志
|
||||
doAsnTask(id) {
|
||||
this.$refs.asnTask.dialog = true
|
||||
this.$refs.asnTask.doInit(id)
|
||||
getBillTypeList() {
|
||||
crudBillType.getBillType({}).then(res => {
|
||||
this.billTypeList = res.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
//重置表单
|
||||
resetForm() {
|
||||
this.$refs["form2"].resetFields();
|
||||
this.$data.form2 = JSON.parse(JSON.stringify(this.$options.data().form2))
|
||||
},
|
||||
WuLiaoClick(pack_number) {
|
||||
this.form.orderQty = pack_number;
|
||||
},
|
||||
clickRow(row) {
|
||||
this.crud.getTable().clearSelection()
|
||||
this.crud.getTable().toggleRowSelection(row, true)
|
||||
|
||||
this.selectSingleClick_()
|
||||
},
|
||||
selectionChangeHandler(val) {
|
||||
this.crud.selections = val
|
||||
this.selectSingleClick_()
|
||||
},
|
||||
//收货状态的判断 => 当用户手动勾选全选 Checkbox 时触发的事件
|
||||
selectSingleClick_() {
|
||||
if (this.crud.selections.length > 0) {
|
||||
this.receivingStatus = false;
|
||||
} else {
|
||||
this.receivingStatus = true;
|
||||
}
|
||||
this.containerReplacementStatus = true;
|
||||
for (const valElement of this.crud.selections) {
|
||||
if (valElement.status === 'RECEIVED') {
|
||||
this.receivingStatus = true;
|
||||
}
|
||||
if (valElement.status === 'OPEN') {
|
||||
this.containerReplacementStatus = false;
|
||||
this.form3.stockName = valElement.stock.name;
|
||||
this.form3.asnDetailUpdate = valElement;
|
||||
}
|
||||
}
|
||||
},
|
||||
//容器更换按钮触发
|
||||
performContainerChange() {
|
||||
this.$refs['form3'].validate((valid) => {
|
||||
if (valid) {
|
||||
let data_ = {data: null, id: null};
|
||||
data_.id = this.form3.asnDetailUpdate.stock.id;
|
||||
this.form3.asnDetailUpdate.stock = this.form3.newStock;
|
||||
data_.data = this.form3.asnDetailUpdate;
|
||||
updateContainer(data_).then(res => {
|
||||
this.ontainerReplacementOnOff = false;
|
||||
this.crud.toQuery()
|
||||
this.getStock()
|
||||
DonMessage.success('容器更换成功');
|
||||
}).catch(() => {
|
||||
DonMessage.success('容器更换失败!');
|
||||
})
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
//物料数据
|
||||
itemDataGet() {
|
||||
getItemsList().then(res => {
|
||||
this.itemListData = res;
|
||||
}).catch(e => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '物料加载失败',
|
||||
type: 'error'
|
||||
});
|
||||
editAsn(){
|
||||
crudAsn.edit(this.asnFrom).then(res => {
|
||||
this.crud.notify("保存成功",200)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,41 +4,22 @@
|
|||
<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"/>
|
||||
|
||||
<el-input
|
||||
v-model="query.stockCode"
|
||||
clearable
|
||||
placeholder="请输入容器编码"
|
||||
style="width: 170px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.startSlotCode" clearable placeholder="起点位置" style="width: 170px;"
|
||||
class="filter-item" @keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.endSlotCode" clearable placeholder="终点位置" style="width: 140px;"
|
||||
class="filter-item" @keyup.enter.native="crud.toQuery"/>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<el-input
|
||||
<date-range-picker start-placeholder="创建日期" v-model="query.createTime" class="date-item" />
|
||||
<el-input v-model="query.startSlotCode" clearable placeholder="起点位置" style="width: 120px;"
|
||||
class="filter-item" @keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.endSlotCode" clearable placeholder="终点位置" style="width: 120px;"
|
||||
class="filter-item" @keyup.enter.native="crud.toQuery"/>
|
||||
<el-input
|
||||
v-model="query.id"
|
||||
clearable
|
||||
placeholder="请输入任务序号"
|
||||
placeholder="任务序号"
|
||||
style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input
|
||||
v-model="query.jobForce"
|
||||
clearable
|
||||
placeholder="请输入任务组号"
|
||||
style="width: 140px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-select v-model="query.status" clearable multiple placeholder="请选择" style="width: 170px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<div>
|
||||
|
||||
<el-select v-model="query.status" clearable multiple placeholder="任务状态" style="width: 180px;"
|
||||
class="filter-item">
|
||||
<el-option
|
||||
v-for="taskStatus in dict.task_status"
|
||||
:key="taskStatus.id"
|
||||
|
|
@ -46,8 +27,7 @@
|
|||
:value="taskStatus.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="query.type" clearable placeholder="请选择" style="width: 170px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-select v-model="query.jobType" clearable placeholder="工作类型" style="width: 120px;" class="filter-item">
|
||||
<el-option
|
||||
v-for="taskType in dict.task_type"
|
||||
:key="taskType.id"
|
||||
|
|
@ -61,17 +41,6 @@
|
|||
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<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-group>
|
||||
|
||||
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :tableKey="this.$options.name"/>
|
||||
|
|
@ -140,8 +109,7 @@
|
|||
:default-sort="{prop: 'id', order: 'descending'}"
|
||||
@selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="id" label="任务序号" v-if="this.radio3=='货架' || this.radio3=='全部'"/>
|
||||
<!-- <el-table-column prop="jobForce" width="160" label="任务组号" v-if="this.radio3!='货架' "/>-->
|
||||
<el-table-column prop="id" label="任务序号"/>
|
||||
<el-table-column prop="stockTypeCode" width="170" label="容器类型"/>
|
||||
<el-table-column prop="startSlotCode" label="起点位置" width="130"/>
|
||||
<el-table-column prop="endSlotCode" label="终点位置" width="130" sortable :formatter="formatter"/>
|
||||
|
|
@ -152,13 +120,12 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="type" label="任务类型">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="dict.label.task_type[scope.row.type] ==null">{{ scope.row.type }}</span>
|
||||
<span v-if="scope.row.type !=null">{{ dict.label.task_type[scope.row.type] }}</span>
|
||||
{{ scope.row.type }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="jobType" label="工作类型">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.jobType }}
|
||||
<span v-if="scope.row.jobType !=null">{{ dict.label.task_type[scope.row.jobType] }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="jobPriority" label="优先级" width="60"/>
|
||||
|
|
@ -167,6 +134,7 @@
|
|||
<el-table-column prop="startTime" label="开始时间" width="140"/>
|
||||
<el-table-column prop="endTime" label="完成时间" width="140"/>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="false"
|
||||
fixed="right"
|
||||
label="操作"
|
||||
width="140">
|
||||
|
|
@ -177,10 +145,9 @@
|
|||
发送
|
||||
</el-button>
|
||||
<el-button type="danger"
|
||||
:disabled="scope.row.status!='OPEN' && scope.row.status!='UP_CONTAINER' && scope.row.status!='OPEN' "
|
||||
align="center"
|
||||
size="mini"
|
||||
style="float: left" @click="toAgvTaskFinish(scope.row)">
|
||||
style="float: left" @click="toAgvTaskFinish(scope.row.id)">
|
||||
异常
|
||||
</el-button>
|
||||
</template>
|
||||
|
|
@ -249,7 +216,7 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
radio3: '全部',
|
||||
radio3: '未完成',
|
||||
permission: {
|
||||
add: ['admin', 'agvTask:add'],
|
||||
edit: ['admin', 'agvTask:edit'],
|
||||
|
|
@ -312,18 +279,16 @@ export default {
|
|||
formatter(row, column) {
|
||||
return row.endSlotCode;
|
||||
},
|
||||
toAgvTaskFinish(data) {
|
||||
this.MissionStateCallback.missionCode = data.id
|
||||
this.MissionStateCallback.containerCode = data.stockCode
|
||||
this.MissionStateCallback.missionStatus = 'COMPLETED'
|
||||
crudAgvTask.missionStateCallback(this.MissionStateCallback).then(res => {
|
||||
if (res.status == 200) {
|
||||
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
this.crud.toQuery()
|
||||
} else {
|
||||
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.ERROR);
|
||||
}
|
||||
}).catch(() => {
|
||||
toAgvTaskFinish(id) {// 异常
|
||||
crudAgvTask.toAgvTaskFinish(id).then(res => {
|
||||
this.crud.notify(res.message, res.status);
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
butSendAgvTask(id) {//发送
|
||||
crudAgvTask.sendAgvTask(id).then(res => {
|
||||
this.crud.notify(res.message, res.status);
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
agvTaskCallbackMethod() {//顶升
|
||||
|
|
@ -351,30 +316,18 @@ export default {
|
|||
this.form1.missionCode = id;
|
||||
this.agvTaskCallbackStatus = true;
|
||||
},
|
||||
butSendAgvTask(id) {//发送
|
||||
crudAgvTask.sendAgvTask(id).then(res => {
|
||||
this.crud.notify(res.message, res.status);
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
resetQuery() {
|
||||
this.radio3 = '全部';
|
||||
this.crud.resetQuery()
|
||||
},
|
||||
clickChange(lab) {
|
||||
/*clickChange(lab) {
|
||||
if (lab === "全部") {
|
||||
this.crud.resetQuery();
|
||||
} else if (lab === "货架") {
|
||||
} else if (lab === "未完成") {
|
||||
this.query.jobType = 'RACK'
|
||||
this.crud.toQuery();
|
||||
} else if (lab === "料箱") {
|
||||
this.query.jobType = 'PICKER'
|
||||
this.crud.toQuery();
|
||||
} else if (lab === "滚筒") {
|
||||
this.query.jobType = 'ROLLER'
|
||||
this.crud.toQuery();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -40,18 +40,6 @@
|
|||
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :table-key="this.$options.name">
|
||||
<el-button
|
||||
v-permission="permission.ctDeav"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="danger"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="crud.selections.length !== 1 || this.crud.selections[0].orderQty<=this.crud.selections[0].allocatedQty"
|
||||
@click="LoadDevanning()"
|
||||
>
|
||||
拆托
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="ButReplaceInvFlag"
|
||||
slot="right"
|
||||
|
|
@ -73,9 +61,9 @@
|
|||
:title="crud.status.title"
|
||||
width="500px"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form ref="form" :inline="true" :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-select v-model="form.point" filterable placeholder="请选点位" value-key="id" style="width: 200px;">
|
||||
<el-option
|
||||
v-for="point in points"
|
||||
:key="point.id"
|
||||
|
|
@ -84,27 +72,14 @@
|
|||
/>
|
||||
</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-input v-model="form.quantity" :disabled="true" style="width: 100px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分配数">
|
||||
<el-input v-model="form.queuedQty" style="width: 370px;" />
|
||||
<el-input v-model="form.queuedQty" :disabled="true" style="width: 100px;" />
|
||||
</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 label="RFID">
|
||||
<el-input v-model="form.itemKey.propC7" :rows="3" type="textarea" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="form.description" :rows="3" type="textarea" style="width: 370px;" />
|
||||
|
|
@ -164,7 +139,6 @@
|
|||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
show-summary
|
||||
:data="crud.data"
|
||||
border
|
||||
size="small"
|
||||
|
|
@ -172,7 +146,7 @@
|
|||
height="70vh"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="selection" width="30" />
|
||||
<el-table-column prop="id" label="库存ID" />
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
|
|
@ -236,33 +210,26 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="quantity" label="数量" />
|
||||
<el-table-column prop="queuedQty" label="占用数" />
|
||||
<el-table-column prop="propC1" label="批次号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.propC1 }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderNumber" label="工单号">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.orderNumber }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="创建时间" />
|
||||
<el-table-column
|
||||
v-if="checkPer(['admin','fileManagement:edit','fileManagement:del'])"
|
||||
label="操作"
|
||||
width="150px"
|
||||
align="center"
|
||||
fixed="right"
|
||||
>
|
||||
<!-- <el-table-column v-if="checkPer(['admin','inventory:ckxq'])" fixed="right" label="操作" style="width: 120px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-popconfirm
|
||||
title="确定删除吗?"
|
||||
@confirm="deleteDataM(scope.row.id)"
|
||||
<el-button
|
||||
v-permission="permission.ckxq"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
icon="el-icon-document-add"
|
||||
@click="jumpAsnDetail(scope.row.relatedBill1)"
|
||||
>
|
||||
<el-button slot="reference" type="danger">删除</el-button>
|
||||
</el-popconfirm>
|
||||
查看详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>-->
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<div style="float: right;">
|
||||
|
|
@ -281,11 +248,12 @@ import crudOperation from '@crud/CRUD.operation'
|
|||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import {queryPickTask} from "@/api/task";
|
||||
import {getPoints} from "@/api/point";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
billCode: null,
|
||||
itemKey: { item: { id:null } },
|
||||
itemKey: { item: { id:null },propC7:null },
|
||||
point: null,
|
||||
stock: null,
|
||||
bigStockId: null,
|
||||
|
|
@ -321,7 +289,7 @@ export default {
|
|||
crudMethod: { ...crudInventory },
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
edit: true,
|
||||
del: true,
|
||||
reset: false,
|
||||
download: true
|
||||
|
|
@ -340,7 +308,8 @@ export default {
|
|||
edit: ['admin', 'inventory:edit'],
|
||||
del: ['admin', 'inventory:del'],
|
||||
download: ['admin', 'inventory:download'],
|
||||
ctDeav: ['admin', 'inventory:ctDeav']
|
||||
ctDeav: ['admin', 'inventory:ctDeav'],
|
||||
ckxq: ['admin', 'inventory:ckxq']
|
||||
},
|
||||
FromDevanningFlag: false,
|
||||
devanPropC6: { startPropC6: null, endPropC6: null },
|
||||
|
|
@ -348,6 +317,9 @@ export default {
|
|||
rules: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getPoints()
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
|
|
@ -363,6 +335,16 @@ export default {
|
|||
})
|
||||
})
|
||||
},
|
||||
getPoints() {
|
||||
getPoints().then(res => {
|
||||
this.points= res.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
LoadDevanning() {
|
||||
this.FromDevanningFlag = true
|
||||
this.fromDevanning.invIds = []
|
||||
|
|
@ -438,6 +420,6 @@ export default {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -132,14 +132,11 @@
|
|||
<el-table-column v-if="checkPer(['admin','asn:edit','asn:del'])" fixed="right" label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-permission="permission.add"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
icon="el-icon-document-add"
|
||||
@click="jumpPickDetail(scope.row.relatedBill1)"
|
||||
>
|
||||
查看明细
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="jumpPickDetail(scope.row)"
|
||||
>明细
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -234,9 +231,9 @@ export default {
|
|||
this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
})
|
||||
},
|
||||
jumpPickDetail(relatedBill1) {
|
||||
jumpPickDetail(pick) {
|
||||
// 路径/home对应我在router目录下index.js中定义的path属性值
|
||||
this.$router.push({ path: '/business-data/pickDetail/pickDetail', query: { relatedBill1: relatedBill1 }})
|
||||
this.$router.push({ path: '/business-data/pickDetail/pickDetail', query: { pick: pick }})
|
||||
},
|
||||
cancelAllocate(datas) {
|
||||
this.$confirm(`选中的${datas.length}条数据取消分配确认?`, '提示', {
|
||||
|
|
|
|||
|
|
@ -2,36 +2,65 @@
|
|||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!-- 查询操作-->
|
||||
<el-input
|
||||
style="width: 140px"
|
||||
v-model="query.relatedBill1"
|
||||
clearable
|
||||
placeholder="系统单号"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
<el-input
|
||||
style="width: 140px"
|
||||
v-model="query.itemCode"
|
||||
clearable
|
||||
placeholder="物料代码"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
<el-input
|
||||
style="width: 140px"
|
||||
v-model="query.itemName"
|
||||
clearable
|
||||
placeholder="请输入物料名称"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
<date-range-picker v-model="query.createTime" class="date-item" />
|
||||
<!-- 搜索-->
|
||||
<rrOperation ref="rrOperation" :crud="crud" />
|
||||
<el-form ref="form" :inline="true" :model="pick" :rules="rules" size="small" label-width="120px">
|
||||
<el-form-item label="系统单号" prop="relatedBill1">
|
||||
<el-input v-model="pick.relatedBill1" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记单号">
|
||||
<el-input v-model="pick.relatedBill2" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<el-select v-model="pick.billType" value-key="id" filterable placeholder="请选择单据类型"
|
||||
style="width: 135px;">
|
||||
<el-option
|
||||
v-for="item in billTypeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="status">
|
||||
<el-select v-model="pick.status" filterable placeholder="请选择" style="width: 135px;">
|
||||
<el-option
|
||||
v-for="item in dict.pick_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单来源">
|
||||
<el-input v-model="pick.orderOrigin" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级">
|
||||
<el-input v-model="pick.priority" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="货主">
|
||||
<el-input v-model="pick.owner" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="来源名称">
|
||||
<el-input v-model="pick.sourceName" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发货时间">
|
||||
<el-date-picker v-model="pick.dispatchDate" type="datetime" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作时间">
|
||||
<el-date-picker v-model="pick.erTime" type="datetime" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-divider></el-divider>
|
||||
<!-- 业务操作-->
|
||||
<crudOperation :permission="permission" :table-key="tableKey">
|
||||
<el-button
|
||||
slot="left"
|
||||
v-permission="permission.pointUsed"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="editPick()"
|
||||
>
|
||||
保存
|
||||
</el-button>
|
||||
<el-button
|
||||
v-permission="permission.allocate"
|
||||
slot="right"
|
||||
|
|
@ -123,30 +152,14 @@
|
|||
<el-table-column label="操作" width="150px" fixed="right" 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>
|
||||
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:show-dle="true"
|
||||
:showPointIn="true"
|
||||
style="float: left"
|
||||
>
|
||||
</udOperation>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -162,17 +175,6 @@
|
|||
width="580px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="120px">
|
||||
<el-form-item label="所属订单" prop="pick">
|
||||
<el-select v-model="form.pick" value-key="id" filterable placeholder="请所属订单"
|
||||
style="width: 135px;">
|
||||
<el-option
|
||||
v-for="item in pickList"
|
||||
:key="item.id"
|
||||
:label="item.relatedBill1"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="明细行号">
|
||||
<el-input v-model="form.lineNo" style="width: 135px;" />
|
||||
</el-form-item>
|
||||
|
|
@ -182,7 +184,7 @@
|
|||
filterable
|
||||
placeholder="请选择物料"
|
||||
value-key="id"
|
||||
style="width: 405px;"
|
||||
style="width: 135px;"
|
||||
@focus="getItem"
|
||||
>
|
||||
<el-option
|
||||
|
|
@ -255,7 +257,8 @@ import { getItems, getItemsList } from '@/api/item'
|
|||
import PickTask from '@/views/business-data/pickDetail/pickTicketTask.vue'
|
||||
import DateRangePicker from '@/components/DateRangePicker/index.vue'
|
||||
import DonMessage from "@/utils/message";
|
||||
import {getAsnList} from "@/api/asn";
|
||||
import curdAsn, {getAsnList} from "@/api/asn";
|
||||
import {getBillType} from "@/api/billType";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
|
|
@ -314,6 +317,8 @@ export default {
|
|||
show_jh: true,
|
||||
show_cancelfp: true,
|
||||
pickList: [],
|
||||
billTypeList: [],
|
||||
pick: { id: null, deptId: null, billType: null, orderOrigin: null, priority: null, owner: null, relatedBill1: null, relatedBill2: null, sourceName: null, status: null, address: null, dispatchDate: null, erTime: null, createBy: null, updateBy: null, createTime: null, updateTime: null, orderDate: null },
|
||||
radio3: '全部',
|
||||
items: [],
|
||||
permission: {
|
||||
|
|
@ -350,6 +355,7 @@ export default {
|
|||
this.getItem()
|
||||
this.itemDataGet()
|
||||
this.getPicks()
|
||||
this.getBillType()
|
||||
this.defaultTableList()
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -368,8 +374,18 @@ export default {
|
|||
})
|
||||
},
|
||||
getItem() {
|
||||
getItems({}).then(res => {
|
||||
this.items = res.content.map(function(obj) {
|
||||
getItemsList({}).then(res => {
|
||||
this.items = res.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
getBillType() {
|
||||
getBillType({}).then(res => {
|
||||
this.billTypeList = res.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
|
|
@ -377,7 +393,6 @@ export default {
|
|||
})
|
||||
})
|
||||
},
|
||||
|
||||
selectionChangeHandlerTwo(val) {
|
||||
this.crud.selections = val
|
||||
if (this.crud.selections.length === 0) {
|
||||
|
|
@ -461,17 +476,19 @@ export default {
|
|||
},
|
||||
// 默认数据
|
||||
defaultTableList() {
|
||||
this.query.relatedBill1 = this.$route.query.relatedBill1
|
||||
defaultForm.pick.relatedBill1 = this.query.relatedBill1
|
||||
|
||||
let statusList=[];
|
||||
statusList.push('OPEN')
|
||||
statusList.push('ALLOCATE')
|
||||
this.query.statusList = statusList
|
||||
this.crud.toQuery()
|
||||
this.pick = this.$route.query.pick
|
||||
if (this.pick.id===undefined){
|
||||
this.crud.notify("找不到出库单",400)
|
||||
}else {
|
||||
this.query.pickId = this.pick.id
|
||||
this.form.pick = this.pick
|
||||
this.crud.toQuery()
|
||||
}
|
||||
},
|
||||
editPick(data) {
|
||||
this.crud.toEdit(data)
|
||||
editPick() {
|
||||
crudPick.edit(this.pick).then(res => {
|
||||
this.crud.notify("保存成功",200)
|
||||
})
|
||||
},
|
||||
deletePick(data) {
|
||||
this.crud.doDelete(data)
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@
|
|||
<el-form-item label="任务名称" prop="jobName">
|
||||
<el-input v-model="form.jobName" style="width: 220px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务描述" prop="description">
|
||||
<el-input v-model="form.description" style="width: 220px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="Bean名称" prop="beanName">
|
||||
<el-input v-model="form.beanName" style="width: 220px;" />
|
||||
</el-form-item>
|
||||
|
|
@ -60,6 +57,9 @@
|
|||
<el-radio :label="true">暂停</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务描述" prop="description">
|
||||
<el-input v-model="form.description" style="width: 556px;" rows="4" type="textarea"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="参数内容">
|
||||
<el-input v-model="form.params" style="width: 556px;" rows="4" type="textarea" />
|
||||
</el-form-item>
|
||||
|
|
|
|||
Loading…
Reference in New Issue