Compare commits

...

86 Commits
prod ... master

Author SHA1 Message Date
anthonywj 4da4cc0ed4 合并代码备份 2 years ago
schry e0d1fd6925 单据备注添加 2 years ago
1178634255 967fe4cf5e Merge remote-tracking branch 'origin/master' 2 years ago
1178634255 34b60e8c58 编辑发票信息关闭后变成暂无数据 2 years ago
schry c2beaf4df2 进入“往来单位信息维护”,默认显示 供应商信息 ,选择“全部”查询也是显示供应商类型的往来单位信息 2 years ago
schry a943125672 Merge remote-tracking branch 'origin/master' 2 years ago
schry 5b3f089402 密码修改优化 2 years ago
1178634255 210793bcb7 单据新增备注字段 2 years ago
schry 16cb7c7dae 部门,仓库排版调整 2 years ago
schry efb6b0055d 盘点单驳回后提示框有问题 2 years ago
1178634255 aab4e5701f 代码备份 2 years ago
1178634255 037695dfc0 代码备份 2 years ago
1178634255 d6a57e79ca Merge remote-tracking branch 'origin/master' 2 years ago
1178634255 04cc06340c 代码备份 2 years ago
schry 193ab67756 页面优化 2 years ago
schry ca96a3f746 Merge remote-tracking branch 'origin/master' 2 years ago
schry c11f8e4b3a 导出产品信息窗口执行‘结果全部导出’操作,导出的文件数据为空 2 years ago
1178634255 0474f4323b 供应商发票信息中的预览界面无法手动关闭 2 years ago
1178634255 ca7d0b41b2 代码备份 2 years ago
1178634255 fc6e17a699 新增扫码单模块到待校验单据模块,备注会消失 2 years ago
schry 4904f8109e 新增使用出库审核拒绝后,不会显示‘拒绝’状态 2 years ago
schry 4d0902c7c2 选入预验收库单窗口点击重置按钮,’创建时间‘信息没有联动清除 2 years ago
schry 880500b80c Merge remote-tracking branch 'origin/master' 2 years ago
schry d92920ecf1 自动补单时间间隔不应为负数 230522 2 years ago
1178634255 15d9403e3f 编辑单据页面:往来信息显示错误 2 years ago
wangwei 97de905cc9 报告预览bug 2 years ago
wangwei 3831410f89 报告 支持pdf 2 years ago
anthonywj c4d96e8115 Merge remote-tracking branch 'origin/master' 2 years ago
anthonywj f3a8cf2334 备份 2 years ago
schry b4cf299f8c Merge remote-tracking branch 'origin/master' 2 years ago
schry 48641e24e2 菜单修改 2 years ago
anthonywj 5c24e08b50 申购单据,采购订单等相关修改 2 years ago
wangwei 91fd4e92ea 物资字典维护 权限控制显示字段 2 years ago
wangwei 065b4b6b08 bug修改 2 years ago
anthonywj 88cdf06f9e 选入第三方业务单据修改 2 years ago
wangwei 70acc94de7 bug修改 2 years ago
anthonywj 35403f6fab 业务流程相关优化,基础信息修改 2 years ago
wangwei 4158871127 发票上传pdf 不从缓存中获取CustomerId 2 years ago
wangwei c3f3d1d48f 修改bug 2 years ago
wangwei 2e40d4ed7b 去除批次号正则 2 years ago
wangwei e0c3c48e80 去除批次号正则 2 years ago
anthonywj cb60883b26 申购新增备注字段搜索 2 years ago
anthonywj 960f1585fb 新增第三方产品信息修改 2 years ago
anthonywj 831e94f55d Merge remote-tracking branch 'origin/master' 2 years ago
anthonywj 0c9a7b5c82 界面标题等logo修改 2 years ago
郑明梁 2bd79939e8 添加npm 包 2 years ago
anthonywj 9324c084c0 资质证书 2 years ago
郑明梁 b84e3dc1a6 修改bug 2 years ago
郑明梁 833647368c 多次出库bug修改 2 years ago
郑明梁 b29628d15b Merge remote-tracking branch 'origin/master' 2 years ago
郑明梁 357e151e37 多次出库bug修改 2 years ago
anthonywj 48280be827 发票相关问题修改 2 years ago
郑明梁 58eb5b87fa 多次出库bug修改 2 years ago
wangwei 1c760ada1d 修改bug 2 years ago
郑明梁 fde9342a9c 多次出库bug修改 2 years ago
wangwei 73afe6f896 发票优化 代码同步 2 years ago
wangwei 201375c6d5 单据排序 2 years ago
郑明梁 5f0c1a8997 统计汇总代码提交 2 years ago
郑明梁 367e61bddf 业务单据功能提交 2 years ago
郑明梁 23deacf583 Merge remote-tracking branch 'origin/master' 2 years ago
郑明梁 e8155ce822 多次出入库代码提交 2 years ago
anthonywj c7005c89c1 出入库扫码相关bug修改 2 years ago
wangwei 10ffb1988f 新增申购 调整产品录入分页多选 2 years ago
anthonywj 0039e3e2b5 logo替换和排版 2 years ago
anthonywj 13cdca66e0 生产企业查询 2 years ago
anthonywj b6f905bf79 采购订单页面缺失供应商 2 years ago
anthonywj c3dc2e4b5f 申购单据产品查询修改,提交采购订单修改 2 years ago
wangwei b7e1e1bcab 新增申购产品录入多选问题 2 years ago
anthonywj e827ef144f Merge remote-tracking branch 'origin/master' 2 years ago
anthonywj f18fabe8ef 第三方单据上传修改 2 years ago
anthonywj 189fab8d15 Merge branch 'master' into hzt 2 years ago
anthonywj c85e708b1a Merge remote-tracking branch 'origin/hzt' into hzt
# Conflicts:
#	src/views/inout/uploadManage/uploadModify.vue
2 years ago
郑明梁 89e17081ba 业务单据功能提交 2 years ago
郑明梁 bf40ef85d9 业务单据功能提交 2 years ago
郑明梁 af714e956b 业务单据功能提交 2 years ago
anthonywj f0df88f77a 代码备份 2 years ago
郑明梁 0960540330 业务单据功能提交 2 years ago
1178634255 383af71fd3 上传设置代码备份 2 years ago
anthonywj adc4ec982d 新增单据审核,界面优化修改 2 years ago
anthonywj 8b42ade3bb Merge remote-tracking branch 'origin/master' 2 years ago
1178634255 9988521e9f 上传设置代码备份 2 years ago
1178634255 636aaae031 上传设置代码备份 2 years ago
1178634255 eb60ee606c 上传设置代码备份 2 years ago
1178634255 f9a08d6f62 上传设置代码备份 2 years ago
郑明梁 7efceb8be1 Merge remote-tracking branch 'origin/master' 2 years ago
郑明梁 219cd80363 业务单据功能优化 2 years ago

@ -7,7 +7,7 @@ ENV = 'development'
# 开发环境
VUE_APP_BASE_API = 'http://127.0.0.1:9991'
VUE_APP_SYNC_API ="http://127.0.0.1:10001"
VUE_APP_SYNC_API ="http://192.168.0.166:10001"
# 应用访问路径 例如使用前缀 /admin/
VUE_APP_CONTEXT_PATH = '/'

@ -8,11 +8,10 @@ ENV = 'production'
#林纪裕cd
# VUE_APP_BASE_API = 'http://101.43.77.55:9150/UDI_WMS_MC/'
# VUE_APP_BASE_API = 'http://116.204.106.103:9150/UDI_WMS_MC/'
# VUE_APP_BASE_API = 'http://r.jiyuudims.cloud:5004/UDI_WMS_MC/'
# VUE_APP_SYNC_API ="http://r.jiyuudims.cloud:5008/SP_SYNC_SERVER"
# VUE_APP_BASE_API = 'http://r.jiyuudims.cloud:81/UDI_WMS_MC/'
# VUE_APP_BASE_API = 'http://127.0.0.1:9150/UDI_WMS_MC/'
# 测试服务器
# VUE_APP_BASE_API = 'http://192.168.0.66:9150/UDI_WMS_MC/'
@ -23,15 +22,20 @@ ENV = 'production'
# VUE_APP_SYNC_API ="http://192.168.0.62:9150/SP_SYNC_SERVER"
刘恩典
VUE_APP_BASE_API = 'http://192.168.0.54:9150/UDI_WMS_MC/'
# VUE_APP_BASE_API = 'http://192.168.0.54:9150/UDI_WMS_MC/'
# 平潭正式
# VUE_APP_BASE_API = 'http://55.55.0.62:9150/UDI_WMS_MC/'
# VUE_APP_SYNC_API ="http://55.55.0.24:9150/SP_SYNC_SERVER"
# 吴总测试服务器
# VUE_APP_BASE_API = 'http://116.204.106.103:9150/UDI_WMS_MC/'
# 漳州中医院
# VUE_APP_BASE_API = 'http://192.168.240.119:9150/UDI_WMS_MC/'
# 片仔癀诊断
VUE_APP_BASE_API = 'http://192.168.0.100:9160/UDI_WMS_MC/'
# 应用访问路径 例如使用前缀 /admin/
VUE_APP_CONTEXT_PATH = '/UDI_WMS_NEW/'

@ -2,7 +2,7 @@
"name": "ruoyi-vue-plus",
"version": "4.3.0",
"description": "UDI自助平台",
"author": "LionLi",
"author": "Glxp",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
@ -76,6 +76,7 @@
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint-plugin-vue": "7.2.0",
"html-webpack-plugin": "4.5.2",
"lint-staged": "10.5.3",
"runjs": "4.4.2",
"sass": "1.32.13",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -9,7 +9,6 @@ export function authAdminList(query) {
});
}
//根据当前角色,获取是否为客户角色
export function roleCustomers(query) {
return axios({
@ -67,4 +66,18 @@ export function selectUser(query) {
});
}
export function modifyPasswd(data) {
return axios({
url: "/admin/auth/admin/updateUser",
method: "post",
data: data
});
}
export function filterByUser(query) {
return axios({
url: "/admin/auth/admin/selectUser",
method: "get",
params: query
});
}

@ -2,7 +2,7 @@ import axios from "@/utils/request";
export function filterDepts(query) {
return axios({
url: "/udi/auth/dept/filter",
url: "/spms/inv/warehouse/filterAll",
method: "get",
params: query
});
@ -39,3 +39,8 @@ export function getDeptListByUser(params) {
params: params
});
}

@ -1,5 +1,6 @@
import axios from "@/utils/request";
//获取数据
export function getBusTypeList(params) {
return axios({
url: "/udiwms/bussinessType/filter",
@ -8,6 +9,7 @@ export function getBusTypeList(params) {
});
}
export function getLocalJoinByUser(params) {
return axios({
url: "/udiwms/localBusType/filterJoinByUser",

@ -1,43 +1,54 @@
import axios from "@/utils/request";
export function filterCompanyProductRelevance(query) {
return axios(
{
url: "/sale/info/company/product/relevance/filter",
method: "get",
params: query
}
)
return axios(
{
url: "/sale/info/company/product/relevance/filter",
method: "get",
params: query
}
)
}
export function filterCompanyProductplanRelevance(query) {
return axios(
{
url: "/sale/info/company/product/plan/relevance/filter",
method: "get",
params: query
}
)
}
export function insertFilter(query) {
return axios(
{
url: "/sale/info/insertFilter",
method: "post",
data: query
}
);
return axios(
{
url: "/sale/info/insertFilter",
method: "post",
data: query
}
);
}
export function insertCompanyProductRelevance(query) {
return axios(
{
url: "/sale/info/insertCompanyProductRelevance",
method: "post",
data: query
}
);
return axios(
{
url: "/sale/info/insertCompanyProductRelevance",
method: "post",
data: query
}
);
}
export function deleteCompanyProductRelevance(query) {
return axios(
{
url: "/sale/info/deleteCompanyProductRelevance",
method: "post",
data: query
}
);
return axios(
{
url: "/sale/info/deleteCompanyProductRelevance",
method: "post",
data: query
}
);
}

@ -156,6 +156,14 @@ export function filterOrderList(query) {
});
}
export function getUserBean(query) {
return axios({
url: "/udiwms/inout/order/getUserBean",
method: "get",
params: query
});
}
export function selectNew(query) {
return axios({
url: "/admin/warehouse/inout/order/selectNew",

@ -69,3 +69,15 @@ export function getCodeSms() {
timeout: 20000
})
}
export function getTitleConfig() {
return request({
url: '/spms/getTitleConfig',
headers: {
isToken: false
},
method: 'get',
timeout: 20000
})
}

@ -146,4 +146,12 @@ export function getDetailList(params) {
});
}
export function filterSupList(data) {
return request({
url: "/purchase/order/filterSupList",
method: 'post',
data: data
})
}

@ -172,6 +172,14 @@ export function previewImage(data) {
});
}
export function previewFile(url) {
return axios({
url: url,
method: "get",
responseType: 'arraybuffer'
});
}

@ -19,6 +19,16 @@ export function findInvByUser(query) {
});
}
export function filterGroupBySpuse(params) {
return axios({
url: "/spms/inv/warehouse/filterGroupBySpuse",
method: "get",
params: params
});
}
//获取除了自己所有其他仓库
export function findByFrom(query) {
return axios({
@ -76,6 +86,7 @@ export function deleteSubWarehouse(data) {
data: data
});
}
//查询第三方系统和仓库数据关联信息
export function getSubThrsysDetail(params) {
return axios({

@ -40,3 +40,12 @@ export function saveNewProduct(data) {
data: data
})
}
export function updateProduct(data) {
return axios({
url: '/udiwms/udiinfo/erp/products/update',
method: 'post',
data: data
})
}

@ -31,3 +31,11 @@ export function exportExcel(query) {
});
}
export function exportExcelAll(query) {
return axios({
url: "/udiwms/thrProducts/importLog/exportAll",
method: "post",
data: query
});
}

