add:单据同步ERP

This commit is contained in:
zhangzq
2024-12-06 23:51:21 +08:00
parent 3051356995
commit 5eed6ea383
3 changed files with 63 additions and 86 deletions

View File

@@ -69,6 +69,14 @@ export function syncAnalyse(data) {
})
}
export function manualSyncErp(data) {
return request({
url: 'api/sycnErp/manualSync',
method: 'post',
data
})
}
export default {
add,
edit,
@@ -78,5 +86,6 @@ export default {
getAllTableName,
tableColumns,
syncData,
syncAnalyse
syncAnalyse,
manualSyncErp
}

View File

@@ -9,19 +9,21 @@
label-width="90px"
label-suffix=":"
>
<el-form-item label="映射表名" prop="local_table_name">
<el-form-item label="同步配置表" prop="form_type">
<el-select
v-model="query.local_table_name"
v-model="query.form_type"
clearable
filterable
size="mini"
placeholder="请选择/搜索"
class="filter-item"
@change="getColumns"
@change="crud.toQuery()"
>
<el-option
v-for="item in tableNameList"
:value="item"
v-for="item in tableEnum.sync_form_mapping"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
@@ -224,93 +226,52 @@
:close-on-click-modal="false"
title="同步选择"
:visible.sync="syncErpShow"
width="800px"
@close="syncErp"
width="600px"
>
<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 ref="form:" :model="syncForm" :rules="rules" size="mini" label-width="60px">
<el-row :gutter="20" class="panel-group">
<el-col :span="10">
<el-form-item label="类型" prop="form_type">
<el-select
v-model="syncForm.form_type"
clearable
filterable
size="mini"
placeholder="请选择/搜索"
class="filter-item"
>
<el-option
v-for="item in tableEnum.sync_form_mapping"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</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-col :span="10">
<el-form-item label="单号:" prop="form_code">
<el-input v-model="syncForm.form_code" style="width: 180px;" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" class="panel-group">
<el-col :span="10">
<el-form-item label="日期:" prop="analyseData">
<el-date-picker
v-model="syncForm.datepick"
type="daterange"
value-format="yyyy-MM-dd hh:mm:ss"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</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>
<el-button type="primary" @click="syncErpSubmit">同步ERP</el-button>
</div>
</el-dialog>
<!--表格渲染-->
@@ -386,6 +347,7 @@ export default {
components: { pagination, crudOperation, rrOperation, udOperation, AddDialog, EditDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['external_system', 'sync_type'],
tableEnums: ['sync_form_mapping#form_name#form_type'],
cruds() {
return CRUD({
title: '外部系统字段映射',
@@ -448,7 +410,7 @@ export default {
this.$refs.editRef.setForm(row)
this.editShow = true
},
syncErpbutton(){
syncErpbutton() {
this.syncErpShow = true
},
syncErp(data) {
@@ -457,6 +419,11 @@ export default {
})
this.crud.toQuery()
},
syncErpSubmit() {
crudFormMapping.manualSyncErp(this.syncForm).then(res => {
this.crud.notify(res.data, CRUD.NOTIFICATION_TYPE.SUCCESS)
})
},
jsonFormat(row, index) {
if (row.mapping_json != null) {
return JSON.stringify(row.mapping_json)