领料单优化

This commit is contained in:
bb_pan 2025-07-19 13:50:29 +08:00
parent d0ce319ffd
commit 0f540e3870
6 changed files with 193 additions and 1782 deletions

View File

@ -331,13 +331,17 @@
<div style="width: 30%">领料</div>
<div
style="width: 70%; display: flex; align-items: center; flex-wrap: wrap"
v-if="leaseApplyData.leaseSignUrl"
v-if="outSignList.length > 0"
>
<div style="width: 80%; margin-left: 20px">
<div
style="width: 80%; margin-left: 20px; height: 40px"
v-for="(item, index) in outSignList"
:key="index"
>
<img
:src="leaseApplyData.leaseSignUrl"
style="width: 40px; height: 100px; max-width: 100%"
:class="{ 'is-rotate': leaseApplyData.leaseSignType == 0 }"
:src="item.outSignUrl"
style="width: 40px; height: 90px; max-width: 100%"
:class="{ 'is-rotate': item.outSignType == 0 }"
alt=""
/>
</div>
@ -349,14 +353,18 @@
style="width: 75%; display: flex; align-items: center; flex-wrap: wrap"
v-if="kgSignList.length > 0"
>
<img
<div
style="width: 80%; margin-left: 20px; height: 40px"
v-for="(item, index) in kgSignList"
:key="index"
:src="item.outSignUrl"
:class="{ 'is-rotate': leaseApplyData.outSignType == 0 }"
style="width: 45%; height: 30px"
alt=""
/>
>
<img
:src="item.outSignUrl"
:class="{ 'is-rotate': item.outSignType == 0 }"
style="width: 40px; height: 90px; max-width: 100%"
alt=""
/>
</div>
</div>
</div>
<div class="item" style="width: 25%; display: flex; align-items: center">
@ -499,6 +507,7 @@ export default {
leaseApplyDetails: [],
//
leaseApplyData: {},
outSignList: [], //
sendTemp: [],
//
showView: false,
@ -669,6 +678,8 @@ export default {
const res = await getApplyInfo(ids)
this.leaseApplyDetails = res.data.leaseApplyDetailsList
this.leaseApplyData = res.data.leaseApplyInfo
this.outSignList = res.data.outSignList || []
console.log('🚀 ~ handleLld ~ this.outSignList:', this.outSignList)
this.kgSignList = res.data.kgSignList || []
console.log('🚀 ~ handleLld ~ this.kgSignList:', this.kgSignList)
},

View File

@ -291,13 +291,17 @@
<div style="width: 30%">领料</div>
<div
style="width: 70%; display: flex; align-items: center; flex-wrap: wrap"
v-if="leaseApplyData.leaseSignUrl"
v-if="outSignList.length > 0"
>
<div style="width: 80%; margin-left: 20px">
<div
style="width: 80%; margin-left: 20px; height: 40px"
v-for="(item, index) in outSignList"
:key="index"
>
<img
:src="leaseApplyData.leaseSignUrl"
style="width: 40px; height: 100px; max-width: 100%"
:style="{ transform: leaseApplyData.leaseSignType == 0 ? 'rotate(-90deg)' : '' }"
:src="item.outSignUrl"
style="width: 40px; height: 90px; max-width: 100%"
:class="{ 'is-rotate': item.outSignType == 0 }"
alt=""
/>
</div>
@ -306,15 +310,16 @@
<!-- confirmSign -->
<div class="item" style="width: 24%; display: flex; align-items: center; flex-wrap: wrap">
<div style="width: 30%">材料员</div>
<div
style="width: 70%; display: flex; align-items: center; flex-wrap: wrap"
v-if="confirmSign.confirmSignUrl"
>
<div style="width: 80%; margin-left: 20px">
<div style="width: 75%; display: flex; align-items: center; flex-wrap: wrap" v-if="kgSignList.length > 0">
<div
style="width: 80%; margin-left: 20px; height: 40px"
v-for="(item, index) in kgSignList"
:key="index"
>
<img
:src="confirmSign.confirmSignUrl"
style="width: 40px; height: 100px; max-width: 100%"
:style="{ transform: confirmSign.confirmSignType == 0 ? 'rotate(-90deg)' : '' }"
:src="item.outSignUrl"
:class="{ 'is-rotate': item.outSignType == 0 }"
style="width: 40px; height: 90px; max-width: 100%"
alt=""
/>
</div>
@ -361,22 +366,22 @@
</el-table> -->
<table class="print-table" style="margin-top: 20px; width: 100%; border-collapse: collapse" border>
<thead>
<tr>
<tr>
<th align="center" width="55">序号</th>
<th align="center">类型名称</th>
<th align="center">规格型号</th>
<th align="center">设备编码</th>
</tr>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in getListViewInfo" :key="index">
<tr v-for="(item, index) in getListViewInfo" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ item.materialName }}</td>
<td align="center">{{ item.typeName }}</td>
<td align="center">{{ item.maCode }}</td>
</tr>
</tr>
</tbody>
</table>
</table>
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
@ -501,6 +506,7 @@ export default {
leaseApplyData: {},
leaseApplyDetails: [],
kgSignList: [],
outSignList: [],
confirmSign: {},
showView: false,
getListViewInfo: [],
@ -632,6 +638,7 @@ export default {
this.leaseApplyData = res.data.leaseApplyInfo
this.leaseApplyDetails = res.data.leaseApplyDetailsList
this.kgSignList = res.data.kgSignList
this.outSignList = res.data.outSignList
this.confirmSign = res.data.confirmSign
this.open = true
})

