Merge remote-tracking branch 'origin/master'

ywj_dev
wj 2 years ago
commit 5023d3d487

@ -41,6 +41,15 @@ export function updateById(data) {
});
}
export function updateBizById(data) {
return axios({
url: "/udiwms/inout/bizDetail/updateById",
method: "post",
data: data
});
}
export function insertInvoice(params) {
return axios({
url: "/udiwms/inout/biz/insertInvoice",

@ -15,3 +15,20 @@ export function getResultOrderList(params) {
params: params
});
}
export function verifyTemplateFile(data) {
return axios({
url: "/udiwms/pdf/template/order/result/file",
method: "post",
data: data
});
}
export function printOrder(data) {
return axios({
url: "/udiwms/inout/resultDetail/filterOrderPrint",
method: "post",
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
responseType: 'arraybuffer', //一定要设置响应类型否则页面会是空白pdf
data: data
});
}

@ -71,6 +71,26 @@ export function stockQRCodeTextPDFFromTemplateFile(query) {
responseType: 'arraybuffer', //一定要设置响应类型否则页面会是空白pdf
});
}
//---------打印码
export function inspectionStockQRCodeTextPDFFromTemplateStatementFile(query) {
return axios({
url: "/udiwms/pdf/template/inspection/stock/qrcode/text/statement/file",
method: "post",
data: query,
});
}
export function stockQRCodeTextPDFFromTemplateStatementFile(query) {
return axios({
url: "/udiwms/pdf/template/stock/qrcode/text/statement/file",
method: "post",
data: query,
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
responseType: 'arraybuffer', //一定要设置响应类型否则页面会是空白pdf
});
}
export function stockQRCodeTextPDFFromTemplateFileMax(query) {
return axios({
url: "/udiwms/pdf/template/stock/qrcode/text/maxfile",

@ -5,7 +5,8 @@
<el-row type="flex" justify="end">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px;">
<el-button type="primary" @click.native="generateQRCodeText()" :loading="loading">生成内部码</el-button>
<el-button type="primary" @click.native="printStockOrderDetailPDF()" :loading="loading">打印全部</el-button>
<el-button type="primary" @click.native="printStockOrderDetailPDF()" :loading="loading">标签打印全部</el-button>
<el-button type="primary" @click.native="printStockOrderDetailStatementPDF()" :loading="loading">报表打印全部</el-button>
<el-switch style="margin-left: 50px;" v-model="filterUDIType" active-text="过滤已有UDI码的产品"></el-switch>
</el-button-group>
</el-row>
@ -76,6 +77,13 @@
>标签打印
</el-button
>
<el-button
type="text"
size="small"
@click.native="printStockOrderDetailStatementPDF(scope.row)"
>报表打印
</el-button
>
</template>
</el-table-column>
</el-table>
@ -157,7 +165,7 @@ import draggable from "vuedraggable";
import {
filterTemp,
inspectionOrderDetailPDFFromTemplateFile,
inspectionStockQRCodeTextPDFFromTemplateFile,
inspectionStockQRCodeTextPDFFromTemplateFile, inspectionStockQRCodeTextPDFFromTemplateStatementFile,stockQRCodeTextPDFFromTemplateStatementFile,
orderDetailPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFileMax
} from "@/api/itextpdf/itextpdf";
import {generateInCodeQRCodeText, generateInnerQRCodeText} from "@/api/inout/innerOrderQRCode";
@ -262,6 +270,69 @@ export default {
this.total = 0;
});
},
printStockOrderDetailStatementPDF(row) {
let tQuery = {
queryId: null,
orderId: null,
countList: [],
labelId: 5
};
if (row == null) {
tQuery.orderId = this.query.orderIdFk;
} else {
if (row.reCount <= 0) {
return this.$message.error('数量错误');
}
tQuery.queryId = row.id;
}
this.loading = true;
inspectionStockQRCodeTextPDFFromTemplateStatementFile(tQuery).then((response) => {
if (response.code === 20000) {
if (row != null) {
tQuery.id = row.id;
tQuery.rowCount = row.reCount;
let data = {
queryId: row.id,
rowCount: row.count
}
tQuery.countList.push(data);
} else {
for (let i = 0; i < this.codeArray.length; i++) {
let data = {
queryId: this.codeArray[i].id,
rowCount: this.codeArray[i].count
}
tQuery.countList.push(data);
}
}
let count = 0;
for (let i = 0; i < tQuery.countList.length; i++) {
count = count + tQuery.countList[i].rowCount;
console.log(count);
}
stockQRCodeTextPDFFromTemplateStatementFile(tQuery).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
//blob
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//pdf
this.getOrderQRCodeTextList();
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
},
handleLableChange(val) {
this.refreshQuery.page = val.page;
this.refeshLabel();

@ -2,21 +2,40 @@
<div>
<el-card>
<el-row type="flex" style="flex-wrap: nowrap">
<el-col v-show="showSearch" style="width: 300px">
<el-tree
:data="treeList"
class="tree"
:default-expand-all="true"
@node-click="handleNodeClick"
:expand-on-click-node="false"
>
<span class="custom-tree-node" slot-scope="{ node, data }">
<span style="font-size: 14px; font-weight: 500">{{
<el-col style="flex: 1" v-show="Dictionary">
<el-col v-show="showSearch" style="min-width: 200px; max-width: 100%">
<el-tree
:data="treeList"
class="tree"
:default-expand-all="true"
@node-click="handleNodeClick"
:expand-on-click-node="false"
>
<span class="custom-tree-node" slot-scope="{ node, data }">
<span style="font-size: 14px; font-weight: 500">{{
node.label
}}</span></span
>
</el-tree>
>
</el-tree>
</el-col>
</el-col>
<el-button
type="success"
@click="Dictionary = !Dictionary"
icon="el-icon-arrow-left"
v-show="Dictionary"
class="iconButton"
>
</el-button>
<el-button
type="success"
@click="Dictionary = !Dictionary"
icon="el-icon-arrow-right"
v-show="!Dictionary"
class="iconButton"
>
</el-button>
<el-col style="border-left: 3px solid #dddddd; overflow-y: hidden">
<el-form
:model="filterQuery"
@ -164,39 +183,33 @@
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch"
>显示/隐藏搜索栏
</el-button
>
>显示/隐藏搜索栏
</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"
>重置
</el-button
>
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="submit"
>查询
</el-button
>
>查询
</el-button>
<!-- <el-button type="primary" icon="el-icon-plus" @click="editUdiType"></el-button>-->
<el-button
type="primary"
icon="el-icon-plus"
@click="intentImportUdi"
>选入DI信息
</el-button
>
>选入DI信息
</el-button>
<el-button
type="primary"
icon="el-icon-plus"
@click="intentImportErp"
>添加院内字典
</el-button
>
>添加院内字典
</el-button>
<el-button
type="primary"
icon="el-icon-plus"
@click="intentDetail"
>关联添加
</el-button
>
>关联添加
</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
@ -276,27 +289,27 @@
size="small"
:disabled="scope.row.originUuid != null"
@click.native.stop="intentSelectUdi(scope.row)"
>关联DI
>关联DI
</el-button>
<el-button
type="text"
size="small"
@click.native.stop="handleModifyClick(scope.row)"
>详情
>详情
</el-button>
<el-button
type="text"
size="small"
@click.native.stop="diEdit(scope.row)"
>编辑
>编辑
</el-button>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row)"
>删除
>删除
</el-button>
</template>
</el-table-column>
@ -905,7 +918,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle1 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle1 }}:&nbsp;</span
>
</div>
<el-input
@ -926,7 +939,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle2 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle2 }}:&nbsp;</span
>
</div>
<el-input
@ -949,7 +962,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle3 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle3 }}:&nbsp;</span
>
</div>
<el-input
@ -970,7 +983,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle4 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle4 }}:&nbsp;</span
>
</div>
<el-input
@ -993,7 +1006,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle5 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle5 }}:&nbsp;</span
>
</div>
<el-input
@ -1014,7 +1027,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle6 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle6 }}:&nbsp;</span
>
</div>
<el-input
@ -1037,7 +1050,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle7 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle7 }}:&nbsp;</span
>
</div>
<el-input
@ -1058,7 +1071,7 @@
<div class="text item">
<div class="itemTag">
<span
>{{ productRemarkSet.remarkTitle8 }}:&nbsp;</span
>{{ productRemarkSet.remarkTitle8 }}:&nbsp;</span
>
</div>
<el-input
@ -1233,14 +1246,17 @@
size="small"
@click.native.stop="selectVersion()"
style="margin-left: 5%"
>切换版本
>切换版本
</el-button>
</el-col>
<el-col :span="2" class="el-col">
<el-button type="text" size="small" @click.native.stop="updateVersion()"
:loading="updateLoading"
style="margin-left: 5%"
>更新当前版本信息
<el-button
type="text"
size="small"
@click.native.stop="updateVersion()"
:loading="updateLoading"
style="margin-left: 5%"
>更新当前版本信息
</el-button>
</el-col>
</el-row>
@ -1275,14 +1291,14 @@
size="small"
icon="search"
@click="onAddSubmit(false)"
>提交
>提交
</el-button>
<el-button
type="primary"
size="small"
icon="search"
@click="cancelDialog"
>取消
>取消
</el-button>
</div>
</el-dialog>
@ -1304,14 +1320,14 @@
size="small"
icon="search"
@click="onAddSingleSubmit(false)"
>提交
>提交
</el-button>
<el-button
type="primary"
size="small"
icon="search"
@click="cancelDialog"
>取消
>取消
</el-button>
</div>
</el-dialog>
@ -1450,13 +1466,14 @@ import {
spcombie,
lockStatus,
removeDiRl,
disableUdi, syncOnline,
disableUdi,
syncOnline,
} from "@/api/basic/product/udiRelevance";
import {
selectSysParamByKey,
finProductSet,
} from "@/api/param/systemParamConfig";
import {filterByUuid} from "@/api/basic/product/udiInfo";
import { filterByUuid } from "@/api/basic/product/udiInfo";
import selectUdi from "./UdiInfoSelectRel.vue";
import selectErp from "./udiInfoselectErpUdi";
@ -1467,12 +1484,13 @@ import ProductSingleEdit from "@/views/basic/product/productSingleEdit";
import productUdiType from "@/views/basic/product/productUdiType";
import selectHospProduct from "@/views/basic/product/bindHospProduct";
import selectUnBindHospProduct from "@/views/basic/product/unbindHospProduct";
import {getBasicHospType, getListTree} from "@/api/basic/basicHospType";
import {dlLastVersionByDi} from "@/api/basic/udiInfo";
import { getBasicHospType, getListTree } from "@/api/basic/basicHospType";
import { dlLastVersionByDi } from "@/api/basic/udiInfo";
export default {
data() {
return {
Dictionary: false, //
filterQuery: {
lockStatus: null,
unionCode: null,
@ -1563,7 +1581,7 @@ export default {
selectVersionVisible: false,
selectLocalVisible: false, //UDI
isUseDyCheck: false,
lockStatusMap: {1: "未提交", 2: "已提交", 3: "已锁定"},
lockStatusMap: { 1: "未提交", 2: "已提交", 3: "已锁定" },
activeNames: ["1"],
useNumEnable: true,
updateLoading: false,
@ -1694,8 +1712,7 @@ export default {
this.$message.error(response.message);
}
})
.catch(() => {
});
.catch(() => {});
},
deleteDialog(rowId) {
@ -1707,8 +1724,7 @@ export default {
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
.catch(() => {});
},
intentDetail() {
@ -1746,11 +1762,9 @@ export default {
this.$message.error(response.message);
}
})
.catch(() => {
});
.catch(() => {});
})
.catch(() => {
});
.catch(() => {});
},
removeDi() {
@ -1777,11 +1791,9 @@ export default {
this.$message.error(response.message);
}
})
.catch(() => {
});
.catch(() => {});
})
.catch(() => {
});
.catch(() => {});
},
intentSelectErp(val) {
@ -1961,6 +1973,12 @@ export default {
isAdavence: row.isAdavence,
};
this.editFormat = JSON.parse(JSON.stringify(row));
if( this.editFormat.overStockNum == null){
this.editFormat.overStockNum = 0;
}
if( this.editFormat.lowStockNum == null){
this.editFormat.lowStockNum = 0;
}
this.editDiDialogVisible = true;
},
closeDialog() {
@ -2067,8 +2085,7 @@ export default {
var invlist = response.data || [];
this.treeList = this.handleTree(invlist, "code", "parentCode");
})
.catch(() => {
});
.catch(() => {});
},
addHospProduct(data) {
@ -2106,9 +2123,12 @@ export default {
type: "warning",
})
.then(() => {
debugger
debugger;
this.updateLoading = true;
let query = {uuid: this.editQuery.uuid, originUuid: this.editQuery.originUuid};
let query = {
uuid: this.editQuery.uuid,
originUuid: this.editQuery.originUuid,
};
syncOnline(query)
.then((response) => {
this.updateLoading = false;
@ -2125,13 +2145,10 @@ export default {
this.total = 0;
});
})
.catch(() => {
});
.catch(() => {});
},
},
mounted() {
},
mounted() {},
components: {
ProductSingleEdit,
ProductEdit,
@ -2153,10 +2170,12 @@ export default {
};
</script>
<style scoped lang="scss">
.iconButton {
margin-left: -2px;
height: 30px;
}
.tree {
::v-deep .el-tree-node {
white-space: normal;
.el-tree-node__content {
height: 100%;
align-items: start;

@ -266,6 +266,7 @@ export default {
};
this.total = 0;
this.list = [];
this.getList();
},
search() {
this.filterQuery.page = 1;

@ -39,7 +39,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="name">
<el-input v-model="inputQuery.batchNo" auto-complete="off" :disabled="true" ></el-input>
<el-input v-model="inputQuery.batchNo" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
@ -50,7 +50,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="code">
<el-input v-model="inputQuery.price" auto-complete="off" :disabled="true"></el-input>
<el-input v-model="inputQuery.price" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -62,7 +62,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="name">
<el-input v-model="inputQuery.manufacturer" auto-complete="off" :disabled="true" ></el-input>
<el-input v-model="inputQuery.manufacturer" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
@ -73,7 +73,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="code">
<el-input v-model="inputQuery.certCode" auto-complete="off" :disabled="true" ></el-input>
<el-input v-model="inputQuery.certCode" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
@ -83,7 +83,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="code">
<el-input v-model="inputQuery.productDate" auto-complete="off" :disabled="true" ></el-input>
<el-input v-model="inputQuery.productDate" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
@ -93,7 +93,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="code">
<el-input v-model="inputQuery.measname" auto-complete="off" :disabled="true"></el-input>
<el-input v-model="inputQuery.measname" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
@ -164,14 +164,70 @@
</el-col>
<el-col :span="8">
<el-button type="primary" size="mini" icon="search" v-if="this.inputQuery.filePath!=null"
style="text-align:right" @click="showImgViewer" >
检验报告预览
style="text-align:right" @click="showImgViewer">
检验报告预览
</el-button>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"
:url-list="imgList"/>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<div class="ao-text">
<span>冷链报告上传</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item>
<el-upload
:disabled="formData.auditStatus == 1"
class="upload-demo"
ref="upload"
:action="this.uploadUrl"
:on-preview="uploadHandlePreview"
:on-remove="uploadHandleRemove1"
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jpg,.png"
:on-change="uploadOnchange1"
:on-success="uploadHandleSuccess1"
:on-error="uploadHandleError"
:on-before="uploadHandleBefore"
:file-list="fileList"
:data="{type:'image2'}"
:auto-upload="true">
<el-button slot="trigger" size="small" type="primary" :disabled="formData.auditStatus == 1">
{{ choiceFile1 }}
</el-button>
<div>只能上传 jpg,png 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="3">
<div class="ao-text" v-if="this.inputQuery.coldFilePath!=null">
<span>冷链报告预览</span>
</div>
</el-col>
<el-col :span="8">
<el-button type="primary" size="mini" icon="search" v-if="this.inputQuery.coldFilePath!=null"
style="text-align:right" @click="showImgViewerCold">
冷链报告预览
</el-button>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold" :url-list="imgListCold"/>
</el-col>
</el-row>
</el-card>
</el-form>
@ -181,13 +237,11 @@
<script>
import draggable from "vuedraggable";
import store from "@/store";
import {updateById} from '@/api/inout/orderDetailBiz'
import {updateOrderDetailBiz} from '@/api/inout/order'
import { previewImage } from '@/api/purchase/supCompany'
import {updateBizById, updateById} from '@/api/inout/orderDetailBiz'
import {previewImage} from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default {
name: "DialogCheck",
props: {
@ -208,19 +262,21 @@ export default {
},
data() {
return {
imgList:[],
imgViewerVisible:false,
imgList: [],
imgListCold:[],
imgViewerVisible: false,
imgViewerVisibleCold:false,
BASE_URL: process.env.VUE_APP_BASE_API,
code: "",
formData: {
ggxh:"",
cpmctymc:"",
machineNo:"",
invoiceCode:"",
invoiceEncode:"",
price:"",
remark:"",
licenseUrl:""
ggxh: "",
cpmctymc: "",
machineNo: "",
invoiceCode: "",
invoiceEncode: "",
price: "",
remark: "",
licenseUrl: ""
},
// formRules: {
// name: [
@ -235,24 +291,25 @@ export default {
fileList: [],
headers: {},
choiceFile: "选取文件",
choiceFile1: "选取文件",
};
},
components: {
draggable,ElImageViewer
draggable, ElImageViewer
},
methods: {
submitUpload() {
updateById(this.inputQuery).then((res) =>{
if(res.code==20000){
this.$message({
type: "success",
message: "修改成功!",
});
this.closeDialog();
}
updateBizById(this.inputQuery).then((res) => {
if (res.code == 20000) {
this.$message({
type: "success",
message: "修改成功!",
});
this.closeDialog();
}
} )
})
},
@ -299,8 +356,13 @@ export default {
//
// },
uploadHandleRemove(file, fileList) {
this.inputQuery.filePath=null;
this.inputQuery.checkFileName=null;
this.inputQuery.filePath = null;
this.inputQuery.checkFileName = null;
console.log(file, fileList);
},
uploadHandleRemove1(file, fileList) {
this.inputQuery.coldFilePath = null;
this.inputQuery.checkColdFileName = null;
console.log(file, fileList);
},
uploadHandlePreview(file) {
@ -311,7 +373,34 @@ export default {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
uploadOnchange(file, fileList) {
this.inputQuery.checkFileName=file.name;
this.inputQuery.checkFileName = file.name;
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jpg" && lastName.toLowerCase() !== ".png" && lastName.toLowerCase() !== ".doc" && lastName.toLowerCase() !== ".pdf") {
this.$message.error("上传文件只能是 jpg,png,doc,pdf 格式");
for (let i = 0; i < fileList.length; i++) {//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
return;
}
//
const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) {
this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
}
return isLt;
},
uploadOnchange1(file, fileList) {
this.inputQuery.checkColdFileName = file.name;
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
@ -340,7 +429,15 @@ export default {
uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) {
this.inputQuery.filePath = response.data.name;
// this.onSubmit();
// this.onSubmit();
} else {
this.$message.error("文件上传失败:" + response.message);
}
},
uploadHandleSuccess1(response, file, fileList) {
if (response.code === 20000) {
this.inputQuery.coldFilePath = response.data.name;
// this.onSubmit();
} else {
this.$message.error("文件上传失败:" + response.message);
}
@ -348,37 +445,65 @@ export default {
uploadHandleError() {
},
uploadHandleBefore(file){
uploadHandleBefore(file) {
console.log(file)
let isJPG = file.type === 'image/jpeg';
let isPNG = file.type === 'image/png';
if(!isJPG&&!isPNG){
if (!isJPG && !isPNG) {
this.$message.error('只能上传jpg或png格式');
}
return isJPG || isPNG;
},
showImgViewer(row){
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList=[];
previewImage({imageUrl:this.inputQuery.filePath,certFileUrl:this.certFileUrl}).then(response => {
this.imgList = [];
previewImage({imageUrl: this.inputQuery.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList=response.data;
this.imgList = response.data;
}
console.log(this.imgList)
this.imgViewerVisible = true;
});
const m = (e) => { e.preventDefault() };
const m = (e) => {
e.preventDefault()
};
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=";
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;
});
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
},
closeImgViewer(){
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => { e.preventDefault() };
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
closeImgViewerCold(){
this.imgViewerVisibleCold = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
},
filters: {},
@ -407,6 +532,12 @@ export default {
} else {
this.choiceFile = "选取检验报告";
}
if (this.inputQuery.coldFilePath != null) {
this.choiceFile1 = "更换冷链报告";
} else {
this.choiceFile1 = "选取冷链报告";
}
},
};
</script>

@ -96,7 +96,7 @@
<el-button slot="trigger" size="small" type="primary" :disabled="formData.auditStatus == 1">
{{ choiceFile }}
</el-button>
<div>只能上传 jpg,png,pdf,doc 文件且不超过 10 MB</div>
<div>只能上传 jpg,png 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
</el-col>

@ -204,7 +204,7 @@ export default {
type: 1,
editStatus: 1,
},
currentRow: null,
corpLoading: false,
fromOptions: [],
@ -403,6 +403,7 @@ export default {
});
},
handleDetail(row) {
this.currentRow = row;
let query = {orderIdFk: row.id};
this.loading = true;
listOrderDetail(query) //
@ -497,8 +498,7 @@ export default {
}
,
components: {
}
components: {}
,
filters: {
statusFilterType(status) {

@ -235,11 +235,10 @@
:total="codeTotal"
:page.sync="codeQuery.page"
:limit.sync="codeQuery.limit"
@pagination="getOrderDetail"
@pagination="getCodeDetailLists"
/>
</el-tab-pane>
</el-tabs>
<el-image-viewer
v-if="imgViewerVisible"
style="z-index: 9999"

@ -196,7 +196,9 @@
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.checkStatus==1 " v-if="showSup" size="small" @click.native.stop="determine(scope.row)"></el-button>
<el-button type="text" :disabled="scope.row.checkStatus==1 " v-if="showSup" size="small"
@click.native.stop="determine(scope.row)">确认
</el-button>
<el-button
type="text"
size="small"
@ -220,7 +222,7 @@
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-单据详情</span>
<el-table v-loading="bizDetailLoading" :data="codeDetailList" style="width: 100%" border
<el-table v-loading="bizDetailLoading" :data="codeDetailList" style="width: 100%" border
@row-click="BizDetail"
row-key="id" highlight-current-row
>
@ -320,7 +322,7 @@
:total="codeTotal"
:page.sync="codeQuery.page"
:limit.sync="codeQuery.limit"
@pagination="getOrderDetails"
@pagination="getCodeDetailList"
/>
</el-tab-pane>
@ -332,11 +334,14 @@
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-发票信息</span>
<el-table v-loading="bizDetailLoading" :data="bizDetailList" style="width: 100%" border
<el-table v-loading="bizDetailLoading" :data="bizDetailList" style="width: 100%" border
row-key="id"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="发票代码" width="150"
prop="invoiceCode"
></el-table-column>
<el-table-column
label="物资名称"
prop="cpmctymc" width="150"
@ -357,10 +362,6 @@
prop="machineNo"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="发票代码" width="150"
prop="invoiceCode"
></el-table-column>
<el-table-column
label="发票编码" width="150"
prop="invoiceEncode"
@ -457,9 +458,6 @@
</el-dialog>
<el-dialog
:title="formMap[formName]"
:visible.sync="InvoiceRegisterv"
@ -509,7 +507,7 @@
<script>
import {
deleteByOrderId,
getOrderList, rollUnReceivebackOrder, filterInvoice, filterOrder,filterOrderList
getOrderList, rollUnReceivebackOrder, filterInvoice, filterOrder, filterOrderList
} from '../../api/inout/order'
import {getLocalJoinByUser} from "@/api/basic/busType";
import {getInvListByUser} from "@/api/system/invWarehouse";
@ -547,10 +545,10 @@ export default {
name: "IoCheckSuccessOrder",
data() {
return {
savebillno:null,
invoiceRow:[],
inputInv:[],
checkInvoice:false,
savebillno: null,
invoiceRow: [],
inputInv: [],
checkInvoice: false,
imgList: [],
imgViewerVisible: false,
BASE_URL: process.env.VUE_APP_BASE_API,
@ -565,14 +563,14 @@ export default {
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
invCode: null,
},
determineVisible: false,
determineData:null,
determineData: null,
corpLoading: false,
fromOptions: [],
regId:null,
par:[],
regId: null,
par: [],
formName: 1,
formMap: {
@ -701,7 +699,7 @@ export default {
subRow: null,
};
},
components: {AcceptOrder, DialogInvoice, InvoiceRegister, ElImageViewer,InvoiceRegistrationDetermine,checkInvoice},
components: {AcceptOrder, DialogInvoice, InvoiceRegister, ElImageViewer, InvoiceRegistrationDetermine, checkInvoice},
methods: {
// upData(data){
// this.invoiceRow = data;
@ -722,21 +720,21 @@ export default {
endTime: null,
invCode: this.$store.getters.locInvCode,
};
this.actDateRange=[];
this.auditDateRange=[];
this.actDateRange = [];
this.auditDateRange = [];
this.getList();
},
InvoiceRegister1(row){
this.savebillno=row.billNo
this.inputInv=row;
this.checkInvoice=true;
InvoiceRegister1(row) {
this.savebillno = row.billNo
this.inputInv = row;
this.checkInvoice = true;
},
closecheckInvoice(){
this.checkInvoice=false;
closecheckInvoice() {
this.checkInvoice = false;
this.getList();
this.currentRow.billNo=this.savebillno;
this.bizQuery.orderIdFk=this.savebillno;
this.codeQuery.orderIdFk=this.savebillno;
this.currentRow.billNo = this.savebillno;
this.bizQuery.orderIdFk = this.savebillno;
this.codeQuery.orderIdFk = this.savebillno;
this.getCodeDetailList();
this.getBizDetailListInv();
@ -825,8 +823,8 @@ export default {
type: "warning",
})
.then(() => {
this.par=row;
this.par.regId=this.regId;
this.par = row;
this.par.regId = this.regId;
deleteById(row)
.then((response) => {
if (response.code == 20000) {
@ -857,7 +855,7 @@ export default {
//this.resultQuery.page = 1;
this.getCodeDetailList();
//this.getResultDetailList();
//this.getResultDetailList();
},
//
clearDetailList() {
@ -947,14 +945,14 @@ export default {
getInvList() {
getInvListByUser()
.then((response) => {
let invlist1= response.data || [];
for(var i=0;i<invlist1.length;i++){
if(invlist1[i].code== 1000000){
let invlist1 = response.data || [];
for (var i = 0; i < invlist1.length; i++) {
if (invlist1[i].code == 1000000) {
this.invList.push(invlist1[i]);
this.filterQuery.invCode=invlist1[i].code;
}
}
})
.catch(() => {
});
@ -1036,8 +1034,8 @@ export default {
}
this.bizDetailLoading = true;
this.bizQuery.orderIdFk = this.currentRow.billNo;
if(row != null) {
this.bizQuery.orderIdFk=row.orderIdFk;
if (row != null) {
this.bizQuery.orderIdFk = row.orderIdFk;
this.bizQuery.batchNo = row.batchNo;
this.bizQuery.relId = row.bindRlFk;
//this.bizQuery.bizIdFk = row.id;
@ -1062,14 +1060,14 @@ export default {
BizDetail(row) {
this.regId=row.id;
this.regId = row.id;
this.bizQuery.page = 1;
this.subRow = row;
this.getBizDetailListInv(row);
},
determine(row){
this.determineData=row;
this.determineVisible=true;
determine(row) {
this.determineData = row;
this.determineVisible = true;
},
//
@ -1098,7 +1096,7 @@ export default {
this.Upinvoice = false;
this.getBizDetailListInv();
this.getOrderDetails();
},
},
closeInvoice(row) {
this.InvoiceRegisterv = false;

@ -101,7 +101,7 @@
border
@cell-click="handleSelectionChange">
<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="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>

@ -102,7 +102,7 @@
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="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>

@ -103,7 +103,7 @@
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="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>

@ -319,13 +319,26 @@
<el-table-column
label="检验报告"
width="160"
prop="checkFileName"
prop="filePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewer(scope.row)">{{ scope.row.checkFileName }}</div>
</template>
</el-table-column>
<el-table-column
label="冷链报告"
width="160"
prop="coldFilePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewerCold(scope.row)">{{ scope.row.checkColdFileName }}</div>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button
@ -333,7 +346,16 @@
size="small"
@click="showImgViewer(scope.row)"
:disabled="scope.row.filePath == null"
>预览
>检验报告预览
</el-button
>
<el-button
type="text"
size="small"
@click="showImgViewerCold(scope.row)"
:disabled="scope.row.coldFilePath == null"
>冷链报告预览
</el-button
>
</template>
@ -341,6 +363,9 @@
</el-table>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold" :url-list="imgListCold"/>
<pagination
v-show="bizTotal>0"
:total="bizTotal"
@ -567,7 +592,9 @@ export default {
data() {
return {
imgList:[],
imgListCold:[],
imgViewerVisible:false,
imgViewerVisibleCold:false,
BASE_URL: process.env.VUE_APP_BASE_API,
showSearch: true,
filterQuery: {
@ -763,6 +790,22 @@ export default {
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;
});
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
},
closeImgViewer(){
this.imgViewerVisible = false;
const m = (e) => { e.preventDefault() };
@ -770,6 +813,13 @@ export default {
document.removeEventListener("touchmove", m, true);
},
closeImgViewerCold(){
this.imgViewerVisibleCold = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
invChange() {
this.filterQuery.action = null;
this.busTypes = [];

@ -294,47 +294,95 @@
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="物资名称"
prop="coName" width="160"
prop="coName"
width="150"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="规格型号" width="160"
label="规格型号"
width="150"
prop="spec"
></el-table-column>
<el-table-column
label="批次号" width="120"
label="批次号"
width="100"
prop="batchNo"
></el-table-column>
<el-table-column
label="生产日期" width="120"
prop="productDate"
label="数量"
prop="count"
width="100"
></el-table-column>
<el-table-column
label="失效日期"
prop="expireDate" width="120"
label="扫码数量"
prop="reCount"
width="100"
></el-table-column>
<el-table-column
label="单据数量" width="100"
prop="count"
label="价格"
prop="price"
width="100"
></el-table-column>
<el-table-column
label="扫码数量"
prop="scanCount" width="100"
label="生产日期"
prop="productDate"
width="100"
></el-table-column>
<el-table-column
label="价格" width="100"
prop="price"
label="失效日期"
prop="expireDate"
width="100"
></el-table-column>
<el-table-column width="100" label="计量单位" prop="measname">
</el-table-column>
<el-table-column
label="生产企业" width="180"
label="生产企业"
prop="manufacturer"
width="160"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册/备案号"
prop="certCode" width="180"
width="160"
prop="certCode"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="检验报告"
width="160"
prop="filePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewer(scope.row)">{{ scope.row.checkFileName }}</div>
</template>
</el-table-column>
<el-table-column
label="冷链报告"
width="160"
prop="coldFilePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewerCold(scope.row)">{{ scope.row.checkColdFileName }}</div>
</template>
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="upload(scope.row)"
v-if="scope.row.checkFileName != null"
>预览
</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="bizTotal>0"
@ -512,6 +560,25 @@
</el-tab-pane>
</el-tabs>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold" :url-list="imgListCold"/>
<el-dialog
title="检验报告"
:visible.sync="Upinvoice"
:before-close="freshen"
width="60%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="Upinvoice"
>
<DialogCheck
:closeDialog="closeCheckDialog"
:inputQuery="currentManufacturer"
></DialogCheck>
</el-dialog>
<el-dialog
title="单据验收"
:visible.sync="acceptOrderVisible"
@ -545,6 +612,11 @@ import {getCodeList} from "@/api/inout/code";
import AcceptOrder from "@/views/inout/DialogReviewOrder";
import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint"
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import { previewImage } from '@/api/purchase/supCompany'
import DialogCheck from "@/views/inout/DialogCheck";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
const formJson = {
@ -558,6 +630,13 @@ export default {
name: "IoCheckSuccessOrder",
data() {
return {
imgViewerVisible:false,
imgViewerVisibleCold:false,
imgList:[],
imgListCold:[],
BASE_URL: process.env.VUE_APP_BASE_API,
currentManufacturer:{},
Upinvoice:false,
showSearch: true,
filterQuery: {
id: "",
@ -692,7 +771,7 @@ export default {
acceptOrderVisible: false,
};
},
components: {AcceptOrder},
components: {AcceptOrder,DialogCheck,ElImageViewer},
methods: {
onReset() {
this.$router.push({
@ -737,6 +816,71 @@ export default {
this.filterQuery.page = 1;
this.getList();
},
showImgViewer(row){
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl+"========");
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;
});
const m = (e) => { e.preventDefault() };
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;
});
const m = (e) => { e.preventDefault() };
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);
},
closeImgViewerCold(){
this.imgViewerVisibleCold = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
upload(row){
this.currentManufacturer = row;
this.Upinvoice = true;
},
freshen(){
this.Upinvoice = false;
this.getOrderDetails();
},
closeCheckDialog(){
this.Upinvoice = false;
this.getOrderDetails();
},
hideSearch() {
this.showSearch = !this.showSearch;
},

@ -263,20 +263,32 @@
<el-table-column
label="检验报告"
width="160"
prop="checkFileName"
prop="filePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewer(scope.row)">{{ scope.row.checkFileName }}</div>
</template>
</el-table-column>
<el-table-column
label="冷链报告"
width="160"
prop="coldFilePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewerCold(scope.row)">{{ scope.row.checkColdFileName }}</div>
</template>
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="upload(scope.row)"
>检验报告
>预览
</el-button
>
</template>
@ -372,10 +384,11 @@
</el-tab-pane>
</el-tabs>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold" :url-list="imgListCold"/>
<el-dialog
title="编辑"
title="检验报告"
:visible.sync="Upinvoice"
:before-close="freshen"
width="60%"
@ -389,6 +402,7 @@
></DialogCheck>
</el-dialog>
<el-dialog
title="送货单核对"
:visible.sync="acceptOrderVisible"
@ -440,7 +454,9 @@ export default {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
imgList:[],
imgListCold:[],
imgViewerVisible:false,
imgViewerVisibleCold:false,
showSearch: true,
Upinvoice:false,
currentManufacturer:{},
@ -634,12 +650,34 @@ export default {
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;
});
const m = (e) => { e.preventDefault() };
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);
},
closeImgViewerCold(){
this.imgViewerVisibleCold = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
@ -651,6 +689,7 @@ export default {
this.Upinvoice = false;
this.getOrderDetails();
},
handleSelectionChange(val) {
this.currentRow.billNo=val.billNo;
this.getOrderDetails();

@ -301,6 +301,41 @@
prop="certCode"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="检验报告"
width="160"
prop="filePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewer(scope.row)">{{ scope.row.checkFileName }}</div>
</template>
</el-table-column>
<el-table-column
label="冷链报告"
width="160"
prop="coldFilePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewerCold(scope.row)">{{ scope.row.checkColdFileName }}</div>
</template>
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="upload(scope.row)"
v-if="scope.row.checkFileName != null"
>预览
</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="bizTotal>0"
@ -392,6 +427,27 @@
</el-tab-pane>
</el-tabs>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold" :url-list="imgListCold"/>
<el-dialog
title="检验报告"
:visible.sync="Upinvoice"
:before-close="freshen"
width="60%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="Upinvoice"
>
<DialogCheck
:closeDialog="closeCheckDialog"
:inputQuery="currentManufacturer"
></DialogCheck>
</el-dialog>
<el-dialog
title="送货单审核"
:visible.sync="acceptOrderVisible"
@ -423,7 +479,13 @@ import {getCodeDetailList} from "@/api/inout/orderDetailCode";
import {getCodeList} from "@/api/inout/code";
import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint"
import AcceptOrder from "@/views/inout/DialogReviewOrder";
import DialogCheck from "@/views/inout/DialogCheck";
import {getDeptListByUser} from "@/api/auth/authDept";
import { previewImage } from '@/api/purchase/supCompany'
import { getBizDetailList } from '@/api/inout/orderDetailBiz'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
const formJson = {
site_id: "",
@ -436,7 +498,14 @@ export default {
name: "IoSupSearchOrder",
data() {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
imgViewerVisible:false,
imgViewerVisibleCold:false,
imgList:[],
imgListCold:[],
showSearch: true,
currentManufacturer:{},
Upinvoice:false,
filterQuery: {
id: "",
billNo: null,
@ -563,7 +632,7 @@ export default {
acceptOrderVisible: false,
};
},
components: {AcceptOrder},
components: {AcceptOrder,DialogCheck,ElImageViewer},
methods: {
onReset() {
this.$router.push({
@ -607,6 +676,72 @@ export default {
this.filterQuery.page = 1;
this.getList();
},
showImgViewer(row){
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log(this.certFileUrl+"========");
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;
});
const m = (e) => { e.preventDefault() };
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;
});
const m = (e) => { e.preventDefault() };
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);
},
closeImgViewerCold(){
this.imgViewerVisibleCold = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
upload(row){
this.currentManufacturer = row;
this.Upinvoice = true;
},
closeCheckDialog(){
this.Upinvoice = false;
this.getOrderDetails();
},
freshen(){
this.Upinvoice = false;
this.getOrderDetails();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
@ -744,7 +879,7 @@ export default {
}
this.bizDetailLoading = true;
this.bizQuery.orderIdFk = this.currentRow.billNo;
getResultDetailList(this.bizQuery).then((res) => {
getBizDetailList(this.bizQuery).then((res) => {
this.bizDetailLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data.list || [];

@ -288,7 +288,7 @@
<el-table-column
label="检验报告"
width="160"
prop="checkFileName"
prop="filePath"
show-overflow-tooltip
>
<template slot-scope="scope">
@ -296,6 +296,18 @@
</template>
</el-table-column>
<el-table-column
label="冷链报告"
width="160"
prop="coldFilePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewerCold(scope.row)">{{ scope.row.checkColdFileName }}</div>
</template>
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
@ -303,9 +315,11 @@
type="text"
size="small"
@click.native.stop="upload(scope.row)"
>检验报告
>预览
</el-button
>
</template>
</el-table-column>
@ -402,9 +416,12 @@
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold" :url-list="imgListCold"/>
<el-dialog
title="编辑"
title="检验报告"
:visible.sync="Upinvoice"
:before-close="freshen"
width="60%"
@ -469,7 +486,9 @@ export default {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
imgList: [],
imgListCold:[],
imgViewerVisible: false,
imgViewerVisibleCold:false,
showSearch: true,
Upinvoice: false,
currentManufacturer: {},
@ -661,6 +680,22 @@ export default {
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;
});
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
@ -669,6 +704,14 @@ export default {
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
closeImgViewerCold(){
this.imgViewerVisibleCold = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
upload(row) {
this.currentManufacturer = row;
this.Upinvoice = true;
@ -976,6 +1019,11 @@ export default {
this.getOrderDetails();
},
freshenCold(){
this.coldUpinvoice = false;
this.getOrderDetails();
},
//
closeAcceptDialog() {
this.acceptOrderVisible = false;

@ -231,6 +231,7 @@ export default {
list: [],
total: 0,
invList: [],
invLists: [],
loading: false,
deleteData: {
id: "",
@ -322,7 +323,8 @@ export default {
getInvList() {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
this.invLists = response.data || [];
this.invList = this.invLists.filter( item => item.code != 1000001 && item.code != 1000002)
this.getList();
})
.catch(() => {

@ -4,22 +4,9 @@
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-row type="flex" justify="end">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px;margin-top: -10px">
<el-button
type="primary"
@click.native="generateQRCodeText()"
:loading="loading"
>生成内部码
</el-button
>
<el-button
type="primary"
@click.native="printStockOrderDetailPDF()"
:loading="loading"
>打印全部
</el-button
>
<el-button type="primary" @click.native="generateQRCodeText()" :loading="loading">生成内部码</el-button>
<el-button type="primary" @click.native="printStockOrderDetailPDF()" :loading="loading">标签打印全部</el-button>
<el-button type="primary" @click.native="printStockOrderDetailStatementPDF()" :loading="loading">报表打印全部</el-button>
</el-button-group>
</el-row>
@ -87,6 +74,13 @@
>标签打印
</el-button
>
<el-button
type="text"
size="small"
@click.native="printStockOrderDetailStatementPDF(scope.row)"
>报表打印
</el-button
>
</template>
</el-table-column>
</el-table>
@ -371,6 +365,69 @@ export default {
});
},
printStockOrderDetailStatementPDF(row) {
let tQuery = {
queryId: null,
orderId: null,
countList: [],
labelId: 5
};
if (row == null) {
tQuery.orderId = this.query.orderIdFk;
} else {
if (row.reCount <= 0) {
return this.$message.error('数量错误');
}
tQuery.queryId = row.id;
}
this.loading = true;
inspectionStockQRCodeTextPDFFromTemplateStatementFile(tQuery).then((response) => {
if (response.code === 20000) {
if (row != null) {
tQuery.id = row.id;
tQuery.rowCount = row.reCount;
let data = {
queryId: row.id,
rowCount: row.count
}
tQuery.countList.push(data);
} else {
for (let i = 0; i < this.codeArray.length; i++) {
let data = {
queryId: this.codeArray[i].id,
rowCount: this.codeArray[i].count
}
tQuery.countList.push(data);
}
}
let count = 0;
for (let i = 0; i < tQuery.countList.length; i++) {
count = count + tQuery.countList[i].rowCount;
console.log(count);
}
stockQRCodeTextPDFFromTemplateStatementFile(tQuery).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
//blob
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//pdf
this.getOrderQRCodeTextList();
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
},
generateQRCodeText() {
this.$confirm("确定生成内部码?", "提示", {
confirmButtonText: "确定",

@ -69,20 +69,15 @@
<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-refresh" @click="optinPrint"></el-button>
<el-button type="primary" icon="el-icon-refresh" @click="selectPrint"></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 border>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row borderv @selection-change="handleCheckedChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="供应商" prop="fromCorpName" width="160" v-if="showSup"></el-table-column>
<el-table-column label="出入库单号" prop="orderIdFk" width="160"></el-table-column>
@ -112,7 +107,8 @@
</template>
<script>
import {getResultDetailList, getResultOrderList} from '@/api/inout/orderDetailResult'
import {getResultDetailList, getResultOrderList, verifyTemplateFile, printOrder} from '@/api/inout/orderDetailResult'
import {isBlank} from "@/utils/strUtil";
export default {
@ -135,6 +131,7 @@ export default {
actionType: "norDetail",
},
loading: false,
orderSelection: [],
total: 0,
showSup: false,
customerId: this.$store.getters.customerId,
@ -236,6 +233,77 @@ export default {
this.total = 0;
});
},
handleCheckedChange(val) {
this.orderSelection = val;
},
optinPrint() {
if (this.orderSelection == null || this.orderSelection.length <= 0) {
return this.$message.error("请选择打印的明细!");
}
let query = {id: 4};
verifyTemplateFile(query).then((res) => {
if (res.code === 20000) {
let printParams = {
templateId: res.data,
list: this.orderSelection
};
printOrder(printParams).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
//blob
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//pdf
})
}
}).catch((error) => {
this.loading = false;
this.$message.error(error.message);
})
},
selectPrint(){
let query = {id: 4};
verifyTemplateFile(query).then((res) => {
if (res.code === 20000) {
let printParams = {
templateId: res.data,
orderIdFk: this.filterQuery.orderIdFk,
nameCode: this.filterQuery.nameCode,
coName: this.filterQuery.coName,
spec: this.filterQuery.spec,
batchNo: this.filterQuery.batchNo,
zczbhhzbapzbh: this.filterQuery.zczbhhzbapzbh,
manufacturer: this.filterQuery.manufacturer,
actionType: this.filterQuery.actionType
};
if (this.actDateRange !== null) {
printParams.startAduditTime = this.actDateRange[0];
printParams.endAduditTime = this.actDateRange[1];
} else {
printParams.startAduditTime = null;
printParams.endAduditTime = null;
}
printOrder(printParams).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
//blob
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//pdf
})
}
}).catch((error) => {
this.loading = false;
this.$message.error(error.message);
})
}
}
,
mounted() {

@ -618,8 +618,11 @@ export default {
});
},
addInfoDialog(row) {
if (row.auditStatus == 6 || row.auditStatus == 3 || row.auditStatus == 4) {
if(row.auditStatus == 2){
this.editManufacturerType = 2;
this.formManufacturerName = 1;
}
else if (row.auditStatus == 6 || row.auditStatus == 3 || row.auditStatus == 4) {
this.editManufacturerType = 2;
this.formManufacturerName = 2;
} else {
@ -678,7 +681,11 @@ export default {
this.showSearch3 = !this.showSearch3;
},
registrationDialog(row) {
if (row.auditStatus == 6 || row.auditStatus == 3 || row.auditStatus == 4) {
if(row.auditStatus == 2){
this.editProductType = 2;
this.formProductName = 1;
}
else if (row.auditStatus == 6 || row.auditStatus == 3 || row.auditStatus == 4) {
this.formProductName = 2;
this.editProductType = 2;
} else {

@ -474,8 +474,6 @@ export default {
this.getCompanyCertList();
this.customerlist();
this.selectedOptions = this.inputQuery.areaCode.split(",");
},
components: {
draggable,
@ -637,7 +635,7 @@ export default {
getRoIds() {
let params = {companyId: this.inputQuery.customerId}
getRoId(params).then((res) => {
this.inputQuery.roleId = parseInt(res.data.roleId);
this.inputQuery.roleId = res.data.roleId;
})
},
getCompanyCertList() {

@ -347,15 +347,15 @@ export default {
4: "已拒绝",
},
emergencyMap: {
1: "普通",
2: "急",
3: "不紧急",
1: "正常",
2: "急",
3: "急",
},
dealStatus: {
1: "已处理",
2: "未处理",
3: "作废",
3: "作废",
},
showSup: false,
invList: {}, //

@ -44,7 +44,7 @@
inputQuery.auditStatus == 1 ||
inputQuery.auditStatus == 2
"
@click="onModifySubmit(3)"
@click="onModifySubmit(inputQuery.auditStatus)"
>提交审核
</el-button>
</div>
@ -539,6 +539,7 @@ export default {
},
onModifySubmit(val) {
//this.$message.error(val);
var status = this.inputQuery.auditStatus;
if (this.editType == 0) {
//
@ -575,7 +576,9 @@ export default {
var str = "是否确定草稿保存?";
} else if (val == 6) {
var str = "是否确定提交审核?";
} else {
} else if (val == 2) {
var str = "企业信息已拒绝审核,是否确认重新提交审核?";
} else {
var str = "企业信息已通过审核,是否确认重新提交审核?";
}
this.$refs["inputQuery"].validate((valid) => {

@ -716,6 +716,7 @@ export default {
this.selectLocalVisible = false;
this.detailDialogVisible = false;
this.selectVersionVisible = false;
this.getList();
if (val) {
this.cancelDialog();
}

@ -133,6 +133,20 @@
<el-input style="width: 80%" size="small" splaceholder="请输入内容" v-model="editQuery.cpms"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="是否可集采:"
prop="spUse"
class="query-form-item"
>
<el-radio-group v-model="editQuery.groupBuy">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-button-group style="display: flex">
<el-button type="primary" @click.native="submitUpload()" style="margin: 0 60px 10px auto; height: 35px"
@ -238,6 +252,7 @@ export default {
recentDateTime: this.editQuery.recentDateTime,
isDateBy: this.editQuery.isDateBy,
relSupId:this.editQuery.id,
groupBuy:this.editQuery.groupBuy,
}
updateById(data).then(res => {

@ -376,6 +376,7 @@ export default {
zczbhhzbapzbh: '',
isCheck: 1
}
this.udidlList = [];
// this.getList();
},
clearAll(){

@ -459,7 +459,7 @@
</template>
</el-table-column>
<el-table-column width="180" label="目标单据状态">
<el-table-column width="180" label="同步后单据状态">
<template slot-scope="scope">
<el-select style="width: 90%"
v-model="scope.row.syncStatus"
@ -576,7 +576,7 @@
</template>
</el-table-column>
<el-table-column width="180" label="目标单据状态">
<el-table-column width="180" label="同步后单据状态">
<template slot-scope="scope">
<el-select style="width: 90%"
v-model="scope.row.syncStatus"

@ -124,7 +124,7 @@
<!--/>-->
<!--仓库编辑对话框-->
<el-dialog
:title="formMap[formName]"
:title="`${this.invWouse.name}`+formMap[formName]"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="subFormVisible"
@ -460,8 +460,8 @@ export default {
2: "预验收库",
},
formMap: {
add: "仓库信息-新增",
edit: "仓库信息-编辑",
add: "信息-新增",
edit: "信息-编辑",
},
invWouse: {},
formName: null,

@ -82,7 +82,6 @@
<el-radio-group v-model="inputQuery.auditStatus">
<el-radio :label="1">草稿</el-radio>
<el-radio :label="2">待审核</el-radio>
<el-radio :label="3">已审核</el-radio>
</el-radio-group>
</el-form-item>
</el-col>

@ -438,7 +438,8 @@ export default {
previewPdf(row) {
let query = {id: row.id};
debugger
let query = {id: row.id,module:row.module};
demoPrint(query).then((response) => {
//pdfurl
const binaryData = [];

@ -691,11 +691,19 @@ export default {
if (valid) {
if (this.form.roleId != undefined) {
this.form.menuIds = this.getMenuAllCheckedKeys();
if( this.form.menuIds.length==0){
this.$message.error("菜单权限不能为空");
return
}
updateRole(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
this.getCustomerList();
if(response.code === 20000) {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
this.getCustomerList();
}else{
this.$message.error(response.message);
}
});
} else {
this.form.menuIds = this.getMenuAllCheckedKeys();

@ -184,6 +184,7 @@ export default {
list: [],
formLoading: false,
systemList:[],
systemLists:[],
total: 0,
formData: formJson,
formName: null,
@ -256,7 +257,8 @@ export default {
systemParamConfigList(this.systemQuery)
.then((response) => {
this.systemLoading = false;
this.systemList = response.data.list || [];
this.systemLists = response.data.list || [];
this.systemList = this.systemLists.filter(item => item.paramValue !=0);
this.systemTotal = response.data.total || 0;
})
.catch(() => {

@ -35,7 +35,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `process.env.VUE_APP_BASE_API`,
target: `http://127.0.0.1:9993`,
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",

Loading…
Cancel
Save