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.
 
 
 
 
 

2093 lines
71 KiB

<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-button @click="uploadSOP()" type="primary" style="margin-left: 2px;margin-top: 0px">上传SOP</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>
<el-dialog title="上传机器SOP" :close-on-click-modal="false" v-drag :visible.sync="uploadSOPFlag" width="630px" >
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="labels.workCenterNo">
<el-input v-model="sopModelData.workCenterNo" disabled style="width: 116px"></el-input>
</el-form-item>
<el-form-item :label="labels.workCenterDesc">
<el-input v-model="sopModelData.workCenterDesc" disabled style="width: 260px"></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.resourceID">
<el-input v-model="sopModelData.resourceID" disabled style="width: 116px"></el-input>
</el-form-item>
<el-form-item :label="labels.resourceDesc">
<el-input v-model="sopModelData.resourceDesc" disabled style="width: 260px"></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="版本号">
<el-input v-model="sopModelData.versionNumber" disabled style="width: 116px"></el-input>
</el-form-item>
<el-form-item label="生效日期" prop="effectiveDate" :rules="rules.effectiveDate">
<el-date-picker
style="width: 123px"
v-model="sopModelData.effectiveDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="失效日期">
<el-date-picker
style="width: 123px"
v-model="sopModelData.expiryDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 5px;">
<el-form-item label="">
<a href="javascript:void(0);" @click="triggerUpload">SOP文件(点击上传)</a>
<tr></tr>
<el-input v-model="this.fileName" readonly placeholder="文件名称" style="width: 391px"></el-input>
<el-button type="primary" @click="uploadSOPSave">保存</el-button>
<el-upload class="custom-upload" :file-list="fileList"
action="javascript:void(0);" ref="uploadFile"
:on-change="onChange" :on-close="closeFileUpdate"
multiple :auto-upload="false"
style="text-align: left;margin-top: 0px;margin-left: 6px;display: none;">
</el-upload>
</el-form-item>
</el-form>
<el-table
:height="height - 200"
:data="sopFileList"
border
highlight-current-row
v-loading="dataListLoading"
style="width: 100%;margin-top: 17px">
<el-table-column
v-for="(item,index) in columnSopFileList" :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-column
fixed="right"
header-align="center"
align="center"
width="80"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="updateSOPFile(scope.row)">编辑</a>
<a type="text" size="small" @click="deleteSOPFile(scope.row)">删除</a>
</template>
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="closeUploadFileVisible()">{{buttons.close}}</el-button>
</el-footer>
</el-dialog>
<el-dialog title="编辑机器SOP" :close-on-click-modal="false" v-drag :visible.sync="uploadSOPEditFlag" width="427px" >
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="labels.workCenterNo">
<el-input v-model="sopUpdateModelData.workCenterNo" disabled style="width: 116px"></el-input>
</el-form-item>
<el-form-item :label="labels.workCenterDesc">
<el-input v-model="sopUpdateModelData.workCenterDesc" disabled style="width: 260px"></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.resourceID">
<el-input v-model="sopUpdateModelData.resourceID" disabled style="width: 116px"></el-input>
</el-form-item>
<el-form-item :label="labels.resourceDesc">
<el-input v-model="sopUpdateModelData.resourceDesc" disabled style="width: 260px"></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="版本号">
<el-input v-model="sopUpdateModelData.versionNumber" disabled style="width: 116px"></el-input>
</el-form-item>
<el-form-item label="生效日期" prop="effectiveDate" :rules="rules.effectiveDate">
<el-date-picker
style="width: 123px"
v-model="sopUpdateModelData.effectiveDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="失效日期">
<el-date-picker
style="width: 123px"
v-model="sopUpdateModelData.expiryDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 5px;">
<el-form-item label="SOP文件">
<el-input v-model="this.fileName" disabled placeholder="文件名称" style="width: 391px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:30px;margin-top: 3px;text-align:center">
<el-button type="primary" @click="updateSopFile">保存</el-button>
<el-button type="primary" @click="closeUploadFileEditVisible()">{{buttons.close}}</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {
saveTableDefaultList,
getTableDefaultListLanguage,
getTableUserListLanguage,
removerDefault,
removerUser
} from "@/api/table.js"
import {
getWorkCenterData,
getWorkCenterDataDetail,
getProLineNoDetail,
saveWorkCenterData,
deleteWorkCenterData,
saveResource,
deleteResource,
setResourceFlag,
sopFileListSearch,
deleteSOPFile,
}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"
import {uploadSOPFile,sopFileEdit} from "../../../api/base/site";
var functionId='103004';
export default {
//加工中心
name: "workCenter",
components: {
Chooselist
},
data() {
return {
visible: false,
queryTable: {
functionId: this.$route.meta.menuId,
tableId: "mainTable",
languageCode: this.$i18n.locale
},
// 用户table 查询参数
queryTableUser: {
userId: this.$store.state.user.name,
functionId: this.$route.meta.menuId,
tableId: "mainTable",
status: true,
languageCode: this.$i18n.locale
},
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:'导出机台'
},
rules: {
effectiveDate: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
]
},
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,
fileName:'',
uploadSOPFlag:false,
uploadSOPEditFlag:false,
uploadSOPDisableFlag:true,
sopFileList:[],
fileList:[],
sopModelData:{
flag:'',
id : '',
workCenterNo:'',
workCenterDesc: '',
site:'',
resourceID:'',
resourceDesc:'',
versionNumber:'',
effectiveDate:'',
expiryDate:'',
},
sopUpdateModelData:{
flag:'',
id : '',
workCenterNo:'',
workCenterDesc: '',
site:'',
resourceID:'',
resourceDesc:'',
versionNumber:'',
effectiveDate:'',
expiryDate:null,
},
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: 103004,
serialNumber: '103004TablePartNo',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "partNo",
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: 103004,
serialNumber: '103004TableRevNo',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "revNo",
headerAlign: "center",
align: "left",
columnLabel: "版本号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableItemNo',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "itemNo",
headerAlign: "center",
align: "right",
columnLabel: "工序号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableOperationDesc',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "operationDesc",
headerAlign: "center",
align: "left",
columnLabel: "工序名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableMachSetuptime',
tableId: "103004Table",
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: 103004,
serialNumber: '103004TableMachRunFactor',
tableId: "103004Table",
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: 103004,
serialNumber: '103004TableFactorUnit',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "factorUnit",
headerAlign: "center",
align: "left",
columnLabel: "产出类型",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableCrewsize',
tableId: "103004Table",
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: 103004,
serialNumber: '103004TableEfficiency',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "efficiency",
headerAlign: "center",
align: "right",
columnLabel: "效率",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 50
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableStatus',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "status",
headerAlign: "center",
align: "left",
columnLabel: "状态",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 50
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableRoutingType',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "routingType",
headerAlign: "center",
align: "left",
columnLabel: "工序类别",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004TableRemark',
tableId: "103004Table",
tableName: "加工中心涉及产品表",
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 300
}
],
columnList2: [
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table2ResourceID',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "resourceID",
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: 103004,
serialNumber: '103004Table2ResourceDesc',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "resourceDesc",
headerAlign: "center",
align: "left",
columnLabel: "机台名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 150
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table2Efficiency',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "efficiency",
headerAlign: "center",
align: "right",
columnLabel: "效率",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table2Utilization',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "utilization",
headerAlign: "center",
align: "right",
columnLabel: "利用率",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table2Active',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "active",
headerAlign: "center",
align: "left",
columnLabel: "在用",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table2CreatedDate',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "createdDate",
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: 103004,
serialNumber: '103004Table2Remark',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 400
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table2CalendarID',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "calendarID",
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: 103004,
serialNumber: '103004Table2VirturlFlag',
tableId: "103004Table2",
tableName: "加工中心涉及机台表",
columnProp: "virturlFlag",
headerAlign: "center",
align: "left",
columnLabel: "虚拟机台",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
}
],
columnList3: [
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table3WorkCenterNo',
tableId: "103004Table3",
tableName: "加工中心表",
columnProp: "workCenterNo",
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: 103004,
serialNumber: '103004Table3WorkCenterDesc',
tableId: "103004Table3",
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: 103004,
serialNumber: '103004Table3WorkCenterType',
tableId: "103004Table3",
tableName: "加工中心表",
columnProp: "workCenterType",
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: 103004,
serialNumber: '103004Table3Active',
tableId: "103004Table3",
tableName: "加工中心表",
columnProp: "active",
headerAlign: "center",
align: "left",
columnLabel: "在用",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 40
},
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table3Site',
tableId: "103004Table3",
tableName: "加工中心表",
columnProp: "site",
headerAlign: "center",
align: "left",
columnLabel: "工厂编号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
}
],
columnSopFileList:[
{
userId: this.$store.state.user.name,
functionId: 103004,
serialNumber: '103004Table4VersionNumber',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "versionNumber",
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: 103004,
serialNumber: '103004Table4FileName',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "fileName",
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: 103004,
serialNumber: '103004Table4CreatedBy',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "createdBy",
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: 103004,
serialNumber: '103004Table4CreateDate',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "createDate",
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: 103004,
serialNumber: '103004Table4EffectiveDate',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "effectiveDate",
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: 103004,
serialNumber: '103004Table4ExpiryDate',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "expiryDate",
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: 103004,
serialNumber: '103004Table4Status',
tableId: "103004Table3",
tableName: "SOP文件表",
columnProp: "status",
headerAlign: "center",
align: "center",
columnLabel: "状态",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
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
})
}
})
})
},
formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
uploadSOP(){
if(this.currentRow2==null){
this.$alert(this.labels.resourceIn, this.labels.error, {
confirmButtonText: this.labels.true
})
return false;
}
this.sopModelData={
workCenterNo:this.currentRow2.workCenterNo,
workCenterDesc: this.currentRow2.workCenterDesc,
site:this.currentRow2.site,
resourceID:this.currentRow2.resourceID,
resourceDesc:this.currentRow2.resourceDesc,
versionNumber:'A01',
effectiveDate:this.formatDate(new Date()),
expiryDate:'',
};
this.sopFileListSearch();
this.uploadSOPFlag=true;
},
updateSOPFile(row){
this.sopUpdateModelData= {
id: row.id,
workCenterNo: this.currentRow2.workCenterNo,
workCenterDesc: this.currentRow2.workCenterDesc,
site: this.currentRow2.site,
resourceID: this.currentRow2.resourceID,
resourceDesc: this.currentRow2.resourceDesc,
versionNumber: row.versionNumber,
effectiveDate: new Date(row.effectiveDate),
expiryDate: row.expiryDate,
}
this.fileName = row.fileName;
this.uploadSOPDisableFlag=false
this.uploadSOPEditFlag=true;
},
sopFileListSearch(){
let inData={
orderRef1:this.currentRow2.site,
orderRef2:this.currentRow2.workCenterNo,
orderRef3:this.currentRow2.resourceID,
orderRef4:'',
fileType: 'SOP'
}
sopFileListSearch(inData).then(({data}) => {
// 遍历data
for (let i = 0; i < data.rows.length; i++) {
if (data.rows[i].expiryDate != null) {
if (data.rows[i].expiryDate < this.dayjs().format('YYYY-MM-DD')) {
data.rows[i].status = '失效'
} else {
data.rows[i].status = '有效'
}
} else {
data.rows[i].status = '有效'
}
this.sopFileList.push(data.rows[i]);
this.sopFileList[i].versionNumber = data.rows[i].orderRef4
}
// 如果this.sopFileList不为空,拿到versionNumber的最后一个并给versionNumber赋值(versionNumber由 A + 两位数组成,赋值时给数字+1)
if (this.sopFileList.length > 0) {
let versionNumber = this.sopFileList[this.sopFileList.length - 1].versionNumber;
// 如果A后面的数字小于10则为A0+数字加一,否则为A+数字加一
if (versionNumber.substring(1) < 9) {
this.sopModelData.versionNumber = 'A0' + (parseInt(versionNumber.substring(1)) + 1);
} else {
this.sopModelData.versionNumber = 'A' + (parseInt(versionNumber.substring(1)) + 1);
}
} else {
this.sopModelData.versionNumber = 'A01';
}
})
},
triggerUpload() {
this.$refs.uploadFile.$el.querySelector('input').click()
},
/*选择上传文件时*/
onChange(file,fileList){
const newFileName = file.name;
if (this.fileName) {
this.fileName += ', ' + newFileName;
} else {
this.fileName = newFileName;
}
this.fileList.push(file);
},
closeFileUpdate() {
this.fileName = '';
//this.fileRemark = ''
this.$refs.uploadFile.clearFiles()
this.fileList = []
},
uploadSOPSave() {
if (this.sopModelData.effectiveDate === '' || this.sopModelData.effectiveDate == null) {
this.$alert('请选择生效日期!', this.labels.error, {
confirmButtonText: this.labels.true
})
return false;
}
if (this.fileList.length === 0) {
this.$alert('上传的SOP文件不能为空!', this.labels.error, {
confirmButtonText: this.labels.true
})
return false;
}
const formData = new FormData();
//片接文件
for (let i = 0; i < this.fileList.length; i++) {
formData.append("file", this.fileList[i].raw)
}
formData.append("orderRef2", this.sopModelData.workCenterNo)
formData.append("orderRef1", this.sopModelData.site)
formData.append("orderRef3", this.sopModelData.resourceID)
formData.append("orderRef4", this.sopModelData.versionNumber)
formData.append("effectiveDate", this.sopModelData.effectiveDate)
if (this.sopModelData.expiryDate != null && this.sopModelData.expiryDate !== '') {
formData.append("expiryDate", this.sopModelData.expiryDate)
}
formData.append("fileType", 'SOP')
console.log(this.sopModelData.expiryDate)
uploadSOPFile(formData).then(({data}) => {
if (data && data.code === 0) {
this.uploadSOPFlag = false
this.$message.success(this.labels.doYes)
//清空文件上传记录
this.$refs.uploadFile.clearFiles();
this.closeFileUpdate();
this.sopFileList = []
} else {
this.$alert(data.msg, this.labels.error, {
confirmButtonText: this.labels.true
})
}
})
},
updateSopFile(){
if (this.sopModelData.effectiveDate === '' || this.sopModelData.effectiveDate == null) {
this.$alert('请选择生效日期!', this.labels.error, {
confirmButtonText: this.labels.true
})
return false;
}
let inData = {
id: this.sopUpdateModelData.id,
effectiveDate: this.sopUpdateModelData.effectiveDate,
expiryDate: this.sopUpdateModelData.expiryDate,
}
sopFileEdit(inData).then(({data}) => {
if (data && data.code === 0) {
this.sopFileList = [];
this.sopFileListSearch();
this.uploadSOPEditFlag = false
this.fileName = '';
this.$message.success(this.labels.doYes)
} else {
this.$alert(data.msg, this.labels.error, {
confirmButtonText: this.labels.true
})
}
})
},
deleteSOPFile(row){
this.$confirm('确认删除该文件?', this.labels.point, {
confirmButtonText: this.labels.true,
cancelButtonText: this.labels.cancel,
type: 'warning'
}).then(() => {
deleteSOPFile(row).then(({data}) => {
if (data && data.code === 0) {
this.sopFileList = [];
this.sopFileListSearch();
this.$message.success(this.labels.doYes)
} else {
this.$alert(data.msg, this.labels.error, {
confirmButtonText: this.labels.true
})
}
})
})
},
closeUploadFileVisible(){
this.uploadSOPFlag=false;
this.sopFileList=[];
this.fileList = [];
this.closeFileUpdate();
},
closeUploadFileEditVisible(){
this.uploadSOPEditFlag=false;
this.fileName = '';
},
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 (data && data.code == 0) {
this.buttons = data.data
} else {
// saveButtonList(this.buttonList).then(({data}) => {
// })
}
});
//其次查询当前标签的多语言
searchFunctionButtonList(this.queryLabel).then(({data}) => {
if (data && data.code == 0) {
this.labels = data.data
} else {
// saveButtonList(this.buttonList).then(({data}) => {
// })
}
});
},
// 获取 用户保存的 格式列
async getTableUserColumn(tableId, columnId) {
let queryTableUser = {
userId: this.$store.state.user.name,
functionId: this.$route.meta.menuId,
tableId: tableId,
status: true,
languageCode: this.$i18n.locale
}
await getTableUserListLanguage(queryTableUser).then(({data}) => {
if (data.rows.length > 0) {
//this.columnList = []
switch (columnId) {
case 1:
this.columnList = data.rows
break;
case 2:
this.columnList2 = data.rows
break;
case 3:
this.columnList3 = data.rows
break;
}
} else {
this.getColumnList(tableId, columnId)
}
})
},
// 获取 tableDefault 列
async getColumnList(tableId, columnId) {
this.queryTable.tableId = tableId
let queryTable= {
functionId: this.$route.meta.menuId,
tableId: tableId,
languageCode: this.$i18n.locale
}
await getTableDefaultListLanguage(queryTable).then(({data}) => {
if (!data.rows.length == 0) {
switch (columnId) {
case 1:
this.columnList = data.rows
break;
case 2:
this.columnList2 = data.rows
break;
case 3:
this.columnList3 = data.rows
break;
}
} else {
// this.showDefault = true
}
})
},
},
created() {
this.first();
//获取按钮的权限
this.getButtonAuthData();
//
this.getMultiLanguageList()//刷新按钮
this.getTableUserColumn('103004Table',1)
this.getTableUserColumn('103004Table2',2)
this.getTableUserColumn('103004Table3',3)
}
}
</script>
<style scoped>
</style>