add:增加倒扣回传
This commit is contained in:
259
nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue
Normal file
259
nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue
Normal file
@@ -0,0 +1,259 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<el-form :inline="true" label-width="90px" label-suffix=":" size="mini">
|
||||
<el-form-item label="单据编号">
|
||||
<el-input v-model="query.billno" clearable placeholder="请输入单据编号" @keyup.enter.native="crud.toQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="机构编号">
|
||||
<el-input v-model="query.orgno" clearable placeholder="请输入机构编号" @keyup.enter.native="crud.toQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="请求ID">
|
||||
<el-input v-model="query.requestId" clearable placeholder="请输入请求ID" @keyup.enter.native="crud.toQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="回传状态">
|
||||
<el-select v-model="query.status" clearable placeholder="全部" @change="crud.toQuery">
|
||||
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker
|
||||
v-model="query.dateRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
range-separator="至"
|
||||
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
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
@click="upload"
|
||||
>
|
||||
回传
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<el-table ref="table" 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 v-permission="['admin','receiveOutReturn:edit','receiveOutReturn:del']" label="操作" width="115" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation :data="scope.row" :permission="permission" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="billno" label="单据编号" min-width="140">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary" @click="toView(scope.row)">{{ scope.row.billno }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orgno" label="机构编号" min-width="120" />
|
||||
<el-table-column prop="biztype" label="业务类型" min-width="100" />
|
||||
<el-table-column prop="invscheme" label="库存方案" min-width="100" />
|
||||
<el-table-column prop="transtype" label="交易类型" min-width="100" />
|
||||
<el-table-column prop="biztime" label="业务时间" min-width="160" />
|
||||
<el-table-column prop="requsername" label="请求人" min-width="100" />
|
||||
<el-table-column prop="status" label="回传状态" width="100" :formatter="statusFormat" />
|
||||
<el-table-column prop="remark" label="回传备注" min-width="180" show-overflow-tooltip />
|
||||
<el-table-column prop="requestId" label="请求ID" min-width="140" />
|
||||
<el-table-column prop="createdBy" label="创建人" min-width="100" />
|
||||
<el-table-column prop="createTime" label="创建时间" min-width="160" />
|
||||
</el-table>
|
||||
<pagination />
|
||||
</div>
|
||||
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="1000px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px" label-suffix=":" style="border: 1px solid #cfe0df;margin-top: 10px;padding: 10px;">
|
||||
<el-row>
|
||||
<el-col :span="12"><el-form-item label="机构编号" prop="orgno"><el-input v-model.trim="form.orgno" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="单据编号" prop="billno"><el-input v-model.trim="form.billno" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="业务类型" prop="biztype"><el-input v-model.trim="form.biztype" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="库存方案" prop="invscheme"><el-input v-model.trim="form.invscheme" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="交易类型" prop="transtype"><el-input v-model.trim="form.transtype" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="业务时间" prop="biztime"><el-date-picker v-model="form.biztime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="部门编号" prop="deptno"><el-input v-model.trim="form.deptno" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="请求人编号" prop="requserno"><el-input v-model.trim="form.requserno" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="请求人姓名" prop="requsername"><el-input v-model.trim="form.requsername" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="操作类型" prop="cztype"><el-input v-model.trim="form.cztype" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="请求ID" prop="requestId"><el-input v-model.trim="form.requestId" style="width: 300px;" /></el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="回传状态" prop="status"><el-select v-model="form.status" style="width: 300px;"><el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" /></el-select></el-form-item></el-col>
|
||||
<el-col :span="24"><el-form-item label="备注" prop="comment"><el-input v-model.trim="form.comment" type="textarea" :rows="2" style="width: 740px;" /></el-form-item></el-col>
|
||||
<el-col :span="24"><el-form-item label="回传备注" prop="remark"><el-input v-model.trim="form.remark" type="textarea" :rows="2" style="width: 740px;" /></el-form-item></el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer"><el-button type="text" @click="crud.cancelCU">取消</el-button><el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button></div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :visible.sync="viewShow" title="倒扣回传详情" width="1200px" :close-on-click-modal="false">
|
||||
<el-descriptions :column="2" border size="mini">
|
||||
<el-descriptions-item label="机构编号">{{ currentRow.orgno }}</el-descriptions-item>
|
||||
<el-descriptions-item label="单据编号">{{ currentRow.billno }}</el-descriptions-item>
|
||||
<el-descriptions-item label="业务类型">{{ currentRow.biztype }}</el-descriptions-item>
|
||||
<el-descriptions-item label="库存方案">{{ currentRow.invscheme }}</el-descriptions-item>
|
||||
<el-descriptions-item label="交易类型">{{ currentRow.transtype }}</el-descriptions-item>
|
||||
<el-descriptions-item label="业务时间">{{ currentRow.biztime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="请求人编号">{{ currentRow.requserno }}</el-descriptions-item>
|
||||
<el-descriptions-item label="请求人姓名">{{ currentRow.requsername }}</el-descriptions-item>
|
||||
<el-descriptions-item label="回传状态">{{ statusLabel(currentRow.status) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="请求ID">{{ currentRow.requestId }}</el-descriptions-item>
|
||||
<el-descriptions-item label="创建人">{{ currentRow.createdBy }}</el-descriptions-item>
|
||||
<el-descriptions-item label="创建时间">{{ currentRow.createTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">{{ currentRow.comment }}</el-descriptions-item>
|
||||
<el-descriptions-item label="回传备注" :span="2">{{ currentRow.remark }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-table :data="currentRow.details || []" size="mini" style="width: 100%; margin-top: 12px;">
|
||||
<el-table-column prop="seq" label="行序号" width="80" />
|
||||
<el-table-column prop="materialno" label="物料编号" min-width="120" />
|
||||
<el-table-column prop="unitno" label="单位编号" min-width="100" />
|
||||
<el-table-column prop="qty" label="数量" min-width="100" />
|
||||
<el-table-column prop="baseqty" label="基础数量" min-width="100" />
|
||||
<el-table-column prop="warehouseno" label="仓库编号" min-width="120" />
|
||||
<el-table-column prop="srcbillno" label="源单据编号" min-width="140" />
|
||||
<el-table-column prop="lotnumber" label="批号" min-width="100" />
|
||||
<el-table-column prop="tracknumber" label="追踪号" min-width="120" />
|
||||
</el-table>
|
||||
<div slot="footer" class="dialog-footer"><el-button type="primary" @click="viewShow = false">关闭</el-button></div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudReceiveOutReturn from './receiveOutReturn'
|
||||
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation.vue'
|
||||
import crudOperation from '@crud/CRUD.operation.vue'
|
||||
import udOperation from '@crud/UD.operation.vue'
|
||||
import pagination from '@crud/Pagination.vue'
|
||||
import { get } from './receiveOutReturn'
|
||||
import { uploadReceiveOut } from '@/views/wms/st/inAndOutReturn/inandoutreturn'
|
||||
|
||||
const createDefaultForm = () => ({
|
||||
id: null,
|
||||
orgno: '',
|
||||
billno: '',
|
||||
biztype: '',
|
||||
invscheme: '',
|
||||
transtype: '',
|
||||
biztime: '',
|
||||
deptno: '',
|
||||
requserno: '',
|
||||
requsername: '',
|
||||
comment: '',
|
||||
cztype: '',
|
||||
createTime: '',
|
||||
remark: '',
|
||||
status: '0',
|
||||
requestId: '',
|
||||
createdBy: '',
|
||||
updatedTime: '',
|
||||
details: []
|
||||
})
|
||||
|
||||
export default {
|
||||
name: 'ReceiveOutReturn',
|
||||
components: { crudOperation, rrOperation, udOperation, pagination },
|
||||
mixins: [presenter(), header(), form(createDefaultForm()), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '倒扣回传',
|
||||
url: 'api/receiveOutReturn',
|
||||
idField: 'id',
|
||||
sort: 'create_time,desc',
|
||||
crudMethod: { ...crudReceiveOutReturn },
|
||||
optShow: { add: true, reset: true }
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
viewShow: false,
|
||||
currentRow: {},
|
||||
permission: {
|
||||
add: ['admin', 'receiveOutReturn:add'],
|
||||
edit: ['admin', 'receiveOutReturn:edit'],
|
||||
del: ['admin', 'receiveOutReturn:del']
|
||||
},
|
||||
statusOptions: [
|
||||
{ value: '0', label: '待回传' },
|
||||
{ value: '1', label: '回传成功' },
|
||||
{ value: '2', label: '回传失败' }
|
||||
],
|
||||
rules: {
|
||||
orgno: [{ required: true, message: '请输入机构编号', trigger: 'blur' }],
|
||||
billno: [{ required: true, message: '请输入单据编号', trigger: 'blur' }],
|
||||
status: [{ required: true, message: '请选择回传状态', trigger: 'change' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
if (this.query.dateRange) {
|
||||
this.query.beginTime = this.query.dateRange[0]
|
||||
this.query.endTime = this.query.dateRange[1] || this.query.dateRange[0]
|
||||
} else {
|
||||
this.query.beginTime = ''
|
||||
this.query.endTime = ''
|
||||
}
|
||||
},
|
||||
upload() {
|
||||
const rows = this.crud.selections || []
|
||||
if (rows.length < 1) {
|
||||
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
if (rows.length > 1) {
|
||||
this.crud.notify('只能选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
const row = rows[0]
|
||||
const doUpload = () => {
|
||||
this.fullscreenLoading = true
|
||||
uploadReceiveOut({ id: row.id }).then(() => {
|
||||
this.crud.notify('单据回传成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).finally(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
}
|
||||
if (String(row.status) === '1') {
|
||||
this.$confirm('该单据已回传成功,是否继续回传?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(doUpload).catch(() => {
|
||||
this.$message({ type: 'info', message: '已取消回传' })
|
||||
})
|
||||
return
|
||||
}
|
||||
doUpload()
|
||||
},
|
||||
statusLabel(status) {
|
||||
const target = this.statusOptions.find(item => String(item.value) === String(status))
|
||||
return target ? target.label : status
|
||||
},
|
||||
statusFormat(row) {
|
||||
return this.statusLabel(row.status)
|
||||
},
|
||||
detailStatusFormat(row) {
|
||||
return this.statusLabel(row.returnStatus)
|
||||
},
|
||||
toView(row) {
|
||||
get(row.id).then(res => {
|
||||
this.currentRow = res.data
|
||||
this.viewShow = true
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
@@ -0,0 +1,34 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/receiveOutReturn',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/receiveOutReturn',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/receiveOutReturn',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function get(id) {
|
||||
return request({
|
||||
url: 'api/receiveOutReturn/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, get }
|
||||
@@ -32,4 +32,12 @@ export function upload(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, upload }
|
||||
export function uploadReceiveOut(data) {
|
||||
return request({
|
||||
url: '/api/receiveOutReturn/upload',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, upload, uploadReceiveOut }
|
||||
|
||||
Reference in New Issue
Block a user