Commit dfe4cbb6 authored by hiyonx's avatar hiyonx

销售订单

parent 15f9f23b
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-row class="form-wrap" :gutter="gutter"> <el-row class="form-wrap" :gutter="gutter">
<div> <div>
<template v-for="(sapProperties, key) in sapPropertyMap"> <template v-for="(sapProperties, key) in sapPropertyMap">
<div class="separator">{{ getViewTypeName(key) }}</div> <el-col v-if="showSubTitle" :span="24" class="separator">{{ getViewTypeName(key) }}</el-col>
<template v-for="item in sapProperties"> <template v-for="item in sapProperties">
<el-col :span="span" :key="item.id"> <el-col :span="span" :key="item.id">
<el-form-item :label="item.name" :prop="key + '.' + item.sapField" <el-form-item :label="item.name" :prop="key + '.' + item.sapField"
...@@ -34,6 +34,7 @@ export default { ...@@ -34,6 +34,7 @@ export default {
props: { props: {
gutter: {type: Number, default: 10}, gutter: {type: Number, default: 10},
span: {type: Number, default: 8}, span: {type: Number, default: 8},
showSubTitle: {type: Boolean, default: true},
}, },
data() { data() {
return { return {
...@@ -106,8 +107,30 @@ export default { ...@@ -106,8 +107,30 @@ export default {
return viewType return viewType
}, },
setData(data, sapData, sapPropertyMap) { setData(data, sapData, propertyViews) {
let keys = Object.keys(sapPropertyMap) let newSapData = {}
for (const propertyView of propertyViews) {
let propertyList = propertyView.propertyList
switch (propertyView.dataType) {
case 0: // 属性
for (const property of propertyList) {
newSapData[property.sapField] = data[property.relationField] || sapData[property.sapField] || ''
}
case 1: // 对象
let viewObj = {}
for (const property of propertyList) {
viewObj[property.sapField] = data[propertyView.viewType][property.relationField] || data[property.relationField]
|| sapData[propertyView.viewType][property.sapField] || ''
}
newSapData[propertyView.viewType] = viewObj
case 2: // 列表
let viewArr = sapData[propertyView.viewType] || []
data
for (const property of propertyList) {
}
}
}
for (const key of keys) { for (const key of keys) {
if (!sapPropertyMap.hasOwnProperty(key)) continue if (!sapPropertyMap.hasOwnProperty(key)) continue
if (!sapData[key]) sapData[key] = {} if (!sapData[key]) sapData[key] = {}
...@@ -131,12 +154,7 @@ export default { ...@@ -131,12 +154,7 @@ export default {
let sapData = {} let sapData = {}
// 获取sap特性列表 // 获取sap特性列表
listByType({type, viewType}).then(res => { listByType({type, viewType}).then(res => {
let sapProperties = res.data || [] let propertyViews = res.data || []
let sapPropertyMap = sapProperties.reduce((sapPropertyMap, item) => {
if (!sapPropertyMap[item.viewType]) sapPropertyMap[item.viewType] = []
sapPropertyMap[item.viewType].push(item)
return sapPropertyMap
}, {})
if (relationId) { if (relationId) {
// 获取sap特性值 // 获取sap特性值
listData({type, viewType, relationId}).then(resp => { listData({type, viewType, relationId}).then(resp => {
...@@ -144,10 +162,10 @@ export default { ...@@ -144,10 +162,10 @@ export default {
this.form.id = row.id this.form.id = row.id
sapData = JSON.parse(row.sapData) sapData = JSON.parse(row.sapData)
// 再次赋值 // 再次赋值
this.setData(data, sapData, sapPropertyMap) this.setData(data, sapData, propertyViews)
}) })
} else { } else {
this.setData(data, sapData, sapPropertyMap) this.setData(data, sapData, propertyViews)
} }
}) })
} }
......
...@@ -156,9 +156,7 @@ ...@@ -156,9 +156,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="关联属性" prop="relationField"> <el-form-item label="关联属性" prop="relationField">
<el-select v-model="form.relationField" placeholder="请选择关联客户属性" clearable filterable> <el-input v-model.trim="form.relationField" placeholder="请选择关联客户属性" clearable/>
<el-option v-for="item in relationFields" :key="item.value" v-bind="item"/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
...@@ -237,7 +235,6 @@ export default { ...@@ -237,7 +235,6 @@ export default {
enableFlag: 'Y', enableFlag: 'Y',
}, },
viewTypes: [], viewTypes: [],
relationFields: [],
// 表单校验 // 表单校验
rules: { rules: {
type: [{ required: true, message: '特性类型不能为空', trigger: ['blur', 'change']}], type: [{ required: true, message: '特性类型不能为空', trigger: ['blur', 'change']}],
...@@ -257,7 +254,6 @@ export default { ...@@ -257,7 +254,6 @@ export default {
methods: { methods: {
onChangeType(val) { onChangeType(val) {
this.viewTypes = this.dict.type.sap_property_view.filter(item => item.value === val).map(item => ({label: item.label, value: item.raw.cssClass})) this.viewTypes = this.dict.type.sap_property_view.filter(item => item.value === val).map(item => ({label: item.label, value: item.raw.cssClass}))
this.relationFields = this.dict.type.sap_property_relation.filter(item => item.value === val).map(item => ({label: item.label, value: item.raw.cssClass}))
}, },
toDataType() { toDataType() {
this.$router.push({ path: '/mes/md/propertytype'}) this.$router.push({ path: '/mes/md/propertytype'})
......
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
icon="el-icon-search" icon="el-icon-search"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['od:salesOrder:edit']" v-hasPermi="['od:salesOrder:edit']"
>查看 >详情
</el-button> </el-button>
<el-button <el-button
size="mini" size="mini"
......
...@@ -171,100 +171,117 @@ ...@@ -171,100 +171,117 @@
</el-form> </el-form>
</div> </div>
<el-tabs v-model="activeName" type="border-card" @tab-click="onTabClick"> <div class="detail-body">
<el-tab-pane label="详情" name="detail">
<div class="page-item"> <el-tabs v-model="activeName" type="border-card" @tab-click="onTabClick">
<el-table :data="form.detailList" @selection-change="handleSelectionChange" max-height="600"> <el-tab-pane label="详情" name="detail">
<el-table-column type="selection" width="55"/> <el-row :gutter="10" class="mb8">
<el-table-column label="产品名称" prop="itemName" show-overflow-tooltip/> <el-col :span="1.5">
<el-table-column label="产品编码" prop="itemNo" show-overflow-tooltip/> <el-button
<el-table-column label="总数量" prop="totalNum" show-overflow-tooltip/> type="primary"
<el-table-column label="loss数量" prop="lossNum" show-overflow-tooltip/> plain
<el-table-column label="数量" prop="num" show-overflow-tooltip/> icon="el-icon-plus"
<el-table-column label="单价" :formatter="r => this.formatMoney(r.price)" show-overflow-tooltip/> size="mini"
<el-table-column label="装运点" prop="shipmentPointNo" show-overflow-tooltip/> @click="onShowEditDetail(null, form.detailList.length)"
<el-table-column label="存储地点" prop="storeAddr" show-overflow-tooltip/> v-hasPermi="['od:salesOrder:add']"
<el-table-column label="批次号" prop="batchNo" show-overflow-tooltip/> >新增
<el-table-column label="批次号" prop="batchNo" show-overflow-tooltip/> </el-button>
<el-table-column label="实际交货日期" prop="actualDeliveryDate" show-overflow-tooltip/> </el-col>
<el-table-column label="定价值" prop="pricingVal" show-overflow-tooltip/> </el-row>
<el-table-column label="报价单位" prop="offerUnit" show-overflow-tooltip/> <div class="page-item">
<el-table-column label="销售单位" prop="saleUnit" show-overflow-tooltip/> <el-table :data="form.detailList" @selection-change="handleSelectionChange" max-height="600">
<el-table-column label="尺码单位" prop="sizeUnit" show-overflow-tooltip/> <el-table-column type="selection" width="55"/>
<el-table-column label="客户订单号" prop="poOrderNo" show-overflow-tooltip/> <el-table-column label="产品编码" prop="itemNo" show-overflow-tooltip/>
<el-table-column label="客户产品代码" prop="clientItemNo" show-overflow-tooltip/> <el-table-column label="产品名称" prop="itemName" show-overflow-tooltip/>
<el-table-column label="客户产品名称" prop="clientItemName" show-overflow-tooltip/> <el-table-column label="总数量" prop="totalNum" show-overflow-tooltip/>
<el-table-column label="客户尺码单位" prop="clientSizeUnit" show-overflow-tooltip/> <el-table-column label="loss数量" prop="lossNum" show-overflow-tooltip/>
<el-table-column label="客户指令号" prop="clientCmd" show-overflow-tooltip/> <el-table-column label="数量" prop="num" show-overflow-tooltip/>
<el-table-column label="客户单重" prop="clientKg" show-overflow-tooltip/> <el-table-column label="单价" :formatter="r => this.formatMoney(r.price)" show-overflow-tooltip/>
<el-table-column label="销线" prop="salePath" show-overflow-tooltip/> <!-- <el-table-column label="装运点" prop="shipmentPointNo" show-overflow-tooltip/>-->
<el-table-column label="段别" prop="segment" show-overflow-tooltip/> <!-- <el-table-column label="存储地点" prop="storeAddr" show-overflow-tooltip/>-->
<el-table-column label="版面" prop="layout" show-overflow-tooltip/> <!-- <el-table-column label="批次号" prop="batchNo" show-overflow-tooltip/>-->
<el-table-column label="季度" prop="quarter" show-overflow-tooltip/> <!-- <el-table-column label="实际交货日期" prop="actualDeliveryDate" show-overflow-tooltip/>-->
<el-table-column label="整/半码" prop="wholeSize" show-overflow-tooltip/> <!-- <el-table-column label="定价值" prop="pricingVal" show-overflow-tooltip/>-->
<el-table-column label="特殊尺码" prop="specSize" show-overflow-tooltip/> <!-- <el-table-column label="报价单位" prop="offerUnit" show-overflow-tooltip/>-->
<el-table-column label="po号" prop="poNo" show-overflow-tooltip/> <!-- <el-table-column label="销售单位" prop="saleUnit" show-overflow-tooltip/>-->
<el-table-column label="wip号" prop="wipNo" show-overflow-tooltip/> <!-- <el-table-column label="尺码单位" prop="sizeUnit" show-overflow-tooltip/>-->
<el-table-column label="装箱数" prop="packingNum" show-overflow-tooltip/> <!-- <el-table-column label="客户订单号" prop="poOrderNo" show-overflow-tooltip/>-->
<el-table-column label="周期" prop="cycle" show-overflow-tooltip/> <!-- <el-table-column label="客户产品代码" prop="clientItemNo" show-overflow-tooltip/>-->
<el-table-column label="周期" prop="cycle" show-overflow-tooltip/> <!-- <el-table-column label="客户产品名称" prop="clientItemName" show-overflow-tooltip/>-->
<el-table-column label="sk号" prop="skNo" show-overflow-tooltip/> <!-- <el-table-column label="客户尺码单位" prop="clientSizeUnit" show-overflow-tooltip/>-->
<el-table-column label="专利号" prop="patentNo" show-overflow-tooltip/> <el-table-column label="客户指令号" prop="clientCmd" show-overflow-tooltip/>
<el-table-column label="材质描述" prop="materialDesc" show-overflow-tooltip/> <!-- <el-table-column label="客户单重" prop="clientKg" show-overflow-tooltip/>-->
<el-table-column label="签收人" prop="signer" show-overflow-tooltip/> <!-- <el-table-column label="销线" prop="salePath" show-overflow-tooltip/>-->
<el-table-column label="ShipToId" prop="shipToId" show-overflow-tooltip/> <!-- <el-table-column label="段别" prop="segment" show-overflow-tooltip/>-->
<el-table-column label="ShipToId" prop="shipToId" show-overflow-tooltip/> <!-- <el-table-column label="版面" prop="layout" show-overflow-tooltip/>-->
<el-table-column label="交货日期" prop="deliveryDate" show-overflow-tooltip/> <!-- <el-table-column label="季度" prop="quarter" show-overflow-tooltip/>-->
<el-table-column label="尺码组" prop="sizeGroup" show-overflow-tooltip/> <!-- <el-table-column label="整/半码" prop="wholeSize" show-overflow-tooltip/>-->
<el-table-column label="订单量" prop="orderNum" show-overflow-tooltip/> <!-- <el-table-column label="特殊尺码" prop="specSize" show-overflow-tooltip/>-->
<el-table-column label="条码" prop="barCode" show-overflow-tooltip/> <!-- <el-table-column label="po号" prop="poNo" show-overflow-tooltip/>-->
<el-table-column label="印刷方向" prop="printingDirection" show-overflow-tooltip/> <!-- <el-table-column label="wip号" prop="wipNo" show-overflow-tooltip/>-->
<el-table-column label="产品规格" prop="prodSpec" show-overflow-tooltip/> <!-- <el-table-column label="装箱数" prop="packingNum" show-overflow-tooltip/>-->
<el-table-column label="客户工厂代号" prop="plantCode" show-overflow-tooltip/> <!-- <el-table-column label="周期" prop="cycle" show-overflow-tooltip/>-->
<el-table-column label="包装方式" prop="packMode" show-overflow-tooltip/> <!-- <el-table-column label="sk号" prop="skNo" show-overflow-tooltip/>-->
<el-table-column label="备注" prop="remark" show-overflow-tooltip/> <!-- <el-table-column label="专利号" prop="patentNo" show-overflow-tooltip/>-->
<el-table-column label="状态" prop="state"> <!-- <el-table-column label="材质描述" prop="materialDesc" show-overflow-tooltip/>-->
<template slot-scope="{row}"> <!-- <el-table-column label="签收人" prop="signer" show-overflow-tooltip/>-->
{{ dict.type.sales_order_state.find(item => item.value == row.state).label }} <!-- <el-table-column label="ShipToId" prop="shipToId" show-overflow-tooltip/>-->
</template> <!-- <el-table-column label="交货日期" prop="deliveryDate" show-overflow-tooltip/>-->
</el-table-column> <!-- <el-table-column label="尺码组" prop="sizeGroup" show-overflow-tooltip/>-->
<el-table-column fixed="right" label="操作" width="100"> <el-table-column label="订单量" prop="orderNum" show-overflow-tooltip/>
<template slot-scope="{row, $index}"> <!-- <el-table-column label="条码" prop="barCode" show-overflow-tooltip/>-->
<el-button <!-- <el-table-column label="印刷方向" prop="printingDirection" show-overflow-tooltip/>-->
v-hasPermi="['od:salesOrder:edit']" <!-- <el-table-column label="产品规格" prop="prodSpec" show-overflow-tooltip/>-->
size="mini" <!-- <el-table-column label="客户工厂代号" prop="plantCode" show-overflow-tooltip/>-->
type="text" <!-- <el-table-column label="包装方式" prop="packMode" show-overflow-tooltip/>-->
@click="onShowEditDetail(row, $index)" <!-- <el-table-column label="备注" prop="remark" show-overflow-tooltip/>-->
>查看 <el-table-column label="状态" prop="state">
</el-button> <template slot-scope="{row}">
<el-button {{ dict.type.sales_order_state.find(item => item.value == row.state).label }}
v-hasPermi="['od:salesOrder:edit']" </template>
size="mini" </el-table-column>
type="text" <el-table-column fixed="right" label="操作" width="100">
@click="onShowSpecDetail(row)" <template slot-scope="{row, $index}">
>特性 <el-button
</el-button> v-hasPermi="['od:salesOrder:edit']"
</template> size="mini"
</el-table-column> type="text"
</el-table> @click="onShowEditDetail(row, $index)"
</div> >查看
</el-tab-pane> </el-button>
<el-tab-pane label="SAP特性" name="SapPropertyData"> <el-button
<SapPropertyData ref="SapPropertyData" :span="6"/> v-hasPermi="['od:salesOrder:edit']"
</el-tab-pane> size="mini"
</el-tabs> type="text"
@click="onShowSpecDetail(row)"
>特性
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-tab-pane>
<el-tab-pane label="SAP特性" name="SapPropertyData">
<SapPropertyData ref="SapPropertyData" :span="6"/>
</el-tab-pane>
</el-tabs>
</div>
<el-dialog :visible.sync="showEditDetail" title="订单详情" width="1200px"> <el-dialog :visible.sync="showEditDetail" title="订单详情" width="1200px">
<el-form :model="itemForm" ref="itemForm" :rules="itemRules" label-width="100px"> <el-form :model="itemForm" ref="itemForm" :rules="itemRules" label-width="100px">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="" label="产品名称"> <el-form-item label="产品编码" prop="">
<el-input v-model="itemForm.itemName" placeholder="" clearable/> <el-input v-model="itemForm.itemNo" readonly placeholder="请选择产品">
<el-button slot="append" icon="el-icon-search" @click="$refs['ItemSelectRef'].showFlag = true"/>
</el-input>
<ItemSelect ref="ItemSelectRef" @onSelected="onItemSelect"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="" label="产品编码"> <el-form-item prop="" label="产品名称">
<el-input v-model="itemForm.itemNo" placeholder="" clearable/> <el-input v-model="itemForm.itemName" placeholder="" readonly/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
...@@ -678,11 +695,20 @@ export default { ...@@ -678,11 +695,20 @@ export default {
}) })
}, },
onItemSelect(row) {
if (row != undefined) {
this.itemForm.itemId = row.itemId;
this.itemForm.itemNo = row.itemCode;
this.itemForm.itemName = row.itemName;
}
},
onEditDetail() { onEditDetail() {
this.showEditDetail = false this.showEditDetail = false
this.$refs.itemForm.validate(valid => { this.$refs.itemForm.validate(valid => {
if (valid) { if (valid) {
this.form.detailList[this.itemForm.index] = this.itemForm this.form.detailList.splice(this.itemForm.index, 1, this.itemForm)
console.log(this.form.detailList)
} }
}) })
}, },
...@@ -706,7 +732,7 @@ export default { ...@@ -706,7 +732,7 @@ export default {
console.log(item) console.log(item)
this.showEditDetail = true this.showEditDetail = true
this.$refs.itemForm && this.$refs.itemForm.resetFields() this.$refs.itemForm && this.$refs.itemForm.resetFields()
this.itemForm = item || { itemName: null, itemCode: null, num: null, amount: null, state: null, specList: [] } this.itemForm = item || { itemName: null, itemNo: null, num: null, amount: null, state: null, specList: [] }
this.itemForm.index = $index this.itemForm.index = $index
}, },
...@@ -873,4 +899,9 @@ export default { ...@@ -873,4 +899,9 @@ export default {
color: #99a9bf; color: #99a9bf;
} }
.detail-body {
margin-bottom: 50px;
}
</style> </style>
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