Merge branch 'dev' of http://10.10.11.66:3000/mes/nalinv-ui into dev
This commit is contained in:
commit
37ae1f526e
10
src/api/mes/print/print-record.js
Normal file
10
src/api/mes/print/print-record.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function fetchList(query) {
|
||||
return request({
|
||||
url: nlv_print('/print-record/page'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
10
src/api/mes/print/print.js
Normal file
10
src/api/mes/print/print.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function reprint(printRecordHandle) {
|
||||
return request({
|
||||
url: nlv_print('/print/reprint?printRecordHandle=' + printRecordHandle),
|
||||
method: 'post',
|
||||
data: {}
|
||||
})
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_wms, tds} from "@/api/prefix";
|
||||
import {mom_wms} from "@/api/prefix";
|
||||
|
||||
// 生产入库单申请-单据号弹窗分页查询
|
||||
export function getDocumentNoPage(query) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/getDocumentNoPage'),
|
||||
url: mom_wms('/z-storag-request/getDocumentNoPage'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@ -13,7 +13,7 @@ export function getDocumentNoPage(query) {
|
||||
// 生产入库单申请-目标仓库弹窗分页查询
|
||||
export function getTargetWarehousePage(query) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/getTargetWarehousePage'),
|
||||
url: mom_wms('/z-storag-request/getTargetWarehousePage'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@ -22,7 +22,7 @@ export function getTargetWarehousePage(query) {
|
||||
// 生产入库单申请-来源仓库弹窗分页查询
|
||||
export function getSourceWarehousePage(query) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/getSourceWarehousePage'),
|
||||
url: mom_wms('/z-storag-request/getSourceWarehousePage'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@ -31,7 +31,7 @@ export function getSourceWarehousePage(query) {
|
||||
// 生产入库单申请-物料弹窗分页查询
|
||||
export function getItemPage(query) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/getItemPage'),
|
||||
url: mom_wms('/z-storag-request/getItemPage'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@ -40,7 +40,7 @@ export function getItemPage(query) {
|
||||
// 生产入库单申请-创建人弹窗分页查询
|
||||
export function getCreateUserPage(query) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/getCreateUserPage'),
|
||||
url: mom_wms('/z-storag-request/getCreateUserPage'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@ -49,7 +49,7 @@ export function getCreateUserPage(query) {
|
||||
// 生产入库单申请-分页查询
|
||||
export function getObj(obj,params) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/search'),
|
||||
url: mom_wms('/z-storag-request/search'),
|
||||
method: 'post',
|
||||
data: obj,
|
||||
params: params
|
||||
@ -61,7 +61,7 @@ export function getObj(obj,params) {
|
||||
// 生产入库单申请-托盘号/条码号扫描事件
|
||||
export function barScanEvent(query) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/barScanEvent'),
|
||||
url: mom_wms('/z-storag-request/barScanEvent'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@ -70,7 +70,7 @@ export function barScanEvent(query) {
|
||||
// 生产入库单申请-保存事件
|
||||
export function greatSaveOrUpdate(obj) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/greatSaveOrUpdate'),
|
||||
url: mom_wms('/z-storag-request/greatSaveOrUpdate'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
@ -78,15 +78,23 @@ export function greatSaveOrUpdate(obj) {
|
||||
// 生产入库单申请-提交事件
|
||||
export function submit(site,documentNo) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/submit/'+documentNo+'/'+site),
|
||||
url: mom_wms('/z-storag-request/submit/'+documentNo+'/'+site),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// 生产入库单申请-删除事件
|
||||
export function greatDelete(obj) {
|
||||
return request({
|
||||
url: nlv_wms('/z-storag-request/greatDelete'),
|
||||
url: mom_wms('/z-storag-request/greatDelete'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
// 生产入库单申请-查询单据号是否存在
|
||||
export function selectStoragRequest(documentNo) {
|
||||
return request({
|
||||
url: mom_wms('/z-storag-request/selectStoragRequest/'+documentNo),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import request from '@/router/axios'
|
||||
import {iep, nlv_wms, wms} from '@/api/prefix'
|
||||
import {iep, nlv_wms, wms,mom_wms} from '@/api/prefix'
|
||||
|
||||
/**
|
||||
{
|
||||
@ -106,7 +106,7 @@ export function selectEqpFeedingListPage (query) {
|
||||
|
||||
export function selectByMaterialLot(obj) {
|
||||
return request({
|
||||
url: iep('/wmsInventory/selectByMaterialLot'),
|
||||
url: mom_wms('/wms-inventory/selectByMaterialLot'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
|
||||
@ -3,7 +3,7 @@ import i18n from '@/i18n';
|
||||
export default {
|
||||
title: 'iMES',
|
||||
subtitle: 'iMES',
|
||||
copyright: 'Copyright 2020-2024 NLINV. All Rights Reserved.',
|
||||
copyright: 'Copyright 2020-2024 SEMI-TECH. All Rights Reserved.',
|
||||
isFirstPage: true, // 配置首页不可关闭
|
||||
key: 'mom', // 配置主键,目前用于存储
|
||||
validateCode: false, //是否开启验证码校验
|
||||
|
||||
@ -66,13 +66,18 @@
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="functionName" :label="$t('mes.int.methodName')">
|
||||
<el-input v-model.trim="searchForm.functionName" :placeholder="$t('mes.int.enterMethodName')">
|
||||
<el-select v-model="searchForm.functionName" style="width: 100%" clearable placeholder="字典 INT_FUNCTION_NAME">
|
||||
<el-option v-for="item in functionNameList" :key="item.value" :label="item.description"
|
||||
:value="item.value"></el-option>
|
||||
</el-select>
|
||||
|
||||
<!-- <el-input v-model.trim="searchForm.functionName" :placeholder="$t('mes.int.enterMethodName')">
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-copy-document"
|
||||
@click.stop="showSearchDialog('functionName')"
|
||||
></i>
|
||||
</el-input>
|
||||
</el-input>-->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
@ -124,6 +129,7 @@ import {
|
||||
} from '@/api/mes/int/integrated-service-transaction-history-query/master'
|
||||
import moment from 'moment'
|
||||
import tooltip from '@/components/tooltip/index.vue'
|
||||
import { fetchItemList as fetchDictList } from '@/api/admin/dict'
|
||||
|
||||
export default {
|
||||
components: { tooltip },
|
||||
@ -132,6 +138,7 @@ export default {
|
||||
searchForm: {},
|
||||
selectBox,
|
||||
MethodNameObj,
|
||||
functionNameList: [],
|
||||
MethodNameShow: false,
|
||||
getMethodNameDialog,
|
||||
fromSystemOptions: [],
|
||||
@ -143,9 +150,23 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.searchForm = copyJSON(initSearch)
|
||||
this.fetchFromAndToSystems()
|
||||
this.fetchFromAndToSystems();
|
||||
// avue option 翻譯 用
|
||||
this.getDataDictionary('INT_FUNCTION_NAME', 'functionNameList')
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 获取数据字典
|
||||
getDataDictionary(dictType, list) {
|
||||
fetchDictList({
|
||||
current: '1',
|
||||
size: '1000',
|
||||
dictType: dictType
|
||||
}).then(response => {
|
||||
this[list] = copyJSON(response.data.data.records)
|
||||
})
|
||||
},
|
||||
|
||||
fetchFromAndToSystems() {
|
||||
getFromSystemData()
|
||||
.then((res) => {
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
tooltip-effect="dark"
|
||||
border
|
||||
>
|
||||
<el-table-column :label="$t('common.seq')" prop="seq" width="80" sortable fixed="left">
|
||||
<el-table-column :label="$t('common.seq')" prop="seq" width="60" fixed="left">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-for="item in tableObj"
|
||||
@ -31,7 +31,7 @@
|
||||
>
|
||||
<template v-if="item.prop === 'state'" v-slot:default="scope">
|
||||
<span class="link-text" @click="showHistory(scope.row)">
|
||||
{{ scope.row.state === '1' ? $t('mes.int.executionFailed') : $t('mes.executeSuccess') }}
|
||||
{{ scope.row.state === 'E' ? $t('mes.int.executionFailed') : $t('mes.executeSuccess') }}
|
||||
</span>
|
||||
</template>
|
||||
<template
|
||||
|
||||
@ -27,13 +27,13 @@ export const historyFormInit = {
|
||||
}
|
||||
|
||||
export const tableObj = [
|
||||
{ prop: 'fromSystem', label: 'mes.int.requestSide', width: '120' },
|
||||
{ prop: 'toSystem', label: 'mes.int.receiverSide', width: '120' },
|
||||
{ prop: 'fromSystem', label: 'mes.int.requestSide', width: '80' },
|
||||
{ prop: 'toSystem', label: 'mes.int.receiverSide', width: '80' },
|
||||
{ prop: 'state', label: 'crud.column.label.status1', width: '80' },
|
||||
{ prop: 'sid', label: 'mes.int.transactionNumber', width: '250' },
|
||||
{ prop: 'functionName', label: 'mes.int.methodName', width: '250' },
|
||||
{ prop: 'message', label: 'mes.int.message', width: '250' },
|
||||
{ prop: 'keyValue', label: 'mes.int.keyword', width: '150' },
|
||||
{ prop: 'keyValue', label: 'mes.int.keyword', width: '180' },
|
||||
{ prop: 'dateCreate', label: 'mes.int.transactionTime', width: '180' },
|
||||
{ prop: 'retryCount', label: 'mes.int.rethrowCount', width: '140' },
|
||||
{ prop: 'logCreator', label: 'mes.int.rethrowPersonnel', width: '150' },
|
||||
|
||||
@ -79,7 +79,8 @@ import {fetchList as fetchLabelTemplateList} from '@/api/mes/print/print-label-t
|
||||
import {getByCode as getLabelCategory} from '@/api/mes/print/labelCategory'
|
||||
import { clearValidate } from '@/util/util'
|
||||
import { showLoading, hideLoading } from '@/const/loading'
|
||||
import {changeTemplate} from "@/api/mes/print/sales-order-line-label-value-config";
|
||||
import {changeTemplate, soLineValueSetExists} from "@/api/mes/print/sales-order-line-label-value-config";
|
||||
import {reprint} from "@/api/mes/print/print";
|
||||
|
||||
export default {
|
||||
components: {},
|
||||
@ -144,20 +145,7 @@ export default {
|
||||
let me = this;
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
let param = {
|
||||
labelTempleCode: me.mainForm.labelTempleCode,
|
||||
configItem: me.mainForm.configItem,
|
||||
salesOrderLineBo: me.mainForm.salesOrderLineBo
|
||||
};
|
||||
// 处理响应成功后的操作
|
||||
showLoading()
|
||||
changeTemplate(param).then(response => {
|
||||
hideLoading()
|
||||
this.doConfirm()
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
|
||||
this.checkValueSetExists(me.mainForm);
|
||||
}
|
||||
})
|
||||
},
|
||||
@ -170,6 +158,48 @@ export default {
|
||||
doConfirm() {
|
||||
this.$emit('doConfirm', this.mainForm)
|
||||
this.closeForm()
|
||||
},
|
||||
checkValueSetExists(row) {
|
||||
let me = this;
|
||||
let param = {
|
||||
soNumber: row.soNumber,
|
||||
soLineId: row.soLineId
|
||||
}
|
||||
showLoading()
|
||||
soLineValueSetExists(param).then((response) => {
|
||||
hideLoading()
|
||||
if(response.data.data && response.data.data.configItem === row.configItem) {
|
||||
me.$confirm('当前订单行已配置对应的值集,修改模版后将清除对应的数据,是否确认修改?', '提示', {
|
||||
confirmButtonText: this.$t('common.confirm'),
|
||||
cancelButtonText: this.$t('common.cancel'),
|
||||
type: 'warning',
|
||||
})
|
||||
.then(() => {
|
||||
me.doChangeConfirm(row)
|
||||
})
|
||||
} else {
|
||||
me.doChangeConfirm(row)
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
},
|
||||
doChangeConfirm(row) {
|
||||
let me = this;
|
||||
let param = {
|
||||
labelTempleCode: row.labelTempleCode,
|
||||
configItem: row.configItem,
|
||||
salesOrderLineBo: row.salesOrderLineBo
|
||||
};
|
||||
// 处理响应成功后的操作
|
||||
showLoading()
|
||||
changeTemplate(param).then(response => {
|
||||
hideLoading()
|
||||
me.doConfirm()
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@ -235,6 +235,7 @@ import {remote} from '@/api/admin/dict'
|
||||
import {showLoading, hideLoading} from "@/const/loading";
|
||||
import labelTemplateChange from '@/views/mes/print/customer-label/content/label-template-change.vue'
|
||||
import fieldValueSet from '@/views/mes/print/customer-label/content/field-value-set.vue'
|
||||
import {reprint} from "@/api/mes/print/print";
|
||||
|
||||
export default {
|
||||
name: 'customer-label',
|
||||
@ -392,11 +393,12 @@ export default {
|
||||
updateSoLineTemplate(row) {
|
||||
for(let i = 0; i < this.tableData.length; i++) {
|
||||
let data = this.tableData[i]
|
||||
if(data.salesOrderLineBo === row.salesOrderLineBo) {
|
||||
if(data.salesOrderLineBo === row.salesOrderLineBo && data.configItem === row.configItem) {
|
||||
data.labelTempleCode = row.labelTempleCode
|
||||
data.labelCategoryName = row.labelCategoryName
|
||||
data.templateName = row.templateName
|
||||
data.labelCategoryId = row.labelCategoryId
|
||||
this.getValueSetList(row)
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -430,6 +432,10 @@ export default {
|
||||
})
|
||||
},
|
||||
getValueSetList(row) {
|
||||
if(!row) {
|
||||
this.valueSetData = []
|
||||
return;
|
||||
}
|
||||
let param = {
|
||||
labelNumber: row.labelTempleCode,
|
||||
salesOrderLineBo: row.salesOrderLineBo,
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
:permission="permissionList"
|
||||
:table-loading="tableLoading"
|
||||
:option="tableOption"
|
||||
:upload-before="uploadBefore"
|
||||
@on-load="getList"
|
||||
@search-change="searchChange"
|
||||
@refresh-change="refreshChange"
|
||||
@ -25,6 +24,11 @@
|
||||
<template slot-scope="scope" slot="templateCategoryForm">
|
||||
<el-input placeholder="模板类别" v-model="formObj.templateCategory"><i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showTemplateCategoryDialog()"></i></el-input>
|
||||
</template>
|
||||
<template slot-scope="scope" slot="fileForm">
|
||||
<el-upload ref="upload" :http-request="doUpload" action="/" :on-change="handleSelectFile" :before-upload="beforeUpload">
|
||||
<el-button size="small" type="primary" :disabled="isBlank(formObj.templateCode)">点击上传</el-button>
|
||||
</el-upload>
|
||||
</template>
|
||||
<!-- <template slot-scope="scope" slot="fileForm">-->
|
||||
<!-- </template>-->
|
||||
</avue-crud>
|
||||
@ -38,12 +42,14 @@
|
||||
import {fetchList as fetchTemplateCategoryList} from '@/api/mes/print/labelCategory'
|
||||
import {mapGetters} from 'vuex'
|
||||
import {isBlank} from "@/util/string";
|
||||
import {hideLoading, showLoading} from "@/const/loading";
|
||||
import axios from "axios";
|
||||
|
||||
export default {
|
||||
name: 'print-label-template',
|
||||
data() {
|
||||
return {
|
||||
|
||||
isBlank,
|
||||
tableOption: {
|
||||
"align": "center",
|
||||
"index": true,
|
||||
@ -173,6 +179,28 @@
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
doUpload(params) {
|
||||
let me = this
|
||||
let file =params.file
|
||||
let formData = new FormData();
|
||||
formData.append("file",file);
|
||||
formData.append("templateCode",me.formObj.templateCode);
|
||||
showLoading()
|
||||
axios.post('/nlv-print/printlabeltemplate/upload', formData).then(function (response) {
|
||||
hideLoading()
|
||||
if(response.data.code !== 0) {
|
||||
return this.$message.warning(response.data.msg)
|
||||
}
|
||||
}).catch(function (error) {
|
||||
hideLoading()
|
||||
console.log(error);
|
||||
})
|
||||
},
|
||||
handleSelectFile(file, fileList) {
|
||||
if (fileList.length > 1) {
|
||||
fileList.shift();
|
||||
}
|
||||
},
|
||||
showTemplateCategoryDialog() {
|
||||
this.templateCategoryDialogVisible = true
|
||||
},
|
||||
@ -180,12 +208,12 @@
|
||||
let me = this
|
||||
me.formObj.templateCategory = row.labelCategoryId
|
||||
},
|
||||
uploadBefore(file, done, loading,column) {
|
||||
console.log(file,column)
|
||||
beforeUpload(file) {
|
||||
debugger
|
||||
this.formObj.templateName = file.name
|
||||
//如果你想修改file文件,由于上传的file是只读文件,必须复制新的file才可以修改名字,完后赋值到done函数里,如果不修改的话直接写done()即可
|
||||
let newFile = new File([file], this.formObj.templateCode, { type: "lab" });
|
||||
done(newFile)
|
||||
return true;
|
||||
},
|
||||
beforeOpen(done, type) {
|
||||
if (['views', 'edit'].includes(type)) {
|
||||
|
||||
361
src/views/mes/print/reprint/index.vue
Normal file
361
src/views/mes/print/reprint/index.vue
Normal file
@ -0,0 +1,361 @@
|
||||
<template>
|
||||
<div class="basic-container-custom">
|
||||
<input-select-dialog
|
||||
:modal-obj="shopOrderDialogObj"
|
||||
:modal-fetch-fun="shopOrderDialogFetchFun"
|
||||
:modal-show.sync="shopOrderDialogVisible"
|
||||
@inputDialogSelected="shopOrderSelected"
|
||||
></input-select-dialog>
|
||||
<input-select-dialog
|
||||
:modal-obj="operationDialogObj"
|
||||
:modal-fetch-fun="operationDialogFetchFun"
|
||||
:modal-show.sync="operationDialogVisible"
|
||||
@inputDialogSelected="operationSelected"
|
||||
></input-select-dialog>
|
||||
<div class="flex-content">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
|
||||
<el-form-item
|
||||
label="工单号"
|
||||
label-suffix=":"
|
||||
prop="shopOrder"
|
||||
>
|
||||
<el-input v-model="queryParams.shopOrder" size="small" @keyup.enter.native="handleQuery">
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-copy-document"
|
||||
@click.stop="showShopOrderDialog"
|
||||
></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="工序"
|
||||
label-suffix=":"
|
||||
prop="operation"
|
||||
>
|
||||
<el-input v-model="queryParams.operation" size="small" @keyup.enter.native="handleQuery">
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-copy-document"
|
||||
@click.stop="showOperationDialog"
|
||||
></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="条码号"
|
||||
label-suffix=":"
|
||||
prop="barcodeNumber"
|
||||
>
|
||||
<el-input v-model="queryParams.barcodeNumber" size="small" @keyup.enter.native="handleQuery">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="打印场景"
|
||||
label-suffix=":"
|
||||
prop="barcodeType"
|
||||
>
|
||||
<el-select placeHolder="请选择" v-model="queryParams.barcodeType">
|
||||
<el-option v-for="item in barcodeTypeList" :key="item.value"
|
||||
:label="item.label" :value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{
|
||||
$t('mes.search')
|
||||
}}
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" @click="resetQuery">{{ $t('mes.reset') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="flex-auto">
|
||||
<el-table ref="searchTable" v-loading="loading" :data="tableData" height="100%" border>
|
||||
<el-table-column
|
||||
label="条码号"
|
||||
align="center"
|
||||
prop="barcodeNumber"
|
||||
width="130"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印场景"
|
||||
align="center"
|
||||
prop="barcodeType"
|
||||
width="100"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ formatBarcodeType(scope.row.barcodeType) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="工序"
|
||||
align="center"
|
||||
prop="operation"
|
||||
width="auto"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="工单号"
|
||||
align="center"
|
||||
prop="shopOrder"
|
||||
width="auto"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印次数"
|
||||
align="center"
|
||||
prop="printTimes"
|
||||
width="auto"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印份数"
|
||||
align="center"
|
||||
prop="copies"
|
||||
width="auto"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印模板"
|
||||
align="center"
|
||||
prop="printTmpl"
|
||||
width="auto"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印机名称"
|
||||
align="center"
|
||||
prop="printerName"
|
||||
width="auto"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印内容"
|
||||
align="center"
|
||||
prop="printContent"
|
||||
width="auto"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="打印时间"
|
||||
align="center"
|
||||
prop="lastPrintTime"
|
||||
:render-header="(h, { column, $index }) => renderSpecNameHeader(h, { column, $index }, options)"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column :label="$t('crud.menu')" align="center" width="70" class-name="small-padding">
|
||||
<template slot-scope="scope">
|
||||
<!-- 补打 -->
|
||||
<el-button
|
||||
type="text"
|
||||
size="mini"
|
||||
@click="handleReprint(scope.row)"
|
||||
>补打
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.current"
|
||||
:limit.sync="queryParams.size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters} from 'vuex'
|
||||
import {isBlank} from '@/util/string'
|
||||
import {copyJSON} from '@/util/util'
|
||||
import {initForm, initQueryParam, barcodeTypeList} from '@/views/mes/print/reprint/init'
|
||||
import {renderSpecNameHeader, clear} from '@/components/table-header-pop/render'
|
||||
import {fetchList} from '@/api/mes/print/print-record'
|
||||
import {reprint} from '@/api/mes/print/print'
|
||||
import {hideLoading, showLoading} from "@/const/loading";
|
||||
import {releaseFetchList} from "@/api/mes/prd/shop-order";
|
||||
import {
|
||||
operationDialogObj
|
||||
} from '@/views/mes/pod/init'
|
||||
import {findOperationList as fetchOperationList} from "@/api/mes/prd/operation";
|
||||
|
||||
export default {
|
||||
name: 'unit-basis',
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
barcodeTypeList,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 已办任务列表数据
|
||||
tableData: [],
|
||||
title: '标签补打',
|
||||
// 弹出层显示标识
|
||||
visible: false,
|
||||
// 弹出层标题
|
||||
showTitle: '',
|
||||
// 弹出层状态
|
||||
state: '',
|
||||
// 是否显示弹出层
|
||||
open: '',
|
||||
src: '',
|
||||
dateRange: [],
|
||||
// 查询参数
|
||||
queryParams: copyJSON(initQueryParam),
|
||||
// 表单参数
|
||||
form: copyJSON(initForm),
|
||||
// 表单校验
|
||||
rules: {},
|
||||
isBlank,
|
||||
renderSpecNameHeader,
|
||||
options: {
|
||||
refresh: this.refresh,
|
||||
visible: true,
|
||||
property: {
|
||||
lastPrintTime: {
|
||||
type: 'datetime',
|
||||
}
|
||||
},
|
||||
},
|
||||
orderJson: JSON.stringify([{column: 'CREATED_DATE_TIME', asc: false}]),
|
||||
operationDialogVisible: false,
|
||||
shopOrderDialogFetchFun: releaseFetchList,
|
||||
shopOrderDialogObj: {
|
||||
title: '工单',
|
||||
condition: 'shopOrder',
|
||||
tableColumn: [
|
||||
{
|
||||
prop: 'shopOrder',
|
||||
label: 'mes.shopOrderNo',
|
||||
},
|
||||
{
|
||||
prop: 'status',
|
||||
label: 'mes.ord.status',
|
||||
},
|
||||
{
|
||||
prop: 'qty',
|
||||
label: 'mes.qtyToBuild',
|
||||
},
|
||||
],
|
||||
queryParam: {},
|
||||
},
|
||||
shopOrderDialogVisible: false,
|
||||
operationDialogObj,
|
||||
operationDialogFetchFun: fetchOperationList,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
beforeRouteEnter(to, from, next) {
|
||||
next((vm) => {
|
||||
vm.getList()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
showShopOrderDialog() {
|
||||
if (!this.shopOrderDisabled) {
|
||||
this.shopOrderDialogVisible = true
|
||||
this.shopOrderDialogObj.queryParam.status = 'RELEASABLE'
|
||||
}
|
||||
},
|
||||
//显示操作弹窗框
|
||||
showOperationDialog() {
|
||||
this.operationDialogVisible = true
|
||||
},
|
||||
shopOrderSelected(row) {
|
||||
let me = this
|
||||
me.queryParams.shopOrder = row.shopOrder
|
||||
},
|
||||
operationSelected(row) {
|
||||
let me = this
|
||||
me.queryParams.operation = row.operation
|
||||
},
|
||||
getList() {
|
||||
this.loading = true
|
||||
// this.queryParams.orderJson = this.orderJson
|
||||
let params = this.addDateRange(this.queryParams, this.dateRange);
|
||||
fetchList(Object.assign(
|
||||
{
|
||||
orderJson: isBlank(this.orderJson) ? [] : this.orderJson,
|
||||
},
|
||||
params
|
||||
))
|
||||
.then((response) => {
|
||||
this.tableData = response.data.data.records
|
||||
this.total = parseInt(response.data.data.total)
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
formatBarcodeType(barcodeType) {
|
||||
for (let i = 0; i < this.barcodeTypeList.length; i++) {
|
||||
if (barcodeType === this.barcodeTypeList[i].value) {
|
||||
return this.barcodeTypeList[i].label
|
||||
}
|
||||
}
|
||||
return barcodeType
|
||||
},
|
||||
handleReprint(row) {
|
||||
this.$confirm('是否执行补打', '提示', {
|
||||
confirmButtonText: this.$t('common.confirm'),
|
||||
cancelButtonText: this.$t('common.cancel'),
|
||||
type: 'warning',
|
||||
})
|
||||
.then(() => {
|
||||
showLoading()
|
||||
reprint(row.handle)
|
||||
.then((response) => {
|
||||
this.$message.success("补打成功");
|
||||
this.getList()
|
||||
hideLoading()
|
||||
})
|
||||
.catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
})
|
||||
},
|
||||
refresh(params) {
|
||||
this.queryParams = Object.assign({}, this.queryParams, params)
|
||||
this.handleQuery()
|
||||
},
|
||||
clearValue(key) {
|
||||
this.queryParams[key] = ''
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.current = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.dateRange = []
|
||||
this.resetForm('queryForm')
|
||||
clear.call(this, this.$refs.searchTable)
|
||||
this.queryParams = copyJSON(initQueryParam)
|
||||
this.handleQuery()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
34
src/views/mes/print/reprint/init.js
Normal file
34
src/views/mes/print/reprint/init.js
Normal file
@ -0,0 +1,34 @@
|
||||
export const initQueryParam = {
|
||||
current: 1,
|
||||
size: 20,
|
||||
shopOrder: '',
|
||||
barcodeNumber: '',
|
||||
barcodeType: '',
|
||||
operation: ''
|
||||
}
|
||||
|
||||
export const initForm = {
|
||||
shopOrder: '',
|
||||
barcodeNumber: '',
|
||||
barcodeType: '',
|
||||
operation: ''
|
||||
}
|
||||
|
||||
export const barcodeTypeList = [
|
||||
{
|
||||
'value': 'operation',
|
||||
'label': '工序打印'
|
||||
},
|
||||
{
|
||||
'value': 'barcode',
|
||||
'label': '条码补打印'
|
||||
},
|
||||
{
|
||||
'value': 'package',
|
||||
'label': '包装批次打印'
|
||||
},
|
||||
{
|
||||
'value': 'tool',
|
||||
'label': '物流载具打印'
|
||||
}
|
||||
]
|
||||
@ -146,87 +146,107 @@
|
||||
' 若是空字符串,此处填写EMPTY',
|
||||
region: '{\n' +
|
||||
' "externalLabelFlag": "Y",\n' +
|
||||
' "dateTime": "2024-11-25 04:35:31",\n' +
|
||||
' "dateTime": "2024-11-26 01:06:52",\n' +
|
||||
' "shopOrder": "20241109002",\n' +
|
||||
' "fabNo": "FQCJ",\n' +
|
||||
' "resource": "FQ001",\n' +
|
||||
' "baseData": null,\n' +
|
||||
' "shopOrderData": {\n' +
|
||||
' "actualCompDate": null,\n' +
|
||||
' "actualStartDate": null,\n' +
|
||||
' "bomBo": "BOMBO:2031,20241109002,H,1.0",\n' +
|
||||
' "creator": "liaohechuan",\n' +
|
||||
' "customFields": null,\n' +
|
||||
' "customer": "",\n' +
|
||||
' "customerOrder": "",\n' +
|
||||
' "dateCreate": "2024-11-09T18:03:43",\n' +
|
||||
' "dateEffect": null,\n' +
|
||||
' "dateExpire": null,\n' +
|
||||
' "dateUpdate": null,\n' +
|
||||
' "erpOrder": "",\n' +
|
||||
' "erpProductionVersion": "",\n' +
|
||||
' "erpPutawayStorloc": "",\n' +
|
||||
' "erpUnitOfMeasure": "",\n' +
|
||||
' "handle": "ShopOrderBO:2031,20241109002",\n' +
|
||||
' "holdId": "",\n' +
|
||||
' "itemBo": "ItemBO:2031,ITEM01,A",\n' +
|
||||
' "originalStatusBo": "StatusBO:2031,RELEASABLE,SHOP_ORDER",\n' +
|
||||
' "plannedBomBo": "BOMBO:2031,20241109002,H,1.0",\n' +
|
||||
' "plannedCompDate": null,\n' +
|
||||
' "plannedItemBo": "ItemBO:2031,ITEM01,A",\n' +
|
||||
' "plannedRouterBo": "RouterBO:2031,LHCCS01,0,A",\n' +
|
||||
' "plannedStartDate": null,\n' +
|
||||
' "plannedWorkCenterBo": "WorkCenterBO:2031,20311003",\n' +
|
||||
' "priority": 999,\n' +
|
||||
' "qty": 999.000000,\n' +
|
||||
' "qtyDone": 0.000000,\n' +
|
||||
' "qtyReleased": 42.000000,\n' +
|
||||
' "qtyScrapped": 0.000000,\n' +
|
||||
' "releasedDate": null,\n' +
|
||||
' "routerBo": "RouterBO:2031,LHCCS01,0,A",\n' +
|
||||
' "shopOrder": "20241109002",\n' +
|
||||
' "shopOrderType": "0",\n' +
|
||||
' "site": "2031",\n' +
|
||||
' "statusBo": "StatusBO:2031,RELEASABLE,SHOP_ORDER",\n' +
|
||||
' "statusDescription": "",\n' +
|
||||
' "updater": "syngna",\n' +
|
||||
' "version": 1\n' +
|
||||
' },\n' +
|
||||
' "shopOrderCustomData": {\n' +
|
||||
' "zctZbk": "1",\n' +
|
||||
' "zctFwt": "1",\n' +
|
||||
' "orderType": "1",\n' +
|
||||
' "sepcOrder": "1",\n' +
|
||||
' "zctWl": "1",\n' +
|
||||
' "zctBz": "1",\n' +
|
||||
' "zctCd": "1",\n' +
|
||||
' "zctZxxg": "1",\n' +
|
||||
' "zctKh": "1",\n' +
|
||||
' "zctCb": "1",\n' +
|
||||
' "zctXsbgs": "1",\n' +
|
||||
' "zctPmys": "1",\n' +
|
||||
' "zctZxbqys": "1",\n' +
|
||||
' "zctTpsm": "1",\n' +
|
||||
' "zctWxbqys": "1",\n' +
|
||||
' "customerTemplateCode": "C01",\n' +
|
||||
' "zctGx": "1",\n' +
|
||||
' "zctXl": "1",\n' +
|
||||
' "ext5": "1",\n' +
|
||||
' "ext4": "1",\n' +
|
||||
' "bigOrder": "1",\n' +
|
||||
' "ext3": "1",\n' +
|
||||
' "zctTd": "1",\n' +
|
||||
' "ext2": "1",\n' +
|
||||
' "saleOrder": "SO01",\n' +
|
||||
' "zctHjt": "1",\n' +
|
||||
' "ext1": "1",\n' +
|
||||
' "zctGxmys": "1",\n' +
|
||||
' "zctTp": "1",\n' +
|
||||
' "zctDbd": "1",\n' +
|
||||
' "saleOrderLine": "1",\n' +
|
||||
' "zctHgz": "1",\n' +
|
||||
' "zctZxsg": "1",\n' +
|
||||
' "zctFktsl": "1",\n' +
|
||||
' "zctPp": "1",\n' +
|
||||
' "orderTypeDesc": "1",\n' +
|
||||
' "specialRemark": "1",\n' +
|
||||
' "zctWxys": "1",\n' +
|
||||
' "zctWbxh": "1",\n' +
|
||||
' "zctKhxh": "1",\n' +
|
||||
' "zctFx": "1",\n' +
|
||||
' "zctFxjd": "1",\n' +
|
||||
' "zctSf": "1",\n' +
|
||||
' "zctFkt": "1",\n' +
|
||||
' "zctDt": "1"\n' +
|
||||
' "ZCT_ZXBQYS": "1",\n' +
|
||||
' "ZCT_XL": "1",\n' +
|
||||
' "ZCT_DBD": "1",\n' +
|
||||
' "ZCT_WXBQYS": "1",\n' +
|
||||
' "SALE_ORDER_LINE": "1",\n' +
|
||||
' "SALE_ORDER": "SO01",\n' +
|
||||
' "ZCT_ZXXG": "1",\n' +
|
||||
' "SEPC_ORDER": "1",\n' +
|
||||
' "ZCT_WXYS": "1",\n' +
|
||||
' "ZCT_WBXH": "1",\n' +
|
||||
' "ZCT_GX": "1",\n' +
|
||||
' "ZCT_TD": "1",\n' +
|
||||
' "ZCT_HJT": "1",\n' +
|
||||
' "ZCT_GXMYS": "1",\n' +
|
||||
' "ZCT_HGZ": "1",\n' +
|
||||
' "CUSTOMER_TEMPLATE_CODE": "C01",\n' +
|
||||
' "ZCT_TP": "1",\n' +
|
||||
' "ZCT_FXJD": "1",\n' +
|
||||
' "ZCT_PP": "1",\n' +
|
||||
' "ORDER_TYPE_DESC": "1",\n' +
|
||||
' "BIG_ORDER": "1",\n' +
|
||||
' "ZCT_ZXSG": "1",\n' +
|
||||
' "ZCT_KHXH": "1",\n' +
|
||||
' "ZCT_WL": "1",\n' +
|
||||
' "ZCT_BZ": "1",\n' +
|
||||
' "ZCT_PMYS": "1",\n' +
|
||||
' "SPECIAL_REMARK": "1",\n' +
|
||||
' "ORDER_TYPE": "1",\n' +
|
||||
' "ZCT_FKT": "1",\n' +
|
||||
' "ZCT_SF": "1",\n' +
|
||||
' "ZCT_FX": "1",\n' +
|
||||
' "ZCT_TPSM": "1",\n' +
|
||||
' "ZCT_DT": "1",\n' +
|
||||
' "EXT1": "1",\n' +
|
||||
' "EXT2": "1",\n' +
|
||||
' "EXT3": "1",\n' +
|
||||
' "EXT4": "1",\n' +
|
||||
' "EXT5": "1",\n' +
|
||||
' "ZCT_FKTSL": "1",\n' +
|
||||
' "ZCT_CB": "1",\n' +
|
||||
' "ZCT_KH": "1",\n' +
|
||||
' "ZCT_XSBGS": "1",\n' +
|
||||
' "ZCT_ZBK": "1",\n' +
|
||||
' "ZCT_FWT": "1",\n' +
|
||||
' "ZCT_CD": "1"\n' +
|
||||
' },\n' +
|
||||
' "workCenter": "WC-2031-001",\n' +
|
||||
' "salesOrder": "0010000352",\n' +
|
||||
' "lotBasisData": {\n' +
|
||||
' "actualCompDate": null,\n' +
|
||||
' "creator": "snow",\n' +
|
||||
' "dateCreate": "2024-11-13T14:52:24.482",\n' +
|
||||
' "dateUpdate": "2024-11-13T16:43:28.172",\n' +
|
||||
' "description": "",\n' +
|
||||
' "handle": "LotBasisBO:2031,20241109002",\n' +
|
||||
' "hotLot": "N",\n' +
|
||||
' "itemBo": "ItemBO:2031,ITEM01,A",\n' +
|
||||
@ -244,21 +264,83 @@
|
||||
' },\n' +
|
||||
' "site": "2031",\n' +
|
||||
' "lotStateData": {\n' +
|
||||
' "abnNo": "",\n' +
|
||||
' "batchId": "",\n' +
|
||||
' "eventTime": "2024-11-13T16:43:30",\n' +
|
||||
' "handle": "LotState:LotBasisBO:2031,20241109002",\n' +
|
||||
' "inspectionLevel": "",\n' +
|
||||
' "length": null,\n' +
|
||||
' "lotBasisBo": "LotBasisBO:2031,20241109002",\n' +
|
||||
' "lotNo": "20241109002",\n' +
|
||||
' "lotSerial": "2024110900200001",\n' +
|
||||
' "path": "",\n' +
|
||||
' "qty": 32.000000,\n' +
|
||||
' "remark": "",\n' +
|
||||
' "resourceBo": "ResourceBO:2031,FQ001",\n' +
|
||||
' "rollType": "",\n' +
|
||||
' "routerStepBo": "RouterStepBO:RouterBO:2031,LHCCS01,0,A,10",\n' +
|
||||
' "status": "R",\n' +
|
||||
' "userNo": "syngna"\n' +
|
||||
' "userNo": "syngna",\n' +
|
||||
' "weightQty": null,\n' +
|
||||
' "weightUnit": "",\n' +
|
||||
' "width": null,\n' +
|
||||
' "workCenterBo": ""\n' +
|
||||
' },\n' +
|
||||
' "lotNo": "20241109002",\n' +
|
||||
' "itemData": {\n' +
|
||||
' "assyDataTypeBo": "",\n' +
|
||||
' "bomBo": "BOMBO:2031,BOM01,U,#",\n' +
|
||||
' "componentGroupBo": "",\n' +
|
||||
' "createTrackableSfc": "",\n' +
|
||||
' "creator": "dzh",\n' +
|
||||
' "currentRevision": "Y",\n' +
|
||||
' "customFields": null,\n' +
|
||||
' "dateCreate": "2024-10-30T09:51:35",\n' +
|
||||
' "dateUpdate": "2024-11-25T14:55:23.910",\n' +
|
||||
' "description": "测试数据",\n' +
|
||||
' "endDateTimeCondition": null,\n' +
|
||||
' "erpBackflushing": "",\n' +
|
||||
' "erpItem": "",\n' +
|
||||
' "erpPutawayStorloc": "",\n' +
|
||||
' "handle": "ItemBO:2031,ITEM01,A",\n' +
|
||||
' "holdId": "",\n' +
|
||||
' "invAssyDataTypeBo": "",\n' +
|
||||
' "item": "ITEM01",\n' +
|
||||
' "itemGroupBo": "",\n' +
|
||||
' "itemType": "M",\n' +
|
||||
' "itemTypeBo": "ItemTypeBO:2031,FERT",\n' +
|
||||
' "lotSize": null,\n' +
|
||||
' "maskGroupBo": "",\n' +
|
||||
' "materialType": "",\n' +
|
||||
' "maxFloorLife": null,\n' +
|
||||
' "maxFloorLifeUnits": "",\n' +
|
||||
' "maxShelfLife": null,\n' +
|
||||
' "maxShelfLifeUnits": "",\n' +
|
||||
' "maximumUsage": null,\n' +
|
||||
' "notes": "",\n' +
|
||||
' "order": "",\n' +
|
||||
' "orderColumn": "",\n' +
|
||||
' "orderJson": "",\n' +
|
||||
' "originalStatusBo": "",\n' +
|
||||
' "panel": "",\n' +
|
||||
' "quantityRestriction": "",\n' +
|
||||
' "removalAssyDataTypeBo": "",\n' +
|
||||
' "revision": "A",\n' +
|
||||
' "routerBo": "RouterBO:2031,20241113006,0,#",\n' +
|
||||
' "site": "2031",\n' +
|
||||
' "startDateTimeCondition": null,\n' +
|
||||
' "statusBo": "",\n' +
|
||||
' "storageLocationBo": "",\n' +
|
||||
' "timeSensitive": "",\n' +
|
||||
' "transferItemGroupBo": "",\n' +
|
||||
' "unitOfMeasure": "KG",\n' +
|
||||
' "updater": "luochen"\n' +
|
||||
' },\n' +
|
||||
' "user": "syngna",\n' +
|
||||
' "operation": "FQ",\n' +
|
||||
' "salesOrderLine": "20"\n' +
|
||||
' "lotSerial": null,\n' +
|
||||
' "salesOrderLine": "20",\n' +
|
||||
' "customer": null\n' +
|
||||
'}',
|
||||
},
|
||||
formLabelWidth: '120px'
|
||||
|
||||
@ -504,9 +504,13 @@ export default {
|
||||
//记录不良
|
||||
openNc() {
|
||||
let me = this
|
||||
me.ncCodeForm = copyJSON(me.processForm)
|
||||
me.ncCodeDialogVisible = true
|
||||
me.ncCodeList = []
|
||||
me.inspecNcList = []
|
||||
let row = {}
|
||||
row.sid = null
|
||||
me.showDialog(row)
|
||||
row.inspecResultSid = null
|
||||
me.getNcList(row)
|
||||
},
|
||||
|
||||
// 找到父节点
|
||||
@ -645,7 +649,14 @@ export default {
|
||||
}).catch(e => {
|
||||
hideLoading()
|
||||
})
|
||||
await selectAllNc({ inspecResultSid: row.sid }).then((re) => {
|
||||
let paramSelectAllNc = {
|
||||
operationBo : me.processForm.operationBo,
|
||||
item: me.processForm.item,
|
||||
resourceBo: me.processForm.resourceBo,
|
||||
lotNo: me.processForm.lotNo,
|
||||
inspecResultSid: row.sid
|
||||
}
|
||||
await selectAllNc(paramSelectAllNc).then((re) => {
|
||||
hideLoading()
|
||||
let resData = re.data
|
||||
for (let i = 0; i < resData.length; i++) {
|
||||
@ -838,10 +849,16 @@ export default {
|
||||
}
|
||||
row.result = numberControl(num, data)
|
||||
if (!isNaN(parseFloat(row.result))) {
|
||||
if (Number(row.result) > Number(row.maxValue) || Number(row.result) < Number(row.minValue)) {
|
||||
if (Number(row.result) < Number(row.minValue) && Number(row.result) > Number(row.maxValue)) {
|
||||
return row.qcItemJudge = false
|
||||
} else {
|
||||
return row.qcItemJudge = true
|
||||
if ( !isBlank(row.maxValue) && Number(row.result) > Number(row.maxValue)) {
|
||||
return row.qcItemJudge = false
|
||||
} else if (!isBlank(row.minValue) && Number(row.result) < Number(row.minValue)) {
|
||||
return row.qcItemJudge = false
|
||||
} else {
|
||||
return row.qcItemJudge = true
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return row.qcItemJudge = false
|
||||
|
||||
@ -48,14 +48,14 @@
|
||||
:modal-obj="itemDialogObj"
|
||||
:modal-fetch-fun="itemDialogFetchFun"
|
||||
:modal-show.sync="itemDialogShow"
|
||||
@inputDialogSelected="dialogSelect"
|
||||
@inputDialogSelected="dialogSelectTable"
|
||||
></input-select-dialog-cust>
|
||||
<!-- 工序-->
|
||||
<input-select-dialog-cust
|
||||
:modal-obj="operationDialogObj"
|
||||
:modal-fetch-fun="fetchOperationList"
|
||||
:modal-show.sync="operationDialogShow"
|
||||
@inputDialogSelected="dialogSelect"
|
||||
@inputDialogSelected="dialogSelectTable"
|
||||
></input-select-dialog-cust>
|
||||
<!-- 选项集弹窗 -->
|
||||
<textGroupNo
|
||||
@ -381,88 +381,191 @@
|
||||
<!--检验对象-->
|
||||
<el-tab-pane label="检验对象" name="qcItem">
|
||||
<div class="execution">
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="120px"
|
||||
label-suffix=":"
|
||||
hide-required-asterisk
|
||||
>
|
||||
<el-row >
|
||||
<el-col :span="10">
|
||||
<el-form-item prop="item">
|
||||
<template slot="label">
|
||||
<tooltip
|
||||
content="物料编码"
|
||||
>
|
||||
</tooltip>
|
||||
</template>
|
||||
<el-row style="text-align: left;">
|
||||
<el-button
|
||||
@click="tableAddTarget"
|
||||
icon="el-icon-plus"
|
||||
type="primary"
|
||||
:disabled="state == 'view' || state === 'createdJob'"
|
||||
></el-button>
|
||||
<el-button
|
||||
@click="tableLessTarget"
|
||||
icon="el-icon-minus"
|
||||
type="danger"
|
||||
:disabled="state == 'view' || state === 'createdJob'"
|
||||
></el-button>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-table :data="targetTableData"
|
||||
ref="targetTableData"
|
||||
tooltip-effect="dark"
|
||||
height="400"
|
||||
style="width: 100%"
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
:cell-style="{ 'text-align': 'center' }"
|
||||
border>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="60"
|
||||
v-if="state !== 'view' && state !== 'createdJob'"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column prop="seq" label="序号"></el-table-column>
|
||||
<el-table-column
|
||||
prop="item"
|
||||
label="物料编码"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="state === 'view' || state === 'createdJob'">
|
||||
{{ form.item }}
|
||||
{{ scope.row.item }}
|
||||
</div>
|
||||
<el-input
|
||||
v-else
|
||||
v-model="form.item"
|
||||
v-model="scope.row.item"
|
||||
:readonly="true"
|
||||
:require="rules.item && rules.item.some((rule) => rule.required)"
|
||||
>
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-copy-document"
|
||||
@click.stop="showDialog('item')"
|
||||
@click.stop="showDialogTable('item', scope.$index)"
|
||||
></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="itemDesc">
|
||||
<template slot="label">
|
||||
<label>{{ form.itemDesc }}</label>
|
||||
</template>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-form-item prop="operation">
|
||||
<template slot="label">
|
||||
<tooltip
|
||||
content="工序编码"
|
||||
>
|
||||
</tooltip>
|
||||
</template>
|
||||
<div v-if="state === 'view' || state === 'createdJob'">
|
||||
{{ form.operation }}
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="itemDesc"
|
||||
label="物料描述"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="operation"
|
||||
label="工序"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="state === 'view' || state === 'createdJob'">
|
||||
{{ scope.row.operation }}
|
||||
</div>
|
||||
<el-input
|
||||
v-else
|
||||
v-model="form.operation"
|
||||
v-model="scope.row.operation"
|
||||
:readonly="true"
|
||||
clearable
|
||||
>
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-copy-document"
|
||||
@click.stop="showDialog('operation')"
|
||||
></i>
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-circle-close"
|
||||
@click.stop="clearOperation()"
|
||||
@click.stop="showDialogTable('operation', scope.$index)"
|
||||
></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="operationDesc">
|
||||
<template slot="label">
|
||||
<label>{{ form.operationDesc }}</label>
|
||||
</template>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="operationDesc"
|
||||
label="工序描述">
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="level"
|
||||
label="等级">
|
||||
<template slot-scope="scope">
|
||||
<el-select
|
||||
v-model="scope.row.inspectLevel"
|
||||
property="inspectLevel"
|
||||
:disabled="state === 'view' || state === 'createdJob' || form.inspecType === '0'"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in insepecLevelList"
|
||||
:key="item.value"
|
||||
:label="$t(item.label)"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-row>
|
||||
<!-- <el-form-->
|
||||
<!-- ref="form"-->
|
||||
<!-- :model="form"-->
|
||||
<!-- :rules="rules"-->
|
||||
<!-- label-width="120px"-->
|
||||
<!-- label-suffix=":"-->
|
||||
<!-- hide-required-asterisk-->
|
||||
<!-- >-->
|
||||
<!-- <el-row >-->
|
||||
<!-- <el-col :span="10">-->
|
||||
<!-- <el-form-item prop="item">-->
|
||||
<!-- <template slot="label">-->
|
||||
<!-- <tooltip-->
|
||||
<!-- content="物料编码"-->
|
||||
<!-- >-->
|
||||
<!-- </tooltip>-->
|
||||
<!-- </template>-->
|
||||
<!-- <div v-if="state === 'view' || state === 'createdJob'">-->
|
||||
<!-- {{ form.item }}-->
|
||||
<!-- </div>-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-else-->
|
||||
<!-- v-model="form.item"-->
|
||||
<!-- :readonly="true"-->
|
||||
<!-- :require="rules.item && rules.item.some((rule) => rule.required)"-->
|
||||
<!-- >-->
|
||||
<!-- <i-->
|
||||
<!-- slot="suffix"-->
|
||||
<!-- class="el-input__icon el-icon-copy-document"-->
|
||||
<!-- @click.stop="showDialog('item')"-->
|
||||
<!-- ></i>-->
|
||||
<!-- </el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-form-item prop="itemDesc">-->
|
||||
<!-- <template slot="label">-->
|
||||
<!-- <label>{{ form.itemDesc }}</label>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="10">-->
|
||||
<!-- <el-form-item prop="operation">-->
|
||||
<!-- <template slot="label">-->
|
||||
<!-- <tooltip-->
|
||||
<!-- content="工序编码"-->
|
||||
<!-- >-->
|
||||
<!-- </tooltip>-->
|
||||
<!-- </template>-->
|
||||
<!-- <div v-if="state === 'view' || state === 'createdJob'">-->
|
||||
<!-- {{ form.operation }}-->
|
||||
<!-- </div>-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-else-->
|
||||
<!-- v-model="form.operation"-->
|
||||
<!-- :readonly="true"-->
|
||||
<!-- clearable-->
|
||||
<!-- >-->
|
||||
<!-- <i-->
|
||||
<!-- slot="suffix"-->
|
||||
<!-- class="el-input__icon el-icon-copy-document"-->
|
||||
<!-- @click.stop="showDialog('operation')"-->
|
||||
<!-- ></i>-->
|
||||
<!-- <i-->
|
||||
<!-- slot="suffix"-->
|
||||
<!-- class="el-input__icon el-icon-circle-close"-->
|
||||
<!-- @click.stop="clearOperation()"-->
|
||||
<!-- ></i>-->
|
||||
<!-- </el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-form-item prop="operationDesc">-->
|
||||
<!-- <template slot="label">-->
|
||||
<!-- <label>{{ form.operationDesc }}</label>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-form>-->
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane :label="$t('mes.detail')" name="detail">
|
||||
@ -794,7 +897,7 @@ import { type } from '@/views/mes/qms/qc-item/init'
|
||||
import { copyJSON } from '@/util/util'
|
||||
import {
|
||||
initForm,
|
||||
inspecFreqObj,
|
||||
inspecFreqObj, inspectionLevelDialogObj,
|
||||
itemDialogObj,
|
||||
operationDialogObj,
|
||||
qcItemObj,
|
||||
@ -811,7 +914,11 @@ import { fetchItemList } from '@/api/admin/dict'
|
||||
import tooltip from '@/components/tooltip/index.vue'
|
||||
import {fetchList as itemDialogFetchFun} from '@/api/mes/prd/item'
|
||||
import { fetchList as fetchOperationList } from '@/api/mes/prd/operation-backups'
|
||||
import {fetchList as fetchLevelList} from '@/api/mes/qms/inspection-level'
|
||||
import textGroupNo from "@/views/mes/qms/qc-plan/content/textGroupNo";
|
||||
import {itemObj} from "@/views/mes/qms/inspec/init";
|
||||
import inspectionLevel from "@/views/mes/qms/inspection-level/index.vue";
|
||||
import dynamicFunction from "@/const/crud/mes/common/dynamic-data";
|
||||
|
||||
export default {
|
||||
mixins: [customData],
|
||||
@ -866,6 +973,9 @@ export default {
|
||||
operationDialogObj,
|
||||
fetchOperationList,
|
||||
operationDialogShow:false,
|
||||
inspectionLevelDialogObj,
|
||||
inspectionLevelDialogShow:false,
|
||||
fetchLevelList,
|
||||
form: copyJSON(initForm),
|
||||
textGroupNoShow:false,
|
||||
titleText: '',
|
||||
@ -949,14 +1059,18 @@ export default {
|
||||
calibrationMap: {},
|
||||
itemType: [],
|
||||
controlMode: [],
|
||||
targetTableData:[],
|
||||
insepecLevelList:[]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
modalObj: {
|
||||
handler(newValue) {
|
||||
let me = this
|
||||
this.form = copyJSON(newValue)
|
||||
let f = this.inspecTypeList.find((s) => s.value == newValue.inspecType)
|
||||
this.form.inspecTypeName = f ? f.label : null
|
||||
me.targetTableData = copyJSON(newValue.qmsQcPlanTargetList)
|
||||
this.tableData = newValue.qcPlanDetailList ? copyJSON(newValue.qcPlanDetailList) : []
|
||||
if (this.tableData.length > 0) {
|
||||
this.tableData.forEach((t) => {
|
||||
@ -1001,6 +1115,9 @@ export default {
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
inspectionLevel() {
|
||||
return inspectionLevel
|
||||
},
|
||||
setQcPlan: {
|
||||
get: function () {
|
||||
return this.form.qcPlan
|
||||
@ -1021,6 +1138,8 @@ export default {
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.insepecLevelList = dynamicFunction.getDictListCust('inspect_level')
|
||||
console.log(this.insepecLevelList)
|
||||
this.getDict()
|
||||
this.months = []
|
||||
for (let i = 1; i <= 12; i++) {
|
||||
@ -1161,6 +1280,15 @@ export default {
|
||||
break
|
||||
case 'textGroupNo':
|
||||
this.textGroupNoShow = true
|
||||
break
|
||||
case 'item':
|
||||
this.itemDialogShow = true
|
||||
break
|
||||
case 'operation':
|
||||
this.operationDialogShow = true
|
||||
break
|
||||
case 'inspecLevel':
|
||||
this.inspectionLevelDialogShow = true
|
||||
break
|
||||
}
|
||||
},
|
||||
@ -1203,6 +1331,16 @@ export default {
|
||||
case 'textGroupNo':
|
||||
this.$set(this.tableData[this.tableIndex], 'textGroupNo', row.textGroupNo)
|
||||
break
|
||||
case 'item':
|
||||
this.$set(this.targetTableData[this.tableIndex], 'item', row.item)
|
||||
this.$set(this.targetTableData[this.tableIndex], 'itemBo', row.handle)
|
||||
this.$set(this.targetTableData[this.tableIndex], 'itemDesc', row.description)
|
||||
break
|
||||
case 'operation':
|
||||
this.$set(this.targetTableData[this.tableIndex], 'operation', row.operation)
|
||||
this.$set(this.targetTableData[this.tableIndex], 'operationDesc', row.description)
|
||||
this.$set(this.targetTableData[this.tableIndex], 'operationBo', row.handle)
|
||||
break
|
||||
}
|
||||
},
|
||||
closeForm() {
|
||||
@ -1223,8 +1361,29 @@ export default {
|
||||
// 保存
|
||||
handleSave() {
|
||||
let me = this
|
||||
if (isBlank(me.form.item)) {
|
||||
return this.$message.error('检验对象物料不能为空')
|
||||
if (me.targetTableData.length === 0) {
|
||||
return this.$message.error('检验对象列表不能为空')
|
||||
}
|
||||
for (let i = 0; i < me.targetTableData.length; i++) {
|
||||
let t = me.targetTableData[i]
|
||||
if (isBlank(t.item)) {
|
||||
return this.$message.error('检验对象物料不能为空')
|
||||
}
|
||||
if (me.form.inspecType === '0') {
|
||||
let a = me.targetTableData.filter((item) => item.item === t.item && item.operation === t.operation)
|
||||
if (a.length > 1) {
|
||||
return this.$message.error('检验对象物料不能重复')
|
||||
}
|
||||
} else {
|
||||
for (let j = 0; j < me.targetTableData.length; j++) {
|
||||
let d = me.targetTableData[j]
|
||||
if (t.item === d.item) {
|
||||
if (t.inspectLevel === d.inspectLevel && t.seq !== d.seq) {
|
||||
return this.$message.error('同一物料检验等级不能相同')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isBlank(me.form.samplePlan) && me.form.inspecType == '1') {
|
||||
return this.$message.error('抽样规则不能为空')
|
||||
@ -1248,6 +1407,7 @@ export default {
|
||||
}
|
||||
|
||||
this.form.customFields = this.buildCustomDataSaveParam()
|
||||
me.form.qmsQcPlanTargetList = me.targetTableData
|
||||
this.setReq()
|
||||
if (this.state == 'add') {
|
||||
this.doAdd(me.form)
|
||||
@ -1467,6 +1627,33 @@ export default {
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
tableAddTarget() {
|
||||
let me = this
|
||||
me.targetTableData.push({inspectLevel:'0'})
|
||||
setSeq(me.targetTableData, 'seq')
|
||||
},
|
||||
tableLessTarget() {
|
||||
if (this.$refs.targetTableData.selection.length === 0) {
|
||||
return this.$message.warning('请选择需要移除的数据')
|
||||
} else {
|
||||
this.$confirm('确认移除?', {
|
||||
confirmButtonText: this.$t('common.confirm'),
|
||||
cancelButtonText: this.$t('common.cancel'),
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
this.$refs.targetTableData.selection.forEach((s) => {
|
||||
this.targetTableData.forEach((t, index) => {
|
||||
if (s.seq === t.seq) {
|
||||
this.targetTableData.splice(index, 1)
|
||||
}
|
||||
})
|
||||
})
|
||||
this.$refs.targetTableData.clearSelection()
|
||||
setSeq(this.targetTableData, 'seq')
|
||||
})
|
||||
}
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
this.dialogWidth = '60%'
|
||||
if (tab.name === 'detail') {
|
||||
@ -1498,6 +1685,7 @@ export default {
|
||||
this.form.calibrationFreq = null
|
||||
this.tableData = []
|
||||
this.dateData = []
|
||||
this.targetTableData = []
|
||||
|
||||
this.$refs.form.clearValidate('calibrationType')
|
||||
},
|
||||
|
||||
@ -333,6 +333,10 @@ export default {
|
||||
item.inspectionLevel = response.data.data.operationOutListDTOList[0].inspectionLevel
|
||||
item.width = response.data.data.operationOutListDTOList[0].width
|
||||
item.length = response.data.data.operationOutListDTOList[0].length
|
||||
item.thickness = response.data.data.operationOutListDTOList[0].thickness
|
||||
item.outMeter = response.data.data.operationOutListDTOList[0].outMeter
|
||||
item.outWeight = response.data.data.operationOutListDTOList[0].outWeight
|
||||
item.remark = response.data.data.operationOutListDTOList[0].remark
|
||||
} else {
|
||||
this.searchForm.operationOutData.push(response.data.data.operationOutListDTOList[0])
|
||||
}
|
||||
|
||||
@ -406,6 +406,10 @@ export default {
|
||||
item.inspectionLevel = response.data.data.operationOutListDTOList[0].inspectionLevel
|
||||
item.width = response.data.data.operationOutListDTOList[0].width
|
||||
item.length = response.data.data.operationOutListDTOList[0].length
|
||||
item.thickness = response.data.data.operationOutListDTOList[0].thickness
|
||||
item.outMeter = response.data.data.operationOutListDTOList[0].outMeter
|
||||
item.outWeight = response.data.data.operationOutListDTOList[0].outWeight
|
||||
item.remark = response.data.data.operationOutListDTOList[0].remark
|
||||
} else {
|
||||
this.searchForm.operationOutData.push(response.data.data.operationOutListDTOList[0])
|
||||
}
|
||||
|
||||
@ -480,6 +480,10 @@ export default {
|
||||
item.inspectionLevel = response.data.data.operationOutListDTOList[0].inspectionLevel
|
||||
item.width = response.data.data.operationOutListDTOList[0].width
|
||||
item.length = response.data.data.operationOutListDTOList[0].length
|
||||
item.thickness = response.data.data.operationOutListDTOList[0].thickness
|
||||
item.outMeter = response.data.data.operationOutListDTOList[0].outMeter
|
||||
item.outWeight = response.data.data.operationOutListDTOList[0].outWeight
|
||||
item.remark = response.data.data.operationOutListDTOList[0].remark
|
||||
} else {
|
||||
this.searchForm.operationOutData.push(response.data.data.operationOutListDTOList[0])
|
||||
}
|
||||
|
||||
@ -243,26 +243,15 @@ import {
|
||||
getObj,
|
||||
greatSaveOrUpdate,
|
||||
submit,
|
||||
greatDelete
|
||||
greatDelete, selectStoragRequest
|
||||
} from "@/api/mes/wip/product-storag-request";
|
||||
import {stringFormat, isBlank} from "@/util/string";
|
||||
import {
|
||||
doAdd,
|
||||
replaceData,
|
||||
doDispatch,
|
||||
doDeleteAndLogRecord,
|
||||
} from '@/api/mes/tds/dispatch-equipment'
|
||||
|
||||
import { mapGetters } from 'vuex'
|
||||
import { getStore } from '@/util/store'
|
||||
import {hideLoading, showLoading} from '@/const/loading'
|
||||
import {fetchItemList} from "@/api/admin/dict";
|
||||
import dynamicFunction from "@/const/crud/mes/common/dynamic-data";
|
||||
import {listByActivityId} from "@/api/admin/activity-option";
|
||||
import {setSeq} from "@/util/table";
|
||||
import {dcc, nlv_wms} from "@/api/prefix";
|
||||
import ExcelJS from "exceljs";
|
||||
import moment from "moment/moment";
|
||||
import {mom_wms} from "@/api/prefix";
|
||||
|
||||
export default {
|
||||
name: 'product-storag-request',
|
||||
@ -568,7 +557,6 @@ export default {
|
||||
return me.$message.error('请检索单据号操作');
|
||||
}
|
||||
|
||||
debugger
|
||||
for (let rowObject of me.storagRequestList) {
|
||||
if (me.isNotBank(documentNo)) {
|
||||
if (documentNo !== rowObject.documentNo) {
|
||||
@ -727,13 +715,15 @@ export default {
|
||||
|
||||
// 导出excel
|
||||
doExcel() {
|
||||
this.downBlobFile(nlv_wms('/z-storag-request/exportData'), this.form, '生产入库单.xlsx')
|
||||
this.downBlobFile(mom_wms('/z-storag-request/exportData'), this.form, '生产入库单.xlsx')
|
||||
},
|
||||
//表格多选
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
|
||||
// 查询单据号是否存在
|
||||
|
||||
// 单据补打印
|
||||
doRePrint() {
|
||||
let me = this;
|
||||
@ -742,27 +732,39 @@ export default {
|
||||
if (isBlank(documentNo)) {
|
||||
return me.$message.error('请检索单据号后操作');
|
||||
}
|
||||
if (storagRequestList.length === 0) {
|
||||
return me.$message.error('该单据号['+documentNo+']不存在');
|
||||
}
|
||||
for (let rowObject of storagRequestList) {
|
||||
if (me.isNotBank(documentNo)) {
|
||||
|
||||
if (documentNo !== rowObject.documentNo) {
|
||||
return me.$message.error('请检索单据号后操作');
|
||||
}
|
||||
|
||||
if (rowObject.documentStatus !== '提交' ) {
|
||||
return me.$message.error(documentNo+'单据状态不是提交状态不允许打印');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 判断 单据号是否存在
|
||||
showLoading();
|
||||
selectStoragRequest(documentNo).then(response => {
|
||||
hideLoading();
|
||||
if (response.data.code != 0) {
|
||||
return me.$message.error(response.data.msg);
|
||||
}
|
||||
// 单据号存在,就执行打印
|
||||
me.printPdf(documentNo);
|
||||
}).catch(e => {
|
||||
console.log(e);
|
||||
hideLoading();
|
||||
});
|
||||
},
|
||||
|
||||
printPdf(documentNo) {
|
||||
let me = this;
|
||||
// 打印
|
||||
showLoading();
|
||||
axios({
|
||||
method: 'get',
|
||||
url: nlv_wms('/z-storag-request/rePrint/' + documentNo + '/' + me.site),
|
||||
url: mom_wms('/z-storag-request/rePrint/' + documentNo + '/' + me.site),
|
||||
headers: {
|
||||
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
||||
},
|
||||
|
||||
@ -119,7 +119,7 @@
|
||||
import {listByActivityId} from "@/api/admin/activity-option";
|
||||
import {operationDialogObj, resourceDialogObj, shopOrderObj} from "@/views/mes/wip/resource-feeding/init";
|
||||
import {fetchList as getShopOrderList} from "@/api/mes/prd/shop-order";
|
||||
import {findOperationList as getOperationList} from '@/api/mes/prd/operation';
|
||||
import {fetchList as getOperationList} from '@/api/mes/prd/operation';
|
||||
import {findResourceList as getResourceList} from '@/api/mes/pms/resrce'
|
||||
import {copyJSON} from "@/util/util";
|
||||
import {checkItemGroup, downItemObj, selectEqpFeedingListPage, upItemObj,selectAndSaveLotMaterial,selectByMaterialLot} from '@/api/mes/wms/warehouse/eqp-feeding'
|
||||
@ -291,6 +291,7 @@
|
||||
}
|
||||
// 更新form对象
|
||||
this.formObj = Object.assign({}, this.formObj, obj)
|
||||
this.tableData = []
|
||||
},
|
||||
//扫描条码
|
||||
scanMaterialLot() {
|
||||
@ -413,6 +414,9 @@
|
||||
if (t.materialLot == obj.materialLot) {
|
||||
return this.$message.error('条码号' + t.materialLot + '重复')
|
||||
}
|
||||
if (t.shopOrder === obj.shopOrder && t.item === obj.item) {
|
||||
return this.$message.error('列表中已经存在物料['+t.item+']')
|
||||
}
|
||||
}
|
||||
obj.type = '6'
|
||||
obj.checkItemMaterialLot = re.data.data.checkItemMaterialLot
|
||||
@ -437,6 +441,9 @@
|
||||
if (t.materialLot == re.data.data.materialLot) {
|
||||
return this.$message.error('条码号' + t.materialLot + '重复')
|
||||
}
|
||||
if (t.shopOrder === obj.shopOrder && t.item === obj.item) {
|
||||
return this.$message.error('列表中已经存在物料['+t.item+']')
|
||||
}
|
||||
}
|
||||
obj.type = '4'
|
||||
me.tableData.push(obj)
|
||||
|
||||
@ -31,7 +31,7 @@ export const operationDialogObj = {
|
||||
}
|
||||
|
||||
export const resourceDialogObj = {
|
||||
condition: 'resource',
|
||||
searchText: 'resrce',
|
||||
tableColumn: [
|
||||
{
|
||||
prop: 'resrce',
|
||||
|
||||
@ -587,9 +587,11 @@ export default {
|
||||
showLoading();
|
||||
saveDocumentDetailData(newArray).then(res => {
|
||||
hideLoading();
|
||||
debugger
|
||||
this.$message.success("执行成功");
|
||||
me.dialogRegisterVisible = false;
|
||||
}).catch(error => {
|
||||
debugger
|
||||
hideLoading();
|
||||
this.$message.error(error);
|
||||
});
|
||||
|
||||
@ -45,13 +45,15 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="物料编号" prop="item" align="center"></el-table-column>
|
||||
<el-table-column label="物料名称" prop="itemDescription" align="center"></el-table-column>
|
||||
<el-table-column label="客户物料编码" prop="customerItem" align="center"></el-table-column>
|
||||
<el-table-column label="客户物料名称" prop="customerItemDesc" align="center"></el-table-column>
|
||||
<el-table-column label="出货数量" prop="applicationsQuantity" align="center"></el-table-column>
|
||||
<!--<el-table-column label="客户物料编码" prop="customerItem" align="center"></el-table-column>
|
||||
<el-table-column label="客户物料名称" prop="customerItemDesc" align="center"></el-table-column>
|
||||
<el-table-column label="出货数量" prop="applicationsQuantity" align="center"></el-table-column>-->
|
||||
<el-table-column label="单位" prop="unitOfMeasure" align="center"></el-table-column>
|
||||
<el-table-column label="拣货数量" prop="pickQty" align="center"></el-table-column>
|
||||
<el-table-column label="出货仓库" prop="sourceWarehouse" align="center"></el-table-column>
|
||||
<el-table-column label="涂布批次" prop="salesBatch" align="center"></el-table-column>
|
||||
<el-table-column label="拣货状态" prop="pickStatus" align="center">
|
||||
<el-table-column label="拣货数量" prop="pickQty" align="center"></el-table-column>
|
||||
<!--<el-table-column label="拣货状态" prop="pickStatus" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{formatterConst[scope.column.property][scope.row[scope.column.property]]}}
|
||||
</template>
|
||||
@ -60,22 +62,22 @@
|
||||
<template slot-scope="scope">
|
||||
{{formatterConst[scope.column.property][scope.row[scope.column.property]]}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="出货状态" prop="state" align="center">
|
||||
</el-table-column>-->
|
||||
<el-table-column label="单据行状态" prop="state" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{formatterConst[scope.column.property][scope.row[scope.column.property]]}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="POD状态" prop="podStatus" align="center">
|
||||
<!--<el-table-column label="POD状态" prop="podStatus" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{formatterConst[scope.column.property][scope.row[scope.column.property]]}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>-->
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<el-dialog :visible.sync="dialog.suggestDialog.visible" center fullscreen>
|
||||
<!--<el-dialog :visible.sync="dialog.suggestDialog.visible" center fullscreen>
|
||||
<el-form :model="formObj" label-width="auto">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
@ -113,7 +115,7 @@
|
||||
<el-button type="primary" @click="exportSaleSuggest">下载</el-button>
|
||||
<el-button type="primary" @click="openOrCloseDialog(dialog.suggestDialog)">返回</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-dialog>-->
|
||||
|
||||
<el-dialog :visible.sync="dialog.addressDialog.visible" center width="20%">
|
||||
<el-form :model="formObj" label-width="auto">
|
||||
@ -150,17 +152,18 @@
|
||||
</el-dialog>
|
||||
|
||||
<div style="margin-top: 10px;">
|
||||
<el-button type="warning" @click="pickingSuggest">拣货推荐</el-button>
|
||||
<!--<el-button type="warning" @click="pickingSuggest">拣货推荐</el-button>-->
|
||||
<el-button type="warning" @click="pickingRemove">拣货清除</el-button>
|
||||
<el-button type="primary" @click="pickingPost">拣货过账</el-button>
|
||||
<el-button type="warning" @click="pickingPrint(true)">标签试打印</el-button>
|
||||
|
||||
<!-- <el-button type="primary" @click="pickingPost">拣货过账</el-button>-->
|
||||
<!-- <el-button type="warning" @click="pickingPrint(true)">标签试打印</el-button>-->
|
||||
<el-button type="warning" @click="pickingPrint(false)">标签打印</el-button>
|
||||
<el-button type="warning" @click="pickingPrintA4">托标签打印A4</el-button>
|
||||
<!--<el-button type="warning" @click="pickingPrintA4">托标签打印A4</el-button>-->
|
||||
<el-button type="warning" @click="rePrint">标签补打印</el-button>
|
||||
<el-button type="primary" @click="openOrCloseDialog(dialog.saleOutPostConfirmDialog, checkSaleOutPost)">出货过账
|
||||
</el-button>
|
||||
<el-button type="warning" @click="saleOutPrint">出货清单打印</el-button>
|
||||
<el-button type="warning" @click="openOrCloseDialog(dialog.addressDialog, checkRetrieve)">送货单打印</el-button>
|
||||
<el-button type="warning" @click="/*openOrCloseDialog(dialog.addressDialog, checkRetrieve)*/">附件打印</el-button>
|
||||
<el-button type="danger" @click="chooseCancel">冲销</el-button>
|
||||
</div>
|
||||
</basic-container>
|
||||
@ -226,7 +229,9 @@
|
||||
state: {
|
||||
"SAVE": "保存",
|
||||
"SUBMIT": "提交",
|
||||
"CLOSE": "过账"
|
||||
"CLOSE": "过账",
|
||||
"PICKING": "拣货中",
|
||||
"TBC": "待确认",
|
||||
},
|
||||
oqcResults: {
|
||||
"BJ": "报检",
|
||||
@ -237,7 +242,9 @@
|
||||
pickStatus: {
|
||||
"SAVE": "保存",
|
||||
"SUBMIT": "提交",
|
||||
"POST": "过账"
|
||||
"POST": "过账",
|
||||
"PICKING": "拣货中",
|
||||
"TBC": "待确认"
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user