合并自助平台分库功能代码

fengcang
anthonyywj2 3 years ago
parent bf2915e60d
commit 47b2bcab04

@ -1,7 +1,7 @@
{
"UDI_SYNC_SERVER_IP": "http://192.168.0.109:9995/",
"BASE_URL":"http://192.168.0.109:9991",
"SERVER_IP": "http://192.168.0.109:9991/",
"WEBSOCKET_URL": "ws://192.168.0.109:9991/UDI_WMS_MC/api/websocket/",
"hosp_name": "诏安县总医院(测试)"
"UDI_SYNC_SERVER_IP": "http://127.0.0.1:9995/",
"BASE_URL":"http://127.0.0.1:9991",
"SERVER_IP": "http://127.0.0.1:9991/",
"WEBSOCKET_URL": "ws://127.0.0.1:9991/UDI_WMS_MC/api/websocket/",
"hosp_name": "平和县医院"
}

@ -21,6 +21,24 @@ export function authAdminRoleList(query) {
});
}
//根据当前角色,获取是否为客户角色
export function roleCustomers(query) {
return axios({
url: "/admin/auth/admin/roleCustomers",
method: "get",
params: query
});
}
// 获取客户角色列表
export function authCustomerRoles(query) {
return axios({
url: "/admin/auth/admin/customerRoles",
method: "get",
params: query
});
}
// 保存
export function authAdminSave(data, formName, method = "post") {
let url =
@ -42,3 +60,12 @@ export function authAdminDelete(data) {
data: data
});
}
export function updateInv(data) {
return axios({
url: "/admin/auth/admin/updateInv",
method: "post",
data: data
});
}

@ -0,0 +1,42 @@
import axios from "../../utils/axios";
export function filterSubAll(query) {
return axios({
url: "/spms/sub/inv/warehouse/filter",
method: "get",
params: query
});
}
export function filterSubByInv(query) {
return axios({
url: "/spms/sub/inv/warehouse/findByInv",
method: "get",
params: query
});
}
// 保存
export function saveSubWarehouse(data, formName, method = "post") {
let url =
formName !== "edit"
? "/spms/sub/inv/warehouse/save"
: "/spms/sub/inv/warehouse/edit";
return axios({
url: url,
method: method,
data: data
});
}
// 删除
export function deleteSubWarehouse(data) {
return axios({
url: "/spms/sub/inv/warehouse/delete",
method: "post",
data: data
});
}

