|
|
<template> <div class="mod-config"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;"> <el-form-item :label="labels.workCenterNo"> <el-input v-model="modelData.workCenterNo" readonly style="width: 130px"></el-input> <el-button @click="getData()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.search}}</el-button> </el-form-item> <el-form-item :label="labels.workCenterDesc"> <el-input v-model="modelData.workCenterDesc" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.site"> <el-input v-model="modelData.site" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.active"> <el-input v-model="modelData.active" readonly style="width: 40px"></el-input> <el-button @click="addModal()" type="primary" :disabled = "authAdd" style="margin-left: 2px;margin-top: 0px">{{buttons.add}}</el-button> <download-excel :fields="fields()" :data="exportData" type="xls" :name="exportName" :header="exportHeader" :footer="exportFooter" :fetch="createExportData" :before-generate="startDownload" :before-finish="finishDownload" worksheet="导出信息" class="el-button el-button--primary el-button--medium"> {{ buttons.download }} </download-excel> <download-excel :fields="fields2()" :data="exportData2" type="xls" :name="exportName2" :header="exportHeader2" :footer="exportFooter2" :fetch="createExportData2" :before-generate="startDownload2" :before-finish="finishDownload2" worksheet="导出信息" class="el-button el-button--primary el-button--medium"> {{ buttons.download2 }} </download-excel> </el-form-item> </el-form> <el-tabs v-model="activeName" > <el-tab-pane :label="labels.base" name="first"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> <el-form-item :label="labels.workCenterType"> <el-input v-model="modelData.workCenterType" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.proLineNo"> <el-input v-model="modelData.proLineNo" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.productionLineDesc"> <el-input v-model="modelData.productionLineDesc" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.canCreateNewRollFlag"> <el-input v-model="modelData.canCreateNewRollFlag" readonly style="width: 40px"></el-input> </el-form-item> </el-form> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;"> <el-form-item :label="labels.createdDate"> <el-input v-model="modelData.createdDate" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.remark"> <el-input v-model="modelData.remark" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.needSetupFlag"> <el-input v-model="modelData.needSetupFlag" readonly style="width: 40px"></el-input> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane :label="labels.partInvolved" name="second"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> <el-button @click="getPartDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.partInfo}}</el-button> </el-form> <el-table :height="height" :data="dataList" border @row-click="clickData" highlight-current-row 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==''?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-tab-pane> <el-tab-pane :label="labels.resource2" name="third"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> <el-button @click="jumpCalendar()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.jumpCalendar}}</el-button> <el-button @click="addResource()" v-if="!authAdd" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.add}}</el-button> <el-button @click="editResource()" v-if="!authEdit" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.update}}</el-button> <el-button @click="deleteCalendar()" v-if="!authDelete" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.delete}}</el-button> <el-button @click="setResource()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.setResource}}</el-button> </el-form> <el-table :height="height" :data="dataList2" border @row-click="clickData2" 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==''?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-tab-pane> </el-tabs> <el-dialog :title="labels.dataList" :close-on-click-modal="false" v-drag :visible.sync="modelFlag2" width="680px" > <el-table height="400" :data="dataList3" border @row-dblclick="tableHanddle" v-loading="dataListLoading" style="width: 100%;"> <el-table-column header-align="center" align="center" width="80" :label="labels.do"> <template slot-scope="scope"> <a type="text" size="small" v-if="!authEdit" @click="editModel(scope.row)">{{buttons.update}}</a> <a type="text" size="small" v-if="!authDelete" @click="deleteData(scope.row)">{{buttons.delete}}</a> </template> </el-table-column> <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==''?false: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-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="modelFlag2 = false">{{buttons.close}}</el-button> </el-footer> </el-dialog> <el-dialog :title="labels.workCenter" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="619px" > <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.workCenterNo"> <el-input v-model="modelData2.workCenterNo" style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input> </el-form-item> <el-form-item :label="labels.workCenterDesc"> <el-input v-model="modelData2.workCenterDesc" style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.site"> <el-input v-model="modelData2.site" style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.active"> <el-select filterable v-model="modelData2.active" style="width: 130px"> <el-option label="Y" value="Y"></el-option> <el-option label="N" value="N"></el-option> </el-select> </el-form-item> </el-form> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.workCenterType"> <el-select filterable v-model="modelData2.workCenterType" style="width: 130px"> <el-option :label="labels.inner" value="内部"></el-option> <el-option :label="labels.outer" value="外部"></el-option> </el-select> </el-form-item> <el-form-item > <span slot="label" style="" @click="getBaseList(25)"><a herf="#">{{labels.proLineNo}}</a></span> <el-input v-model="modelData2.proLineNo" @change="getProLineNo" style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input> </el-form-item> <el-form-item :label="labels.productionLineDesc"> <el-input v-model="modelData2.productionLineDesc" disabled style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.canCreateNewRollFlag"> <el-select filterable v-model="modelData2.canCreateNewRollFlag" style="width: 130px"> <el-option label="Y" value="Y"></el-option> <el-option label="N" value="N"></el-option> </el-select> </el-form-item> </el-form> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.createdDate"> <el-date-picker style="width: 130px" v-model="modelData2.createdDate" value-format="yyyy-MM-dd" placeholder="选择日期"> </el-date-picker> </el-form-item> <el-form-item :label="labels.remark"> <el-input v-model="modelData2.remark" style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.needSetupFlag"> <el-select filterable v-model="modelData2.needSetupFlag" style="width: 130px"> <el-option label="Y" value="Y"></el-option> <el-option label="N" value="N"></el-option> </el-select> </el-form-item> </el-form> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="ModelSave()">{{buttons.save}}</el-button> <el-button type="primary" @click="modelFlag = false">{{buttons.close}}</el-button> </el-footer> </el-dialog> <el-dialog :title="labels.resource" :close-on-click-modal="false" v-drag :visible.sync="modelFlag3" width="460px" > <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.workCenterNo"> <el-input v-model="modelData3.workCenterNo" disabled style="width: 130px" ></el-input> </el-form-item> <el-form-item :label="labels.site"> <el-input v-model="modelData3.site" disabled 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="labels.resourceID"> <el-input v-model="modelData3.resourceID" :disabled="model3InputFlag" style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input> </el-form-item> <el-form-item :label="labels.resourceDesc"> <el-input v-model="modelData3.resourceDesc" style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.efficiency"> <el-input v-model="modelData3.efficiency" type="number" 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="labels.utilization"> <el-input v-model="modelData3.utilization" type="number" style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.active"> <el-select filterable v-model="modelData3.active" style="width: 130px"> <el-option label="Y" value="Y"></el-option> <el-option label="N" value="N"></el-option> </el-select> </el-form-item> <el-form-item> <span slot="label" style="" @click="getBaseList(91)"><a herf="#">{{labels.calendarID}}</a></span> <el-input v-model="modelData3.calendarID" 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="labels.remark"> <el-input v-model="modelData3.remark" style="width: 420px"></el-input> </el-form-item> </el-form> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="ResourceSave()">{{buttons.save}}</el-button> <el-button type="primary" @click="modelFlag3 = false">{{buttons.close}}</el-button> </el-footer> </el-dialog> <el-dialog :title="labels.partNo2" :close-on-click-modal="false" v-drag :visible.sync="partFlag" width="630px" > <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.partNo"> <el-input v-model="partData.partNo" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.partDescription"> <el-input v-model="partData.partDescription" readonly style="width: 260px"></el-input> </el-form-item> <el-form-item :label="labels.site"> <el-input v-model="partData.site" readonly style="width: 130px"></el-input> </el-form-item> </el-form> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.createDate"> <el-input v-model="partData.createDate" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.umid"> <el-input v-model="partData.umid" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.active" style="margin-left: 130px"> <el-input v-model="partData.active" readonly style="width: 130px;"></el-input> </el-form-item> </el-form> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="labels.configurationTemplateID"> <el-input v-model="partData.configurationTemplateID" readonly style="width: 130px"></el-input> </el-form-item> <el-form-item :label="labels.remark2"> <el-input v-model="partData.remark" readonly style="width: 260px"></el-input> </el-form-item> </el-form> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="partFlag = false">{{buttons.close}}</el-button> </el-footer> </el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div></template>
<script> import { getWorkCenterData, getWorkCenterDataDetail, getProLineNoDetail, saveWorkCenterData, deleteWorkCenterData, saveResource, deleteResource, setResourceFlag }from "@/api/base/site.js" import { searchPartNoData, } from "@/api/base/site.js" import Chooselist from '@/views/modules/common/Chooselist' import {
searchFunctionButtonList,
} from "@/api/sysLanguage.js" var functionId='103004';
export default { //加工中心
name: "workCenter", components: { Chooselist }, data() { return { labels: { workCenterNo:'加工中心编码:', workCenterDesc:'名称:', site:'工厂编号:', active:'是否在用:', base:'基本信息', workCenterType:'加工中心类型:', proLineNo:'生产线编码:', productionLineDesc:'生产线名称:', canCreateNewRollFlag:'是否可以创建新卷:', createdDate:'新增日期:', remark:'备注:', needSetupFlag:'生产是否需要调机:', partInvolved:'涉及产品', dataList:'数据表', workCenter:'加工中心', inner:'内部', outer:'外部', chooseDate:'选择日期', resource:'机台维护', resourceID:'机台编码:', resourceDesc:'机台名称:', efficiency:'效率:', utilization:'利用率:', calendarID:'工作日历编码:', partNo:'物料编码:', partNo2:'物料编码', partDescription:'物料名称:', createDate:'新增日期:', umid:'计量单位:', configurationTemplateID:'客户名称:', remark2:'客户产品料号:', resource2:'机台', do:'操作', error:'错误', true:'确定', point:'提示', cancel:'取消', doYes:'操作成功', resourceIn:'请选择机台!', workCenterNoChoose:'请先选择加工中心!', resourceIDIn:'请输入机台编码!', resourceDescIn:'请输入机台名称!', efficiencyIn:'请输入效率!', utilizationIn:'请输入利用率!', activeIn:'请输入是否在用!', calendarIDIn:'请输入工作日编码!', virturlFlagAsk1:'是否将该机台设为虚拟机台?', virturlFlagAsk2:'是否将该机台设为常规机台?', deleteResourceAsk:'是否删除此机台?', rollIn:'请选择卷!', partNot:'该物料编码不存在', workCenterNoIn:'请输入加工中心编码!', workCenterDescIn:'请输入加工中心名称!', siteIn:'请输入工厂编码!', createdDateIn:'请选择新增日期!', workCenterDeleteAsk:'是否删除此加工中心',
}, buttons:{ search:'查询', download:'导出', list:'列表', add:'新增', partInfo:'物料信息', jumpCalendar:'工作日历', update:'编辑', delete:'删除', setResource:'设为虚拟/常规机台', close:'关闭', save:'保存', download2:'导出机台'
}, queryButton: { functionId: functionId, table_id: '*', languageCode: this.$i18n.locale, objectType: 'button' }, queryLabel: { functionId: functionId, table_id: '*', languageCode: this.$i18n.locale, objectType: 'label' }, tagNo:'', currentRow:null, partFlag:false, partData:{ partNo:'', partDescription:'', site:'', createDate:'', umid:'', active:'', configurationTemplateID:'', modelFlag:'', }, model3InputFlag:false, currentRow2:null, // 导出 start
exportData: [], exportName: "加工中心涉及产品"+this.dayjs().format('YYYYMMDDHHmmss'), exportHeader: ["加工中心涉及产品"], exportFooter: [], // 导出 end
// 导出 start
exportData2: [], exportName2: "加工中心机台"+this.dayjs().format('YYYYMMDDHHmmss'), exportHeader2: ["加工中心机台"], exportFooter2: [], // 导出 end
activeName:'first', height: 200, modelFlag3:false, modelFlag2:false, modelFlag:false, modelInputFlag:true, selectList:[], modelData: { add:'', workCenterNo:'', workCenterDesc:'', site:'', active:'', workCenterType:'', proLineNo:'', productionLineDesc:'', canCreateNewRollFlag:'', createdDate:'', remark:'', needSetupFlag:'', user:this.$store.state.user.name, }, modelData2: { add:'', workCenterNo:'', workCenterDesc:'', site:'', active:'', workCenterType:'', proLineNo:'', productionLineDesc:'', canCreateNewRollFlag:'', createdDate:'', remark:'', needSetupFlag:'', user:this.$store.state.user.name, }, modelData3:{ workCenterNo:'', site:'', resourceID:'', resourceDesc:'', efficiency:'', utilization:'', active:'', calendarID:'', remark:'',
add:'', }, dataList:[], dataList2:[], dataList3:[],
dataListLoading: false,
columnList: [ { userId: this.$store.state.user.name, functionId: 6029, serialNumber: '6029TablePartNo', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "partNo", 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: 6029, serialNumber: '6029TableRevNo', tableId: "6029Table", 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: 6029, serialNumber: '6029TableItemNo', tableId: "6029Table", 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: 6029, serialNumber: '6029TableOperationDesc', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "operationDesc", 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: 6029, serialNumber: '6029TableMachSetuptime', tableId: "6029Table", 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: 6029, serialNumber: '6029TableMachRunFactor', tableId: "6029Table", 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: 6029, serialNumber: '6029TableFactorUnit', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "factorUnit", 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: 6029, serialNumber: '6029TableCrewsize', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "crewsize", 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: 6029, serialNumber: '6029TableEfficiency', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "efficiency", headerAlign: "center", align: "right", columnLabel: "效率", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, columnWidth: 50 }, { userId: this.$store.state.user.name, functionId: 6029, serialNumber: '6029TableStatus', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "status", headerAlign: "center", align: "left", columnLabel: "状态", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, columnWidth: 50 }, { userId: this.$store.state.user.name, functionId: 6029, serialNumber: '6029TableRoutingType', tableId: "6029Table", 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: 6029, serialNumber: '6029TableRemark', tableId: "6029Table", tableName: "加工中心涉及产品表", columnProp: "remark", headerAlign: "center", align: "left", columnLabel: "备注", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, columnWidth: 300 } ], columnList2: [ { userId: this.$store.state.user.name, functionId: 6029, serialNumber: '6029Table2ResourceID', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "resourceID", 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: 6029, serialNumber: '6029Table2ResourceDesc', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "resourceDesc", 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: 6029, serialNumber: '6029Table2Efficiency', tableId: "6029Table2", 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: 6029, serialNumber: '6029Table2Utilization', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "utilization", 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: 6029, serialNumber: '6029Table2Active', tableId: "6029Table2", 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: 6029, serialNumber: '6029Table2CreatedDate', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "createdDate", 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: 6029, serialNumber: '6029Table2Remark', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "remark", headerAlign: "center", align: "left", columnLabel: "备注", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, columnWidth: 400 }, { userId: this.$store.state.user.name, functionId: 6029, serialNumber: '6029Table2CalendarID', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "calendarID", 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: 6029, serialNumber: '6029Table2VirturlFlag', tableId: "6029Table2", tableName: "加工中心涉及机台表", columnProp: "virturlFlag", headerAlign: "center", align: "left", columnLabel: "虚拟机台", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, columnWidth: 80 } ], columnList3: [ { userId: this.$store.state.user.name, functionId: 6029, serialNumber: '6029Table3WorkCenterNo', tableId: "6029Table3", tableName: "加工中心表", columnProp: "workCenterNo", 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: 6029, serialNumber: '6029Table3WorkCenterDesc', tableId: "6029Table3", tableName: "加工中心表", columnProp: "workCenterDesc", 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: 6029, serialNumber: '6029Table3WorkCenterType', tableId: "6029Table3", 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: 6029, serialNumber: '6029Table3Active', tableId: "6029Table3", tableName: "加工中心表", columnProp: "active", 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: 6029, serialNumber: '6029Table3Site', tableId: "6029Table3", tableName: "加工中心表", columnProp: "site", headerAlign: "center", align: "left", columnLabel: "工厂编号", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, columnWidth: 80 } ], authEdit: false, authAdd: false, authDelete: false, menuId: this.$route.meta.menuId, } }, mounted() { this.$nextTick(() => { this.height = window.innerHeight - 225; }) }, watch: { '$route' (to, from) { if(localStorage.getItem('workCenterNo')!=undefined){ this.jump(); } }, modelData2: { deep: true, handler: function (newV, oldV) { this.modelData2.proLineNo = this.modelData2.proLineNo.toUpperCase() this.modelData2.workCenterNo = this.modelData2.workCenterNo.toUpperCase() } }, modelData3: { deep: true, handler: function (newV, oldV) { this.modelData3.resourceID = this.modelData3.resourceID.toUpperCase() this.modelData3.calendarID = this.modelData3.calendarID.toUpperCase() } }, }, methods: { editResource(){ if(this.currentRow2==null){ this.$alert(this.labels.resourceIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } this.modelData3={ workCenterNo:this.modelData.workCenterNo, site:this.modelData.site, resourceID:this.currentRow2.resourceID, resourceDesc:this.currentRow2.resourceDesc, efficiency:this.currentRow2.efficiency, utilization:this.currentRow2.utilization, active:this.currentRow2.active, calendarID:this.currentRow2.calendarID, remark:this.currentRow2.remark, add:1, }; this.model3InputFlag=true; this.modelFlag3=true; }, addResource(){ if(this.modelData.workCenterNo==''||this.modelData.workCenterNo==null){ this.$alert(this.labels.workCenterNoChoose,this.labels.error, { confirmButtonText: this.labels.true }) return false; }
this.modelData3={ workCenterNo:this.modelData.workCenterNo, site:this.modelData.site, resourceID:'', resourceDesc:'', efficiency:'', utilization:'', active:'Y', calendarID:'', remark:'', add:0, }; this.model3InputFlag=false; this.modelFlag3=true;
}, ResourceSave(){ if(this.modelData3.resourceID==''||this.modelData3.resourceID==null){ this.$alert(this.labels.resourceIDIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData3.resourceDesc==''||this.modelData3.resourceDesc==null){ this.$alert(this.labels.resourceDescIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData3.efficiency==''||this.modelData3.efficiency==null){ this.$alert(this.labels.efficiencyIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData3.utilization==''||this.modelData3.utilization==null){ this.$alert(this.labels.utilizationIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData3.active==''||this.modelData3.active==null){ this.$alert(this.labels.activeIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData3.calendarID==''||this.modelData3.calendarID==null){ this.$alert(this.labels.calendarIDIn,this.labels.error, { confirmButtonText: this.labels.true }) return false; } saveResource(this.modelData3).then(({data}) => { if (data && data.code == 200) { this.modelFlag3 = false getWorkCenterDataDetail(this.modelData).then(({data}) => { this.dataList2 = data.rows2; }) this.$message.success(this.labels.doYes) } else { this.$alert(data.msg, this.labels.error, { confirmButtonText: this.labels.true }) } }) }, setResource(){ if(this.currentRow2==null){ this.$alert(this.labels.resourceIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } let msg=this.labels.virturlFlagAsk1; if(this.currentRow2.virturlFlag=='Y'){ msg=this.labels.virturlFlagAsk2; } this.$confirm(msg, this.labels.point, { confirmButtonText: this.labels.true, cancelButtonText: this.labels.cancel, type: 'warning' }).then(() => { setResourceFlag(this.currentRow2).then(({data}) => { if (data && data.code == 200) { getWorkCenterDataDetail(this.modelData).then(({data}) => { this.dataList2 = data.rows2; }) this.$message.success(this.labels.doYes) } else { this.$alert(data.msg, this.labels.error, { confirmButtonText: this.labels.true }) } }) }) }, deleteCalendar(){ if(this.currentRow2==null){ this.$alert(this.labels.resourceIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } this.$confirm( this.labels.deleteResourceAsk, this.labels.point, { confirmButtonText: this.labels.true, cancelButtonText: this.labels.cancel, type: 'warning' }).then(() => { deleteResource(this.currentRow2).then(({data}) => { if (data && data.code == 200) { getWorkCenterDataDetail(this.modelData).then(({data}) => { this.dataList2 = data.rows2; }) this.$message.success(this.labels.doYes) } else { this.$alert(data.msg, this.labels.error, { confirmButtonText: this.labels.true }) } }) }) }, getBaseData(val){ if (this.tagNo === 25){ this.modelData2.proLineNo = val.ProLineNo } if (this.tagNo === 91){ this.modelData3.calendarID = val.CalendarID } }, // 获取基础数据列表
getBaseList(val){ this.tagNo = val this.$nextTick(() => { let strVal = ""; if (val === 25){ strVal = this.modelData2.proLineNo } if (val === 91){ strVal = this.modelData3.calendarID } this.$refs.baseList.init(val,strVal) }) }, clickData2(row){ this.currentRow2 = JSON.parse(JSON.stringify(row)); }, jumpCalendar(){ if(this.currentRow2==null){ this.$alert(this.labels.resourceIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } let inData={user:this.$store.state.user.name,site:this.currentRow2.site,calendarId:this.currentRow2.calendarID}; localStorage.setItem('calendar', JSON.stringify(inData)) this.$router.replace('base-calendar') }, getPartDetail(){ if(this.currentRow==null){ this.$alert(this.labels.rollIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } let inData={ user:this.$store.state.user.name, site:this.currentRow.site, partNo:this.currentRow.partNo } searchPartNoData(inData).then(({data}) => { if (data.rows.length==0){ this.$alert(this.labels.partNot, this.labels.error, { confirmButtonText: this.labels.true }) return false; } this.partData = data.rows[0]; this.partFlag=true; })
}, first(){ if(localStorage.getItem('workCenterNo')!=undefined){ this.jump(); } }, getData(){ let inData={ user:this.$store.state.user.name } getWorkCenterData(inData).then(({data}) => { this.dataList3 = data.rows; this.modelFlag2=true; }) }, jump(){ let data=JSON.parse(localStorage.getItem('workCenterNo')); localStorage.removeItem('workCenterNo'); getWorkCenterData(data).then(({data}) => { this.dataList3 = data.rows; this.modelData=data.rows[0]; getWorkCenterDataDetail(this.modelData).then(({data}) => { this.dataList2 = data.rows2; this.dataList = data.rows1; }) }) }, clickData(row){ this.currentRow = JSON.parse(JSON.stringify(row)); }, addModal(){ this.modelData2={ add:'', workCenterNo:'', workCenterDesc:'', site:this.$store.state.user.site, active:'', workCenterType:'', proLineNo:'', productionLineDesc:'', canCreateNewRollFlag:'', createdDate:'', remark:'', needSetupFlag:'', user:this.$store.state.user.name, }, this.modelData2.add=0; this.modelInputFlag=false; this.modelData2.active='Y'; this.modelData2.canCreateNewRollFlag='Y'; this.modelData2.needSetupFlag='Y'; this.modelData2.workCenterType='内部', this.modelData2.createdDate=new Date(); this.modelFlag=true; }, editModel(row){ this.modelData2=JSON.parse(JSON.stringify(row)); this.modelData2.add=1; this.modelInputFlag=true; this.modelFlag=true; }, ModelSave(){ if(this.modelData2.workCenterNo==''||this.modelData2.workCenterNo==null){ this.$alert(this.labels.workCenterNoIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData2.workCenterDesc==''||this.modelData2.workCenterDesc==null){ this.$alert(this.labels.workCenterDescIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData2.site==''||this.modelData2.site==null){ this.$alert(this.labels.siteIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; } if(this.modelData2.createdDate==''||this.modelData2.createdDate==null){ this.$alert(this.labels.createdDateIn, this.labels.error, { confirmButtonText: this.labels.true }) return false; }
this.modelData2.user=this.$store.state.user.name;
saveWorkCenterData(this.modelData2).then(({data}) => { if (data && data.code == 200) { this.modelFlag = false this.getData(); this.$message.success(this.labels.doYes) } else { this.$alert(data.msg, this.labels.error, { confirmButtonText: this.labels.true }) } }) }, deleteData(row){ this.$confirm( this.labels.workCenterDeleteAsk, this.labels.point, { confirmButtonText: this.labels.true, cancelButtonText: this.labels.cancel, type: 'warning'
}).then(() => { let inData = { workCenterNo: row.workCenterNo, site:row.site } deleteWorkCenterData(inData).then(({data}) => { if (data && data.code == 200) { this.modelFlag = false this.getData(); this.$message.success( this.labels.doYes) } else { this.$alert(data.msg, this.labels.error, { confirmButtonText: this.labels.true }) } }) }) }, tableHanddle(row){ this.modelData=row; this.modelFlag2=false; getWorkCenterDataDetail(this.modelData).then(({data}) => { this.dataList2 = data.rows2; this.dataList = data.rows1; }) }, getProLineNo(){ let inData={ site : this.$store.state.user.site, proLineNo : this.modelData2.proLineNo } getProLineNoDetail(inData).then(({data}) => { let outList = data.rows if (outList.length>0){ this.modelData2.productionLineDesc=outList[0].proLineDesc; this.modelData2=JSON.parse(JSON.stringify(this.modelData2)); }else { this.modelData2.productionLineDesc=''; } }) }, //导出excel
createExportData() {
return this.dataList;
}, startDownload() { // this.exportData = this.dataList
}, finishDownload() {
}, fields() { let json = "{" this.columnList.forEach((item, index) => { if (index == this.columnList.length - 1) { json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" } else { json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + "," } }) json += "}" let s = eval("(" + json + ")")
return s }, // 导出 end
//导出excel
createExportData2() {
return this.dataList2;
}, startDownload2() { // this.exportData = this.dataList
}, finishDownload2() {
}, fields2() { let json = "{" this.columnList2.forEach((item, index) => { if (index == this.columnList2.length - 1) { json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" } else { json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + "," } }) json += "}" let s = eval("(" + json + ")")
return s }, // 导出 end
//获取按钮的权限数据
getButtonAuthData(){ let updateFlag = this.isAuth(this.menuId+":revise"); let fullControFlag = this.isAuth(this.menuId+":fullContro"); let deleteFlag = this.isAuth(this.menuId+":remove"); //处理页面的权限数据
this.authEdit = !updateFlag ||!fullControFlag; this.authAdd = !fullControFlag; this.authDelete = !deleteFlag; }, //多语言
getMultiLanguageList() { //首先查询当前按钮的多语言
searchFunctionButtonList(this.queryButton).then(({data}) => { if (JSON.stringify(data.data) != '{}') { this.buttons = data.data } else { // saveButtonList(this.buttonList).then(({data}) => {
// })
} }); //其次查询当前标签的多语言
searchFunctionButtonList(this.queryLabel).then(({data}) => { if (JSON.stringify(data.data) != '{}') { this.labels = data.data } else { // saveButtonList(this.buttonList).then(({data}) => {
// })
} }); },
}, created() { this.first(); //获取按钮的权限
this.getButtonAuthData(); //
this.getMultiLanguageList()//刷新按钮
} }</script>
<style scoped>
</style>
|