Browse Source

20220111

master
ruanqi 4 years ago
parent
commit
1987fb3ed3
  1. 12
      src/api/base/site.js
  2. 706
      src/views/modules/base/maintainProductRouting.vue

12
src/api/base/site.js

@ -107,3 +107,15 @@ export const searchRoutingWithPartNo= data => createAPI(`/base/searchRoutingWith
export const searchRoutingDetailData= data => createAPI(`/base/searchRoutingDetailData`,'post',data)
//保存工艺路线
export const saveRoutingDetailData= data => createAPI(`/base/saveRoutingDetailData`,'post',data)
//删除工艺路线
export const deleteRoutingDetail= data => createAPI(`/base/deleteRoutingDetail`,'post',data)
//工艺路线工具查询
export const searchRoutingToolData= data => createAPI(`/base/searchRoutingToolData`,'post',data)
//工艺路线可用机台
export const searchAllResource= data => createAPI(`/base/searchAllResource`,'post',data)
//工艺路线已选机台
export const searchUsedResource= data => createAPI(`/base/searchUsedResource`,'post',data)
//添加机台
export const addRoutingResource= data => createAPI(`/base/addRoutingResource`,'post',data)
//删除机台
export const deleteRoutingResource= data => createAPI(`/base/deleteRoutingResource`,'post',data)

706
src/views/modules/base/maintainProductRouting.vue

@ -46,7 +46,7 @@
<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-button @click="getResourceModel()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'可用机台'}}</el-button>
</el-form>
<el-table
:height="height"
@ -75,6 +75,36 @@
</el-table>
</el-tab-pane>
<el-tab-pane :label="'工具清单'" name="second">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-button @click="addRoutingTool()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'新增'}}</el-button>
<el-button @click="editRoutingTool()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'修改'}}</el-button>
<el-button @click="deleteRoutingTool()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'删除'}}</el-button>
</el-form>
<el-table
:height="height"
:data="dataList3"
border
@row-click="clickData2"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList3" :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-tabs>
<el-dialog title="数据表" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="680px" >
@ -120,7 +150,8 @@
<el-form-item :label="'工序名称:'">
<el-input v-model="detailData.operationDesc" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'加工中心编码:'">
<el-form-item >
<span slot="label" style="" @click="getBaseList(24)"><a herf="#">加工中心编码</a></span>
<el-input v-model="detailData.workCenterNo" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'准备时间:'">
@ -165,6 +196,111 @@
<el-button type="primary" @click="detailmodelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="维护工艺路线工具" :close-on-click-modal="false" v-drag :visible.sync="ToolmodelFlag" width="500px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
<el-form-item :label="'工序号:'">
<el-input v-model="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right" type="number"></el-input>
</el-form-item>
<el-form-item :label="'工序名称:'">
<el-input v-model="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right" type="number"></el-input>
</el-form-item>
<el-form-item :label="'工具编号:'">
<el-input v-model="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right" type="number"></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="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right" type="number"></el-input>
</el-form-item>
<el-form-item :label="'规格型号:'">
<el-input v-model="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 270px;text-align: right" type="number"></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="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right" type="number"></el-input>
</el-form-item>
<el-form-item :label="'备注:'">
<el-input v-model="toolData.itemNo" :disabled="detailmodelInputFlag" style="width: 270px;text-align: right" type="number"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveToolData()">保存</el-button>
<el-button type="primary" @click="ToolmodelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="可用机台" :close-on-click-modal="false" v-drag :visible.sync="routingModelFlag" width="800px">
<el-container>
<el-main style="width: 300px">
<span style="" >可选机台</span>
<el-table
height="300px"
:data="resourceList1"
border
@row-click="clickData3"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
v-for="(item,index) in columnList4" :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-main>
<el-main style="width: 100px">
<div style="margin-top: 100px">
<el-button type="primary" @click="addResource()">添加机台>></el-button>
</div>
<div style="margin-top: 20px">
<el-button type="primary" @click="deleteResource()">删除机台<<</el-button>
</div>
</el-main>
<el-main style="width: 300px">
<span style="" >已选机台</span>
<el-table
height="300px"
:data="resourceList2"
border
@row-click="clickData4"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
v-for="(item,index) in columnList5" :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-main>
</el-container>
<!-- <el-footer style="height:40px;margin-top: 20px;text-align:center">-->
<!-- <el-button type="primary" @click="routingModelFlag = false">关闭</el-button>-->
<!-- </el-footer>-->
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
@ -173,11 +309,28 @@
searchRoutingWithPartNo,
searchRoutingDetailData,
saveRoutingDetailData,
deleteRoutingDetail,
searchRoutingToolData,
searchUsedResource,
searchAllResource,
addRoutingResource,
deleteRoutingResource,
}from "@/api/base/site.js"
import Chooselist from '@/views/modules/common/Chooselist'
export default {
name: "maintainProductRouting",
components: {
Chooselist
},
data () {
return {
resourceList1:[],
resourceList2:[],
currentRow4:null,
currentRow3:null,
currentRow2:null,
currentRow:null,
tagNo:'',
dataListLoading: false,
searchPartNo:'',
height:200,
@ -197,10 +350,24 @@
},
activeName:'first',
modelFlag:false,
ToolmodelFlag:false,
detailmodelFlag:false,
detailmodelInputFlag:false,
dataList:[],
dataList2:[],
dataList3:[],
toolData:{
site:'',
partNo:'',
revNo:'',
itemNo:'',
site:'',
site:'',
site:'',
site:'',
site:'',
site:'',
},
columnList:[
{
userId: this.$store.state.user.name,
@ -621,6 +788,337 @@
],
columnList3:[
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table3RevNo',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "revNo",
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: '6040Table3ItemNo',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "itemNo",
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: '6040Table3ToolID',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "toolID",
headerAlign: "center",
align: "left",
columnLabel: "工具编号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 150
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table3ToolDescription',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "toolDescription",
headerAlign: "center",
align: "left",
columnLabel: "工具名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 200
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table3Spec',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "spec",
headerAlign: "center",
align: "left",
columnLabel: "规格型号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 150
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table3ToolQty',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "toolQty",
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: '6040Table3Active',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "active",
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: '6040Table3FamilyID',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "familyID",
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: '6040Table3FamilyName',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "familyName",
headerAlign: "center",
align: "left",
columnLabel: "工具分类名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 150
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table3Remark',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 200
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table3CreateDate',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "createDate",
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: '6040Table3CreatedBy',
tableId: "6040Table3",
tableName: "维护工艺路线工具表",
columnProp: "createdBy",
headerAlign: "center",
align: "left",
columnLabel: "录入人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
],
columnList4:[
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table4ResourceID',
tableId: "6040Table4",
tableName: "维护工艺路线可用机台表",
columnProp: "resourceID",
headerAlign: "center",
align: "left",
columnLabel: "机台编码",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 70
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table4ResourceDesc',
tableId: "6040Table4",
tableName: "维护工艺路线可用机台表",
columnProp: "resourceDesc",
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: '6040Table4Active',
tableId: "6040Table4",
tableName: "维护工艺路线可用机台表",
columnProp: "active",
headerAlign: "center",
align: "left",
columnLabel: "在用",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 50
},
],
columnList5:[
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table5ResourceID',
tableId: "6040Table5",
tableName: "维护工艺路线已选机台表",
columnProp: "resourceID",
headerAlign: "center",
align: "left",
columnLabel: "机台编码",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 70
},
{
userId: this.$store.state.user.name,
functionId: 6040,
serialNumber: '6040Table5ResourceDesc',
tableId: "6040Table5",
tableName: "维护工艺路线已选机台表",
columnProp: "resourceDesc",
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: '6040Table5Active',
tableId: "6040Table5",
tableName: "维护工艺路线已选机台表",
columnProp: "active",
headerAlign: "center",
align: "left",
columnLabel: "在用",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 50
},
],
routingModelFlag:false,
detailData:{
itemNo:'',
operationDesc:'',
@ -647,6 +1145,28 @@
})
},
methods: {
getBaseData(val){
if (this.tagNo === 24){
this.detailData.workCenterNo = val.WorkCenterNo
}
if (this.tagNo === 91){
this.modelData3.calendarID = val.CalendarID
}
},
//
getBaseList(val){
this.tagNo = val
this.$nextTick(() => {
let strVal = "";
if (val === 24){
strVal = this.detailData.workCenterNo
}
if (val === 91){
strVal = this.modelData3.calendarID
}
this.$refs.baseList.init(val,strVal)
})
},
addRoutingDetail(){
if(this.mainData.partNo==null||this.mainData.partNo==''){
this.$alert("请选择物料号!", '错误', {
@ -655,17 +1175,17 @@
return false;
}
let size=this.dataList2.length;
this. detailData={
this.detailData={
itemNo:this.dataList2[Number(size-1)].itemNo+10,
operationDesc:'',
workCenterNo:'',
machSetupTime:'',
machSetupTime:0,
machRunFactor:0,
factorUnit:'',
jjgzUnitPrice:'',
factorUnit:null,
jjgzUnitPrice:0,
jjgzUnitFactor:'',
efficiency:'',
crewsize:'',
efficiency:0,
crewsize:0,
remark:'',
add:0,
partNo:this.mainData.partNo,
@ -690,13 +1210,38 @@
})
return false;
}
if(this.detailData.machSetupTime===''||this.detailData.machSetupTime==null){
this.$alert("请输入准备时间!",'错误',{
confirmButtonText:'确定'
})
return false;
}
if(this.detailData.workCenterNo==''||this.detailData.workCenterNo==null){
this.$alert("请输入加工中心编码!",'错误',{
confirmButtonText:'确定'
})
return false;
}
if(this.detailData.jjgzUnitPrice===''||this.detailData.jjgzUnitPrice==null){
this.$alert("请输入计价单价!",'错误',{
confirmButtonText:'确定'
})
return false;
}
if(this.detailData.crewsize===''||this.detailData.crewsize==null){
this.$alert("请输入操作员人数!",'错误',{
confirmButtonText:'确定'
})
return false;
}
if(this.detailData.efficiency===''||this.detailData.efficiency==null){
this.$alert("请输入效率!",'错误',{
confirmButtonText:'确定'
})
return false;
}
saveRoutingDetailData(this.detailData).then(({data}) => {
this.currentRow=null;
if (data && data.code == 200) {
this.detailmodelFlag = false
let data1={
@ -721,6 +1266,45 @@
}
})
},
deleteRoutingDetail(){
if(this.currentRow==null){
this.$alert("请选择工艺路线工序!", '错误', {
confirmButtonText: '确定'
})
return false;
}
this.$confirm(`是否删除此工艺路线工序?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteRoutingDetail(this.currentRow).then(({data}) => {
this.currentRow=null;
if (data && data.code == 200) {
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,
@ -748,12 +1332,40 @@
searchRoutingDetailData(data1).then(({data}) => {
this.dataList2=data.rows;
})
searchRoutingToolData(data1).then(({data}) => {
this.dataList3=data.rows;
})
}
})
this.modelFlag = false;
},
getResourceModel(){
if(this.currentRow==null){
this.$alert("请选择工艺路线工序!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let data1={
site:this.mainData.site,
workCenterNo:this.currentRow.workCenterNo,
}
searchAllResource(data1).then(({data}) => {
this.resourceList1 = data.rows
})
let data2={
site:this.mainData.site,
partNo:this.mainData.partNo,
revNo:this.currentRow.revNo,
itemNo:this.currentRow.itemNo
}
searchUsedResource(data2).then(({data}) => {
this.resourceList2 = data.rows
})
this.routingModelFlag=true;
},
getSearchModal() {
this.searchPartNo = '';
this.searchRoutingWithPartNo();
@ -798,6 +1410,84 @@
clickData(row){
this.currentRow = JSON.parse(JSON.stringify(row));
},
clickData2(row){
this.currentRow2 = JSON.parse(JSON.stringify(row));
},
clickData3(row){
this.currentRow3 = JSON.parse(JSON.stringify(row));
},
clickData4(row){
this.currentRow4 = JSON.parse(JSON.stringify(row));
},
addResource(){
if(this.currentRow3==null){
this.$alert("请选择可选机台!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let inData={
site: this.mainData.site,
partNo:this.mainData.partNo,
revNo:this.mainData.revNo,
itemNo:this.currentRow.itemNo,
resourceID:this.currentRow3.resourceID
}
addRoutingResource(inData).then(({data}) => {
if (data && data.code == 200) {
let data2={
site:this.mainData.site,
partNo:this.mainData.partNo,
revNo:this.currentRow.revNo,
itemNo:this.currentRow.itemNo
}
searchUsedResource(data2).then(({data}) => {
this.resourceList2 = data.rows
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
addRoutingTool(){
},
deleteResource(){
if(this.currentRow4==null){
this.$alert("请选择已选机台!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let inData={
site: this.mainData.site,
partNo:this.mainData.partNo,
revNo:this.mainData.revNo,
itemNo:this.currentRow.itemNo,
resourceID:this.currentRow4.resourceID
}
deleteRoutingResource(inData).then(({data}) => {
if (data && data.code == 200) {
this.currentRow4=null;
let data2={
site:this.mainData.site,
partNo:this.mainData.partNo,
revNo:this.currentRow.revNo,
itemNo:this.currentRow.itemNo
}
searchUsedResource(data2).then(({data}) => {
this.resourceList2 = data.rows
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
jumpWorkCenter(){
if(this.currentRow==null){
this.$alert("请选择工艺路线工序!", '错误', {

Loading…
Cancel
Save