View File

@ -1,723 +0,0 @@
<template>
<!-- 新增工机具 -->
<div>
<el-form
:model="maForm"
ref="maForm"
size="small"
:rules="rules"
:inline="true"
label-width="120px"
>
<el-form-item label="租赁单位" prop="arrivalTime">
<el-select
v-model="maForm.supplierId"
placeholder="租赁单位"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
/>
</el-select>
</el-form-item>
<el-form-item label="租赁工程" prop="supplierId">
<el-select
v-model="maForm.supplierId"
placeholder="租赁工程"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
/>
</el-select>
</el-form-item>
<el-form-item label="领料人" prop="leasePerson">
<el-input
v-model="maForm.leasePerson"
placeholder="请输入领料人"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="maForm.phone"
placeholder="请输入联系电话"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleSave"
>保存</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-if="isEdit">导出</el-button>
</el-col> -->
</el-row>
<el-table v-loading="loading" :data="equipmentList">
<el-table-column align="center" label="序号" type="index" width="55" />
<el-table-column
align="center"
label="类型名称"
prop="maTypeName"
show-overflow-tooltip
></el-table-column>
<el-table-column
align="center"
label="规格型号"
prop="typeName"
show-overflow-tooltip
/>
<el-table-column align="center" label="计量单位" prop="unitName" />
<el-table-column align="center" label="当前库存" prop="storageNum" />
<el-table-column label="预领数量" prop="purchaseNum" align="center">
</el-table-column>
<el-table-column align="center" label="已领数量" prop="unitName" />
<el-table-column align="center" label="管理模式" prop="unitName" />
<el-table-column align="center" label="出库数量" prop="unitName">
<template slot-scope="scope">
<div
v-if="scope.row.unitName != null && scope.row.unitName != ''"
@click="codeBind(scope.row)"
style="color: #02a7f0; cursor: pointer"
>
{{ scope.row.unitName }}
</div>
<el-input-number
v-else
v-model="scope.row.preNum"
controls-position="right"
style="width: 100%"
></el-input-number>
</template>
<!-- <template slot-scope="scope">
<el-input-number
v-if="scope.row.unitName != null && scope.row.unitName != ''"
v-model="scope.row.preNum"
controls-position="right"
style="width: 100%"
></el-input-number>
</template> -->
</el-table-column>
<el-table-column label="备注" prop="remark" align="center">
<template v-slot="scope">
<el-input
v-model="scope.row.remark"
controls-position="right"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
style="color: red"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 绑定弹框-->
<el-dialog
width="70%"
append-to-body
title="编码绑定"
:visible.sync="bindCodeVisible"
@close="closeCancel"
>
<el-form
size="small"
:inline="true"
ref="queryFormBindRef"
:model="queryBindForm"
:rules="queryBindFormRules"
>
<el-form-item label="前缀" prop="codePrefix">
<el-input
clearable
maxlength="20"
placeholder="请输入前缀"
v-model="queryBindForm.codePrefix"
/>
</el-form-item>
<el-form-item label="后缀范围" prop="codeSuffixStart">
<el-input
clearable
placeholder="开始数值"
v-model="queryBindForm.codeSuffixStart"
/>
</el-form-item>
<el-form-item prop="codeSuffixEnd">
<el-input
clearable
placeholder="结束数值"
v-model="queryBindForm.codeSuffixEnd"
/>
</el-form-item>
<el-form-item label="编码" prop="code">
<el-input
clearable
maxlength="20"
placeholder="请输入编码"
v-model="queryBindForm.code"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="handleAdd"
>填充</el-button
>
<el-button type="primary" size="mini" @click="handleCodeBinding"
>绑定</el-button
>
</el-form-item>
</el-form>
<el-table border max-height="600px" :data="codeTableList">
<el-table-column align="center" label="序号" type="index" />
<el-table-column align="center" label="设备名称" prop="materialName" />
<el-table-column align="center" label="规格型号" prop="materialModel" />
<el-table-column align="center" label="设备编码">
<template slot-scope="{ row }">
<el-input clearable v-model="row.maCode" placeholder="请填写编码" />
</template>
</el-table-column>
<el-table-column align="center" label="状态"> </el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
size="mini"
type="danger"
icon="el-icon-remove"
@click="handleRemove(scope.$index)"
>
移除
</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import {
getPurchaseCheckInfo,
equipmentTypeTree,
addApplyInfo,
updatePurchaseCheckInfo,
} from "@/api/purchase/goodsArrived";
import { getListFacturer } from "@/api/ma/supplier";
import { getToken } from "@/utils/auth";
import {
uploadPurchaseFile,
getPurchaseFileList,
} from "@/api/purchase/goodsAccept";
// import Treeselect from '@riophae/vue-treeselect'
// import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import HoldingpoleDialog from '@/components/HoldingpoleDialog/index.vue'
export default {
name: "AddTools",
dicts: ["purchase_task_status"],
// components: { Treeselect, HoldingpoleDialog },
props: {
isEdit: {
type: Boolean,
default: () => {
return false;
},
},
editTaskId: {
type: [String, Number],
default: () => {
return "";
},
},
editId: {
type: [String, Number],
default: () => {
return "";
},
},
},
data() {
return {
taskId: "",
// isEdit: false,
//
loading: false,
loadingTwo: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
bindCodeVisible: false, //
//
total: 0,
//
supplierList: [],
//
equipmentTypeList: [],
//
codeTableList: [],
//
equipmentList: [{ unitName: 4 }, { unitName: null }],
//
title: "",
//
open: false,
rowData: {},
//
queryParams: {
equipmentId: undefined,
productionTime: "",
},
maForm: {
taxRate: 13,
arrivalTime: "",
purchaser: "",
remark: "",
purchaseNumber: "",
},
//
form: {},
defaultProps: {
children: "children",
label: "label",
},
//
queryBindForm: {
typeId: "", // typeId
typeName: "", //
codePrefix: "", //
maTypeName: "", //
codeSuffixEnd: "", //
codeSuffixStart: "", //
code: "", //
},
//
rules: {
// deviceType: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
deviceType: [
{
required: true,
message: "请选择规格型号",
trigger: "blur",
},
],
},
//
queryBindFormRules: {
codePrefix: [
{ required: true, message: "请输入前缀", trigger: "blur" },
],
codeSuffixStart: [
{
required: true,
trigger: "blur",
message: "请输入前缀",
},
{
pattern: /^[1-9][0-9]*$/,
message: "请输入大于0且不能以0开头的正整数",
},
],
codeSuffixEnd: [
{
required: true,
trigger: "blur",
message: "请输入后缀",
},
{
pattern: /^[1-9][0-9]*$/,
message: "请输入大于0且不能以0开头的正整数",
},
],
},
deviceTypeTreeProps: {
children: "children",
label: "typeName",
// multiple: false,
value: "typeId",
multiple: true,
},
deviceType: [],
propsKey: 1000,
waitBindNum: 0, //
// taxRate:0,
};
},
computed: {
pickerOptions() {
return {
disabledDate(time) {
const currentDate = new Date();
currentDate.setHours(0, 0, 0, 0);
return time.getTime() < currentDate.getTime();
},
};
},
},
watch: {},
mounted() {
if (this.isEdit) {
console.log("isEdit", this.isEdit);
this.taskId = this.editTaskId;
this.id = this.editId;
// this.getTaskInfo();
}
this.supplierInfoList();
this.equipmentType();
},
methods: {
//
closeCancel() {
this.bindCodeVisible = false;
this.resetForm("queryFormBindRef");
},
codeBind(row) {
this.bindCodeVisible = true;
this.waitBindNum = row.unitName;
},
handleAdd() {
if (this.queryBindForm.code != "") {
console.log("this.queryBindForm.code", this.queryBindForm.code);
} else {
// 1.
this.$refs.queryFormBindRef.validate((valid) => {
if (valid) {
// 1.1
const {
typeName,
codePrefix,
maTypeName,
codeSuffixEnd,
codeSuffixStart,
} = this.queryBindForm;
if (parseInt(codeSuffixEnd) < parseInt(codeSuffixStart)) {
this.$modal.msgError("结束值不可小于开始值");
return;
}
// 1.2
let waitCodeNum = this.waitBindNum; //
//
let passCodeNUm =
codeSuffixEnd - codeSuffixStart > waitCodeNum
? waitCodeNum
: codeSuffixEnd - codeSuffixStart;
this.codeTableList = [];
// 1.3
for (let i = 0; i < passCodeNUm; i++) {
const codeItem = {
typeName,
maTypeName,
outFacCode: "",
productDate: "",
maCode: `${codePrefix}${parseInt(codeSuffixStart) + i}`,
};
this.codeTableList.push(codeItem);
}
}
});
}
},
handleCodeBinding() {},
/** 物资厂家-下拉选 */
supplierInfoList() {
let param = {
pageNum: 1,
pageSize: 100,
keyWord: undefined,
};
getListFacturer(param).then((response) => {
this.supplierList = response.rows;
});
},
//
// changeSupplier(supplierId) {
// this.equipmentList.forEach((item) => {
// this.$set(item, 'supplierId', supplierId)
// })
// },
/** 机具类型 */
equipmentType() {
equipmentTypeTree().then((response) => {
this.equipmentTypeList = response.data;
this.equipmentTypeList.forEach((item, index) => {
if (item.children && item.children.length > 0) {
item.children.forEach((item2, index2) => {
if (item2.children && item2.children.length > 0) {
item2.children.forEach((item3) => {
if (item3.children && item3.children.length > 0) {
item3.children.forEach((item4) => {
item4.maTypeName = item3.typeName;
item4.specificationType = item4.typeName;
this.$set(item4, "purchaseTaxPrice", 0);
this.$set(item4, "purchasePrice", 0);
});
}
});
}
});
}
});
//
let selectList = [];
this.equipmentList.forEach((e) => {
selectList.push(
this.getParentsById(this.equipmentTypeList, e.typeId)
);
});
this.deviceType = selectList;
});
},
//
deviceTypeChange(val) {
const deviceTypeList = this.$refs.deviceTypeCascader.getCheckedNodes();
let tempList = [];
if (val.length > 0) {
const items = val.map((e) => {
return e[3];
});
for (let i of items) {
for (let z of deviceTypeList) {
if (z.data.typeId === i) {
const obj = JSON.parse(JSON.stringify(z.data));
// obj.supplierId = ''
obj.createTime = null;
obj.productionTime = "";
obj.purchaseTaxPrice = 0;
obj.purchaseTaxPrice = 0;
obj.purchaseNum = 1;
obj.fixCode = "0";
obj.bmFileInfos = [];
tempList.push(obj);
break;
}
}
}
const newDataListNew = [...this.equipmentList, ...tempList];
const map = new Map();
for (let item of newDataListNew) {
if (!map.has(item.typeId)) {
map.set(item.typeId, item);
}
}
const newArray = [...map.values()];
let newArray_array = [];
items.forEach((e) => {
newArray.forEach((j) => {
if (e == j.typeId) {
newArray_array.push(j);
}
});
});
this.equipmentList = newArray_array;
} else {
this.equipmentList = [];
}
},
//---
getTaskInfo() {
// this.loading = true;
getPurchaseCheckInfo({
taskId: this.taskId,
id: this.id,
taskStatus: 1,
}).then((response) => {
this.maForm = response.data.purchaseCheckInfo;
this.maForm.id = response.data.purchaseCheckInfo.id;
this.maForm.taskId = response.data.purchaseCheckInfo.taskId;
this.maForm.arrivalTime = response.data.purchaseCheckInfo.arrivalTime;
this.maForm.supplierId = response.data.purchaseCheckInfo.supplierId;
this.maForm.remark = response.data.purchaseCheckInfo.remark;
this.maForm.taxRate = response.data.purchaseCheckInfo.taxRate;
// this.maForm.purchaseNumber = response.data.purchaseNumber
// this.maForm.productionTime = response.data.purchaseCheckInfo.productionTime
this.equipmentList = response.data.purchaseCheckDetailsList;
console.log(this.equipmentList);
// this.loading = false;
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.roleId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
/** 保存按钮操作 */
handleSave() {
// console.log(this.equipmentList)
if (this.equipmentList.length > 0) {
this.$refs["maForm"].validate((valid) => {
if (valid) {
this.maForm.taskId = this.taskId;
// this.maForm.checkDetailsList = this.equipmentList
this.$modal
.confirm("是否确认保存当前页面")
.then(function () {})
.then(() => {
if (this.isEdit) {
console.log("编辑");
this.loading = true;
updatePurchaseCheckInfo({
purchaseCheckDetailsList: this.equipmentList,
purchaseCheckInfo: this.maForm,
}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("编辑成功");
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesList',
// })
this.$emit("addToolsSuccess");
}
this.loading = false;
});
} else if (!this.isEdit) {
console.log("新增");
// console.log(this.equipmentList)
this.loading = true;
addApplyInfo({
leaseApplyDetailsList: this.equipmentList,
leaseApplyInfo: this.maForm,
}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("新增成功");
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesList',
// })
this.$emit("addToolsSuccess");
}
this.loading = false;
});
}
})
.catch(() => {});
}
});
} else {
this.$modal.msgError("请先添加机具类型");
}
},
//
getParentsById(list, id) {
for (let i in list) {
if (list[i].typeId == id) {
//value
return [list[i].typeId];
}
if (list[i].children) {
let node = this.getParentsById(list[i].children, id);
if (node !== undefined) {
//
node.unshift(list[i].typeId);
return node;
}
}
}
},
/** 删除按钮操作 */
handleDelete(row) {
// console.log(row.id)
this.$modal
.confirm("是否确认删除所选择的数据项?")
.then(() => {
this.deviceType.forEach((e, index) => {
if (e[3] === row.typeId) {
this.deviceType.splice(index, 1);
this.propsKey++;
}
});
this.equipmentList.forEach((item, index) => {
if (item.id == row.id) {
this.equipmentList.splice(index, 1);
}
});
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const formatTime = (date) => {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}${month}${day}_${hours}${minutes}${seconds}`;
};
const currentTime = formatTime(new Date());
this.download(
"/material/purchase_check_info/exportDetails",
{ taskId: this.taskId },
`新购到货详情_${currentTime}.xlsx`
);
},
},
};
</script>
<style lang="scss">
.popper-select {
.el-cascader-panel .el-scrollbar .el-checkbox {
display: none;
}
.el-cascader-panel .el-scrollbar:nth-child(4) .el-checkbox {
display: block !important;
}
}
</style>

View File

@ -1,661 +0,0 @@
<template>
<div>
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item>
<el-date-picker
v-model="queryParams.time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 240px"
>
</el-date-picker>
</el-form-item>
<el-form-item prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="taskStatus">
<el-select
v-model="queryParams.taskStatus"
placeholder="请选择状态"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.lease_out_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="typeList"
row-key="id"
@selection-change="handleSelectionChange"
border
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column width="60" align="center" label="序号" type="index" />
<el-table-column
align="center"
width="160"
label="申请时间"
prop="createTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请人"
width="150"
align="center"
prop="createBy"
:show-overflow-tooltip="true"
/>
<el-table-column
label="实施单位"
align="center"
prop="impUnitName"
width="150px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="合同主体"
align="center"
prop="contractPart"
width="150px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁单位"
align="center"
prop="leaseUnit"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁工程"
align="center"
prop="leaseProject"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="领料物资类型"
align="center"
prop="leaseType"
width="110px"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="协议号"
align="center"
prop="agreementCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁申请单号"
align="center"
prop="code"
width="110px"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="领料人"
align="center"
prop="leasePerson"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="领料人电话"
align="center"
prop="phone"
width="120px"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="操作时间"
align="center"
width="160"
prop="updateTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.lease_out_status"
:value="scope.row.status"
/>
</template>
</el-table-column>
<el-table-column
label="备注"
align="center"
width="100"
prop="remark"
:show-overflow-tooltip="true"
/>
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<el-button
size="mini"
style="margin-bottom: 10px"
type="normal"
@click="handleView(scope.row)"
v-if="scope.row.status != '2'"
>查看</el-button
>
<el-button
size="mini"
style="margin-bottom: 10px"
type="primary"
@click="handleUpdate(scope.row)"
v-if="scope.row.status != '2'"
>出库</el-button
>
<el-button
size="mini"
type="warning"
@click="handlePrint(scope.row)"
>领料单</el-button
>
<el-button
size="mini"
type="warning"
@click="handlePrint(scope.row)"
v-if="scope.row.status == '2'"
>出库检验单</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 验收单弹窗 -->
<el-dialog
:title="title"
:visible.sync="openPrint"
width="1100px"
append-to-body
>
<div style="height: 500px; overflow-y: scroll">
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div
class="title"
style="text-align: center; font-weight: 600; font-size: 16px"
>
机具设备到货验收单
</div>
<div
class="info"
style="margin-top: 10px; display: flex; flex-wrap: wrap"
>
<div
class="item"
style="
width: 100%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>单据编号</span>
</div>
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>生产厂家供应商</span>
</div>
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>到货日期</span>
</div>
</div>
<el-table
:data="printTableData"
class="table"
style="margin-top: 20px; width: 1000px; padding-bottom: 1px"
border
>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="序号" align="center" type="index" row="2" />
<el-table-column
label="物资名称"
align="center"
prop="machineTypeName"
/>
<el-table-column
label="规格型号"
align="center"
prop="specificationType"
/>
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="配送信息" align="center">
<el-table-column
label="到货数量"
align="center"
prop="purchaseNum"
/>
<el-table-column
label="验收结论"
align="center"
prop="purchaseNum"
/>
<el-table-column label="质保质量" align="center">
<el-table-column
label="实收份数"
align="center"
prop="purchaseNum"
/>
<el-table-column
label="符合要求"
align="center"
prop="purchaseNum"
/>
</el-table-column>
</el-table-column>
<el-table-column label="备注" align="center" prop="unitName" />
<!-- <el-table-column-->
<!-- label="合格证及技术资料"-->
<!-- align="center"-->
<!-- prop=""-->
<!-- />-->
<!-- <el-table-column label="包装" align="center" prop="" />-->
</el-table>
<div
class="fillIn"
style="
margin-top: 20px;
display: flex;
justify-content: space-between;
"
>
<div class="item" style="width: 33%">
<div>
<span>供应科</span>
</div>
</div>
<div class="item" style="width: 33%">
<div>
<span>生产技术科</span>
</div>
</div>
<div class="item" style="width: 33%">
<div>
<span>库管班</span>
</div>
</div>
</div>
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="print"> </el-button>
<el-button @click="openPrint = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getListLeaseApply,
getPurchaseCheckInfo,
getAcceptanceForm,
purchaseCheckInfoRemove,
queryStatusDataApi,
} from "@/api/lease/apply";
export default {
name: "Home",
dicts: ["lease_out_status"],
// components: { vueEasyPrint },
data() {
return {
//
loading: true,
loadingTwo: true,
updateTime: "",
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
showPeople: false,
peopleOpen: false,
//
total: 0,
totalTwo: 0,
//
typesList: [],
modelList: [],
//
typeList: [],
getListPeople: [],
configUserList: [],
phoneNumbers: [],
//
chosenUserList: [],
userList: [],
//
title: "",
//
dateRange: [],
statusDataRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
time: null, //
taskStatus: "",
keyWord: "",
},
form: {
remark: "",
},
//
rules: {
remark: [
{ required: true, message: "通知内容不能为空", trigger: "blur" },
],
},
openPrint: false,
printData: {},
printTableData: [],
//
supplierStr: "",
};
},
created() {
// this.getStatusList();
this.getList();
// this.getTypeList()
},
methods: {
// getTypeList() {
// getTypeList({ level: '3' }).then((response) => {
// this.typesList = response.data
// })
// getTypeList({ level: '4' }).then((response) => {
// this.modelList = response.data
// })
// },
// /** */
// getStatusList(data) {
// let statusdataRes = queryStatusDataApi({
// // typeId:data.keeperData
// });
// this.statusDataRange = statusdataRes.data.map((item) => {
// return {
// label: item.dictLabel,
// value: item.dictValue,
// };
// });
// this.queryForm.statusDataRange = this.statusDataRange.value;
// },
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
getList() {
this.loading = true;
const params = {
keyWord: this.queryParams.keyWord,
startTime: this.queryParams.time && this.queryParams.time[0],
endTime: this.queryParams.time && this.queryParams.time[1],
taskStatus: this.queryParams.taskStatus,
// statusList:[this.queryParams.taskStatus],
pageSize: this.queryParams.pageSize,
pageNum: this.queryParams.pageNum,
};
getListLeaseApply(params).then((response) => {
this.typeList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.time = [];
this.resetForm("queryForm");
this.queryParams.keyWord = "";
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.$emit("addTools");
},
/** 查看按钮操作 */
handleView(row) {
this.$emit("queryTools", row.taskId, row.id);
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$emit("editTools", row.taskId, row.id);
},
//----
getNowTime() {
var today = new Date();
var year = today.getFullYear(); //
var month = today.getMonth() + 1; //
var day = today.getDate(); //
return year + "-" + month + "-" + day;
},
//
reset() {
this.form = {
taskId: "",
remark: "",
};
this.resetForm("form");
},
// //
// handleSelectionChange(selection) {
// this.ids = selection.map((item) => item.taskId)
// this.single = selection.length != 1
// this.multiple = !selection.length
// },
/** 验收按钮 */
handleAccept(row) {
// let query = { taskId: row.taskId }
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesAccept',
// query,
// })
this.$emit("acceptToolsApply", row.taskId);
},
//
handleCode(row) {
// let query = { taskId: row.taskId }
// this.$tab
// .closeOpenPage({
// path: '/store/newBuy/newDevicesCode',
// query,
// })
// .then(() => {
// this.$tab.refreshPage()
// })
this.$emit("codingTools", row.taskId);
},
//
getPrintTable(taskId) {
getAcceptanceForm({ taskId: taskId }).then((response) => {
this.printData = response.data;
this.printTableData = response.data.checkDetailsList;
let supplierList = [];
this.printTableData.forEach((e) => {
if (e.supplier) {
supplierList.push(e.supplier);
}
});
supplierList = [...new Set(supplierList)];
this.supplierStr = supplierList.join(",");
});
},
//
handlePrint(row) {
// this.query.taskId = row.taskId
// this.getPrintTable(row.taskId)
this.openPrint = true;
this.title = "机具设备到货验收单";
},
//
print() {
this.$refs.remarksPrintRef.print();
},
/** 删除按钮操作 */
handleDeletePurchase(row) {
// console.log(row)
this.$modal
.confirm("是否确认删除所选择的数据项?")
.then(function () {
return purchaseCheckInfoRemove(row.id);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const formatTime = (date) => {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}${month}${day}_${hours}${minutes}${seconds}`;
};
const currentTime = formatTime(new Date());
this.download(
"/material/purchase_check_info/export",
{ ...this.queryParams },
`新购到货_${currentTime}.xlsx`
);
},
},
//
handleSend(row) {
console.log("发布");
},
handleSendAll() {},
watch: {
$route: {
handler(to) {
if (to.query.keyWord) {
this.queryParams.keyWord = to.query.keyWord;
}
},
deep: true,
immediate: true,
},
},
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 70px !important;
margin-bottom: 10px;
}
</style>

