Browse Source

2025/8/8

java8
Aoi_Tori 10 months ago
parent
commit
132dd60fa6
  1. 1
      src/api/part/quicklyCreateBom.js
  2. 12
      src/views/modules/auth/authQuote.vue
  3. 31
      src/views/modules/part/bom_create.vue
  4. 125
      src/views/modules/part/part_create.vue
  5. 583
      src/views/modules/part/quicklyCreateBom.vue
  6. 48
      src/views/modules/quote/detail/quoteDetail.vue

1
src/api/part/quicklyCreateBom.js

@ -6,6 +6,7 @@ export const nodeDelete = data => createAPI(`/part/quicklyBom/nodeDelete`,'post'
export const nodeEdit = data => createAPI(`/part/quicklyBom/nodeEdit`,'post',data)
export const getBomInformationByPartNo = data => createAPI(`/part/quicklyBom/getBomInformationByPartNo`,'post',data)
export const savePartInfo = data => createAPI(`/part/quicklyBom/savePartInfo`,'post',data)
export const updatePartNoOfNode = data => createAPI(`/part/quicklyBom/updatePartNoOfNode`,'post',data)
export const saveBomHeader = data => createAPI(`/part/quicklyBom/saveBomHeader`,'post',data)
export const getRoutingInformationByPartNo = data => createAPI(`/part/quicklyBom/getRoutingInformationByPartNo`,'post',data)
export const saveRoutingHeader = data => createAPI(`/part/quicklyBom/saveRoutingHeader`,'post',data)

12
src/views/modules/auth/authQuote.vue

@ -129,10 +129,10 @@
<el-dialog title="报价信息" v-drag @close="closeQuoteRuleDetailDataDialog"
:close-on-click-modal="false" style="margin-top: -20px" :visible.sync="quoteRuleDetailModalFlag"
width="1280px">
width="90vw">
<el-form :inline="true" label-width="120px" label-position="top">
<el-form-item label="Application">
<el-input v-model="quoteCurrentRow.application" style="width: 210px" readonly></el-input>
<el-input v-model="quoteCurrentRow.application" style="width: 14.7vw" readonly></el-input>
</el-form-item>
<el-form-item label="Customer">
<el-input v-model="quoteCurrentRow.customerDesc" readonly></el-input>
@ -141,7 +141,7 @@
<el-input v-model="quoteCurrentRow.annualDemand" class="right-aligned-input" readonly></el-input>
</el-form-item>
<el-form-item label="Cost Model">
<el-input v-model="quoteCurrentRow.costModel" style="width: 210px" readonly></el-input>
<el-input v-model="quoteCurrentRow.costModel" style="width: 14.7vw" readonly></el-input>
</el-form-item>
<el-form-item label="Markup">
<el-input v-model="quoteCurrentRow.markup" class="right-aligned-input" readonly></el-input>
@ -149,10 +149,10 @@
</el-form>
<el-form :inline="true" label-width="120px" label-position="top">
<el-form-item label="报价备注">
<el-input type="textarea" :rows="2" v-model="quoteCurrentRow.remark" style="width: 1019px" readonly></el-input>
<el-input type="textarea" :rows="2" v-model="quoteCurrentRow.remark" style="width: 71.6vw" readonly></el-input>
</el-form-item>
</el-form>
<quote-detail :quote="quoteCurrentRow" :auth-flag="true" :height="'33vh'"></quote-detail>
<quote-detail :quote="quoteCurrentRow" :auth-flag="true" :height="'60vh'"></quote-detail>
<footer style="height:30px;margin-top: 5px;margin-left:-35px;text-align:center">
<el-button @click="closeQuoteRuleDetailDataDialog">{{'关闭'}}</el-button>
</footer>
@ -1269,7 +1269,7 @@ div.table-el-date /deep/ input.el-input__inner{
.right-aligned-input /deep/ .el-input__inner{
text-align: right;
width: 200px; /* 如果需要,可以在这里设置宽度 */
width: 12.5vw; /* 如果需要,可以在这里设置宽度 */
padding-right: 5px !important;
}
</style>

31
src/views/modules/part/bom_create.vue

@ -624,6 +624,12 @@ export default {
ChooseList
},
name: 'bomCreate',
props: {
batchUpdateFlag: {
type: Boolean,
required: true
}
},
data() {
return {
//
@ -1111,6 +1117,24 @@ export default {
fixed: '',
columnWidth: 300
},
{
userId: this.$store.state.user.name,
functionId: 601002,
serialNumber: '601002Table2ComponentPartDesc',
tableId: '601002Table2',
tableName: 'BOM子物料表',
columnProp: 'formula',
headerAlign: 'center',
align: 'left',
columnLabel: '计算公式',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 300
},
{
userId: this.$store.state.user.name,
functionId: 601002,
@ -1418,8 +1442,8 @@ export default {
},
methods: {
//
init (tempData) {
getBomInformationByPartNo(tempData).then(({data}) => {
async init (tempData) {
await getBomInformationByPartNo(tempData).then(({data}) => {
if (data && data.code === 0) {
if (data.rows.partNo != null && data.rows.partNo.length > 0) {
this.updateModal(data.rows)
@ -1435,6 +1459,9 @@ export default {
})
}
})
if (this.batchUpdateFlag){
this.$emit('handleBatchUpdatePart')
}
},
//

125
src/views/modules/part/part_create.vue

@ -1,7 +1,7 @@
<template>
<div>
<!-- 物料新增/编辑模态框 -->
<el-dialog :title="modalData.title" top="18vh" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="1100px">
<el-dialog :title="modalData.title" top="18vh" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="72vw">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="物料编码" prop="partNo">
@ -62,61 +62,61 @@
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
<el-form-item prop="umId2">
<span style="cursor: pointer" slot="label" @click="getBaseList(510)"><a herf="#">计量单位</a></span>
<el-input v-model="modalData.umId2" @blur="umIdBlur(510)" style="width: 128px"></el-input>
<el-input v-model="modalData.umName" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.umId2" @blur="umIdBlur(510)" style="width: 8vw"></el-input>
<el-input v-model="modalData.umName" disabled style="width: 23.5vw"></el-input>
</el-form-item>
<el-form-item v-if="modalData.partType2 === 'Purchased (raw)'" prop="familyID">
<span style="cursor: pointer" slot="label" @click="getBaseList(214)"><a herf="#">物料分类</a></span>
<el-input v-model="modalData.familyID" @blur="partFamilyBlur(214)" style="width: 128px"></el-input>
<el-input v-model="modalData.familyName" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.familyID" @blur="partFamilyBlur(214)" style="width: 8vw"></el-input>
<el-input v-model="modalData.familyName" disabled style="width: 23.5vw"></el-input>
</el-form-item>
<el-form-item v-else>
<span style="cursor: pointer" slot="label" @click="getBaseList(214)"><a herf="#">物料分类</a></span>
<el-input v-model="modalData.familyID" @blur="partFamilyBlur(214)" style="width: 128px"></el-input>
<el-input v-model="modalData.familyName" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.familyID" @blur="partFamilyBlur(214)" style="width: 8vw"></el-input>
<el-input v-model="modalData.familyName" disabled style="width: 23.5vw"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
<el-form-item v-if="modalData.partType2 === 'Purchased (raw)'">
<span style="cursor: pointer" slot="label" @click="getBaseList(211)"><a herf="#">商品组1</a></span>
<el-input v-model="modalData.productGroupId1" @blur="productGroupId1Blur(211)" style="width: 128px"></el-input>
<el-input v-model="modalData.productGroupName1" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.productGroupId1" @blur="productGroupId1Blur(211)" style="width: 8vw"></el-input>
<el-input v-model="modalData.productGroupName1" disabled style="width: 23.5vw"></el-input>
</el-form-item>
<el-form-item v-else prop="productGroupId1">
<span style="cursor: pointer" slot="label" @click="getBaseList(211)"><a herf="#">商品组1</a></span>
<el-input v-model="modalData.productGroupId1" @blur="productGroupId1Blur(211)" style="width: 128px"></el-input>
<el-input v-model="modalData.productGroupName1" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.productGroupId1" @blur="productGroupId1Blur(211)" style="width: 8vw"></el-input>
<el-input v-model="modalData.productGroupName1" disabled style="width: 23.5vw"></el-input>
</el-form-item>
<el-form-item v-if="modalData.partType2 === 'Purchased (raw)'">
<span style="cursor: pointer" slot="label" @click="getBaseList(212)"><a herf="#">商品组2</a></span>
<el-input v-model="modalData.productGroupId2" @blur="productGroupId2Blur(212)" style="width: 128px"></el-input>
<el-input v-model="modalData.productGroupName2" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.productGroupId2" @blur="productGroupId2Blur(212)" style="width: 8vw"></el-input>
<el-input v-model="modalData.productGroupName2" disabled style="width: 23.5vw"></el-input>
</el-form-item>
<el-form-item v-else prop="productGroupId2">
<span style="cursor: pointer" slot="label" @click="getBaseList(212)"><a herf="#">商品组2</a></span>
<el-input v-model="modalData.productGroupId2" @blur="productGroupId2Blur(212)" style="width: 128px"></el-input>
<el-input v-model="modalData.productGroupName2" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.productGroupId2" @blur="productGroupId2Blur(212)" style="width: 8vw"></el-input>
<el-input v-model="modalData.productGroupName2" disabled style="width: 23.5vw"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(213)"><a herf="#">商品组3</a></span>
<el-input v-model="modalData.productGroupId3" @blur="productGroupId3Blur(213)" style="width: 128px"></el-input>
<el-input v-model="modalData.productGroupName3" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.productGroupId3" @blur="productGroupId3Blur(213)" style="width: 8vw"></el-input>
<el-input v-model="modalData.productGroupName3" disabled style="width: 23.5vw"></el-input>
</el-form-item>
<el-form-item prop="codeNo">
<span style="cursor: pointer" v-if="!modalDisableFlag" slot="label" @click="getBaseList(219)"><a herf="#">属性模板</a></span>
<span v-else slot="label">属性模板</span>
<el-input v-model="modalData.codeNo" :disabled="modalDisableFlag" @blur="modelBlur(219)" style="width: 128px"></el-input>
<el-input v-model="modalData.codeDesc" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.codeNo" :disabled="modalDisableFlag" @blur="modelBlur(219)" style="width: 8vw"></el-input>
<el-input v-model="modalData.codeDesc" disabled style="width: 23.5vw"></el-input>
</el-form-item>
</el-form>
<div v-show="modalData.partType2==='Manufactured'" >
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
<el-form-item prop="templateNo">
<span style="cursor: pointer" slot="label" @click="getBaseList(518)"><a herf="#">BOM模板</a></span>
<el-input v-model="modalData.templateNo" @blur="bomTemplateBlur(518)" style="width: 128px"></el-input>
<el-input v-model="modalData.templateName" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.templateNo" @blur="bomTemplateBlur(518)" style="width: 8vw"></el-input>
<el-input v-model="modalData.templateName" disabled style="width: 23.5vw"></el-input>
</el-form-item>
</el-form>
</div>
@ -124,14 +124,14 @@
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(518)"><a herf="#">BOM模板</a></span>
<el-input v-model="modalData.templateNo" @blur="bomTemplateBlur(518)" style="width: 128px"></el-input>
<el-input v-model="modalData.templateName" disabled style="width: 380px"></el-input>
<el-input v-model="modalData.templateNo" @blur="bomTemplateBlur(518)" style="width: 8vw"></el-input>
<el-input v-model="modalData.templateName" disabled style="width: 23.5vw"></el-input>
</el-form-item>
</el-form>
</div>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
<el-form-item label="备注" style="height: 135px">
<el-input type="textarea" v-model="modalData.remark" :rows="5" resize='none' show-word-limit style="width: 1039px"></el-input>
<el-input type="textarea" v-model="modalData.remark" :rows="5" resize='none' show-word-limit style="width: 65vw"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
@ -2124,55 +2124,6 @@ export default {
message: ' ',
trigger: ['blur','change']
}
],
umId: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
familyId: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
productGroupId1: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
productGroupId2: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
productGroupId3: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
codeNo: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
bomTemplateNo: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
]
},
// ======== ========
@ -3519,34 +3470,6 @@ export default {
this.$message.warning("请填写模板名称!")
return
}
if (this.tempData.umId === null || this.tempData.umId === ''){
this.$message.warning("请选择计量单位!")
return
}
if (this.tempData.familyId === null || this.tempData.familyId === ''){
this.$message.warning("请选择物料分类!")
return
}
if (this.tempData.productGroupId1 === null || this.tempData.productGroupId1 === ''){
this.$message.warning("请选择商品组1!")
return
}
if (this.tempData.productGroupId2 === null || this.tempData.productGroupId2 === ''){
this.$message.warning("请选择商品组2!")
return
}
if (this.tempData.productGroupId3 === null || this.tempData.productGroupId3 === ''){
this.$message.warning("请选择商品组3!")
return
}
if (this.tempData.codeNo === null || this.tempData.codeNo === ''){
this.$message.warning("请选择属性模板!")
return
}
if (this.tempData.bomTemplateNo === null || this.tempData.bomTemplateNo === ''){
this.$message.warning("请选择BOM模板!")
return
}
templateAdd(this.tempData).then(({data}) => {
if (data&&data.code===0){
this.getTemplateList()

583
src/views/modules/part/quicklyCreateBom.vue

@ -111,24 +111,24 @@
<el-tabs v-model="activeTable" style="width: 100%" type="border-card" @tab-click="refreshCurrentTabTable" class="customer-tab">
<!-- BOM页签 -->
<el-tab-pane label="产品BOM管理" name="bom_info">
<bom-create v-loading="bomLoading" ref="BomCreate" @refreshNode="refreshNode" @refreshBomLoading="refreshBomLoading" v-drag></bom-create>
<bom-create v-loading="bomLoading" ref="BomCreate" @handleBatchUpdatePart="handleBatchUpdatePart" @refreshNode="refreshNode" @refreshBomLoading="refreshBomLoading" v-drag></bom-create>
</el-tab-pane>
<!-- Routing页签 -->
<el-tab-pane label="工艺路线管理" name="routing_info">
<routing-create v-loading="routingLoading" ref="RoutingCreate" @refreshRoutingLoading="refreshRoutingLoading" v-drag></routing-create>
<routing-create v-loading="routingLoading" ref="RoutingCreate" :batchUpdateFlag="batchUpdateFlag" @refreshRoutingLoading="refreshRoutingLoading" v-drag></routing-create>
</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
<!-- 节点新增模态框 -->
<el-dialog title="节点" :close-on-click-modal="false" v-drag :visible.sync="nodeModalFlag" width="430px">
<el-dialog title="节点" :close-on-click-modal="false" v-drag :visible.sync="nodeModalFlag" width="360px">
<el-form :inline="true" label-position="top" :model="nodeData" :rules="nodeRules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="节点编码" prop="nodeId" :rules="nodeRules.nodeId">
<el-input v-model="nodeData.nodeId" :disabled="nodeModalDisableFlag" style="width: 140px"></el-input>
</el-form-item>
<!-- <el-form-item label="节点编码" prop="nodeId" :rules="nodeRules.nodeId">-->
<!-- <el-input v-model="nodeData.nodeId" :disabled="nodeModalDisableFlag" style="width: 140px"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="节点名称" prop="nodeName" :rules="nodeRules.nodeName">
<el-input v-model="nodeData.nodeName" style="width: 230px"></el-input>
<el-input v-model="nodeData.nodeName" style="width: 320px"></el-input>
</el-form-item>
<el-form-item v-if="this.nodeData.flag === '1'" label="父节点" prop="pId" :rules="nodeRules.parentNodeName">
<el-popover
@ -230,7 +230,7 @@
<el-button style="margin-right: 10px; height: 20px" type="primary" @click="handleEditInfo">{{attributeFlag?'编辑' : '保存'}}</el-button>
<el-form label-position="top" style="margin-top: -20px; margin-left: 65vw">
<el-form-item label="属性模板">
<el-select v-model="searchData.codeNo" placeholder="请选择属性模板" @change="handleCodeNoChange" style="width: 235px">
<el-select v-model="searchData.codeNo" placeholder="请选择" @change="handleCodeNoChange" style="width: 235px">
<el-option
v-for="option in codeList"
:key="option.fieldname1"
@ -262,8 +262,8 @@
width="80"
trigger="click">
<a style="cursor: pointer" @click="queryPartList2(scope.row)">已有料号</a>
<el-divider></el-divider>
<a style="cursor: pointer" @click="addPartModal(scope.row)">新增料号</a>
<!-- <el-divider></el-divider>
<a style="cursor: pointer" @click="addPartModal(scope.row)">新增料号</a>-->
<i style="color:#1c92e0" slot="reference" class="small-operation-btn el-icon-more"/>
</el-popover>
</div>
@ -304,15 +304,13 @@
width="80"
trigger="click">
<a style="cursor: pointer" @click="queryPartList2(scope.row)">已有料号</a>
<el-divider></el-divider>
<a style="cursor: pointer" @click="addPartModal(scope.row)">新增料号</a>
<i style="color:#1c92e0" slot="reference" class="small-operation-btn el-icon-more"/>
</el-popover>
</div>
</template>
</el-table-column>
<el-table-column
v-for="(item,index) in partColumnList1" :key="index"
v-for="(item,index) in partColumnList2" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
@ -323,7 +321,48 @@
:label="item.columnLabel">
<template slot-scope="scope">
<span v-show="!item.columnHidden">
<span v-show="item.columnProp==='buNo'||item.columnProp==='partNo'||item.columnProp==='partDesc'||item.columnProp==='nodeName'">{{scope.row[item.columnProp]}}</span>
<span v-show="item.columnProp==='partNo'||item.columnProp==='nodeName'">{{scope.row[item.columnProp]}}</span>
<span v-show="item.columnProp==='buNo'">
<el-select v-model="scope.row.buNo" v-show="!scope.row.partNo||scope.row.partNo===''" clearable @change="changeBuOfNode(scope.row)" placeholder="请选择">
<el-option
v-for = "i in userBuList"
:key = "i.buNo.split('_')[1]"
:label = "i.buNo.split('_')[1]"
:value = "i.buNo.split('_')[1]">
</el-option>
</el-select>
<span v-if="scope.row.partNo&&scope.row.partNo!==''">{{scope.row[item.columnProp]}}</span>
</span>
<span v-show="item.columnProp==='partDesc'">
<el-input v-model="scope.row.partDesc" clearable></el-input>
</span>
<span v-if="item.columnProp==='tempNo'">
<el-select :loading="buNoQueryLoading" v-model="scope.row.tempNo" clearable @change="chooseTemplate(scope.row)">
<el-option
v-for="option in scope.row.tempList"
:key="option.templateNo"
:label="option.templateName"
:value="option.templateNo">
</el-option>
</el-select>
</span>
<span v-if="item.columnProp==='codeDesc'">
<el-select v-model="scope.row.codeNo" placeholder="请选择" clearable style="width: 200px">
<el-option :loading="buNoQueryLoading"
v-for="option in scope.row.codeList"
:key="option.fieldname1"
:label="option.caption1"
:value="option.fieldname1">
</el-option>
</el-select>
</span>
<span v-show="item.columnProp==='partType2'">
<el-select v-model="scope.row.partType2" clearable>
<el-option label="成品" value="Manufactured"></el-option>
<el-option label="半成品" value="Manufactured Recipe"></el-option>
<el-option label="原材料" value="Purchased (raw)"></el-option>
</el-select>
</span>
<span v-show="item.columnProp==='umName'">
<el-select
v-model="scope.row.umId2" clearable>
@ -335,8 +374,8 @@
</el-option>
</el-select>
</span>
<span v-show="item.columnProp==='familyName'">
<el-select
<span v-if="item.columnProp==='familyName'">
<el-select :loading="buNoQueryLoading"
v-model="scope.row.familyID" clearable>
<el-option
v-for="option in scope.row.partFamilyList"
@ -346,8 +385,8 @@
</el-option>
</el-select>
</span>
<span v-show="item.columnProp==='productGroupName1'">
<el-select
<span v-if="item.columnProp==='productGroupName1'">
<el-select :loading="buNoQueryLoading"
v-model="scope.row.productGroupId1" clearable>
<el-option
v-for="option in scope.row.partProductGroupList1"
@ -357,8 +396,8 @@
</el-option>
</el-select>
</span>
<span v-show="item.columnProp==='productGroupName2'">
<el-select
<span v-if="item.columnProp==='productGroupName2'">
<el-select :loading="buNoQueryLoading"
v-model="scope.row.productGroupId2" clearable>
<el-option
v-for="option in scope.row.partProductGroupList2"
@ -368,8 +407,8 @@
</el-option>
</el-select>
</span>
<span v-show="item.columnProp==='productGroupName3'">
<el-select
<span v-if="item.columnProp==='productGroupName3'">
<el-select :loading="buNoQueryLoading"
v-model="scope.row.productGroupId3" clearable>
<el-option
v-for="option in scope.row.partProductGroupList3"
@ -379,8 +418,8 @@
</el-option>
</el-select>
</span>
<span v-show="item.columnProp==='templateName'">
<el-select
<span v-if="item.columnProp==='templateName'">
<el-select :loading="buNoQueryLoading"
v-model="scope.row.templateNo" clearable>
<el-option
v-for="option in scope.row.templateList"
@ -798,6 +837,9 @@ import {
getItemLists, batchSavePartInfo, addPartsItem, batchUpdateCodeNo, deletePartsItem, commitItemsValue
} from "../../../api/part/partInformation";
import {getChooselist1} from "../../../api/chooselist/chooselist";
import {chooseTemplate, getTemplateList, savePartInfo, updatePartNoOfNode} from "../../../api/part/quicklyCreateBom";
import {getSiteAndBuByUserName} from "../../../api/qc/qc";
import Data from "lodash";
export default {
components: {
PartCreate,
@ -872,12 +914,13 @@ export default {
treeData1: [],
childrenNodeList: [],
umList: [],
userBuList: [],
partFamilyList: [],
partProductGroupList1: [],
partProductGroupList2: [],
partProductGroupList3: [],
templateList: [],
// ignoreFields: ['site', 'buNo', 'partNo', 'codeNo', 'nodeName', 'partDesc', 'propertiesValueList'],
tempList: [],
defaultProps: {
children: "nodeList",
label: "nodeName",
@ -1138,7 +1181,7 @@ export default {
columnImage: false,
status: true,
fixed: '',
columnWidth: 150
columnWidth: 220
},
{
columnProp: 'nodeName',
@ -1151,6 +1194,186 @@ export default {
fixed: '',
columnWidth: 100
},
{
columnProp: 'partType2',
headerAlign: "center",
align: "center",
columnLabel: '零件类型',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'umName',
headerAlign: "center",
align: "center",
columnLabel: '计量单位',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'familyName',
headerAlign: "center",
align: "center",
columnLabel: '物料分类',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'productGroupName1',
headerAlign: "center",
align: "center",
columnLabel: '商品组1',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 250
},
{
columnProp: 'productGroupName2',
headerAlign: "center",
align: "center",
columnLabel: '商品组2',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 250
},
{
columnProp: 'productGroupName3',
headerAlign: "center",
align: "center",
columnLabel: '商品组3',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 250
},
// {
// columnProp: 'nodeName',
// headerAlign: "center",
// align: "center",
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 100
// },
{
columnProp: 'templateName',
headerAlign: "center",
align: "center",
columnLabel: 'BOM模板',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'remark',
headerAlign: "center",
align: "center",
columnLabel: '备注',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 200
},
],
partColumnList2: [
{
columnProp: 'buNo',
headerAlign: "center",
align: "center",
columnLabel: 'BU',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'partNo',
headerAlign: "center",
align: "center",
columnLabel: '料号',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 120
},
{
columnProp: 'partDesc',
headerAlign: "center",
align: "left",
columnLabel: '物料描述',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 320
},
{
columnProp: 'codeDesc',
headerAlign: "center",
align: "center",
columnLabel: '属性模板',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 220
},
{
columnProp: 'nodeName',
headerAlign: "center",
align: "center",
columnLabel: '节点',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'partType2',
headerAlign: "center",
align: "center",
columnLabel: '零件类型',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'tempNo',
headerAlign: "center",
align: "center",
columnLabel: '模板',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},
{
columnProp: 'umName',
headerAlign: "center",
@ -1410,7 +1633,8 @@ export default {
fastAddFlag1: false,
loading: false,
addItemLoading: false,
deleteItemLoading: false
deleteItemLoading: false,
buNoQueryLoading: false
}
},
created () {
@ -1465,6 +1689,9 @@ export default {
if (data && data.code === 0) {
this.treeData = data.rows
}
if (this.batchUpdateFlag){
this.handleBatchUpdatePart()
}
})
},
@ -1473,7 +1700,7 @@ export default {
this.nodeData = {
flag: '1',
site: this.$store.state.user.site,
nodeId: '',
nodeId: 'NODE' + Data.now(),
nodeName: '',
pId: '0',
createBy: this.$store.state.user.name,
@ -1744,20 +1971,11 @@ export default {
//
getRowData (row) {
if (this.partData.nodeFlag&&row.buNo!==this.searchData.buNo) {
this.$message.warning('请确保节点物料的BU与主物料BU一致!')
return
}
if (this.partData.flag === '1') {
this.getInfoByBomTemplate(row)
} else {
this.toPartModule(row)
}
setTimeout(() => {
if (this.batchUpdateFlag){
this.handleBatchUpdatePart()
}
}, 0)
},
// Bom
@ -1776,7 +1994,6 @@ export default {
let tempData = {
site: row.site,
buNo: row.buNo,
codeNo: this.searchData.codeNo,
mainPart: this.searchData.partNo,
partNo: row.partNo,
bomType: 'Manufacturing',
@ -2126,6 +2343,17 @@ export default {
getChooselist1(tempList).then(({data}) => {
this.$set(this, 'codeList', data.list[0][0])
})
let tempData1 = {
username: this.$store.state.user.name,
}
getSiteAndBuByUserName(tempData1).then(({data}) => {
if (data.code === 0) {
this.userBuList = data.rows.sort((a, b) => {
return a.buNo.split('_')[1].localeCompare(b.buNo.split('_')[1]);
});
}
})
this.getTemplateList()
this.getPartItem2()
this.$forceUpdate()
this.batchUpdateFlag = true
@ -2260,17 +2488,19 @@ export default {
this.loading = true
let list = []
for (let i = 0; i <this.partList1.length; i++) {
let items = JSON.parse(JSON.stringify(this.partItemList1))
for (let j = 0; j < this.partItemList1.length; j++) {
items[j].site = this.partList1[i].site
items[j].buNo = this.partList1[i].buNo
items[j].partNo = this.partList1[i].partNo
items[j].codeNo = this.partList1[i].codeNo
items[j].recordType = 'IP'
if (this.partList1[i].partNo&&this.partList1.partNo!==''&&this.partList1[i].buNo && this.partList1[i].buNo === this.searchData.buNo){
let items = JSON.parse(JSON.stringify(this.partItemList1))
for (let j = 0; j < this.partItemList1.length; j++) {
items[j].site = this.partList1[i].site
items[j].buNo = this.partList1[i].buNo
items[j].partNo = this.partList1[i].partNo
items[j].codeNo = this.partList1[i].codeNo
items[j].recordType = 'IP'
}
list.push({
itemList: items
})
}
list.push({
itemList: items
})
}
commitItemsValue(list).then(({data}) => {
if (data && data.code === 0) {
@ -2356,51 +2586,19 @@ export default {
this.$message.warning('请选择可选属性!')
return
}
let flag = true
let codeFlag = true
for (let i = 0; i < this.partList1.length; i++) {
if (!(this.partList1[i].partNo&&this.partList1[i].partNo!=='')){
flag = false
break
}
if (!(this.partList1[i].codeNo&&this.partList1[i].codeNo!=='')){
codeFlag = false
break
}
}
if (!flag){
this.$confirm("当前存在未绑定料号的节点", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
flag = true
})
}
if (!flag) {
return
}
if (!codeFlag){
this.$confirm("请先维护全部节点的属性模版", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
codeFlag = true
})
}
if (!codeFlag) {
return
}
let partList = this.partList1.filter(item => item.partNo&&item.partNo!==''&&item.buNo && item.buNo === this.searchData.buNo)
this.addItemLoading = true
let inDataList = []
for (let i = 0; i < this.partList1.length; i++){
for (let i = 0; i < partList.length; i++){
if (!partList[i].codeNo||partList[i].codeNo===''){
continue
}
inDataList.push({
site: this.partList1[i].site,
buNo: this.partList1[i].buNo,
partNo: this.partList1[i].partNo,
codeNo: this.partList1[i].codeNo,
codeDesc: this.partList1[i].codeDesc,
site: partList[i].site,
buNo: partList[i].buNo,
partNo: partList[i].partNo,
codeNo: partList[i].codeNo,
codeDesc: partList[i].codeDesc,
recordType: 'IP',
itemList: this.itemSelections1
})
@ -2467,14 +2665,15 @@ export default {
})
return false
}
let partList = this.partList1.filter(item => item.partNo&&item.partNo!==''&&item.buNo && item.buNo === this.searchData.buNo)
let inDataList = []
for (let i = 0; i < this.partList1.length; i++){
for (let i = 0; i < partList.length; i++){
let items = JSON.parse(JSON.stringify(this.itemSelections2))
for (let j = 0; j < this.itemSelections2.length; j++) {
items[j].site = this.partList1[i].site
items[j].buNo = this.partList1[i].buNo
items[j].partNo = this.partList1[i].partNo
items[j].codeNo = this.partList1[i].codeNo
items[j].site = partList[i].site
items[j].buNo = partList[i].buNo
items[j].partNo = partList[i].partNo
items[j].codeNo = partList[i].codeNo
items[j].recordType = 'IP'
}
inDataList.push({
@ -2512,14 +2711,19 @@ export default {
const index = this.partCurrentRowIndex
if(index > -1 && index < this.partList1.length - 1){
const nextRow = this.partList1[index + 1]
const excludeFields = ['buNo', 'nodeId', 'nodeName', 'site', 'partDesc', 'partNo'];
for (const key in this.partCurrentRow) {
if (!excludeFields.includes(key)) {
this.$set(nextRow, key, this.partCurrentRow[key]);
if (nextRow.buNo!==this.partCurrentRow.buNo){
this.$message.warning("当前选择行数据的BU与下一行的不同,只会复制计量单位和BOM模板!")
this.partList1[index+1].umId2 = this.partCurrentRow.umId2
this.partList1[index+1].templateNo = this.partCurrentRow.templateNo
}else {
const excludeFields = ['buNo', 'nodeId', 'nodeName', 'site', 'partDesc', 'partNo'];
for (const key in this.partCurrentRow) {
if (!excludeFields.includes(key)) {
this.$set(nextRow, key, this.partCurrentRow[key]);
}
}
this.partList1[index + 1] = nextRow
}
this.partList1[index + 1] = nextRow
batchSavePartInfo(this.partList1).then(({data}) => {
if (data && data.code === 0){
this.handleBatchUpdatePart()
@ -2545,18 +2749,74 @@ export default {
}
},
handleEditInfo(){
async handleEditInfo(){
if (this.attributeFlag===true){
this.getPropertiesList()
this.attributeFlag = false
} else {
for (let i = 0; i < this.partList1.length; i++) {
if (this.partList1[i].buNo===null||this.partList1[i].buNo===''){
this.$message.warning("请先选择物料再保存!")
return
if (!this.partList1[i].partNo||this.partList1[i].partNo===''){
//
//
if (this.partList1[i].partDesc === '' || this.partList1[i].partDesc == null) {
continue
}
this.partList1[i].partNo = '*'
this.partList1[i].active = 'Y'
this.partList1[i].createBy = this.$store.state.user.name
this.partList1[i].mainPart = this.searchData.partNo
if (this.partList1[i].buNo === '' || this.partList1[i].buNo == null) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的BU!')
return
}
if (this.partList1[i].partType2 === '' || this.partList1[i].partType2 == null) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的零件类型!')
return
}
if (this.partList1[i].umId2 === '' || this.partList1[i].umId2 == null) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的计量单位!')
return
}
if (this.partList1[i].partType2 === 'Purchased (raw)' && (this.partList1[i].familyID === '' || this.partList1[i].familyID == null)) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的物料分类!')
return
}
if (this.partList1[i].partType2 !== 'Purchased (raw)' && (this.partList1[i].productGroupId1 === '' || this.partList1[i].productGroupId1 == null)) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的商品组1!')
return
}
if (this.partList1[i].partType2 !== 'Purchased (raw)' && (this.partList1[i].productGroupId2 === '' || this.partList1[i].productGroupId2 == null)) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的商品组2!')
return
}
if (this.partList1[i].codeNo === '' || this.partList1[i].codeNo == null) {
this.$message.warning('请选择'+ this.partList1[i].nodeName +'节点的属性模板!')
return
}
let flag = true
//
await savePartInfo(this.partList1[i]).then((data) => {
if (data.data && data.data.code === 0) {
this.partList1[i].partNo = data.data.rows.partNo
updatePartNoOfNode(this.partList1[i]).then((data) => {
if (data.data && data.data.code === 0) {
}else {
this.$message.error(data.msg)
}
})
} else {
this.$message.error(data.msg)
flag = false
}
})
if (!flag) {
return
}
}
}
batchSavePartInfo(this.partList1).then(({data}) => {
//
batchSavePartInfo(this.partList1.filter(item => item.partNo&&item.partNo!=='')).then(({data}) => {
if (data && data.code === 0){
this.handleBatchUpdatePart()
this.$message({
@ -2603,6 +2863,7 @@ export default {
"select product_group_id fieldname1,product_group_name caption1 from part_product_group where active = 'Y' and type = '1' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+this.partList1[i].buNo+"'",
"select product_group_id fieldname1,product_group_name caption1 from part_product_group where active = 'Y' and type = '2' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+this.partList1[i].buNo+"'",
"select product_group_id fieldname1,product_group_name caption1 from part_product_group where active = 'Y' and type = '3' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+this.partList1[i].buNo+"'",
"Select code_no as fieldname1, code_desc as caption1 from plm_properties_model_header where function_type = 'IP' and active = 'Y' and (code_no like '%%' OR code_desc like '%%' ) and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+this.partList1[i].buNo+"'"
]
}
}
@ -2614,6 +2875,7 @@ export default {
this.$set(this.partList1[i], 'partProductGroupList1', data.data.list[i][1]);
this.$set(this.partList1[i], 'partProductGroupList2', data.data.list[i][2]);
this.$set(this.partList1[i], 'partProductGroupList3', data.data.list[i][3]);
this.$set(this.partList1[i], 'codeList', data.data.list[i][4]);
this.$set(this.partList1[i], 'templateList', data.data.list[this.partList1.length][1]);
}
}
@ -2622,15 +2884,9 @@ export default {
handleCodeNoChange(value) {
const previousValue = this.previousCodeNo;
let flag = true
let partList = []
for (let i = 0; i < this.partList1.length; i++) {
if (!this.partList1[i].partNo||this.partList1[i].partNo===''){
flag = false
}
}
if (flag) {
let partList = []
for (let i = 0; i < this.partList1.length; i++) {
if (this.partList1[i].partNo&&this.partList1[i].partNo!==''&&this.partList1[i].buNo&&this.partList1[i].buNo === this.searchData.buNo){
let temp = {
site: this.$store.state.user.site,
partNo: this.partList1[i].partNo,
@ -2638,30 +2894,85 @@ export default {
}
partList.push(temp)
}
batchUpdateCodeNo(partList).then(({data}) => {
if (data&&data.code === 0){
this.handleBatchUpdatePart()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$set(this.searchData, 'codeNo', previousValue)
this.$message({
message: data.msg,
type: 'error',
duration: 1500,
onClose: () => {}
})
}
batchUpdateCodeNo(partList).then(({data}) => {
if (data&&data.code === 0){
this.handleBatchUpdatePart()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$set(this.searchData, 'codeNo', previousValue)
this.$message({
message: data.msg,
type: 'error',
duration: 1500,
onClose: () => {}
})
}
})
},
async changeBuOfNode(row) {
this.buNoQueryLoading = true
row.familyId = ''
row.productGroupId1 = ''
row.productGroupId2 = ''
row.productGroupId3 = ''
row.codeNo = ''
row.bu = this.$store.state.user.site + '_' + row.buNo
const propLists = [
[
"select family_id fieldname1, family_name caption1 from part_family where active = 'Y' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+row.buNo+"'",
"select product_group_id fieldname1,product_group_name caption1 from part_product_group where active = 'Y' and type = '1' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+row.buNo+"'",
"select product_group_id fieldname1,product_group_name caption1 from part_product_group where active = 'Y' and type = '2' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+row.buNo+"'",
"select product_group_id fieldname1,product_group_name caption1 from part_product_group where active = 'Y' and type = '3' and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+row.buNo+"'",
"Select code_no as fieldname1, code_desc as caption1 from plm_properties_model_header where function_type = 'IP' and active = 'Y' and (code_no like '%%' OR code_desc like '%%' ) and site in (select site from eam_access_site where username = '"+this.$store.state.user.name+"') and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '"+this.$store.state.user.name+"') and site = '"+this.$store.state.user.site+"' and bu_no = '"+row.buNo+"'"
]
]
await getChooselist1(propLists).then((data) => {
if (data.data && data.data.code === 0){
this.$set(row, 'partFamilyList', data.data.list[0][0])
this.$set(row, 'partProductGroupList1', data.data.list[0][1])
this.$set(row, 'partProductGroupList2', data.data.list[0][2])
this.$set(row, 'partProductGroupList3', data.data.list[0][3])
this.$set(row, 'codeList', data.data.list[0][4])
}
})
await getTemplateList(row).then(({data}) => {
if (data && data.code === 0) {
this.$set(row, 'tempList', data.rows)
}
})
this.buNoQueryLoading = false
},
chooseTemplate(row){
chooseTemplate(row).then(({data}) => {
if (data&&data.code===0) {
Object.keys(data.data).forEach(key => {
if (key !== 'tempNo') {
row[key] = data.data[key];
}
});
row.umId2 = data.data.umId
row.familyID = data.data.familyId
row.templateNo = data.data.bomTemplateNo
row.templateName = data.data.bomTemplateName
}
})
},
getTemplateList() {
for (let i = 0; i < this.partList1.length; i++) {
getTemplateList(this.partList1[i]).then(({data}) => {
if (data && data.code === 0) {
this.partList1[i].tempList = data.rows
}
})
} else {
this.$nextTick(() => {
this.$set(this.searchData, 'codeNo', previousValue)
this.$message.warning('请先选择所有节点的对应物料!');
});
}
},

48
src/views/modules/quote/detail/quoteDetail.vue

@ -43,7 +43,7 @@ export default {
},
height:{
type:[Number,String],
default:300
default:400
},
},
data(){
@ -129,7 +129,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 68
columnWidth: '5.2vw'
},
{
userId: this.$store.state.user.name,
@ -147,7 +147,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 180
columnWidth: '10vw'
},
{
userId: this.$store.state.user.name,
@ -165,7 +165,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 48
columnWidth: '4.5vw'
},
{
userId: this.$store.state.user.name,
@ -183,7 +183,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 70
columnWidth: '4.4vw'
},
{
userId: this.$store.state.user.name,
@ -201,7 +201,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
columnWidth: '5.2vw'
},
{
userId: this.$store.state.user.name,
@ -219,7 +219,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 55
columnWidth: '5.2vw'
},
{
userId: this.$store.state.user.name,
@ -237,7 +237,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 55
columnWidth: '5.2vw'
},
{
userId: this.$store.state.user.name,
@ -255,7 +255,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 55
columnWidth: '5.2vw'
},
{
userId: this.$store.state.user.name,
@ -273,7 +273,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 55
columnWidth: '3.4vw'
},
{
userId: this.$store.state.user.name,
@ -291,7 +291,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 75
columnWidth: '4.7vw'
},
{
userId: this.$store.state.user.name,
@ -309,7 +309,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 75
columnWidth: '4.7vw'
},
{
userId: this.$store.state.user.name,
@ -327,7 +327,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 54
columnWidth: '3.4vw'
},
{
userId: this.$store.state.user.name,
@ -345,7 +345,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 65
columnWidth: '4vw'
},
{
userId: this.$store.state.user.name,
@ -363,7 +363,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
columnWidth: '7.5vw'
},
{
userId: this.$store.state.user.name,
@ -381,7 +381,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 83
columnWidth: '5.2vw'
},
{
userId: this.$store.state.user.name,
@ -399,7 +399,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 75
columnWidth: '4.7vw'
},
{
userId: this.$store.state.user.name,
@ -417,7 +417,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 75
columnWidth: '4.7vw'
},
{
userId: this.$store.state.user.name,
@ -435,7 +435,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 75
columnWidth: '4.7vw'
},
{
userId: this.$store.state.user.name,
@ -453,7 +453,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 355
columnWidth: '22.1vw'
},
],
partVisible:false,
@ -756,13 +756,13 @@ export default {
let filter = ['type','weighted','weighted2','deltaValue']
resultArray = resultArray.filter(item=> !filter.includes(item.columnProp))
let row = resultArray[resultArray.length-1]
row.columnWidth = 300;
row.columnWidth = '18.7vw';
}else if (this.quote.quoteType === 'USD'){
let filter = ['totalPrice']
let width = 140;
let width = '8.7vw'
if (this.quote.deltaFlag === 'N'){
filter.push('deltaValue')
width += 60
width = '12.5vw'
}
resultArray = resultArray.filter(item=> !filter.includes(item.columnProp))
let row = resultArray[resultArray.length-1]
@ -796,7 +796,7 @@ export default {
<template v-if="saveAuth">
<el-button type="primary" v-if="!authFlag" :disabled="quote.status !== '草稿' || !quote.status" @click="handleSaveQuoteDetail(null)">新增</el-button>
</template>
<el-table ref="table1" v-loading="queryLoading" border :data="dataList" style="width: 100%;margin-top: 5px"
<el-table overflow-y: scroll ref="table1" v-loading="queryLoading" border :data="dataList" style="width: 100%;margin-top: 5px"
:height="height" @header-dragend="handleColumnResize" :header-cell-style="getHeaderStyle">
<el-table-column width="50" align="center" label="默认行" v-if="quoteGroupDetail && quoteGroupDetail.status === '草稿'">
<template slot-scope="{row}">

Loading…
Cancel
Save