Commit 40aa3ca7 authored by hiyon's avatar hiyon

销售订单修改

parent 64aaf36f
<template> <template>
<el-form ref="form" class="sap-form" :label-width="labelWidth" size="mini"> <el-form ref="form" class="sap-form" :label-width="labelWidth" size="mini">
<SapFormContext v-for="item in sapFieldList" v-model="sapForm[item.sapField]" :item="item" :key="item.id" :label-width="labelWidth"/> <template v-for="item in sapFieldList">
<SapFormContext v-show="item.show" v-model="sapForm[item.sapField]" :item="item" :key="item.id" :label-width="labelWidth"/>
</template>
<div class="form-footer"> <div class="form-footer">
<el-button type="primary" @click="onConfirm">确认</el-button> <el-button type="primary" @click="onConfirm">确认</el-button>
</div> </div>
...@@ -65,7 +67,7 @@ export default { ...@@ -65,7 +67,7 @@ export default {
sapForm[item.sapField][j] = this.initSapForm(item.children, subItemData) sapForm[item.sapField][j] = this.initSapForm(item.children, subItemData)
} }
} else { } else {
sapForm[item.sapField] = itemData sapForm[item.sapField] = itemData || item.defaultValue
} }
} }
return sapForm return sapForm
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<!-- 对象 --> <!-- 对象 -->
<template v-if="item.dataType === 9"> <template v-if="item.dataType === 9">
<template v-for="child in item.children"> <template v-for="child in item.children">
<sap-form-item :item="child" :label-width="labelWidth"> <sap-form-item v-show="child.show" :item="child" :label-width="labelWidth">
<el-input-all v-model="value[child.sapField]" :item="child"/> <el-input-all v-model="value[child.sapField]" :item="child"/>
</sap-form-item> </sap-form-item>
</template> </template>
...@@ -22,13 +22,15 @@ ...@@ -22,13 +22,15 @@
<div style="width: 100%; overflow-x: auto"> <div style="width: 100%; overflow-x: auto">
<div> <div>
<div class="item-head clearfix" style="width: max-content;"> <div class="item-head clearfix" style="width: max-content;">
<div v-for="child in item.children" :key="child.id + 'head'" class="item-label">{{ child.name }}</div> <template v-for="child in item.children">
<div v-show="child.show" :key="child.id + 'head'" class="item-label">{{ child.name }}</div>
</template>
</div> </div>
<template v-for="(sub, i) in value"><!-- ITEM --> <template v-for="(sub, i) in value"><!-- ITEM -->
<div class="item-content" style="width: max-content;" :key="'sub' + '' + i"> <div class="item-content" style="width: max-content;" :key="'sub' + '' + i">
<template v-for="(child, j) in item.children"> <template v-for="(child, j) in item.children">
<div v-if="[1,2,3,4,5,6,7,8].some(dataType => dataType == child.dataType)" class="item-value" :key="child.id + j"> <div v-show="child.show" v-if="[1,2,3,4,5,6,7,8].some(dataType => dataType == child.dataType)" class="item-value" :key="child.id + j">
<sap-form-item :item="child" :label-width="labelWidth"> <sap-form-item :item="child" label-width="0px">
<el-input-all v-model="sub[child.sapField]" :item="child"/> <el-input-all v-model="sub[child.sapField]" :item="child"/>
</sap-form-item> </sap-form-item>
</div> </div>
...@@ -43,7 +45,7 @@ ...@@ -43,7 +45,7 @@
<!-- SIZE --> <!-- SIZE -->
<div v-for="leaf in sub[child.sapField]" class="item-child-content clearfix" style="width: max-content;"> <div v-for="leaf in sub[child.sapField]" class="item-child-content clearfix" style="width: max-content;">
<div v-for="(son, j) in child.children" class="item-value" :key="son.id + '' + j"> <div v-for="(son, j) in child.children" class="item-value" :key="son.id + '' + j">
<sap-form-item :item="son" :label-width="labelWidth"> <sap-form-item :item="son" label-width="0px">
<el-input-all v-model="leaf[son.sapField]" :item="son"/> <el-input-all v-model="leaf[son.sapField]" :item="son"/>
</sap-form-item> </sap-form-item>
</div> </div>
...@@ -121,8 +123,9 @@ export default { ...@@ -121,8 +123,9 @@ export default {
} }
.item-label, .item-value, .item-sub-label { .item-label, .item-value, .item-sub-label {
width: 150px; width: 150px;
height: 50px;
line-height: 28px;
float: left; float: left;
line-height: 50px;
overflow: hidden; overflow: hidden;
text-wrap: nowrap; text-wrap: nowrap;
margin-left: 10px; margin-left: 10px;
......
...@@ -8,305 +8,19 @@ ...@@ -8,305 +8,19 @@
</div> </div>
</div> </div>
<div class="page-body"> <div class="page-body">
<el-form :model="sapInfo" ref="sapInfo" label-width="120px" size="mini"> <SapForm ref="sapForm"/>
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="销售凭证" prop="VBELN">
<el-input v-model="sapInfo.VBELN" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="销售凭证类型" prop="AUART" required>
<el-select v-model="sapInfo.AUART" clearable>
<el-option label="ZDO-国内标准订单" value="ZDO"/>
<el-option label="ZEO-出口标准订单" value="ZEO"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="销售组织" prop="VKORG" required>
<el-select v-model="sapInfo.VKORG" clearable>
<el-option label="1000-广州宝绅科技销售组织" value="1000"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="分销渠道" prop="VTWEG" required>
<el-select v-model="sapInfo.VTWEG" clearable>
<el-option label="10-内销" value="10"/>
<el-option label="20-外销" value="20"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品组" required prop="SPART">
<el-select v-model="sapInfo.SPART" clearable>
<el-option label="00-通用产品组" value="00"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="订单原因" prop="AUGRU">
<el-input v-model="sapInfo.AUGRU" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="销售办事处" prop="VKBUR">
<el-select v-model="sapInfo.VKBUR" clearable>
<el-option label="A10-业务一课" value="A10"/>
<el-option label="A20-业务二课" value="A20"/>
<el-option label="A90-外贸课" value="A90"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="销售组" prop="VKGRP">
<el-select v-model="sapInfo.VKGRP" clearable>
<template v-if="sapInfo.VKBUR == 'A10'">
<el-option label="A11-业务一课A组" value="A11"/>
<el-option label="A12-业务一课B组" value="A12"/>
</template>
<template v-if="sapInfo.VKBUR == 'A20'">
<el-option label="A21-业务二课A组" value="A21"/>
<el-option label="A22-业务二课B组" value="A22"/>
</template>
<template v-if="sapInfo.VKBUR == 'A90'">
<el-option label="A91-外贸A组" value="A91"/>
<el-option label="A92-外贸B组" value="A92"/>
</template>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="客户编号" prop="KUNNR" required>
<el-input v-model="sapInfo.KUNNR" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="客户参考" prop="BSTNK" required>
<el-input v-model="sapInfo.BSTNK" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="要求的交货日期" prop="VDATU">
<el-input v-model="sapInfo.VDATU" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="客户参考日期" prop="BSTDK">
<el-input v-model="sapInfo.BSTDK" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="国际贸易条款" prop="INCO1">
<el-select v-model="sapInfo.INCO1" placeholder="" clearable>
<el-option label="FOB-离岸价" value="FOB"/>
<el-option label="CIF-成本, 保险 & 运费" value="CIF"/>
<el-option label="EXW-工厂交货" value="EXW"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="国际贸易位置" prop="INCO2" :required="!!sapInfo.INCO2">
<el-input v-model="sapInfo.INCO2" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="付款条件代码" prop="ZTERM" required>
<el-select v-model="sapInfo.ZTERM" placeholder="" clearable>
<el-option value="Z009" label="月结15天"/>
<el-option value="Z010" label="月结30天"/>
<el-option value="Z011" label="月结45天"/>
<el-option value="Z012" label="月结60天"/>
<el-option value="Z013" label="月结90天"/>
<el-option value="Z014" label="月结20天"/>
<el-option value="Z015" label="月结75天"/>
<el-option value="Z016" label="月结50天"/>
<el-option value="Z018" label="月结35天"/>
<el-option value="Z019" label="月结55天"/>
<el-option value="Z020" label="月结25天"/>
<el-option value="Z021" label="月结68天"/>
<el-option value="Z022" label="月结105天"/>
<el-option value="Z023" label="月结120天"/>
<el-option value="Z024" label="月结180天"/>
<el-option value="Z025" label="次月20号前付款"/>
<el-option value="Z026" label="当月底结账"/>
<el-option value="Z027" label="款到发货"/>
<el-option value="Z028" label="隔月付现"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="记录创建日期" prop="ERDAT">
<el-input v-model="sapInfo.ERDAT" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="备注" prop="LTEXT">
<el-input v-model="sapInfo.LTEXT" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="跟单员" prop="ZKUNR">
<el-input v-model="sapInfo.ZKUNR" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="生产发货方式" prop="ZF14">
<el-select v-model="sapInfo.ZF14" placeholder="" clearable>
<el-option value="01" label="01款到发货"/>
<el-option value="02" label="02款到生产"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="条码" prop="ZBARDE">
<el-input v-model="sapInfo.ZBARDE" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="申购号" prop="ZPONUM">
<el-input v-model="sapInfo.ZPONUM" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="款式" prop="ZSTYLE">
<el-input v-model="sapInfo.ZSTYLE" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="OSP订单号" prop="ZOSP">
<el-input v-model="sapInfo.ZOSP" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="交货冻结" prop="LIFSK">
<el-input v-model="sapInfo.LIFSK" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="开票冻结" prop="FAKSK">
<el-input v-model="sapInfo.FAKSK" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6" v-show="false">
<el-form-item label="更新标识" prop="UPDKZ" required>
<el-select v-model="sapInfo.UPDKZ" placeholder="" clearable>
<el-option value="I" label="新增"/>
<el-option value="U" label="修改"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="sapInfo.ITEM" max-height="800px" size="mini">
<el-table-column min-width="150" label="销售凭证项目" prop="POSNR"><template slot-scope="{row}"><el-input v-model=row.POSNR placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 物料编号" prop="MATNR"><template slot-scope="{row}"><el-input v-model=row.MATNR placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 工厂" prop="WERKS">
<template slot-scope="{row}">
<el-select v-model="row.WERKS" placeholder="">
<el-option label="1000-广州市宝绅科技印刷工厂" value="1000"/>
<el-option label="1010-广州市宝绅科技RFID工厂" value="1010"/>
</el-select>
</template>
</el-table-column>
<el-table-column min-width="150" label="总数量" title="以销售单位表示的累计订购数量" prop="KWMENG"><template slot-scope="{row}"><el-input type="number" v-model=row.KWMENG placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="客户物料编号" prop="KDMAT"><template slot-scope="{row}"><el-input v-model=row.KDMAT placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="客户物料名称" prop="ARKTX"><template slot-scope="{row}"><el-input v-model=row.ARKTX placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="折扣率(Z001的金额)" prop="NETPR"><template slot-scope="{row}"><el-input v-model=row.NETPR placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 装运点/收货点" prop="VSTEL"><template slot-scope="{row}">
<el-select v-model=row.VSTEL placeholder="">
<el-option label="1000-广州宝绅科技工厂装运点" value="1000"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="存储地点" prop="LGORT"><template slot-scope="{row}">
<el-select v-model=row.LGORT placeholder="" clearable>
<el-option label="8001-成品一库" value="8001"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="批次编号" prop="CHARG"><template slot-scope="{row}"><el-input v-model=row.CHARG placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 计划行日期" prop="EDATU"><template slot-scope="{row}">
<el-input v-model=row.EDATU placeholder=""/>
</template></el-table-column>
<el-table-column min-width="150" label="拒绝原因" prop="ABGRU"><template slot-scope="{row}">
<el-select v-model=row.ABGRU placeholder="">
<el-option value="Z1" label="Z1-订单已生产完成,客户取消订单,转为库存,申请完结"/>
<el-option value="Z2" label="Z2-订单已生产完成,客户取消订单,订单挪用完毕,申请完结"/>
<el-option value="Z3" label="Z3-客户取消或更新订单,生产开立领料单实际未生产,申请完结"/>
<el-option value="Z4" label="Z4-异常开错订单,申请完结"/>
<el-option value="Z5" label="Z5-现场找不到货,重新生产出货,申请完结"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="工厂单价(PR01的金额)" prop="NETWR"><template slot-scope="{row}"><el-input v-model=row.NETWR placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="订单行折前总金额(Z002的定价值)" prop="KWERT"><template slot-scope="{row}"><el-input v-model=row.KWERT placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="定价单位" prop="KPEIN"><template slot-scope="{row}"><el-input v-model=row.KPEIN placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="货币" prop="KOEIN"><template slot-scope="{row}"><el-input v-model=row.KOEIN placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="尺码组" prop="ZSIZEGROUP"><template slot-scope="{row}"><el-input v-model=row.ZSIZEGROUP placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="尺码单位(客户)" prop="ZSIZEUNITC"><template slot-scope="{row}"><el-input v-model=row.ZSIZEUNITC placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="指令号" prop="ZINSTNUM"><template slot-scope="{row}"><el-input v-model=row.ZINSTNUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="型体号" prop="ZMOLD"><template slot-scope="{row}"><el-input v-model=row.ZMOLD placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="配色号" prop="ZMAPCOLOR"><template slot-scope="{row}"><el-input v-model=row.ZMAPCOLOR placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="颜色" prop="ZCLOLOR"><template slot-scope="{row}"><el-input v-model=row.ZCLOLOR placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="销线" prop="ZSALEAREA"><template slot-scope="{row}"><el-input v-model=row.ZSALEAREA placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="段别" prop="ZDUANBIE"><template slot-scope="{row}"><el-input v-model=row.ZDUANBIE placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="季度" prop="ZSEASON"><template slot-scope="{row}"><el-input v-model=row.ZSEASON placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="整/半码" prop="ZTOTALSIZE"><template slot-scope="{row}">
<el-select v-model=row.ZTOTALSIZE placeholder="">
<el-option value="01" label="01-整码"/>
<el-option value="02" label="02-整半码"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="特殊SIZE" prop="ZSPECSIZE"><template slot-scope="{row}">
<el-select v-model=row.ZSPECSIZE placeholder="">
<el-option value="是" label="是"/>
<el-option value="否" label="否"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="PO#" prop="ZCPONUM"><template slot-scope="{row}"><el-input v-model=row.ZCPONUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="WIP#" prop="ZWIPNUM"><template slot-scope="{row}"><el-input v-model=row.ZWIPNUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="装箱数" prop="ZBOXQUAN"><template slot-scope="{row}"><el-input v-model=row.ZBOXQUAN placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="产地" prop="ZORIGIN"><template slot-scope="{row}"><el-input v-model=row.ZORIGIN placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="周期" prop="ZCYCLE"><template slot-scope="{row}"><el-input v-model=row.ZCYCLE placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="SK编号" prop="ZSKCODE"><template slot-scope="{row}"><el-input v-model=row.ZSKCODE placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="专利号" prop="ZPATENTCODE"><template slot-scope="{row}"><el-input v-model=row.ZPATENTCODE placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="材质描述" prop="ZMATERIALDES"><template slot-scope="{row}"><el-input v-model=row.ZMATERIALDES placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="签收人" prop="ZSIGNPERSON"><template slot-scope="{row}"><el-input v-model=row.ZSIGNPERSON placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="SHIP TO ID" prop="ZSHIPID"><template slot-scope="{row}"><el-input v-model=row.ZSHIPID placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="产品规格" prop="ZPRODSPEC"><template slot-scope="{row}"><el-input v-model=row.ZPRODSPEC placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="产品用途" prop="ZPRODUSAGE"><template slot-scope="{row}">
<el-select v-model=row.ZPRODUSAGE placeholder="">
<el-option value="01" label="01-网布"/>
<el-option value="02" label="02-普通"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="厚度(丝)" prop="ZTHICK"><template slot-scope="{row}">
<el-input v-model.number=row.ZTHICK max="10" min="1" placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="包装方式" prop="ZPACKINGMOT"><template slot-scope="{row}"><el-input v-model=row.ZPACKINGMOT placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="印刷方向" prop="ZPRINTDIRECT"><template slot-scope="{row}">
<el-select v-model=row.ZPRINTDIRECT placeholder="">
<el-option label="01-字体倒立" value="01"/>
</el-select>
</template></el-table-column>
<el-table-column min-width="150" label="工厂代号" prop="ZPLANTCODE"><template slot-scope="{row}"><el-input v-model=row.ZPLANTCODE placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 指令数(客户)汇总" prop="ZINCSUM"><template slot-scope="{row}"><el-input v-model=row.ZINCSUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* LOSS数(客户)汇总" prop="ZLOSSUM"><template slot-scope="{row}"><el-input v-model=row.ZLOSSUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* SIZE 序号" prop="SIZE.0.ZSIZE_NUM"><template slot-scope="{row}"><el-input v-model=row.SIZE[0].ZSIZE_NUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 尺码" prop="SIZE.0.ZSIZE"><template slot-scope="{row}"><el-input v-model=row.SIZE[0].ZSIZE placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="* 指令数(客户)" prop="SIZE.0.ZINSNUM"><template slot-scope="{row}"><el-input v-model=row.SIZE[0].ZINSNUM placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="LOSS数(客户)" prop="SIZE.0.ZLOSSC"><template slot-scope="{row}"><el-input v-model=row.SIZE[0].ZLOSSC placeholder=""/></template></el-table-column>
<el-table-column min-width="150" label="尺码备注" prop="SIZE.0.ZSIZECOM"><template slot-scope="{row}"><el-input v-model=row.SIZE[0].ZSIZECOM placeholder=""/></template>
</el-table-column>
</el-table>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getSapInfo, syncSapData } from '@/api/mes/od/salesOrder' import { getOrder, getSapInfo, syncSapData } from '@/api/mes/od/salesOrder'
import SapForm from '@/views/mes/md/sapField/components/SapForm'
export default { export default {
components: {
SapForm
},
data() { data() {
return { return {
loading: false, loading: false,
...@@ -357,6 +71,11 @@ export default { ...@@ -357,6 +71,11 @@ export default {
this.sapInfo.id = id this.sapInfo.id = id
console.log(this.sapInfo) console.log(this.sapInfo)
}) })
getOrder(id).then(res => {
this.$nextTick(() => this.$refs.sapForm.init(3, id, res.data))
this.sapInfo = res.data
})
} }
}, },
}, },
......
...@@ -165,7 +165,7 @@ ...@@ -165,7 +165,7 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item label="订单状态" prop="state"> <el-form-item label="订单状态" prop="state">
<el-select v-model="form.state" class="form-item" clearable placeholder="请选择订单状态"> <el-select v-model="form.state" class="form-item" clearable placeholder="请选择订单状态">
<el-option v-for="item in dict.type.sales_order_state" :key="item.value" :label="item.label" :value="item.value"/> <el-option v-for="item in dict.type['sales_order_state']" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -180,7 +180,7 @@ ...@@ -180,7 +180,7 @@
<div class="detail-body"> <div class="detail-body">
<el-tabs v-model="activeName" type="border-card" @tab-click="onTabClick"> <el-tabs v-model="activeName" type="border-card">
<el-tab-pane label="详情" name="detail"> <el-tab-pane label="详情" name="detail">
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
...@@ -196,8 +196,7 @@ ...@@ -196,8 +196,7 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="page-item"> <div class="page-item">
<el-table :data="form.detailList" @selection-change="handleSelectionChange" max-height="600"> <el-table :data="form.detailList" max-height="600">
<el-table-column type="selection" width="55"/>
<el-table-column label="产品编码" prop="itemNo" show-overflow-tooltip/> <el-table-column label="产品编码" prop="itemNo" show-overflow-tooltip/>
<el-table-column label="产品名称" prop="itemName" show-overflow-tooltip/> <el-table-column label="产品名称" prop="itemName" show-overflow-tooltip/>
<el-table-column label="总数量" prop="totalNum" show-overflow-tooltip/> <el-table-column label="总数量" prop="totalNum" show-overflow-tooltip/>
...@@ -224,7 +223,7 @@ ...@@ -224,7 +223,7 @@
<el-table-column label="季度" prop="quarter" show-overflow-tooltip/> <el-table-column label="季度" prop="quarter" show-overflow-tooltip/>
<el-table-column label="整/半码" prop="wholeSize" show-overflow-tooltip/> <el-table-column label="整/半码" prop="wholeSize" show-overflow-tooltip/>
<el-table-column label="特殊尺码" prop="specSize" show-overflow-tooltip/> <el-table-column label="特殊尺码" prop="specSize" show-overflow-tooltip/>
<el-table-column label="po号" prop="poNo" show-overflow-tooltip/> <el-table-column label="po号" prop="poNo" show-overflow-tooltip/>
<el-table-column label="wip号" prop="wipNo" show-overflow-tooltip/> <el-table-column label="wip号" prop="wipNo" show-overflow-tooltip/>
<el-table-column label="装箱数" prop="packingNum" show-overflow-tooltip/> <el-table-column label="装箱数" prop="packingNum" show-overflow-tooltip/>
<el-table-column label="周期" prop="cycle" show-overflow-tooltip/> <el-table-column label="周期" prop="cycle" show-overflow-tooltip/>
...@@ -244,25 +243,13 @@ ...@@ -244,25 +243,13 @@
<el-table-column label="备注" prop="remark" show-overflow-tooltip/>--> <el-table-column label="备注" prop="remark" show-overflow-tooltip/>-->
<el-table-column label="状态" prop="state"> <el-table-column label="状态" prop="state">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ dict.type.sales_order_state.find(item => item.value == row.state).label }} {{ dict.type['sales_order_state'].find(item => item.value == row.state).label }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" width="100"> <el-table-column fixed="right" label="操作" width="85">
<template slot-scope="{row, $index}"> <template slot-scope="{row, $index}">
<el-button <el-button v-hasPermi="['od:salesOrder:edit']" size="mini" type="text" @click="onShowEditDetail(row, $index)">编辑</el-button>
v-hasPermi="['od:salesOrder:edit']" <el-button v-hasPermi="['od:salesOrder:edit']" size="mini" type="text" @click="onShowItemDetail(row, $index)">尺码</el-button>
size="mini"
type="text"
@click="onShowEditDetail(row, $index)"
>查看
</el-button>
<el-button
v-hasPermi="['od:salesOrder:edit']"
size="mini"
type="text"
@click="onShowSpecDetail(row, $index)"
>特性
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -503,7 +490,7 @@ ...@@ -503,7 +490,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="" label="状态"> <el-form-item prop="" label="状态">
<el-select v-model="itemForm.state" class="form-item" clearable placeholder="请选择状态"> <el-select v-model="itemForm.state" class="form-item" clearable placeholder="请选择状态">
<el-option v-for="item in dict.type.sales_order_state" :key="item.value" :label="item.label" :value="item.value"/> <el-option v-for="item in dict.type['sales_order_state']" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -515,19 +502,53 @@ ...@@ -515,19 +502,53 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog :visible.sync="showItemDetail" title="产品尺码详情" width="650px">
<el-table :data="itemDetailForm.itemList" max-height="600">
<el-table-column label="尺码" prop="size">
<template slot-scope="{row}">
<el-input v-model="row.size" clearable/>
</template>
</el-table-column>
<el-table-column label="数量" prop="num">
<template slot-scope="{row}">
<el-input v-model="row.num" clearable/>
</template>
</el-table-column>
<el-table-column label="loss数" prop="lossNum">
<template slot-scope="{row}">
<el-input v-model="row.lossNum" clearable/>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark">
<template slot-scope="{row}">
<el-input v-model="row.remark" clearable/>
</template>
</el-table-column>
<el-table-column label="操作" prop="specJson" width="60">
<template slot-scope="{row, $index}">
<el-button v-hasPermi="['od:salesOrder:edit']" size="mini" type="text" @click="onShowSpecDetail(row, $index)">特性</el-button>
</template>
</el-table-column>
</el-table>
<div slot="footer">
<el-button @click="showItemDetail = false">取消</el-button>
<el-button type="primary" @click="onEditItem">确认</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="showSpecDetail" title="产品特性详情" width="650px"> <el-dialog :visible.sync="showSpecDetail" title="产品特性详情" width="650px">
<el-form :model="specForm" label-width="100px"> <el-form :model="specForm" label-width="100px">
<el-row> <el-row>
<el-col v-for="item in specForm.specList" :key="item.id" :span="12"> <el-col v-for="item in specForm.specList" :key="item['specKey']" :span="12">
<el-form-item :label="item.specKey"> <el-form-item :label="item['specKey']">
<el-input v-model="item.specVal"/> <el-input v-model="item['specVal']"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
<el-button @click="showSpecDetail = false">取消</el-button> <el-button @click="showSpecDetail = false">取消</el-button>
<el-button @click="onEditSpec">确认</el-button> <el-button type="primary" @click="onEditSpec">确认</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -536,7 +557,7 @@ ...@@ -536,7 +557,7 @@
</template> </template>
<script> <script>
import { addOrder, getOrder, getSapInfo, syncSapData, updateOrder } from '@/api/mes/od/salesOrder' import { addOrder, getOrder, updateOrder } from '@/api/mes/od/salesOrder'
import { getSalesOrder } from '@/api/mes/od/purchaseOrder' import { getSalesOrder } from '@/api/mes/od/purchaseOrder'
import { listUser } from '@/api/system/user' import { listUser } from '@/api/system/user'
import { listClient } from '@/api/mes/md/client' import { listClient } from '@/api/mes/md/client'
...@@ -551,14 +572,13 @@ export default { ...@@ -551,14 +572,13 @@ export default {
computed: { computed: {
totalAmount() { totalAmount() {
return this.form.detailList.reduce((amount = 0, item) => { return this.form.detailList.reduce((amount = 0, item) => {
amount += +item.price amount += (item.price * item.totalNum)
return amount return amount
}, 0) || 0 }, 0) || 0
} },
}, },
data() { data() {
return { return {
sapInfo: {},
form: { form: {
id: null, id: null,
purchaseNo: null, purchaseNo: null,
...@@ -640,6 +660,9 @@ export default { ...@@ -640,6 +660,9 @@ export default {
state: null, state: null,
specList: [] specList: []
}, },
itemDetailForm: {
itemList: []
},
specForm: { specForm: {
specList: [] specList: []
}, },
...@@ -658,14 +681,13 @@ export default { ...@@ -658,14 +681,13 @@ export default {
amount: { required: true, message: '请输入产品金额', trigger: ['blur'] }, amount: { required: true, message: '请输入产品金额', trigger: ['blur'] },
state: { required: true, message: '请选择产品状态', trigger: ['change'] } state: { required: true, message: '请选择产品状态', trigger: ['change'] }
}, },
ids: {},
clientList: [], clientList: [],
userList: [], userList: [],
showSpecDetail: false, showSpecDetail: false,
showItemDetail: false,
showEditDetail: false, showEditDetail: false,
activeName: 'detail', activeName: 'detail',
loading: false, loading: false,
multiple: false,
saleChannel: [], saleChannel: [],
saleGroup: [], saleGroup: [],
...@@ -702,18 +724,41 @@ export default { ...@@ -702,18 +724,41 @@ export default {
} }
}) })
}, },
checkedItem() {
onItemSelect(row) { let {detailList} = this.form
if (row != undefined) { for (let i = 0; i < detailList.length; i++) {
this.itemForm.itemId = row.itemId; let detail = detailList[i]
this.itemForm.itemNo = row.itemCode; if (!detail.itemId) return '第' + i + '项缺少itemId'
this.itemForm.itemName = row.itemName; // todo 检测未做
} }
return null
}, },
onEditSpec() { onEditSpec() {
this.showSpecDetail = false this.showSpecDetail = false
this.form.detailList.splice(this.specForm.index, 1, this.specForm) console.log(this.specForm)
this.itemDetailForm.itemList[this.specForm.index]['specJson'] = JSON.stringify(this.specForm.specList)
},
onShowSpecDetail(row, index) {
this.specForm.specList = JSON.parse(row['specJson']) || []
this.specForm.index = index
if (this.specForm.specList.length) {
this.showSpecDetail = true
} else {
this.$message.error("暂无数据")
}
},
onEditItem() {
this.showItemDetail = false
this.form.detailList[this.itemDetailForm.index].itemList = this.itemDetailForm.itemList
}, },
onShowItemDetail(row, index) {
console.log(row)
this.showItemDetail = true
this.itemDetailForm.itemList = row.itemList
this.itemDetailForm.index = index
},
onEditDetail() { onEditDetail() {
this.showEditDetail = false this.showEditDetail = false
...@@ -724,23 +769,6 @@ export default { ...@@ -724,23 +769,6 @@ export default {
} }
}) })
}, },
checkedItem() {
let {detailList} = this.form
for (let i = 0; i < detailList.length; i++) {
let detail = detailList[i]
if (!detail.itemId) return '第' + i + '项缺少itemId'
// todo 检测未做
}
return null
},
onShowSpecDetail(row, index) {
console.log(row)
this.showSpecDetail = true
this.specForm = row
this.specForm.index = index
},
onShowEditDetail(item, $index) { onShowEditDetail(item, $index) {
console.log(item) console.log(item)
this.showEditDetail = true this.showEditDetail = true
...@@ -749,28 +777,14 @@ export default { ...@@ -749,28 +777,14 @@ export default {
this.itemForm.index = $index this.itemForm.index = $index
}, },
onDeleteDetail(row) { onItemSelect(row) {
let { form } = this if (row != undefined) {
this.$modal.confirm('是否确认删除?').then(() => { this.itemForm.itemId = row.itemId;
let ids = row.itemId || this.ids this.itemForm.itemNo = row.itemCode;
ids = (ids instanceof Array) ? ids : [ids] this.itemForm.itemName = row.itemName;
for (let id of ids) { }
let index = form.detailList.findIndex(item => item.itemId == id)
if (index != -1) {
form.detailList.splice(index, 1)
}
}
})
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
onSyncSapData() {
syncSapData(this.sapInfo).then(res => res)
}, },
onGenCode() { onGenCode() {
genCode('SALES_ORDER').then(response => { genCode('SALES_ORDER').then(response => {
this.form.orderNo = response this.form.orderNo = response
...@@ -789,11 +803,6 @@ export default { ...@@ -789,11 +803,6 @@ export default {
getUserList(key) { getUserList(key) {
listUser({ nickName: key, pageNum: 1, pageSize: 100 }).then(res => this.userList = res.rows) listUser({ nickName: key, pageNum: 1, pageSize: 100 }).then(res => this.userList = res.rows)
}, },
onTabClick() {
if (this.activeName == 'SapPropertyData') getSapInfo(this.form.id).then(res => {
this.sapInfo = JSON.parse(res.data)
})
},
getDetail() { getDetail() {
let { id: orderId, purchaseId } = this.$route.query let { id: orderId, purchaseId } = this.$route.query
if (orderId) { if (orderId) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment