no message

main
bbl\baobl 2024-05-20 15:39:00 +08:00
parent 3a73ca8f72
commit f37664dd0e
11 changed files with 283 additions and 196 deletions

View File

@ -2,112 +2,111 @@
<div class="crud-opts"> <div class="crud-opts">
<span class="crud-opts-left"> <span class="crud-opts-left">
<!--左侧插槽--> <!--左侧插槽-->
<slot name="left"/> <slot name="left" />
<el-button <el-button
v-if="crud.optShow.add" v-if="crud.optShow.add"
v-permission="permission.add" v-permission="permission.add"
class="filter-item" class="filter-item"
size="mini" size="mini"
type="primary" type="primary"
icon="el-icon-plus" icon="el-icon-plus"
@click="crud.toAdd" @click="crud.toAdd"
> >
新增 新增
</el-button> </el-button>
<el-button <el-button
v-if="crud.optShow.edit" v-if="crud.optShow.edit"
v-permission="permission.edit" v-permission="permission.edit"
class="filter-item" class="filter-item"
size="mini" size="mini"
type="success" type="success"
icon="el-icon-edit" icon="el-icon-edit"
:disabled="crud.selections.length !== 1" :disabled="crud.selections.length !== 1"
@click="crud.toEdit(crud.selections[0])" @click="crud.toEdit(crud.selections[0])"
> >
修改 修改
</el-button> </el-button>
<el-button <el-button
v-if="crud.optShow.del" v-if="crud.optShow.del"
slot="reference" slot="reference"
v-permission="permission.del" v-permission="permission.del"
class="filter-item" class="filter-item"
type="danger" type="danger"
icon="el-icon-delete" icon="el-icon-delete"
size="mini" size="mini"
:loading="crud.delAllLoading" :loading="crud.delAllLoading"
:disabled="crud.selections.length === 0" :disabled="crud.selections.length === 0"
@click="toDelete(crud.selections)" @click="toDelete(crud.selections)"
> >
删除 删除
</el-button> </el-button>
<el-button <el-button
v-if="crud.optShow.download" v-if="crud.optShow.download"
v-permission="permission.download" :loading="crud.downloadLoading"
:loading="crud.downloadLoading" :disabled="!crud.data.length"
:disabled="!crud.data.length" class="filter-item"
class="filter-item" size="mini"
size="mini" type="warning"
type="warning" icon="el-icon-download"
icon="el-icon-download" @click="crud.doExport"
@click="crud.doExport"
>导出</el-button> >导出</el-button>
<!--右侧--> <!--右侧-->
<slot name="right"/> <slot name="right" />
</span> </span>
<el-button-group class="crud-opts-right"> <el-button-group class="crud-opts-right">
<el-button <el-button
size="mini" size="mini"
plain plain
type="info" type="info"
icon="el-icon-search" icon="el-icon-search"
@click="toggleSearch()" @click="toggleSearch()"
/> />
<el-button <el-button
size="mini" size="mini"
icon="el-icon-refresh" icon="el-icon-refresh"
@click="crud.refresh()" @click="crud.refresh()"
/> />
<el-popover <el-popover
placement="bottom-end" placement="bottom-end"
width="150" width="150"
trigger="click" trigger="click"
> >
<el-button <el-button
slot="reference" slot="reference"
size="mini" size="mini"
icon="el-icon-s-grid" icon="el-icon-s-grid"
> >
<i <i
class="fa fa-caret-down" class="fa fa-caret-down"
aria-hidden="true" aria-hidden="true"
/> />
</el-button> </el-button>
<el-checkbox <el-checkbox
v-model="allColumnsSelected" v-model="allColumnsSelected"
:indeterminate="allColumnsSelectedIndeterminate" :indeterminate="allColumnsSelectedIndeterminate"
@change="handleCheckAllChange" @change="handleCheckAllChange"
> >
全选 全选
</el-checkbox> </el-checkbox>
<el-checkbox <el-checkbox
v-for="item in tableColumns" v-for="item in tableColumns"
:key="item.property" :key="item.property"
v-model="item.visible" v-model="item.visible"
@change="handleCheckedTableColumnsChange(item)" @change="handleCheckedTableColumnsChange(item)"
> >
{{ item.label }} {{ item.label }}
</el-checkbox> </el-checkbox>
</el-popover> </el-popover>
<el-button <el-button
size="mini" size="mini"
type="warning" plain type="warning" plain
@click="postToTableConfig()" @click="postToTableConfig()"
><span>保存</span></el-button> ><span>保存</span></el-button>
</el-button-group> </el-button-group>
</div> </div>
</template> </template>
<script> <script>
import CRUD, {crud} from '@crud/crud' import CRUD, { crud } from '@crud/crud'
import crudTableConfig from '@/api/tableConfig' import crudTableConfig from '@/api/tableConfig'
import Sortable from 'sortablejs' import Sortable from 'sortablejs'
@ -131,28 +130,22 @@ export default {
props: { props: {
permission: { permission: {
type: Object, type: Object,
default: () => { default: () => { return {} }
return {}
}
}, },
ignoreColumns: { ignoreColumns: {
type: Array, type: Array,
default: () => { default: () => { return [] }
return []
}
}, },
tableKey: { tableKey: {
type: String, type: String,
default: () => { default: () => { return '' }
return ''
}
} }
}, },
data() { data() {
return { return {
hiddenColumns: [], hiddenColumns:[],
table_configs: [], table_configs:[],
table_configs_xs: [], table_configs_xs:[],
tableColumns: [], tableColumns: [],
allColumnsSelected: true, allColumnsSelected: true,
allColumnsSelectedIndeterminate: false, allColumnsSelectedIndeterminate: false,
@ -179,42 +172,62 @@ export default {
mounted() { mounted() {
// //
this.columnDrop(); this.columnDrop();
this.hiddenColumns = JSON.parse(sessionStorage.getItem(this.tableKey));
setTimeout(() => { setTimeout(() => {
// //
this.initcolumn(); this.initcolumn();
}, 600) }, 200)
setTimeout(() => {
//
this.showcolumn();
}, 1000)
}, },
methods: { methods: {
initcolumn() { initcolumn() {
this.updateTableColumns() this.updateTableColumns()
const table = this.crud.props.table const strHidden=sessionStorage.getItem(this.tableKey)
this.table_configs_xs.forEach((column, index) => { this.hiddenColumns= JSON.parse(strHidden);
const vm = table.$children.find(e => e.label === column.label) if(this.hiddenColumns.length>0){
const columnConfig = vm.columnConfig console.log("------移除---------------")
vm.owner.store.commit('removeColumn', columnConfig, null) const table = this.crud.props.table
}) this.table_configs_xs.forEach((column,index) => {
this.ignoreNextTableColumnsChange = false const vm = table.$children.find(e => e.label === column.label)
const columnConfig = vm.columnConfig
console.log(columnConfig)
vm.owner.store.commit('removeColumn', columnConfig, null)
})
this.ignoreNextTableColumnsChange = false
console.log("--------移除完成-------------")
setTimeout(() => {
//
this.showcolumn();
}, 200)
}
//vm.owner.store.commit('insertColumn', columnConfig, newIndex+myindex + 1 , null)
}, },
showcolumn() { showcolumn() {
console.log("------显示列------")
const strHidden=sessionStorage.getItem(this.tableKey)
this.hiddenColumns= JSON.parse(strHidden);
const table = this.crud.props.table const table = this.crud.props.table
this.hiddenColumns.forEach((column, index) => { this.hiddenColumns.forEach((column,index) => {
const vm = table.$children.find(e => e.prop === column.property) const vm = table.$children.find(e => e.prop === column.property)
const columnConfig = vm.columnConfig const columnConfig = vm.columnConfig
if (column.visible) { console.log(columnConfig.label)
columnConfig.width = column.width if(column.visible){
columnConfig.visible = column.visible columnConfig.width=column.width
vm.owner.store.commit('insertColumn', columnConfig, index + 1, null) columnConfig.visible=column.visible
vm.owner.store.commit('insertColumn', columnConfig, index+1 , null)
} }
}) })
this.updateTableColumns(); console.log("------显示列完成------")
this. updateTableColumns();
}, },
// //
columnDrop() { columnDrop() {
@ -224,49 +237,51 @@ export default {
delay: 0, delay: 0,
onEnd: evt => { onEnd: evt => {
// label // label
this.ColumnsDrop(evt.item.innerText, evt.newIndex) this.ColumnsDrop(evt.item.innerText,evt.newIndex)
} }
}) })
}, },
// //
ColumnsDrop(oldText, newIndex) { ColumnsDrop(oldText,newIndex) {
const table = this.crud.props.table const table = this.crud.props.table
let myindex = -1 // let myindex = -1 //
let oldIndex1 = 0 let oldIndex1 = 0
let step = -1 let step = -1
let count = 0 let count = 0
// //
this.tableColumns.some((column, index) => { this.tableColumns.some((column,index) => {
if (column.visible) { if(column.visible) {
count++ count++
} }
}) })
// //
this.tableColumns.some((column, index) => { this.tableColumns.some((column,index) => {
if (column.label === oldText) { if(column.label === oldText) {
oldIndex1 = index oldIndex1 = index
return true return true
} else { }else{
// //
if (step > index) { if(step>index){
myindex++ myindex++
} }
} }
step++ step++
}) })
if (myindex === -1) { if (myindex === -1 ) {
myindex = 0 myindex = 0
} }
let item = this.tableColumns[oldIndex1] let item= this.tableColumns[oldIndex1]
const vm = table.$children.find(e => e.prop === item.property) const vm = table.$children.find(e => e.prop === item.property)
const columnConfig = vm.columnConfig const columnConfig = vm.columnConfig
if (oldIndex1 < newIndex) { // /*this.tableColumns.splice(oldIndex1-1, 1)
vm.owner.store.commit('insertColumn', columnConfig, newIndex + myindex, null) this.tableColumns.splice(myindex-1, 0, item)*/
if(oldIndex1 <newIndex){ //
vm.owner.store.commit('insertColumn', columnConfig, newIndex+myindex , null)
vm.owner.store.commit('removeColumn', columnConfig, null) vm.owner.store.commit('removeColumn', columnConfig, null)
} else { // }else { //
vm.owner.store.commit('removeColumn', columnConfig, null) vm.owner.store.commit('removeColumn', columnConfig, null)
vm.owner.store.commit('insertColumn', columnConfig, newIndex + myindex, null) vm.owner.store.commit('insertColumn', columnConfig, newIndex+myindex , null)
} }
// //
this.ignoreNextTableColumnsChange = false this.ignoreNextTableColumnsChange = false
@ -290,6 +305,7 @@ export default {
const fullTableColumns = table.$children.map(e => e.columnConfig).filter(columnFilter) const fullTableColumns = table.$children.map(e => e.columnConfig).filter(columnFilter)
cols = sortWithRef(fullTableColumns, refCols) cols = sortWithRef(fullTableColumns, refCols)
cols.forEach(config => { cols.forEach(config => {
const column = { const column = {
property: config.property, property: config.property,
label: config.label, label: config.label,
@ -336,7 +352,7 @@ export default {
}) })
if (selectedCount === 0) { if (selectedCount === 0) {
this.crud.notify('请至少选择一列', CRUD.NOTIFICATION_TYPE.WARNING) this.crud.notify('请至少选择一列', CRUD.NOTIFICATION_TYPE.WARNING)
this.$nextTick(function () { this.$nextTick(function() {
item.visible = true item.visible = true
}) })
return return
@ -344,9 +360,23 @@ export default {
this.allColumnsSelected = selectedCount === totalCount this.allColumnsSelected = selectedCount === totalCount
this.allColumnsSelectedIndeterminate = selectedCount !== totalCount && selectedCount !== 0 this.allColumnsSelectedIndeterminate = selectedCount !== totalCount && selectedCount !== 0
this.updateColumnVisible(item) this.updateColumnVisible(item)
/*const columns = []
this.tableColumns.forEach(column => {
if(column.visible==false){
columns.push(column.property)
}
console.log("-"+column.property+"--"+column.visible)
})
const post_table_config = {
value: JSON.stringify(columns),
tableType: this.tableKey
}
crudTableConfig.add(post_table_config)*/
//this.postToTableConfig();
}, },
postToTableConfig() { postToTableConfig(){
this.updateTableColumns(); this. updateTableColumns();
const columns = [] const columns = []
this.tableColumns.forEach(column => { this.tableColumns.forEach(column => {
const table_config = { const table_config = {
@ -362,11 +392,11 @@ export default {
tableType: this.tableKey tableType: this.tableKey
} }
this.crud.loading = true this.crud.loading=true
crudTableConfig.add(post_table_config).then(res => { crudTableConfig.add(post_table_config).then(res => {
setTimeout(() => { setTimeout(() => {
// //
this.crud.loading = false this.crud.loading=false
}, 500) }, 500)
}) })
@ -381,7 +411,7 @@ export default {
if (item.visible) { if (item.visible) {
// //
const columnIndex = this.tableColumns.indexOf(item) const columnIndex = this.tableColumns.indexOf(item)
vm.owner.store.commit('insertColumn', columnConfig, columnIndex + 1, null) vm.owner.store.commit('insertColumn', columnConfig, columnIndex+1, null)
} else { } else {
vm.owner.store.commit('removeColumn', columnConfig, null) vm.owner.store.commit('removeColumn', columnConfig, null)
} }
@ -401,11 +431,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.crud-opts .crud-opts-right { .crud-opts .crud-opts-right {
margin-left: auto; margin-left: auto;
} }
.crud-opts .crud-opts-right span { .crud-opts .crud-opts-right span {
float: left; float: left;
} }

View File

@ -0,0 +1,14 @@
<template>
<div>
222
</div>
</template>
<script>
import { Message } from "element-ui";
export default {
name: 'confirmSelectItem'
}
</script>

View File

@ -82,9 +82,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="时长" >
<el-input v-model="form.extendD2" type="number" style="width: 180px;"/>
</el-form-item>
<el-form-item label="长"> <el-form-item label="长">
<el-input v-model="form.length" type="number" style="width: 180px;"/> <el-input v-model="form.length" type="number" style="width: 180px;"/>
</el-form-item> </el-form-item>
@ -126,7 +123,8 @@
height="68vh" height="68vh"
@selection-change="crud.selectionChangeHandler"> @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column prop="xh" label="序号" type="index" width="50"/> <!-- <el-table-column prop="xh" label="序号" type="index" width="50"/>-->
<el-table-column prop="id" label="ID" width="50"/>
<el-table-column prop="code" label="sku" width="150"/> <el-table-column prop="code" label="sku" width="150"/>
<el-table-column prop="name" label="名称" width="150"/> <el-table-column prop="name" label="名称" width="150"/>
<el-table-column prop="goodType" label="存储库区" width="150"> <el-table-column prop="goodType" label="存储库区" width="150">
@ -137,7 +135,6 @@
{{ dict.label.item_unit[scope.row.unit] }} {{ dict.label.item_unit[scope.row.unit] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="extendD2" label="冷却时长"/>
<el-table-column prop="length" label="长"/> <el-table-column prop="length" label="长"/>
<el-table-column prop="width" label="宽"/> <el-table-column prop="width" label="宽"/>
<el-table-column prop="height" label="高"/> <el-table-column prop="height" label="高"/>

View File

@ -14,7 +14,7 @@
v-model="query.status" v-model="query.status"
clearable clearable
size="small" size="small"
placeholder="状态" placeholder="预占用"
class="filter-item" class="filter-item"
style="width: 100px" style="width: 100px"
@change="crud.toQuery" @change="crud.toQuery"
@ -85,7 +85,7 @@
slot="right" slot="right"
class="filter-item" class="filter-item"
type="primary" type="primary"
icon="el-icon-edit" icon="el-icon-check"
size="mini" size="mini"
v-show="true" v-show="true"
:loading="crud.delAllLoading" :loading="crud.delAllLoading"
@ -207,11 +207,11 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态"> <el-form-item label="预占用">
<el-select <el-select
v-model="form.status" v-model="form.status"
size="small" size="small"
placeholder="状态" placeholder="预占用"
class="filter-item" class="filter-item"
style="width: 370px" style="width: 370px"
> >
@ -282,7 +282,7 @@
<div>{{ scope.row.area.name }}</div> <div>{{ scope.row.area.name }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态"> <el-table-column prop="status" label="预占用">
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.use_status[scope.row.status] }} {{ dict.label.use_status[scope.row.status] }}
</template> </template>
@ -390,7 +390,7 @@ export default {
queryTypeOptions: [ queryTypeOptions: [
{key: 'code', display_name: '代码'}, {key: 'code', display_name: '代码'},
{key: 'name', display_name: '名称'}, {key: 'name', display_name: '名称'},
{key: 'status', display_name: '状态'}, {key: 'status', display_name: '预占用'},
{key: 'beatCode', display_name: '区域编码'}, {key: 'beatCode', display_name: '区域编码'},
{key: 'areaCode', display_name: '仓库'}, {key: 'areaCode', display_name: '仓库'},
{key: 'enabled', display_name: '启用'} {key: 'enabled', display_name: '启用'}

View File

@ -32,7 +32,7 @@
class="filter-item" class="filter-item"
type="primary" type="primary"
size="mini" size="mini"
icon="el-icon-document-add" icon="el-icon-check"
:disabled="crud.selections.length !== 1 || this.crud.selections[0].status!=='OPEN'" :disabled="crud.selections.length !== 1 || this.crud.selections[0].status!=='OPEN'"
@click="startAsn(crud.selections[0].id)" @click="startAsn(crud.selections[0].id)"
> >
@ -44,7 +44,7 @@
class="filter-item" class="filter-item"
type="primary" type="primary"
size="mini" size="mini"
icon="el-icon-document-add" icon="el-icon-check"
:disabled="crud.selections.length !== 1 || this.crud.selections[0].status!=='ACTIVE'" :disabled="crud.selections.length !== 1 || this.crud.selections[0].status!=='ACTIVE'"
@click="cancelAsn(crud.selections[0].id)" @click="cancelAsn(crud.selections[0].id)"
> >

View File

@ -73,6 +73,9 @@
<!--表单组件--> <!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px"> <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 ref="form" :model="form" :rules="rules" size="small" label-width="120px">
<el-form-item label="行号" prop="lineNo">
<el-input v-model="form.lineNo" style="width: 200px;" />
</el-form-item>
<el-form-item label="物料" prop="item" style="width: 200px"> <el-form-item label="物料" prop="item" style="width: 200px">
<el-select v-model="form.item" value-key="id" filterable placeholder="请选择物料" <el-select v-model="form.item" value-key="id" filterable placeholder="请选择物料"
style="width: 200px;"> style="width: 200px;">
@ -180,7 +183,7 @@ import pagination from '@crud/Pagination'
const defaultForm = { const defaultForm = {
id: null, id: null,
asn:null, asn:{id:null},
item: null, item: null,
stock: null, stock: null,
lineNo: null, lineNo: null,
@ -269,6 +272,7 @@ export default {
}else { }else {
this.asn = this.$route.query.asn this.asn = this.$route.query.asn
this.query.asnId = this.asn.id this.query.asnId = this.asn.id
defaultForm.asn.id = this.asn.id
this.asnFrom = this.asn this.asnFrom = this.asn
this.crud.toQuery() this.crud.toQuery()
} }

View File

@ -5,42 +5,38 @@
<div v-if="crud.props.searchToggle" type="flex"> <div v-if="crud.props.searchToggle" type="flex">
<!-- 搜索 --> <!-- 搜索 -->
<date-range-picker start-placeholder="" v-model="query.createTime" class="date-item" /> <date-range-picker start-placeholder="" v-model="query.createTime" class="date-item" />
<el-input
v-model="query.jobId"
clearable
placeholder="任务编号"
style="width: 140px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<el-input v-model="query.startSlotCode" clearable placeholder="起点位置" style="width: 120px;" <el-input v-model="query.startSlotCode" clearable placeholder="起点位置" style="width: 120px;"
class="filter-item" @keyup.enter.native="crud.toQuery"/> class="filter-item" @keyup.enter.native="crud.toQuery"/>
<el-input v-model="query.endSlotCode" clearable placeholder="终点位置" style="width: 120px;" <el-input v-model="query.endSlotCode" clearable placeholder="终点位置" style="width: 120px;"
class="filter-item" @keyup.enter.native="crud.toQuery"/> class="filter-item" @keyup.enter.native="crud.toQuery"/>
<el-input <el-input v-model="query.stockTypeCode" clearable placeholder="容器类型" style="width: 220px;"
v-model="query.id" class="filter-item" @keyup.enter.native="crud.toQuery"/>
clearable <el-select v-model="query.status" clearable multiple placeholder="任务状态" style="width: 180px;"
placeholder="任务序号" class="filter-item">
style="width: 140px;" <el-option
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" v-for="taskStatus in dict.task_status"
:key="taskStatus.id" :key="taskStatus.id"
:label="taskStatus.label" :label="taskStatus.label"
:value="taskStatus.value" :value="taskStatus.value"
/> />
</el-select> </el-select>
<el-select v-model="query.jobType" clearable placeholder="工作类型" style="width: 120px;" class="filter-item"> <el-select v-model="query.jobType" @change="crud.toQuery" clearable placeholder="工作类型" style="width: 120px;" class="filter-item">
<el-option <el-option
v-for="taskType in dict.task_type" v-for="taskType in dict.task_type"
:key="taskType.id" :key="taskType.id"
:label="taskType.label" :label="taskType.label"
:value="taskType.value" :value="taskType.value"
/> />
</el-select> </el-select>
<rrOperation :crud="crud"/> <rrOperation :crud="crud"/>
<!-- 重置-->
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">
</el-button>
</div>
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"/> <crudOperation :permission="permission" :tableKey="this.$options.name"/>
@ -60,20 +56,17 @@
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" <el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
:title="crud.status.title" width="500px"> :title="crud.status.title" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="容器编码" prop="stockCode"> <el-form-item label="任务编码" prop="jobId">
<el-input v-model="form.stockCode" style="width: 370px;"/> <el-input v-model="form.jobId" style="width: 190px;"/>
</el-form-item> </el-form-item>
<el-form-item label="容器类型" prop="stockTypeCode"> <el-form-item label="容器类型" prop="stockTypeCode">
<el-input v-model="form.stockTypeCode" style="width: 370px;"/> <el-input v-model="form.stockTypeCode" style="width: 190px;"/>
</el-form-item> </el-form-item>
<el-form-item label="起点位置" prop="startSlotCode"> <el-form-item label="起点位置" prop="startSlotCode">
<el-input v-model="form.startSlotCode" style="width: 370px;"/> <el-input v-model="form.startSlotCode" style="width: 190px;"/>
</el-form-item> </el-form-item>
<el-form-item label="终点位置" prop="endSlotCode"> <el-form-item label="终点位置" prop="endSlotCode">
<el-input v-model="form.endSlotCode" style="width: 370px;"/> <el-input v-model="form.endSlotCode" style="width: 190px;"/>
</el-form-item>
<el-form-item label="容器当前位置" prop="slotCode">
<el-input v-model="form.slotCode" style="width: 370px;"/>
</el-form-item> </el-form-item>
<el-form-item label="任务状态" prop="status"> <el-form-item label="任务状态" prop="status">
<el-select v-model="form.status" filterable placeholder="请选择"> <el-select v-model="form.status" filterable placeholder="请选择">
@ -86,10 +79,17 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务类型"> <el-form-item label="任务类型">
<el-input v-model="form.type" style="width: 370px;"/> <el-input v-model="form.type" style="width: 190px;"/>
</el-form-item> </el-form-item>
<el-form-item label="工作类型" prop="jobType"> <el-form-item label="工作类型" prop="jobType">
<el-input v-model="form.jobType" style="width: 370px;"/> <el-select v-model="form.jobType" filterable placeholder="请选择">
<el-option
v-for="item in dict.task_type"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -109,7 +109,8 @@
:default-sort="{prop: 'id', order: 'descending'}" :default-sort="{prop: 'id', order: 'descending'}"
@selection-change="crud.selectionChangeHandler"> @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column prop="id" label="任务序号"/> <el-table-column prop="id" label="任务ID"/>
<el-table-column prop="jobId" label="任务编码"/>
<el-table-column prop="stockTypeCode" width="170" label="容器类型"/> <el-table-column prop="stockTypeCode" width="170" label="容器类型"/>
<el-table-column prop="startSlotCode" label="起点位置" width="130"/> <el-table-column prop="startSlotCode" label="起点位置" width="130"/>
<el-table-column prop="endSlotCode" label="终点位置" width="130" sortable :formatter="formatter"/> <el-table-column prop="endSlotCode" label="终点位置" width="130" sortable :formatter="formatter"/>
@ -207,7 +208,7 @@ export default {
crudMethod: {...crudAgvTask}, crudMethod: {...crudAgvTask},
optShow: { optShow: {
add: false, add: false,
edit: false, edit: true,
del: false, del: false,
reset: false, reset: false,
download: true download: true
@ -228,9 +229,6 @@ export default {
missionStatus: '' missionStatus: ''
}, },
rules: { rules: {
stockCode: [
{required: true, message: '容器码不能为空', trigger: 'blur'}
],
stockTypeCode: [ stockTypeCode: [
{required: true, message: '容器类型不能为空', trigger: 'blur'} {required: true, message: '容器类型不能为空', trigger: 'blur'}
], ],
@ -240,17 +238,11 @@ export default {
endSlotCode: [ endSlotCode: [
{required: true, message: '终点位置不能为空', trigger: 'blur'} {required: true, message: '终点位置不能为空', trigger: 'blur'}
], ],
slotCode: [
{required: true, message: '容器当前位置不能为空', trigger: 'blur'}
],
status: [ status: [
{required: true, message: '任务状态不能为空', trigger: 'blur'} {required: true, message: '任务状态不能为空', trigger: 'blur'}
], ],
jobType: [ jobType: [
{required: true, message: '工作类型不能为空', trigger: 'blur'} {required: true, message: '工作类型不能为空', trigger: 'blur'}
],
boxCode: [
{required: true, message: '容器号不能为空', trigger: 'blur'}
] ]
}, },
queryTypeOptions: [ queryTypeOptions: [

View File

@ -271,7 +271,7 @@ export default {
optShow: { optShow: {
add: false, add: false,
edit: false, edit: false,
del: false, del: true,
reset: true, reset: true,
download: true download: true
}, },

View File

@ -10,14 +10,6 @@
class="filter-item" class="filter-item"
@keyup.enter.native="crud.toQuery" @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 <el-input
v-model="query.propC1" v-model="query.propC1"
@ -29,13 +21,38 @@
/> />
<el-input <el-input
v-model="query.stockName" v-model="query.pointCode"
clearable clearable
placeholder="容器号" placeholder="点位号"
style="width: 140px;" style="width: 140px;"
class="filter-item" class="filter-item"
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
/> />
<el-select v-model="query.areaCode" style="width: 120px;" clearable placeholder="区域"
class="filter-item" @change="crud.toQuery">
<el-option
v-for="area in areaList"
:key="area.id"
:label="area.name"
:value="area.code"
/>
</el-select>
<el-input
v-model="query.prodMtrl"
clearable
placeholder="成品物料码"
style="width: 120px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input
v-model="query.owner"
clearable
placeholder="货主"
style="width: 100px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<rrOperation :crud="crud" /> <rrOperation :crud="crud" />
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
@ -158,6 +175,9 @@
<div>{{ scope.row.itemKey.item.name }}</div> <div>{{ scope.row.itemKey.item.name }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="prodMtrl" label="成品物料码" />
<el-table-column prop="owner" label="货主" />
<el-table-column :show-overflow-tooltip="true" prop="propC1" label="批次号"> <el-table-column :show-overflow-tooltip="true" prop="propC1" label="批次号">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.itemKey.propC1 }}</div> <div>{{ scope.row.itemKey.propC1 }}</div>
@ -249,6 +269,7 @@ import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
import {queryPickTask} from "@/api/task"; import {queryPickTask} from "@/api/task";
import {getPoints} from "@/api/point"; import {getPoints} from "@/api/point";
import {getAres} from "@/api/area";
const defaultForm = { const defaultForm = {
id: null, id: null,
@ -256,6 +277,8 @@ const defaultForm = {
itemKey: { item: { id:null },propC7:null }, itemKey: { item: { id:null },propC7:null },
point: null, point: null,
stock: null, stock: null,
owner: null,
prodMtrl: null,
bigStockId: null, bigStockId: null,
quantity: null, quantity: null,
queuedQty: null, queuedQty: null,
@ -302,6 +325,7 @@ export default {
ButReplaceInvFlag: false, ButReplaceInvFlag: false,
points: [], points: [],
stocks: [], stocks: [],
areaList: [],
items: [], items: [],
permission: { permission: {
add: ['admin', 'inventory:add'], add: ['admin', 'inventory:add'],
@ -319,6 +343,7 @@ export default {
}, },
mounted() { mounted() {
this.getPoints() this.getPoints()
this.getArea()
}, },
methods: { methods: {
// false // false
@ -335,6 +360,16 @@ export default {
}) })
}) })
}, },
getArea() {
getAres({size: 50}).then(res => {
this.areaList = res.content.map(function (obj) {
if (obj.hasChildren) {
obj.children = null
}
return obj
})
})
},
getPoints() { getPoints() {
getPoints().then(res => { getPoints().then(res => {
this.points= res.map(function(obj) { this.points= res.map(function(obj) {

View File

@ -25,9 +25,10 @@
size="small" size="small"
placeholder="订单状态" placeholder="订单状态"
class="filter-item" class="filter-item"
@change="crud.toQuery"
> >
<el-option <el-option
v-for="item in dict.asn_status" v-for="item in dict.pick_status"
:key="item.id" :key="item.id"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
@ -40,7 +41,7 @@
slot="right" slot="right"
class="filter-item" class="filter-item"
type="success" type="success"
icon="el-icon-edit" icon="el-icon-check"
size="mini" size="mini"
:disabled="crud.selections.length !== 1 || this.crud.selections[0].status !=='OPEN'" :disabled="crud.selections.length !== 1 || this.crud.selections[0].status !=='OPEN'"
@click="allocate(crud.selections)" @click="allocate(crud.selections)"
@ -51,7 +52,7 @@
slot="right" slot="right"
class="filter-item" class="filter-item"
type="success" type="success"
icon="el-icon-edit" icon="el-icon-check"
size="mini" size="mini"
:loading="crud.delAllLoading" :loading="crud.delAllLoading"
:disabled="crud.selections.length !== 1 || this.crud.selections[0].status !=='ALLOCATE'" :disabled="crud.selections.length !== 1 || this.crud.selections[0].status !=='ALLOCATE'"

View File

@ -61,12 +61,24 @@
> >
保存 保存
</el-button> </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>
<el-button <el-button
v-permission="permission.allocate" v-permission="permission.allocate"
slot="right" slot="right"
class="filter-item" class="filter-item"
type="success" type="success"
icon="el-icon-edit" icon="el-icon-check"
size="mini" size="mini"
:disabled="crud.selections.length !== 1 || this.crud.selections[0].orderQty<=this.crud.selections[0].allocatedQty" :disabled="crud.selections.length !== 1 || this.crud.selections[0].orderQty<=this.crud.selections[0].allocatedQty"
@click="allocate(crud.selections)" @click="allocate(crud.selections)"
@ -79,7 +91,7 @@
slot="right" slot="right"
class="filter-item" class="filter-item"
type="success" type="success"
icon="el-icon-edit" icon="el-icon-check"
size="mini" size="mini"
:loading="crud.delAllLoading" :loading="crud.delAllLoading"
:disabled="show_cancelfp" :disabled="show_cancelfp"
@ -121,6 +133,7 @@
type="index" type="index"
width="50" width="50"
/> />
<el-table-column prop="lineNo" width="120" label="行号" />
<el-table-column prop="pick.relatedBill1" width="120" label="系统单号" /> <el-table-column prop="pick.relatedBill1" width="120" label="系统单号" />
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料编码"> <el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料编码">
<template slot-scope="scope"> <template slot-scope="scope">
@ -165,7 +178,6 @@
</el-table> </el-table>
<!--拣货确认界面--> <!--拣货确认界面-->
<PickTask ref="pickTask" /> <PickTask ref="pickTask" />
<!--表单组件--> <!--表单组件-->
<el-dialog <el-dialog
:close-on-click-modal="false" :close-on-click-modal="false"
@ -175,6 +187,9 @@
width="580px" width="580px"
> >
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="120px"> <el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="120px">
<el-form-item v-if="false" label="出库单ID">
<el-input v-model="form.pick.id" style="width: 135px;" />
</el-form-item>
<el-form-item label="明细行号"> <el-form-item label="明细行号">
<el-input v-model="form.lineNo" style="width: 135px;" /> <el-input v-model="form.lineNo" style="width: 135px;" />
</el-form-item> </el-form-item>
@ -262,7 +277,7 @@ import {getBillType} from "@/api/billType";
const defaultForm = { const defaultForm = {
id: null, id: null,
pick: { relatedBill1: null }, pick: { relatedBill1: null,id: null },
item: null, item: null,
lineNo: null, lineNo: null,
po: null, po: null,
@ -303,7 +318,7 @@ export default {
sort: 'id,desc', sort: 'id,desc',
crudMethod: { ...crudPickDetail }, crudMethod: { ...crudPickDetail },
optShow: { optShow: {
add: true, add: false,
edit: false, edit: false,
del: false, del: false,
reset: false, reset: false,
@ -314,6 +329,7 @@ export default {
}, },
data() { data() {
return { return {
tjwlFromFlag: false,
show_jh: true, show_jh: true,
show_cancelfp: true, show_cancelfp: true,
pickList: [], pickList: [],
@ -481,7 +497,7 @@ export default {
this.crud.notify("找不到出库单",400) this.crud.notify("找不到出库单",400)
}else { }else {
this.query.pickId = this.pick.id this.query.pickId = this.pick.id
this.form.pick = this.pick defaultForm.pick.id = this.pick.id
this.crud.toQuery() this.crud.toQuery()
} }
}, },