View File

@ -1,259 +0,0 @@
<template>
<div>
<el-form
:model="maForm"
ref="maForm"
size="small"
:rules="rules"
:inline="true"
label-width="120px"
>
<el-form-item label="租赁单位" prop="unitId">
<el-select
v-model="maForm.unitId"
placeholder="租赁单位"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in uniteList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
/>
</el-select>
</el-form-item>
<el-form-item label="租赁工程" prop="projectId">
<el-select
v-model="maForm.projectId"
placeholder="租赁工程"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in projectList"
:key="item.proId"
:label="item.proName"
:value="item.proId"
/>
</el-select>
</el-form-item>
<el-form-item label="领料人" prop="leasePerson">
<el-input
v-model="maForm.leasePerson"
placeholder="请输入领料人"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="maForm.phone"
placeholder="请输入联系电话"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
</el-col>
</el-row>
<el-table v-loading="loading" :data="equipmentList">
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="maTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="当前库存"
align="center"
prop="purchaseNum"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="预领数量"
align="center"
prop="preNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="已领数量"
align="center"
prop="purchasePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="管理模式"
align="center"
prop="purchasePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="出库数量"
align="center"
prop="purchasePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="备注"
align="center"
prop="remark"
:show-overflow-tooltip="true"
/>
</el-table>
</div>
</template>
<script>
import { getPurchaseCheckInfo } from "@/api/purchase/goodsArrived";
import {
uploadPurchaseFile,
getPurchaseFileList,
} from "@/api/purchase/goodsAccept";
import { getToken } from "@/utils/auth";
export default {
name: "QueryTools",
dicts: ["purchase_task_status"],
components: {
// UploadImg,
},
props: {
isView: {
type: Boolean,
default: () => {
return false;
},
},
queryTaskId: {
type: [String, Number],
default: () => {
return "";
},
},
queryId: {
type: [String, Number],
default: () => {
return "";
},
},
},
data() {
return {
fixCodeList: ["否", "是"],
//ID
taskId: "",
//
loading: true,
//
taskInfo: {},
//
equipmentList: [],
//
open: false,
rowData: {},
maForm: {},
};
},
computed: {},
mounted() {
this.taskId = this.queryTaskId;
this.id = this.queryId;
this.getTaskInfo();
},
methods: {
//-
getTaskInfo() {
this.loading = true;
getApplyInfo({ taskId: this.taskId, id: this.id }).then((response) => {
this.taskInfo = response.data;
this.equipmentList = response.data.purchaseCheckDetailsList;
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
const formatTime = (date) => {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}${month}${day}_${hours}${minutes}${seconds}`;
};
const currentTime = formatTime(new Date());
this.download(
"/material/purchase_check_info/exportDetails",
{ taskId: this.taskId },
`新购到货详情_${currentTime}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
.custom-textarea {
width: 300px;
height: 100px;
}
.accept-img {
color: #409eff;
.a-two {
margin-left: 20px;
}
}
.left-tip {
font-size: 16px;
letter-spacing: 1px;
}
</style>

View File

@ -56,7 +56,7 @@
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="typeList" border>
<el-table v-loading="loading" :data="typeList" border>
<el-table-column width="60" align="center" label="序号" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
@ -319,22 +319,22 @@
<el-dialog :title="title" :visible.sync="openPrint" width="70%" append-to-body>
<div style="height: 600px; overflow-y: scroll; padding: 0 20px">
<vue-easy-print tableShow ref="remarksPrintRefCheck" class="print" :printable="'checkId'">
<div id="checkId">
<div class="title" style="text-align: center; font-weight: 600; font-size: 16px">
施工机具设备出库检验记录表
</div>
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
<div class="item" style="width: 50%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>领用工程</span>
{{ checkDataInfo.leaseProject }}
<div id="checkId">
<div class="title" style="text-align: center; font-weight: 600; font-size: 16px">
施工机具设备出库检验记录表
</div>
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
<div class="item" style="width: 50%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>领用工程</span>
{{ checkDataInfo.leaseProject }}
</div>
<div class="item" style="width: 50%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>使用单位</span>
{{ checkDataInfo.leaseUnit }}
<div class="item" style="width: 50%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>使用单位</span>
{{ checkDataInfo.leaseUnit }}
</div>
</div>
</div>
<!-- <el-table
<!-- <el-table
:data="printTableData"
class="table"
style="margin-top: 20px; width: 1000px; padding-bottom: 1px"
@ -353,66 +353,70 @@
<el-table-column label="检验结论" align="center" prop="checkResult" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table> -->
<table class="print-table" style="margin-top: 20px; width: 100%;border-collapse: collapse" border="1">
<thead>
<tr>
<th style="text-align: center;">机具名称</th>
<th style="text-align: center;">规格型号</th>
<th style="text-align: center;">单位</th>
<th style="text-align: center;">数量</th>
<th style="text-align: center;">设备编码</th>
<th style="text-align: center;">额定载荷KN</th>
<th style="text-align: center;">试验载荷KN</th>
<th style="text-align: center;">持荷时间min</th>
<th style="text-align: center;width: 100px">试验日期</th>
<th style="text-align: center;width: 100px">下次试验日期</th>
<th style="text-align: center;">检验结论</th>
<th style="text-align: center;">备注</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in printTableData" :key="index">
<td style="text-align: center;">{{ item.typeName }}</td>
<td style="text-align: center;">{{ item.typeModelName }}</td>
<td style="text-align: center;">{{ item.unit }}</td>
<td style="text-align: center;">{{ item.num }}</td>
<td style="text-align: center;">{{ item.maCode }}</td>
<td style="text-align: center;">{{ item.ratedLoad }}</td>
<td style="text-align: center;">{{ item.testLoad }}</td>
<td style="text-align: center;">{{ item.holdingTime }}</td>
<td style="text-align: center;">{{ item.testTime }}</td>
<td style="text-align: center;">{{ item.nextTestTime }}</td>
<td style="text-align: center;">{{ item.checkResult }}</td>
<td style="text-align: center;">{{ item.remark }}</td>
</tr>
</tbody>
</table>
<table
class="print-table"
style="margin-top: 20px; width: 100%; border-collapse: collapse"
border="1"
>
<thead>
<tr>
<th style="text-align: center">机具名称</th>
<th style="text-align: center">规格型号</th>
<th style="text-align: center">单位</th>
<th style="text-align: center">数量</th>
<th style="text-align: center">设备编码</th>
<th style="text-align: center">额定载荷KN</th>
<th style="text-align: center">试验载荷KN</th>
<th style="text-align: center">持荷时间min</th>
<th style="text-align: center; width: 100px">试验日期</th>
<th style="text-align: center; width: 100px">下次试验日期</th>
<th style="text-align: center">检验结论</th>
<th style="text-align: center">备注</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in printTableData" :key="index">
<td style="text-align: center">{{ item.typeName }}</td>
<td style="text-align: center">{{ item.typeModelName }}</td>
<td style="text-align: center">{{ item.unit }}</td>
<td style="text-align: center">{{ item.num }}</td>
<td style="text-align: center">{{ item.maCode }}</td>
<td style="text-align: center">{{ item.ratedLoad }}</td>
<td style="text-align: center">{{ item.testLoad }}</td>
<td style="text-align: center">{{ item.holdingTime }}</td>
<td style="text-align: center">{{ item.testTime }}</td>
<td style="text-align: center">{{ item.nextTestTime }}</td>
<td style="text-align: center">{{ item.checkResult }}</td>
<td style="text-align: center">{{ item.remark }}</td>
</tr>
</tbody>
</table>
<div
class="fillIn"
style="margin-top: 20px; display: flex; align-items: center; justify-content: right"
>
<div class="item" style="width: 30%; align-items: center; position: relative">
<div>
<span>检验单位</span>
</div>
<div>
<canvas
id="canvas"
width="165"
height="165"
style="
position: absolute;
top: 50%;
left: 90%;
transform: translate(-100%, -50%);
z-index: 9999;
"
></canvas>
<div
class="fillIn"
style="margin-top: 20px; display: flex; align-items: center; justify-content: right"
>
<div class="item" style="width: 30%; align-items: center; position: relative">
<div>
<span>检验单位</span>
</div>
<div>
<canvas
id="canvas"
width="165"
height="165"
style="
position: absolute;
top: 50%;
left: 90%;
transform: translate(-100%, -50%);
z-index: 9999;
"
></canvas>
</div>
</div>
</div>
</div>
</div>
</vue-easy-print>
</div>
@ -439,7 +443,7 @@
</div>
<div class="item" style="width: 40%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>发料单位</span>
{{ "机具物流分公司" }}
{{ '机具物流分公司' }}
</div>
<div class="item" style="width: 30%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>时间</span>
@ -466,7 +470,7 @@
</template>
</el-table-column>
</el-table> -->
<table class="print-table" style="margin-top: 20px; width: 100%;border-collapse: collapse" border>
<table class="print-table" style="margin-top: 20px; width: 100%; border-collapse: collapse" border>
<thead>
<tr>
<th align="center">序号</th>
@ -487,7 +491,11 @@
<td align="center">{{ item.preNum }}</td>
<td align="center">{{ item.remark }}</td>
<td align="center">
<span v-if="item.manageType == 0" style="color: blue;cursor: pointer" @click="codeInfo(item)">
<span
v-if="item.manageType == 0"
style="color: blue; cursor: pointer"
@click="codeInfo(item)"
>
编码出库
</span>
<span v-if="item.manageType == 1">数量出库</span>
@ -512,17 +520,43 @@
</div> -->
</div>
<div class="item" style="width: 24%; display: flex; align-items: center; flex-wrap: wrap">
<div style="width: 30%;">领料</div>
<div style="width: 70%;display: flex;align-items: center;flex-wrap: wrap;" v-if="leaseApplyData.leaseSignUrl">
<div style="width: 80%;margin-left: 20px;">
<img :src="leaseApplyData.leaseSignUrl" style="width: 40px;height: 100px;max-width: 100%;" :class="{'is-rotate': leaseApplyData.leaseSignType == 0}" alt="">
<div style="width: 30%">领料</div>
<div
style="width: 70%; display: flex; align-items: center; flex-wrap: wrap"
v-if="outSignList.length > 0"
>
<div
style="width: 80%; margin-left: 20px; height: 40px"
v-for="(item, index) in outSignList"
:key="index"
>
<img
:src="item.outSignUrl"
style="width: 40px; height: 90px; max-width: 100%"
:class="{ 'is-rotate': item.outSignType == 0 }"
alt=""
/>
</div>
</div>
</div>
<div class="item" style="width: 28%; display: flex; align-items: center">
<div style="width: 25%;">库管</div>
<div style="width: 75%;display: flex;align-items: center;flex-wrap: wrap;" v-if="kgSignList.length > 0">
<img v-for="(item, index) in kgSignList" :key="index" :src="item.outSignUrl" :class="{'is-rotate': leaseApplyData.outSignType == 0}" style="width: 45%;height: 30px;" alt="">
<div style="width: 25%">库管</div>
<div
style="width: 75%; display: flex; align-items: center; flex-wrap: wrap"
v-if="kgSignList.length > 0"
>
<div
style="width: 80%; margin-left: 20px; height: 40px"
v-for="(item, index) in kgSignList"
:key="index"
>
<img
:src="item.outSignUrl"
:class="{ 'is-rotate': item.outSignType == 0 }"
style="width: 40px; height: 90px; max-width: 100%"
alt=""
/>
</div>
</div>
</div>
<div class="item" style="width: 24%; display: flex; align-items: center; flex-wrap: wrap">
@ -609,20 +643,20 @@
</el-table> -->
<table class="print-table" style="margin-top: 20px; width: 100%; border-collapse: collapse" border>
<thead>
<tr>
<th align="center" width="55">序号</th>
<th align="center">类型名称</th>
<th align="center">规格型号</th>
<th align="center">设备编码</th>
</tr>
<tr>
<th align="center" width="55">序号</th>
<th align="center">类型名称</th>
<th align="center">规格型号</th>
<th align="center">设备编码</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in getListViewInfo" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ item.materialName }}</td>
<td align="center">{{ item.typeName }}</td>
<td align="center">{{ item.maCode }}</td>
</tr>
<tr v-for="(item, index) in getListViewInfo" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ item.materialName }}</td>
<td align="center">{{ item.typeName }}</td>
<td align="center">{{ item.maCode }}</td>
</tr>
</tbody>
</table>
</vue-easy-print>
@ -732,7 +766,8 @@ export default {
getListViewInfo: [],
idTemp: '',
publishTask: '',
kgSignList: []
kgSignList: [],
outSignList: []
}
},
created() {
@ -997,17 +1032,17 @@ export default {
/** 导出按钮操作 */
handleExportCheck() {
const formatTime = (date) => {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}${month}${day}_${hours}${minutes}${seconds}`;
};
const formatTime = date => {
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}${month}${day}_${hours}${minutes}${seconds}`
}
const currentTime = formatTime(new Date());
const currentTime = formatTime(new Date())
this.download(
'/material/lease_apply_info/exportInfo',
{ id: this.idTemp },
@ -1026,6 +1061,7 @@ export default {
this.leaseApplyDetails = res.data.leaseApplyDetailsList
this.leaseApplyData = res.data.leaseApplyInfo
this.kgSignList = res.data.kgSignList || []
this.outSignList = res.data.outSignList || []
},
//
@ -1196,14 +1232,14 @@ export default {
margin-bottom: 10px;
}
.is-rotate {
transform: rotate(-90deg);
transform: rotate(-90deg);
}
.print-table {
table,
th,
td {
border: 1.5px solid black;
border-collapse: collapse;
}
table,
th,
td {
border: 1.5px solid black;
border-collapse: collapse;
}
}
</style>