@ -11,7 +11,7 @@ import {
} from "../../utils/auth";
// import { $NOT_NETWORK } from '../../utils/errorCode'
import { Message } from "element-ui";
import {RECEIVE_ADMIN_EMPLOY_NAME} from "../mutation-types";
import {RECEIVE_ADMIN_EMPLOY_NAME, RECEIVE_LOCINVCODE, RECEIVE_LOCSUBINVCODE} from "../mutation-types";
// initial state
const state = {
@ -21,7 +21,9 @@ const state = {
avatar: "", // 头像
token: getToken(), // 登录token
authRules: [], // 权限列表
routers: constantRouterMap // 路由列表
routers: constantRouterMap, // 路由列表
locInvCode:"",
locSubInvCode:""
};
// getters
@ -32,20 +34,22 @@ const getters = {
avatar: state => state.avatar,
token: state => state.token,
authRules: state => state.authRules,
routers: state => state.routers
routers: state => state.routers,
locInvCode:state => state.locInvCode,
locSubInvCode:state => state.locSubInvCode,
};
// actions
const actions = {
// 用户名登录
loginName({ commit }, userInfo) {
console.log(userInfo.userName + "=----" + userInfo.pwd);
const userName = userInfo.userName ? userInfo.userName.trim() : "";
const pwd = userInfo.pwd ? userInfo.pwd : "";
return new Promise((resolve, reject) => {
loginName(userName, pwd)
.then(response => {
if (response.code != 20000) {
console.log(response);
if (response.code!=20000) {
Message({
message: response.message,
type: "error",
@ -68,16 +72,14 @@ const actions = {
return new Promise((resolve, reject) => {
userInfo()
.then(response => {
console.log(response.code + "---" + response.data);
if (response.code != 20000) {
if (response.code !== 20000) {
reject("登录失效");
}
const data = response.data || {};
console.log(data.userName + "--" + data.authRules);
commit(types.RECEIVE_ADMIN_NAME, data.userName);
commit(types.RECEIVE_ADMIN_EMPLOY_NAME, data.employeeName);
commit(types.RECEIVE_ADMIN_AVATAR, data.avatar);
commit(types.RECEIVE_ADMIN_AUTH_RULES, data.authRules);
resolve(data);
})
.catch(error => {
@ -93,6 +95,8 @@ const actions = {
commit(types.RECEIVE_ADMIN_ID, "");
commit(types.RECEIVE_ADMIN_TOKEN, "");
commit(types.RECEIVE_ADMIN_AUTH_RULES, []);
commit(types.RECEIVE_LOCINVCODE, "");
commit(types.RECEIVE_LOCSUBINVCODE, "");
resolve();
})
.catch(error => {
@ -107,6 +111,8 @@ const actions = {
commit(types.RECEIVE_ADMIN_ID, "");
commit(types.RECEIVE_ADMIN_TOKEN, "");
commit(types.RECEIVE_ADMIN_AUTH_RULES, []);
commit(types.RECEIVE_LOCINVCODE, "");
commit(types.RECEIVE_LOCSUBINVCODE, "");
resolve();
});
},
@ -151,13 +157,16 @@ const mutations = {
[types.RECEIVE_ADMIN_AUTH_RULES](state, authRules) {
state.authRules = authRules;
},
[types.RECEIVE_ADMIN_EMPLOY_NAME](state, employeeName) {
state.employeeName = employeeName;
},
[types.RECEIVE_ROUTERS](state, routers) {
const tempRm = constantRouterMap.concat(routers);
state.routers = JSON.parse(JSON.stringify(tempRm));
}
},
[types.RECEIVE_LOCINVCODE](state, locInvCode) {
state.locInvCode = locInvCode;
},
[types.RECEIVE_LOCSUBINVCODE](state, locSubInvCode) {
state.locSubInvCode = locSubInvCode;
},
};
export default {

@ -12,3 +12,5 @@ export const RECEIVE_ADMIN_EMPLOY_NAME = "RECEIVE_ADMIN_EMPLOY_NAME"; //账号
export const RECEIVE_ADMIN_AVATAR = "RECEIVE_ADMIN_AVATAR"; // 头像
export const RECEIVE_ADMIN_AUTH_RULES = "RECEIVE_ADMIN_AUTH_RULES"; // 权限列表
export const RECEIVE_ROUTERS = "RECEIVE_ROUTERS"; // 初始化路由表
export const RECEIVE_LOCINVCODE = "RECEIVE_LOCINVCODE"; // 当前仓库
export const RECEIVE_LOCSUBINVCODE = "RECEIVE_LOCSUBINVCODE"; // 当前分库

@ -131,6 +131,8 @@ export default {
entrustAction: null,
finishRece: false,
curInv: "",
entrustSubInv: "",
invWarehouseCode: "",
},
enableMap: {
true: "是",
@ -196,11 +198,11 @@ export default {
return;
}
if (this.$isBlank(this.inputQuery.entrustInv)) {
this.$message.error("请输入委托验收人仓库!");
this.$message.error("请输入接受委托仓库!");
return;
}
if (this.$isBlank(this.inputQuery.entrustInv)) {
this.$message.error("请输入委托验收人!");
this.$message.error("请输入接受委托人!");
return;
}
@ -226,11 +228,11 @@ export default {
return;
}
if (this.$isBlank(this.inputQuery.entrustInv)) {
this.$message.error("请输入委托验收人仓库!");
this.$message.error("请输入接受委托仓库!");
return;
}
if (this.$isBlank(this.inputQuery.entrustInv)) {
this.$message.error("请输入委托验收人!");
this.$message.error("请输入接受委托人!");
return;
}
insertEntrustRece(this.inputQuery)

@ -23,6 +23,30 @@
</div>
</el-col>
<el-col :span="10" class="el-col">
<div class="text item">
<div class="itemTag">
<span>当前分库:&nbsp;</span>
</div>
<el-select v-model="inputQuery.invWarehouseCode" placeholder="当前分库"
@change="subInvChange"
clearable>
<el-option
v-for="item in subInvList"
:key="item.code"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<div class="text item">
<div class="itemTag">
@ -40,7 +64,14 @@
</div>
</el-col>
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.finishRece">
</el-checkbox>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<div class="text item">
@ -61,18 +92,22 @@
</div>
</el-col>
<el-col :span="10" class="el-col">
<div class="text item">
<div class="itemTag">
<span>接受委托:&nbsp;</span>
<span>接受委托分库:&nbsp;</span>
</div>
<el-select v-model="inputQuery.entrustUser" placeholder="接受委托人" clearable>
<el-select v-model="inputQuery.entrustSubInv" placeholder="接受委托分库"
@change="entrustSubInvChange"
clearable>
<el-option
v-for="item in entrustUserArray"
:key="item.userid"
:label="item.employeeName"
:value="item.userid">
<span style="float: left">{{ item.employeeName }}</span>
v-for="item in entrustSubInvList"
:key="item.code"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
@ -101,12 +136,26 @@
</el-select>
</div>
</el-col>
<el-col :span="4" class="el-col">
<el-col :span="10" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.finishRece">
</el-checkbox>
<div class="itemTag">
<span>接受委托人:&nbsp;</span>
</div>
<el-select v-model="inputQuery.entrustUser" placeholder="接受委托人" clearable>
<el-option
v-for="item in entrustUserArray"
:key="item.userid"
:label="item.employeeName"
:value="item.userid">
<span style="float: left">{{ item.employeeName }}</span>
</el-option>
</el-select>
</div>
</el-col>
</el-row>
</el-form>
</div>
@ -124,6 +173,7 @@ import {
import {filterAll, filterNext, warehouseBussinessTypeList, warehouseUserList} from "@/api/basic/invWarehouse";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {filterNoUseBusType} from "@/api/basic/EntrustRece";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
@ -143,6 +193,8 @@ export default {
isFilterBind: true,
},
storageList: [],
subInvList: [],
entrustSubInvList:[],
entrustStorageList: [],
orderTypeList: [],
fromSpecialOptions: [],
@ -158,10 +210,10 @@ export default {
{required: true, message: "请输入委托仓库", trigger: "blur"}
],
entrustInv: [
{required: true, message: "请输入接受委托仓库", trigger: "blur"}
{required: true, message: "请输入委托验收人仓库", trigger: "blur"}
],
entrustUser: [
{required: true, message: "请输入接受委托人", trigger: "blur"}
{required: true, message: "请输入委托验收人", trigger: "blur"}
],
},
}
@ -193,24 +245,57 @@ export default {
filterAll()
.then((response) => {
this.storageList = response.data || [];
this.findSubInvByInv();
this.getEntrustStorage();
})
.catch(() => {
});
},
findSubInvByInv() {
this.subInvList = [];
let query = {
pcode: this.inputQuery.curInv
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
this.getOrderType();
})
.catch(() => {
});
},
findEntrustSubInvByInv() {
this.entrustSubInvList = [];
let query = {
pcode: this.inputQuery.entrustInv
};
filterSubByInv(query)
.then((response) => {
this.entrustSubInvList = response.data || [];
this.entrustSubInvChange();
})
.catch(() => {
});
},
getEntrustStorage() {
this.entrustStorageList = [];
let nextQuery = {pcode: this.inputQuery.curInv};
filterNext(nextQuery)
.then((response) => {
this.entrustStorageList = response.data || [];
this.findEntrustSubInvByInv();
})
.catch(() => {
});
},
getOrderType(code) {
getOrderType() {
let query = {
locInvCode: code
locSubInvCode: this.inputQuery.invWarehouseCode
}
filterNoUseBusType(query).then((response) => {
this.busTypes = response.data || [];
@ -218,28 +303,35 @@ export default {
})
},
invChange(code) {
this.getOrderType(code);
invChange() {
this.findSubInvByInv();
this.$set(this.inputQuery, "entrustUser", "");
this.$set(this.inputQuery, "entrustInv", "");
this.getEntrustStorage();
},
entrustInvChange(code) {
subInvChange(){
this.getOrderType();
},
entrustInvChange() {
this.findEntrustSubInvByInv();
this.$forceUpdate();
},
entrustSubInvChange(){
let query = {
code: code
code: this.inputQuery.entrustSubInv,
}
// this.$set(this.inputQuery, "entrustUser","");
// this.$set(this.inputQuery, "entrustAction","");
this.$forceUpdate();
//
warehouseUserList(query).then((res) => {
this.entrustUserArray = [];
this.entrustUserArray = res.data;
if (this.inputQuery.entrustUser != null && this.inputQuery.entrustUser != '') {
this.inputQuery.entrustUser = Number(this.inputQuery.entrustUser);
}
}).catch((error) => {
this.$message.error("用户数据加载失败")
});
@ -247,11 +339,10 @@ export default {
//
warehouseBussinessTypeList(query).then((res) => {
this.entrustBusArray = res.data;
}).catch((error) => {
this.$message.error("单据类型数据加载失败")
});
},
},
@ -263,10 +354,10 @@ export default {
created() {
this.getOrderType();
this.getList();
this.getStorage();
this.getEntrustStorage();
if (this.$isNotBlank(this.inputQuery.entrustInv)) {
this.entrustInvChange(this.inputQuery.entrustInv);
}

@ -48,8 +48,6 @@
<el-button type="primary" icon="search" @click="exportInvwarehouse"
:disabled="!configParms.basicInv">导出
</el-button>
</el-button-group>
</el-form-item>
</el-form>
@ -58,11 +56,13 @@
style="width: 100%;margin-bottom: 20px;"
row-key="id"
border
default-expand-all
highlight-current-row
@row-click="loadLinkData"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
@current-change="handInvCurrentChange">
<el-table-column label width="45">
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
prop="code"
label="仓库编码"
@ -95,29 +95,22 @@
label="上级仓库"
>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="isDefault"-->
<!-- label="是否默认库存">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ enableMap[scope.row.isDefault] }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- :disabled="scope.row.pid!=0"-->
<!-- @click.native.stop="handleSubForm(node, scope.row, 'add')"-->
<!-- >添加货位-->
<!-- </el-button-->
<!-- >-->
<el-button
type="text"
size="small"
@click.native.stop="handleForm(node, scope.row, 'edit')"
:disabled="scope.row.pid!=0"
@click.native.stop="handleSubForm(scope.row, 'add')"
>添加分库
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="handleForm( scope.row, 'edit')"
>编辑
</el-button
>
@ -133,17 +126,82 @@
</el-table-column>
</el-table>
<el-table
:data="subList"
border
highlight-current-row
@current-change="handSubInvCurrentChange"
style="width: 100%;">
<el-table-column label width="45">
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="subRadioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
prop="code"
label="分库编码"
>
</el-table-column>
<el-table-column
prop="name"
label="分库名称"
>
</el-table-column>
<el-table-column
prop="parentId"
label="所属仓库"
>
</el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="addUser(scope.row)"
>添加用户
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="addBussinessType(scope.row)"
>添加单据类型
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="handleSubForm( scope.row, 'edit')"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="handleSubDel(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
</el-card>
<div>
<el-card style="width: 49%; float: left; margin-right: 0px;">
<div slot="header" class="clearfix" style="margin-bottom: 20px;">
<el-button style="float: right;" type="primary" @click="addUser()"
:disabled="currentRow.status == 0 || !configParms.basicInv">添加用户
</el-button>
</div>
<!-- <div slot="header" class="clearfix" style="margin-bottom: 20px;">-->
<!-- <el-button style="float: right;" type="primary" @click="addUser()"-->
<!-- :disabled="currentRow.status == 0 || !configParms.basicInv">添加用户-->
<!-- </el-button>-->
<!-- </div>-->
<el-table
:data="userData"
stripe
key="row.id"
style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
@ -188,14 +246,14 @@
</el-card>
<el-card style="width: 49%; float: right; margin-left: 0px;">
<div slot="header" class="clearfix" style="margin-bottom: 20px;">
<el-button style="float: right;" @click="addBussinessType()" type="primary"
:disabled="currentRow.status == 0 || !configParms.basicInv">添加单据类型
</el-button>
</div>
<!-- <div slot="header" class="clearfix" style="margin-bottom: 20px;">-->
<!-- <el-button style="float: right;" @click="addBussinessType()" type="primary"-->
<!-- :disabled="currentRow.status == 0 || !configParms.basicInv">添加单据类型-->
<!-- </el-button>-->
<!-- </div>-->
<el-table
:data="bussinessTypeData"
stripe
key="row.id"
style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
@ -258,7 +316,6 @@
</div>
</el-dialog>
<!--添加单据类型弹窗-->
<el-dialog
title="单据类型"
@ -291,7 +348,6 @@
</div>
</el-dialog>
<!--表单界面-->
<el-dialog
:title="formMap[formName]"
@ -302,14 +358,14 @@
width="60%"
top="5vh"
>
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-form-item label="本企业仓库" prop="pid">
<el-select v-model="formData.pid" placeholder="顶级" disabled>
<el-form :model="subData" ref="dataForm">
<el-form-item label="所属仓库" prop="pid">
<el-select v-model="subData.parentId" placeholder="顶级" disabled>
<el-option
v-for="item in mergeList"
:key="item.id"
:key="item.code"
:label="item.name"
:value="item.id"
:value="item.code"
>
<span style="float: left"
><span v-html="item.html"></span>{{ item.name }}</span
@ -318,45 +374,34 @@
</el-select>
</el-form-item>
<el-form-item label="货位编码" prop="title" class="query-form-item">
<el-form-item label="分库编码" prop="title" class="query-form-item">
<el-input
disabled
v-model="formData.code" style="width: 80%"
v-model="subData.code" style="width: 80%"
auto-complete="off"
></el-input>
</el-form-item>
<el-form-item label="货位名称" prop="name" class="query-form-item">
<el-form-item label="分库名称" prop="name" class="query-form-item">
<el-input
v-model="formData.name" style="width: 80%"
v-model="subData.name" style="width: 80%"
auto-complete="off"
></el-input>
</el-form-item>
<el-form-item class="query-form-item" label="仓库类型:">
<el-select v-model="formData.advanceType" placeholder="仓库类型" clearable disabled>
<el-option label="寄售" :value=true></el-option>
<el-option label="仓库" :value=false></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态:" prop="status" class="query-form-item">
<el-radio-group v-model="formData.status">
<el-radio :label="0">禁用</el-radio>
<el-radio :label="1">正常</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="formSubmit()"
@click.native="forSubSubmit()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<!-- 添加仓库弹窗-->
<el-dialog
:title="formMap[formName]"
:close-on-click-modal="false"
@ -389,7 +434,8 @@
<el-button
type="text"
size="small"
@click="intentSelect(scope.row)" :disabled="!configParms.basicInv"
:disabled="!configParms.basicInv"
@click="intentSelect(scope.row)"
>关联
</el-button
>
@ -477,45 +523,19 @@
</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">-->
<!-- <el-checkbox v-model="formData.spUse" :disabled="formData.level!='1'">使-->
<!-- </el-checkbox>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-form-item v-if="formData.pid == 0">-->
<!-- <el-row :gutter="20" class="el-row" type="flex">-->
<!-- <el-col :span="4" class="el-col">-->
<!-- <div class="text item">-->
<!-- <el-checkbox v-model="formData.advanceType"></el-checkbox>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :span="4" class="el-col">-->
<!-- <div class="text item">-->
<!-- <el-checkbox v-model="formData.isDefault"></el-checkbox>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="formSubmit()" :disabled="!configParms.basicInv"
:disabled="!configParms.basicInv"
@click.native="formSubmit()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<el-dialog title="关联仓库" :visible.sync="thrWareHouseVisible">
@ -598,6 +618,11 @@ import {
deleteWarehouseUser, deleteWarehouseBussinessType,
bindThrWarehouse, unbindThrWarehouse, getThrsysDetail
} from "../../api/basic/invWarehouse";
import {
filterSubAll, saveSubWarehouse, deleteSubWarehouse
} from "../../api/basic/invSubWarehouse";
import {filterThrList} from "@/api/thrsys/thrInvWarehouse";
import {getHospitalUserList} from "../../api/auth/authUser";
import {getJoinBussinessType} from "../../api/basic/bussinessType";
@ -619,6 +644,8 @@ const formJson = {
export default {
data() {
return {
radioCheck: null,
subRadioCheck: null,
query: {
id: null,
pid: null,
@ -630,13 +657,13 @@ export default {
},
headers: {},
mergeList: [],
subList: [],
node: null,
defaultProps: {
children: "children",
label: "name"
},
setDictor: "设为主管",
treeList: [],
fileList: [],
pCodes: [],
uploadData: {},
@ -700,44 +727,12 @@ export default {
, thirdSysFk: "thirdId",
},
configParms: {},
subData: {},
subFromName: "add",
};
},
methods: {
/*eslint-disable */
renderContent(h, {node, data, store}) {
return (
<span
style="flex: 1; display: flex; align-items: center; justify-content: space-between; font-size: 14px; padding-right: 8px;">
<span>
<span title={data.name} style="margin-left:8px">{node.label}</span>
<span style="margin-left:18px">(编码{data.code})</span>
</span>
<span>
<el-button
style="font-size: 12px;"
type="text"
on-click={() => this.handleSubForm(node, data, "add")}
>
添加货位
</el-button>
<el-button
style="font-size: 12px;"
type="text"
on-click={() => this.handleForm(node, data, "edit")}
>
编辑
</el-button>
<el-button
style="font-size: 12px;"
type="text"
on-click={() => this.handleDel(node, data)}
>
删除
</el-button>
</span>
</span>
);
},
onReset() {
this.$router.push({
path: "",
@ -757,12 +752,10 @@ export default {
.then((response) => {
this.loading = false;
this.mergeList = response.data.list || [];
this.treeList = response.data.tree_list || [];
})
.catch(() => {
this.loading = false;
this.mergeList = [];
this.treeList = [];
});
},
//
@ -829,21 +822,18 @@ export default {
this.sysList = [];
});
},
handleSubForm(node, data, formName) {
this.subFormVisible = true;
this.pidData = data || null;
formJson.pid = (data && parseInt(data.id)) || "";
this.formData = JSON.parse(JSON.stringify(formJson));
handleSubForm(data, formName) {
this.subFromName = formName;
if (formName === "edit") {
this.formData = Object.assign({}, data);
this.node = node;
this.subData = data;
} else if (formName === "add") {
this.subData.parentId = data.code;
}
this.formData.pid = !this.formData.pid ? "" : this.formData.pid;
this.formName = formName;
// if (data && data.id) {
// this.index = this.mergeList.findIndex((d) => d.id === data.id);
// }
;
this.subFormVisible = true;
},
//
formSubmit() {
this.$refs["dataForm"].validate((valid) => {
@ -877,10 +867,6 @@ export default {
}
}
} else {
// const parent = this.node.parent;
// const children = parent.data.children || parent.data;
// const index = children.findIndex((d) => d.id === data.id);
// children.splice(index, 1, data);
}
//
this.resetForm();
@ -893,6 +879,22 @@ export default {
}
});
},
//
forSubSubmit() {
saveSubWarehouse(this.subData, this.subFromName).then((response) => {
if (response.code == 20000) {
this.loadSubData(this.subData.parentId);
this.subFormVisible = false;
} else {
this.$message.error(response.message);
this.subFormVisible = false;
}
}).catch(() => {
this.subFormVisible = false;
});
},
//
handleDel(node, data) {
if (data.children && data.children.length > 0) {
@ -902,7 +904,7 @@ export default {
return false;
}
if (data.id) {
this.$confirm("确认删除该记录吗?", "提示", {
this.$confirm("确认删除该仓库吗?", "提示", {
type: "warning",
})
.then(() => {
@ -931,6 +933,36 @@ export default {
});
}
},
handleSubDel(row) {
if (row.id) {
this.$confirm("确认删除该分库吗?", "提示", {
type: "warning",
})
.then(() => {
this.deleteLoading = true;
let para = {id: row.id};
deleteSubWarehouse(para)
.then((response) => {
this.deleteLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("删除成功");
this.loadSubData(row.parentId);
})
.catch(() => {
this.deleteLoading = false;
});
})
.catch(() => {
this.$message.info("取消删除");
});
}
},
getProjectNum() {
const projectTime = new Date() //
const Year = projectTime.getFullYear() // IE.
@ -996,6 +1028,8 @@ export default {
this.getList();
}
},
init() {
axios.get("./config.json").then(res => {
//
@ -1028,12 +1062,41 @@ export default {
this.$forceUpdate()
},
handInvCurrentChange(row) {
this.radioCheck = row.id;
this.subList = [];
this.userList = null;
this.bussinessTypeList = null;
this.loadSubData(row.code);
},
handSubInvCurrentChange(row) {
this.subRadioCheck = row.id;
this.currentCode = row.code;
this.currentRow = row;
this.loadLinkData(row)
},
loadSubData(parentId) {
let subQuery = {
parentId: parentId,
}
filterSubAll(subQuery).then((res) => {
if (res.code == 20000) {
this.subList = res.data;
}
}).catch((error) => {
});
},
loadLinkData(row) {
let query = {
code: row.code
}
this.currentCode = row.code;
this.currentRow = row;
//
warehouseUserList(query).then((res) => {
this.userData = res.data;
@ -1048,9 +1111,14 @@ export default {
this.$message.error("单据类型数据加载失败")
});
},
addUser() {
addUser(row) {
this.currentCode = row.code;
this.currentRow = row;
this.loadLinkData(row);
if (this.currentCode == null || this.currentCode == '') {
this.$message.error("请先选择仓库");
this.$message.error("请先选择分库");
} else if (this.currentCode != row.code) {
this.$message.error("请先选择当前分库!")
} else {
this.userFormVisible = true;
getHospitalUserList().then((res) => {
@ -1122,9 +1190,14 @@ export default {
});
}
},
addBussinessType() {
addBussinessType(row) {
this.currentCode = row.code;
this.currentRow = row;
this.loadLinkData(row);
if (this.currentCode == null || this.currentCode == '') {
this.$message.error('请先选择仓库');
} else if (this.currentCode != row.code) {
this.$message.error("请先选择当前分库!")
} else {
this.bussinessTypeFormVisible = true;
let query = {
@ -1289,7 +1362,8 @@ export default {
.catch(() => {
});
},
},
}
,
filters: {
statusFilterType(status) {
const statusMap = {
@ -1297,24 +1371,30 @@ export default {
1: "success",
};
return statusMap[status];
},
}
,
statusFilterName(status) {
const statusMap = {
0: "禁用",
1: "正常",
};
return statusMap[status];
},
},
}
,
}
,
mounted() {
},
}
,
created() {
//
this.init();
this.getList();
this.getSyncConfig();
},
};
}
,
}
;
</script>
<style type="text/scss" lang="scss">

@ -28,7 +28,9 @@
<el-input v-model="query.corpName" placeholder="往来单位" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.locStorageCode" placeholder="请选择当前仓库" clearable="true" size="mini">
<el-select v-model="query.locStorageCode"
@change="invChange"
placeholder="请选择当前仓库" clearable="true" size="mini">
<el-option
v-for="item in storageList"
:key="item.name"
@ -38,6 +40,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px">单据日期:</span>
<el-date-picker
@ -361,6 +375,7 @@ import {inspectionStockOrderPDFFromTemplateFile, stockOrderPDFFromTemplateFile}
import store from "../../store";
import {getLocalJoinBusType, getLocalJoinByUser} from "../../api/basic/busLocalType";
import {filterAll, filterAllByUser} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
name: "stockOrder",
@ -369,7 +384,8 @@ export default {
query: {
billType: null,
corpName: null,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
billNo: "",
status: "3",
page: 1,
@ -384,6 +400,7 @@ export default {
},
isSp: store.getters.customerId,
storageList: [],
subInvList: [],
busTypes: [],
list: [],
detailList: [],
@ -484,6 +501,7 @@ export default {
}
this.getList();
this.haveDistributionVisible = true;
},
handleCurrentChange(val) {
this.query.page = val;
@ -764,13 +782,26 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.query.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.query.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
submitUploadDetail() {
this.$refs["dataForm"].validate(valid => {
if (valid) {

@ -28,7 +28,9 @@
<el-input v-model="query.corpName" placeholder="往来单位" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.locStorageCode" placeholder="请选择当前仓库" clearable="true" size="mini">
<el-select v-model="query.locStorageCode"
@change="invChange"
placeholder="请选择当前仓库" clearable="true" size="mini">
<el-option
v-for="item in storageList"
:key="item.name"
@ -38,6 +40,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px">单据日期:</span>
<el-date-picker
@ -322,8 +336,10 @@
import {
stockOrderList, stockOrderDetail,
deleteStockOrderById, deleteStockOrderDetailById,
copyStockOrderDetail, uploadStockOrderDetail, supplementOrder,
updateStockOrderDetail, submitStockOrderToThirdSys
copyStockOrderDetail, submitStockOrder,
uploadStockOrderDetail, uploadStockOrderDetailCount,
generateStockOrderQRCodeText, supplementOrder,
updateStockOrderDetail
} from "../../api/inout/stockOrder";
import stockOrderDistribution from "./stockOrderDistribution";
import stockOrderQRCodeDetail from "./stockOrderQRCodeDetail";
@ -335,6 +351,7 @@ import store from "../../store";
import {getLocalJoinBusType, getLocalJoinByUser} from "../../api/basic/busLocalType";
import {filterAll, filterAllByUser} from "@/api/basic/invWarehouse";
import StockOrderEdit from "@/views/business/stockOrderEdit";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
name: "stockOrderDelSearch",
@ -343,7 +360,8 @@ export default {
query: {
billType: null,
corpName: null,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
startTime: "",
endTime: "",
billNo: "",
@ -374,6 +392,7 @@ export default {
total: 0,
detailTotal: 0,
storageList: [],
subInvList: [],
loading: false,
detailLoading: false,
idQuery: {
@ -483,6 +502,7 @@ export default {
},
handleEdit(index, row) {
this.currentCheckIndex = index;
console.log(this.currentCheckIndex)
},
handleSave(index, row) {
this.currentCheckIndex = -1;
@ -831,13 +851,26 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.query.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.query.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
supplementOrder(row) {
this.$confirm('是否确认补单?', '提示', {
confirmButtonText: '确定',
@ -860,46 +893,6 @@ export default {
message: '取消补单'
});
});
},
submitOrder(row) {
if (row.exportStatus == 1) {
this.$confirm("单据已经提交,是否重复提交?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
center: true
}).then(() => {
let params = {id: row.id};
submitStockOrderToThirdSys(params).then((res) => {
this.$message({
type: "success",
message: "提交成功!"
})
}).catch((error) => {
this.$message.error("提交失败");
});
}).catch(() => {
this.$message({
type: "info",
message: "已取消"
})
})
} else {
let params = {id: row.id};
submitStockOrderToThirdSys(params).then((res) => {
if (res.code == 20000) {
this.$message({
type: "success",
message: "提交成功!"
});
this.getList();
} else {
this.$message.error("提交失败");
}
}).catch((error) => {
this.$message.error("提交失败");
});
}
}
},
components: {

@ -27,7 +27,9 @@
<el-input v-model="query.corpName" placeholder="往来单位" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.locStorageCode" placeholder="请选择当前仓库" clearable="true" size="mini">
<el-select v-model="query.locStorageCode"
@change="invChange"
placeholder="请选择当前仓库" clearable="true" size="mini">
<el-option
v-for="item in storageList"
:key="item.name"
@ -37,6 +39,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px">单据日期:</span>
<el-date-picker
@ -359,7 +373,6 @@
<el-col :span="7">
<el-form-item prop="reCount">
<el-input v-model="detailFormData.reCount" auto-complete="off"
clearable
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
@ -390,7 +403,6 @@
<!-- :disabled="false"></el-input>-->
<el-input v-model="detailFormData.expireDate" auto-complete="off"
oninput="if(value.length>6)value=value.slice(0,6)"
clearable
type="number"
:disabled="false"></el-input>
@ -474,6 +486,7 @@ import {getLocalJoinBusType, getLocalJoinByUser} from "../../api/basic/busLocalT
import {inspectionStockOrderPDFFromTemplateFile, stockOrderPDFFromTemplateFile} from "../../api/itextpdf/itextpdf";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import {filterAll, filterAllByUser} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
name: "stockOrderEditor",
@ -482,7 +495,8 @@ export default {
query: {
billType: null,
corpName: null,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
billNo: "",
status: "2",
startTime: "",
@ -497,6 +511,7 @@ export default {
},
list: [],
storageList: [],
subInvList: [],
isSp: store.getters.customerId,
busTypes: [],
detailList: [],
@ -525,18 +540,18 @@ export default {
},
distributionVisible: false,
detailFormRules: {
// batchNo: [
// {required: true, message: "", trigger: "blur"}
// ],
// productDate: [
// {required: true, message: "", trigger: "blur"}
// ],
// expireDate: [
// {required: true, message: "", trigger: "blur"}
// ],
// sweepCount: [
// {required: true, message: "", trigger: "blur"}
// ]
batchNo: [
{required: true, message: "请输入批次号", trigger: "blur"}
],
productDate: [
{required: true, message: "请输入生产日期", trigger: "blur"}
],
expireDate: [
{required: true, message: "请输入失效日期", trigger: "blur"}
],
sweepCount: [
{required: true, message: "请输入扫码数量", trigger: "blur"}
]
},
detailFormVisible: false,
detailFormData: {},
@ -842,17 +857,18 @@ export default {
if (valid) {
this.detailLoading = true;
let tQuery = this.detailFormData;
console.log(this.detailCountMax + "---" + this.detailFormData.count + "---" + this.detailFormData.reCount)
if (this.detailCountMax) {
if (this.detailFormData.count < this.detailFormData.reCount) {
this.$message.error("实际数量不能高于订单数量");
return;
}
}
if (this.$isBlank(tQuery.batchNo)) {
if (!tQuery.allowNoBatch) {
return this.$message.error('批次号不能为空');
}
}
// if (this.$isBlank(tQuery.batchNo)) {
// if (!tQuery.allowNoBatch) {
// return this.$message.error('');
// }
// }
if (this.$isBlank(tQuery.productDate) && this.$isBlank(tQuery.expireDate)) {
return this.$message.error('生产日期与失效日期不能全部为空');
}
@ -902,12 +918,25 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.query.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.query.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
},
components: {
draggable,

@ -27,7 +27,9 @@
<el-input v-model="query.corpName" placeholder="往来单位" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.locStorageCode" placeholder="请选择当前仓库" clearable="true" size="mini">
<el-select v-model="query.locStorageCode"
placeholder="请选择当前仓库" clearable="true" size="mini"
@change="invChange">
<el-option
v-for="item in storageList"
:key="item.name"
@ -37,6 +39,20 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px">单据日期:</span>
<el-date-picker
@ -357,6 +373,17 @@
auto-complete="off" :disabled="false"></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="3">-->
<!-- <div class="ao-text">-->
<!-- <span>实际数量</span>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item prop="reCount">-->
<!-- <el-input v-model="detailFormData.reCount" auto-complete="off"-->
<!-- oninput="value=value.replace(/[^\d]/g,'')"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row :gutter="20">
<el-col :span="3">
@ -380,12 +407,23 @@
</el-col>
<el-col :span="7">
<el-form-item prop="expireDate">
<!-- <el-input v-model="detailFormData.expireDate" auto-complete="off"-->
<!-- :disabled="false"></el-input>-->
<el-input v-model="detailFormData.expireDate" auto-complete="off"
clearable
oninput="if(value.length>6)value=value.slice(0,6)"
type="number"
:disabled="false"></el-input>
<!-- <el-date-picker-->
<!-- type="date"-->
<!-- size="small" v-model="detailFormData.expireDate"-->
<!-- placeholder="请选择失效日期" style="width: 80%"-->
<!-- value-format="yyMMdd"-->
<!-- format="yyyy-MM-dd"-->
<!-- >-->
<!-- </el-date-picker>-->
</el-form-item>
</el-col>
</el-row>
@ -435,6 +473,7 @@ import draggable from "vuedraggable";
import {getLocalJoinBusType, getLocalJoinByUser} from "../../api/basic/busLocalType";
import {selectSysParamByKey} from "../../api/param/systemParamConfig";
import {filterAll, filterAllByUser} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
name: "stockOrder",
@ -443,7 +482,8 @@ export default {
query: {
billType: null,
corpName: null,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
billNo: "",
status: "1",
page: 1,
@ -464,6 +504,7 @@ export default {
detailLoading: false,
formData: {},
storageList: [],
subInvList: [],
statusMap: {
"1": "草稿",
"2": "未配货",
@ -485,6 +526,18 @@ export default {
newSpDistributionVisible: false,
isSp: store.getters.customerId,
detailFormRules: {
batchNo: [
{required: true, message: "请输入批次号", trigger: "blur"}
],
productDate: [
{required: true, message: "请输入生产日期", trigger: "blur"}
],
expireDate: [
{required: true, message: "请输入失效日期", trigger: "blur"}
],
sweepCount: [
{required: true, message: "请输入扫码数量", trigger: "blur"}
]
},
busTypes: [],
detailFormVisible: false,
@ -826,16 +879,6 @@ export default {
if (valid) {
this.detailLoading = true;
let tQuery = this.detailFormData;
if (this.$isBlank(tQuery.batchNo)) {
if (!tQuery.allowNoBatch) {
return this.$message.error('批次号不能为空');
}
}
if (this.$isBlank(tQuery.productDate) && this.$isBlank(tQuery.expireDate)) {
return this.$message.error('生产日期与失效日期不能全部为空');
}
uploadStockOrderDetail(tQuery).then((response) => {
this.detailLoading = false;
if (response.code === 20000) {
@ -876,13 +919,26 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.query.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.query.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
},
components: {
draggable,

@ -12,15 +12,6 @@
<el-form-item class="query-form-item">
<el-input v-model="query.billNo" placeholder="单据号"></el-input>
</el-form-item>
<!-- <el-form-item class="query-form-item">-->
<!-- <el-select v-model="query.status" placeholder="单据状态">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="草稿" value="1"></el-option>-->
<!-- <el-option label="未配货" value="2"></el-option>-->
<!-- <el-option label="待校验" value="3"></el-option>-->
<!-- <el-option label="已校验" value="4"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item class="query-form-item">
<el-select v-model="query.billType" placeholder="请选择业务类型" clearable="true" size="mini">
<el-option
@ -33,11 +24,13 @@
</el-select>
</el-form-item>
<el-form-item class="query-form-item" >
<el-form-item class="query-form-item">
<el-input v-model="query.corpName" placeholder="往来单位" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.locStorageCode" placeholder="请选择当前仓库" clearable="true" size="mini">
<el-select v-model="query.locStorageCode"
@change="invChange"
placeholder="请选择当前仓库" clearable="true" size="mini">
<el-option
v-for="item in storageList"
:key="item.name"
@ -47,6 +40,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px">单据日期:</span>
<el-date-picker
@ -102,20 +107,8 @@
<span>{{ getStorageName(scope.row.locStorageCode) }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="采购类型" show-overflow-tooltip>-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.type | typeFilterName }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" fixed="right" width="200">
<template slot-scope="scope">
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="qrcodeDetail(scope.row)"-->
<!-- >码详情-->
<!-- </el-button-->
<!-- >-->
<el-button
type="text"
size="small"
@ -131,6 +124,16 @@
>编辑
</el-button
>
<el-button
v-if="isReceAble"
type="text"
size="small"
@click.native="receiveFinish(scope.row)"
>完成验收
</el-button
>
</template>
</el-table-column>
</el-table>
@ -145,11 +148,6 @@
</el-card>
<el-card class="el-card">
<!-- <el-row style="margin-bottom: 20px;">-->
<!-- <el-button type="primary" @click="batchSetParams(null,'salesListNo')"></el-button>-->
<!-- <el-button type="primary" @click="batchSetParams(null, 'firstSalesInvNo')">批量设置销售发票第一票</el-button>-->
<!-- <el-button type="primary" @click="batchSetParams(null, 'secSalesInvNo')">批量设置销售发票第二票</el-button>-->
<!-- </el-row>-->
<el-table v-loading="detailLoading"
:data="detailList"
@ -458,9 +456,9 @@
import {
stockOrderList, stockOrderDetail,
deleteStockOrderById, deleteStockOrderDetailById,
copyStockOrderDetail, submitStockOrder,
uploadStockOrderDetail, uploadStockOrderDetailCount,
generateStockOrderQRCodeText, updateStockOrderDetail
copyStockOrderDetail,
uploadStockOrderDetail,
updateStockOrderDetail, updateStatus
} from "../../api/inout/stockOrder";
import stockOrderDistribution from "./stockOrderDistribution";
import stockOrderQRCodeDetail from "./stockOrderQRCodeDetail";
@ -472,6 +470,7 @@ import store from "../../store";
import {getLocalJoinBusType, getLocalJoinByUser} from "../../api/basic/busLocalType";
import {filterAll, filterAllByUser} from "@/api/basic/invWarehouse";
import StockOrderEdit from "@/views/business/stockOrderEdit";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
name: "stockOrderSearch",
@ -480,7 +479,8 @@ export default {
query: {
billType: null,
corpName: null,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
startTime: "",
endTime: "",
billNo: "",
@ -509,6 +509,7 @@ export default {
secSalesInvNoFormVisible: false,
formLabelWidth: '150px',
storageList: [],
subInvList: [],
total: 0,
detailTotal: 0,
loading: false,
@ -546,6 +547,7 @@ export default {
qrcodeDetailVisible: false,
qrcodeExportVisible: false,
actDateRange: [],
isReceAble: false,
pickerOptions: {
shortcuts: [
{
@ -889,14 +891,7 @@ export default {
},
//
handleDetailForm(index, row) {
// this.detailFormVisible = true;
// this.detailFormData = {};
// if (row !== null) {
// this.detailFormData = Object.assign({}, row);
this.stockOrderEditVisible = true;
},
hideDetailForm() {
//
@ -936,13 +931,27 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.query.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.query.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
submitUploadDetail() {
this.$refs["dataForm"].validate(valid => {
if (valid) {
@ -967,7 +976,24 @@ export default {
});
}
});
}
},
receiveFinish(row) {
let query = {
stockOrderId: row.billNo,
};
updateStatus(query)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message.success("验收成功!");
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
}
,
components: {
@ -1008,6 +1034,8 @@ export default {
}
,
created() {
this.isReceAble = true;
this.getStorage();
this.getBusType();
let end = new Date();

File diff suppressed because it is too large Load Diff

@ -33,7 +33,6 @@
></sidebar-item>
</el-menu>
</el-scrollbar>
<el-container
class="container-box"
v-bind:class="{ 'slide-hide': isCollapse, 'slide-in-left': menuShow }"
@ -82,23 +81,15 @@
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="header-right">
<span style="margin-right: 10px; margin-top: 2px">{{ employName }}</span>
<el-dropdown trigger="click">
<!--<i class="el-icon-setting" style="margin-right: 15px"></i>-->
<span
>{{ username }}<i class="el-icon-arrow-down el-icon--right"></i
></span>
<span>{{ username }}<i class="el-icon-arrow-down el-icon--right"></i></span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
><span @click="handlePassword"></span></el-dropdown-item
>
<el-dropdown-item
><span @click="loginOut">退</span></el-dropdown-item
>
<el-dropdown-item><span @click="changeInv"></span></el-dropdown-item>
<el-dropdown-item><span @click="handlePassword"></span></el-dropdown-item>
<el-dropdown-item><span @click="loginOut">退</span></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@ -168,7 +159,95 @@
<router-view></router-view>
</transition>
</el-main>
<!-- <div-->
<!-- style="-->
<!-- position: absolute;-->
<!-- bottom: 0;-->
<!-- left: 50%;-->
<!-- transform: translate(-50%, -50%);-->
<!-- "-->
<!-- >-->
<!-- <a-->
<!-- href="http://www.beian.gov.cn/portal/registerSystemInfo"-->
<!-- style="color: #000000; font-size: 12px"-->
<!-- >-->
<!-- 技术支持厦门高立新鹏软件科技有限公司&nbsp; &nbsp;闽公网安备35020302034269号&nbsp;-->
<!-- </a>-->
<!-- <a-->
<!-- href="http://beian.miit.gov.cn"-->
<!-- style="color: #000000; font-size: 10px"-->
<!-- >闽ICP备17019234号</a-->
<!-- >-->
<!-- </div>-->
</el-container>
<el-dialog
title="请选择当前仓库和分仓"
:visible.sync="selInvVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="40%"
v-if="selInvVisible"
>
<el-form :model="userInfo">
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>当前仓库</span>
</div>
</el-col>
<el-col :span="16">
<el-form-item prop="locStorageCode">
<el-select v-model="userInfo.locInvCode" placeholder="当前仓库信息" clearable
@change="locCHange"
>
<el-option
v-for="item in storageList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>当前分库</span>
</div>
</el-col>
<el-col :span="16">
<el-form-item prop="locInvCode">
<el-select v-model="userInfo.locSubInvCode" placeholder="当前分库信息" clearable
>
<el-option
v-for="item in subInvList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div style="margin-top: 8px ; color: #F71616;">
<span>提示进入系统必须选择您当前所在仓库与分库&nbsp;</span>
</div>
<div style='text-align: center; margin-bottom: 10px;margin-top: 18px ;'>
<el-button type="primary" @click="submitInv"></el-button>
<el-button type="primary" @click="closeDialog"></el-button>
</div>
</el-form>
</el-dialog>
</el-container>
</template>
@ -176,11 +255,16 @@
<script>
import {mapGetters} from "vuex";
import SidebarItem from "./SidebarItem.vue";
import {password} from "../../api/auth/login";
import {password, userInfo} from "../../api/auth/login";
import {getAdminId} from "../../utils/auth";
import {getCompany} from "../../api/inout/company";
import {socket} from '../../socket'
import store from "../../store/index";
import {filterAllByUser} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
import {updateInv} from "@/api/auth/authAdmin";
import {RECEIVE_LOCINVCODE} from "@/store/mutation-types";
import * as types from "../../store/mutation-types";
export default {
data() {
@ -204,10 +288,13 @@ export default {
}
};
return {
tagsList: [],
collapse: false,
menuShow: false,
levelList: null,
passwordLoading: false,
passwordFormVisible: false,
company: "",
passwordFormData: {
oldPassword: "",
newPassword: "",
@ -240,6 +327,12 @@ export default {
{validator: validatePass2, trigger: "blur"},
],
},
userInfo: {},
storageList: [],
subInvList: [],
selInvVisible: false,
locInvName: "",
locSubInvName: "",
};
},
components: {
@ -255,7 +348,7 @@ export default {
username() {
let username = this.$store.state.admin.userName;
let rUserName = !username ? this.name : username;
return "(" + username + ")";
return username + "" + this.locInvName + " " + this.locSubInvName + "";
},
isCollapse() {
return false;
@ -302,12 +395,79 @@ export default {
});
})
.catch(() => {
this.$message({
type: "error",
message: "操作失败",
});
// this.$message({
// type: "error",
// message: "",
// });
});
},
getStorage() {
this.storageList = [];
filterAllByUser()
.then((response) => {
this.storageList = response.data || [];
this.findSubInvByInv();
})
.catch(() => {
});
},
locCHange() {
this.findSubInvByInv();
},
findSubInvByInv() {
this.subInvList = [];
let query = {
pcode: this.userInfo.locInvCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
getUserInfo() {
userInfo()
.then((response) => {
if (response.code == 20000) {
this.userInfo = response.data;
if (this.$isBlank(this.userInfo.locInvCode)) {
this.selInvVisible = true;
} else {
this.$store.commit(types.RECEIVE_LOCINVCODE, this.userInfo.locInvCode);
this.$store.commit(types.RECEIVE_LOCSUBINVCODE, this.userInfo.locSubInvCode);
this.subInvList.forEach(
item => {
if (item.code == this.userInfo.locSubInvCode) {
this.locSubInvName = item.name;
}
}
);
this.storageList.forEach(
item => {
if (item.code == this.userInfo.locInvCode) {
this.locInvName = item.name;
}
}
);
this.getStorage();
}
}
})
.catch(() => {
this.customerId = "";
});
},
//
handlePassword() {
this.passwordFormVisible = true;
@ -317,6 +477,28 @@ export default {
check_new_password: "",
};
},
submitInv() {
updateInv(this.userInfo).then((res) => {
if (res.code == 20000) {
this.$message.success("设置成功!");
this.selInvVisible = false;
this.getUserInfo();
} else {
this.$message.error(res.message);
}
}).catch(() => {
this.selInvVisible = false;
});
},
closeDialog() {
this.selInvVisible = false;
},
addSubmit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
@ -353,10 +535,16 @@ export default {
}
});
},
changeInv(){
this.selInvVisible = true;
},
},
created() {
this.getBreadcrumb();
this.getCompanyData();
this.getStorage();
this.findSubInvByInv();
this.getUserInfo();
socket.init(this)
},
watch: {
@ -364,15 +552,9 @@ export default {
this.getBreadcrumb();
},
},
/**
* .el-table .cell {
white-space: pre-wrap;
}
*/
};
</script>
<style type="text/scss" lang="scss">
@import "../../styles/mixin";

@ -84,7 +84,6 @@
<el-option
v-for="item in storageList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
@ -153,6 +152,21 @@
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.code }}</span>
</el-option>
</el-select>
<el-select v-model="formData.fromSubInvCode" placeholder="请选择分库" clearable="true"
:disabled="corpOrderIdDisabled">
<el-option
v-for="item in fromSubStorageOptions"
:key="item.code"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.code }}</span>
<!--<span style="float: right; color: #8492a6; font-size: 13px">{{ item.action }}</span>-->
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item" prop="fromCorp"
v-if="curAction.corpType ==2 && curAction.genUnit">
@ -164,7 +178,26 @@
</el-form-item>
</el-col>
<el-col :span="2">
<div class="ao-text">
<span>当前分库</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="invWarehouseCode">
<el-select v-model="formData.invWarehouseCode" placeholder="当前分库信息"
:disabled="corpOrderIdDisabled">
<el-option
v-for="item in subInvList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -177,7 +210,7 @@
<el-checkbox v-model="formData.preCheck"
:disabled="corpOrderIdDisabled || curAction.corpType !=2"
>是否必须采集预验收产品
>出入库必须校验预验收库
</el-checkbox>
<el-checkbox v-model="formData.vailInv"
:disabled="corpOrderIdDisabled"
@ -191,7 +224,6 @@
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 12px">
<el-col :span="2">
<div class="ao-text">
@ -361,7 +393,6 @@
editTye="2"
:closeCodeDialog="closeCodeDialog"
:codeDetail="codeDetail">
</editCodeDialog>
</el-dialog>
@ -377,6 +408,8 @@
editTye="1">
</editCodeDialog>
</el-dialog>
</div>
@ -387,6 +420,7 @@ import {
errorCodeList, addOrderWeb, deleteCodesTempById, submitOrderWeb, saveOrderWeb,
updateCodeBindSup, enterCodeWeb
} from "../../api/inout/order";
import {filterSubByInv} from "../../api/basic/invSubWarehouse";
import draggable from "vuedraggable";
import {parseTime} from "../../filtres/index";
import {getBasicUnitMaintains} from "../../api/basic/basicUnitMaintain"
@ -396,6 +430,7 @@ import DialogSelectUnit from "./DialogSelectUnit";
import selectRlDialog from "./DialogSelectRl";
import editCodeDialog from "./editCode";
import A from "../../plugin/KeyScaner"
import {deleteLog} from "@/api/basic/udiinfolog";
export default {
@ -441,11 +476,15 @@ export default {
produceDate: null,
expireDate: null,
serialNo: null,
invWarehouseCode: null,
subInvCode: null,
fromSubInvCode: null,
},
editOriginCodeVisible: false,
curId: null,
storageList: [],
subInvList: [],
formRules: {
temp: [
{required: true, message: "请输入条码", trigger: "blur"}
@ -464,6 +503,7 @@ export default {
orderNo: null,
fromOptions: [],
fromStorageOptions: [],
fromSubStorageOptions: [],
curAction: {
corpType: 0,
genUnit: false,
@ -475,9 +515,9 @@ export default {
selectRlTitle: "绑定产品",
selectUnitTitle: "绑定供应商",
sictomText: "",
codeDetail: null,
originCode: "",
checkSuccess: false,
codeDetail: null,
editTitle: "编辑条码",
};
},
@ -495,6 +535,8 @@ export default {
let tQuery = {
orderId: this.idQuery.id,
locStorageCode: this.formData.locStorageCode,
invWarehouseCode: this.formData.invWarehouseCode,
fromSubInvCode: this.formData.fromSubInvCode,
action: this.formData.action,
fromCorp: this.formData.fromCorp,
fromCorpId: this.formData.fromCorpId,
@ -553,6 +595,7 @@ export default {
}
},
enterKey(event) {
console.log("开始回车");
this.checkSuccess = true;
let tQuery = {
originCode: this.originCode,
@ -742,6 +785,7 @@ export default {
console.log(row);
this.formData.fromCorpId = row.code;
this.formData.fromCorp = row.name;
this.findSubStorageMethod();
},
deleteCode(index, row) {
@ -832,6 +876,7 @@ export default {
locCHange() {
this.findStorageMethod();
this.findSubInvByInv(this.formData.locStorageCode);
},
findMethod(query) {
console.log(query);
@ -871,7 +916,7 @@ export default {
});
},
findStorageMethod(query) {
findStorageMethod() {
if (this.formData.locStorageCode == null)
return;
this.fromStorageOptions = [];
@ -885,6 +930,35 @@ export default {
.catch(() => {
});
},
findSubStorageMethod() {
let cQuery = {
pcode: this.formData.fromCorpId,
filter:2,
};
filterSubByInv(cQuery)
.then((response) => {
this.fromSubStorageOptions = response.data || [];
})
.catch(() => {
});
},
findSubInvByInv(invCode) {
this.subInvList = [];
let query = {
pcode: invCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
getStorage(event) {
this.storageList = [];
filterAllByUser()
@ -919,6 +993,11 @@ export default {
this.$set(this.formData, "outChangeEnable", this.curAction.ullageFill);
this.$set(this.formData, "codeFillCheck", this.curAction.codeFillCheck);
// this.formData.vailIn = this.curAction.vailInv;
// this.formData.preCheck = this.curAction.scanPreIn;
// this.formData.outChangeEnable = this.curAction.ullageFill;
// this.formData.codeFillCheck = this.curAction.codeFillCheck;
},
//
@ -1019,7 +1098,12 @@ export default {
that.sictomText = that.sictomText + str;
that.formData.code = that.sictomText;
} else {
that.formData.code = text;
console.log(" that.formData.code = " + that.formData.code);
// setTimeout(function(){ that.formData.code = text; }, 3000);
}
};
inputer.focus();
@ -1031,6 +1115,7 @@ export default {
this.codeArray = [];
this.getBusType();
this.getStorage(this.formData.action);
this.findSubInvByInv();
if (this.$isNotBlank(this.idQuery.id)) {
this.formData.actDate = new Date(this.idQuery.actDate);
this.formData.corpOrderId = this.idQuery.corpOrderId;
@ -1039,10 +1124,13 @@ export default {
this.formData.fromCorp = this.idQuery.fromCorp;
this.formData.fromCorpId = this.idQuery.fromCorpId;
this.formData.locStorageCode = this.idQuery.locStorageCode;
this.formData.invWarehouseCode = this.idQuery.invWarehouseCode;
this.formData.fromSubInvCode = this.idQuery.fromSubInvCode;
this.formData.outChangeEnable = this.idQuery.outChangeEnable;
this.formData.preCheck = this.idQuery.preCheck;
this.actionEnable = true;
this.getCodeList();
this.findSubStorageMethod();
} else {
this.corpOrderIdDisabled = false;
if (JSON.stringify(this.$route.query) === '{}') {

@ -11,7 +11,6 @@
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.id" placeholder="单号"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select
v-model="filterQuery.mainAction"
@ -36,6 +35,7 @@
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.locStorageCode" placeholder="请选择当前仓库" clearable="true"
@change="invChange"
size="mini">
<el-option
v-for="item in storageList"
@ -47,6 +47,19 @@
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>创建日期:</span
>
@ -66,6 +79,7 @@
<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 type="primary" icon="search" @click="mergesOrders"></el-button>-->
</el-button-group>
</el-form-item>
</el-row>
@ -90,6 +104,11 @@
prop="id"
show-overflow-tooltip="true"
></el-table-column>
<!-- <el-table-column
label="来源订单号"
prop="corpOrderId"
:show-overflow-tooltip="true"
></el-table-column> -->
<el-table-column label="来源" prop="fromType">
<template slot-scope="scope">
<span>{{ fromTypeMap[scope.row.fromType] }}</span>
@ -97,7 +116,6 @@
</el-table-column>
<el-table-column label="往来单位" prop="fromCorp" width="250">
</el-table-column>
<el-table-column label="当前仓库" prop="locStorageCode" width="150">
<template slot-scope="scope">
@ -130,6 +148,27 @@
</el-tag>
</template>
</el-table-column>
<!--<el-table-column label="操作" width="150">-->
<!--<template slot-scope="scope">-->
<!--<el-button-->
<!--type="text"-->
<!--size="small"-->
<!--:disabled="scope.row.contrastStatus === null"-->
<!--@click.native.stop="repeatCheckClick(scope.row)"-->
<!--&gt;重新校验-->
<!--</el-button-->
<!--&gt;-->
<!--<el-button-->
<!--type="text"-->
<!--size="small"-->
<!--:disabled="scope.row.contrastStatus !== 0"-->
<!--@click.native.stop="handleErrorDetail(scope.$index)"-->
<!--&gt;校验信息-->
<!--</el-button-->
<!--&gt;-->
<!--</template>-->
<!--</el-table-column>-->
<!-- <el-table-column label="上传状态" prop="exportStatus"></el-table-column> -->
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<el-button
@ -167,6 +206,23 @@
>详情
</el-button
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="successOrderExportPDFSetting(scope.row)"-->
<!-- >导出PDF-->
<!-- </el-button-->
<!-- >-->
<!--<el-button-->
<!--type="text"-->
<!--size="small"-->
<!--@click.native.stop="successOrderExportPDF(scope.row)"-->
<!--&gt;打印-->
<!--</el-button-->
<!--&gt;-->
<el-button
type="text"
size="small"
@ -193,6 +249,7 @@
</el-table>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
@ -418,12 +475,16 @@ import {updateBindSup} from "../../api/inout/order"
import {repeatCheck, repeatPrintCheck} from "../../api/inout/erpOrder";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import draggable from "vuedraggable";
import {saveAs} from "file-saver";
import codeDetail from "./IOFinishCode";
import store from "../../store";
import {downloadInoutOrderSuccessPDF} from "../../api/itextpdf/itextpdf";
import selectErpOrder from "./DialogSelectErpOrder";
import selectRlDialog from "./DialogSelectRl";
import {getBussinessType} from "../../api/basic/bussinessType";
import {filterAllByUser} from "@/api/basic/invWarehouse";
import {getLocalJoinByUser} from "@/api/basic/busLocalType";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
const formJson = {
site_id: "",
@ -493,6 +554,8 @@ export default {
status: null,
startTime: "",
endTime: "",
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
},
detailQuery: {
orderId: "",
@ -505,6 +568,7 @@ export default {
},
curUnitRow: null,
storageList: [],
subInvList: [],
curIndex: "",
adListNoDataText: "无数据",
queryAdIdAsyncLoading: false,
@ -831,7 +895,9 @@ export default {
this.codeDetailVisible = true;
this.idQuery.id = row.id;
},
closeDialog() {
this.successOrderExportPDFSettingVisible = false;
this.getList();
},
@ -946,7 +1012,7 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.filterQuery.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
@ -1021,6 +1087,18 @@ export default {
this.billAction = row.action;
this.addDialogVisible = true;
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.filterQuery.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
},
filters: {
statusFilterType(status) {

@ -35,6 +35,7 @@
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.locStorageCode" placeholder="请选择当前仓库" clearable="true"
@change="invChange"
size="mini">
<el-option
v-for="item in storageList"
@ -46,6 +47,18 @@
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>创建日期:</span
>
@ -328,6 +341,7 @@ import selectErpOrder from "./DialogSelectErpOrder";
import {getBussinessType} from "../../api/basic/bussinessType";
import {filterAllByUser} from "@/api/basic/invWarehouse";
import {getLocalJoinByUser} from "@/api/basic/busLocalType";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
const formJson = {
site_id: "",
@ -368,7 +382,7 @@ export default {
unitlist: [],
list: [],
billAction: null,
curLocInv:null,
curLocInv: null,
detailList: [],
unitUpdateQuery: {
id: "",
@ -388,6 +402,8 @@ export default {
status: 2,
startTime: "",
endTime: "",
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
},
detailQuery: {
orderId: "",
@ -431,6 +447,7 @@ export default {
},
busTypes: [],
storageList: [],
subInvList: [],
multipleSelection: [],
dialogTableVisible: false,
formLoading: false,
@ -806,13 +823,25 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.filterQuery.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.filterQuery.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
},
filters: {
statusFilterType(status) {
@ -841,20 +870,6 @@ export default {
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
// let d = new Date
// let year1,month1,day1;
// [year1,month1,day1] = [d.getFullYear(),d.getMonth(),d.getDate()]
// let date1 = new Date(year1, month1, day1,7)
// this.actDateRange.push(date1)
// //
// let year2,month2,day2
// d.setTime(d.getTime()-7*24*60*60*1000);
// [year2,month2,day2] = [d.getFullYear(),d.getMonth(),d.getDate()]
// let date2 = new Date(year2,month2,day2,7)
// this.actDateRange.unshift(date2)
},
};
</script>

@ -26,6 +26,7 @@
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.locStorageCode" placeholder="请选择当前仓库" clearable="true"
@change="invChange"
size="mini">
<el-option
v-for="item in storageList"
@ -36,6 +37,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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>
<el-button-group>
<el-button
@ -69,8 +82,6 @@
</el-table-column>
<el-table-column label="往来单位" prop="fromCorp" width="220">
<template slot-scope="scope">
<!-- {{ scope.row.fromCorp }}-->
<p v-if="scope.row.fromCorp == null">
<el-button
type="primary"
@ -240,6 +251,8 @@
v-on:closeDetailDialog="closeDetailDialog"
></codeDetail>
</el-dialog>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
@ -265,9 +278,11 @@ import codeDetail from "./errorCode";
import dialogSelectInvStorage from "./DialogSelectInvStorage";
import addOrder from "./IOAddOrder";
import store from "../../store";
import {getBussinessType} from "../../api/basic/bussinessType";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {getLocalJoinByUser} from "@/api/basic/busLocalType";
import {filterAllByUser} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
const formJson = {
site_id: "",
@ -285,7 +300,8 @@ export default {
action: null,
page: 1,
limit: 20,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
},
checkStatus: {
'-1': "等待提交",
@ -317,6 +333,7 @@ export default {
"8": "平衡补录单据",
},
storageList: [],
subInvList: [],
list: [],
adId: [],
adSelectList: [],
@ -544,13 +561,25 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.filterQuery.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.filterQuery.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
},
filters: {
statusFilterType(status) {

@ -36,6 +36,7 @@
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.locStorageCode" placeholder="请选择当前仓库" clearable="true"
@change="invChange"
size="mini">
<el-option
v-for="item in storageList"
@ -47,6 +48,18 @@
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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">
<span style="color: #000; margin-left: 10px; margin-right: 6px;font-size: small"
>创建日期:</span
>
@ -91,11 +104,6 @@
prop="id"
show-overflow-tooltip="true"
></el-table-column>
<!-- <el-table-column
label="来源订单号"
prop="corpOrderId"
:show-overflow-tooltip="true"
></el-table-column> -->
<el-table-column label="来源" prop="fromType">
<template slot-scope="scope">
@ -105,7 +113,6 @@
</el-table-column>
<el-table-column label="往来单位" prop="fromCorp" width="250">
</el-table-column>
<el-table-column label="当前仓库" prop="locStorageCode" width="150">
<template slot-scope="scope">
@ -396,6 +403,7 @@ import {getBussinessType} from "../../api/basic/bussinessType";
import {formatDate} from "../../utils/date";
import {filterAllByUser} from "@/api/basic/invWarehouse";
import {getLocalJoinByUser} from "@/api/basic/busLocalType";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
const formJson = {
site_id: "",
@ -446,6 +454,7 @@ export default {
list: [],
detailList: [],
storageList: [],
subInvList: [],
unitUpdateQuery: {
id: "",
fromCorpId: "",
@ -453,7 +462,6 @@ export default {
},
actDateRange: [],
filterQuery: {
locStorageCode: null,
id: "",
mainAction: null,
action: null,
@ -465,6 +473,8 @@ export default {
status: null,
startTime: "",
endTime: "",
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
},
detailQuery: {
orderId: "",
@ -593,6 +603,7 @@ export default {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.filterQuery.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
@ -779,11 +790,6 @@ export default {
});
},
intentDetail(row) {
// this.$router.push({
// path: "../inout/detail",
// query: { id: row.id },
// });
this.codeDetailVisible = true;
this.idQuery.id = row.id;
},
@ -881,6 +887,18 @@ export default {
}
}
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.filterQuery.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
}
,
filters: {

@ -3,73 +3,76 @@
<el-card class="el-card">
<el-form :inline="true" :model="filterQuery" class="query-form" size="mini">
<el-row>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.id" placeholder="单号"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.mainAction" placeholder="出入库类型">
<el-option label="全部" value=""></el-option>
<el-option label="入库" value="WareHouseIn"></el-option>
<el-option label="出库" value="WareHouseOut"></el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.action" placeholder="请选择扫码单据类型">
<el-option
v-for="item in busTypes"
:key="item.name"
:label="item.name"
:value="item.action">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.locStorageCode" placeholder="请选择当前仓库" clearable="true"
size="mini">
<el-option
v-for="item in storageList"
: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>
<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-form-item style="margin-right: 50px; margin-left: auto">
<el-button-group>
<el-button type="primary" icon="search" @click="mergesOrders"></el-button>
<el-button type="primary" icon="search" @click="addOrders"></el-button>
<el-button type="primary" icon="search" @click="errOrders"></el-button>
<el-col>
<el-form-item class="query-form-item">
<el-input v-model="filterQuery.id" placeholder="单号"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.mainAction" placeholder="出入库类型">
<el-option label="全部" value=""></el-option>
<el-option label="入库" value="WareHouseIn"></el-option>
<el-option label="出库" value="WareHouseOut"></el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.action" placeholder="请选择扫码单据类型">
<el-option
v-for="item in busTypes"
:key="item.name"
:label="item.name"
:value="item.action">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.locStorageCode" placeholder="请选择当前仓库" clearable="true"
size="mini">
<el-option
v-for="item in storageList"
: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">
<el-select v-model="filterQuery.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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>
<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-form-item style="margin-right: 50px; margin-left: auto">
<el-button-group>
<el-button type="primary" icon="search" @click="mergesOrders"></el-button>
<el-button type="primary" icon="search" @click="addOrders"></el-button>
<el-button type="primary" icon="search" @click="errOrders"></el-button>
</el-button-group>
</el-form-item>
<!-- <el-form-item>-->
<!-- <el-upload-->
<!-- :action="uploadFileUrl"-->
<!-- multiple-->
<!-- :limit="3"-->
<!-- :data="uploadData"-->
<!-- :show-file-list="false"-->
<!-- :on-success="handleChange"-->
<!-- :file-list="fileList"-->
<!-- >-->
<!-- <el-button size="mini" type="primary">导入单据</el-button>-->
<!-- </el-upload>-->
<!-- </el-form-item>-->
</el-button-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
@ -310,6 +313,7 @@ import store from "../../store";
import {getBussinessType} from "../../api/basic/bussinessType";
import {filterAllByUser} from "@/api/basic/invWarehouse";
import {getLocalJoinByUser} from "@/api/basic/busLocalType";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
const formJson = {
site_id: "",
@ -328,7 +332,8 @@ export default {
page: 1,
status: 10,
limit: 10,
locStorageCode: null,
locStorageCode: this.$store.getters.locInvCode,
invWarehouseCode: this.$store.getters.locSubInvCode,
},
checkStatus: {
'-1': "草稿",
@ -352,6 +357,7 @@ export default {
},
uploadData: {},
storageList: [],
subInvList: [],
errOrderVisible: false,
list: [],
adId: [],
@ -456,6 +462,7 @@ export default {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.filterQuery.locStorageCode = this.storageList[0].code;
this.invChange();
this.getList();
}
})
@ -656,6 +663,18 @@ export default {
this.codeDetailVisible = true;
this.idQuery.id = row.id;
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.filterQuery.locStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
init() {
axios.get("./config.json").then(res => {
//

@ -50,6 +50,7 @@
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.invStorageCode" placeholder="请选择当前仓库" clearable="true"
@change="invChange"
size="mini">
<el-option
v-for="item in storageList"
@ -60,6 +61,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.invWarehouseCode" placeholder="请选择当前分库" clearable="true"
size="mini">
<el-option
v-for="item in subInvList"
: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>
<el-button-group>
<el-button
@ -93,12 +106,14 @@
{{ (scope.row.inCount - scope.row.outCount) }}
</template>
</el-table-column>
<el-table-column label="生产厂家" prop="ylqxzcrbarmc" show-overflow-tooltip
<el-table-column label="生产厂家" prop="ylqxzcrbarmc" v-if="showSup" show-overflow-tooltip
width="120"></el-table-column>
<el-table-column label="供应商" prop="companyName" show-overflow-tooltip
<el-table-column label="供应商" prop="companyName" v-if="showSup" show-overflow-tooltip
width="120"></el-table-column>
<el-table-column label="仓库" prop="invStorageName"
<el-table-column label="仓库" prop="invStorageName" v-if="showSup"
show-overflow-tooltip width="120"></el-table-column>
<el-table-column label="分库" prop="invSubStorageName" v-if="showSup"
show-overflow-tooltip width="120"></el-table-column>
<el-table-column label="操作" width="120" fixed="right">
<template slot-scope="scope">
@ -154,6 +169,7 @@ import store from "../../store";
import {getBussinessType} from "../../api/basic/bussinessType";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {filterAllByUser, filterUplLocInv} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
@ -179,6 +195,7 @@ export default {
},
list: [],
storageList: [],
subInvList: [],
codeDetailVisible: false,
total: 0,
loading: true,
@ -318,6 +335,20 @@ export default {
.catch(() => {
});
},
invChange() {
this.subInvList = [];
let query = {
pcode: this.filterQuery.invStorageCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
intentDetail(row) {
this.idQuery = row;

Loading…
Cancel
Save