You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
815 lines
26 KiB
815 lines
26 KiB
<script>
|
|
import {queryQuoteDetailBomTree} from "@/api/quote/quoteDetailBomTree";
|
|
import {
|
|
queryQuoteDetailRouting,
|
|
queryQuoteDetailRoutingAlternative, changeQuoteDetailRoutingChange,
|
|
queryQuoteDetailRoutingVersion
|
|
} from "@/api/quote/quoteDetailRouting";
|
|
|
|
export default {
|
|
name: "quoteDetailRouting",
|
|
props:{
|
|
quoteDetail:{
|
|
type:Object,
|
|
required:true
|
|
},
|
|
},
|
|
model:{
|
|
prop: "quoteDetail",
|
|
event: "update"
|
|
},
|
|
data(){
|
|
return{
|
|
isAllRouting:false,
|
|
dataList:[],
|
|
queryLoading:false,
|
|
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: 'routingRevision',
|
|
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: '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: '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: '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: '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: '5011Table5MachCycleTime',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'machCycleTime',
|
|
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: '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: '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: '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: '5011Table5LaborCycleTime',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'laborCycleTime',
|
|
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: '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: '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: '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: '5011Table5ResourceNum',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'resourceNum',
|
|
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: '5011Table5LaborClassCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'laborClassCost',
|
|
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: '5011Table5SetupLaborClassCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'setupLaborClassCost',
|
|
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: '5011Table5WorkCenterCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'workCenterCost',
|
|
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: '5011Table5ManuCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'manuCost',
|
|
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: '5011Table5TotalMachCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'totalMachCost',
|
|
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: '5011Table5TotalManCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'totalManCost',
|
|
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: '5011Table5TotalLaborCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'totalLaborCost',
|
|
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: '5011Table5TotalCost',
|
|
tableId: "5011Table5",
|
|
tableName: "报价工艺信息",
|
|
columnProp: 'totalCost',
|
|
headerAlign: "center",
|
|
align: "right",
|
|
columnLabel: '成本小计',
|
|
columnHidden: false,
|
|
columnImage: false,
|
|
columnSortable: false,
|
|
sortLv: 0,
|
|
status: true,
|
|
fixed: 'right',
|
|
columnWidth: 120,
|
|
},
|
|
],
|
|
props:{
|
|
children: 'list',
|
|
label: (data,node)=>{
|
|
return `${data.partNo}-${data.engChgLevel}-${data.alternativeNo}-${data.bomType}`;
|
|
},
|
|
},
|
|
queryTreeLoading:false,
|
|
versionVisible:false,
|
|
versionList:[],
|
|
alternativeList:[],
|
|
routing:{
|
|
|
|
}
|
|
}
|
|
},
|
|
methods:{
|
|
handleQueryQuoteDetailBomTree(){
|
|
let params = {
|
|
id: this.quoteDetail.id,
|
|
}
|
|
this.queryTreeLoading = true;
|
|
queryQuoteDetailBomTree(params).then(({data})=>{
|
|
if (data && data.code === 0){
|
|
this.treeData = data.rows;
|
|
if (this.treeData.length > 0){
|
|
this.$nextTick(()=>{
|
|
this.$refs.tree.setCurrentKey(this.treeData[0].id);
|
|
this.handleQueryDetailRouting();
|
|
})
|
|
}
|
|
this.queryTreeLoading = false;
|
|
}else {
|
|
this.$message.warning(data.msg);
|
|
this.queryTreeLoading = false;
|
|
}
|
|
}).catch((error)=>{
|
|
this.$message.error(error);
|
|
})
|
|
},
|
|
nodeClick(data){
|
|
this.handleQueryDetailRouting();
|
|
},
|
|
handleQueryDetailRouting(){
|
|
let node = this.$refs.tree.getCurrentNode();
|
|
let params = {
|
|
treeId:node.id,
|
|
quoteDetailId: this.quoteDetail.id,
|
|
isAllRouting: this.isAllRouting,
|
|
}
|
|
this.queryLoading = true;
|
|
queryQuoteDetailRouting(params).then(({data})=>{
|
|
if (data && data.code === 0){
|
|
this.dataList = data.rows;
|
|
}else {
|
|
this.$message.warning(data.msg);
|
|
}
|
|
this.queryLoading = false;
|
|
}).catch((error)=>{
|
|
this.$message.error(error);
|
|
this.queryLoading = false;
|
|
})
|
|
},
|
|
handleChangeVersion(){
|
|
let node = this.$refs.tree.getCurrentNode();
|
|
let row = {
|
|
routingRevision:null,
|
|
alternativeNo: '',
|
|
routingType: null,
|
|
}
|
|
if (this.treeData.length === 0){
|
|
this.$message.warning("未维护BOM结构")
|
|
return;
|
|
}
|
|
if (this.dataList.length > 0){
|
|
row = this.dataList[0];
|
|
}
|
|
if (node){
|
|
this.routing = {
|
|
partNo: node.partNo,
|
|
buNo: node.buNo,
|
|
site: node.site,
|
|
routingType: row.routingType,
|
|
routingRevision: row.routingRevision,
|
|
alternativeNo: row.alternativeNo,
|
|
}
|
|
}
|
|
this.handleQueryVersionList();
|
|
this.versionVisible = true;
|
|
},
|
|
versionRowStyle({row}){
|
|
if (row.routingRevision === this.routing.routingRevision && row.routingType === this.routing.routingType){
|
|
return { 'background-color': '#E8F7F6' };
|
|
}
|
|
},
|
|
handleQueryVersionList(){
|
|
let node = this.$refs.tree.getCurrentNode();
|
|
let params = {
|
|
treeId: node.id,
|
|
routingType: this.routing.routingType,
|
|
}
|
|
queryQuoteDetailRoutingVersion(params).then(({data})=>{
|
|
if (data && data.code === 0){
|
|
this.versionList = data.rows;
|
|
if (this.versionList.length > 0){
|
|
this.handleQueryAlternativeList();
|
|
}
|
|
}else {
|
|
this.$message.warning(data.msg);
|
|
}
|
|
}).catch((error)=>{
|
|
this.$message.error(error);
|
|
})
|
|
},
|
|
handleQueryAlternativeList(){
|
|
let params = {
|
|
...this.routing,
|
|
}
|
|
queryQuoteDetailRoutingAlternative(params).then(({data})=>{
|
|
if (data && data.code === 0){
|
|
this.alternativeList = data.rows;
|
|
}else {
|
|
this.$message.warning(data.msg);
|
|
}
|
|
}).catch((error)=>{
|
|
this.$message.error(error);
|
|
})
|
|
},
|
|
versionRowClick(row){
|
|
this.routing.routingType = row.routingType;
|
|
this.routing.routingRevision = row.routingRevision;
|
|
this.handleQueryAlternativeList();
|
|
},
|
|
alternativeRowStyle({row}){
|
|
if (this.dataList.length > 0){
|
|
if (this.dataList[0].alternativeNo === row.alternativeNo && this.dataList[0].routingRevision === row.routingRevision && this.dataList[0].routingType === row.routingType){
|
|
return { 'background-color': '#E8F7F6' };
|
|
}
|
|
}
|
|
},
|
|
changeRouting(row){
|
|
let params = {
|
|
quoteId: this.quoteDetail.quoteId,
|
|
quoteDetailId: this.quoteDetail.id,
|
|
quoteDetailItemNo:this.quoteDetail.itemNo,
|
|
versionNo: this.quoteDetail.versionNo,
|
|
site: row.site,
|
|
partNo: row.partNo,
|
|
buNo: row.buNo,
|
|
quoteNo: this.quoteDetail.quoteNo,
|
|
routingType: row.routingType,
|
|
routingRevision: row.routingRevision,
|
|
alternativeNo: row.alternativeNo,
|
|
treeId: this.$refs.tree.getCurrentNode().id,
|
|
createBy: this.$store.state.user.name,
|
|
}
|
|
changeQuoteDetailRoutingChange(params).then(({data})=>{
|
|
if (data && data.code === 0){
|
|
this.$message.success(data.msg);
|
|
this.versionVisible = false;
|
|
this.handleQueryDetailRouting();
|
|
}else {
|
|
this.$message.warning(data.msg);
|
|
}
|
|
}).catch((error)=>{
|
|
this.$message.error(error)
|
|
})
|
|
|
|
},
|
|
handleJumpToRouting(row){
|
|
if (this.$router.resolve('part-routingManagement').resolved.name === '404') {
|
|
this.$alert('权限不足,访问失败', '警告', {confirmButtonText: '确定',});
|
|
} else {
|
|
this.$emit('close')
|
|
let params = {
|
|
name: "part-routingManagement",
|
|
params: {
|
|
type:'quote',
|
|
partNo:row.partNo,
|
|
routingType:row.routingType,
|
|
routingRevision:row.routingRevision,
|
|
alternativeNo:row.alternativeNo,
|
|
}
|
|
}
|
|
this.$router.push(params)
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
if (this.quoteDetail && this.quoteDetail.id){
|
|
this.handleQueryQuoteDetailBomTree();
|
|
}
|
|
},
|
|
watch:{
|
|
'quoteDetail.id'(newVal,oldVal){
|
|
this.handleQueryQuoteDetailBomTree();
|
|
},
|
|
isAllRouting(newVal,oldVal){
|
|
this.handleQueryDetailRouting();
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<div>
|
|
<div style="margin-bottom: 10px">
|
|
<el-link style="margin-right: 20px;cursor:pointer;" @click="handleChangeVersion" v-if="quoteDetail.status === '草稿'">切换版本</el-link>
|
|
<el-checkbox v-model="isAllRouting">全级Routing结构</el-checkbox>
|
|
</div>
|
|
<el-container>
|
|
<el-aside width="300px" v-loading="queryTreeLoading">
|
|
<el-tree
|
|
:data="treeData"
|
|
:props="props"
|
|
:default-expand-all="true"
|
|
:expand-on-click-node="false"
|
|
node-key="id"
|
|
highlight-current
|
|
@node-click="nodeClick" ref="tree">
|
|
|
|
</el-tree>
|
|
</el-aside>
|
|
<el-main style="padding: 0">
|
|
<el-table :data="dataList" v-loading="queryLoading" 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">
|
|
<template v-if="item.columnProp === 'partNo'">
|
|
<el-link @click="handleJumpToRouting(scope.row)">{{ scope.row[item.columnProp] }}</el-link>
|
|
</template>
|
|
<template v-else>
|
|
<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>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-main>
|
|
</el-container>
|
|
|
|
<el-dialog title="切换版本" :visible.sync="versionVisible" width="1000px" v-drag :close-on-click-modal="false" append-to-body>
|
|
<el-table :data="versionList" :row-style="versionRowStyle" ref="routingVersionTable" style="margin-top: 8px" border :height="240" @row-click="versionRowClick">
|
|
<el-table-column label="物料编码" prop="partNo" header-align="center" align="center" show-overflow-tooltip min-width="140"/>
|
|
<el-table-column label="物料描述" prop="partDesc" header-align="center" align="left" show-overflow-tooltip min-width="200"/>
|
|
<el-table-column label="版本" prop="routingRevision" header-align="center" align="center" show-overflow-tooltip min-width="60"/>
|
|
<el-table-column label="类型" prop="routingType" header-align="center" align="center" show-overflow-tooltip min-width="100"/>
|
|
</el-table>
|
|
|
|
<el-table :data="alternativeList" :row-style="alternativeRowStyle" ref="routingAlternativeTable" border :height="240" style="margin-top: 8px">
|
|
<el-table-column label="物料编码" prop="partNo" header-align="center" align="center" show-overflow-tooltip min-width="140"/>
|
|
<el-table-column label="物料描述" prop="partDesc" header-align="center" align="left" show-overflow-tooltip min-width="200"/>
|
|
<el-table-column label="版本" prop="routingRevision" header-align="center" align="center" show-overflow-tooltip min-width="60"/>
|
|
<el-table-column label="替代编码" prop="alternativeNo" header-align="center" align="left" show-overflow-tooltip min-width="60"/>
|
|
<el-table-column label="类型" prop="routingType" header-align="center" align="center" show-overflow-tooltip min-width="100"/>
|
|
<el-table-column label="操作" min-width="80" header-align="center" align="center">
|
|
<template slot-scope="{row,$index}">
|
|
<a @click="changeRouting(row)">选择</a>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
|
|
</style>
|