新增管制卷移库记录管理模块,支持查询、标记完成、重新移库操作 新增成品入库管件信息为空预警定时任务 新增前端管制卷移库记录页面 子卷定级接口添加处理结果字段获取和保存到数据库 外箱标签打印改为| 为分隔符,适配公司名称中带,情况
255 lines
8.8 KiB
Vue
255 lines
8.8 KiB
Vue
<template>
|
||
<div class="app-container">
|
||
<!--工具栏-->
|
||
<div class="head-container">
|
||
<div v-if="crud.props.searchToggle">
|
||
<!-- 搜索 -->
|
||
<el-form
|
||
:inline="true"
|
||
class="demo-form-inline"
|
||
label-position="right"
|
||
label-width="80px"
|
||
label-suffix=":"
|
||
>
|
||
<el-form-item label="子卷号">
|
||
<el-input
|
||
v-model="query.container_name"
|
||
size="mini"
|
||
clearable
|
||
placeholder="子卷号"
|
||
@keyup.enter.native="crud.toQuery"
|
||
/>
|
||
</el-form-item>
|
||
<el-form-item label="状态">
|
||
<el-select
|
||
v-model="query.status"
|
||
clearable
|
||
size="mini"
|
||
placeholder="全部"
|
||
class="filter-item"
|
||
@change="crud.toQuery"
|
||
>
|
||
<el-option label="已完成" value="1" />
|
||
<el-option label="未完成" value="0" />
|
||
<el-option label="移库异常" value="9" />
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="移库单据号" label-width="100px">
|
||
<el-input
|
||
v-model="query.move_bill_code"
|
||
size="mini"
|
||
clearable
|
||
placeholder="移库单据号"
|
||
@keyup.enter.native="crud.toQuery"
|
||
/>
|
||
</el-form-item>
|
||
<el-form-item label="创建时间">
|
||
<el-date-picker
|
||
v-model="query.createTime"
|
||
type="daterange"
|
||
value-format="yyyy-MM-dd HH:mm:ss"
|
||
start-placeholder="开始日期"
|
||
end-placeholder="结束日期"
|
||
:default-time="['00:00:00', '23:59:59']"
|
||
@change="crud.toQuery"
|
||
/>
|
||
</el-form-item>
|
||
<rrOperation />
|
||
</el-form>
|
||
</div>
|
||
<!--操作栏-->
|
||
<crudOperation :permission="permission" />
|
||
<el-button
|
||
type="success"
|
||
icon="el-icon-check"
|
||
size="mini"
|
||
:disabled="!canOperate"
|
||
@click="handleMarkComplete(crud.selections[0])"
|
||
>
|
||
标记完成
|
||
</el-button>
|
||
<el-button
|
||
type="warning"
|
||
icon="el-icon-refresh"
|
||
size="mini"
|
||
:disabled="!canOperate"
|
||
@click="handleRetryMove(crud.selections[0])"
|
||
>
|
||
重新移库
|
||
</el-button>
|
||
<div style="margin-bottom: 10px"></div>
|
||
<!--表格渲染-->
|
||
<el-table
|
||
ref="table"
|
||
v-loading="crud.loading"
|
||
size="mini"
|
||
:data="crud.data"
|
||
highlight-current-row
|
||
style="width: 100%;"
|
||
@selection-change="crud.selectionChangeHandler"
|
||
>
|
||
<el-table-column type="selection" width="55" />
|
||
<el-table-column show-overflow-tooltip label="移库单据号" width="150">
|
||
<template slot-scope="scope">
|
||
<span style="color: #f89b0c; font-weight: bold;">{{ scope.row.move_bill_code }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column show-overflow-tooltip prop="container_name" label="子卷号" width="180" />
|
||
<el-table-column show-overflow-tooltip prop="status" label="状态" width="100">
|
||
<template slot-scope="scope">
|
||
<el-tag v-if="scope.row.status === '1'" type="success" size="mini">已完成</el-tag>
|
||
<el-tag v-else-if="scope.row.status === '0'" type="info" size="mini">未完成</el-tag>
|
||
<el-tag v-else-if="scope.row.status === '9'" type="danger" size="mini">移库异常</el-tag>
|
||
<span v-else>{{ scope.row.status }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column show-overflow-tooltip prop="old_level" label="旧级别" width="80" :render-header="renderLevelHeader" />
|
||
<el-table-column show-overflow-tooltip prop="old_result" label="旧处理结果" width="120" />
|
||
<el-table-column show-overflow-tooltip prop="new_level" label="新级别" width="80" :render-header="renderLevelHeader" />
|
||
<el-table-column show-overflow-tooltip prop="new_result" label="新处理结果" width="120" />
|
||
<el-table-column show-overflow-tooltip prop="result_message" label="操作结果" min-width="400" />
|
||
<el-table-column show-overflow-tooltip prop="create_optname" label="创建人" width="100" />
|
||
<el-table-column show-overflow-tooltip prop="create_time" label="创建时间" width="160" />
|
||
<el-table-column show-overflow-tooltip prop="update_optname" label="修改人" width="100" />
|
||
<el-table-column show-overflow-tooltip prop="update_time" label="修改时间" width="160" />
|
||
</el-table>
|
||
<!--分页组件-->
|
||
<pagination />
|
||
</div>
|
||
<!--移库单详情弹窗(复用moveStor的AddDialog)-->
|
||
<AddDialog @AddChanged="crud.toQuery" />
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import levelchangedtl from '@/views/wms/st/levelchange/levelchangedtl'
|
||
import CRUD, { crud, header, presenter } from '@crud/crud'
|
||
import rrOperation from '@crud/RR.operation'
|
||
import crudOperation from '@crud/CRUD.operation'
|
||
import pagination from '@crud/Pagination'
|
||
import request from '@/utils/request'
|
||
import AddDialog from '@/views/wms/st/inStor/moveStor/AddDialog'
|
||
|
||
export default {
|
||
name: 'Levelchangedtl',
|
||
components: { crudOperation, rrOperation, pagination, AddDialog },
|
||
cruds() {
|
||
return CRUD({
|
||
title: '管制卷移库记录',
|
||
url: '/api/levelchangedtl',
|
||
idField: 'id',
|
||
sort: 'create_time,desc',
|
||
crudMethod: { ...levelchangedtl },
|
||
optShow: {
|
||
add: false,
|
||
edit: false,
|
||
del: false,
|
||
download: false,
|
||
reset: true
|
||
},
|
||
queryOnPresenterCreated: false
|
||
})
|
||
},
|
||
mixins: [presenter(), header(), crud()],
|
||
data() {
|
||
return {
|
||
permission: {
|
||
add: ['admin', 'levelchangedtl:add'],
|
||
edit: ['admin', 'levelchangedtl:edit'],
|
||
del: ['admin', 'levelchangedtl:del']
|
||
}
|
||
}
|
||
},
|
||
computed: {
|
||
canOperate() {
|
||
if (this.crud.selections.length === 0) return false
|
||
const row = this.crud.selections[0]
|
||
return row.status === '0' || row.status === '9'
|
||
}
|
||
},
|
||
created() {
|
||
this.initQuery()
|
||
},
|
||
methods: {
|
||
// 自定义级别列表头(含问号提示)
|
||
renderLevelHeader(h, { column }) {
|
||
return h('span', [
|
||
h('span', column.label || '级别'),
|
||
h('el-tooltip', {
|
||
props: {
|
||
effect: 'dark',
|
||
placement: 'top',
|
||
content: '级别对应关系说明:\n 6级 → 管制、\n 5级→报废、\n 4级→改切 、\n 3级→A- 、\n 2级→A 、\n 1级→A+'
|
||
}
|
||
}, [
|
||
h('i', {
|
||
class: 'el-icon-question',
|
||
style: { marginLeft: '4px', color: '#909399', cursor: 'pointer', fontSize: '14px' }
|
||
})
|
||
])
|
||
])
|
||
},
|
||
handleMarkComplete(row) {
|
||
this.$confirm('确认将子卷 ' + row.container_name + ' 标记为完成吗?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
levelchangedtl.markComplete(row).then(res => {
|
||
this.crud.notify('标记完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||
this.crud.toQuery()
|
||
})
|
||
}).catch(() => {})
|
||
},
|
||
handleRetryMove(row) {
|
||
this.$confirm('确认对子卷 ' + row.container_name + ' 重新执行移库操作吗?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
levelchangedtl.retryMove(row).then(res => {
|
||
this.crud.notify('重新移库完成', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||
this.crud.toQuery()
|
||
})
|
||
}).catch(() => {
|
||
this.crud.toQuery()
|
||
})
|
||
},
|
||
/* 搜索框创建时间默认最近一周 */
|
||
initQuery() {
|
||
const end = new Date()
|
||
const start = new Date()
|
||
const endYear = end.getFullYear()
|
||
var endMonth = end.getMonth() + 1
|
||
if (end.getMonth() + 1 < 10) {
|
||
endMonth = '0' + endMonth.toString()
|
||
}
|
||
var endDay = end.getDate()
|
||
if (end.getDate() < 10) {
|
||
endDay = '0' + endDay.toString()
|
||
}
|
||
const endDate = endYear + '-' + endMonth + '-' + endDay + ' 23:59:59'
|
||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||
const startYear = start.getFullYear()
|
||
var startMonth = start.getMonth() + 1
|
||
if (start.getMonth() + 1 < 10) {
|
||
startMonth = '0' + startMonth.toString()
|
||
}
|
||
var startDay = start.getDate()
|
||
if (start.getDate() < 10) {
|
||
startDay = '0' + startDay.toString()
|
||
}
|
||
const startDate = startYear + '-' + startMonth + '-' + startDay + ' 00:00:00'
|
||
this.$set(this.query, 'createTime', [startDate, endDate])
|
||
this.crud.toQuery()
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||
::v-deep .el-dialog__body {
|
||
padding-top: 10px;
|
||
}
|
||
</style>
|