设备代码提交

20231126-yw
郑明梁 2 years ago
parent 15accfab61
commit de1f89496a

@ -23,3 +23,23 @@ export function deleteDeptDevice(data) {
data: data
});
}
export function verifyTemplateFile(data) {
return axios({
url: "/device/receive/order/verifyTemplateFile",
method: "post",
data: data
});
}
export function printOrder(data) {
return axios({
url: "/device/receive/order/printOrder",
method: "post",
data: data,
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
responseType: 'arraybuffer', //一定要设置响应类型否则页面会是空白pdf
});
}

@ -96,4 +96,21 @@ export function selectByorderIdFk(params) {
});
}
export function getConfig(params) {
return axios({
url: "/device/receive/order/getConfig",
method: "get",
params: params
});
}
export function selectProduct(data) {
return axios({
url: "/udiwms/udiinfo/selectProduct",
method: "post",
data: data
});
}

@ -163,6 +163,7 @@
>巡检设置
</el-button
>
<el-button type="text" size="small" @click.native.stop="printOrder(scope.row)">打印</el-button>
</template>
</el-table-column>
</el-table>
@ -208,10 +209,11 @@
<script>
import {getInvListByUser} from "@/api/system/invWarehouse";
import {getDeptListByUser} from "@/api/auth/authDept";
import {getDeptDeviceList, deleteDeptDevice} from "@/api/inventory/deptDevice";
import {getDeptDeviceList, deleteDeptDevice ,printOrder, verifyTemplateFile} from "@/api/inventory/deptDevice";
import deptDeviceModifyDialog from "@/views/inventory/deptDeviceModifyDialog.vue";
import inspectSetModifyDialog from "@/views/inventory/InspectSetModifyDialog.vue";
export default {
name: "DeptDeviceDetail",
data() {
@ -454,6 +456,35 @@ export default {
closeInspectSetDialog() {
this.inspectSetVisible = false;
},
printOrder(row) {
let query = {id: 5};
this.loading = true;
verifyTemplateFile(query).then((res) => {
if (res.code === 20000) {
let printParams = {
templateId: res.data,
id: row.id
};
printOrder(printParams).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
//blob
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//pdf
})
} else {
this.loading = false;
this.$message.error(res.message);
}
}).catch((error) => {
this.loading = false;
this.$message.error(error.message);
})
},
},
mounted() {
document.body.ondrop = function (event) {

@ -37,7 +37,7 @@
<el-col :span="10">
<el-form-item class="query-form-item" label="领用部门:">
<el-select v-model="formData.fromDeptCode" placeholder="领用部门信息"
:disabled="detailList.length >0 "
:disabled="detailList.length >0 && this.paramValue == 0 "
@change="deptChange"
style="width: 90%;"
clearable>
@ -56,7 +56,7 @@
<el-col :span="10">
<el-form-item class="query-form-item" label="出库仓库:">
<el-select v-model="formData.fromInvCode" placeholder="出库仓库信息"
:disabled="detailList.length >0 "
:disabled="detailList.length >0 && this.paramValue == 0 "
style="width: 90%"
clearable>
<el-option
@ -73,28 +73,10 @@
</el-row>
<el-row>
<!-- <el-col :span="10">
<el-form-item class="query-form-item" label="领用货位:">
<el-select v-model="formData.fromInvSpaceCode" placeholder="领用货位信息"
:disabled="detailList.length >0 "
style="width: 90%;"
clearable>
<el-option
v-for="item in spaceList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.parentName }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>-->
<el-col :span="10">
<el-form-item class="query-form-item" label="领用人:">
<el-select v-model="formData.receiveUser" placeholder="领用人信息"
:disabled="detailList.length >0 "
:disabled="detailList.length >0 && this.paramValue == 0 "
style="width: 90%"
clearable>
<el-option
@ -134,7 +116,7 @@
</el-button>
<el-button
type="primary"
:disabled="this.detailList.length > 0"
:disabled="this.detailList.length > 0 && this.paramValue == 0 "
@click.native="selectInvProduct()"
>手动添加
</el-button>
@ -152,40 +134,44 @@
show-overflow-tooltip
></el-table-column>
<el-table-column width="150" label="规格型号" prop="ggxh" show-overflow-tooltip></el-table-column>
<el-table-column width="150" label="批次号" prop="batchNo"></el-table-column>
<el-table-column width="120" label="批次号">
<template slot-scope="scope">
<el-input v-model="scope.row.batchNo"
:disabled="scope.row.id != selectedIndex"
ref='inputBatchNoRef'
placeholder="请输入批次号"></el-input>
<!--@input="scope.row.batchNo =scope.row.batchNo.replace(/[\W]/g, '')"-->
</template>
</el-table-column>
<el-table-column width="120" label="生产日期">
<template slot-scope="scope">
<el-input v-model="scope.row.productionDate" auto-complete="off"
oninput="if(value.length>6)value=value.slice(0,6)"
:disabled="scope.row.id != selectedIndex"
type="number"
></el-input>
</template>
</el-table-column>
<el-table-column width="120" label="失效日期">
<template slot-scope="scope">
<el-input v-model="scope.row.expireDate" auto-complete="off"
oninput="if(value.length>6)value=value.slice(0,6)"
:disabled="scope.row.id != selectedIndex"
type="number"
></el-input>
</template>
</el-table-column>
<el-table-column width="150" label="序列号" prop="serialNo"></el-table-column>
<el-table-column label="生产日期(yyMMdd)" prop="productionDate"></el-table-column>
<el-table-column label="失效日期(yyMMdd)" prop="expireDate" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column label="生产企业" prop="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<!-- <el-button
type="text"
size="small"
v-if="scope.row.serialNo === null"
@click.stop="true"
@click.native="editOrderDetail(scope.$index, scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.stop="true"
@click.native="updateOrderDetail(scope.row)"
>保存
</el-button
>-->
<el-button
type="text"
size="small"
@click.stop="true"
@click.native="deleteOrderDetail(scope.$index, scope.row)"
>减一
</el-button
>
<el-button type="text" size="small" @click.stop="true" @click.native="deleteOrderDetail(scope.$index, scope.row)">减一</el-button>
<el-button type="text" size="small" v-if="scope.row.id == selectedIndex && paramValue == 1" @click.stop="true" @click.native="updateOrderDetail(scope.row)"></el-button>
<el-button type="text" size="small" v-if="scope.row.id != selectedIndex && paramValue == 1" @click.stop="true" @click.native="uploadOrderDetail(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
@ -219,19 +205,6 @@
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item class="query-form-item" prop="invSpaceCode">
<el-select v-model="filterQuery.invSpaceCode" placeholder="领用货位信息"
:disabled="true"
clearable>
<el-option
v-for="item in spaceList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>-->
<el-form-item class="query-form-item" label="产品标识DI:">
<el-input v-model="filterQuery.nameCode" placeholder="产品标识DI" clearable></el-input>
</el-form-item>
@ -259,11 +232,7 @@
:row-key="getRowKeys"
@selection-change="handleSelectionChange"
ref="multipleTable">
<el-table-column
type="selection"
:reserve-selection="true"
width="55">
</el-table-column>
<el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="产品标识" prop="nameCode"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc"></el-table-column>
@ -282,6 +251,57 @@
@pagination="queryInvProducts"
></pagination>
</el-dialog>
<el-dialog
title="耗材产品录入"
:visible.sync="selectProductVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="85%"
v-if="selectProductVisible"
:append-to-body='true'
>
<el-form :inline="true" :model="filterProductQuery" size="mini">
<el-row>
<el-form-item class="query-form-item" label="产品标识DI:">
<el-input v-model="filterProductQuery.nameCode" placeholder="产品标识DI" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item" label="产品名称:">
<el-input v-model="filterProductQuery.cpmctymc" placeholder="产品名称" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item" label="批次号:">
<el-input v-model="filterProductQuery.batchNo" placeholder="批次号" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onProductReset"></el-button>
<el-button type="primary" icon="search" @click="queryProductsList"></el-button>
<el-button type="primary" icon="search" @click="combine"></el-button>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="loading" :data="udiProductList" style="width: 100%" highlight-current-row :row-key="getRowKeys"
@selection-change="handleSelectionChange" ref="multipleTable">
<el-table-column type="selection" :reserve-selection="true" width="55">
</el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="产品标识" prop="nameCode"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc"></el-table-column>
<el-table-column label="规格型号" prop="ggxh"></el-table-column>
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="供应商" prop="supName" width="120"></el-table-column>
</el-table>
<pagination
v-show="udiProductTotal>0"
:total="udiProductTotal"
:limit.sync="filterProductQuery.limit"
:page.sync="filterProductQuery.page"
@pagination="queryProductsList"
></pagination>
</el-dialog>
</div>
</template>
@ -296,7 +316,8 @@ import {
updateDeviceReceiveOrderDetail,
getDeviceReceiveOrderDetailList,
deleteDeviceReceiveOrderDetail,
checkCode
checkCode,
getConfig, selectProduct
} from "@/api/inventory/deviceReceiveOrder";
import {getInvMAProducts} from "@/api/inventory/invPorduct";
import {isBlank} from "@/utils/strUtil";
@ -327,7 +348,9 @@ export default {
limit: 10
},
productList: [],
udiProductList: [],
productTotal: 0,
udiProductTotal: 0,
deptList: [],
invList: [],
spaceList: [],
@ -342,15 +365,29 @@ export default {
status: 0,
code: null,
},
filterProductQuery:{
nameCode: null,
cpmctymc: null,
batchNo: null,
invCode: null,
// cplb: "", //todo
invSpaceCode: null,
page: 1,
limit: 10
},
detailList: [],
paramValue:null,
loading: false,
selectProductVisible:false,
scanText: "扫码录入:",
currentIndex: -1,
selectInvProductVisible: false,
multiProduct: [],
userList: [],
productInvList: [],
productSpaceList: []
productSpaceList: [],
currentRow:{},
selectedIndex:null
}
},
methods: {
@ -413,18 +450,23 @@ export default {
this.formData.fromInvSpaceCode = "";
},
selectInvProduct() {
let message = this.verifyOrder();
if (!isBlank(message)) {
this.$message.warning(message);
return;
if(this.paramValue == 0){
let message = this.verifyOrder();
if (!isBlank(message)) {
this.$message.warning(message);
return;
}
//
this.saveOrder();
this.onReset();
this.selectInvProductVisible = true;
this.filterQuery.invCode = this.formData.fromInvCode;
}else{
//
this.saveOrder();
this.onProductReset();
this.selectProductVisible = true;
}
//
this.saveOrder();
this.onReset();
this.selectInvProductVisible = true;
this.filterQuery.invCode = this.formData.fromInvCode;
// this.filterQuery.invSpaceCode = this.formData.fromInvSpaceCode;
},
saveMAOrder() {
@ -568,6 +610,14 @@ export default {
}
})
}
},
uploadOrderDetail(val){
this.currentRow = val;
this.selectedIndex = val.id;
console.log(this.selectedIndex)
},
saveOrderDetail(val){
},
getList() {
let params = {orderIdFk: this.formData.orderId};
@ -581,6 +631,7 @@ export default {
updateDeviceReceiveOrderDetail(row).then((res) => {
if (res.code === 20000) {
this.$message.success("保存成功!")
this.selectedIndex = null
this.getList();
}
})
@ -602,6 +653,19 @@ export default {
this.multiProduct = [];
this.queryInvProducts();
},
onProductReset() {
this.filterProductQuery = {
nameCode: null,
cpmctymc: null,
batchNo: null,
// cplb: "",
invSpaceCode: null,
page: 1,
limit: 10
};
this.multiProduct = [];
this.queryProductsList();
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.queryInvProducts();
@ -628,6 +692,22 @@ export default {
this.productTotal = 0;
});
},
queryProductsList(){
selectProduct(this.filterProductQuery).then((res) => {
if (res.code === 20000) {
this.udiProductList = res.data.list || [];
this.udiProductTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.udiProductList = [];
this.udiProductTotal = 0;
}
}).catch((error) => {
this.$message.error(error.message);
this.udiProductList = [];
this.udiProductTotal = 0;
});
},
combine() {
if (this.multiProduct.length === 0) {
this.$message.error("请选择领用产品!");
@ -647,6 +727,7 @@ export default {
if (res.code === 20000) {
this.$message.success("录入成功!");
this.selectInvProductVisible = false;
this.selectProductVisible = false;
this.getList();
} else {
this.$message.error(res.message);
@ -666,6 +747,12 @@ export default {
},
},
created() {
//
getConfig().then((res) => {
if(res.code == 20000 && !isBlank(res.data.paramValue)){
this.paramValue =res.data.paramValue
}
})
this.getDeptList();
if (!(isBlank(this.deviceReceiveOrder.orderId))) {
this.formData.orderId = this.deviceReceiveOrder.orderId;

Loading…
Cancel
Save