Browse Source

20240820 报价

java8
qiezi 2 years ago
parent
commit
5b2efd863c
  1. 2
      src/api/quote/quote.js
  2. 6
      src/views/modules/property/propertyTemplate.vue
  3. 206
      src/views/modules/quote/detail/primary/quoteDetailBom.vue
  4. 461
      src/views/modules/quote/detail/primary/quoteDetailRouting.vue
  5. 2
      src/views/modules/quote/detail/primary/quoteDetailTool.vue
  6. 64
      src/views/modules/quote/index.vue

2
src/api/quote/quote.js

@ -8,3 +8,5 @@ export const updateQuote = (data) => createAPI(`/quote/update`,'post',data)
export const removeQuote = (data) => createAPI(`/quote/remove/${data.id}`,'post',data)
export const againQuote = (data) => createAPI(`/quote/again`,'post',data)
export const queryQuoteRoleUser = (data) => createAPI(`/quote/user`,'post',data)

6
src/views/modules/property/propertyTemplate.vue

@ -772,6 +772,7 @@ export default {
</el-table-column>
<el-table-column
header-align="center"
fixed="right"
align="center"
width="160"
label="操作">
@ -1034,8 +1035,5 @@ export default {
</template>
<style scoped>
.el-table /deep/ .cell{
height: auto;
line-height: 1.5;
}
</style>

206
src/views/modules/quote/detail/primary/quoteDetailBom.vue

@ -16,6 +16,196 @@ export default {
isAllBom:false,
dataList:[],
treeData:[],
columns:[
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4LineSequence',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'lineSequence',
headerAlign: "center",
align: "center",
columnLabel: '序号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 50,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4PartNo',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'partNo',
headerAlign: "center",
align: "center",
columnLabel: '产品编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4ComponentPart',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'componentPart',
headerAlign: "center",
align: "center",
columnLabel: '零部件编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4ComponentPartDesc',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'componentPartDesc',
headerAlign: "center",
align: "left",
columnLabel: '物料名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4QtyPerAssembly',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'qtyPerAssembly',
headerAlign: "center",
align: "right",
columnLabel: '单位用量',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4ComponentScrap',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'componentScrap',
headerAlign: "center",
align: "right",
columnLabel: '调机用量',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4ShrinkageFactor',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'shrinkageFactor',
headerAlign: "center",
align: "right",
columnLabel: '损耗率%',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4PrintUnitName',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'printUnit',
headerAlign: "center",
align: "center",
columnLabel: '单位',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4NoteText',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'noteText',
headerAlign: "center",
align: "left",
columnLabel: '备注',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4UnitCost',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'unitCost',
headerAlign: "center",
align: "right",
columnLabel: '单位成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4QuoteUnitCost',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'quoteUnitCost',
headerAlign: "center",
align: "right",
columnLabel: '单位报价成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: 'right',
columnWidth: 90,
},
],
}
},
methods:{
@ -51,7 +241,21 @@ export default {
</el-aside>
<el-main style="padding: 0">
<el-table :data="dataList" border style="width: 100%" :height="420">
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</el-main>
</el-container>

461
src/views/modules/quote/detail/primary/quoteDetailRouting.vue

@ -16,6 +16,451 @@ export default {
isAllBom:false,
dataList:[],
treeData:[],
columns: [
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5OperationNo',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'operationNo',
headerAlign: "center",
align: "center",
columnLabel: '工序号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5OperationName',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'operationName',
headerAlign: "center",
align: "left",
columnLabel: '工序名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5PartNo',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'partNo',
headerAlign: "center",
align: "left",
columnLabel: '物料编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5PartDesc',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'partDesc',
headerAlign: "center",
align: "left",
columnLabel: '物料描述',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 200,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5Version',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'version',
headerAlign: "center",
align: "center",
columnLabel: '版本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5AlternativeNo',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'alternativeNo',
headerAlign: "center",
align: "left",
columnLabel: '替代编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5AlternativeDesc',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'alternativeDesc',
headerAlign: "center",
align: "left",
columnLabel: '替代描述',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5WorkCenterNo',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'workCenterNo',
headerAlign: "center",
align: "left",
columnLabel: '加工中心编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5WorkCenterDesc',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'workCenterDesc',
headerAlign: "center",
align: "left",
columnLabel: '加工中心名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 200,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5WorkCenterCost',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'workCenterCost',
headerAlign: "center",
align: "left",
columnLabel: '加工中心成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5EfficiencyFactor',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'efficiencyFactor',
headerAlign: "center",
align: "right",
columnLabel: '效率%',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5MachRunFactor',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'machRunFactor',
headerAlign: "center",
align: "right",
columnLabel: '机器单位产出',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5MachSetupTime',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'machSetupTime',
headerAlign: "center",
align: "right",
columnLabel: '调机时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5RunTimeDesc',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'runTimeDesc',
headerAlign: "center",
align: "center",
columnLabel: '产出单位',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5LaborRunFactor',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'laborRunFactor',
headerAlign: "center",
align: "right",
columnLabel: '人工单位产出',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5LaborSetupTime',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'laborSetupTime',
headerAlign: "center",
align: "right",
columnLabel: '人工调机时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5CrewSize',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'crewSize',
headerAlign: "center",
align: "right",
columnLabel: '生产过程人数',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5SetupCrewSize',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'setupCrewSize',
headerAlign: "center",
align: "right",
columnLabel: '调机过程人数',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5LaborClassNo',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'laborClassNo',
headerAlign: "center",
align: "left",
columnLabel: '人员等级',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5SetupLaborClassNo',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'setupLaborClassNo',
headerAlign: "center",
align: "left",
columnLabel: '调机过程中人员等级',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5LaborClassCost',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'laborClassCost',
headerAlign: "center",
align: "left",
columnLabel: '人员等级成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5SetupLaborClassCost',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'setupLaborClassCost',
headerAlign: "center",
align: "left",
columnLabel: '调机人员等级成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5MachineCost',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'machineCost',
headerAlign: "center",
align: "right",
columnLabel: '单位机器成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5MachineCost',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'unitManufacturingCosts',
headerAlign: "center",
align: "right",
columnLabel: '单位制造成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5LaborCosts',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'laborCosts',
headerAlign: "center",
align: "right",
columnLabel: '单位人工成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table5QuoteUnitCost',
tableId: "5011Table5",
tableName: "报价工艺信息",
columnProp: 'quoteUnitCost',
headerAlign: "center",
align: "right",
columnLabel: '单位报价成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: 'right',
columnWidth: 120,
},
],
}
},
methods:{
@ -51,7 +496,21 @@ export default {
</el-aside>
<el-main style="padding: 0">
<el-table :data="dataList" border style="width: 100%" :height="420">
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</el-main>
</el-container>

2
src/views/modules/quote/detail/primary/quoteDetailTool.vue

@ -27,7 +27,7 @@ export default {
toolDesc:"",
toolQty:1,
unitCost:0,
expectedServiceLife:0,
expectedServiceLife:1,
quoteUnitCost:0,
remark:""
},

64
src/views/modules/quote/index.vue

@ -1,7 +1,7 @@
<script>
import QuoteSearch from "./primary/quoteSearch.vue";
import QuoteTable from "./primary/quoteTable.vue";
import {queryQuotePage, removeQuote, saveQuote, updateQuote} from "../../../api/quote/quote";
import {queryQuotePage, queryQuoteRoleUser, removeQuote, saveQuote, updateQuote} from "../../../api/quote/quote";
import {getSiteAndBuByUserName} from "../../../api/eam/eam";
import CustomerTable from "../../../components/selector/table/customerTable.vue";
import BuSelect from "../../../components/selector/select/BuSelect.vue";
@ -196,10 +196,10 @@ export default {
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table1Quoter',
serialNumber: '5011Table1QuoterName',
tableId: '5011Table1',
tableName: '报价信息表',
columnProp: 'quoter',
columnProp: 'quoterName',
headerAlign: 'center',
align: 'left',
columnLabel: '报价专员',
@ -214,10 +214,10 @@ export default {
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table1Purchase',
serialNumber: '5011Table1PurchaseName',
tableId: '5011Table1',
tableName: '报价信息表',
columnProp: 'purchase',
columnProp: 'purchaseName',
headerAlign: 'center',
align: 'left',
columnLabel: '采购专员',
@ -403,6 +403,8 @@ export default {
username:'',
userDisplay:'',
active:'',
buId:null,
roleNo:'',
},
userDataList:[],
}
@ -425,7 +427,7 @@ export default {
this.currentQuote = {}
}
}else {
this.$message.error(data.message)
this.$message.error(data.msg)
}
this.searchLoading = false
}).catch(error=>{
@ -469,7 +471,7 @@ export default {
if (data && data.code === 0) {
this.userBuList = data.rows
}else {
this.$message.warning(data.message)
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
@ -508,7 +510,7 @@ export default {
this.saveVisible = false
this.$message.success(data.msg)
}else {
this.$message.warning(data.message)
this.$message.warning(data.msg)
}
this.handleSearch();
this.saveLoading = false
@ -528,7 +530,7 @@ export default {
this.saveVisible = false
this.$message.success(data.msg)
}else {
this.$message.warning(data.message)
this.$message.warning(data.msg)
}
this.handleSearch();
this.saveLoading = false
@ -568,7 +570,7 @@ export default {
this.$message.success(data.msg)
this.handleSearch();
}else {
this.$message.warning(data.message)
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
@ -610,7 +612,7 @@ export default {
this.saveQuote.projectDesc = ''
}
}else {
this.$message.warning(data.message)
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
@ -627,12 +629,17 @@ export default {
this.saveQuote.purchase = row.username
this.purchaseVisible = false
}
this.userVisible = false
},
handleQuoterClick(){
this.userTitle = '报价专员'
this.user.username = this.saveQuote.quoter
this.user.userDisplay = ''
this.user.active = ''
this.user.buId = this.saveQuote.buId
this.user.roleNo = 'QUOTER'
this.quoterVisible = true
this.handleQueryQuoteRoleUser();
this.userVisible = true
},
handlePurchaseClick(){
@ -640,7 +647,26 @@ export default {
this.user.username = this.saveQuote.purchase
this.user.userDisplay = ''
this.user.active = ''
this.user.buId = this.saveQuote.buId
this.user.roleNo = 'PURCHASE'
this.purchaseVisible = true
this.handleQueryQuoteRoleUser();
this.userVisible = true
},
handleQueryQuoteRoleUser(){
let params = {
...this.user,
}
this.userDataList = []
queryQuoteRoleUser(params).then(({data})=>{
if (data && data.code === 0){
this.userDataList = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}
},
created() {
@ -799,14 +825,14 @@ export default {
<el-form-item label="是否在用">
<el-select filterable v-model="user.active" style="width: 100%">
<el-option label="全部" value=""></el-option>
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label=" ">
<el-button type="primary">查询</el-button>
<el-form-item label=" " >
<el-button type="primary" @click="handleQueryQuoteRoleUser">查询</el-button>
</el-form-item>
</el-col>
</el-row>
@ -814,8 +840,6 @@ export default {
<el-table
:height="300"
:data="userDataList"
stripe
highlight-current-row
border
@row-dblclick="userDblClick"
style="width: 100%;">
@ -832,10 +856,14 @@ export default {
label="用户名">
</el-table-column>
<el-table-column
prop="active"
prop="status"
header-align="center"
align="center"
label="是否在用">
<template slot-scope="scope">
<span v-if="scope.row.status === 1"></span>
<span v-if="scope.row.status === 0"></span>
</template>
</el-table-column>
</el-table>
</el-dialog>

Loading…
Cancel
Save