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) { export function insertInvoice(params) {
return axios({ return axios({
url: "/udiwms/inout/biz/insertInvoice", url: "/udiwms/inout/biz/insertInvoice",

@ -15,3 +15,20 @@ export function getResultOrderList(params) {
params: 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 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) { export function stockQRCodeTextPDFFromTemplateFileMax(query) {
return axios({ return axios({
url: "/udiwms/pdf/template/stock/qrcode/text/maxfile", url: "/udiwms/pdf/template/stock/qrcode/text/maxfile",

@ -5,7 +5,8 @@
<el-row type="flex" justify="end"> <el-row type="flex" justify="end">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px;"> <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="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-switch style="margin-left: 50px;" v-model="filterUDIType" active-text="过滤已有UDI码的产品"></el-switch>
</el-button-group> </el-button-group>
</el-row> </el-row>
@ -76,6 +77,13 @@
>标签打印 >标签打印
</el-button </el-button
> >
<el-button
type="text"
size="small"
@click.native="printStockOrderDetailStatementPDF(scope.row)"
>报表打印
</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -157,7 +165,7 @@ import draggable from "vuedraggable";
import { import {
filterTemp, filterTemp,
inspectionOrderDetailPDFFromTemplateFile, inspectionOrderDetailPDFFromTemplateFile,
inspectionStockQRCodeTextPDFFromTemplateFile, inspectionStockQRCodeTextPDFFromTemplateFile, inspectionStockQRCodeTextPDFFromTemplateStatementFile,stockQRCodeTextPDFFromTemplateStatementFile,
orderDetailPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFileMax orderDetailPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFile, stockQRCodeTextPDFFromTemplateFileMax
} from "@/api/itextpdf/itextpdf"; } from "@/api/itextpdf/itextpdf";
import {generateInCodeQRCodeText, generateInnerQRCodeText} from "@/api/inout/innerOrderQRCode"; import {generateInCodeQRCodeText, generateInnerQRCodeText} from "@/api/inout/innerOrderQRCode";
@ -262,6 +270,69 @@ export default {
this.total = 0; 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) { handleLableChange(val) {
this.refreshQuery.page = val.page; this.refreshQuery.page = val.page;
this.refeshLabel(); this.refeshLabel();

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

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

@ -39,7 +39,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="name"> <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-form-item>
</el-col> </el-col>
@ -50,7 +50,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="code"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -62,7 +62,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="name"> <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-form-item>
</el-col> </el-col>
@ -73,7 +73,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="code"> <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-form-item>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
@ -83,7 +83,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="code"> <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-form-item>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
@ -93,7 +93,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="code"> <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-form-item>
</el-col> </el-col>
@ -164,14 +164,70 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-button type="primary" size="mini" icon="search" v-if="this.inputQuery.filePath!=null" <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-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-col>
</el-row> </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-card>
</el-form> </el-form>
@ -181,13 +237,11 @@
<script> <script>
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import store from "@/store"; import store from "@/store";
import {updateById} from '@/api/inout/orderDetailBiz' import {updateBizById, updateById} from '@/api/inout/orderDetailBiz'
import {updateOrderDetailBiz} from '@/api/inout/order' import {previewImage} from '@/api/purchase/supCompany'
import { previewImage } from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer"; import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default { export default {
name: "DialogCheck", name: "DialogCheck",
props: { props: {
@ -208,19 +262,21 @@ export default {
}, },
data() { data() {
return { return {
imgList:[], imgList: [],
imgViewerVisible:false, imgListCold:[],
imgViewerVisible: false,
imgViewerVisibleCold:false,
BASE_URL: process.env.VUE_APP_BASE_API, BASE_URL: process.env.VUE_APP_BASE_API,
code: "", code: "",
formData: { formData: {
ggxh:"", ggxh: "",
cpmctymc:"", cpmctymc: "",
machineNo:"", machineNo: "",
invoiceCode:"", invoiceCode: "",
invoiceEncode:"", invoiceEncode: "",
price:"", price: "",
remark:"", remark: "",
licenseUrl:"" licenseUrl: ""
}, },
// formRules: { // formRules: {
// name: [ // name: [
@ -235,24 +291,25 @@ export default {
fileList: [], fileList: [],
headers: {}, headers: {},
choiceFile: "选取文件", choiceFile: "选取文件",
choiceFile1: "选取文件",
}; };
}, },
components: { components: {
draggable,ElImageViewer draggable, ElImageViewer
}, },
methods: { methods: {
submitUpload() { submitUpload() {
updateById(this.inputQuery).then((res) =>{ updateBizById(this.inputQuery).then((res) => {
if(res.code==20000){ if (res.code == 20000) {
this.$message({ this.$message({
type: "success", type: "success",
message: "修改成功!", message: "修改成功!",
}); });
this.closeDialog(); this.closeDialog();
} }
} ) })
}, },
@ -299,8 +356,13 @@ export default {
// //
// }, // },
uploadHandleRemove(file, fileList) { uploadHandleRemove(file, fileList) {
this.inputQuery.filePath=null; this.inputQuery.filePath = null;
this.inputQuery.checkFileName=null; this.inputQuery.checkFileName = null;
console.log(file, fileList);
},
uploadHandleRemove1(file, fileList) {
this.inputQuery.coldFilePath = null;
this.inputQuery.checkColdFileName = null;
console.log(file, fileList); console.log(file, fileList);
}, },
uploadHandlePreview(file) { uploadHandlePreview(file) {
@ -311,7 +373,34 @@ export default {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`); this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
}, },
uploadOnchange(file, fileList) { 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 fileName = file.name;
let uid = file.uid let uid = file.uid
let pos = fileName.lastIndexOf("."); let pos = fileName.lastIndexOf(".");
@ -340,7 +429,15 @@ export default {
uploadHandleSuccess(response, file, fileList) { uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) { if (response.code === 20000) {
this.inputQuery.filePath = response.data.name; 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 { } else {
this.$message.error("文件上传失败:" + response.message); this.$message.error("文件上传失败:" + response.message);
} }
@ -348,37 +445,65 @@ export default {
uploadHandleError() { uploadHandleError() {
}, },
uploadHandleBefore(file){ uploadHandleBefore(file) {
console.log(file) console.log(file)
let isJPG = file.type === 'image/jpeg'; let isJPG = file.type === 'image/jpeg';
let isPNG = file.type === 'image/png'; let isPNG = file.type === 'image/png';
if(!isJPG&&!isPNG){ if (!isJPG && !isPNG) {
this.$message.error('只能上传jpg或png格式'); this.$message.error('只能上传jpg或png格式');
} }
return isJPG || isPNG; return isJPG || isPNG;
}, },
showImgViewer(row){ 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=";
this.imgList=[]; this.imgList = [];
previewImage({imageUrl:this.inputQuery.filePath,certFileUrl:this.certFileUrl}).then(response => { previewImage({imageUrl: this.inputQuery.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) { if (response.code === 20000) {
this.imgList=response.data; this.imgList = response.data;
} }
console.log(this.imgList) console.log(this.imgList)
this.imgViewerVisible = true; 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.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); // document.addEventListener("touchmove", m, false); //
}, },
closeImgViewer(){
closeImgViewer() {
this.imgViewerVisible = false; this.imgViewerVisible = false;
const m = (e) => { e.preventDefault() }; const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto'; document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true); 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: {}, filters: {},
@ -407,6 +532,12 @@ export default {
} else { } else {
this.choiceFile = "选取检验报告"; this.choiceFile = "选取检验报告";
} }
if (this.inputQuery.coldFilePath != null) {
this.choiceFile1 = "更换冷链报告";
} else {
this.choiceFile1 = "选取冷链报告";
}
}, },
}; };
</script> </script>

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

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

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

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

@ -101,7 +101,7 @@
border border
@cell-click="handleSelectionChange"> @cell-click="handleSelectionChange">
<el-table-column label="序号" type="index"></el-table-column> <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 label="单据类型" prop="billTypeName" width="150">
</el-table-column> </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>

@ -102,7 +102,7 @@
border border
> >
<el-table-column label="序号" type="index"></el-table-column> <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 label="单据类型" prop="billTypeName" width="150">
</el-table-column> </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>

@ -103,7 +103,7 @@
border border
> >
<el-table-column label="序号" type="index"></el-table-column> <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 label="单据类型" prop="billTypeName" width="150">
</el-table-column> </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>

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

@ -294,47 +294,95 @@
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column <el-table-column
label="物资名称" label="物资名称"
prop="coName" width="160" prop="coName"
width="150"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="规格型号" width="160" label="规格型号"
width="150"
prop="spec" prop="spec"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="批次号" width="120" label="批次号"
width="100"
prop="batchNo" prop="batchNo"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="生产日期" width="120" label="数量"
prop="productDate" prop="count"
width="100"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="失效日期" label="扫码数量"
prop="expireDate" width="120" prop="reCount"
width="100"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="单据数量" width="100" label="价格"
prop="count" prop="price"
width="100"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="扫码数量" label="生产日期"
prop="scanCount" width="100" prop="productDate"
width="100"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="价格" width="100" label="失效日期"
prop="price" prop="expireDate"
width="100"
></el-table-column> ></el-table-column>
<el-table-column width="100" label="计量单位" prop="measname">
</el-table-column>
<el-table-column <el-table-column
label="生产企业" width="180" label="生产企业"
prop="manufacturer" prop="manufacturer"
width="160"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="注册/备案号" label="注册/备案号"
prop="certCode" width="180" width="160"
prop="certCode"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></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> </el-table>
<pagination <pagination
v-show="bizTotal>0" v-show="bizTotal>0"
@ -512,6 +560,25 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </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 <el-dialog
title="单据验收" title="单据验收"
:visible.sync="acceptOrderVisible" :visible.sync="acceptOrderVisible"
@ -545,6 +612,11 @@ import {getCodeList} from "@/api/inout/code";
import AcceptOrder from "@/views/inout/DialogReviewOrder"; import AcceptOrder from "@/views/inout/DialogReviewOrder";
import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint" import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint"
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain"; 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 = { const formJson = {
@ -558,6 +630,13 @@ export default {
name: "IoCheckSuccessOrder", name: "IoCheckSuccessOrder",
data() { data() {
return { return {
imgViewerVisible:false,
imgViewerVisibleCold:false,
imgList:[],
imgListCold:[],
BASE_URL: process.env.VUE_APP_BASE_API,
currentManufacturer:{},
Upinvoice:false,
showSearch: true, showSearch: true,
filterQuery: { filterQuery: {
id: "", id: "",
@ -692,7 +771,7 @@ export default {
acceptOrderVisible: false, acceptOrderVisible: false,
}; };
}, },
components: {AcceptOrder}, components: {AcceptOrder,DialogCheck,ElImageViewer},
methods: { methods: {
onReset() { onReset() {
this.$router.push({ this.$router.push({
@ -737,6 +816,71 @@ export default {
this.filterQuery.page = 1; this.filterQuery.page = 1;
this.getList(); 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() { hideSearch() {
this.showSearch = !this.showSearch; this.showSearch = !this.showSearch;
}, },

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

@ -301,6 +301,41 @@
prop="certCode" prop="certCode"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></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> </el-table>
<pagination <pagination
v-show="bizTotal>0" v-show="bizTotal>0"
@ -392,6 +427,27 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </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 <el-dialog
title="送货单审核" title="送货单审核"
:visible.sync="acceptOrderVisible" :visible.sync="acceptOrderVisible"
@ -423,7 +479,13 @@ import {getCodeDetailList} from "@/api/inout/orderDetailCode";
import {getCodeList} from "@/api/inout/code"; import {getCodeList} from "@/api/inout/code";
import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint" import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint"
import AcceptOrder from "@/views/inout/DialogReviewOrder"; import AcceptOrder from "@/views/inout/DialogReviewOrder";
import DialogCheck from "@/views/inout/DialogCheck";
import {getDeptListByUser} from "@/api/auth/authDept"; 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 = { const formJson = {
site_id: "", site_id: "",
@ -436,7 +498,14 @@ export default {
name: "IoSupSearchOrder", name: "IoSupSearchOrder",
data() { data() {
return { return {
BASE_URL: process.env.VUE_APP_BASE_API,
imgViewerVisible:false,
imgViewerVisibleCold:false,
imgList:[],
imgListCold:[],
showSearch: true, showSearch: true,
currentManufacturer:{},
Upinvoice:false,
filterQuery: { filterQuery: {
id: "", id: "",
billNo: null, billNo: null,
@ -563,7 +632,7 @@ export default {
acceptOrderVisible: false, acceptOrderVisible: false,
}; };
}, },
components: {AcceptOrder}, components: {AcceptOrder,DialogCheck,ElImageViewer},
methods: { methods: {
onReset() { onReset() {
this.$router.push({ this.$router.push({
@ -607,6 +676,72 @@ export default {
this.filterQuery.page = 1; this.filterQuery.page = 1;
this.getList(); 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() { hideSearch() {
this.showSearch = !this.showSearch; this.showSearch = !this.showSearch;
}, },
@ -744,7 +879,7 @@ export default {
} }
this.bizDetailLoading = true; this.bizDetailLoading = true;
this.bizQuery.orderIdFk = this.currentRow.billNo; this.bizQuery.orderIdFk = this.currentRow.billNo;
getResultDetailList(this.bizQuery).then((res) => { getBizDetailList(this.bizQuery).then((res) => {
this.bizDetailLoading = false; this.bizDetailLoading = false;
if (res.code === 20000) { if (res.code === 20000) {
this.bizDetailList = res.data.list || []; this.bizDetailList = res.data.list || [];

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

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

@ -4,22 +4,9 @@
<el-form :model="formData" :rules="formRules" ref="dataForm"> <el-form :model="formData" :rules="formRules" ref="dataForm">
<el-row type="flex" justify="end"> <el-row type="flex" justify="end">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px;margin-top: -10px"> <el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px;margin-top: -10px">
<el-button <el-button type="primary" @click.native="generateQRCodeText()" :loading="loading">生成内部码</el-button>
type="primary" <el-button type="primary" @click.native="printStockOrderDetailPDF()" :loading="loading">标签打印全部</el-button>
@click.native="generateQRCodeText()" <el-button type="primary" @click.native="printStockOrderDetailStatementPDF()" :loading="loading">报表打印全部</el-button>
:loading="loading"
>生成内部码
</el-button
>
<el-button
type="primary"
@click.native="printStockOrderDetailPDF()"
:loading="loading"
>打印全部
</el-button
>
</el-button-group> </el-button-group>
</el-row> </el-row>
@ -87,6 +74,13 @@
>标签打印 >标签打印
</el-button </el-button
> >
<el-button
type="text"
size="small"
@click.native="printStockOrderDetailStatementPDF(scope.row)"
>报表打印
</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </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() { generateQRCodeText() {
this.$confirm("确定生成内部码?", "提示", { this.$confirm("确定生成内部码?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",

@ -69,20 +69,15 @@
<div class="top-right-btn"> <div class="top-right-btn">
<el-button-group> <el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button> <el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button <el-button type="primary" icon="el-icon-refresh" @click="optinPrint"></el-button>
type="primary" <el-button type="primary" icon="el-icon-refresh" @click="selectPrint"></el-button>
icon="el-icon-refresh" <el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
@click="onReset" <el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</el-button-group> </el-button-group>
</div> </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%" 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="序号" type="index"></el-table-column>
<el-table-column label="供应商" prop="fromCorpName" width="160" v-if="showSup"></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> <el-table-column label="出入库单号" prop="orderIdFk" width="160"></el-table-column>
@ -112,7 +107,8 @@
</template> </template>
<script> <script>
import {getResultDetailList, getResultOrderList} from '@/api/inout/orderDetailResult' import {getResultDetailList, getResultOrderList, verifyTemplateFile, printOrder} from '@/api/inout/orderDetailResult'
import {isBlank} from "@/utils/strUtil"; import {isBlank} from "@/utils/strUtil";
export default { export default {
@ -135,6 +131,7 @@ export default {
actionType: "norDetail", actionType: "norDetail",
}, },
loading: false, loading: false,
orderSelection: [],
total: 0, total: 0,
showSup: false, showSup: false,
customerId: this.$store.getters.customerId, customerId: this.$store.getters.customerId,
@ -236,6 +233,77 @@ export default {
this.total = 0; 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() { mounted() {

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

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

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

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

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

@ -133,6 +133,20 @@
<el-input style="width: 80%" size="small" splaceholder="请输入内容" v-model="editQuery.cpms"></el-input> <el-input style="width: 80%" size="small" splaceholder="请输入内容" v-model="editQuery.cpms"></el-input>
</el-form-item> </el-form-item>
</el-col> </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-row>
<el-button-group style="display: flex"> <el-button-group style="display: flex">
<el-button type="primary" @click.native="submitUpload()" style="margin: 0 60px 10px auto; height: 35px" <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, recentDateTime: this.editQuery.recentDateTime,
isDateBy: this.editQuery.isDateBy, isDateBy: this.editQuery.isDateBy,
relSupId:this.editQuery.id, relSupId:this.editQuery.id,
groupBuy:this.editQuery.groupBuy,
} }
updateById(data).then(res => { updateById(data).then(res => {

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

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

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

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

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

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

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

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

Loading…
Cancel
Save