修复业务单据,扫码单据根据账号分类,预验收,中继服务同步

master
anthonyywj2 3 years ago
parent ed6471bb48
commit 783cf5ebe7

@ -17,11 +17,20 @@ export function updateBussinessType(query) {
export function insertBussinessType(query) {
return axios({
url: "/udiwms/originBusType/insert",
url: "/udiwms/originBusType/add",
method: "post",
data: query
});
}
export function delBussinessType(query) {
return axios({
url: "/udiwms/originBusType/delete",
method: "post",
data: query
});
}
export function downloadBussinessType(query) {
return axios({

@ -11,7 +11,7 @@ export function getErpMainOrder(query) {
export function getCloudErp(query) {
return axios({
url: "/udiwms/erpOrder/filter",
url: "/spms/erpOrder/filter",
method: "get",
params: query
});

@ -0,0 +1,36 @@
import axios from "../../utils/axios";
export function filterProducts(query) {
return axios({
url: "/spms/prein/inv/products/filter",
method: "get",
params: query
});
}
export function filterDetailProducts(query) {
return axios({
url: "/spms/prein/inv/products/filterDetail",
method: "get",
params: query
});
}
export function deleteProducts(query) {
return axios(
{
url: "/spms/prein/inv/products/delete",
method: "post",
data: query
}
)
}
export function statDetailProducts(query) {
return axios({
url: "/spms/prein/inv/products/stat",
method: "get",
params: query
});
}

@ -71,6 +71,7 @@ import stockOrderDelSearch from "../views/business/stockOrderDelSearch";
//库存
import invProducts from "../views/inventory/InvProducts.vue";
import invPreProducts from "../views/inventory/invPreProducts"
import invPreInProducts from "../views/inventory/invPreInProducts"
import udiTrace from "../views/inventory/UdiCodeTrace.vue";
import invUdiTraceOrder from "@/views/inventory/invUdiTraceOrder";
import invStatistics from "@/views/inventory/InvStatistics";
@ -328,15 +329,6 @@ export const asyncRouterMap = [
},
children: [
// {
// path: "ioErrorOrder",
// component: ioErrorOrder,
// name: "异常单据管理",
//
// meta: {
// authRule: ["inout/ioErrorOrder"]
// }
// },
{
path: "/receiveOrder",
component: Empty,
@ -1048,7 +1040,15 @@ export const asyncRouterMap = [
}
},
{
path: "invPreInProducts",
component: invPreInProducts,
name: "预验收库存查询",
icon: "",
meta: {
authRule: ["inv/invPreInProducts"]
}
},
// {
// path: "stockCheck",

@ -34,28 +34,21 @@
<el-table-column label="业务单据类型名称" prop="name" fixed></el-table-column>
<el-table-column label="业务单据类型代码" prop="action" fixed></el-table-column>
<el-table-column label="第三方单据类型" prop="originAction" fixed></el-table-column>
<!-- <el-table-column label="单据是否启用" prop="enable" fixed>-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ enableMap[scope.row.enable] }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="是否寄售" prop="advanceType" fixed>
<template slot-scope="scope">
<span>{{ enableMap[scope.row.advanceType] }}</span>
</template>
</el-table-column>
<el-table-column label="预验收" prop="preIn" fixed>
<template slot-scope="scope">
<span>{{ enableMap[scope.row.preIn] }}</span>
</template>
</el-table-column>
<el-table-column label="缺量自动补单" prop="advanceType" fixed>
<template slot-scope="scope">
<span>{{ enableMap[scope.row.changeEnable] }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="允许供应商使用" prop="spUse" fixed>-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ enableMap[scope.row.spUse] }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button
@ -153,6 +146,7 @@ export default {
changeEnable: null,
spUse: null,
prefix: null,
preIn:null,
},
enableMap: {
true: "是",
@ -244,6 +238,7 @@ export default {
changeEnable: row.changeEnable,
spUse: row.spUse,
prefix: row.prefix,
preIn:row.preIn,
};
},
@ -261,6 +256,7 @@ export default {
localAction: null,
changeEnable: null,
prefix:null,
preIn:null,
};
},

@ -85,11 +85,6 @@
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<!-- <el-col :span="4" class="el-col">-->
<!-- <div class="text item">-->
<!-- <el-checkbox v-model="inputQuery.enable"></el-checkbox>-->
<!-- </div>-->
<!-- </el-col>-->
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.advanceType"></el-checkbox>
@ -98,16 +93,23 @@
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.changeEnable" @change="isChangeOrder"
:disabled="!changeEnable || inputQuery.mainAction=='WareHouseIn' || inputQuery.id == null || inputQuery.mainAction==null">
:disabled="!changeEnable || inputQuery.mainAction=='WareHouseIn' || inputQuery.id == null || inputQuery.mainAction==null ||inputQuery.preIn">
缺量自动补单
</el-checkbox>
</div>
</el-col>
<!-- <el-col :span="4" class="el-col">
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.spUse">使</el-checkbox>
<el-checkbox v-model="inputQuery.preIn" @change="preInChange"
:disabled="inputQuery.mainAction=='WareHouseOut' || inputQuery.mainAction==null">预验收</el-checkbox>
</div>
</el-col>-->
</el-col>
<!-- <el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.spUse">使</el-checkbox>
</div>
</el-col>-->
</el-row>
<div v-if="visibleChange">
@ -306,7 +308,12 @@ export default {
});
this.getBusTypes();
},
preInChange() {
if (this.inputQuery.preIn) {
this.inputQuery.changeEnable = false;
this.inputQuery.advanceType = false;
}
},
getBusTypes() {
let query = {
enabled: true,

@ -11,13 +11,6 @@
style="width: 400px"
></el-input>
</el-form-item>
<!-- <el-form-item class="query-form-item">-->
<!-- <el-select v-model="filterQuery.enable" placeholder="启用状态" clearable>-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="已启用" value="1"></el-option>-->
<!-- <el-option label="未启用" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.thirdSys" placeholder="请选择第三方系统" @change="thirdSysChange">
@ -35,21 +28,13 @@
<el-button-group style="margin-left: 10px;display:flex;">
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="search" @click="getList"></el-button>
<el-button type="primary" icon="search" @click="handleAddClick"
>新增
</el-button
>
<el-button type="primary" icon="search" @click="updateDownload"></el-button>
<!-- <el-upload-->
<!-- :action="uploadFileUrl"-->
<!-- multiple-->
<!-- :limit="3"-->
<!-- :show-file-list="false"-->
<!-- :on-success="handleChange"-->
<!-- :file-list="fileList"-->
<!-- >-->
<!-- <el-button size="mini" type="primary">导入单据类型</el-button>-->
<!-- </el-upload>-->
</el-button-group>
<!-- <el-button type="primary" icon="search" @click="handleAddClick"
>新增</el-button
> -->
</el-form-item>
</el-form>
@ -58,11 +43,6 @@
<el-table-column label="单据类型名称" prop="name"></el-table-column>
<el-table-column label="单据类型代码" prop="action"></el-table-column>
<!-- <el-table-column label="是否启用" prop="enable" fixed>-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ enableMap[scope.row.enable] }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="第三方系统" prop="thirdSys"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="100" fixed="right">
@ -74,12 +54,19 @@
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="handleDeleteClick(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
title="新增扫码单据类型关联"
title="新增第三方单据类型"
:visible.sync="addDialogVisible"
width="70%"
:close-on-click-modal="false"
@ -100,7 +87,7 @@
</el-dialog>
<el-dialog
title="编辑扫码单据类型关联"
title="编辑第三方单据类型"
:visible.sync="modifyDialogVisible"
width="70%"
:close-on-click-modal="false"
@ -131,7 +118,7 @@
<script>
import {
getOriginBusType,
updateBussinessType,
updateBussinessType, delBussinessType,
insertBussinessType, downloadBussinessType
} from "../../api/basic/busOriginType";
@ -237,6 +224,8 @@ export default {
},
onAddSubmit() {
insertBussinessType(this.inputQuery)
.then((response) => {
this.loading = false;
@ -263,7 +252,7 @@ export default {
},
handleModifyClick(row) {
this.modifyDialogVisible = true;
this.inputQuery = {
id: row.id,
remark: row.remark,
@ -273,16 +262,44 @@ export default {
thirdSys: row.thirdSys,
thirdSysName: row.thirdSysName
};
this.modifyDialogVisible = true;
},
handleDeleteClick(row) {
this.deleteDialog(row.id)
},
handleAddClick() {
this.inputQuery = {
action: "",
name: "",
enable: "",
remark: "",
thirdSys: null,
thirdSysName: null
};
this.addDialogVisible = true;
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该业务类型信息, 是否继续?", "提示", {
this.$confirm("此操作将永久删除该单据类型信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
let query = {
id: rowId,
}
delBussinessType(query)
.then((response) => {
this.getList();
})
.catch(() => {
});
})
.catch(() => {
});

@ -10,7 +10,7 @@
style="width: 200px"
size="small"
splaceholder="请输入内容"
:disabled="true"
:disabled="!isAdd"
v-model="inputQuery.name"
></el-input>
</div>
@ -22,7 +22,7 @@
</div>
<el-input
style="width: 200px"
:disabled="true"
:disabled="!isAdd"
size="small"
splaceholder="请输入内容"
v-model="inputQuery.action"
@ -95,7 +95,7 @@ export default {
},
thirdSys: [],
localTypes: [],
isAdd: false,
value: "",
}
},
@ -122,6 +122,9 @@ export default {
},
created() {
if (this.inputQuery.action == "") {
this.isAdd = true;
}
this.getList();
},
};

@ -0,0 +1,437 @@
<template>
<div>
<el-table :data="sysList" style="width: 100%" border>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="第三方系统名称"
prop="sysName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="第三方产品名称"
prop="thirdName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="第三方产品ID"
prop="thirdId"
show-overflow-tooltip
></el-table-column>
</el-table>
<el-table
v-loading="loading"
:data="detailList"
style="width: 100%; margin-top: 20px"
border
@current-change="handleDetail"
>
<el-table-column
label="产品标识"
prop="nameCode"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="产品通用名"
prop="cpmctymc"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="包装级别"
prop="packLevel"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="包装层级"
prop="bzcj"
show-overflow-tooltip
></el-table-column>
</el-table>
<el-form
:model="editQuery"
ref="editQuery"
label-width="100px"
style="margin-top: 20px"
>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.cpmctymc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品标识:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.nameCode"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>规格型号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ggxh"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>器械类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.qxlb"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.cplb"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>分类编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.flbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>商品条码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.sptm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医保编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ybbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医疗器械注册人:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="ylqxzcrbarmc"
v-model="editQuery.ylqxzcrbarmc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册人英文名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ylqxzcrbarywmc"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>统一社会信用号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.tyshxydm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册证/备案号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zczbhhzbapzbh"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>上级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.sjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装级别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.packLevel"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>计量单位/包装级别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
v-model="editQuery.bzcj"
:disabled="true"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.bhxjsl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="editQuery.bhxjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含最小销售包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="editQuery.bhzxxsbzsl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>最小包装单元内包含使用单元数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zxxsbzbhsydysl"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<el-form-item prop="name">
<el-checkbox v-model="checked" class="text item itemTag"
disabled
>以使用单元数量入库
</el-checkbox>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import {thirdSysDetail} from "@/api/basic/udiRelevance";
import {filterByUuid} from "@/api/basic/udiInfo";
export default {
name: "UdiRlDetail",
props: {
editQuery: {
type: Object,
required: true,
},
},
data() {
return {
sysList: [],
checked:false,
detailList:[],
loading:false,
}
},
methods: {
getThirdSysDetail() {
let query = {
id: this.editQuery.id,
};
thirdSysDetail(query)
.then((response) => {
this.loading = false;
this.sysList = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.sysList = [];
});
},
getDetailList(detailQuery) {
this.loading = true;
filterByUuid(detailQuery)
.then((response) => {
this.loading = false;
this.detailList = response.data || [];
})
.catch(() => {
this.loading = false;
this.detailList = [];
});
},
},
created() {
let ttquery = {
uuid: this.editQuery.uuid,
page: 1,
limit: 10,
};
this.getDetailList(ttquery);
this.getThirdSysDetail();
},
}
</script>
<style scoped>
</style>

@ -562,7 +562,7 @@
</el-col>
<el-col :span="12" class="el-col">
<el-form-item prop="name">
<el-checkbox v-model="checked" class="text item itemTag"
<el-checkbox v-model="checked" class="text item itemTag" disabled
>以使用单元数量入库
</el-checkbox>
</el-form-item>

@ -483,11 +483,11 @@ export default {
},
onSubmit() {
if (this.actDateRange !== null) {
this.filterQuery.startTime = this.actDateRange[0];
this.filterQuery.endTime = this.actDateRange[1];
this.query.startTime = this.actDateRange[0];
this.query.endTime = this.actDateRange[1];
} else {
this.filterQuery.startTime = null;
this.filterQuery.endTime = null;
this.query.startTime = null;
this.query.endTime = null;
}
this.getList();

@ -95,6 +95,17 @@
prop="qxlb"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作" fixed="right" width="160">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="handleDetailClick(scope.row)"
>详情
</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="listQuery.limit"
@ -104,7 +115,17 @@
></el-pagination>
</div>
</el-card>
<el-dialog
title="耗材字典详情"
:visible.sync="udiRlDetailVisible"
width="85%"
:close-on-click-modal="false"
:close-on-press-escape="false"
append-to-body
v-if="udiRlDetailVisible"
>
<udiRlDetailDialog :editQuery="currentRow" ></udiRlDetailDialog>
</el-dialog>
</div>
</template>
@ -114,7 +135,7 @@ import {
stockOrderDetailFilterProduct
} from "../../api/inout/stockOrder";
import store from "../../store";
import udiRlDetailDialog from "./../basic/UdiRlDetailDialog";
export default {
name: "closeDialog",
props: {
@ -146,6 +167,7 @@ export default {
total: 1,
currentRow: null,
loading: false,
udiRlDetailVisible:false,
multipleUdiSelection: [],
thirdSys: [],
thirdSysFk: null,
@ -222,6 +244,11 @@ export default {
console.log(val);
this.currentRow = val;
},
handleDetailClick(row) {
this.currentRow = row;
this.udiRlDetailVisible = true;
},
handleErpPageChange(val) {
this.listQuery.page = val;
this.getList();
@ -256,10 +283,7 @@ export default {
intentBack() {
this.closeDialog();
},
combine() {//012693548470801311200226172302271020022632100025
// if (this.$isBlank(this.currentRow.id)) {
// return;
// }
combine() {
let selection = this.$refs.multipleTable.selection;
if (selection.length < 1) {
this.$message.error('未选择产品');
@ -290,51 +314,25 @@ export default {
this.loading = false;
});
// let tQuery = {
// id: this.currentRow.id
// };
// if (this.orderEditor) {
// tQuery.orderId = this.orderId;
// console.log(tQuery)
// addStockOrderDetailFromCodeById(tQuery).then((response) => {
// this.loading = false;
// if (response.code === 20000) {
// this.closeDialog(response);
// } else {
// this.$message.error(response.message);
// }
// }).catch(() => {
// this.loading = false;
// });
// } else {
// getStockOrderDetailInstrumentById(tQuery).then((response) => {
// this.loading = false;
// if (response.code === 20000) {
// this.closeDialog(response.data);
// } else {
// this.$message.error(response.message);
// }
// }).catch(() => {
// this.loading = false;
// });
// }
},
handleSelectionUdiChange(val) {
console.log("----" + val);
this.multipleUdiSelection = val;
},
},
created() {
if (this.$isNotBlank(this.data)) {
console.log(this.data.stockOrderLists);
this.listQuery.nameCode = this.data.udi;
this.listQuery.billType = this.data.formData.billType;
if (this.data.billType != null) {
this.listQuery.billType = this.data.billType;
} else
this.listQuery.billType = this.data.formData.billType;
this.listQuery.corpId = this.data.formData.corpId;
this.orderEditor = this.data.orderEditor;
this.orderId = this.data.orderId;
this.getList();
}
},
components: {udiRlDetailDialog},
};
</script>

@ -456,11 +456,11 @@ export default {
onSubmit() {
if (this.actDateRange !== null) {
this.filterQuery.startTime = this.actDateRange[0];
this.filterQuery.endTime = this.actDateRange[1];
this.query.startTime = this.actDateRange[0];
this.query.endTime = this.actDateRange[1];
} else {
this.filterQuery.startTime = null;
this.filterQuery.endTime = null;
this.query.startTime = null;
this.query.endTime = null;
}
this.getList();

@ -3,14 +3,14 @@
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-button-group style="display: flex">
<!-- <el-button-->
<!-- type="primary"-->
<!-- @click.native="submit('0')"-->
<!-- style="margin: -50px 60px 10px auto; height: 35px"-->
<!-- :loading="loading"-->
<!-- >导出-->
<!-- </el-button-->
<!-- >-->
<el-button
type="primary"
@click.native="printStockOrderDetailPDF()"
style="margin: -50px 60px 10px auto; height: 35px"
:loading="loading"
>打印全部
</el-button
>
</el-button-group>
<el-row :gutter="20">
@ -70,6 +70,7 @@
<el-table v-loading="loading" :data="codeArray" style="width: 100%;" max-height="350" height="350"
highlight-current-row
ref="multipleTable">
<!-- <el-table-column-->
<!-- type="selection"-->
@ -94,9 +95,9 @@
<span>{{ scope.row.updateTime }}</span>
</template>
</el-table-column>
<el-table-column label="数量">
<el-table-column label="标签数量">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.reCount" placeholder="请输入数量" style="width: 50%"
<el-input size="small" v-model="scope.row.count" placeholder="请输入打印标签数量" style="width: 50%"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
<!-- <span>{{ scope.row.reCount }}</span>-->
</template>
@ -107,7 +108,7 @@
type="text"
size="small"
@click.native="printStockOrderDetailPDF(scope.row)"
>打印
>标签打印
</el-button
>
</template>
@ -124,178 +125,331 @@
</el-pagination>
</div>
</el-form>
<el-dialog
title="标签打印文件列表"
:visible.sync="labelPrintVisible"
width="60%"
:close-on-click-modal="false"
:close-on-press-escape="false"
append-to-body
v-if="labelPrintVisible"
>
<el-button-group style="display: flex">
<el-button
type="primary"
@click.native="refeshLabel()"
style="margin: -50px 60px 10px auto; height: 35px"
>刷新
</el-button
>
</el-button-group>
<el-table :data="lableFileLsit" style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="文件名称"
prop="fileName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="生成状态"
prop="status"
show-overflow-tooltip
>
<template slot-scope="scope">
<span>{{ printMap[scope.row.status] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="printLabel(scope.row)"
>标签打印
</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="refreshQuery.limit"
@current-change="handleLableChange"
layout="prev, pager, next"
:total="labltotal"
>
</el-pagination>
</el-dialog>
</div>
</template>
<script>
import {
stockOrderDetail,
submitStockOrder,
submitStockOrderError,
uploadStockOrderDetailCount
} from "../../api/inout/stockOrder";
import {stockQRCodeText, filterPrint} from "../../api/inout/stockQRCode";
import draggable from "vuedraggable";
import {saveAs} from "file-saver";
import {parseTime} from "../../filtres";
import store from "../../store";
import {
inspectionOrderDetailPDFFromTemplateFile,
inspectionStockQRCodeTextPDFFromTemplateFile,
orderDetailPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFile
} from "../../api/itextpdf/itextpdf";
import {getLocalJoinBusType} from "../../api/basic/busLocalType";
export default {
name: "idQuery",
props: {
closeDialog: {
type: Function,
required: true,
},
idQuery: {
type: Object,
required: true,
},
},
data() {
return {
code: "",
query: {
sOrderId: null,
orderIdFk: "",
page: 1,
limit: 10,
},
busTypes: [],
formData: {},
codeArray: [],
total: 0,
loading: false,
index: null,
formLoading: false,
formVisible: false,
deleteLoading: false,
orderNo: null,
statusMap: {
0: "未打印",
1: "已打印",
}
};
import {
stockOrderDetail,
submitStockOrder,
submitStockOrderError,
uploadStockOrderDetailCount,
} from "../../api/inout/stockOrder";
import {stockQRCodeText, filterPrint} from "../../api/inout/stockQRCode";
import draggable from "vuedraggable";
import {saveAs} from "file-saver";
import {parseTime} from "../../filtres/index";
import store from "../../store";
import {
inspectionOrderDetailPDFFromTemplateFile, filterTemp,
inspectionStockQRCodeTextPDFFromTemplateFile,
orderDetailPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFileMax
} from "../../api/itextpdf/itextpdf";
import {getLocalJoinBusType} from "../../api/basic/busLocalType";
import {BASE_URL} from "@/config/app";
export default {
name: "idQuery",
props: {
closeDialog: {
type: Function,
required: true,
},
components: {
draggable,
idQuery: {
type: Object,
required: true,
},
methods: {
submit(formName) {
if (this.total < 1) {
this.$message.error('未选择条码');
return;
}
this.$confirm("是否提交?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
let tQuery = {
id: this.idQuery.id
}
this.loading = true;
submitStockOrder(tQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog(true);
} else {
this.$message.error(response.message);
}
});
}).catch(() => {
this.loading = false;
});
},
data() {
return {
code: "",
query: {
sOrderId: null,
orderIdFk: "",
page: 1,
limit: 10,
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
getInputFocus(event) {
event.currentTarget.select();
labelPrintVisible: false,
busTypes: [],
formData: {},
codeArray: [],
total: 0,
lableFileLsit: [],
loading: false,
index: null,
formLoading: false,
formVisible: false,
deleteLoading: false,
orderNo: null,
statusMap: {
0: "未打印",
1: "已打印",
},
tableSelection() {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleAllSelection();
refreshQuery: {
page: 1,
limit: 10,
printCodeIdFk: null,
stockOrderFk: null,
},
handleSizeChange(val) {
this.query.limit = val;
// this.getStockOrderDetailList();
this.getStockQRCodeTextList();
labltotal: null,
printMap: {
0: "正在生成",
1: "已生成",
},
handleCurrentChange(val) {
this.query.page = val;
// this.getStockOrderDetailList();
this.getStockQRCodeTextList();
},
getStockOrderDetailList() {
this.loading = true;
filterPrint(this.query) //
.then((response) => {
console.log(response)
this.codeArray = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
getBusType() {
let query = {
enabled: true,
};
getLocalJoinBusType(query)
.then((response) => {
this.busTypes = response.data.list || [];
})
.catch(() => {
});
},
getStockQRCodeTextList() {
pdffileUrl: null,
};
},
components: {
draggable,
},
methods: {
submit(formName) {
if (this.total < 1) {
this.$message.error('未选择条码');
return;
}
this.$confirm("是否提交?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
let tQuery = {
id: this.idQuery.id
}
this.loading = true;
filterPrint(this.query) //
submitStockOrder(tQuery)
.then((response) => {
console.log(response)
this.codeArray = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog(true);
} else {
this.$message.error(response.message);
}
});
},
printStockOrderDetailPDF(row) {
}).catch(() => {
this.loading = false;
});
},
refeshLabel() {
filterTemp(this.refreshQuery).then((response) => {
if (response.code == 20000) {
this.lableFileLsit = response.data.list;
this.labelPrintVisible = true;
this.labltotal = response.data.total || 0;
// this.$message.warning("");
}
}).catch(() => {
this.loading = false;
});
},
printLabel(row) {
window.open(this.pdffileUrl + row.fileName, '_blank');
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
getInputFocus(event) {
event.currentTarget.select();
},
tableSelection() {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleAllSelection();
},
handleSizeChange(val) {
this.query.limit = val;
// this.getStockOrderDetailList();
this.getStockQRCodeTextList();
},
handleCurrentChange(val) {
this.query.page = val;
// this.getStockOrderDetailList();
this.getStockQRCodeTextList();
},
handleLableChange(val) {
this.refreshQuery.page = val;
this.refeshLabel();
},
getStockOrderDetailList() {
this.loading = true;
filterPrint(this.query) //
.then((response) => {
console.log(response)
this.codeArray = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
getBusType() {
let query = {
enabled: true,
};
getLocalJoinBusType(query)
.then((response) => {
this.busTypes = response.data.list || [];
})
.catch(() => {
});
},
getStockQRCodeTextList() {
this.loading = true;
filterPrint(this.query) //
.then((response) => {
console.log(response)
this.codeArray = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
printStockOrderDetailPDF(row) {
let tQuery = {
queryId: null,
orderId: null,
countList: [],
};
if (row == null) {
tQuery.orderId = this.query.sOrderId;
} else {
if (row.reCount <= 0) {
return this.$message.error('数量错误');
}
let tQuery = {queryId: row.id,}
this.loading = true;
inspectionStockQRCodeTextPDFFromTemplateFile(tQuery).then((response) => {
if (response.code === 20000) {
tQuery = {
id: row.id,
rowCount: row.reCount,
text: row.text
tQuery.queryId = row.id;
}
this.loading = true;
inspectionStockQRCodeTextPDFFromTemplateFile(tQuery).then((response) => {
if (response.code === 20000) {
if (row != null) {
tQuery.id = row.id;
tQuery.rowCount = row.reCount;
let data = {
queryId: row.id,
rowCount: row.count
}
tQuery.countList.push(data);
} else {
for (let i = 0; i < this.codeArray.length; i++) {
let data = {
queryId: this.codeArray[i].id,
rowCount: this.codeArray[i].count
}
tQuery.countList.push(data);
}
}
let count = 0;
for (let i = 0; i < tQuery.countList.length; i++) {
count = count + tQuery.countList[i].rowCount;
console.log(count);
}
console.log(count);
if (count > 100) {
stockQRCodeTextPDFFromTemplateFileMax(tQuery).then((response) => {
if (response.code == 20000) {
this.lableFileLsit = response.data.list;
this.labltotal = response.data.total || 0;
this.labelPrintVisible = true;
this.refreshQuery = {
page: 1,
limit: 10,
printCodeIdFk: tQuery.queryId,
stockOrderFk: tQuery.orderId,
}
this.loading = false;
this.$message.warning("打印文件正在生成中,请点击刷新按钮查看进度,请勿关闭按钮重复打印!");
}
}).catch(() => {
this.loading = false;
});
} else
stockQRCodeTextPDFFromTemplateFile(tQuery).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
@ -308,50 +462,56 @@
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(response.message);
}
}).catch(() => {
} else {
this.loading = false;
});
},
intentBack() {
this.$router.go(-1);
},
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
},
filters: {},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
intentBack() {
this.$router.go(-1);
},
created() {
this.getBusType();
this.formData = {};
this.codeArray = [];
if (this.$isNotBlank(this.idQuery.id)) {
this.formData = this.idQuery.formData;
// this.query.orderIdFk = this.idQuery.id;
// this.getStockOrderDetailList();
this.query.orderId = this.idQuery.id;
this.query.sOrderId = this.idQuery.id;
this.getStockQRCodeTextList();
}
},
};
getPrintList(tQuery) {
}
},
filters: {},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getBusType();
this.formData = {};
this.codeArray = [];
this.pdffileUrl = BASE_URL + "/spms/donwload/pdf?fileName=";
if (this.$isNotBlank(this.idQuery.id)) {
this.formData = this.idQuery.formData;
// this.query.orderIdFk = this.idQuery.id;
// this.getStockOrderDetailList();
this.query.orderId = this.idQuery.id;
this.query.sOrderId = this.idQuery.id;
console.log(this.query.sOrderId);
this.getStockQRCodeTextList();
}
},
};
</script>
<style>
.ao-text {
width: 100%;
font-size: 13px;
font-family: "Microsoft YaHei";
float: right;
text-align: right;
margin-top: 10px;
}
.ao-text {
width: 100%;
font-size: 13px;
font-family: "Microsoft YaHei";
float: right;
text-align: right;
margin-top: 10px;
}
</style>

@ -175,6 +175,10 @@
<el-checkbox v-model="formData.outChangeEnable"
:disabled="!curAction.changeEnable">允许出库自动缺量补单
</el-checkbox>
<el-checkbox v-model="formData.preCheck"
:disabled="!curAction.changeEnable ||corpOrderIdDisabled"
>是否预验收产品
</el-checkbox>
</div>
</el-col>
@ -384,6 +388,7 @@ export default {
action: null,
locStorageCode: null,
outChangeEnable: false,
preCheck: false,
},
curId: null,
storageList: [],
@ -436,6 +441,7 @@ export default {
fromCorp: this.formData.fromCorp,
fromCorpId: this.formData.fromCorpId,
outChangeEnable: this.formData.outChangeEnable,
preCheck: this.formData.preCheck,
}
submitOrderWeb(tQuery)
.then((response) => {
@ -528,14 +534,6 @@ export default {
addCodeSubmit(tQuery) {
addOrderWeb(tQuery).then((response) => {
// let teQuery = {code: this.formData.code};
// expireTimeCheck(teQuery).then((response) => {
// if (response.code === 20000) {
// } else {
// this.$message.warning(response.message);
// }
// this.loading = false;
// });
if (response.code === 20000) {
this.idQuery.id = response.data.orderId;
@ -558,28 +556,12 @@ export default {
this.getCodeList();
this.selectRlTitle = response.message;
this.bindRl(response.data);
// this.$alert(response.message, '', {
// confirmButtonText: '',
// type: 'warning',
// closeOnClickModal: true,
// callback: action => {
// this.bindRl(response.data);
// }
// });
} else if (response.code == 503) {
this.curRow = response.data;
this.idQuery.id = this.curRow.orderId;
this.getCodeList();
this.selectUnitTitle = response.message;
this.handleUnitClick(response.data);
// this.$alert(response.message, '', {
// confirmButtonText: '',
// type: 'warning',
// closeOnClickModal: true,
// callback: action => {
// this.handleUnitClick(response.data);
// }
// });
} else if (response.code == 504) {
this.$confirm(response.message, "提示", {
@ -627,10 +609,8 @@ export default {
this.isScan = !this.isScan;
if (this.isScan) {
this.scanText = "扫码录入:";
// document.getElementById("inputer").focus();
} else {
this.scanText = "手动录入:";
// this.$refs.inputRef.focus();
}
},
@ -955,25 +935,21 @@ export default {
this.formData.fromCorpId = this.idQuery.fromCorpId;
this.formData.locStorageCode = this.idQuery.locStorageCode;
this.formData.outChangeEnable = this.idQuery.outChangeEnable;
this.formData.preCheck = this.idQuery.preCheck;
this.actionEnable = true;
this.getCodeList();
} else {
this.corpOrderIdDisabled = false;
if (JSON.stringify(this.$route.query) === '{}') {
// this.formData.corpOrderId = new Date().getTime() + (Math.ceil(Math.random() * 10 + 10) + '');
let date = new Date();
this.formData.corpOrderId = parseTime(date, '{y}{m}{d}{h}{i}{s}') + Math.ceil(Math.random() * 89 + 10);
} else {
//
let query = this.$route.query;
this.orderNo = query.id;
this.query = Object.assign(this.query, query);
this.query.limit = parseInt(this.query.limit);
this.query.corpOrderId = query.id;
//
// this.getCodeList();
}
}

@ -481,11 +481,13 @@ export default {
this.idQuery.corpOrderId = row.corpOrderId;
this.idQuery.billType = row.action;
this.idQuery.locStorageCode = row.locStorageCode;
this.idQuery.preCheck = row.preCheck;
}
this.addOrderVisible = true;
this.idQuery.action = row.action;
this.idQuery.fromCorp = row.fromCorp;
this.idQuery.fromCorpId = row.fromCorpId;
this.idQuery.preCheck = row.preCheck;
},
errOrders() {
this.errOrderVisible = true;

@ -0,0 +1,259 @@
<template>
<div>
<el-descriptions class="margin-top" title="产品信息" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label">
产品名称
</template>
{{ idQuery.cpmctymc }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
产品标识
</template>
{{ idQuery.nameCode }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
批次号
</template>
{{ idQuery.batchNo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
规格型号
</template>
{{ idQuery.ggxh }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
生产日期
</template>
{{ idQuery.productionDate }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
失效日期
</template>
{{ idQuery.expireDate }}
</el-descriptions-item>
</el-descriptions>
<el-form :inline="true" :model="query" class="query-form" size="mini">
<el-form-item class="query-form-item">
<el-input v-model="query.code" placeholder="条码查询"></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="search" @click="getCodeList"
>查询
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="codeArry" style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="条码"
prop="originCode"
show-overflow-tooltip
></el-table-column>
<el-table-column label="单据类型" prop="action" width="150">
<template slot-scope="scope">
<span>{{ getActionName(scope.row.action) }}</span>
</template>
</el-table-column>
<el-table-column
label="出入库类型"
prop="mainActionStr"
width="150"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="入库数量"
prop="inCount"
width="150"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="出库数量"
prop="outCount"
width="150"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="订单日期"
prop="updateTime"
width="150"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="所属订单"
prop="orderIdFk"
width="200"
show-overflow-tooltip
></el-table-column>
</el-table>
<el-pagination
:page-size="query.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next,total"
:total="total"
>
</el-pagination>
</div>
</template>
<script>
import {
filterDetailProducts, statDetailProducts
} from "../../api/inventory/InvPreInProducts";
import store from "../../store";
import draggable from "vuedraggable";
import {getBussinessType} from "../../api/basic/bussinessType";
export default {
name: "idQuery",
props: {
idQuery: {
type: Object,
required: true,
},
},
data() {
return {
query: {
batchNo: null,
productIdFk: null,
customerId: null,
page: 1,
limit: 20,
},
codeArry: [],
total: 0,
loading: true,
index: null,
formLoading: false,
formVisible: false,
deleteLoading: false,
orderNo: null,
busTypes: [],
statData: {},
};
},
components: {
draggable,
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.query = {
productIdFk: null,
customerId: null,
page: 1,
limit: 20,
};
this.getCodeList();
},
onSubmit() {
this.$router.push({
path: "",
query: this.query,
});
this.getCodeList();
},
handleSizeChange(val) {
this.query.limit = val;
this.getCodeList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getCodeList();
},
getCodeList() {
this.loading = true;
this.query.productIdFk = this.idQuery.relIdFk;
this.query.batchNo = this.idQuery.batchNo;
this.query.supId = this.idQuery.supId;
this.query.invStorageCode = this.idQuery.invStorageCode;
filterDetailProducts(this.query) //
.then((response) => {
this.loading = false;
this.codeArry = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
getStat() {
this.query.productIdFk = this.idQuery.relIdFk;
this.query.batchNo = this.idQuery.batchNo;
this.query.customerId = store.getters.customerId;
this.query.invStorageCode = this.idQuery.invStorageCode;
statDetailProducts(this.query) //
.then((response) => {
this.loading = false;
this.statData = response.data;
})
.catch(() => {
this.loading = false;
});
},
intentBack() {
// this.$router.push({path:'../readme/detail',query:{id:row.corpOrderId}});
this.$router.go(-1);
},
getActionName(action) {
for (let i = 0; i < this.busTypes.length; i++) {
if (this.busTypes[i].action === action) {
return this.busTypes[i].name;
}
}
},
getBusType() {
let query = {
enabled: true,
};
getBussinessType(query)
.then((response) => {
this.busTypes = response.data.list || [];
this.filterQuery.billAction = this.busTypes[0].action;
// this.getList();
})
.catch(() => {
});
},
},
filters: {},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getBusType();
this.getCodeList();
this.getStat();
},
};
</script>

@ -80,7 +80,11 @@
<el-table-column label="产品标识" prop="nameCode" width="120"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc" width="180">
</el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="180"></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="180" show-overflow-tooltip>
<template slot-scope="scope">
<pre style="white-space: pre-wrap;" >{{scope.row.ggxh}}</pre>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120"></el-table-column>
<el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column>

@ -8,7 +8,7 @@
<el-input v-model="filterQuery.nameCode" placeholder="产品标识DI" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.productsName" placeholder="产品名称" clearable></el-input>
<el-input v-model="filterQuery.cpmctymc" placeholder="产品名称" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.batchNo" placeholder="批次号" clearable></el-input>
@ -84,7 +84,11 @@
<el-table-column label="产品标识" prop="nameCode" width="120"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc" width="180">
</el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="180"></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="180" show-overflow-tooltip>
<template slot-scope="scope">
<pre style="white-space: pre-wrap;" >{{scope.row.ggxh}}</pre>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120"></el-table-column>
<el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column>

@ -0,0 +1,347 @@
<template>
<div>
<el-card>
<el-form :inline="true" :model="filterQuery" size="mini">
<el-row style="width: 100%">
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.nameCode" placeholder="产品标识DI"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.productsName" placeholder="产品名称"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.batchNo" placeholder="批次号"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select
v-model="filterQuery.supId"
filterable
remote
clearable="true"
reserve-keyword
placeholder="请输入供应商名称"
:remote-method="findMethod"
size="mini"
:loading="loading"
>
<el-option
v-for="item in fromOptions"
:key="item.companyName"
:label="item.companyName"
:value="item.customerId"
>
<span style="float: left">{{ item.companyName }}</span>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-row style="width: 100%">
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.ggxh" placeholder="规格型号"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.zczbhhzbapzbh" placeholder="批准文号"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.ylqxzcrbarmc" placeholder="生产厂家"></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="loading" :data="list" style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="产品标识" prop="nameCode" width="120"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc" width="180">
</el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="180"></el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120"></el-table-column>
<el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column>
<el-table-column label="入库数量" prop="inCount" width="120"></el-table-column>
<el-table-column label="出库数量" prop="outCount" width="120"></el-table-column>
<el-table-column label="结余数量" prop="reCount" width="120">
<template slot-scope="scope">
{{ (scope.row.inCount - scope.row.outCount) }}
</template>
</el-table-column>
<el-table-column label="生产厂家" prop="ylqxzcrbarmc" v-if="showSup" show-overflow-tooltip
width="120"></el-table-column>
<el-table-column label="供应商" prop="companyName" v-if="showSup" show-overflow-tooltip
width="120"></el-table-column>
<el-table-column label="仓库" prop="invStorageName" v-if="showSup"
show-overflow-tooltip width="120"></el-table-column>
<el-table-column label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="intentDetail(scope.row)"
>详情
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row.id)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
</el-card>
<el-dialog
title="库存详情"
:visible.sync="codeDetailVisible"
width="85%"
v-if="codeDetailVisible"
>
<codeDetail
:idQuery="idQuery"
v-on:closeDetailDialog="closeDetailDialog"
></codeDetail>
</el-dialog>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</div>
</template>
<script>
import {
filterProducts,
deleteProducts,
} from "../../api/inventory/InvPreInProducts";
import draggable from "vuedraggable";
import codeDetail from "./InvPreInProductsDetail";
import store from "../../store";
import {getBussinessType} from "../../api/basic/bussinessType";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
export default {
data() {
return {
filterQuery: {
cpmctymc: null,
nameCode: null,
relIdFk: null,
batchNo: null,
page: 1,
limit: 20,
customerId: null,
unitFk: null,
},
detailQuery: {
code: null,
productIdFk: null,
page: 1,
limit: 20,
},
list: [],
fromOptions: [],
codeDetailVisible: false,
total: 0,
loading: true,
index: null,
dialogTableVisible: false,
formLoading: false,
dialogVisible: false,
deleteLoading: false,
busTypes: [],
idQuery: null,
showSup: false,
};
},
components: {
draggable,
codeDetail,
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
cpmctymc: null,
nameCode: null,
relIdFk: null,
batchNo: null,
customerId: null,
page: 1, unitFk: null,
limit: 20,
};
this.getList();
},
onSubmit() {
this.loading = true;
this.getList();
},
handleSizeChange(val) {
this.filterQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
handleUnitClick(row) {
this.curIndex = row.id;
this.dialogTableVisible = true;
},
closeDetailDialog(val) {
this.codeDetailVisible = false;
},
closeDialog() {
this.getList();
},
getList() {
this.loading = true;
this.filterQuery.customerId = store.getters.customerId;
filterProducts(this.filterQuery)
.then((response) => {
console.log(response)
this.loading = false;
this.showSup = response.data.showSup;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteOrders(data) {
this.loading = true;
let query = {
id: data,
}
deleteProducts(query)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
},
findMethod(query) {
console.log(query);
this.fromOptions = [];
let cQuery = {
key: query,
customerName: query,
};
getBasicUnitMaintains(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data.page.list || [];
})
.catch(() => {
this.loading = false;
});
},
intentDetail(row) {
this.idQuery = row;
// this.idQuery.supId = null;
this.idQuery.customerId = null;
this.codeDetailVisible = true;
},
getBusType() {
let query = {
enabled: true,
};
getBussinessType(query)
.then((response) => {
this.busTypes = response.data.list || [];
this.filterQuery.billAction = this.busTypes[0].action;
// this.getList();
})
.catch(() => {
});
},
getActionName(action) {
for (let i = 0; i < this.busTypes.length; i++) {
if (this.busTypes[i].action === action) {
return this.busTypes[i].name;
}
}
},
},
filters: {
statusFilterType(status) {
const statusMap = {
false: "success",
true: "danger",
};
return statusMap[status];
},
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.findMethod();
this.getBusType();
let query = this.$route.query;
this.filterQuery = Object.assign(this.filterQuery, query);
this.filterQuery.limit = parseInt(this.filterQuery.limit);
//
this.getList();
},
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -11,9 +11,9 @@
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="4" class="el-col" style="margin-top: 6px">
<el-checkbox v-model="configQuery.downstreamEnable"></el-checkbox>
<el-checkbox v-model="configQuery.downstreamEnable"></el-checkbox>
</el-col>
<el-col :span="20" class="el-col" >
<el-col :span="20" class="el-col">
<div>
<span>数据同步轮询时间(单位:分钟):&nbsp;</span>
<el-input
@ -51,16 +51,39 @@
<el-checkbox v-model="configQuery.basicThirdBusOrder"></el-checkbox>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
国家库DI数
</template>
<el-checkbox v-model="configQuery.orderScanFinish"></el-checkbox>
<el-checkbox v-model="configQuery.dbDiProducts">DI</el-checkbox>
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" title="" :column="1" :size="100" style="margin-top: 30px" border>
<el-descriptions-item label="单据(单据类型)" label-style="width: 150px">
<el-checkbox-group v-model="checkedBusTypes" @change="handleCheckedChange" >
<el-checkbox
style="padding-top: 10px"
v-for="busType in busTypes" :label="busType" :key="busType.action"
:value="busType.action">{{ busType.name }}
</el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
单据(单据状态)
</template>
<el-checkbox v-model="configQuery.orderUnCheck"></el-checkbox>
<el-checkbox v-model="configQuery.orderUnReceive"></el-checkbox>
<el-checkbox v-model="configQuery.orderScanFinish"></el-checkbox>
</el-descriptions-item>
</el-descriptions>
</el-card>
@ -69,6 +92,7 @@
<script>
import {findConfig, updateConfig} from "@/api/thrsys/spsSyncStatus";
import store from "@/store";
import {getBussinessType} from "@/api/basic/bussinessType";
export default {
name: "SysUdimsConfig",
@ -88,17 +112,37 @@ export default {
basicThirdBusOrder: null,
orderScanFinish: null,
dbDiProducts: null,
downstreamEnable:null,
syncTime:null,
downstreamEnable: null,
syncTime: null,
orderUnCheck: null,
orderUnReceive: null,
busTypes: [],
},
checkedBusTypes: [],
busTypes: [],
}
},
methods:{
methods: {
getConfig() {
findConfig()
.then((response) => {
if (response.code == 20000) {
// debugger
this.configQuery = response.data;
if (this.configQuery.busTypes != null) {
for (let i = 0; i < this.configQuery.busTypes.length; i++) {
for (let k = 0; k < this.busTypes.length; k++) {
if (this.busTypes[k].action == this.configQuery.busTypes[i]) {
this.checkedBusTypes.push(this.busTypes[k]);
}
}
}
}
console.log(this.checkedBusTypes);
} else {
this.$message.error(response.message);
}
@ -110,6 +154,14 @@ export default {
});
},
saveConfig() {
if (this.checkedBusTypes != null) {
this.configQuery.busTypes = [];
for (let i = 0; i < this.checkedBusTypes.length; i++) {
this.configQuery.busTypes.push(this.checkedBusTypes[i].action);
}
}
updateConfig(this.configQuery)
.then((response) => {
this.loading = false;
@ -123,13 +175,31 @@ export default {
});
},
handleCheckedChange() {
},
getBusType() {
let query = {
enabled: true,
};
getBussinessType(query)
.then((response) => {
this.busTypes = response.data.list || [];
this.getConfig();
})
.catch(() => {
});
},
},
created() {
this.headers = {
ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token,
};
this.getConfig();
this.getBusType();
},
}
</script>

@ -1,8 +1,6 @@
<template>
<div>
<el-card class="el-card">
<el-form :inline="true" :model="filterQuery"
class="query-form" size="mini">
<el-row>
@ -74,7 +72,7 @@
<el-table-column label="往来单位ID" prop="corpId"></el-table-column>
<el-table-column label="往来单位" prop="corpName"
show-overflow-tooltip="true"></el-table-column>
<!-- <el-table-column label="单据状态" prop="billFlag"></el-table-column>-->
<!-- <el-table-column label="单据状态" prop="billFlag"></el-table-column>-->
<el-table-column label="单据日期" prop="billdate"></el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
@ -107,7 +105,6 @@
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="生产日期" prop="productDate"></el-table-column>
<el-table-column label="失效日期" prop="expireDate"></el-table-column>
<!-- <el-table-column label="单据数量" prop="reCount"></el-table-column>-->
<el-table-column label="单据数量" prop="count"></el-table-column>
</el-table>
</el-card>

@ -970,7 +970,7 @@ export default {
let tQuery = {
action: this.formData.billType
}
this.loading = true;
// this.loading = true;
generateBillNoInt(tQuery)
.then((response) => {
this.loading = false;

Loading…
Cancel
Save