@ -15,3 +15,51 @@ export function saveConfig(data) {
data: data
});
}
//编辑
export function updateConfig(data) {
return axios({
url: "/system/third/syncData/update",
method: "post",
data: data
});
}
//查询已选入扫码单据类型
export function getBusList(params) {
return axios({
url: "/system/third/syncData/getBus",
method: "get",
params: params
});
}
//添加扫码单据类型
export function addBus(data) {
return axios({
url: "/system/third/syncData/addBus",
method: "post",
data: data
});
}
// 编辑扫码单据类型
export function editBus(data) {
return axios({
url: "/system/third/syncData/editBus",
method: "post",
data: data
});
}
// 移除扫码单据类型
export function removeBus(data) {
return axios({
url: "/system/third/syncData/removeBus",
method: "post",
data: data
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 19 KiB

@ -10,10 +10,10 @@
<div class="inv-hos-title">
<span
style="margin-left:8px;color: #2d8cf0;font-size: 14px;">部门:{{ deptName }}</span>
style="margin: 10px;color: #2d8cf0;font-size: 14px;">部门&nbsp:&nbsp{{ deptName }}</span>
<span
style="margin-right: 18px;margin-left:8px;color: #2d8cf0;font-size: 14px;">仓库:{{ inv }}</span>
<span style="font-weight: 500;color:rgb(51 48 48); font-size: 14px;">用户:{{ this.companyName }}</span>
style="margin-right: 18px;margin-left:8px;color: #2d8cf0;font-size: 14px;">仓库&nbsp:&nbsp{{ inv }}</span>
<span style="font-weight: 500;color:rgb(51 48 48); font-size: 14px;">用户&nbsp:&nbsp吴XX{{ this.companyName }}</span>
<span
style="font-weight: 500;color:rgb(51 48 48); font-size: 14px; margin-right: 20px">({{
this.userName
@ -40,6 +40,9 @@
<el-dropdown-item divided @click.native="changeInv">
<span>切换仓库</span>
</el-dropdown-item>
<el-dropdown-item divided @click.native="modifyPassword">
<span>修改密码</span>
</el-dropdown-item>
<el-dropdown-item divided @click.native="logout">
<span>退出登录</span>
</el-dropdown-item>
@ -102,6 +105,78 @@
</el-form>
</el-dialog>
<el-dialog
title="修改密码"
:visible.sync="isVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="35%"
v-if="isVisible"
>
<el-form :model="inputQuery" label-width="100px" :rules="formRules" ref="dataForm">
<el-row :gutter="20">
<el-col :span="20">
<el-form-item prop="userName" label="用户账号:">
<el-input
size="small"
placeholder="请输入登录用户账号"
v-model="inputQuery.userName"
@input="change()"
:disabled="true"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="20">
<el-form-item prop="passWord" label="当前密码:">
<el-input
size="small"
placeholder="请输入当前密码"
type="password"
v-model="inputQuery.passWord"
@input="change()"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="20">
<el-form-item prop="newPassword" label="新密码:">
<el-input
size="small"
placeholder="请输入新密码"
type="password"
v-model="inputQuery.newPassword"
@input="change()"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="20">
<el-form-item prop="confirmPassword" label="确认密码:">
<el-input
size="small"
placeholder="请输入确认密码"
type="password"
v-model="inputQuery.confirmPassword"
@input="change()"
></el-input>
</el-form-item>
</el-col>
</el-row>
<div style='text-align: center; margin-bottom: 10px;margin-top: 18px ;'>
<el-button type="primary" @click="onSubmit"></el-button>
<el-button @click="closeDialog"></el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
@ -118,17 +193,35 @@ import RuoYiDoc from '@/components/RuoYi/Doc'
import store from "@/store";
import {filterAllByUser} from "@/api/system/invWarehouse";
import {filterSubByInv, findByDeptUser} from "@/api/system/invSubWarehouse";
import {updateInv} from "@/api/auth/authAdmin";
import {updateInv, modifyPasswd,filterByUser} from "@/api/auth/authAdmin";
import {isRelogin} from "@/utils/request";
import router from "@/router";
export default {
data() {
// let validatePass2 = (rule, value, callback) => {
// if (value === "") {
// callback(new Error(""));
// } else if (value !== this.inputQuery.passWord) {
// callback(new Error("!"));
// } else {
// callback();
// }
// };
return {
inv: store.getters.locInvName,
deptName: store.getters.locDeptName,
selInvVisible: false,
isVisible: false,
userInfo: {},
inputQuery: {
passWord: "",
newPassword: "",
confirmPassword: "",
userName: "",
locInvCode: "",
},
deptList: [],
invList: [],
formRules: {
@ -138,6 +231,19 @@ export default {
locInvCode: [
{required: true, message: "请选择当前仓库", trigger: "blur"}
],
password: [{required: true, message: "请输入密码", trigger: "blur"}],
newPassword: [{required: true, message: "请输入密码", trigger: "blur"}],
confirmPassword: [
{required: true, message: "请确认密码", trigger: "blur"},
// {validator: validatePass2, trigger: "blur"},
],
},
rules: {
password: [{required: true, message: "请输入密码", trigger: "blur"}],
confirmPassword: [
{required: true, message: "请确认密码", trigger: "blur"},
// {validator: validatePass2, trigger: "blur"},
],
},
};
@ -176,6 +282,41 @@ export default {
}
},
methods: {
onSubmit() {
if (this.inputQuery.newPassword != this.inputQuery.confirmPassword) {
this.$message.error("新密码与确认密码不一致!!!!");
return
}
if (this.inputQuery.passWord == this.inputQuery.newPassword) {
this.$message.error("旧密码与新密码不能相同!!!!");
return
}
this.$refs["dataForm"].validate((valid) => {
if (valid) {
this.loading = true;
modifyPasswd(this.inputQuery).then((response) => {
if (response.code === 20000) {
this.loading = false;
this.$confirm('密码重置成功,请点击确定重新登录', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = process.env.VUE_APP_CONTEXT_PATH;
})
}).catch(() => {
});
} else {
this.$message.error(response.message);
}
});
} else {
return false;
}
});
},
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
@ -186,7 +327,7 @@ export default {
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = process.env.VUE_APP_CONTEXT_PATH ;
location.href = process.env.VUE_APP_CONTEXT_PATH;
})
}).catch(() => {
});
@ -195,6 +336,9 @@ export default {
changeInv() {
this.selInvVisible = true;
},
modifyPassword() {
this.isVisible = true;
},
getDeptList() {
this.deptList = [];
@ -206,10 +350,20 @@ export default {
.catch(() => {
});
},
getInputQuery() {
this.inputQuery = [];
filterByUser()
.then((response) => {
this.inputQuery = response.data || [];
// this.getInvList();
})
.catch(() => {
});
},
deptChange() {
this.getInvList();
this.userInfo.locInvCode="";
this.userInfo.locInvCode = "";
},
getInvList() {
@ -225,7 +379,7 @@ export default {
}
})
.catch(() => {
this.selInvVisible=true;
this.selInvVisible = true;
});
},
@ -261,6 +415,8 @@ export default {
closeDialog() {
this.selInvVisible = false;
this.isVisible = false;
this.getDeptList()
this.resetForm();
},
@ -278,12 +434,15 @@ export default {
},
created() {
this.userName = this.$store.getters.name;
this.userInfo = {
id: store.getters.adminId,
locInvCode: store.getters.locInvCode,
locDeptCode: store.getters.locDeptCode,
};
this.userInfo = {
id: store.getters.adminId,
locInvCode: store.getters.locInvCode,
locDeptCode: store.getters.locDeptCode,
};
this.inputQuery = {
userName: this.$store.getters.name,
};
this.getInputQuery();
this.getDeptList();
//this.getInvList()

@ -60,7 +60,7 @@ export default {
.sidebar-logo-container {
position: relative;
width: 100%;
height: 100px;
height: 110px;
line-height: 50px;
background: #2b2f3a;
text-align: center;
@ -73,6 +73,7 @@ export default {
& .sidebar-logo {
width: 100px;
height: 100px;
margin-top: 12px;
vertical-align: middle;
margin-right: 12px;
}
@ -92,8 +93,8 @@ export default {
&.collapse {
.sidebar-logo {
width: 32px;
height: 32px;
width: 44px;
height: 44px;
margin-right: 0px;
}
}

@ -51,6 +51,9 @@ import DictData from "@/components/DictData";
// 去除控制台的 Vue warn 警告信息
Vue.config.silent = true;
//自定义消息框
import ShowMsgBox from '@/utils/MsgBox'
// 全局方法挂载
Vue.prototype.getDicts = getDicts;
Vue.prototype.getConfigKey = getConfigKey;
@ -76,6 +79,7 @@ Vue.use(directive);
Vue.use(plugins);
Vue.use(VueMeta);
Vue.use(allTools);
Vue.use(ShowMsgBox)
DictData.install();
/**

@ -0,0 +1,18 @@
import MsgBox from '@/views/components/MsgBox'
let ConfirmConstructor, instance
const showMsgBox = {
install(Vue) {
ConfirmConstructor = Vue.extend(MsgBox)
instance = new ConfirmConstructor().$mount()
document.body.appendChild(instance.$el)
Vue.prototype.$showMsgBox = options => {
Object.assign(instance, options)
instance.init()
}
}
}
export default showMsgBox

@ -17,11 +17,6 @@
</el-form-item>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-form-item label="送货单位:">-->
<!-- <el-input v-model="query.corpName" style="width: 90%" placeholder="请输入送货单位" clearable></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="8">
<el-form-item class="query-form-item" label="单据类型:">
@ -87,14 +82,18 @@
<el-table v-loading="loading" :data="list" style="width: 100%;" border highlight-current-row
@row-click="getStockOrderDetailList" ref="multipleTable">
@row-click="getStockOrderDetailList" ref="multipleTable"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="单据号" prop="billNo" width="140" show-overflow-tooltip></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="120">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="打印状态" width="100" prop="inCodeStatus">
<template slot-scope="scope">
<span>{{ enableMap[scope.row.inCodeStatus] }}</span>
@ -207,6 +206,7 @@ export default {
name: "stockOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
convertDateFun: convertDate,
query: {
@ -222,7 +222,7 @@ export default {
limit: 10,
startTime: "",
endTime: "",
inCodeStatus: 1,
inCodeStatus: 0,
},
detailQuery: {
orderIdFk: "",
@ -339,7 +339,7 @@ export default {
limit: 10,
startTime: "",
endTime: "",
inCodeStatus: 1,
inCodeStatus: 0,
};
this.getList();
@ -387,6 +387,18 @@ export default {
this.getList();
}
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.query.sort = 'desc'
} else {
this.query.sort = 'asc'
}
this.query.orderBy = column.prop;
this.getList();
},
getList() {
this.loading = true;
this.query.corpId = store.getters.customerId;

@ -213,6 +213,7 @@ export default {
return {
query: {
key: "",
corpType: "2",
page: 1,
limit: 20,
},
@ -303,6 +304,7 @@ export default {
});
this.query = {
key: "",
corpType: "2",
page: 1,
limit: 20,
};

@ -180,10 +180,10 @@
<el-col :span="6">
<el-form-item class="query-form-item" label="是否在用:">
<el-select
v-model="filterQuery.isDisable"
placeholder="请选择是否在用"
clearable
style="width: 90%"
v-model="filterQuery.isDisable"
placeholder="请选择是否在用"
clearable
style="width: 90%"
>
<el-option label="在用" value="false"></el-option>
<el-option label="停用" value="true"></el-option>
@ -264,6 +264,36 @@
width="160"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="商品名称"
prop="spmc"
width="160"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:spmc')"
></el-table-column>
<el-table-column
label="商品条码"
prop="sptm"
width="160"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:sptm')"
></el-table-column>
<el-table-column
label="医保编码"
prop="ybbm"
width="160"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:ybbm')"
></el-table-column>
<el-table-column
label="计量单位"
prop="measname"
width="160"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:measname')"
></el-table-column>
<el-table-column
label="注册/备案号"
prop="zczbhhzbapzbh"
@ -277,10 +307,67 @@
show-overflow-tooltip
></el-table-column>
<el-table-column
label="是否在用"
prop="isDisable"
width="180"
show-overflow-tooltip
:label="productRemarkSet.remarkTitle1"
prop="basicPrductRemak1"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak1')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle2"
prop="basicPrductRemak2"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak2')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle3"
prop="basicPrductRemak3"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak3')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle4"
prop="basicPrductRemak4"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak4')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle5"
prop="basicPrductRemak5"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak5')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle6"
prop="basicPrductRemak6"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak6')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle7"
prop="basicPrductRemak7"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak7')"
></el-table-column>
<el-table-column
:label="productRemarkSet.remarkTitle8"
prop="basicPrductRemak8"
width="180"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak8')"
></el-table-column>
<el-table-column
label="是否在用"
prop="isDisable"
width="180"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag :type="scope.row.isDisable | isDisableFilterType">
@ -293,6 +380,7 @@
prop="groupBuy"
width="120"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:groupBuy')"
>
<template slot-scope="scope">
<el-tag :type="scope.row.groupBuy | statusFilterType">
@ -305,6 +393,7 @@
prop="dispatch"
width="120"
show-overflow-tooltip
v-if="$auth.hasPermi('basic:dispatch')"
>
<template slot-scope="scope">
<el-tag :type="scope.row.dispatch | statusFilterType">
@ -312,6 +401,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column width="180" label="操作" fixed="right">
<template slot-scope="scope">
<el-button
@ -1555,7 +1645,16 @@ export default {
false: "不可配送",
},
pId: 0,
productRemarkSet: {},
productRemarkSet: {
remarkTitle1: "备注字段1",
remarkTitle2: "备注字段2",
remarkTitle3: "备注字段3",
remarkTitle4: "备注字段4",
remarkTitle5: "备注字段5",
remarkTitle6: "备注字段6",
remarkTitle7: "备注字段7",
remarkTitle8: "备注字段8",
},
relevanceEdit: {
id: null,
thirdId: "",
@ -2059,50 +2158,6 @@ export default {
}
});
},
// selectSysParam() {
// let query = {
// paramKey: "smp_isUploadProuct",
// };
// spcombie().then((response) => {
// if (response.code == 20000) {
// if (response.data.paramValue == "1") {
// this.isSpCombine = true;
// } else {
// this.isSpCombine = false;
// }
// }
// });
//
// selectSysParamByKey(query).then((response) => {
// if (response.code == 20000) {
// if (response.data.paramValue == "1") {
// this.isUploadSmp = true;
// } else {
// this.isUploadSmp = false;
// }
// }
// });
// let query1 = {
// paramKey: "upload_pi_file_enabled",
// };
// selectSysParamByKey(query1).then((response) => {
// if (response.code == 20000) {
// if (response.data.paramValue == "1") {
// this.isImportFile = true;
// }
// }
// });
// let query2 = {
// paramKey: "upload_pi_file_url",
// };
// selectSysParamByKey(query2).then((response) => {
// if (response.code == 20000) {
// this.uploadFileUrl = response.data.paramValue;
// }
// });
// },
editUdiType() {
this.selectUdiTypeVisible = true;
},

@ -125,6 +125,7 @@
<el-table-column width="120" label="操作">
<template slot-scope="scope">
<el-button type="text" @click.native.stop="handleModifyClick(scope.row)">详情</el-button>
<el-button type="text" @click.native.stop="handleDeleteClick(scope.row.id)">移除</el-button>
</template>
</el-table-column>
</el-table>
@ -485,7 +486,33 @@ export default {
};
this.checked = row.isUseDy == 1;
},
handleDeleteClick(rowId){
this.$confirm("此操作将删除该供应商器械信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let dQuery = {
id: rowId,
};
deleteCompanyProductRelevance(dQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
} else {
this.$message.error(response.message);
}
this.getList();
})
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
lockProducts(status) {
let selectData = this.multipleSelection;
let postQuery = {
@ -495,6 +522,10 @@ export default {
selectData.forEach((row) => {
postQuery.ids.push(row.rlId);
});
if(postQuery.ids.length<=0){
this.$message.error("请先选择供应商!");
return
}
lockStatus(postQuery)
.then((response) => {
if (response.code == 20000) {

@ -0,0 +1,150 @@
<template>
<div>
<div v-if="show" class="cancelTips" >
<div class="cancelBox">
<p class="tips">{{ caption }}</p>
<p class="title">{{ msg }}</p>
<div class="selectBtn">
<el-button size="small" type="primary" @click="cancelClick"></el-button>
<el-button ref="uRef" size="small" type="primary" @click="confirmClick"></el-button>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "MsgBox",
props: {
caption: {},
show: {},
msg: {},
callback: {}
},
data() {
return {
value: null,
keyCode: '',
lastTime: '',
nextTime: '',//
lastCode: '',
nextCode: '',//
}
},
destroyed() {
// enter
this.enterKeyupDestroyed();
},
methods: {
enterKey(event) {
this.nextCode = event.keyCode
// ()
if (this.nextCode == 13) {
if (this.keyCode == 'true') {
this.confirmClick();
} else if (this.keyCode == 'false') {
this.cancelClick(0);
}
this.keyCode = ''
this.lastCode = ''
this.lastTime = ''
return
}
this.nextTime = new Date().getTime() //
if (!this.lastTime && !this.lastCode) { //
this.keyCode += event.key //
}
//
if (this.lastCode && this.lastTime && this.nextTime - this.lastTime > 30) { // keypress,
this.keyCode = event.key
} else if (this.lastCode && this.lastTime) {
this.keyCode += event.key
}
this.lastCode = this.nextCode
this.lastTime = this.nextTime
},
enterKeyupDestroyed() {
document.removeEventListener("keyup", this.enterKey);
},
enterKeyup() {
document.addEventListener("keyup", this.enterKey);
},
init() {
this.show = true;
this.enterKeyup();
},
close() {
this.show = false;
this.callback("close")
},
confirmClick() {
this.show = false;
this.callback("yes")
this.enterKeyupDestroyed();
},
cancelClick() {
this.show = false;
this.callback("no")
this.enterKeyupDestroyed();
}
}
}
</script>
<style type="text/scss" lang="scss" scoped>
.cancelTips {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 9999999;
margin: auto;
width: 100%;
background: rgba(0, 0, 0, 0.6);
.cancelBox {
position: absolute;
top: 30%;
left: 40%;
width: 20%;
margin: auto;
background: #fff;
border-radius: 12px;
text-align: center;
.tips {
font-size: 16px;
margin: 30px 0 15px;
text-align: center;
font-weight: bold;;
}
.title {
font-size: 16px;
text-align: center;
color: #767676;
margin-bottom: 30px;
}
.selectBtn {
width: 100%;
text-align: center;
display: flex;
height: 60px;
line-height: 60px;
margin: 0 auto;
display: flex;
justify-content: space-around;
border-top: 1px solid #ebebeb;
}
}
}
</style>

@ -141,7 +141,7 @@
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jpg,.png"
accept=".jpg,.png,.pdf"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
@ -152,7 +152,7 @@
<el-button slot="trigger" size="small" type="primary" :disabled="formData.auditStatus == 1">
{{ choiceFile }}
</el-button>
<div>只能上传 jpg,png 文件且不超过 10 MB</div>
<div>只能上传 jpg,png,pdf 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
@ -193,7 +193,7 @@
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jpg,.png"
accept=".jpg,.png,.pdf"
:on-change="uploadOnchange1"
:on-success="uploadHandleSuccess1"
:on-error="uploadHandleError"
@ -204,7 +204,7 @@
<el-button slot="trigger" size="small" type="primary" :disabled="formData.auditStatus == 1">
{{ choiceFile1 }}
</el-button>
<div>只能上传 jpg,png 文件且不超过 10 MB</div>
<div>只能上传 jpg,png,pdf 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
@ -238,7 +238,7 @@
import draggable from "vuedraggable";
import store from "@/store";
import {updateBizById, updateById} from '@/api/inout/orderDetailBiz'
import {previewImage} from '@/api/purchase/supCompany'
import {previewImage,previewFile} from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
@ -455,36 +455,84 @@ export default {
return isJPG || isPNG;
},
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
if(this.inputQuery.filePath.substr(-1) == ','){
this.inputQuery.filePath=this.inputQuery.filePath.slice(0, this.inputQuery.filePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+this.inputQuery.filePath;
this.imgList = [];
previewImage({imageUrl: this.inputQuery.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl)
let index = this.inputQuery.filePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(this.inputQuery.filePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
showImgViewerCold(row){
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
if(this.inputQuery.coldFilePath.substr(-1) == ','){
this.inputQuery.coldFilePath=this.inputQuery.coldFilePath.slice(0, this.inputQuery.coldFilePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+this.inputQuery.coldFilePath;
this.imgList = [];
previewImage({imageUrl: this.inputQuery.coldFilePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl)
let index = this.inputQuery.coldFilePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(this.inputQuery.coldFilePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},

@ -22,13 +22,24 @@
>草稿保存
</el-button>
<el-button size="mini" type="primary" @click.native="submit()"
v-if="curAction.checkWebNew != 2 || viewType !=1"
v-if="(viewType != 5 && viewType != 6)&&(curAction.checkWebNew != 2 || viewType !=1)"
>立即提交
</el-button>
<el-button size="mini" type="primary" @click.native="submit(1)"
v-if="curAction.checkWebNew > 1 && viewType == 1"
>待配货提交
</el-button>
<el-button size="mini" type="primary" @click.native="submit(1)"
v-if="viewType == 5"
>完成验收
</el-button>
<el-button size="mini" type="primary" @click.native="submit(1)"
v-if=" viewType == 6"
>完成验收
</el-button>
</el-button-group>
<el-row>
<el-col :span="11">
@ -58,47 +69,48 @@
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item prop="action" label="单据类型:">
<el-form-item prop="invCode" label="当前仓库:">
<el-select
v-model="orderFormData.action"
placeholder="请选择单据类型"
:disabled="corpOrderIdDisabled"
v-model="orderFormData.invCode"
placeholder="当前仓库"
style="width: 90%"
@change="actionChange"
:disabled="corpOrderIdDisabled"
@change="changeInv"
filterable
>
<el-option
v-for="item in busTypeOptions"
v-for="item in curInvOptions"
:key="item.name"
:label="item.name"
:value="item.action"
:value="item.code"
>
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.warehouseName
}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item prop="invCode" label="当前仓库:">
<el-form-item prop="action" label="单据类型:">
<el-select
v-model="orderFormData.invCode"
placeholder="当前仓库"
style="width: 90%"
v-model="orderFormData.action"
placeholder="请选择单据类型"
:disabled="corpOrderIdDisabled"
@change="changeInv"
filterable
style="width: 90%"
@change="actionChange"
>
<el-option
v-for="item in curInvOptions"
v-for="item in busTypeOptions"
:key="item.name"
:label="item.name"
:value="item.code"
:value="item.action"
>
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.warehouseName
}}</span>
</el-option>
</el-select>
</el-form-item>
@ -374,7 +386,7 @@
</el-form>
</el-card>
<el-tabs type="border-card" style="margin: 5px">
<el-tab-pane label="业务详情" v-if="bizShow && viewBizVisible">
<el-tab-pane label="业务详情" v-if="bizShow && viewBizVisible || (viewType ==5 || viewType==6)">
<biz-detail-panel
:idQuery="orderFormData"
:refreshPanel="refreshCodesPanel"
@ -457,6 +469,26 @@
></DialogSelectUnit>
</el-dialog>
<!-- 绑定产品-->
<el-dialog
:title="selectRlTitle"
:visible.sync="selectRlVisible"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="selectRlVisible"
append-to-body
>
<selectRlDialog
:curRow="codeFormData"
:type="1"
:fromCorp="orderFormData.fromCorp"
v-on:selectBindRl="selectBindRl"
></selectRlDialog>
</el-dialog>
<el-dialog
title="请指定当前产品所在货位"
:visible.sync="selectSpaceVisible"
@ -499,6 +531,7 @@ import A from "../../plugins/KeyScaner";
import {findByInvUser} from "@/api/basic/busType";
import {getInvSpaceList} from "@/api/inventory/invSpace";
import DialogSelectUnit from "./DialogSelectUnit";
import selectRlDialog from "./DialogSelectRl";
import DialogSelectSpace from "./DialogSelectSpace";
import {isBlank} from "@/utils/strUtil";
@ -518,7 +551,7 @@ export default {
required: true,
},
viewType: {
//12.3,4.
//12.3,4.,5:,6:
type: Object,
required: true,
},
@ -532,6 +565,7 @@ export default {
action: null,
invCode: null,
fromCorp: null,
fromCorpName: null,
fromInvCode: null,
remark: null,
fromType: 2,
@ -614,6 +648,7 @@ export default {
fromStorageOptions: [],
curRow: null,
dialogTableVisible: false,
selectRlVisible: false,
selectSpaceVisible: false,
sitcomScan: false,
selectRlTitle: "绑定产品",
@ -643,7 +678,7 @@ export default {
bizDetailPanel,
editCodeDialog,
DialogCreateOrderSelect,
DialogSelectUnit, DialogSelectSpace
DialogSelectUnit, DialogSelectSpace, selectRlDialog
},
methods: {
//
@ -718,8 +753,8 @@ export default {
.then((response) => {
this.busTypeOptions = response.data || [];
this.curAction = this.getActionItem(this.orderFormData.action);
if(isBlank(this.curAction)){
this.curAction={
if (isBlank(this.curAction)) {
this.curAction = {
corpType: 0,
genUnit: false,
checkWebNew: null
@ -764,7 +799,11 @@ export default {
cQuery.corpType = 2;
} else if (this.curAction.corpType == 0) {
cQuery.corpType = 2;
} else return;
} else if (this.curAction.corpType == 1) {
cQuery.corpType = 1;
cQuery.outType = 2;
} else
return;
getBasicUnitMaintains(cQuery)
.then((response) => {
this.loading = false;
@ -784,7 +823,10 @@ export default {
if ((this.curAction.checkEnable && this.curAction.checkWebNew != 0) || this.viewType == 1) {
// 1
this.bizShow = true;
} else this.bizShow = false;
} else {
this.bizShow = false;
}
if (
this.curAction.corpType == 0 ||
this.curAction.corpType == 2 ||
@ -981,6 +1023,10 @@ export default {
}
if (this.checkPreInArray != null) {
this.orderFormData.checkPreInOrders = this.checkPreInArray.join(",");
}
if (this.$isBlank(this.orderFormData.corpOrderId)) {
let date = new Date();
this.orderFormData.corpOrderId =
@ -1041,12 +1087,13 @@ export default {
this.refreshCodesPanel();
this.$message.error(response.message);
this.selectRlTitle = response.message;
this.selectRlVisible = true;
} else if (response.code == 503) {
//
this.curRow = response.data;
this.orderFormData.billNo = this.curRow.orderId;
this.codeFormData.relId = this.curRow.relId,
this.refreshCodesPanel();
this.codeFormData.relId = this.curRow.relId;
this.refreshCodesPanel();
this.selectUnitTitle = response.message;
this.$message.error(response.message);
this.dialogTableVisible = true;
@ -1145,6 +1192,30 @@ export default {
},
submit(val) {
if (this.$isBlank(this.orderFormData.action)) {
this.$message.warning("单据类型不能为空!");
return
}
if (this.curAction.corpType === 0 || this.curAction.corpType === 2 || (this.curAction.corpType === 1 && !this.curAction.genUnit)) {
if (this.$isBlank(this.orderFormData.fromCorp)) {
this.$message.warning("请选择往来单位!");
return;
}
}
if (this.curAction.corpType == 3) {
if (this.$isBlank(this.orderFormData.fromInvCode)) {
this.$message.warning("请选择往来单位!");
return;
}
}
if (this.curAction.corpType === 1 && this.curAction.genUnit) {
if (this.$isBlank(this.orderFormData.fromCorp)) {
this.$message.warning("请选择往来单位!");
return;
}
}
let tQuery = Object.assign(
JSON.parse(JSON.stringify(this.orderFormData))
);
@ -1299,6 +1370,13 @@ export default {
this.addCode();
},
selectBindRl(row) {
this.selectRlVisible = false;
this.orderFormData.relId = row.id;
this.addCode();
},
selectSpaceBind(val) {
if (this.curAction.scanPreIn) {
this.orderFormData.checkPreInSpaceCode = val;
@ -1369,12 +1447,11 @@ export default {
this.corpOrderIdDisabled = true;
this.orderFormData = this.orderQuery;
this.actionEnable = true;
this.orderFormData.fromCorp=this.orderFormData.fromCorpName;
if (this.$isNotBlank(this.orderFormData.checkPreInOrders)) {
this.checkPreInArray = this.orderFormData.split(",");
}
this.curAction={
}
this.curAction = {}
this.refreshCodesPanel();
//
this.findInvListByUser();

@ -37,15 +37,19 @@
</el-col>
<el-col :span="8">
<el-form-item label="往来单位:">
<el-select v-model="filterQuery.fromCorp" filterable placeholder="请选择往来仓库" clearable style="width: 90%">
<el-select v-model="filterQuery.fromCorp"
filterable
remote
reserve-keyword
placeholder="请选择往来单位" clearable style="width: 90%">
<el-option
v-for="item in fromInvOptions"
:key="item.erpId"
:label="item.name"
:value="item.erpId"
v-for="item in fromInvOptions"
:key="item.erpId"
:label="item.name"
:value="item.erpId"
>
<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.code }}</span>
</el-option>
</el-select>
</el-form-item>
@ -137,6 +141,8 @@
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<!-- <el-table-column label="校验状态" prop="status" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="(scope.row.status ===-1 ) | statusFilterType">{{-->
@ -445,6 +451,7 @@ export default {
startTime: null,
endTime: null,
};
this.actDateRange = null
this.getList();
},
//
@ -729,14 +736,13 @@ export default {
this.getResultDetailList();
},
findFromInvList(val) {
let cQuery = {
};
let cQuery = {};
selectCorpList(cQuery)
.then((response) => {
this.fromInvOptions = response.data || [];
})
.catch(() => {
});
.then((response) => {
this.fromInvOptions = response.data || [];
})
.catch(() => {
});
},
getResultDetailList() {
if (isBlank(this.currentRow.billNo)) {

@ -110,16 +110,16 @@ export default {
if (this.editType == 1) {
this.repeatAddCode(this.editData);
tabCode(this.editData)
.then((response) => {
console.log(response)
if (response.code === 20000) {
this.$message.success("提交成功");
} else {
this.$message.error(response.message);
}
this.loading = false;
});
// tabCode(this.editData)
// .then((response) => {
// console.log(response)
// if (response.code === 20000) {
// this.$message.success("");
// } else {
// this.$message.error(response.message);
// }
// this.loading = false;
// });
} else {
saveCode(this.editData)

@ -136,11 +136,11 @@
/>
</el-card>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
@ -282,7 +282,7 @@ export default {
return;
}
let str = this.currentRow.zczbhhzbapzbh;
if (str.search(",") != -1) {
if (this.str.search(",") != -1) {
this.currentCert = null;
this.certList = str.split(',');
this.dialogFormVisible = true;

@ -573,6 +573,7 @@ export default {
path: "",
});
this.filterQuery = {
udiCode: null,
nameCode: null,
unitFk: null,
page: 1,
@ -582,6 +583,7 @@ export default {
},
getList() {
this.loading = true;
this.filterQuery.udiCode = this.curRow.code;
this.filterQuery.nameCode = this.curRow.nameCode;
this.filterQuery.bindRlIds = this.curRow.bindRlIds;
this.filterQuery.unitFk = this.fromCorp;
@ -710,10 +712,8 @@ export default {
}
,
bindId(val) {
if (this.curRow.code != null || this.type == 1) {
this.$emit("selectBindRl", val);
// this.$emit("closeBindDialog", true);
} else {
let query = {
id: this.curRow.id,

@ -22,7 +22,7 @@
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据号:" >
<el-form-item class="query-form-item" label="单据号:">
<el-input
style="width: 90%"
v-model="listQuery.billNo"

@ -5,8 +5,8 @@
<el-button-group style="display: flex;margin: -40px 0 20px 80%; height: 35px">
<el-button
type="primary"
@click.native="submit('0')"
type="primary"
@click.native="submit('0')"
>生成单据
</el-button
>
@ -22,11 +22,11 @@
<el-col :span="11">
<el-form-item prop="actDate" label="单据时间">
<el-date-picker
v-model="formData.actDate"
type="datetime"
placeholder="日期"
:disabled="true"
style="width: 90%; "
v-model="formData.actDate"
type="datetime"
placeholder="日期"
:disabled="true"
style="width: 90%; "
>
</el-date-picker>
</el-form-item>
@ -37,10 +37,10 @@
<el-form-item prop="locStorageCode" label="当前仓库">
<el-select v-model="formData.invCode" placeholder="当前仓库信息" @change="locCHange" style="width: 90%">
<el-option
v-for="item in curInvOptions"
:key="item.name"
:label="item.name"
:value="item.code">
v-for="item in curInvOptions"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
@ -51,10 +51,10 @@
<el-select v-model="formData.action" placeholder="请选择单据类型" style="width: 90%"
@change="actionChange">
<el-option
v-for="item in busTypeOptions"
:key="item.name"
:label="item.name"
:value="item.action">
v-for="item in busTypeOptions"
:key="item.name"
:label="item.name"
:value="item.action">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
@ -66,21 +66,21 @@
<el-form-item class="query-form-item" prop="fromCorp" label="往来信息"
v-if="curAction.corpType === 0 || curAction.corpType === 2 || (curAction.corpType === 1 && !curAction.genUnit)">
<el-select
v-model="formData.fromCorp"
filterable
remote
clearable="true"
style="width: 90%"
reserve-keyword
placeholder="请输入往来单位"
:remote-method="findMethod"
:loading="loading"
v-model="formData.fromCorp"
filterable
remote
clearable="true"
style="width: 90%"
reserve-keyword
placeholder="请输入往来单位"
:remote-method="findMethod"
:loading="loading"
>
<el-option
v-for="item in fromOptions"
:key="item.erpId"
:label="item.name"
:value="item.erpId"
v-for="item in fromOptions"
:key="item.erpId"
:label="item.name"
:value="item.erpId"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
@ -91,10 +91,10 @@
<el-select v-model="formData.fromInvCode" placeholder="请选择往来仓库信息" clearable="true" style="width: 90%"
>
<el-option
v-for="item in fromInvOptions"
:key="item.code"
:label="item.name"
:value="item.code">
v-for="item in fromInvOptions"
: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
@ -130,52 +130,52 @@
style="width: 100%; margin-top: 20px;">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="物资名称"
prop="coName"
show-overflow-tooltip
label="物资名称"
prop="coName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="规格型号"
prop="spec"
show-overflow-tooltip
label="规格型号"
prop="spec"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="批次号"
prop="batchNo"
show-overflow-tooltip
label="批次号"
prop="batchNo"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="生产日期"
prop="productDate"
label="生产日期"
prop="productDate"
></el-table-column>
<el-table-column
label="失效日期"
prop="expireDate"
label="失效日期"
prop="expireDate"
></el-table-column>
<el-table-column
label="单据数量"
prop="count"
label="单据数量"
prop="count"
></el-table-column>
<el-table-column
label="价格"
prop="price"
label="价格"
prop="price"
></el-table-column>
<el-table-column
label="生产企业"
prop="manufacturer"
show-overflow-tooltip
label="生产企业"
prop="manufacturer"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册/备案凭证号"
prop="certCode"
show-overflow-tooltip
label="注册/备案凭证号"
prop="certCode"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作" width="100" prop="price" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="deleteOrderDetail(scope.$index, scope.row)"
type="text"
size="small"
@click="deleteOrderDetail(scope.$index, scope.row)"
>删除
</el-button>
</template>
@ -317,15 +317,15 @@ export default {
products: products
};
stockOrderChange(tQuery)
.then((response) => {
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog();
} else {
this.$message.error(response.message);
}
this.loading = false;
});
.then((response) => {
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog();
} else {
this.$message.error(response.message);
}
this.loading = false;
});
},
@ -333,15 +333,15 @@ export default {
findInvListByUser() {
this.curInvOptions = [];
findInvByUser()
.then(response => {
this.curInvOptions = response.data || [];
if (this.curInvOptions != null && this.curInvOptions.length > 0 && this.formData.invWarehouseCode == null) {
this.formData.invWarehouseCode = this.curInvOptions[0].code;
this.getBusTypeByInv()
}
})
.catch(() => {
});
.then(response => {
this.curInvOptions = response.data || [];
if (this.curInvOptions != null && this.curInvOptions.length > 0 && this.formData.invWarehouseCode == null) {
this.formData.invWarehouseCode = this.curInvOptions[0].code;
this.getBusTypeByInv()
}
})
.catch(() => {
});
},
@ -351,11 +351,11 @@ export default {
code: this.formData.invCode,
};
findByInvUser(query)
.then((response) => {
this.busTypeOptions = response.data || [];
})
.catch(() => {
});
.then((response) => {
this.busTypeOptions = response.data || [];
})
.catch(() => {
});
},
@ -371,11 +371,11 @@ export default {
pcode: invCode
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
findStorageMethod(query) {
@ -386,11 +386,11 @@ export default {
locInvCode: this.formData.locStorageCode,
};
filterAllByLoc(cQuery)
.then((response) => {
this.fromStorageOptions = response.data || [];
})
.catch(() => {
});
.then((response) => {
this.fromStorageOptions = response.data || [];
})
.catch(() => {
});
},
findMethod(query) {
this.fromOptions = [];
@ -410,13 +410,13 @@ export default {
cQuery.corpType = 2;
} else return;
getBasicUnitMaintains(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data.list || [];
})
.catch(() => {
this.loading = false;
});
.then((response) => {
this.loading = false;
this.fromOptions = response.data.list || [];
})
.catch(() => {
this.loading = false;
});
},
@ -451,14 +451,14 @@ export default {
locInvCode: this.formData.invCode,
};
findByFrom(cQuery)
.then((response) => {
this.fromInvOptions = response.data || [];
if (val == 1) {
this.formData.fromInvCode = this.fromInvOptions[0].code;
}
})
.catch(() => {
});
.then((response) => {
this.fromInvOptions = response.data || [];
if (val == 1) {
this.formData.fromInvCode = this.fromInvOptions[0].code;
}
})
.catch(() => {
});
},
changeFun(row) {
@ -475,14 +475,14 @@ export default {
orderIdFk: orderId
}
getBizDetailList(query)
.then((response) => {
this.detailLoading = false;
this.detailList = response.data.list || [];
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
.then((response) => {
this.detailLoading = false;
this.detailList = response.data.list || [];
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
},
deleteOrderDetail(index) {
for (let i = 0; i < this.detailList.length; i++) {

@ -273,7 +273,7 @@ import AcceptOrder from "@/views/inout/DialogReviewOrder";
import DialogInvoice from "@/views/inout/DialogInvoice";
import InvoiceRegister from "@/views/inout/InvoiceRegister";
import {previewImage} from "@/api/purchase/supCompany";
import {previewImage,previewFile} from "@/api/purchase/supCompany";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
import store from "@/store";
@ -296,7 +296,7 @@ export default {
required: true,
},
getOrderDetails: {
type: Object,
type: Function,
required: true,
},
invoiceRow: {
@ -488,14 +488,6 @@ export default {
this.$message.error("请选择要登记的物资! ");
return false;
}
// if (this.$isBlank(this.inputQuery.machineNo)) {
// this.$message.error("");
// return;
// }
// if (this.$isBlank(this.inputQuery.invoiceCode)) {
// this.$message.error("");
// return;
// }
if (this.$isBlank(this.inputQuery.invoiceEncode)) {
this.$message.error("发票编码不能为空!");
return;
@ -509,18 +501,36 @@ export default {
return;
}
this.inputQuery.list = this.invoiceRow;
let mount=0;
for(var i=0;i<this.invoiceRow.length;i++){
mount+=this.invoiceRow[i].amount
let mount = 0;
for (var i = 0; i < this.invoiceRow.length; i++) {
mount += this.invoiceRow[i].amount
}
if(mount != this.inputQuery.price){
this.$message.error("价格不匹配!");
if (mount != this.inputQuery.price) {
this.$confirm("价格不匹配,是否确定提交?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.postInvoice();
})
.catch(() => {
});
return;
} else {
this.postInvoice();
}
},
postInvoice() {
insertInvoice(this.inputQuery)
.then((response) => {
if (response.code === 20000) {
this.closeDialog();
this.statusCode = response.code;
this.getOrderDetails();
} else {
this.$message.error(response.message);
}
@ -529,12 +539,13 @@ export default {
this.$message.error(response.message);
});
//
updateorderBiz(this.inputQuery.list).then((res) => {
this.closeDialog();
});
// //
// updateorderBiz(this.inputQuery.list).then((res) => {
// this.closeDialog();
// });
},
getInputFocus(event) {
event.currentTarget.select();
},
@ -602,8 +613,29 @@ export default {
);
},
uploadHandlePreview(file) {
console.log(file);
console.log(this.fileList);
// console.log(file.raw.type);
// console.log(this.fileList);
// let pdf = "application/pdf"
// let type = file.raw.type
// if(type==pdf){
//
// this.certFileUrl =
// this.BASE_URL +
// "/udiwms/image/register/file/getImage?type=image2&name=";
// this.imgList = [];
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// this.imgList = response.data;
// window.open(this.imgList[0])
// }
// console.log(this.imgList);
// });
// }else{
//
// }
},
uploadHandleRemove(file, fileList) {
this.inputQuery.licenseUrl = null;
@ -687,18 +719,34 @@ export default {
showImgViewer(row) {
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name=";
"/udiwms/image/register/file/getImage?type=image2&name="+this.inputQuery.licenseUrl;
this.imgList = [];
previewImage({
imageUrl: this.inputQuery.licenseUrl,
certFileUrl: this.certFileUrl,
}).then((response) => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList);
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl)
let index = this.inputQuery.licenseUrl.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(this.inputQuery.licenseUrl.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault();
};

@ -147,17 +147,19 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
@row-click="handleSelectionChange">
@current-change="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="登记状态" prop="checkStatus" width="100">
<el-table-column label="登记状态" prop="invoiceStatus" width="100">
<template slot-scope="scope">
<el-tag type="danger" v-if="scope.row.allCout==0">
<el-tag type="danger" v-if="scope.row.invoiceStatus==0">
未登记
</el-tag>
<el-tag type="warning" v-if="scope.row.partCount>0 && scope.row.allCout>0">
<el-tag type="warning" v-if="scope.row.invoiceStatus==1 ">
未全部登记
</el-tag>
<el-tag type="success" v-if="scope.row.partCount == 0 && scope.row.allCout>0">
<el-tag type="success" v-if="scope.row.invoiceStatus == 2 ">
全部登记
</el-tag>
</template>
@ -169,9 +171,13 @@
</el-table-column>
<el-table-column label="送货单位" prop="fromName" width="220" v-if="showSup">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="审核时间" prop="auditTime" width="150" show-overflow-tooltip>
<el-table-column label="审核时间" prop="auditTime" width="150" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="采购部门" prop="deptName" width="120" v-if="enableDept">
@ -203,6 +209,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="操作" width="180" fixed="right">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.checkStatus==1" size="small"
@ -237,7 +244,7 @@
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-单据详情</span>
<el-table v-loading="bizDetailLoading" :data="codeDetailList" style="width: 100%" border
@row-click="BizDetail"
@current-change="BizDetail"
row-key="id" highlight-current-row
>
<el-table-column label="序号" type="index"></el-table-column>
@ -315,7 +322,7 @@
></el-table-column>
<el-table-column
label="扫码数量"
prop="scanCount"
prop="reCount"
width="100"
></el-table-column>
<!--<el-table-column label="操作" width="160" fixed="right">-->
@ -348,7 +355,7 @@
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-发票信息</span>
<el-table v-loading="bizDetailLoading" :data="bizDetailList" style="width: 100%" border
<el-table v-loading="invoiceLoading" :data="bizDetailList" style="width: 100%" border
row-key="id"
>
<el-table-column label="序号" type="index"></el-table-column>
@ -469,6 +476,7 @@
<checkInvoice
:closeDialog="closecheckInvoice"
:input="inputInv"
:getOrderDetails="getOrderDetails"
></checkInvoice>
</el-dialog>
@ -522,7 +530,7 @@
<script>
import {
deleteByOrderId,
getOrderList, rollUnReceivebackOrder, filterInvoice, filterOrder, filterOrderList
getOrderList, rollUnReceivebackOrder, filterInvoice, filterOrder, filterOrderList, getUserBean
} from '../../api/inout/order'
import {getLocalJoinByUser} from "@/api/basic/busType";
import {getInvListByUser} from "@/api/system/invWarehouse";
@ -545,7 +553,7 @@ import InvoiceRegistrationDetermine from "@/views/inout/InvoiceRegistrationDeter
import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint"
import {getDeptListByUser} from "@/api/auth/authDept";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {previewImage} from '@/api/purchase/supCompany'
import {previewFile, previewImage} from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
@ -560,6 +568,8 @@ export default {
name: "IoCheckSuccessOrder",
data() {
return {
users:{},
defaultSort: {prop: 'createTime', order: 'desc'},
savebillno: null,
invoiceRow: [],
inputInv: [],
@ -697,6 +707,7 @@ export default {
bizTotal: 0,
invTotal: 0,
bizDetailLoading: false,
invoiceLoading:false,
bizDetailList: [],
codeQuery: {
orderIdFk: null,
@ -786,39 +797,48 @@ export default {
this.showSearch = !this.showSearch;
},
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name=" + row.licenseUrl;
this.imgList = [];
previewImage({imageUrl: row.licenseUrl, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl);
let index = row.licenseUrl.lastIndexOf('.');
if (index === -1) {
this.$message.error("文件名异常!");
return false;
}
if (row.licenseUrl.substr(index + 1) === 'pdf') {
let pdf = "application/pdf";
let binaryData = [];
previewFile(this.certFileUrl).then(res => {
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, { type: pdf }));
window.open(URL);
});
return false;
}
this.imgViewerVisible = true;
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
document.body.style.overflow = "auto"; //
document.removeEventListener("touchmove", m, false); //
},
invChange() {
this.filterQuery.action = null;
this.getBusType();
},
freshen() {
this.Upinvoice = false;
this.getBizDetailListInv();
// this.getBizDetailListInv();
},
printOrder(row) {
this.currentManufacturer = row;
@ -850,12 +870,16 @@ export default {
deleteById(row)
.then((response) => {
if (response.code == 20000) {
if(response.data.length == 0){
this.getList();
}else {
this.getCodeDetailList();
}
this.getBizDetailListInv(this.subRow);
this.$message({
type: "success",
message: "删除成功!",
});
this.getCodeDetailList();
}
})
.catch(() => {
@ -891,6 +915,29 @@ export default {
this.resultDetailList = [];
this.resultTotal = 0;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getUser(){
getUserBean()
.then((res) => {
if(res.code == 20000){
if ( res.data.customerId == "110") {
this.showSup = true;
}
}
})
},
//
getList() {
this.loading = true;
@ -971,6 +1018,7 @@ export default {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
})
.catch(() => {
});
@ -1014,7 +1062,7 @@ export default {
}
this.codeQuery.orderIdFk = this.currentRow.billNo;
this.codeDetailLoading = true;
this.codeDetailList=[];
filterBizOrderList(this.codeQuery).then((res) => {
this.codeDetailLoading = false;
if (res.code === 20000) {
@ -1050,15 +1098,17 @@ export default {
this.$message.error("请先选择需要查询的单据!")
return;
}
this.bizDetailLoading = true;
this.invoiceLoading = true;
if (row != null) {
this.bizQuery.orderIdFk = row.orderIdFk;
this.bizQuery.batchNo = row.batchNo;
this.bizQuery.relId = row.bindRlFk;
// this.bizQuery.bizIdFk = row.id;
}else{
this.bizQuery = {}
}
filterListInvoice(this.bizQuery).then((res) => {
this.bizDetailLoading = false;
this.invoiceLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data.list || [];
this.invTotal = res.data.total || 0;
@ -1068,7 +1118,7 @@ export default {
this.invTotal = 0;
}
}).catch((error) => {
this.bizDetailLoading = false;
this.invoiceLoading = false;
this.$message.error(error.message);
this.bizDetailList = [];
this.invTotal = 0;
@ -1170,10 +1220,7 @@ export default {
,
created() {
let supId = this.$store.getters.customerId;
if (supId == "110") {
this.showSup = true;
}
this.getUser();
this.getInvList();
this.getDeptList();
this.getBusType();

@ -127,7 +127,7 @@
:total="codeTotal"
:page.sync="codeQuery.page"
:limit.sync="codeQuery.limit"
@pagination="getOrderDetails"
@pagination="getCodeDetailList"
/>
</el-tab-pane>

@ -106,20 +106,26 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
@row-click="handleSelectionChange">
@row-click="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="送单号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150"></el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip width="150">
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="审核时间" prop="auditTime" show-overflow-tooltip width="150">
<el-table-column label="审核时间" prop="auditTime" show-overflow-tooltip width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.auditTime }}</span>
@ -147,6 +153,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope">
<el-button
@ -164,13 +172,13 @@
<!-- </el-button-->
<!-- >-->
<!-- 暂时隐藏-->
<el-button
type="text"
size="small"
@click.native.stop="rollback(scope.row)"
>撤回
</el-button
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="rollback(scope.row)"-->
<!-- >撤回-->
<!-- </el-button-->
<!-- >-->
<el-button
type="text"
@ -459,7 +467,7 @@ import DialogcChangeNewOrder from "@/views/inout/DialogcChangeNewOrder";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
import DialogCheck from "@/views/inout/DialogCheck";
import {getBizDetailList} from "@/api/inout/orderDetailBiz";
import {previewImage} from "@/api/purchase/supCompany";
import {previewImage,previewFile} from "@/api/purchase/supCompany";
import {
inspectionStockQRCodeTextPDFFromTemplateStatementFile,
stockQRCodeTextPDFFromTemplateStatementFile
@ -477,6 +485,7 @@ export default {
name: "IoAuditedOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
BASE_URL: process.env.VUE_APP_BASE_API,
imgViewerVisible: false,
imgViewerVisibleCold: false,
@ -647,39 +656,85 @@ export default {
this.getList();
},
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl + "========");
if(row.filePath.substr(-1) == ','){
row.filePath=row.filePath.slice(0, row.filePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.filePath;
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl)
let index = row.filePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.filePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
showImgViewerCold(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl + "========");
this.imgListCold = [];
previewImage({imageUrl: row.coldFilePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgListCold = response.data;
}
console.log(this.imgListCold)
this.imgViewerVisibleCold = true;
});
if(row.coldFilePath.substr(-1) == ','){
row.coldFilePath=row.coldFilePath.slice(0, row.coldFilePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.coldFilePath;
this.imgList = [];
this.imgList.push(this.certFileUrl)
let index = row.coldFilePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.coldFilePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
@ -761,6 +816,19 @@ export default {
this.resultDetailList = [];
this.resultTotal = 0;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -0,0 +1,688 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="单号:">
<el-input v-model="filterQuery.billNo" placeholder="单号"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="出入库类型:">
<el-select v-model="filterQuery.mainAction" placeholder="请选择出入库类型" style="width: 90%">
<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-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据类型:">
<el-select v-model="filterQuery.action" placeholder="请选择单据类型"
style="width: 90%"
clearable>
<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-row>
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="所属仓库:">
<el-select v-model="filterQuery.invCode" placeholder="请选择所属仓库" clearable="true"
style="width: 90%"
@change="invChange"
>
<el-option
v-for="item in invList"
: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-col :span="8">
<el-form-item class="query-form-item" label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 90%"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%"
highlight-current-row
@row-click="handleSelectionChange"
border
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip>
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
<el-table-column label="所属部门" prop="deptName" width="120">
</el-table-column>
<el-table-column label="所属仓库" prop="invName" width="120">
</el-table-column>
<el-table-column label="来源单号" prop="corpOrderId" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="来源" prop="fromType" width="140">
<template slot-scope="scope">
<span>{{ fromTypeMap[scope.row.fromType] }}</span>
</template>
</el-table-column>
<el-table-column label="单据状态" prop="status" width="100">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{
checkStatus[scope.row.status]
}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="addOrders(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row.billNo)"
>删除
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="onUpload(scope.row.billNo)"
>审核提交
</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
title="编辑单据"
:visible.sync="addOrderVisible"
width="85%"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addOrderVisible"
@close='closeDialog'
>
<addOrder
:closeDialog="closeDialog"
:orderQuery="idQuery"
:viewType="viewType"
></addOrder>
</el-dialog>
<el-dialog
title="单号详情"
:visible.sync="codeDetailVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
v-if="codeDetailVisible"
>
<codeDetail
:idQuery="idQuery"
v-on:closeDetailDialog="closeDetailDialog"
></codeDetail>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="getList"
/>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow == null ? '' : currentRow.billNo }}-业务扫码校验结果</span>
<!--<el-form :inline="true" :model="bizQuery" class="query-form" size="mini">-->
<!-- <el-form-item class="query-form-item" label="物资名称:">-->
<!-- <el-input-->
<!-- v-model="bizQuery.productName"-->
<!-- placeholder="请输入物资名称"-->
<!-- clearable-->
<!-- >-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-button-group>-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- icon="el-icon-refresh"-->
<!-- @click="onBizReset"-->
<!-- >重置-->
<!-- </el-button>-->
<!-- <el-button type="primary" @click="onBizSubmit"-->
<!-- icon="el-icon-search"-->
<!-- >查询-->
<!-- </el-button>-->
<!-- </el-button-group>-->
<!-- </el-form-item>-->
<!--</el-form>-->
<el-table v-loading="bizDetailLoading" :data="bizDetailList" style="width: 100%" border
:row-style="rowStyle"
row-key="id"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="物资名称" width="150"
prop="coName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="规格型号" width="150"
prop="spec"
></el-table-column>
<el-table-column label="批次号" header-align="center">
<el-table-column header-align="center"
label="手录" width="100"
prop="bbatchNo"
show-overflow-tooltip
></el-table-column>
<el-table-column header-align="center"
label="扫码"
prop="sbatchNo" width="100"
show-overflow-tooltip
></el-table-column>
</el-table-column>
<el-table-column label="生产日期" header-align="center">
<el-table-column header-align="center"
label="手录" width="100"
prop="bproductDate"
show-overflow-tooltip
></el-table-column>
<el-table-column header-align="center"
label="扫码" width="100"
prop="sproductDate"
show-overflow-tooltip
></el-table-column>
</el-table-column>
<el-table-column label="失效日期" header-align="center">
<el-table-column header-align="center"
label="手录" width="100"
prop="bexpireDate"
show-overflow-tooltip
></el-table-column>
<el-table-column header-align="center"
label="扫码" width="100"
prop="sexpireDate"
show-overflow-tooltip
></el-table-column>
</el-table-column>
<el-table-column label="数量" header-align="center">
<el-table-column
header-align="center"
label="单据数量" width="100"
prop="count"
></el-table-column>
<el-table-column
header-align="center"
label="扫码数量" width="100"
prop="scanCount"
></el-table-column>
</el-table-column>
<el-table-column
label="价格"
prop="price" width="100"
></el-table-column>
<el-table-column width="100" label="计量单位" prop="measname">
</el-table-column>
<el-table-column
label="生产企业"
prop="manufacturer" width="160"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册/备案号" width="160"
prop="certCode"
show-overflow-tooltip
></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
deleteByOrderId,
submitOrderWeb,
getOrderList
} from "../../api/inout/order";
import addOrder from "./DialogCreateOrder";
import {getInvListByUser} from "@/api/system/invWarehouse";
import {getLocalJoinByUser} from "@/api/basic/busType";
import {isBlank} from "@/utils/strUtil";
import {getBizDetailList, getCheckDetailList} from "@/api/inout/orderDetailBiz";
export default {
name: "IoCheckAuditBusOrder",
data() {
return {
showSearch: true,
filterQuery: {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "unCheck",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
},
viewType: 3,
checkStatus: {
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "校验成功",
6: "校验异常",
7: "审核通过",
8: "审核拒绝",
9: "正在处理", 10: "待审核", 11: "待配货",
},
curIndex: "",
idQuery: {},
storageList: [],
invList: [],
list: [],
codeDetailVisible: false,
addOrderVisible: false,
total: 0,
loading: false,
index: null,
formName: null,
errorDetail: "",
formMap: {
add: "新增",
edit: "编辑",
},
enableDept: false,
fromTypeMap: {
"1": "UDIMS平台",
"2": "网页新增",
"3": "pda即时校验",
"4": "pda未校验",
"5": "pc端扫码精灵",
"6": "流转自动补单",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10": "手动补单",
"11": "仓库盘点",
"12": "采购计划",
"13": "领用单据",
"14": "第三方系统单据",
},
deleteData: {
billNo: "",
status: 10,
},
dialogTableVisible: false,
formLoading: false,
deleteLoading: false,
busTypes: [],
actDateRange: [],
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
currentRow: {
billNo: ""
},
bizQuery: {
productName: null,
orderIdFk: null,
page: 1,
limit: 10
},
bizTotal: 0,
bizDetailLoading: false,
bizDetailList: [],
};
},
components: {
addOrder,
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "unCheck",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
};
this.actDateRange = [];
this.getList();
},
onSubmit() {
if (this.actDateRange !== null) {
this.filterQuery.startTime = this.actDateRange[0];
this.filterQuery.endTime = this.actDateRange[1];
} else {
this.filterQuery.startTime = null;
this.filterQuery.endTime = null;
}
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSizeChange(val) {
this.filterQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
closeDetailDialog(val) {
this.codeDetailVisible = false;
},
getBusType() {
let query = {
code: this.filterQuery.invCode,
enabled: true,
vueType: "supDelivery",
};
getLocalJoinByUser(query)
.then((response) => {
this.busTypes = response.data.list || [];
this.getList();
})
.catch(() => {
});
},
addOrders(row) {
this.currentRow = row;
this.idQuery = {};
this.idQuery = row;
this.addOrderVisible = true;
},
closeDialog() {
this.addOrderVisible = false;
this.addHosOrderVisible = false;
this.getList();
},
//
getList() {
this.loading = true;
getOrderList(this.filterQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
if (this.list.length == 0) {
this.bizDetailList = [];
}
} else {
this.$message.error(response.message);
}
})
.catch((error) => {
this.$message.error(error.message)
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.billNo = data;
deleteByOrderId(this.deleteData)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else if (response.code == 520) {
this.$message.error("新增扫码单据列表已不存在该扫码单据!");
this.getList();
} else {
this.$message.error(response.message);
this.getList();
}
})
.catch(() => {
});
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
this.currentRow = null;
this.bizDetailList = [];
})
.catch(() => {
});
},
onUpload(data) {
this.loading = true;
var idQuery = {
billNo: "",
};
idQuery.billNo = data;
submitOrderWeb(idQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功");
this.getList();
this.bizDetailList = [];
} else {
this.$message.error(response.message);
}
this.loading = false;
});
},
getInvList() {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
})
.catch(() => {
});
},
invChange() {
this.filterQuery.action = null;
this.getBusType();
},
statusFilterType(status) {
const statusMap = {
2: "warning",
1: "warning",
4: "danger",
3: "success",
};
return statusMap[status];
},
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (!this.$isNotBlank(row.supId) || !this.$isNotBlank(row.bindRlFk)) {
rowBackground.color = '#f60303';
return rowBackground;
}
if (!row.checkSuccess) {
rowBackground.color = '#f60303';
}
return rowBackground;
},
onBizReset() {
this.bizQuery = {
productName: null,
orderIdFk: null,
page: 1,
limit: 10
};
this.getBizDetailList();
},
onBizSubmit() {
this.bizQuery.page = 1;
this.getBizDetailList();
},
handleSelectionChange(val) {
this.currentRow = val;
this.getBizDetailList();
},
getBizDetailList() {
if (this.currentRow == null || isBlank(this.currentRow.billNo)) {
this.$message.error("请先选择需要查询的单据!")
return;
}
this.bizDetailLoading = true;
this.bizQuery.orderIdFk = this.currentRow.billNo;
getCheckDetailList(this.bizQuery).then((res) => {
this.bizDetailLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data || [];
} else {
this.$message.error(res.message);
this.bizDetailList = [];
}
}).catch((error) => {
this.bizDetailLoading = false;
this.$message.error(error.message);
this.bizDetailList = [];
this.bizTotal = 0;
})
},
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getInvList();
this.getBusType();
this.getList();
},
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -0,0 +1,532 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery"
:rules="rules"
ref="form"
class="query-form" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="单号:">
<el-input v-model="filterQuery.billNo" placeholder="单号"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="出入库类型:" prop="mainAction">
<el-select v-model="filterQuery.mainAction" placeholder="请选择出入库类型" style="width: 90%">
<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-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据类型:">
<el-select v-model="filterQuery.action" placeholder="请选择单据类型"
style="width: 90%"
clearable>
<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-row>
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="所属仓库:">
<el-select v-model="filterQuery.invCode" placeholder="请选择所属仓库" clearable="true"
style="width: 90%"
@change="invChange"
>
<el-option
v-for="item in invList"
: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-col :span="8">
<el-form-item class="query-form-item" label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 90%"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
<el-button type="primary" icon="el-icon-bottom-left" @click="selectThrOrderFunction()"
:loading="loading">选入第三方单据
</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="160"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip>
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
<el-table-column label="所属部门" prop="deptName" width="120">
</el-table-column>
<el-table-column label= prop="invName" width="120">
</el-table-column>
<el-table-column label="来源单据号" prop="corpOrderId" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="来源" prop="fromType" width="140">
<template slot-scope="scope">
<span>{{ fromTypeMap[scope.row.fromType] }}</span>
</template>
</el-table-column>
<el-table-column label="单据状态" prop="status" width="100">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{
checkStatus[scope.row.status]
}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="editOrder(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row.billNo)"
>删除
</el-button
>
<el-button
type="text"
size="small"
v-if="scope.row.status == 1"
@click.native.stop="onUpload(scope.row.billNo)"
>提交审核
</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
:title="titleMap[title]"
:visible.sync="addOrderVisible"
width="85%"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addOrderVisible"
@close='closeDialog'
>
<addOrder
:closeDialog="closeDialog"
:orderQuery="idQuery"
:viewType="viewType"
></addOrder>
</el-dialog>
<el-dialog
title="选入第三方单据"
:visible.sync="selectThrOrderVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="85%"
v-if="selectThrOrderVisible"
>
<selectThrOrder
:closeDialog="closeDialog"
:data="thisData"
></selectThrOrder>
</el-dialog>
<el-dialog
title="选入领用单据"
:visible.sync="selectReceiveVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="85%"
v-if="selectReceiveVisible"
>
<selectReceiveOrderDialog
:closeDialog="closeDialog"
:data="thisData"
></selectReceiveOrderDialog>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
deleteByOrderId,
submitOrderWeb,
getOrderList, submitBiz
} from "../../api/inout/order";
import addOrder from "./DialogCreateOrder";
import {getInvListByUser} from "@/api/system/invWarehouse";
import {getLocalJoinByUser} from "@/api/basic/busType";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import selectThrOrder from "./DialogSelectThrOrder";
import selectReceiveOrderDialog from "./DialogSelectReceiveOrder";
export default {
name: "IoCheckAuditNewOrder",
data() {
return {
showSearch: true,
titleMap: {
add: "新增单据",
edit: "编辑单据",
},
title: "add",
filterQuery: {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "new_biz",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
},
checkStatus: {
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "校验成功",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理", 10: "待审核", 11: "待配货",
},
curIndex: "",
idQuery: {},
storageList: [],
invList: [],
list: [],
addOrderVisible: false,
total: 0,
loading: false,
index: null,
formName: null,
errorDetail: "",
formMap: {
add: "新增",
edit: "编辑",
},
enableDept: false,
fromTypeMap: {
"1": "UDIMS平台",
"2": "网页新增",
"3": "pda即时校验",
"4": "pda未校验",
"5": "pc端扫码精灵",
"6": "流转自动补单",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10": "手动补单",
"11": "仓库盘点",
"12": "采购计划",
"13": "领用单据",
"14": "第三方系统单据",
},
deleteData: {
billNo: "",
status: 10,
},
dialogTableVisible: false,
formLoading: false,
deleteLoading: false,
busTypes: [],
actDateRange: [],
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
viewType: 5,
thisData: {},
selectThrOrderVisible: false,
selectReceiveVisible: false,
lotType: "LOT",//
};
},
components: {
addOrder, selectThrOrder, selectReceiveOrderDialog
},
methods: {
onReset() {
this.filterQuery = {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "new_biz",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
};
this.actDateRange = [];
this.getList();
},
onSubmit() {
if (this.actDateRange !== null) {
this.filterQuery.startTime = this.actDateRange[0];
this.filterQuery.endTime = this.actDateRange[1];
} else {
this.filterQuery.startTime = null;
this.filterQuery.endTime = null;
}
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
getBusType() {
let query = {
code: this.filterQuery.invCode,
enabled: true,
};
getLocalJoinByUser(query)
.then((response) => {
this.busTypes = response.data.list || [];
this.getList();
})
.catch(() => {
});
},
addOrders() {
this.idQuery = {};
this.title = "add";
this.addOrderVisible = true;
},
editOrder(row) {
this.idQuery = row;
this.title = "edit";
this.addOrderVisible = true;
},
closeDialog() {
this.addOrderVisible = false;
this.addHosOrderVisible = false;
this.selectReceiveVisible = false;
this.selectThrOrderVisible = false;
this.getList();
},
//
getList() {
this.loading = true;
getOrderList(this.filterQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch((error) => {
this.$message.error(error.message)
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.billNo = data;
deleteByOrderId(this.deleteData)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else if (response.code == 520) {
this.$message.error("新增扫码单据列表已不存在该扫码单据!");
this.getList();
} else {
this.$message.error(response.message);
this.getList();
}
})
.catch(() => {
});
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
},
onUpload(data) {
this.loading = true;
var idQuery = {
billNo: "",
};
idQuery.billNo = data;
submitBiz(idQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功");
this.getList();
} else {
this.$message.error(response.message);
}
this.loading = false;
});
},
getInvList() {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
this.getList();
})
.catch(() => {
});
},
invChange() {
this.filterQuery.action = null;
this.getBusType();
},
statusFilterType(status) {
const statusMap = {
2: "warning",
1: "warning",
4: "danger",
3: "success",
};
return statusMap[status];
},
selectThrOrderFunction() {
this.selectThrOrderVisible = true;
},
selectReceive() {
this.selectReceiveVisible = true;
},
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getInvList();
this.getBusType();
this.getList();
this.lotType = this.$route.query.name;
if (this.lotType == 'NO_LOT') {
this.viewType = 5;
} else {
this.viewType = 6;
}
},
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -93,19 +93,25 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
@row-click="handleSelectionChange">
@row-click="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150"></el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip width="150">
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']">
<!--<template slot-scope="scope">-->
<!-- <i class="el-icon-time"></i>-->
<!-- <span>{{ scope.row.createTime }}</span>-->
<!--</template>-->
</el-table-column>
<el-table-column label="核对时间" prop="checkTime" show-overflow-tooltip width="150">
<el-table-column label="核对时间" prop="checkTime" show-overflow-tooltip width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']">
<!--<template slot-scope="scope">-->
<!-- <i class="el-icon-time"></i>-->
<!-- <span>{{ scope.row.createTime }}</span>-->
@ -132,6 +138,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="220" fixed="right">
<template slot-scope="scope">
@ -152,13 +160,13 @@
<!-- 暂时隐藏-->
<el-button
type="text"
size="small"
@click.native.stop="rollback(scope.row)"
>撤回
</el-button
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="rollback(scope.row)"-->
<!-- >撤回-->
<!-- </el-button-->
<!-- >-->
<el-button
type="text"
size="small"
@ -548,7 +556,7 @@ import {
} from "@/api/itextpdf/orderPrint"
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {previewImage} from '@/api/purchase/supCompany'
import {previewImage,previewFile} from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
@ -563,6 +571,7 @@ export default {
name: "IoCheckSuccessOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
imgList: [],
imgListCold: [],
imgViewerVisible: false,
@ -746,37 +755,84 @@ export default {
this.showSearch = !this.showSearch;
},
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
if(row.filePath.substr(-1) == ','){
row.filePath=row.filePath.slice(0, row.filePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.filePath;
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl)
let index = row.filePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.filePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
showImgViewerCold(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl + "========");
this.imgListCold = [];
previewImage({imageUrl: row.coldFilePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgListCold = response.data;
}
console.log(this.imgListCold)
this.imgViewerVisibleCold = true;
});
if(row.coldFilePath.substr(-1) == ','){
row.coldFilePath=row.coldFilePath.slice(0, row.coldFilePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.coldFilePath;
this.imgList = [];
this.imgList.push(this.certFileUrl)
let index = row.coldFilePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.coldFilePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
@ -933,6 +989,18 @@ export default {
this.resultDetailList = [];
this.resultTotal = 0;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -111,11 +111,15 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
@cell-click="handleSelectionChange">
@cell-click="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="160"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
@ -137,6 +141,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<el-button
@ -472,6 +478,7 @@ export default {
name: "IoCheckErrorOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
id: "",
@ -695,6 +702,18 @@ export default {
this.resultDetailList = [];
this.resultTotal = 0;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -90,11 +90,15 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
@current-change="handleSelectionChange">
@current-change="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="140"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
@ -116,6 +120,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope">
<el-button
@ -420,7 +426,7 @@ import AcceptOrder from "@/views/inout/DialogThrReviewOrder";
import {getDeptListByUser} from "@/api/auth/authDept";
import DialogCheck from "@/views/inout/DialogCheck";
import {getBizDetailList} from '@/api/inout/orderDetailBiz'
import {previewImage} from '@/api/purchase/supCompany'
import {previewImage,previewFile} from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
@ -435,6 +441,7 @@ export default {
name: "IoSupSearchOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
BASE_URL: process.env.VUE_APP_BASE_API,
imgList: [],
imgListCold: [],
@ -615,38 +622,84 @@ export default {
},
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl + "========");
if(row.filePath.substr(-1) == ','){
row.filePath=row.filePath.slice(0, row.filePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.filePath;
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
this.imgList.push(this.certFileUrl)
let index = row.filePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.filePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
showImgViewerCold(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl + "========");
this.imgListCold = [];
previewImage({imageUrl: row.coldFilePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgListCold = response.data;
}
console.log(this.imgListCold)
this.imgViewerVisibleCold = true;
});
if(row.coldFilePath.substr(-1) == ','){
row.coldFilePath=row.coldFilePath.slice(0, row.coldFilePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.coldFilePath;
this.imgList = [];
this.imgList.push(this.certFileUrl)
let index = row.coldFilePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.coldFilePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
@ -706,6 +759,18 @@ export default {
this.resultDetailList = [];
this.resultTotal = 0;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -120,12 +120,15 @@
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
border :default-sort="defaultSort"
@sort-change="handleSortChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="160"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
@ -147,6 +150,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
@ -246,6 +251,7 @@ export default {
name: "IoCreateBusOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
titleMap: {
add: "新增单据",
@ -421,6 +427,17 @@ export default {
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -105,12 +105,15 @@
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
border :default-sort="defaultSort"
@sort-change="handleSortChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="160"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
@ -132,6 +135,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
@ -201,6 +206,7 @@ export default {
name: "IoCreateScanOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
titleMap: {
add: "新增单据",
@ -371,6 +377,17 @@ export default {
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -134,13 +134,16 @@
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
border :default-sort="defaultSort"
@sort-change="handleSortChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.createTime }}</span>
@ -167,6 +170,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
@ -256,6 +261,7 @@ export default {
name: "IoDealOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
id: "",
@ -317,6 +323,7 @@ export default {
"12": "采购计划",
"13": "领用单据",
"14": "第三方系统单据",
"18": "多次出入库单据",
},
deleteData: {
billNo: "",
@ -453,6 +460,17 @@ export default {
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -108,12 +108,15 @@
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
border :default-sort="defaultSort"
@sort-change="handleSortChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="160"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
</el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
@ -135,6 +138,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
@ -204,6 +209,7 @@ export default {
name: "IoCreateScanOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
titleMap: {
add: "新增单据",
@ -374,6 +380,17 @@ export default {
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -113,12 +113,16 @@
highlight-current-row
@row-click="handleSelectionChange"
border
:default-sort="defaultSort"
@sort-change="handleSortChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.createTime }}</span>
@ -145,6 +149,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
@ -349,6 +355,7 @@ export default {
name: "IoDealOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
id: "",
@ -537,6 +544,17 @@ export default {
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -45,6 +45,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" fixed="right" width="150">
<template slot-scope="scope">
<el-button

@ -113,12 +113,16 @@
highlight-current-row
@row-click="handleSelectionChange"
border
:default-sort="defaultSort"
@sort-change="handleSortChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip>
<el-table-column label="创建时间" prop="createTime" width="150" show-overflow-tooltip
sortable="custom"
:sort-orders="['ascending', 'descending']" >
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.createTime }}</span>
@ -145,6 +149,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
@ -279,6 +285,7 @@
prop="certCode"
show-overflow-tooltip
></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
@ -309,6 +316,7 @@ export default {
name: "IoWaitAllocateOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
id: "",
@ -498,6 +506,17 @@ export default {
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;

@ -36,9 +36,9 @@
<template slot-scope="scope">
<el-input v-model="scope.row.batchNo"
:disabled="scope.row.index !== selectedIndex"
@input="scope.row.batchNo =scope.row.batchNo.replace(/[\W]/g, '')"
ref='inputBatchNoRef'
placeholder="请输入批次号"></el-input>
<!--@input="scope.row.batchNo =scope.row.batchNo.replace(/[\W]/g, '')"-->
</template>
</el-table-column>
<el-table-column width="120" label="生产日期">
@ -101,7 +101,7 @@
prop="manufacturer"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作" width="140" fixed="right">
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button
@ -132,6 +132,14 @@
</el-button
>
<el-button
type="text"
size="small"
@click.stop="true"
@click.native="deleteDetail(scope.row)"
>删除
</el-button
>
<el-button
type="text"
size="small"
@ -149,14 +157,6 @@
</el-button
>
<el-button
type="text"
size="small"
@click.stop="true"
@click.native="deleteDetail(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>

@ -11,8 +11,8 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="单据号:">
<el-input v-model="filterQuery.orderIdFk" placeholder="请输入单据号" clearable></el-input>
<el-form-item label="产品DI:">
<el-input v-model="filterQuery.relIdFk" placeholder="请输入产品DI" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
@ -20,11 +20,6 @@
<el-input v-model="filterQuery.mark" placeholder="请输入标记" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品DI:">
<el-input v-model="filterQuery.relIdFk" placeholder="请输入产品DI" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
@ -64,7 +59,6 @@
<el-table v-loading="loading" :data="list" style="width: 100%" @current-change="handleDetail" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="单据号" prop="orderIdFk"></el-table-column>
<el-table-column label="UDI码" prop="udiCode"></el-table-column>
<el-table-column label="标记" prop="mark"></el-table-column>
<el-table-column label="物资名称" prop="cpmctymc"></el-table-column>
@ -77,6 +71,11 @@
<el-table-column label="失效日期" prop="expireDate"></el-table-column>
<el-table-column label="创建人" prop="createUserName"></el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{ statusMap[scope.row.status] }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="editDialog(scope.row)">编辑</el-button>
@ -164,6 +163,11 @@ export default {
1: "新增使用出库",
2: "编辑使用出库",
},
statusMap: {
0: "草稿",
1: "未审核",
},
orderMutiVisible: false,
actDateRange: [],
detailList: [],
@ -201,12 +205,22 @@ export default {
};
},
methods: {
statusFilterType(status) {
const statusMap = {
0: "warning",
1: "warning",
2: "danger",
3: "success",
};
return statusMap[status];
},
onReset(){
this.filterQuery={
udiCode: null,
orderIdFk: null,
relIdFk: null,
mark: null,
status:0,
cpmctymc:null,
page: 1,
limit: 10,

@ -77,6 +77,11 @@
<el-table-column label="失效日期" prop="expireDate"></el-table-column>
<el-table-column label="创建人" prop="createUserName"></el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{ statusMap[scope.row.status] }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="auditDialog(scope.row)">审核</el-button>
@ -158,6 +163,10 @@ export default {
loading: false,
list: [],
formName: "审核使用出库",
statusMap: {
0: "草稿",
1: "未审核",
},
orderMutiVisible: false,
actDateRange: [],
detailList: [],
@ -195,6 +204,15 @@ export default {
};
},
methods: {
statusFilterType(status) {
const statusMap = {
0: "warning",
1: "warning",
2: "danger",
3: "success",
};
return statusMap[status];
},
onReset(){
this.filterQuery={
udiCode: null,
@ -202,6 +220,7 @@ export default {
relIdFk: null,
mark: null,
cpmctymc:null,
status:1,
page: 1,
limit: 10,
}

@ -9,11 +9,14 @@
<el-row>
<el-col :span="17">
<el-form-item label="UDI:">
<el-input v-model="inputQuery.udiCode" :disabled="detailList.length>0" placeholder="请输入UDI" clearable></el-input>
<el-input v-model="inputQuery.udiCode" ref="udiCodeInputRef" @keypress.enter.native="addCode($event)"
:disabled="detailList.length>0" placeholder="请输入UDI" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="2">
<el-button type="primary" size="mini" @click="addCode" :disabled="detailList.length>0" style="margin-left: 15px">添加</el-button>
<el-button type="primary" size="mini" @click="addCode" :disabled="detailList.length>0"
style="margin-left: 15px">添加
</el-button>
</el-col>
</el-row>
<el-row>
@ -24,7 +27,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="标记:">
<el-input v-model="inputQuery.mark" :disabled="this.formName==2" placeholder="请输入标记" clearable></el-input>
<el-input v-model="inputQuery.mark" ref="markInputRef" :disabled="this.formName==2"
@keypress.enter.native="addMark($event)"
placeholder="请输入标记" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
@ -55,7 +60,8 @@
<el-row>
<el-col :span="17">
<el-form-item label="往来单位:">
<el-input v-model="inputQuery.fromCorp" :disabled="this.inputQuery.udiCode==null"
<el-input v-model="inputQuery.fromCorp" ref="fromCorpInputRef"
@keypress.enter.native="addFromCorp($event)" :disabled="this.inputQuery.udiCode==null"
placeholder="请输入往来单位" clearable></el-input>
</el-form-item>
</el-col>
@ -77,7 +83,9 @@
<el-table-column label="使用时间" prop="useTime" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button type="text" size="small" v-if="scope.row.status!=1" @click.native.stop="deleteDialog(scope.row)"></el-button>
<el-button type="text" size="small" v-if="scope.row.status!=1" @click.native.stop="deleteDialog(scope.row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -85,21 +93,20 @@
<el-dialog
:title="tableName"
:visible.sync="orderMutiDelectVisible"
width="60%"
:append-to-body="true"
v-if="orderMutiDelectVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="tableName"
:visible.sync="orderMutiDelectVisible"
width="60%"
:append-to-body="true"
v-if="orderMutiDelectVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<ioOrderMutiEditSelectDialog
:closeDialogDelect="closeDialogDelect"
:filterQuery="inputQuery"
:closeDialogDelect="closeDialogDelect"
:filterQuery="inputQuery"
></ioOrderMutiEditSelectDialog>
</el-dialog>
</div>
</template>
@ -108,7 +115,7 @@ import {
addMuti,
addMutiDetail,
addOrderMuti,
checkUdi, delectMutiDelect,
checkUdi, delectMutiDelect, filterMutiDetailList,
filterMutiList, getMark,
selectMutiDetailList,
updateMuti,
@ -116,6 +123,7 @@ import {
} from "@/api/inout/orderMuti";
import ioOrderMutiEditSelectDialog from "@/views/inout/muti/ioOrderMutiEditSelectDialog"
export default {
name: "ioOrderMutiEditDialog",
props: {
@ -145,15 +153,66 @@ export default {
supId: null,
},
pId: null,
popupsVisible: false,
orderMutiDelectVisible: false,
tableName: '使用记录选择',
invList: [],
fromInvOptions: [],
busTypes: [],
detailList: [],
keyCode: '',
lastTime: '',
nextTime: '',//
lastCode: '',
nextCode: '',//
}
},
mounted() {
if (this.formName == 2) {
this.$refs.fromCorpInputRef.focus();
} else {
this.$refs.udiCodeInputRef.focus();
}
this.enterKeyup();
},
destroyed() {
// enter
this.enterKeyupDestroyed();
},
methods: {
enterKey(event) {
this.nextCode = event.keyCode
// ()
if (this.nextCode == 13) {
if (this.keyCode == 'true') {
this.saveOrder(1);
} else if (this.keyCode == 'false') {
this.saveOrder(0);
}
this.keyCode = ''
this.lastCode = ''
this.lastTime = ''
return
}
this.nextTime = new Date().getTime() //
if (!this.lastTime && !this.lastCode) { //
this.keyCode += event.key //
}
//
if (this.lastCode && this.lastTime && this.nextTime - this.lastTime > 30) { // keypress,
this.keyCode = event.key
} else if (this.lastCode && this.lastTime) {
this.keyCode += event.key
}
this.lastCode = this.nextCode
this.lastTime = this.nextTime
},
enterKeyupDestroyed() {
document.removeEventListener("keyup", this.enterKey);
},
enterKeyup() {
document.addEventListener("keyup", this.enterKey);
},
addCode() {
checkUdi(this.inputQuery).then((response) => {
if (response.code == 20000) {
@ -164,6 +223,7 @@ export default {
this.inputQuery.ggxh = response.data.data.ggxh
this.inputQuery.totalCount = response.data.data.totalCount
this.inputQuery.useCount = response.data.data.useCount
this.$refs.fromCorpInputRef.focus();
} else {
this.$message.error(response.message);
}
@ -173,37 +233,44 @@ export default {
} else if (response.code == 999) {
this.$message.error(response.message);
} else if (response.code == 888) {
this.$confirm("是否要首次使用", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
this.$refs.udiCodeInputRef.blur();
this.enterKeyupDestroyed();
this.$showMsgBox({
caption: "询问",
msg: '是否要首次使用',
callback: (data) => {
if (data == 'yes') {
addOrderMuti(this.inputQuery).then((response) => {
if (response.code == 20000) {
this.pId = response.data;
filterMutiList({id: this.pId}).then((response) => {
if (response.code == 20000) {
this.inputQuery.cpmctymc = response.data.data.cpmctymc
this.inputQuery.ggxh = response.data.data.ggxh
this.inputQuery.totalCount = response.data.data.totalCount
this.inputQuery.useCount = response.data.data.useCount
this.$refs.fromCorpInputRef.focus();
this.enterKeyup();
} else {
this.$refs.markInputRef.focus();
}
}).catch(() => {
this.$message.error("添加失败");
});
} else {
this.$message.error(response.message);
}
}).catch(() => {
this.$message.error("添加失败");
});
} else if (data == 'no') {
this.inputQuery.mark = "";
this.$refs.markInputRef.focus();
this.enterKeyup();
}
}
})
.then(() => {
addOrderMuti(this.inputQuery).then((response) => {
if (response.code == 20000) {
this.pId = response.data;
filterMutiList({id: this.pId}).then((response) => {
if (response.code == 20000) {
this.inputQuery.cpmctymc = response.data.data.cpmctymc
this.inputQuery.ggxh = response.data.data.ggxh
this.inputQuery.totalCount = response.data.data.totalCount
this.inputQuery.useCount = response.data.data.useCount
} else {
this.$message.error(response.message);
}
}).catch(() => {
this.$message.error("添加失败");
});
} else {
this.$message.error(response.message);
}
}).catch(() => {
this.$message.error("添加失败");
});
})
.catch(() => {
this.orderMutiDelectVisible = true;
});
}
}).catch(() => {
@ -220,9 +287,9 @@ export default {
}
})
.catch(() => {
this.$message.error("添加失败");
});
.catch(() => {
this.$message.error("添加失败");
});
} else {
updateMuti(this.inputQuery).then((response) => {
if (response.code == 20000) {
@ -232,36 +299,48 @@ export default {
}
})
.catch(() => {
this.$message.error("添加失败");
});
.catch(() => {
this.$message.error("添加失败");
});
}
},
addFromCorp() {
var query = {
mutiIdFk: this.pId,
fromCorp: this.inputQuery.fromCorp
if(this.$isBlank(this.inputQuery.fromCorp)){
this.$message.error("往来单位不能为空!");
return
}
addMutiDetail(query).then((response) => {
if (response.code == 20000) {
this.selectMutiDetailList();
} else {
this.$message.error(response.message);
if(this.$isBlank(this.inputQuery.mark)){
this.$message.error("标记不能为空!");
return
}
if (this.inputQuery.fromCorp != 'true' && this.inputQuery.fromCorp != 'false') {
var query = {
mutiIdFk: this.pId,
fromCorp: this.inputQuery.fromCorp
}
})
.catch(() => {
this.$message.error("添加失败");
});
addMutiDetail(query).then((response) => {
if (response.code == 20000) {
this.selectMutiDetailList();
this.inputQuery.fromCorp = null;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.$message.error("添加失败");
});
}
},
selectMutiDetailList() {
selectMutiDetailList({mutiIdFk:this.pId}).then((response) => {
selectMutiDetailList({mutiIdFk: this.pId}).then((response) => {
if (response.code == 20000) {
this.detailList = response.data || [];
this.inputQuery.useCount=this.detailList.length
this.inputQuery.useCount = this.detailList.length
}
})
},
getMark(){
getMark() {
getMark().then((response) => {
if (response.code == 20000) {
this.inputQuery.mark = response.data;
@ -277,36 +356,64 @@ export default {
this.inputQuery.totalCount = response.data.data.totalCount
this.inputQuery.useCount = response.data.data.useCount
this.detailList = response.data.detailList
this.inputQuery.useCount=this.detailList.length
this.inputQuery.useCount = this.detailList.length
} else {
this.$message.error(response.message);
}
});
},
closeDialogDelect(row){
this.orderMutiDelectVisible=false;
this.pId=row.id;
closeDialogDelect(row) {
this.orderMutiDelectVisible = false;
this.pId = row.id;
this.filterMutiList();
},
saveOrder(status){
var query={
id:this.pId,
saveOrder(status) {
if(this.$isBlank(this.inputQuery.udiCode)){
this.$message.error("UDI不能为空");
return
}
if(this.$isBlank(this.inputQuery.mark)){
this.$message.error("标记不能为空!");
return
}
if(this.detailList.length<=0 && status == 1){
this.$message.error("往来单位不能为空!");
return
}
var query = {
id: this.pId,
mark: this.inputQuery.mark,
useCount:this.inputQuery.useCount,
useCount: this.inputQuery.useCount,
totalCount: this.inputQuery.totalCount,
status:status
status: status
}
updateOrderMuti(query).then((response) => {
if (response.code == 20000) {
this.closeDialog()
this.closeDialog()
} else {
this.$message.error(response.message);
}
});
},
deleteDialog(row) {
delectMutiDelect({id: row.id}).then((response) => {
if (response.code == 20000) {
this.selectMutiDetailList()
} else {
this.$message.error(response.message);
}
});
},
deleteDialog(row){
delectMutiDelect({id:row.id}).then((response) => {
addMark() {
filterMutiDetailList({udiCode: this.inputQuery.udiCode, mark: this.inputQuery.mark}).then((response) => {
if (response.code == 20000) {
this.inputQuery.cpmctymc = response.data.cpmctymc
this.inputQuery.ggxh = response.data.ggxh
this.inputQuery.totalCount = response.data.totalCount
this.inputQuery.useCount = response.data.useCount
this.pId = response.data.id;
this.$refs.fromCorpInputRef.focus();
this.selectMutiDetailList()
} else {
this.$message.error(response.message);
@ -316,11 +423,11 @@ export default {
},
components: {ioOrderMutiEditSelectDialog},
created() {
if(this.formName==2){
if (this.formName == 2) {
this.inputQuery = this.filterQuery
this.pId=this.inputQuery.id
this.pId = this.inputQuery.id
this.selectMutiDetailList()
}else{
} else {
this.getMark();
}

@ -79,6 +79,11 @@
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{ statusMap[scope.row.status] }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="datilDialog(scope.row)">详情</el-button>
@ -160,6 +165,12 @@ export default {
loading: false,
list: [],
formName: "审核使用出库",
statusMap: {
0: "草稿",
1: "未审核",
2: "已审核",
3: "已拒绝"
},
orderMutiVisible: false,
actDateRange: [],
detailList: [],
@ -197,6 +208,15 @@ export default {
};
},
methods: {
statusFilterType(status) {
const statusMap = {
0: "warning",
1: "primary",
2: "success",
3: "danger"
};
return statusMap[status];
},
onReset(){
this.filterQuery={
udiCode: null,

@ -3,7 +3,7 @@
<el-card>
<el-form :model="filterQuery" class="query-form" size="mini" label-width="120px" :inline="true">
<el-form-item label="当前仓库:">
<el-input v-model="filterQuery.curInv" placeholder="请输入配送企业名称" clearable></el-input>
<el-input v-model="filterQuery.curInv" placeholder="请输入当前仓库名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
@ -119,6 +119,7 @@ export default {
addOrderMuti(){
this.inputQuery={
curInv: null,
checkUse: null,
fromCorp: null,
targetAction: null,
remark: null,
@ -130,7 +131,6 @@ export default {
editDialog(row){
this.formName=2;
this.inputQuery=row;
console.log(this.inputQuery)
this.orderMutiSetVisible = true;
},
getList() {

@ -24,7 +24,7 @@
<el-row>
<el-col :span="20" >
<el-form-item label="往来单位:">
<el-select v-model="inputQuery.fromCorp" placeholder="请选择往来仓库" clearable style="width: 90%">
<el-select v-model="inputQuery.fromCorp" placeholder="请选择往来单位" clearable style="width: 90%">
<el-option
v-for="item in fromInvOptions"
:key="item.erpId"
@ -141,6 +141,18 @@ export default {
});
},
submitInv(){
if(this.$isBlank(this.inputQuery.curInv)){
this.$message.error("当前仓库不能为空!");
return
}
if(this.$isBlank(this.inputQuery.fromCorp)){
this.$message.error("往来单位不能为空!");
return
}
if(this.$isBlank(this.inputQuery.targetAction)){
this.$message.error("生成单据类型不能为空!");
return
}
if(this.formName==1){
addMuti(this.inputQuery).then((response) => {
if(response.code == 20000){
@ -177,6 +189,7 @@ export default {
this.getBusType();
}else{
this.inputQuery.checkUse=1;
console.log(this.inputQuery)
}
},

@ -88,7 +88,8 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row="true" border @current-change="handleDetail">
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row="true" border @current-change="handleDetail"
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="领用单号" prop="billNo"></el-table-column>
<el-table-column label="领用部门" prop="deptName"></el-table-column>
@ -101,7 +102,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<!-- <el-table-column label="领用类型" prop="billType"></el-table-column>-->
<el-table-column label="操作">
<template slot-scope="scope">
@ -165,6 +167,7 @@ import {filterSubAll, findInvByUser} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billType: null,
@ -271,6 +274,16 @@ export default {
this.filterQuery.page = 1;
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {

@ -86,7 +86,7 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true"
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="领用单号" prop="billNo"></el-table-column>
<el-table-column label="领用部门" prop="deptName"></el-table-column>
@ -99,7 +99,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" :disabled="scope.row.status!=2"
@ -155,6 +156,7 @@ import {filterSubAll, findInvByUser} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billAction: null,
@ -262,6 +264,17 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {

@ -102,7 +102,8 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true" @current-change="handleDetail">
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true" @current-change="handleDetail"
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="领用单号" prop="billNo"></el-table-column>
<el-table-column label="领用部门" prop="deptName"></el-table-column>
@ -115,8 +116,10 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>
<el-table-column label="审核时间" prop="auditTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
@ -172,6 +175,7 @@ import {filterSubAll, findInvByUser} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billAction: null,
@ -335,6 +339,17 @@ export default {
.catch(() => {
});
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startTime = this.actDateRange[0];

@ -115,6 +115,7 @@
<el-table-column label="产品名称" prop="productName" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="仓库" prop="deptName" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="期初" header-align="center">
<el-table-column label="数量" prop="beginCount" width="80"></el-table-column>
<el-table-column label="价格" prop="beginPrice" width="100"></el-table-column>

@ -115,6 +115,7 @@
<el-table-column label="产品名称" prop="productName" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="仓库" prop="deptName" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="期初" header-align="center">
<el-table-column label="数量" prop="beginCount" width="80"></el-table-column>
<el-table-column label="价格" prop="beginPrice" width="100"></el-table-column>

@ -0,0 +1,129 @@
<template>
<div>
<el-form>
<el-card style="margin-top: -10px;padding-top:10px ">
<el-row :gutter="20" type="flex">
<el-col :span="24">
<!-- :disabled="true" 这个标识启用标识不能修改-->
<el-form-item label="单据类型:" label-width="120px">
<el-input
size="mini"
:disabled="true"
splaceholder="请输入内容" style="width: 80%"
v-model="inputQuery.name"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="24">
<el-form-item label="单据类型代码:" label-width="120px">
<el-input
size="mini"
style="width: 80%"
:disabled="true"
splaceholder="请输入内容"
v-model="inputQuery.action"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="24">
<el-form-item label="单据起始上传:" label-width="120px">
<el-date-picker
type="date"
v-model="inputQuery.orderStartTime"
format="yyyy-MM-dd"
style="width: 80%"
value-format="yyyy-MM-dd"
:disabled="inputQuery.autoUpload"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="24">
<el-form-item label="单据状态:" label-width="120px">
<el-radio-group v-model="inputQuery.orderStatus" :disabled="inputQuery.autoUpload">
<el-radio :label="1" :value="1">待审核</el-radio>
<el-radio :label="2" :value="2">已审核</el-radio>
<el-radio :label="3" :value="3">已确认</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="24">
<el-form-item label="单据来源:" label-width="120px">
<el-select
v-model="inputQuery.orderSource"
multiple
collapse-tags
style="width: 80%"
placeholder="请选择"
>
<el-option label="UDIMS平台" value="1"></el-option>
<el-option label="网页新增" value="2"></el-option>
<el-option label="pda即时校验" value="3"></el-option>
<el-option label="pda未校验" value="4"></el-option>
<el-option label="pc端扫码精灵" value="5"></el-option>
<el-option label="流转自动补单" value="6"></el-option>
<el-option label="UDI供应商平台" value="7"></el-option>
<el-option label="平衡补录单据" value="8"></el-option>
<el-option label="手动补单" value="10"></el-option>
<el-option label="仓库盘点" value="11"></el-option>
<el-option label="采购计划" value="12"></el-option>
<el-option label="领用单据" value="13"></el-option>
<el-option label="第三方系统单据" value="14"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-form>
</div>
</template>
<script>
export default {
name: "inputQuery",
props: {
inputQuery: {
type: Object,
required: true,
},
},
methods: {},
data() {
return {
inputQuery: {
orderSource: [], //
orderStatus: 3,//
},
}
}
};
</script>
<style scoped>
.itemTag {
float: left;
text-align: left;
margin-top: 5px;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
</style>

@ -51,105 +51,81 @@
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" title="上传至第三方系统" :column="1" style="margin-top: 30px"
border>
<el-descriptions-item>
<template slot="label">
单据时间
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="20" class="el-col">
<div>
<span>上传起始时间:&nbsp;</span>
<el-date-picker
type="date"
v-model="configQuery.orderStartTime"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:disabled="configQuery.autoUpload"
placeholder="选择日期">
</el-date-picker>
</div>
</el-col>
</el-row>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
单据(单据状态)
<div style="float: right;margin-bottom: 10px;margin-right: 25px;margin-top: 18px">
<el-button type="primary" size="small"
:disabled="configQuery.autoUpload"
@click="addBusTypeDialog()">添加扫码单据类型
</el-button>
</div>
<el-table
:data="checkedBusTypes"
border
style="width: 100%"
highlight-current-row
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="单据类型"
prop="name"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="单据类型代码"
prop="action"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="单据状态"
prop="orderStatus"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag>{{ statusMap[scope.row.orderStatus] }}</el-tag>
</template>
<el-checkbox v-model="configQuery.orderUnCheck" :disabled="configQuery.autoUpload">
</el-checkbox>
<el-checkbox v-model="configQuery.orderUnReceive" :disabled="configQuery.autoUpload">
</el-checkbox>
<el-checkbox v-model="configQuery.orderScanFinish" :disabled="configQuery.autoUpload">
</el-checkbox>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
单据来源
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="printUpload(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.native="removeBus(scope.$index, scope.row)"
>移除
</el-button
>
</template>
<el-checkbox v-model="configQuery.checkWebNew">web
</el-checkbox>
<el-checkbox v-model="configQuery.checkPdaUn">
</el-checkbox>
<el-checkbox v-model="configQuery.checkPdaEd">
</el-checkbox>
<el-checkbox v-model="configQuery.checkUdims">UDIMS
</el-checkbox>
<el-checkbox v-model="configQuery.checkPc">UDI</el-checkbox>
<el-checkbox v-model="configQuery.checkSp"></el-checkbox>
<el-checkbox v-model="configQuery.checkChange">
</el-checkbox>
<el-checkbox v-model="configQuery.checkBalacne">
</el-checkbox>
</el-descriptions-item>
<el-descriptions-item label="单据(单据类型)" label-style="width: 150px">
<div style="float: right;margin-bottom: 10px;margin-right: 25px">
<el-button type="primary" size="small"
:disabled="configQuery.autoUpload"
@click="addBusTypeDialog()">添加扫码单据类型
</el-button>
</div>
<el-table
:data="checkedBusTypes"
border
style="width: 100%"
highlight-current-row
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="单据类型"
prop="name"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="单据类型代码"
prop="action"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native="removeBus(scope.$index, scope.row)"
>移除
</el-button
>
</template>
</el-table-column>
</el-table>
</el-table-column>
</el-table>
</el-card>
</el-descriptions-item>
<el-dialog
title="单据上传设置编辑"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="Updocument"
width="50%"
</el-descriptions>
</el-card>
>
<modifyDialog :inputQuery="inputQuery"></modifyDialog>
<div style="text-align: center; margin-top: 10px;">
<el-button type="primary" size="small" icon="search" @click="onModifySubmit"
>提交
</el-button
>
<el-button type="primary" size="small" icon="search" @click="cancelDialog"
>取消
</el-button
>
</div>
</el-dialog>
<el-dialog
title="添加扫码单据类型"
@ -159,7 +135,6 @@
:close-on-press-escape="false"
v-if="addBusDialogVisible"
>
<div style="float: right;margin-bottom: 10px;margin-right: 25px">
<el-button type="primary" size="small" @click="addBusType()"></el-button>
</div>
@ -182,7 +157,6 @@
show-overflow-tooltip
></el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -196,15 +170,15 @@
</template>
<script>
import modifyDialog from "./uploadModify";
import {getBusTypeList} from "@/api/basic/busType";
import {getConfig, saveConfig} from "@/api/thrsys/thrUploadSet";
const formJson = {
site_id: "",
site_name: "",
describe: "",
ads: [],
};
import {addBus, editBus, getBusList, getConfig, removeBus, saveConfig, updateConfig} from "@/api/thrsys/thrUploadSet";
import {isBlank} from "@/utils/strUtil";
import {filterListInvoice} from "@/api/inout/orderDetailBiz";
import {updateBasicThirdSys} from "@/api/thrsys/basicThirdSys";
import modifyDetailDialog from "@/views/thirdSys/api/BasicThirdSysDetailModify";
import DialogEditBusUpload from "@/views/thirdSys/api/DialogEditBusUpload";
import DialogEditBusDown from "@/views/thirdSys/api/DialogEditBusDown";
export default {
name: "uploadSetting",
@ -225,6 +199,7 @@ export default {
checkSp: null,
checkChange: null,
checkBalacne: null,
orderSources: [],
busTypes: []
},
checkedBusTypes: [],
@ -233,12 +208,19 @@ export default {
page: 1,
limit: 10
},
Updocument: false,
inputQuery: null,
loading: false,
list: [],
total: 0,
busTypes: [],
addBusDialogVisible: false,
multipleSelection: []
multipleSelection: [],
statusMap: {
1: "未审核",
2: "已审核",
3: "已确认",
},
};
},
methods: {
@ -272,9 +254,55 @@ export default {
this.addBusDialogVisible = true;
this.multipleSelection = [];
},
//
printUpload(row) {
this.Updocument = true;
this.inputQuery = row;
},
onModifySubmit() {
editBus(this.inputQuery)
.then((response) => {
if (response.code == 20000) {
this.getSelectBus();
this.Updocument = false;
this.$message.success(response.data);
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.cancelDialog();
});
},
//
cancelDialog() {
this.getBuType();
this.Updocument = false;
// this.modifyBusYypeDialogVisible = false;
},
//
removeBus(index, row) {
this.checkedBusTypes.splice(index, 1);
let query = {
id: row.id,
}
removeBus(query).then((res) => {
if (res.code == 20000) {
this.getSelectBus();
} else {
this.$message.error(response.message);
}
}).catch((error) => {
this.loading = false;
});
},
getBuType() {
getBusTypeList(this.busQuery).then((res) => {
this.busTypes = res.data.list || [];
@ -283,26 +311,39 @@ export default {
}).catch(() => {
});
},
//
getSelectBus() {
getBusList().then((res) => {
if (res.code == 20000)
this.checkedBusTypes = res.data;
}).catch((error) => {
this.loading = false;
});
},
getConfig() {
getConfig().then((res) => {
this.configQuery = res.data;
this.checkedBusTypes = this.configQuery.busTypes;
if (this.configQuery.busTypes === null) {
this.$message.error(res.message);
}
}).catch((error) => {
this.loading = false;
this.list = [];
this.total = 0;
})
});
},
addBusType() {
let selectedData = this.multipleSelection;
selectedData.forEach((item) => {
item.outChange = false;
this.checkedBusTypes.push(item);
})
this.addBusDialogVisible = false;
let query = {
busTypes: selectedData,
};
addBus(query).then((res) => {
if (res.code == 20000) {
this.checkedBusTypes = this.res.data;
} else {
this.$message.error(res.message);
}
}).catch((error) => {
this.loading = false;
})
},
handleCheckedChange(row) {
this.multipleSelection = row;
@ -320,6 +361,9 @@ export default {
return statusMap[status];
},
},
components: {
modifyDialog
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
@ -328,6 +372,7 @@ export default {
},
created() {
this.getBuType();
this.getSelectBus();
},
};
</script>

@ -328,7 +328,7 @@ export default {
updateCountOrderStatus(params).then((res) => {
if (res.code === 20000) {
this.$message.success("审核通过");
this.$message.success("已驳回");
this.$message.warning("已驳回");
this.getList();
this.onRestDetail();
} else {

@ -93,22 +93,17 @@
<el-table-column width="150" label="养护数量" prop="count"></el-table-column>
<el-table-column width="150" label="养护状态" prop="maintenanceStatus">
<template slot-scope="scope">
<el-radio disabled="true" v-model="scope.row.maStatus"
:label="0">未养护
</el-radio>
<el-radio disabled="true" v-model="scope.row.maStatus"
:label="1">已养护
</el-radio>
<el-tag :type="statusFilterType(scope.row.maStatus)">
{{status[scope.row.maStatus]}}
</el-tag>
</template>
</el-table-column>
<el-table-column width="150" label="设备状态" prop="deviceStatus">
<template slot-scope="scope">
<el-radio v-model="scope.row.deviceStatus" :label="1" disabled="true">
正常
</el-radio>
<el-radio v-model="scope.row.deviceStatus" :label="0" disabled="true">
异常
</el-radio>
<el-tag :type="statusFilterType(scope.row.deviceStatus)"
>
{{deviceStatus[scope.row.deviceStatus]}}
</el-tag>
</template>
</el-table-column>
<el-table-column width="200" label="养护备注" prop="remark">
@ -162,6 +157,14 @@ export default {
1: "未审核",
2: "已审核"
},
status:{
0:"未养护",
1:"已养护",
},
deviceStatus:{
1:"正常",
0:"异常",
},
detailQuery: {
orderIdFk: null,
page: 1,
@ -320,6 +323,15 @@ export default {
this.detailTotal = 0;
});
},
statusFilterType(status) {
const statusMap = {
1: "success",
0: "danger",
};
return statusMap[status];
},
},
mounted() {
document.body.ondrop = function (event) {

@ -76,22 +76,17 @@
<el-table-column width="150" label="养护数量" prop="count"></el-table-column>
<el-table-column width="150" label="养护状态" prop="maintenanceStatus">
<template slot-scope="scope">
<el-radio disabled="true" v-model="scope.row.maStatus"
:label="0">未养护
</el-radio>
<el-radio disabled="true" v-model="scope.row.maStatus"
:label="1">已养护
</el-radio>
<el-tag :type="statusFilterType(scope.row.maStatus)">
{{status[scope.row.maStatus]}}
</el-tag>
</template>
</el-table-column>
<el-table-column width="150" label="设备状态" prop="deviceStatus">
<template slot-scope="scope">
<el-radio v-model="scope.row.deviceStatus" :label="1" disabled="true">
正常
</el-radio>
<el-radio v-model="scope.row.deviceStatus" :label="0" disabled="true">
异常
</el-radio>
<el-tag :type="statusFilterType(scope.row.maStatus)">
{{deviceStatus[scope.row.maStatus]}}
</el-tag>
</template>
</el-table-column>
<el-table-column width="200" label="养护备注" prop="remark">
@ -145,6 +140,14 @@ export default {
1: "未审核",
2: "已审核"
},
status:{
0:"未养护",
1:"已养护",
},
deviceStatus:{
1:"正常",
0:"异常",
},
detailList: [],
detailLoading: false,
detailQuery: {
@ -237,6 +240,15 @@ export default {
this.detailTotal = 0;
});
},
statusFilterType(status){
const statusMap ={
1:"success",
0:"danger"
}
return statusMap[status];
},
},
mounted() {
document.body.ondrop = function (event) {

@ -118,6 +118,7 @@
:loading="corpLoading"
@change="corpChange"
style="width: 90%"
@clear="getcorp"
>
<el-option
v-for="item in fromOptions"
@ -293,6 +294,7 @@ export default {
limit: 10,
};
this.getList();
this.findMethod();
},
onSubmit() {
this.filterQuery.page = 1;
@ -374,6 +376,9 @@ export default {
this.findMethod(value);
}
},
getcorp(){
this.findMethod();
},
detailDialog(row) {
this.detailDialogVisible = true;
this.inputQuery = {

@ -117,6 +117,7 @@
:loading="corpLoading"
@change="corpChange"
style="width: 90%"
@clear="getcorp"
>
<el-option
v-for="item in fromOptions"
@ -314,6 +315,7 @@ export default {
limit: 10,
};
this.getList();
this.findMethod();
},
keyup_submit(event) {
@ -391,8 +393,10 @@ export default {
this.findMethod(value);
}
},
getcorp(){
this.findMethod();
},
detailDialog(row) {
this.detailDialogVisible = true;
this.inputQuery = {
code: row.code,
relId: row.relIdFk,
@ -407,6 +411,11 @@ export default {
invCode: row.invCode,
invSpaceCode: row.invSpaceCode
}
if(this.$isBlank(this.filterQuery.invCode)){
this.inputQuery.deptCode = '';
this.inputQuery.invCode = '';
}
this.detailDialogVisible = true;
},
closeDetailDialog() {
this.detailDialogVisible = false;

@ -117,6 +117,7 @@
:loading="corpLoading"
@change="corpChange"
style="width: 90%"
@clear="getcorp"
>
<el-option
v-for="item in fromOptions"
@ -288,6 +289,7 @@ export default {
invCode: null,
};
this.getList();
this.findMethod();
},
onSubmit() {
this.filterQuery.page = 1;
@ -370,6 +372,9 @@ export default {
this.findMethod(value);
}
},
getcorp(){
this.findMethod();
},
detailDialog(row) {
this.detailDialogVisible = true;
this.inputQuery = {

@ -42,7 +42,7 @@
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="码" prop="udiCode"></el-table-column>
<el-table-column label="状态" width="120">
<el-table-column label="状态" width="120" prop="status">
<template slot-scope="scope">
<span>{{ statusMap[scope.row.status] }}</span>
</template>
@ -50,7 +50,7 @@
<el-table-column
label="时间"
width="200"
prop="createTime"
prop="updateTime"
show-overflow-tooltip
>
<template slot-scope="scope">

@ -105,11 +105,11 @@
<udiRlDetailDialog :editQuery="currentRow"></udiRlDetailDialog>
</el-dialog>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>

@ -162,7 +162,7 @@ export default {
justify-content: center;
align-items: center;
height: 100%;
background-image: url("../assets/images/login-background.jpg");
background-image: url("../assets/login.jpg");
background-size: cover;
}

@ -1,7 +1,8 @@
<template>
<div class="login-container">
<div class="textTitle">
<h3 class="toptitle">平潭协和医院</h3>
<!-- <h3 class="toptitle">平潭协和医院</h3>-->
<h3 class="toptitle">{{ title }}</h3>
<h3 class="topSubtitle">医院UDI管理系统</h3>
</div>
<el-form
@ -11,10 +12,11 @@
:rules="rules"
ref="ruleForm"
label-position="left"
@submit.native.prevent
>
<el-card class="box-card">
<div style="text-align: center; margin-top: 10px">
<img alt="element-logo" src="@/assets/logo/logo.png" />
<img alt="element-logo" src="@/assets/logo/logo.png"/>
</div>
<h3 class="title">用户登录</h3>
<el-form-item prop="username" class="item" style="margin-top: -20px">
@ -25,7 +27,7 @@
v-model="loginForm.username"
>
<i slot="prefix" class="el-input__icon">
<icon-svg icon-class="user" />
<icon-svg icon-class="user"/>
</i>
</el-input>
</el-form-item>
@ -39,14 +41,14 @@
autocomplete="on"
>
<i slot="prefix" class="el-input__icon">
<icon-svg icon-class="pwd" />
<icon-svg icon-class="pwd"/>
</i>
<i
slot="suffix"
class="el-input__icon"
@click="isShowPwd = !isShowPwd"
>
<icon-svg icon-class="eye" />
<icon-svg icon-class="eye"/>
</i>
</el-input>
</el-form-item>
@ -71,7 +73,7 @@
style="width: 60%; margin-bottom: 30px"
:loading="loading"
@click.native="handleLogin()"
>登录
>登录
</el-button>
</div>
</el-card>
@ -96,7 +98,8 @@
import Verify from "vue2-verify";
import axios from "axios";
import Cookies from "js-cookie";
import { decrypt, encrypt } from "@/utils/jsencrypt";
import {decrypt, encrypt} from "@/utils/jsencrypt";
import {getCodeImg, getTitleConfig} from "@/api/login";
export default {
data() {
@ -124,15 +127,16 @@ export default {
},
rules: {
userName: [
{ required: true, message: "请输入登录名", trigger: "blur" },
{required: true, message: "请输入登录名", trigger: "blur"},
],
pwd: [{ validator: validatePwd, trigger: "blur" }],
pwd: [{validator: validatePwd, trigger: "blur"}],
},
isShowPwd: false, //
loading: false, // loading
showDialog: false, // dialog
redirect: null, //
hospName: "",
title: "福建省XXX医院"
};
},
methods: {
@ -203,7 +207,7 @@ export default {
if (this.loginForm.verificationCode) {
this.loading = true;
if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("username", this.loginForm.username, {expires: 30});
Cookies.set("password", encrypt(this.loginForm.password), {
expires: 30,
});
@ -217,8 +221,9 @@ export default {
.dispatch("Login", this.loginForm)
.then((res) => {
this.$router
.push({ path: this.redirect || "/" })
.catch((res) => {});
.push({path: this.redirect || "/"})
.catch((res) => {
});
})
.catch((res) => {
this.loading = false;
@ -236,6 +241,11 @@ export default {
}
});
},
getTitleConfig() {
getTitleConfig().then(res => {
this.title = res.data.title;
});
},
},
components: {
Verify,
@ -247,7 +257,7 @@ export default {
// URL Encode
this.redirect = decodeURIComponent(query.redirect);
}
this.getTitleConfig();
axios.get("./config.json").then((res) => {
this.hospName = res.data.hosp_name;
});
@ -329,6 +339,7 @@ $light_gray: #eee;
font-weight: bold;
margin-bottom: 50px;
}
.textTitle {
width: 50%;
font-size: 45px;
@ -340,6 +351,7 @@ $light_gray: #eee;
margin-top: 132px;
margin-bottom: -10px;
}
.topSubtitle {
color: #fcd38b;
text-align: center;

@ -1,498 +1,521 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item label="申购单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item>
</el-col>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item label="申购单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申购部门">
<el-select v-model="filterQuery.targetDeptCode" placeholder="请选择申购部门" @change="getInvList" style="width: 90%">
<el-option
v-for="item in deptList"
:key="item.code"
:label="item.name"
:value="item.code"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申购部门">
<el-select v-model="filterQuery.targetDeptCode" placeholder="请选择申购部门" @change="getInvList"
style="width: 90%">
<el-option
v-for="item in deptList"
:key="item.code"
:label="item.name"
:value="item.code"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申购仓库">
<el-select v-model="filterQuery.targetInvCode" style="width: 90%" clearable placeholder="请选择所属仓库">
<el-option
v-for="item in invList"
: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-col :span="8">
<el-form-item label="申购仓库">
<el-select v-model="filterQuery.targetInvCode" style="width: 90%" clearable placeholder="请选择所属仓库">
<el-option
v-for="item in invList"
: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>
<el-col :span="8">
<el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="正常" :value=1></el-option>
<el-option label="较急" :value=2></el-option>
<el-option label="特急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="正常" :value=1></el-option>
<el-option label="较急" :value=2></el-option>
<el-option label="特急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="newDistributionForm()" :loading="loading">新增单据</el-button>
</el-button-group>
</div>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="newDistributionForm()" :loading="loading">新增单据
</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" @current-change="handleDetail" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购部门" prop="targetDeptName"></el-table-column>
<el-table-column label="申购仓库" prop="targetInvName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" >
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime" ></el-table-column>
<el-table-column label="单据状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-table v-loading="loading" :data="list" style="width: 100%" @current-change="handleDetail" border
highlight-current-row
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购部门" prop="targetDeptName"></el-table-column>
<el-table-column label="申购仓库" prop="targetInvName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<el-table-column label="单据状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑
</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination>
</el-card>
></pagination>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column>
</el-table>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column>
</el-table>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close ="handleClose"
>
<pureApplyEdit
:closeDialog="closeDialog"
:idQuery="idQuery"
v-on:cancelDialog="getId"
:isChang="isChang"
></pureApplyEdit>
</el-dialog>
</div>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="handleClose"
>
<pureApplyEdit
:closeDialog="closeDialog"
:idQuery="idQuery"
v-on:cancelDialog="getId"
:isChang="isChang"
></pureApplyEdit>
</el-dialog>
</div>
</template>
<script>
import pureApplyEdit from "./purApplyEditDiaolog";
import {delApply, delApplyDetailAll, inserThrOrderWeb, listApply, listApplyDetail} from "@/api/purchase/purApply";
import { getInvListByUser } from '@/api/system/invWarehouse'
import { getDeptListByUser } from '@/api/auth/authDept'
import {filterSubAll} from "@/api/system/invSubWarehouse";
import {getInvListByUser} from '@/api/system/invWarehouse'
import {filterDepts, getDeptListByUser} from '@/api/auth/authDept'
import {filterGroupBySpuse, filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
showSearch: true,
pId:null,
filterQuery: {
billAction: null,
billNo: "",
originType: null,
thirdSysFk: "",
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
emergency:'',
targetDeptCode:'',
targetInvCode:null
},
isChang:false,
formName: null,
formMap: {
add: "新增申购单据",
update: "编辑申购单据",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
pId: null,
filterQuery: {
billAction: null,
billNo: "",
originType: null,
thirdSysFk: "",
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
emergency: '',
targetDeptCode: '',
targetInvCode: null
},
isChang: false,
formName: null,
formMap: {
add: "新增申购单据",
update: "编辑申购单据",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
},
emergencyMap: {
1: "正常",
2: "较急",
3: "特急",
},
idQuery: {},
total: 0,
thirdSys: [],
invList: {},
invCodebe: null,
deptList: {},
thirdSysDetail: null,
busTypes: [],
originTypes: [],
list: [],
createTimes: null,
detailLoading: false,
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
emergencyMap:{
1: "正常",
2: "较急",
3: "特急",
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
idQuery: {},
total: 0,
thirdSys: [],
invList:{},
invCodebe:null,
deptList:{},
thirdSysDetail: null,
busTypes: [],
originTypes: [],
list: [],
createTimes:null,
detailLoading: false,
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
};
},
},
],
},
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
let deptCode = this.filterQuery.targetDeptCode
this.filterQuery = {
billNo: "",
thirdSysFk: "",
billFlag: null,
billAction: null,
startDate: null,
endDate: null,
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
targetDeptCode: this.invCodebe,
targetInvCode:null
};
this.initActDateRange()
if(deptCode!=this.invCodebe){
this.getInvList()
}
this.actDateRange = [];
this.getList();
},
getId(id){
if( this.formName=='add' && id!=null){
var data={
id:id
}
this.pId=id
//
delApplyDetailAll(data).then((response)=>{
if(response.code==20000){
this.newSpDistributionVisible=false
}
});
}else{
this.newSpDistributionVisible=false
methods: {
onReset() {
this.$router.push({
path: "",
});
let deptCode = this.filterQuery.targetDeptCode
this.filterQuery = {
billNo: "",
thirdSysFk: "",
billFlag: null,
billAction: null,
startDate: null,
endDate: null,
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
targetDeptCode: this.invCodebe,
targetInvCode: null
};
this.initActDateRange()
if (deptCode != this.invCodebe) {
this.getInvList()
}
this.actDateRange = [];
this.getList();
},
getId(id) {
if (this.formName == 'add' && id != null) {
var data = {
id: id
}
this.pId = id
//
delApplyDetailAll(data).then((response) => {
if (response.code == 20000) {
this.newSpDistributionVisible = false
}
});
} else {
this.newSpDistributionVisible = false
}
},
onSubmitFind() {
this.filterQuery.page = 1;
},
onSubmitFind() {
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
this.filterQuery.endDate = this.actDateRange[1];
} else {
this.filterQuery.startDate = null;
this.filterQuery.endDate = null;
}
this.loading = true;
console.log(this.filterQuery)
listApply(this.filterQuery)
.then((response) => {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = []
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
handleDetail(row) {
let query = {orderIdFk: row.id};
this.detailLoading = true;
listApplyDetail(query) //
.then((response) => {
this.detailList = response.data.list || [];
this.detailLoading = false;
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
},
handleClose() {
if (this.formName == 'add') {
this.isChang = !this.isChang
} else {
this.newSpDistributionVisible = false
}
},
submitOrder(row) {
this.loading = true;
let tQuery = {
editStatus: 2,
purApplyEntity: row,
}
inserThrOrderWeb(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功!");
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
this.filterQuery.endDate = this.actDateRange[1];
} else {
this.filterQuery.startDate = null;
this.filterQuery.endDate = null;
}
this.loading = true;
console.log(this.filterQuery)
listApply(this.filterQuery)
.then((response) => {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList=[]
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
handleDetail(row) {
let query = {orderIdFk: row.id};
this.detailLoading = true;
listApplyDetail(query) //
.then((response) => {
this.detailList = response.data.list || [];
this.detailLoading = false;
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
},
handleClose(){
if( this.formName=='add'){
this.isChang=!this.isChang
}else{
this.newSpDistributionVisible=false
} else {
this.$message.error(response.message);
}
},
submitOrder(row) {
this.loading = true;
let tQuery = {
editStatus: 2,
purApplyEntity: row,
}
inserThrOrderWeb(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功!");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.catch(() => {
this.loading = false;
})
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
delApply(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.then(() => {
delApply(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
.catch(() => {
this.loading = false;
});
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
newDistributionForm(index, row) {
this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
getInvList() {
var query={
parentId:this.filterQuery.targetDeptCode
}
this.filterQuery.targetInvCode = null
this.$forceUpdate()
filterSubAll(query).then((res) => {
this.invList = res.data || [];
})
},
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
if(this.deptList.length>0){
this.filterQuery.targetDeptCode=this.deptList[0].code
this.invCodebe=this.filterQuery.targetDeptCode
}
this.getList();
this. getInvList();
});
},
initActDateRange(){
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
newDistributionForm(index, row) {
this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
getInvList() {
var query = {
parentId: this.filterQuery.targetDeptCode,
spUse: true,
}
this.filterQuery.targetInvCode = null
this.$forceUpdate()
filterGroupBySpuse(query).then((res) => {
this.invList = res.data || [];
})
},
getDeptList() {
let query = {
spUse: true,
};
filterDepts(query).then((res) => {
this.deptList = res.data || [];
if (this.deptList.length > 0) {
this.filterQuery.targetDeptCode = this.deptList[0].code
this.invCodebe = this.filterQuery.targetDeptCode
}
this.getList();
this.getInvList();
});
},
initActDateRange() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
}
,
components: {
pureApplyEdit,
}
,
filters: {
statusFilterType(status) {
const statusMap = {
1: "warning",
2: "success",
};
return statusMap[status];
}
,
}
,
mounted() {
}
,
created() {
this.initActDateRange()
this.getDeptList();
}
,
components: {
pureApplyEdit,
}
,
filters: {
statusFilterType(status) {
const statusMap = {
1: "warning",
2: "success",
};
return statusMap[status];
}
,
}
,
mounted() {
}
,
created() {
this.initActDateRange()
this.getDeptList();
}
,
}
;
</script>
<style scoped>
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
width: 25%;
float: left;
text-align: left;
margin-top: 10px;
width: 25%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
.el-row {
display: flex;
flex-wrap: wrap;
display: flex;
flex-wrap: wrap;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
border-radius: 4px;
flex-wrap: wrap;
}
</style>

@ -61,7 +61,7 @@
<el-row style="margin-top: -10px">
<el-col :span="11">
<el-form-item label="申购仓库:" prop="locStorageCode">
<el-select v-model="formData.targetInvCode" placeholder="请选择当前申购仓库" @change="setWarehouseName"
<el-select v-model="formData.targetInvCode" placeholder="请选择申购仓库" @change="setWarehouseName"
style="width: 90%" clearable>
<el-option
v-for="item in subInvList"
@ -97,7 +97,7 @@
<el-button-group style="display: flex">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px">
<el-button type="primary" @click.native.stop="selectProductFunction()" :loading="loading">产品录入</el-button>
<!-- <el-button type="primary" :loading="loading" @click.native.stop="selectApply()">选入计划单</el-button>-->
<!-- <el-button type="primary" :loading="loading" @click.native.stop="selectApply()">选入计划单</el-button>-->
</el-button-group>
</el-button-group>
</el-row>
@ -150,6 +150,7 @@
:data="thisData"
:pId="pId"
:purType="1"
:codeArray="codeArray"
></purApplyProducts>
</el-dialog>
@ -183,7 +184,7 @@ import {
addApplyId,
updateDetail
} from "@/api/purchase/purApply";
import {filterSubByInv} from "@/api/system/invSubWarehouse";
import {filterGroupBySpuse, filterSubByInv} from "@/api/system/invSubWarehouse";
import {addPlanId} from "@/api/purchase/purPlan";
import SelectRecelveListDialog from "@/views/inout/receive/selectReveiceListDialog";
import {parseTime} from "@/utils/coTools";
@ -296,7 +297,7 @@ export default {
if (this.formData.arrivalTime == "" || this.formData.arrivalTime == null) {
return this.$message.error("到货时间不能为空!");
}
if (this.formData.arrivalTime<this.formData.createTime) {
if (this.formData.arrivalTime < this.formData.createTime) {
return this.$message.error("到货时间不能比单据日期早!!!");
}
for (let i = 0; i < this.codeArray.length; i++) {
@ -425,7 +426,7 @@ export default {
}
},
deleteCodeArray(index, row) {
this.orderEditor=true;
this.orderEditor = true;
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -488,9 +489,10 @@ export default {
findSubInvs() {
this.subInvList = [];
let query = {
filter: 3
filter: 3,
spUse: true,
};
filterSubByInv(query)
filterGroupBySpuse(query)
.then((response) => {
this.subInvList = response.data || [];
if (this.subInvList != null && this.subInvList.length == 1) {

@ -3,47 +3,82 @@
<el-card class="el-card">
<el-form :model="listQuery" label-width="120px" v-show="showSearch">
<el-row>
<el-col :span="12">
<el-col :span="18">
<el-form-item label="UDI码:" class="query-form-item">
<el-input v-model="listQuery.udiCode" style="width: 96%" placeholder="请扫描或输入UDI码" clearable="true"
@keyup.enter.native="keyup_submit($event)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="第三方产品编码:" class="query-form-item">
<el-input v-model="listQuery.thrPiId" style="width: 90%" placeholder="请输入第三方产品编码"
<el-form-item label="拼音简写:" class="query-form-item">
<el-input v-model="listQuery.pinyinInitial" @input="search" style="width: 100%" placeholder="请输入物资拼音简写"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="第三方物资编码:" class="query-form-item">
<el-input v-model="listQuery.thrPiId" style="width: 100%" placeholder="第三方物资编码"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="分类编码:" class="query-form-item">
<el-input v-model="listQuery.flbm" style="width: 100%" placeholder="请输入分类编码"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="供应商:" class="query-form-item">
<el-input v-model="listQuery.companyName" style="width: 100%" placeholder="请输入供应商"
clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="物品编码:" class="query-form-item">
<el-input v-model="listQuery.unionCode" style="width: 90%" placeholder="请输入DI/医保编码/商品条码"
<el-input v-model="listQuery.unionCode" style="width: 100%" placeholder="请输入DI/医保编码/商品条码"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品通用名:" class="query-form-item">
<el-input v-model="listQuery.cpmctymc" style="width: 90%" placeholder="请输入产品通用名"
<el-input v-model="listQuery.cpmctymc" style="width: 100%" placeholder="请输入产品通用名"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格型号:" class="query-form-item">
<el-input v-model="listQuery.ggxh" style="width: 90%" placeholder="请输入规格型号" clearable="true"></el-input>
<el-input v-model="listQuery.ggxh" style="width: 100%" placeholder="请输入规格型号" clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="生产企业:" class="query-form-item">
<el-input v-model="listQuery.ylqxzcrbarmc" style="width: 90%" placeholder="请输入生产企业/注册备案人"
<el-input v-model="listQuery.manufactory" style="width: 100%" placeholder="请输入生产企业/注册备案人"
clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" v-if="productRemarkSet.remarkEnable1">
<el-form-item :label="productRemarkSet.remarkTitle1+':'" class="query-form-item">
<el-input v-model="listQuery.basicPrductRemak1" style="width: 100%" :placeholder="productRemarkSet.remarkTitle1"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" v-if="productRemarkSet.remarkEnable2">
<el-form-item :label="productRemarkSet.remarkTitle2 +':'" class="query-form-item">
<el-input v-model="listQuery.basicPrductRemak2" style="width: 100%" :placeholder="productRemarkSet.remarkTitle2"
clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
@ -55,21 +90,23 @@
<el-divider style="margin: 15px"></el-divider>
<el-table :data="dataList" style="width: 100%" v-loading="loading" border highlight-current-row
:row-class-name="tableRowClassName" @current-change="handleChange" ref="multipleTable">
<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>
:row-class-name="tableRowClassName" @current-change="handleChange" :row-key="row=>row.id"
@selection-change="handleSelectionChange" ref="multipleTable">
<!--<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 type="selection" :reserve-selection="true"></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="最小销售产品标识" prop="nameCode" width="140" show-overflow-tooltip></el-table-column>
<el-table-column label="产品编码" prop="thirdId" show-overflow-tooltip></el-table-column>
<el-table-column label="第三方物资编码" prop="thirdId" show-overflow-tooltip></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc"></el-table-column>
<el-table-column label="产品通用名" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="物资名称" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案凭证" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column label="器械类别" prop="qxlb" show-overflow-tooltip></el-table-column>
<el-table-column label="配送企业" prop="companyName" show-overflow-tooltip></el-table-column>
<el-table-column label="供应商" prop="companyName" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="160">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="handleDetailClick(scope.row)">详情</el-button>
@ -87,7 +124,6 @@
></pagination>
</el-card>
<el-dialog
title="耗材字典详情"
:visible.sync="udiRlDetailVisible"
@ -100,11 +136,14 @@
<udiRlDetailDialog :editQuery="currentRow"></udiRlDetailDialog>
</el-dialog>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{
item
}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
@ -118,10 +157,11 @@
</template>
<script>
import {filterCompanyProductRelevance} from "../../../api/basic/udiRlSuptRelevance";
import {filterCompanyProductplanRelevance, filterCompanyProductRelevance} from "../../../api/basic/udiRlSuptRelevance";
import {addApplyDetail, addApply} from "../../../api/purchase/purApply";
import store from "../../../store";
import udiRlDetailDialog from "./../../purchase/purApply/purUdiRlDetailDialog";
import {finProductSet} from "@/api/param/systemParamConfig";
export default {
name: "stockOrderNewSelectProduct",
@ -142,6 +182,10 @@ export default {
type: Object,
required: true,
},
codeArray: {
type: Object,
required: true,
},
},
data() {
@ -155,6 +199,7 @@ export default {
ggxh: null,
ylqxzcrbarmc: null,
thrPiId: null,
pinyinInitial: null,
page: 1,
limit: 10,
},
@ -165,6 +210,7 @@ export default {
keys: [],
},
ids: [],
lists: [],
radioCheck: null,
dataList: [],
pageTotal: 1,
@ -176,6 +222,14 @@ export default {
thirdSysFk: null,
busTypes: [],
actDateRange: [],
tQuery: {
productId: "",
productName: "",
count: "",
orderIdFk: "",
supId: "",
},
productRemarkSet: {},
pickerOptions: {
shortcuts: [
{
@ -276,7 +330,8 @@ export default {
getList() {
this.loading = true;
this.listQuery.customerId = store.getters.customerId;
filterCompanyProductRelevance(this.listQuery)
this.listQuery.id = this.pId;
filterCompanyProductplanRelevance(this.listQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
@ -297,48 +352,49 @@ export default {
intentBack() {
this.closeDialog();
},
handleSelectionChange(val) {
this.lists = [];
for (var i = 0; i < val.length; i++) {
this.tQuery = {}
this.tQuery.productId = val[i].id;
this.tQuery.supId = val[i].customerId;
this.tQuery.productName = val[i].cpmctymc;
this.tQuery.count = 1;
this.tQuery.orderIdFk = this.pId;
this.tQuery.zczbhhzbapzbh = val[i].zczbhhzbapzbh;
this.lists.push(this.tQuery)
}
console.log(this.lists)
},
confirmSelect() {
if (this.multipleSelection == null) {
if (this.lists == null) {
this.$message.error('未选择产品');
return;
}
// if (this.ids.length > 0) {
// for (var i = 0; i < this.ids.length; i++) {
// if (this.ids[i] == this.multipleSelection.id) {
// this.$message.error("");
// return
// }
// }
// }
if (this.ids.length > 0) {
for (var i = 0; i < this.ids.length; i++) {
if (this.ids[i] == this.multipleSelection.rlId) {
this.$message.error("该产品已录入!");
return
}
}
}
if (!this.multipleSelection.companyName) {
this.$message.error("配送企业为空!请重新选择!");
return;
}
let str = this.multipleSelection.zczbhhzbapzbh;
if (str.search(",") != -1) {
this.currentCert = null;
this.certList = str.split(',');
this.dialogFormVisible = true;
} else {
this.combine();
}
// let str = this.multipleSelection.zczbhhzbapzbh;
// if (str.search(",") != -1) {
// this.currentCert = null;
// this.certList = str.split(',');
// this.dialogFormVisible = true;
// } else {
this.combine();
// }
},
combine() {
this.loading = true;
let tQuery = {
productId: this.multipleSelection.rlId,
productName: this.multipleSelection.cpmctymc,
count: 1,
orderIdFk: this.pId,
supId: this.multipleSelection.customerId,
zczbhhzbapzbh: this.multipleSelection.zczbhhzbapzbh
};
addApplyDetail(tQuery).then((response) => {
addApplyDetail(this.lists).then((response) => {
this.loading = false;
if (response.code === 20000) {
this.closeDialog(response.data);
@ -363,13 +419,19 @@ export default {
this.multipleSelection.zczbhhzbapzbh = this.currentCert;
this.combine();
}
},
findBasicProductSet() {
finProductSet().then((response) => {
if (response.code == 20000) {
this.productRemarkSet = response.data;
}
});
},
},
components: {udiRlDetailDialog},
created() {
console.log(this.data)
this.findBasicProductSet();
if (this.$isNotBlank(this.data)) {
this.ids = [];
if (this.data.stockOrderLists.length > 0) {
@ -378,13 +440,17 @@ export default {
}
}
}
},
};
</script>
<style scoped>
.query-form-item {
display: block !important;
margin-right: 1px;
margin-bottom: 5px;
}
div /deep/ .el-table .warning-row {
background: #bebebe;

@ -1,150 +1,158 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item label="申购单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item>
</el-col>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item label="申购单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申购部门">
<el-select v-model="filterQuery.targetDeptCode" placeholder="请选择申购部门" style="width: 90%"
@change="getInvList"
>
<el-option
v-for="item in deptList"
:key="item.code"
:label="item.name"
:value="item.code"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申购部门">
<el-select v-model="filterQuery.deptCode" placeholder="请选择申购部门" style="width: 90%"
@change="getInvList"
>
<el-option
v-for="item in deptList"
:key="item.code"
:label="item.name"
:value="item.code"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申购仓库">
<el-select v-model="filterQuery.targetInvCode" @change="getList" style="width: 90%" clearable placeholder="请选择所属仓库">
<el-option
v-for="item in invList"
: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-col :span="8">
<el-form-item label="申购仓库">
<el-select v-model="filterQuery.invCode" @change="getList" style="width: 90%" clearable
placeholder="请选择所属仓库">
<el-option
v-for="item in invList"
: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>
<el-col :span="8">
<el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="正常" :value=1></el-option>
<el-option label="较急" :value=2></el-option>
<el-option label="特急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row>
<el-col :span="8">
<el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="正常" :value=1></el-option>
<el-option label="较急" :value=2></el-option>
<el-option label="特急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
</el-button-group>
</div>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row @current-change="handleDetail">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购部门" prop="targetDeptName"></el-table-column>
<el-table-column label="申购仓库" prop="targetInvName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" >
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime" ></el-table-column>
<el-table-column label="单据状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="操作" width="60px">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.status!=2" @click.native="newDistributionForm(scope.$index, scope.row)">审核</el-button>
</template>
</el-table-column>
</el-table>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail"
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购部门" prop="deptName"></el-table-column>
<el-table-column label="申购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<el-table-column label="单据状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="60px">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.status!=2"
@click.native="newDistributionForm(scope.$index, scope.row)">审核
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column>
</el-table>
</el-card>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column>
</el-table>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<pureApplyDetail
:closeDialog="closeDialog"
:idQuery="idQuery"
:editType="editType"
></pureApplyDetail>
</el-dialog>
</div>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<pureApplyDetail
:closeDialog="closeDialog"
:idQuery="idQuery"
:editType="editType"
></pureApplyDetail>
</el-dialog>
</div>
</template>
<script>
import pureApplyDetail from "./pureApplyDetailDialog";
@ -154,310 +162,323 @@ import {getDeptListByUser} from "@/api/auth/authDept";
import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
showSearch: true,
filterQuery: {
billAction: null,
billNo: "",
originType: null,
thirdSysFk: "",
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
emergency:'',
targetDeptCode:'',
targetInvCode: null
},
formName: null,
formMap: {
add: "新增申购单据",
update: "审核申购单据",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billAction: null,
billNo: "",
originType: null,
thirdSysFk: "",
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
emergency: '',
targetDeptCode: '',
targetInvCode: null,
deptCode: null,
invCode: null,
},
formName: null,
formMap: {
add: "新增申购单据",
update: "审核申购单据",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
},
emergencyMap: {
1: "正常",
2: "较急",
3: "特急",
},
idQuery: {},
editType: 1,
total: 0,
thirdSys: [],
invCodebe: null,
thirdSysDetail: null,
busTypes: [],
originTypes: [],
invList: {},
deptList: {},
list: [],
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
emergencyMap:{
1: "正常",
2: "较急",
3: "特急",
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
idQuery: {},
editType: 1,
total: 0,
thirdSys: [],
invCodebe:null,
thirdSysDetail: null,
busTypes: [],
originTypes: [],
invList:{},
deptList:{},
list: [],
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
};
},
],
},
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
let deptCode = this.filterQuery.targetDeptCode
this.filterQuery = {
billNo: "",
thirdSysFk: "",
billFlag: null,
billAction: null,
startDate: null,
endDate: null,
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
targetDeptCode: this.invCodebe,
targetInvCode: null
};
if (deptCode != this.invCodebe) {
this.getInvList()
}
this.actDateRange = [];
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
onSubmitFind() {
this.filterQuery.page = 1;
this.getList();
},
methods: {
onReset() {
this.$router.push({
path: "",
});
let deptCode = this.filterQuery.targetDeptCode
this.filterQuery = {
billNo: "",
thirdSysFk: "",
billFlag: null,
billAction: null,
startDate: null,
endDate: null,
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
targetDeptCode: this.invCodebe,
targetInvCode: null
};
if(deptCode!=this.invCodebe){
this.getInvList()
}
this.actDateRange = [];
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
onSubmitFind() {
this.filterQuery.page = 1;
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
this.filterQuery.endDate = this.actDateRange[1];
} else {
this.filterQuery.startDate = null;
this.filterQuery.endDate = null;
}
this.loading = true;
auditListApply(this.filterQuery)
.then((response) => {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList=[]
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
handleDetail(row) {
let query = {orderIdFk: row.id};
this.loading = true;
listApplyDetail(query) //
.then((response) => {
this.detailList = response.data.list || [];
this.loading = false;
})
.catch(() => {
this.loading = false;
this.detailList = [];
this.total = 0;
});
},
submitOrder(row) {
this.loading = true;
let tQuery = {
editStatus: 2,
purApplyEntity: row,
}
auditOrder(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功!");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
this.filterQuery.endDate = this.actDateRange[1];
} else {
this.filterQuery.startDate = null;
this.filterQuery.endDate = null;
}
this.loading = true;
auditListApply(this.filterQuery)
.then((response) => {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = []
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
handleDetail(row) {
let query = {orderIdFk: row.id};
this.loading = true;
listApplyDetail(query) //
.then((response) => {
this.detailList = response.data.list || [];
this.loading = false;
})
.catch(() => {
this.loading = false;
this.detailList = [];
this.total = 0;
});
},
submitOrder(row) {
this.loading = true;
let tQuery = {
editStatus: 2,
purApplyEntity: row,
}
auditOrder(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功!");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
delApply(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.then(() => {
delApply(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
});
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
newDistributionForm(index, row) {
this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
deptChange(){
newDistributionForm(index, row) {
this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
deptChange() {
this. getInvList();
this.getList();
},
getInvList() {
var query={
parentId:this.filterQuery.targetDeptCode
}
this.filterQuery.targetInvCode = null
filterSubAll(query).then((res) => {
this.invList = res.data || [];
})
},
getDeptList() {
filterAll().then((res) => {
this.deptList = res.data || [];
this. getInvList();
this.getList();
});
},
}
,
components: {
pureApplyDetail,
}
,
filters: {
statusFilterType(status) {
const statusMap = {
2: "warning",
3: "success",
4: "danger",
};
return statusMap[status];
}
,
}
,
mounted() {
}
,
created() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
this.getDeptList();
this.getInvList();
this.getList();
},
getInvList() {
var query = {
parentId: this.filterQuery.targetDeptCode
}
this.filterQuery.targetInvCode = null
filterSubAll(query).then((res) => {
this.invList = res.data || [];
})
},
getDeptList() {
filterAll().then((res) => {
this.deptList = res.data || [];
this.getInvList();
this.getList();
});
},
}
,
components: {
pureApplyDetail,
}
,
filters: {
statusFilterType(status) {
const statusMap = {
2: "warning",
3: "success",
4: "danger",
};
return statusMap[status];
}
,
}
,
mounted() {
}
,
created() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
this.getDeptList();
}
,
}
;
</script>
<style scoped>
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
width: 25%;
float: left;
text-align: left;
margin-top: 10px;
width: 25%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
.el-row {
display: flex;
flex-wrap: wrap;
display: flex;
flex-wrap: wrap;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
border-radius: 4px;
flex-wrap: wrap;
}
</style>

@ -92,7 +92,8 @@
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row @current-change="handleDetail">
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row @current-change="handleDetail"
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购部门" prop="targetDeptName"></el-table-column>
@ -103,16 +104,13 @@
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime" ></el-table-column>
<el-table-column label="单据状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="审核时间" prop="auditTime" ></el-table-column>
<el-table-column label="状态" prop="status">
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>
<el-table-column label="审核时间" prop="auditTime"
sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>
<el-table-column label="审核人" prop="auditByName"></el-table-column>
<el-table-column label="审核状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
@ -178,6 +176,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billAction: null,
@ -326,6 +325,17 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];

@ -26,7 +26,7 @@
<el-col :span="8">
<el-form-item label="采购仓库">
<el-select v-model="filterQuery.invCode" style="width: 90%" clearable placeholder="请选择所属仓库">
<el-select v-model="filterQuery.invCode" style="width: 90%" clearable placeholder="请选择所属仓库">
<el-option
v-for="item in invList"
:key="item.name"
@ -79,28 +79,32 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<el-table-column label="采购单号" prop="billNo" width="160"></el-table-column>
<el-table-column label="采购部门" prop="deptName" width="120"></el-table-column>
<el-table-column label="采购仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="申购仓库" prop="applyInvName" width="120"></el-table-column>
<el-table-column label="申购人" prop="applyCreateBy" width="120"></el-table-column>
<el-table-column label="供应商" prop="supName" width="180"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" width="120">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<el-table-column label="单据状态" prop="status">
<el-table-column label="到货截止" prop="arrivalTime" width="160"></el-table-column>
<el-table-column label="单据状态" prop="status" width="120">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑
</el-button>
@ -163,6 +167,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
pId: null,
isChang: false,
@ -176,12 +181,12 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
emergency:'',
deptCode:'',
invCode:''
emergency: '',
deptCode: '',
invCode: ''
},
formName: null,
invCodebe:null,
invCodebe: null,
formMap: {
add: "新增采购订单",
update: "编辑采购订单",
@ -192,7 +197,7 @@ export default {
3: "已审核",
4: "已拒绝"
},
emergencyMap:{
emergencyMap: {
1: "正常",
2: "较急",
3: "特急",
@ -286,7 +291,7 @@ export default {
this.newSpDistributionVisible = false
}
});
}else{
} else {
this.newSpDistributionVisible = false
}
@ -298,6 +303,18 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
@ -312,7 +329,7 @@ export default {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList=[]
this.detailList = []
} else {
this.$message.error(response.message);
}
@ -404,8 +421,8 @@ export default {
this.detailList = [];
},
getInvList() {
var query={
parentId:this.filterQuery.deptCode
var query = {
parentId: this.filterQuery.deptCode
}
filterSubAll(query).then((res) => {
this.invList = res.data || [];
@ -414,12 +431,12 @@ export default {
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
if(this.deptList.length>0){
this.filterQuery.deptCode=this.deptList[0].code
this.invCodebe=this.filterQuery.deptCode
if (this.deptList.length > 0) {
this.filterQuery.deptCode = this.deptList[0].code
this.invCodebe = this.filterQuery.deptCode
}
this.getList();
this. getInvList();
this.getInvList();
});
},

@ -11,7 +11,7 @@
<el-col :span="8">
<el-form-item label="采购部门">
<el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%">
<el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%">
<el-option
v-for="item in deptList"
:key="item.code"
@ -26,7 +26,7 @@
<el-col :span="8">
<el-form-item label="采购仓库">
<el-select v-model="filterQuery.invCode" clearable style="width: 90%" placeholder="请选择所属仓库">
<el-select v-model="filterQuery.invCode" clearable style="width: 90%" placeholder="请选择所属仓库">
<el-option
v-for="item in invList"
:key="item.name"
@ -78,26 +78,31 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<el-table-column label="采购单号" prop="billNo" width="160"></el-table-column>
<el-table-column label="采购部门" prop="deptName" width="120"></el-table-column>
<el-table-column label="采购仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="申购仓库" prop="applyInvName" width="120"></el-table-column>
<el-table-column label="申购人" prop="applyCreateBy" width="120"></el-table-column>
<el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="供应商" prop="supName" width="180"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" width="120">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<el-table-column label="单据状态" prop="status">
<el-table-column label="到货截止" prop="arrivalTime" width="160"></el-table-column>
<el-table-column label="单据状态" prop="status" width="120">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="操作" width="60px">
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="操作" width="60px" fixed="right">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.status!=2"
@click.native="newDistributionForm(scope.$index, scope.row)">审核
@ -159,6 +164,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billAction: null,
@ -170,11 +176,11 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
emergency:'',
deptCode:'',
emergency: '',
deptCode: '',
},
formName: null,
invCodebe:null,
invCodebe: null,
formMap: {
add: "新增采购计划",
update: "采购计划审核",
@ -185,7 +191,7 @@ export default {
3: "已审核",
4: "已拒绝"
},
emergencyMap:{
emergencyMap: {
1: "正常",
2: "较急",
3: "特急",
@ -269,6 +275,17 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
@ -283,7 +300,7 @@ export default {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList=[]
this.detailList = []
} else {
this.$message.error(response.message);
}
@ -344,8 +361,8 @@ export default {
this.detailList = [];
},
getInvList() {
var query={
parentId:this.filterQuery.deptCode
var query = {
parentId: this.filterQuery.deptCode
}
filterSubAll(query).then((res) => {
this.invList = res.data || [];
@ -354,12 +371,12 @@ export default {
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
if(this.deptList.length>0){
this.filterQuery.deptCode=this.deptList[0].code
this.invCodebe=this.filterQuery.deptCode
if (this.deptList.length > 0) {
this.filterQuery.deptCode = this.deptList[0].code
this.invCodebe = this.filterQuery.deptCode
}
this.getList();
this. getInvList();
this.getInvList();
});
},

@ -127,7 +127,8 @@
<el-row type="flex" justify="end">
<el-button-group style="display: flex">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px">
<el-button type="primary" @click.native.stop="selectProductFunction()" :loading="loading">产品录入</el-button>
<el-button type="primary" @click.native.stop="selectProductFunction()" :loading="loading">产品录入
</el-button>
<!-- <el-button type="primary" :loading="loading" @click.native.stop="selectApply()">选入采购单</el-button>-->
</el-button-group>
@ -154,7 +155,21 @@
</el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column>
<el-table-column label="供应商" prop="supName">
<template slot-scope="scope">
<el-select size="mini"
@change='tableCountChange(scope.row)'
v-model="scope.row.supName" clearable
:disabled="scope.row.index !== selectedIndex"
placeholder="请选择">
<el-option v-for="item in suppliers"
:key="item.erpId"
:label="item.name"
:value="item.erpId">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button type="text" size="small" :disabled="scope.row.index === selectedIndex" @click.stop="true"
@ -214,7 +229,8 @@ import {
listOrderDetail,
addOrderId,
selectOrderDetail,
updateDetail
updateDetail,
filterSupList
} from "@/api/purchase/purOrder";
import {filterSubByInv} from "@/api/system/invSubWarehouse";
import SelectPlanListDialog from "@/views/purchase/purPlan/selectPlanListDialog";
@ -267,6 +283,7 @@ export default {
formVisible: false,
deleteLoading: false,
orderNo: null,
suppliers: [],
statusMap: {
1: "草稿",
2: "未审核",
@ -334,6 +351,9 @@ export default {
if (this.$isBlank(this.codeArray[i].count) || this.codeArray[i].count == "0") {
return this.$message.error('单据数量不能为0');
}
if (this.$isBlank(this.codeArray[i].supName)) {
return this.$message.error('请选择产品对应供应商');
}
}
}
if (status == "1") {
@ -422,6 +442,13 @@ export default {
rowChange(val) {
this.currentRow = val;
this.selectedIndex = val.index;
filterSupList({productId: val.productId}) //
.then((response) => {
this.suppliers = response.data || [];
})
.catch(() => {
});
},
tableCountChange(row) {
if (this.$isNotBlank(row)) {

@ -138,11 +138,11 @@
<udiRlDetailDialog :editQuery="currentRow"></udiRlDetailDialog>
</el-dialog>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>

@ -10,7 +10,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="采购部门">
<el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%">
<el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%">
<el-option
v-for="item in deptList"
:key="item.code"
@ -94,29 +94,35 @@
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true"
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<el-table-column label="采购单号" prop="billNo" width="160"></el-table-column>
<el-table-column label="采购部门" prop="deptName" width="120"></el-table-column>
<el-table-column label="采购仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="申购仓库" prop="applyInvName" width="120"></el-table-column>
<el-table-column label="申购人" prop="applyCreateBy" width="120"></el-table-column>
<el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="供应商" prop="supName" width="180"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" width="120">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<el-table-column label="状态" prop="status">
<el-table-column label="到货截止" prop="arrivalTime" width="160"></el-table-column>
<el-table-column label="单据状态" prop="status" width="120">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"
sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="操作">
<el-table-column label="操作" width="60px" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
>删除
@ -182,6 +188,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
BASE_URL: process.env.VUE_APP_BASE_API,
filterQuery: {
billAction: null,
@ -193,11 +200,11 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
emergency:'',
deptCode:'',
emergency: '',
deptCode: '',
},
Menustatus:null,
filePath:"",
Menustatus: null,
filePath: "",
formName: null,
formMap: {
add: "新增采购计划",
@ -221,7 +228,7 @@ export default {
editType: 1,
total: 0,
thirdSys: [],
invCodebe:null,
invCodebe: null,
thirdSysDetail: null,
busTypes: [],
originTypes: [],
@ -328,10 +335,22 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
help(){
help() {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
window.open(this.certFileUrl + this.filePath);
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];
@ -354,7 +373,7 @@ export default {
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList=[]
this.detailList = []
} else {
this.$message.error(response.message);
}
@ -410,12 +429,12 @@ export default {
this.getList();
},
selectAuthMenu(){
let params={menuName:this.$route.meta.title}
selectAuthMenu(params).then((res) =>{
if(res.code === 20000){
this.Menustatus=res.data.status;
this.filePath=res.data.filePath;
selectAuthMenu() {
let params = {menuName: this.$route.meta.title}
selectAuthMenu(params).then((res) => {
if (res.code === 20000) {
this.Menustatus = res.data.status;
this.filePath = res.data.filePath;
}
})
},
@ -427,8 +446,8 @@ export default {
},
getInvList() {
var query={
parentId:this.filterQuery.deptCode
var query = {
parentId: this.filterQuery.deptCode
}
filterSubAll(query).then((res) => {
this.invList = res.data || [];
@ -437,12 +456,12 @@ export default {
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
if(this.deptList.length>0){
this.filterQuery.deptCode=this.deptList[0].code
this.invCodebe=this.filterQuery.deptCode
if (this.deptList.length > 0) {
this.filterQuery.deptCode = this.deptList[0].code
this.invCodebe = this.filterQuery.deptCode
}
this.getList();
this. getInvList();
this.getInvList();
});
},

@ -112,11 +112,14 @@
<udiRlDetailDialog :editQuery="currentRow"></udiRlDetailDialog>
</el-dialog>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{
item
}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
@ -175,6 +178,9 @@ export default {
limit: 10,
zczbhhzbapzbh: null,
manufactory: null,
basicPrductRemak1: null,
basicPrductRemak2: null,
},
combineQuery: {
thirdId: "",
@ -351,7 +357,7 @@ export default {
orderIdFk: this.pId,
supId: this.multipleSelection.customerId,
zczbhhzbapzbh: this.multipleSelection.zczbhhzbapzbh,
price:this.multipleSelection.price
price: this.multipleSelection.price
};
addOrderDetail(tQuery).then((response) => {
this.loading = false;

@ -100,11 +100,11 @@
<udiRlDetailDialog :editQuery="currentRow"></udiRlDetailDialog>
</el-dialog>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>

@ -81,7 +81,7 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
@ -99,7 +99,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
@ -164,6 +165,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
pId: null,
isChang: false,
@ -301,6 +303,18 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];

@ -78,7 +78,7 @@
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
@ -96,7 +96,8 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="操作" width="60px">
@ -160,6 +161,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
filterQuery: {
billAction: null,
@ -172,7 +174,7 @@ export default {
type: 1,
editStatus: 1,
emergency:'',
deptCode:'',
deptCode:'',
invCode:null
},
formName: null,
@ -257,7 +259,7 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
deptCode: this.invCodebe,
deptCode: this.invCodebe,
invCode:null
};
this.getInvList()
@ -272,6 +274,19 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];

@ -138,11 +138,11 @@
<udiRlDetailDialog :editQuery="currentRow"></udiRlDetailDialog>
</el-dialog>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
<el-radio style="width: 100%; margin-top: 10px;" :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>

@ -93,7 +93,7 @@
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true"
@current-change="handleDetail">
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购计划单号" prop="billNo"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
@ -111,8 +111,10 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"></el-table-column>
<el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"
sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
@ -169,7 +171,7 @@
</template>
<script>
import purPlanEdit from "./purPlanDetailDialog";
import {delApply, listPlan, listApplyDetail, delPlanDetailAll} from "@/api/purchase/purPlan";
import {delApply, listPlan, listApplyDetail, delPlanDetailAll, delApplyDetail} from "@/api/purchase/purPlan";
import { getInvListByUser } from '@/api/system/invWarehouse'
import { getDeptListByUser } from '@/api/auth/authDept'
import {filterSubAll} from "@/api/system/invSubWarehouse";
@ -177,6 +179,7 @@ import {filterSubAll} from "@/api/system/invSubWarehouse";
export default {
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
filterQuery: {
billAction: null,
billNo: "",
@ -320,6 +323,18 @@ export default {
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
getList() {
if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0];

@ -154,7 +154,7 @@ export default {
justify-content: center;
align-items: center;
height: 100%;
background-image: url("../assets/images/login-background.jpg");
background-image: url("../assets/login.jpg");
background-size: cover;
}
.title {

@ -4,6 +4,7 @@
<el-transfer v-model="value" :data="data"
class="edit_dev"
@change="transferChange"
@mouseover.native="addTitle"
filterable
:titles="['未选入单据类型', '已选入单据类型']"
@ -123,6 +124,13 @@ export default {
this.multipleSelection = val;
},
addTitle(e) {
// title
let target_el = e.target;
if (target_el.title) return;
target_el.title = target_el.innerText;
},
transferChange(value, direction, keyArr) {
this.keyArr=value;

@ -216,7 +216,6 @@ export default {
warehouseUserList(this.userQuery).then((res) => {
this.userData = res.data.list;
this.userTotal = res.data.total;
}).catch((error) => {
this.$message.error("数据正在处理,请勿重复提交")
});

@ -239,7 +239,14 @@ export default {
this.$message.error("请选择类型!");
return;
}
if (this.inputQuery.beforeTime < 0){
this.$message.error("生成出入库单时间间隔不能为负数!")
return;
}
if (this.inputQuery.busBeforeTime < 0){
this.$message.error("生成业务单时间间隔不能为负数!")
return;
}
if (this.formName === "add") {
let numRegExp = '^[0-9]*$';
let numReg = new RegExp(numRegExp);

@ -235,11 +235,11 @@ export default {
return;
}
if (this.inputQuery.beforeTime < 0){
this.$message.error("时间间隔不能为负数!")
this.$message.error("生成出入库单时间间隔不能为负数!")
return;
}
if (this.inputQuery.busBeforeTime < 0){
this.$message.error("时间间隔不能为负数!")
this.$message.error("生成业务单时间间隔不能为负数!")
return;
}
// if (isBlank(this.inputQuery.invCode)) {

@ -1,38 +1,42 @@
<template>
<div>
<el-card>
<el-form :inline="true" :model="query" size="mini">
<el-form-item label="用户账号:">
<el-input v-model="query.userName" placeholder="用户账号" clearable></el-input>
</el-form-item>
<el-form-item class="query-form-item" label="账号状态:">
<el-select v-model="query.userFlag" placeholder="请选择账号状态:">
<el-option label="全部" value=""></el-option>
<el-option label="禁用" value="0"></el-option>
<el-option label="正常" value="1"></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="el-icon-search" @click="onSubmit"
>查询
</el-button
>
<el-button type="primary" @click.native="handleForm(null, null)" icon="el-icon-plus"
:disabled="!configParms.sysUser && query.customerId == 110"
v-hasPermi="['system:user:add']"
>新增
</el-button
>
</el-button-group>
</el-form-item>
<el-form :inline="true" :model="query" size="mini" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item label="用户账号:">
<el-input v-model="query.userName" placeholder="用户账号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="账号状态:">
<el-select v-model="query.userFlag" placeholder="请选择账号状态:">
<el-option label="全部" value=""></el-option>
<el-option label="禁用" value="0"></el-option>
<el-option label="正常" value="1"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属部门:">
<el-input v-model="query.deptName" placeholder="所属部门" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
<el-button type="primary" @click.native="handleForm(null, null)" icon="el-icon-plus"
:disabled="!configParms.sysUser && query.customerId == 110"
v-hasPermi="['system:user:add']">新增</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list"
style="width: 100%"
border highlight-current-row>
@ -102,7 +106,8 @@
<el-row type="flex">
<el-col :span="11" type="flex">
<el-form-item label="用户账号" prop="userName">
<el-input v-model="formData.userName" size="small" style="width: 90%" :disabled="formData.id == 1"></el-input>
<el-input v-model="formData.userName" size="small" style="width: 90%"
:disabled="formData.id == 1"></el-input>
</el-form-item>
</el-col>
<el-col :span="11" class="el-col">
@ -206,7 +211,7 @@
<el-row :gutter="20" type="flex">
<el-col :span="11" type="flex">
<el-form-item label="角色" prop="roles">
<el-checkbox-group v-model="formData.roles" :disabled="formData.id == 1" >
<el-checkbox-group v-model="formData.roles" :disabled="formData.id == 1">
<el-checkbox
v-for="item in roles"
:key="item.roleId"
@ -258,7 +263,7 @@ import {findConfig} from "@/api/sync/spsSyncStatus";
import {isBlank} from "@/utils/strUtil";
import {listRole} from "@/api/system/role";
import {selectSysParamByKey} from "@/api/system/systemParamConfig";
import {filterList, selectInvById,getDeptById} from '@/api/system/invWarehouse'
import {filterList, selectInvById, getDeptById} from '@/api/system/invWarehouse'
const formJson = {
id: "",
@ -291,10 +296,12 @@ export default {
}
};
return {
showSearch: true,
roles: [],
query: {
userName: "",
userFlag: "1",
deptName: "",
page: 1,
limit: 10,
roleId: "",
@ -362,6 +369,12 @@ export default {
};
},
methods: {
getDeptList(){
},
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.$router.push({
path: ""
@ -369,6 +382,7 @@ export default {
this.query = {
userName: "",
userFlag: "1",
deptName: null,
page: 1,
limit: 10,
roleId: "",
@ -384,7 +398,7 @@ export default {
this.query.page = 1;
this.getList();
},
change(){
change() {
this.$forceUpdate();
},
findInv(val) {
@ -403,7 +417,7 @@ export default {
},
getList() {
this.loading = true;
this.query.key='key';
this.query.key = 'key';
authAdminList(this.query)
.then(response => {
this.loading = false;
@ -465,7 +479,7 @@ export default {
roles: row.roles,
depts: row.depts,
dept: row.dept,
locInvCode:row.locInvCode
locInvCode: row.locInvCode
};
}
this.formName = "add";
@ -570,10 +584,10 @@ export default {
};
filterList(query)
.then((response) => {
var deptList=[];
var deptList = [];
this.loading = false;
for(var i=0;i<response.data.list.length;i++){
if(response.data.list[i].id!=1){
for (var i = 0; i < response.data.list.length; i++) {
if (response.data.list[i].id != 1) {
deptList.push(response.data.list[i]);
}
}

@ -0,0 +1,57 @@
<template>
<div>
12354
</div>
</template>
<script>
export default {
data() {
return {
}
},
mounted() {
//
var code = ''
var lastTime, nextTime //
var lastCode, nextCode //
document.onkeypress = (e) => {
//
if (window.event) { // IE
nextCode = e.keyCode
} else if (e.which) { // Netscape/Firefox/Opera
nextCode = e.which
}
// ()
if (nextCode === 13) {
if (code.length < 3) return // code2
this.codeFind(code) //
code = ''
lastCode = ''
lastTime = ''
return
}
nextTime = new Date().getTime() //
if (!lastTime && !lastCode) { //
code += e.key //
}
//
if (lastCode && lastTime && nextTime - lastTime > 30) { // keypress,
code = e.key
} else if (lastCode && lastTime) {
code += e.key
}
lastCode = nextCode
lastTime = nextTime
}
},
methods: {
//
codeFind(code) {
alert(code)
}
}
}
</script>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save