rev:修改单据出库校验

This commit is contained in:
zhangzq
2024-12-04 22:40:59 +08:00
parent ae414cfe0c
commit 2cc254ba28
7 changed files with 246 additions and 7 deletions

View File

@@ -28,6 +28,23 @@
/>
</el-select>
</el-form-item>
<el-form-item label="单据状态">
<el-select
v-model="query.status"
size="mini"
placeholder="单据状态"
class="filter-item"
clearable
@change="crud.toQuery()"
>
<el-option
v-for="item in statusEnum.FORM_STATUS"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<template v-for="(col,index) in cols" v-if="hideShowDialog">
<el-form-item label="col.lable">
<label slot="label">{{ col.lable }}:</label>
@@ -52,6 +69,61 @@
</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="600px"
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="表单类型" prop="form_type">
<el-input v-model="form.form_type" style="width: 150px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="实例" prop="proc_inst_id">
<el-input v-model="form.proc_inst_id" style="width: 150px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="源单id" prop="source_form_id">
<el-input v-model="form.source_form_id" style="width: 150px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="源单类型" prop="source_form_type">
<el-input v-model="form.source_form_type" style="width: 150px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="批号" prop="pcsn">
<el-input v-model="form.pcsn" style="width: 150px;" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="互传数据" prop="form_data">
<el-input v-model="form.form_data" type="textarea" :formatter="jsonFormat" style="width: 430px;" />
</el-form-item>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" style="width: 430px;" />
</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-table
ref="table"
@@ -161,6 +233,7 @@ export default {
dicts: ['base_data'],
components: { pagination, crudOperation, rrOperation, udOperation, ViewDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
statusEnums: [ 'FORM_STATUS' ],
cruds() {
return CRUD({
title: '表单数据',
@@ -227,6 +300,23 @@ export default {
}
return false
},
[CRUD.HOOK.beforeToEdit]() {
this.form.form_data = JSON.stringify(this.form.form_data)
return true
},
[CRUD.HOOK.beforeSubmit]() {
if (this.form.form_data) {
this.form.form_data = JSON.parse(this.form.form_data)
}
return true
},
jsonFormat(row, index) {
debugger
if (row.form_data != null) {
return JSON.stringify(row.form_data)
}
return ''
},
getFromTypes() {
crudFormData.getParentFormTypesByDesc('回传').then((res) => { // 获取分类名称,查询根据分类编码查找对应分支树
this.fromTypes = res

View File

@@ -28,6 +28,23 @@
/>
</el-select>
</el-form-item>
<el-form-item label="单据状态">
<el-select
v-model="query.status"
size="mini"
placeholder="单据状态"
class="filter-item"
clearable
@change="crud.toQuery()"
>
<el-option
v-for="item in statusEnum.FORM_STATUS"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<template v-for="(col,index) in cols" v-if="hideShowDialog">
<el-form-item label="col.lable">
<label slot="label">{{ col.lable }}:</label>
@@ -181,6 +198,7 @@ export default {
dicts: ['base_data'],
components: { pagination, crudOperation, rrOperation, udOperation, ViewDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
statusEnums: [ 'FORM_STATUS' ],
cruds() {
return CRUD({
title: '表单数据',

View File

@@ -440,6 +440,7 @@ export default {
this.form.source_form_type = mst.form_type
this.form.source_form_code = mst.code
this.form.source_form_id = mst.id
this.form.product_area = mst.form_data.product_area
const mst_form_data = mst.form_data
if (data['item'] == null || data['item'].length == 0) {
rows.push(mst)

View File

@@ -9,11 +9,26 @@
label-width="80px"
label-suffix=":"
>
<el-form-item label="所属仓库">
<el-select
v-model="query.stor_code"
clearable
class="filter-item"
placeholder="所属仓库"
@change="crud.toQuery"
>
<el-option
v-for="item in tableEnum.st_ivt_bsrealstorattr"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="仓位信息">
<el-input
v-model="query.search"
clearable
style="width: 300px"
size="mini"
placeholder="请输入仓位信息"
prefix-icon="el-icon-search"
@@ -24,7 +39,6 @@
<el-input
v-model="query.vehicle_code"
clearable
style="width: 300px"
size="mini"
placeholder="请输入载具编码"
prefix-icon="el-icon-search"
@@ -157,7 +171,7 @@ export default {
dicts: [],
name: 'StructIvtInfo',
components: {pagination, crudOperation, rrOperation, udOperation},
tableEnums: [ 'bm_measure_unit#unit_name#unit_id' ],
tableEnums: [ 'bm_measure_unit#unit_name#unit_id', 'st_ivt_bsrealstorattr#stor_name#stor_code' ],
statusEnums: [ 'LOCK' ],
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {

View File

@@ -42,13 +42,12 @@
<el-button
slot="left"
class="filter-item"
:disabled="crud.selections.length !== 1"
icon="el-icon-position"
size="mini"
type="primary"
@click="syncData(crud.selections[0])"
@click="syncErpbutton"
>
同步
同步ERP
</el-button>
<el-button
slot="left"
@@ -221,6 +220,99 @@
<el-button :loading="crud.cu === 2" type="primary" @click="syncAnalyseSubmit">同步解析</el-button>
</div>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
title="同步选择"
:visible.sync="syncErpShow"
width="800px"
@close="syncErp"
>
<el-form ref="form" :model="syncForm" :rules="rules" size="mini" label-width="50px">
<el-row :gutter="40" class="panel-group">
<el-col :span="11">
<el-form-item label="表单:" prop="occupystruct_qty">
<el-input v-model="syncForm.form_name" disabled :precision="0" style="width: 150px;" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="存储:" prop="needSave">
<el-switch
v-model="syncForm.needSave"
active-color="#13ce66"
inactive-color="#ff4949"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="测试数据" prop="analyseData">
<el-input v-model="syncForm.analyseData" type="textarea" :precision="0" style="width: 650px;" />
</el-form-item>
</el-form>
<div v-if="viewMst.length >0">
<div class="crud-opts2">
<span class="role-span2">解析数据</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
ref="table"
:data="viewMst"
style="width: 100%;"
max-height="300"
size="mini"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column min-width="120" show-overflow-tooltip prop="id" label="id" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="code" label="单据编码" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="biz_code" label="业务单" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_id" label="物料id" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="pcsn" label="批次" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="qty" label="数量" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="unit_id" label="单位" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="vehicle_code" label="载具" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="status" label="单据状态" align="center" />
<el-table-column v-for="(item, index) in viewMstCols" :key="item.value" min-width="120" show-overflow-tooltip :label="item.lable">
<template slot-scope="scope">{{ scope.row.form_data[item.value] }}</template>
</el-table-column>
</el-table>
</el-card>
<!-- <div v-if="hasDtl">-->
<!-- <div class="crud-opts2">-->
<!-- <span class="role-span2">明细数据</span>-->
<!-- </div>-->
<!-- <el-card class="box-card" shadow="never" :body-style="{padding:'0'}">-->
<!-- &lt;!&ndash;表格渲染&ndash;&gt;-->
<!-- <el-table-->
<!-- ref="table"-->
<!-- :data="viewDtl"-->
<!-- style="width: 100%;"-->
<!-- max-height="300"-->
<!-- size="mini"-->
<!-- border-->
<!-- :highlight-current-row="true"-->
<!-- :header-cell-style="{background:'#f5f7fa',color:'#606266'}"-->
<!-- >-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="id" label="id" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="code" label="单据编码" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="biz_code" label="业务单" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="material_id" label="物料id" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="pcsn" label="批次" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="qty" label="数量" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="vehicle_code" label="载具" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip prop="status" label="单据状态" align="center" />-->
<!-- <el-table-column min-width="120" show-overflow-tooltip v-for="(item, index) in viewDtlCols" :key="item.value" :label="item.lable" >-->
<!-- <template slot-scope="scope">{{scope.row.form_data[item.value]}}</template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<!-- </el-card>-->
<!-- </div>-->
</div>
<div slot="footer" class="dialog-footer">
<el-button :loading="crud.cu === 2" type="primary" @click="syncAnalyseSubmit">同步解析</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table
ref="table"
@@ -318,6 +410,7 @@ export default {
dataTypeList: [],
addShow: false,
editShow: false,
syncErpShow: false,
syncShow: false,
syncForm: {},
permission: {},
@@ -355,7 +448,10 @@ export default {
this.$refs.editRef.setForm(row)
this.editShow = true
},
syncData(data) {
syncErpbutton(){
this.syncErpShow = true
},
syncErp(data) {
crudFormMapping.syncData(data).then(() => {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
})