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.
 
 
 
 
 

821 lines
30 KiB

<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item >
<span slot="label" style="" @click="getSearchModal()"><a herf="#">物料编码</a></span>
<el-input v-model="mainData.partNo" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'物料名称/规格型号:'">
<el-input v-model="mainData.spec" readonly style="width: 274px"></el-input>
</el-form-item>
<el-form-item :label="'状态:'">
<el-input v-model="mainData.status" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'工厂编号:'">
<el-input v-model="mainData.site" readonly style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="'工艺路线类型:'">
<el-input v-model="mainData.routingType" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'版本号:'">
<el-input v-model="mainData.revNo" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'启用日期:'">
<el-input v-model="mainData.phaseInDate" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'停用日期:'">
<el-input v-model="mainData.phaseOutDate" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'计量单位:'">
<el-input v-model="mainData.umid" readonly style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="'备注:'">
<el-input v-model="mainData.remark" readonly style="width: 417px"></el-input>
<el-checkbox style="margin-left: 20px" disabled v-model="mainData.defaultflag">默认</el-checkbox>
<el-checkbox style="margin-left: 80px" disabled v-model="mainData.repairFlag">修复版本</el-checkbox>
</el-form-item>
</el-form>
<el-tabs v-model="activeName" >
<el-tab-pane :label="'明细'" name="first">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-button @click="addRoutingDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'新增'}}</el-button>
<el-button @click="editRoutingDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'修改'}}</el-button>
<el-button @click="deleteRoutingDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'删除'}}</el-button>
<el-button @click="jumpWorkCenter()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'加工中心'}}</el-button>
<el-button @click="getPartDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'可用机台'}}</el-button>
</el-form>
<el-table
:height="height"
:data="dataList2"
border
@row-click="clickData"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList2" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed"
: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-tab-pane>
<el-tab-pane :label="'工具清单'" name="second">
</el-tab-pane>
</el-tabs>
<el-dialog title="数据表" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="680px" >
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="'物料编码:'">
<el-input v-model="searchPartNo" style="width: 130px"></el-input>
<el-button @click="searchRoutingWithPartNo()" type="primary">查询</el-button>
</el-form-item>
</el-form>
<el-table
height="300"
:data="dataList"
border
@row-dblclick="tableHanddle"
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="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-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="modelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="维护工艺路线明细" :close-on-click-modal="false" v-drag :visible.sync="detailmodelFlag" width="620px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
<el-form-item :label="'工序号:'">
<el-input v-model="detailData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right" type="number"></el-input>
</el-form-item>
<el-form-item :label="'工序名称:'">
<el-input v-model="detailData.operationDesc" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'加工中心编码:'">
<el-input v-model="detailData.workCenterNo" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'准备时间:'">
<el-input v-model="detailData.machSetupTime" style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
<el-form-item :label="'单位产出量:'">
<el-input v-model="detailData.machRunFactor" type="number" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'产出单位:'">
<el-select filterable v-model="detailData.factorUnit" style="width: 130px">
<el-option label="" value=""></el-option>
<el-option label="单位/小时" value="单位/小时"></el-option>
<el-option label="小时" value="小时"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="'计价单价:'">
<el-input v-model="detailData.jjgzUnitPrice" type="number" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'单位:'">
<el-select filterable v-model="detailData.jjgzUnitFactor" style="width: 130px">
<el-option label="" value=""></el-option>
<el-option label="小时" value="小时"></el-option>
<el-option label="件" value="件"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
<el-form-item :label="'效率:'">
<el-input v-model="detailData.efficiency" type="number" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'操作工人数:'">
<el-input v-model="detailData.crewsize" type="number" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'备注:'">
<el-input v-model="detailData.remark" style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveRoutingDetailData()">保存</el-button>
<el-button type="primary" @click="detailmodelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {
searchRoutingWithPartNo,
searchRoutingDetailData,
saveRoutingDetailData,
}from "@/api/base/site.js"
export default {
name: "maintainProductRouting",
data () {
return {
dataListLoading: false,
searchPartNo:'',
height:200,
mainData:{
partNo:'',
spec:'',
status:'',
site:'',
routingType:'',
revNo:'',
phaseInDate:'',
phaseOutDate:'',
umid:'',
remark:'',
defaultflag:'',
repairFlag:'',
},
activeName:'first',
modelFlag:false,
detailmodelFlag:false,
detailmodelInputFlag:false,
dataList:[],
dataList2:[],
columnList:[
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TablePartNo',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "partNo",
headerAlign: "center",
align: "left",
columnLabel: "物料编码",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TableSpec',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "spec",
headerAlign: "center",
align: "left",
columnLabel: "名称/规格",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TableRoutingType',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "routingType",
headerAlign: "center",
align: "left",
columnLabel: "工艺路线类型",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TableRevNo',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "revNo",
headerAlign: "center",
align: "left",
columnLabel: "版本号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TablePhaseInDate',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "phaseInDate",
headerAlign: "center",
align: "left",
columnLabel: "启用日期",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TablePhaseOutDate',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "phaseOutDate",
headerAlign: "center",
align: "left",
columnLabel: "停用日期",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TableStatus',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "status",
headerAlign: "center",
align: "left",
columnLabel: "状态",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 40
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040TableSite',
tableId: "6040Table",
tableName: "维护工艺路线数据表",
columnProp: "site",
headerAlign: "center",
align: "left",
columnLabel: "工厂编码",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 60
},
],
columnList2:[
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2ItemNo',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "itemNo",
headerAlign: "center",
align: "right",
columnLabel: "工序号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2OperationDesc',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "operationDesc",
headerAlign: "center",
align: "left",
columnLabel: "工序名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 300
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2WorkCenterNo',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "workCenterNo",
headerAlign: "center",
align: "left",
columnLabel: "加工中心编码",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2WorkCenterDesc',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "workCenterDesc",
headerAlign: "center",
align: "left",
columnLabel: "加工中心名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2MachSetupTime',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "machSetupTime",
headerAlign: "center",
align: "right",
columnLabel: "准备时间(小时)",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2MachRunFactor',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "machRunFactor",
headerAlign: "center",
align: "right",
columnLabel: "单位产出量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2FactorUnit',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "factorUnit",
headerAlign: "center",
align: "left",
columnLabel: "产出单位",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2Efficiency',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "efficiency",
headerAlign: "center",
align: "right",
columnLabel: "效率(%)",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2Remark',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2JJGZUnitPrice',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "jjgzUnitPrice",
headerAlign: "center",
align: "right",
columnLabel: "每件计价",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2JJGZUnitFactor',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "jjgzUnitFactor",
headerAlign: "center",
align: "left",
columnLabel: "计价单位",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2Crewsize',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "crewsize",
headerAlign: "center",
align: "left",
columnLabel: "操作工人数",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2WorkCenterType',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "workCenterType",
headerAlign: "center",
align: "left",
columnLabel: "加工中心类型",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2WXPartNo',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "wxPartNo",
headerAlign: "center",
align: "left",
columnLabel: "费用结算料号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table2WXSpec',
tableId: "6040Table2",
tableName: "维护工艺路线工序表",
columnProp: "wxSpec",
headerAlign: "center",
align: "left",
columnLabel: "费用结算物料名称/规格",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 250
},
],
detailData:{
itemNo:'',
operationDesc:'',
workCenterNo:'',
machSetupTime:'',
machRunFactor:'',
factorUnit:'',
jjgzUnitPrice:'',
jjgzUnitFactor:'',
efficiency:'',
crewsize:'',
remark:'',
site:'',
partNo:'',
revNo:'',
add:'',
user:'',
}
}
},
mounted() {
this.$nextTick(() => {
this.height = window.innerHeight - 310;
})
},
methods: {
addRoutingDetail(){
if(this.mainData.partNo==null||this.mainData.partNo==''){
this.$alert("请选择物料号!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let size=this.dataList2.length;
this. detailData={
itemNo:this.dataList2[Number(size-1)].itemNo+10,
operationDesc:'',
workCenterNo:'',
machSetupTime:'',
machRunFactor:0,
factorUnit:'',
jjgzUnitPrice:'',
jjgzUnitFactor:'',
efficiency:'',
crewsize:'',
remark:'',
add:0,
partNo:this.mainData.partNo,
revNo:this.mainData.revNo,
site:this.mainData.site,
user:this.$store.state.user.name,
}
this.detailmodelInputFlag=false;
this.detailmodelFlag=true;
},
saveRoutingDetailData(){
if(this.detailData.itemNo==''||this.detailData.itemNo==null){
this.$alert("请输入工序号!",'错误',{
confirmButtonText:'确定'
})
return false;
}
if(this.detailData.operationDesc==''||this.detailData.operationDesc==null){
this.$alert("请输入工序名称!",'错误',{
confirmButtonText:'确定'
})
return false;
}
if(this.detailData.workCenterNo==''||this.detailData.workCenterNo==null){
this.$alert("请输入加工中心编码!",'错误',{
confirmButtonText:'确定'
})
return false;
}
saveRoutingDetailData(this.detailData).then(({data}) => {
if (data && data.code == 200) {
this.detailmodelFlag = false
let data1={
site: this.mainData.site,
partNo:this.mainData.partNo,
revNo:this.mainData.revNo,
}
searchRoutingDetailData(data1).then(({data}) => {
this.dataList2=data.rows;
})
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
tableHanddle(row) {
let data={
partNo:row.partNo,
site:row.site,
revNo:row.revNo,
}
searchRoutingWithPartNo(data).then(({data}) => {
if(data.rows.length>0){
if(data.rows[0].repairFlag=='Y'){
data.rows[0].repairFlag=true;
}else {
data.rows[0].repairFlag=false;
}
if(data.rows[0].defaultflag=='Y'){
data.rows[0].defaultflag=true;
}else {
data.rows[0].defaultflag=false;
}
this.mainData = data.rows[0]
let data1={
site: data.rows[0].site,
partNo:data.rows[0].partNo,
revNo:data.rows[0].revNo,
}
searchRoutingDetailData(data1).then(({data}) => {
this.dataList2=data.rows;
})
}
})
this.modelFlag = false;
},
getSearchModal() {
this.searchPartNo = '';
this.searchRoutingWithPartNo();
this.modelFlag = true;
},
editRoutingDetail(){
if(this.currentRow==null){
this.$alert("请选择工艺路线工序!", '错误', {
confirmButtonText: '确定'
})
return false;
}
this. detailData={
itemNo:this.currentRow.itemNo,
operationDesc:this.currentRow.operationDesc,
workCenterNo:this.currentRow.workCenterNo,
machSetupTime:this.currentRow.machSetupTime,
machRunFactor:this.currentRow.machRunFactor,
factorUnit:this.currentRow.factorUnit,
jjgzUnitPrice:this.currentRow.jjgzUnitPrice,
jjgzUnitFactor:this.currentRow.jjgzUnitFactor,
efficiency:this.currentRow.efficiency,
crewsize:this.currentRow.crewsize,
remark:this.currentRow.remark,
add:1,
partNo:this.mainData.partNo,
revNo:this.mainData.revNo,
site:this.mainData.site,
user:this.$store.state.user.name,
}
this.detailmodelInputFlag=true;
this.detailmodelFlag=true;
},
searchRoutingWithPartNo() {
let data={
partNo:this.searchPartNo
}
searchRoutingWithPartNo(data).then(({data}) => {
this.dataList = data.rows
})
},
clickData(row){
this.currentRow = JSON.parse(JSON.stringify(row));
},
jumpWorkCenter(){
if(this.currentRow==null){
this.$alert("请选择工艺路线工序!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let inData={user:this.$store.state.user.name,site:this.currentRow.site,workCenterNo:this.currentRow.workCenterNo};
localStorage.setItem('workCenterNo', JSON.stringify(inData))
this.$router.replace('base-workCenter')
},
},
created() {
}
}
</script>
<style scoped>
</style>