| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备列表查询 |
| | | export function DeviceMangerSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备信息查看SOP |
| | | export function DeviceSopSearch(data) { |
| | | return request({ |
| | | url: 'DeviceManager/DeviceSopSearch', |
| | | method: 'get', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备清单新增编辑 |
| | | export function AddUpdateDeviceManger(data) { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 设备信息删除 |
| | | export function DeleteDeviceManger(data) { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检项删除 |
| | | export function DeleteDeviceCheckItem(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养项列表查询 |
| | | export function DeviceMaiItemSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养项新增编辑 |
| | | export function AddUpdateDeviceMaiItem(data) { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养项删除 |
| | | export function DeleteDeviceMaiItem(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准列表查询 |
| | | export function DeviceCheckStandArdSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准新增、编辑获取检验项目下拉列表 |
| | | export function DeviceCheckItemSelect() { |
| | | return request({ |
| | |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准编辑/查看获取数据 |
| | | export function ViewDeviceCheckStanedSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准新增编辑 |
| | | export function AddUpdateDeviceCheckStandArd(data, opertype) { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准删除 |
| | | export function DeleteDeviceCheckStaned(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准关联工作站查询 |
| | | export function DeviceCheckStanedAssociationEqp(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备点检标准关联工作站提交 |
| | | export function SaveDeviceCheckStanedAssociationEqp(data, checkstand_code) { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准列表查询 |
| | | export function DeviceRepairStandArdSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准新增、编辑获取保养项目下拉列表 |
| | | export function DeviceRepairItemSelect() { |
| | | return request({ |
| | |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准编辑/查看获取数据 |
| | | export function ViewDeviceRepairStanedSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准新增编辑 |
| | | export function AddUpdateDeviceRepairStandArd(data, opertype) { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准删除 |
| | | export function DeleteDeviceRepairStaned(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准关联工作站查询 |
| | | export function DeviceRepairStanedAssociationEqp(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备保养标准关联工作站提交 |
| | | export function SaveDeviceRepairStanedAssociationEqp(data, repairstand_code) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备维修记录查询 |
| | | export function DeviceUpdateSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备维修记录明细查询 |
| | | export function DeviceUpdateSubSearch(data) { |
| | | return request({ |
| | |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 设备维修记录下载 |
| | | export function DeviceUpdateOutExcel(data) { |
| | | return request({ |
| | |
| | | }) |
| | | } |
| | | |
| | | // MES工单查看工单SOP |
| | | export function MesOrderSopSearch(data) { |
| | | return request({ |
| | | url: 'WorkOrder/MesOrderSopSearch', |
| | | method: 'get', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // MES工单查看工艺SOP |
| | | export function MesOrderProcessSopSearch(data) { |
| | | return request({ |
| | | url: 'WorkOrder/MesOrderProcessSopSearch', |
| | | method: 'get', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | // 工单派发 |
| | | export function MesOrderDistribution(data) { |
| | | return request({ |
| | |
| | | > |
| | | <div class="bodyTopButtonGroup" style="justify-content: space-between"> |
| | | <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button> |
| | | <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=9')">导入</el-button> |
| | | <el-button |
| | | v-waves |
| | | type="success" |
| | | icon="el-icon-download" |
| | | @click="$router.push('./../systemSetting/dataImport?fileCode=9')" |
| | | >导入 |
| | | </el-button> |
| | | </div> |
| | | |
| | | <div class="bodyTopFormGroup"> |
| | |
| | | class="bodySearchReset" |
| | | :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" |
| | | > |
| | | <el-button v-waves type="primary" icon="el-icon-search" @click="getDeviceMangerSearch($refs.treeLeftRef.getCurrentNode())">查询</el-button> |
| | | <el-button |
| | | v-waves |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | @click="getDeviceMangerSearch($refs.treeLeftRef.getCurrentNode())" |
| | | >查询 |
| | | </el-button> |
| | | <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button> |
| | | </div> |
| | | </el-form> |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" content="SOP预览" placement="top"> |
| | | <i |
| | | v-if="mesSetting.device" |
| | | class="el-icon-files" |
| | | style="cursor: pointer;color:#42b983;margin-right: 15px" |
| | | @click="pre(row)" |
| | | /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip class="item" effect="dark" content="编辑" placement="top"> |
| | | <i |
| | | class="el-icon-edit-outline" |
| | |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- sop预览--> |
| | | <el-dialog |
| | | v-el-drag-dialog |
| | | title="设备SOP预览" |
| | | :visible.sync="SopDialogVisible" |
| | | width="800px" |
| | | :close-on-click-modal="false" |
| | | top="15vh" |
| | | @closed="handleSopClose" |
| | | @close="handleSopClose" |
| | | > |
| | | |
| | | <el-form ref="dialogClassForm" inline :rules="dialogClassFormRules" :model="dialogClassForm" label-width="110px"> |
| | | <el-form-item label="设备SOP"> |
| | | <el-select |
| | | v-model="dialogSopForm.sop" |
| | | style="width:200px" |
| | | placeholder="请选择" |
| | | filterable |
| | | :popper-append-to-body="false" |
| | | @change="sopChange" |
| | | > |
| | | <el-option |
| | | v-for="item in sopArr" |
| | | :key="item.filepath" |
| | | :label="item.filename" |
| | | :value="item.filepath" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="Sop版本"> |
| | | <el-input v-model="dialogSopForm.v" disabled style="width: 200px" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-button |
| | | v-waves |
| | | type="primary" |
| | | style="margin-left: 37px" |
| | | @click="view" |
| | | >预 览/下 载</el-button> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button v-waves @click="handleSopClose">取 消</el-button> |
| | | <!-- <el-button--> |
| | | <!-- v-waves--> |
| | | <!-- type="primary"--> |
| | | <!-- :loading="$store.state.app.buttonIsDisabled"--> |
| | | <!-- :disabled="$store.state.app.buttonIsDisabled"--> |
| | | <!-- @click="handleSopConfirm"--> |
| | | <!-- >确 定</el-button>--> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | AddUpdateDeviceManger, |
| | | AddUpdateDeviceType, DeleteDeviceManger, |
| | | DeleteDeviceType, |
| | | DeviceMangerSearch, |
| | | DeviceMangerSearch, DeviceSopSearch, |
| | | DeviceTypeSearch |
| | | } from '@/api/DeviceManager' |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | mesSetting: JSON.parse(localStorage.getItem('mesSetting')), |
| | | mouseHoverType: 'mouseout', |
| | | isExpandForm: false, |
| | | mainHeight: 0, |
| | |
| | | storgcode: [ |
| | | { required: true, message: '请选择所属组织', trigger: ['blur', 'change'] } |
| | | ] |
| | | }, |
| | | |
| | | } |
| | | SopDialogVisible: false, |
| | | dialogSopForm: { // 设备SOP表单 |
| | | sop: '', |
| | | v: '' |
| | | }, |
| | | sopArr: [] |
| | | |
| | | } |
| | | }, |
| | |
| | | this.getPrentOrganization() |
| | | }, |
| | | methods: { |
| | | // 弹出框关闭 |
| | | handleSopClose() { |
| | | this.SopDialogVisible = false |
| | | this.dialogSopForm = { // 设备SOP表单 |
| | | sop: '', |
| | | v: '' |
| | | } |
| | | }, |
| | | // 预览 |
| | | view() { |
| | | window.open(process.env.VUE_APP_BASE_API_FILE + this.dialogSopForm.sop) |
| | | }, |
| | | // sop预览 |
| | | async pre(row) { |
| | | const data = { |
| | | eqptypecode: row.eqptype_code, |
| | | eqpcode: row.code |
| | | } |
| | | const { data: res } = await DeviceSopSearch(data) |
| | | this.sopArr = res |
| | | |
| | | this.SopDialogVisible = true |
| | | }, |
| | | sopChange(val) { |
| | | this.dialogSopForm.v = this.sopArr.find(i => i.filepath === val).version |
| | | }, |
| | | async getDeviceTypeSearch() { |
| | | const res = await DeviceTypeSearch() |
| | | res.data.forEach(i => { |
| | |
| | | :on-exceed="handleExceed" |
| | | :auto-upload="false" |
| | | :multiple="false" |
| | | accept=".mp4,.pdf,.png,.jpeg,.svg,.txt,.xlsx,.xls" |
| | | > |
| | | <!-- accept=".mp4,.pdf"--> |
| | | <el-button |
| | | v-waves |
| | | type="primary" |
| | |
| | | handleExceed() { |
| | | this.$message.info('暂不支持多文件上传!') |
| | | }, |
| | | |
| | | async devicetypecodeChange(eqptypecode) { |
| | | const { data: res } = await EqpTypecodeSeachEqpPermissions({ eqptypecode }) |
| | | this.deviceArr = res |
| | |
| | | // 对话框确认 |
| | | dialogVisibleConfirm() { |
| | | console.log(this.$refs.uploadFileRef.uploadFiles[0]) |
| | | |
| | | if (!this.$refs.uploadFileRef.uploadFiles[0]) { |
| | | this.$message.info('请选择文件上传!') |
| | | return this.$message.info('请选择文件上传!') |
| | | } |
| | | |
| | | const isLt100M = this.$refs.uploadFileRef.uploadFiles[0].size / 1024 / 1024 <= 1024 |
| | | if (!isLt100M) { |
| | | return this.$message.info('请检查,上传文件大小不能超过1024MB!') |
| | | } |
| | | |
| | | this.$refs.dialogForm.validate(valid => { |
| | |
| | | <el-option |
| | | v-for="item in partcodeArr" |
| | | :key="item.partcode" |
| | | :label="item.partname" |
| | | :label="item.partname+' / '+item.partcode" |
| | | :value="item.partcode" |
| | | /> |
| | | </el-select> |
| | |
| | | :on-exceed="handleExceed" |
| | | :auto-upload="false" |
| | | :multiple="false" |
| | | accept=".mp4,.pdf,.png,.jpeg,.svg,.txt,.xlsx,.xls" |
| | | > |
| | | <!-- accept=".mp4,.pdf"--> |
| | | <el-button |
| | |
| | | this.$message.info('请选择文件上传!') |
| | | } |
| | | |
| | | const isLt100M = this.$refs.uploadFileRef.uploadFiles[0].size / 1024 / 1024 <= 1024 |
| | | if (!isLt100M) { |
| | | return this.$message.info('请检查,上传文件大小不能超过1024MB!') |
| | | } |
| | | |
| | | this.$refs.dialogForm.validate(valid => { |
| | | if (valid) { |
| | | const formData = new FormData() |
| | |
| | | :on-exceed="handleExceed" |
| | | :auto-upload="false" |
| | | :multiple="false" |
| | | accept=".mp4,.pdf,.png,.jpeg,.svg,.txt,.xlsx,.xls" |
| | | > |
| | | <!-- accept=".mp4,.pdf"--> |
| | | <el-button |
| | |
| | | this.$message.info('请选择文件上传!') |
| | | } |
| | | |
| | | const isLt100M = this.$refs.uploadFileRef.uploadFiles[0].size / 1024 / 1024 <= 1024 |
| | | if (!isLt100M) { |
| | | return this.$message.info('请检查,上传文件大小不能超过1024MB!') |
| | | } |
| | | |
| | | this.$refs.dialogForm.validate(valid => { |
| | | if (valid) { |
| | | const formData = new FormData() |
| | |
| | | this.route = mesSetting.route |
| | | |
| | | this.isOrder = mesSetting.isOrder |
| | | this.device = mesSetting.device |
| | | this.tech = mesSetting.tech |
| | | this.workOrder = mesSetting.workOrder |
| | | this.every = mesSetting.every |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" content="SOP预览" placement="top"> |
| | | <i |
| | | v-if="mesSetting.workOrder" |
| | | class="el-icon-files" |
| | | style="cursor: pointer;color:#42b983;margin-right: 15px" |
| | | @click="pre(row,1)" |
| | | /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip class="item" effect="dark" content="修改" placement="top"> |
| | | <i |
| | | class="el-icon-edit-outline" |
| | |
| | | show-tooltip-when-overflow |
| | | prop="delive_qty" |
| | | /> |
| | | <!-- <el-table-column--> |
| | | <!-- label="操作"--> |
| | | <!-- width="120"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div class="operationClass">--> |
| | | <el-table-column |
| | | label="操作" |
| | | width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" content="SOP预览" placement="top"> |
| | | <i |
| | | v-if="mesSetting.tech" |
| | | class="el-icon-files" |
| | | style="cursor: pointer;color:#42b983;margin-right: 15px" |
| | | @click="pre(row,2)" |
| | | /> |
| | | </el-tooltip> |
| | | <!-- <el-tooltip class="item" effect="dark" content="打印工序" placement="top">--> |
| | | <!-- <i--> |
| | | <!-- v-if="tableDataDetail.length!==row.seq"--> |
| | |
| | | <!-- @click="getProductInHouseLabCode(row.wo_code)"--> |
| | | <!-- />--> |
| | | <!-- </el-tooltip>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- 工单sop/工序sop--> |
| | | <el-dialog |
| | | v-el-drag-dialog |
| | | class="sop" |
| | | title="设备SOP预览" |
| | | :visible.sync="SopDialogVisible" |
| | | width="800px" |
| | | :close-on-click-modal="false" |
| | | top="15vh" |
| | | @closed="handleSopClose" |
| | | @close="handleSopClose" |
| | | > |
| | | |
| | | <el-form inline label-width="110px" style="display:flex"> |
| | | <el-form-item label="工单SOP"> |
| | | <el-select |
| | | v-model="dialogSopForm.sop" |
| | | style="width:200px" |
| | | placeholder="请选择" |
| | | filterable |
| | | :popper-append-to-body="false" |
| | | @change="sopChange" |
| | | > |
| | | <el-option |
| | | v-for="item in sopArr" |
| | | :key="item.filepath" |
| | | :label="item.filename" |
| | | :value="item.filepath" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="Sop版本"> |
| | | <el-input v-model="dialogSopForm.v" disabled style="width: 200px" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-button |
| | | v-waves |
| | | type="primary" |
| | | style="margin-left: 37px" |
| | | @click="view" |
| | | >预 览/下 载</el-button> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button v-waves @click="handleSopClose">取 消</el-button> |
| | | <!-- <el-button--> |
| | | <!-- v-waves--> |
| | | <!-- type="primary"--> |
| | | <!-- :loading="$store.state.app.buttonIsDisabled"--> |
| | | <!-- :disabled="$store.state.app.buttonIsDisabled"--> |
| | | <!-- @click="handleSopConfirm"--> |
| | | <!-- >确 定</el-button>--> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | AddMesOrderCodeSearch, |
| | | AddUpdateMesOrder, DeleteMesOrder, |
| | | MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent, |
| | | MesOrderSearch, |
| | | MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent, MesOrderProcessSopSearch, |
| | | MesOrderSearch, MesOrderSopSearch, |
| | | UpdateMesOrderStepSearch |
| | | } from '@/api/WorkOrder' |
| | | import { PartSelect } from '@/api/ProductModel' |
| | |
| | | import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui |
| | | import DateType from '@/components/DateType' |
| | | import { PartSelectRpute, RouteSelectStep } from '@/api/basicSettings' |
| | | import { DeviceSopSearch } from '@/api/DeviceManager' |
| | | export default { |
| | | name: 'WorkOrderList', |
| | | components: { |
| | |
| | | |
| | | sourceType: false, // 工序的数据来源 |
| | | |
| | | mesSetting: JSON.parse(localStorage.getItem('mesSetting')) |
| | | mesSetting: JSON.parse(localStorage.getItem('mesSetting')), |
| | | |
| | | SopDialogVisible: false, |
| | | dialogSopForm: { // 设备SOP表单 |
| | | sop: '', |
| | | v: '' |
| | | }, |
| | | sopArr: [], |
| | | routeCode: '', // 工艺路线code |
| | | partCode: '' |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | // }) |
| | | }, |
| | | methods: { |
| | | // 弹出框关闭 |
| | | handleSopClose() { |
| | | this.SopDialogVisible = false |
| | | this.dialogSopForm = { // 设备SOP表单 |
| | | sop: '', |
| | | v: '' |
| | | } |
| | | }, |
| | | // 预览 |
| | | view() { |
| | | window.open(process.env.VUE_APP_BASE_API_FILE + this.dialogSopForm.sop) |
| | | }, |
| | | sopChange(val) { |
| | | this.dialogSopForm.v = this.sopArr.find(i => i.filepath === val).version |
| | | }, |
| | | async pre(row, type) { |
| | | if (type === 1) { |
| | | const data = { |
| | | wocode: row.wo_code, |
| | | materielcode: row.partcode |
| | | } |
| | | const { data: res } = await MesOrderSopSearch(data) |
| | | this.sopArr = res |
| | | } |
| | | |
| | | if (type === 2) { |
| | | const data = { |
| | | materielcode: this.partCode, |
| | | routecode: this.routeCode ? this.routeCode : '', |
| | | stepcode: row.step_code |
| | | } |
| | | const { data: res } = await MesOrderProcessSopSearch(data) |
| | | this.sopArr = res |
| | | } |
| | | |
| | | this.SopDialogVisible = true |
| | | }, |
| | | // 工序来源切换 |
| | | sourceTypeChange(val) { |
| | | this.stepTableData = [] |
| | |
| | | }, |
| | | // 行点击事件 |
| | | async rowClick(row, event, column) { |
| | | this.routeCode = row.route_code ? row.route_code : '' |
| | | this.partCode = row.partcode ? row.partcode : '' |
| | | const data = { |
| | | sourceid: row.sourceid, |
| | | sourcewo: row.m_po, |
| | |
| | | padding: 20px 100px !important; |
| | | } |
| | | |
| | | .sop { |
| | | ::v-deep .el-dialog__body { |
| | | padding: 50px 80px !important; |
| | | } |
| | | } |
| | | |
| | | .dialogVisibleSearch ::v-deep .el-dialog__body { |
| | | padding: 20px 20px !important; |
| | | } |