出库检验单

This commit is contained in:
hongchao 2024-12-25 11:06:39 +08:00
parent d60535be2f
commit ce1ce4f033
3 changed files with 316 additions and 115 deletions

View File

@ -511,7 +511,7 @@
</el-table-column>--> </el-table-column>-->
<el-table-column label="规格型号" align="center" prop="typeName" /> <el-table-column label="规格型号" align="center" prop="typeName" />
<el-table-column label="计量单位" align="center" prop="unitName" /> <el-table-column label="计量单位" align="center" prop="unitName" />
<el-table-column label="预领数量" align="center" prop="preNum" /> <el-table-column label="已领数量" align="center" prop="alNum" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column <el-table-column
label="出库方式" label="出库方式"

View File

@ -486,7 +486,7 @@
<el-dialog <el-dialog
:title="title" :title="title"
:visible.sync="openPrint" :visible.sync="openPrint"
width="1100px" width="1000px"
append-to-body append-to-body
> >
<div style="height: 500px; overflow-y: scroll"> <div style="height: 500px; overflow-y: scroll">
@ -495,23 +495,12 @@
class="title" class="title"
style="text-align: center; font-weight: 600; font-size: 16px" style="text-align: center; font-weight: 600; font-size: 16px"
> >
机具设备到货验收单 施工机具设备出库检验记录表
</div> </div>
<div <div
class="info" class="info"
style="margin-top: 10px; display: flex; flex-wrap: wrap" 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 <div
class="item" class="item"
style=" style="
@ -521,7 +510,7 @@
font-size: 14px; font-size: 14px;
" "
> >
<span>生产厂家供应商</span> <span>领用工程</span>
</div> </div>
<div <div
@ -533,60 +522,27 @@
font-size: 14px; font-size: 14px;
" "
> >
<span>到货日期</span> <span>使用单位</span>
</div> </div>
</div> </div>
<el-table <el-table
:data="printTableData" :data="printTableData"
class="table" class="table"
style="margin-top: 20px; width: 1000px; padding-bottom: 1px" style="margin-top: 20px; width: 900px; padding-bottom: 1px"
border border
> >
<!-- <el-table-column type="selection" width="55" align="center" />--> <el-table-column label="机具名称" align="center" prop="machineTypeName"/>
<el-table-column label="序号" align="center" type="index" row="2" /> <el-table-column label="规格型号" align="center" prop="specificationType"/>
<el-table-column <el-table-column label="单位" align="center" prop="unitName" width="40px"/>
label="物资名称" <el-table-column label="数量" align="center" prop="unitName" width="40px"/>
align="center" <el-table-column label="设备编码" align="center" prop="unitName"/>
prop="machineTypeName" <el-table-column label="额定载荷KN" align="center" prop="unitName"/>
/> <el-table-column label="试验载荷KN" align="center" prop="unitName"/>
<el-table-column <el-table-column label="持荷时间min" align="center" prop="unitName"/>
label="规格型号" <el-table-column label="试验日期" align="center" prop="unitName"/>
align="center" <el-table-column label="下次试验日期" align="center" prop="unitName"/>
prop="specificationType" <el-table-column label="检验结论" align="center" prop="unitName"/>
/> <el-table-column label="备注" align="center" prop="unitName"/>
<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> </el-table>
<div <div
@ -594,26 +550,19 @@
style=" style="
margin-top: 20px; margin-top: 20px;
display: flex; display: flex;
justify-content: space-between; align-items: center;
justify-content: right;
" "
> >
<div class="item" style="width: 33%"> <div class="item" style="width: 33%">
<div> <div>
<span>供应科</span> <span>检验单位</span>
</div> </div>
<div style="position: absolute; top: 0%; left: 25%">
<canvas id="canvas" width="180" height="180"></canvas>
</div>
</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> </div>
</vue-easy-print> </vue-easy-print>
</div> </div>
@ -694,7 +643,7 @@
style="margin-top: 20px; padding: 1px" style="margin-top: 20px; padding: 1px"
> >
<el-table-column label="序号" align="center" type="index" /> <el-table-column label="序号" align="center" type="index" />
<el-table-column label="类型名称" align="center" prop="typeName" /> <el-table-column label="类型名称" align="center" prop="maTypeName" />
<!-- <el-table-column type="expand"> <!-- <el-table-column type="expand">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="nested-table-container"> <div class="nested-table-container">
@ -726,18 +675,16 @@
</el-table-column>--> </el-table-column>-->
<el-table-column label="规格型号" align="center" prop="typeName" /> <el-table-column label="规格型号" align="center" prop="typeName" />
<el-table-column label="计量单位" align="center" prop="unitName" /> <el-table-column label="计量单位" align="center" prop="unitName" />
<el-table-column label="预领数量" align="center" prop="preNum" /> <el-table-column label="已领数量" align="center" prop="alNum" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column <el-table-column
label="出库方式" label="出库方式"
align="center" align="center"
prop="manageTypeName" prop="manageType"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <span v-if="scope.row.manageType == 0" style="color: blue;" @click="codeInfo(scope.row)">编码出库</span>
:options="dict.type.ma_type_manage_type" <span v-if="scope.row.manageType == 1">数量出库</span>
:value="scope.row.manageType"
/>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column--> <!-- <el-table-column-->
@ -855,6 +802,50 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
<!-- 编码管理查看弹窗 -->
<el-dialog
:title="titleView"
:visible.sync="showView"
width="1000px"
append-to-body
>
<div style="overflow-y: scroll">
<vue-easy-print tableShow ref="remarksPrintRefView" class="print">
<div
class="title"
style="text-align: center; font-weight: 600; font-size: 16px; margin-bottom:20px"
>
领料单编号明细
</div>
<el-table :data="getListViewInfo" width="600px" height="450">
<el-table-column align="center" label="序号" type="index" width="55" />
<el-table-column
label="类型名称"
align="center"
prop="materialName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="设备编码"
align="center"
prop="maCode"
:show-overflow-tooltip="true"
/>
</el-table>
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="printView"> </el-button>
<el-button @click="showView = false"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -867,6 +858,7 @@ import {
submitNumOut, submitNumOut,
} from "@/api/lease/out"; } from "@/api/lease/out";
import vueEasyPrint from "vue-easy-print"; import vueEasyPrint from "vue-easy-print";
import chapter from '../../../../utils/chapter';
export default { export default {
dicts: ["lease_task_status"], dicts: ["lease_task_status"],
components: { vueEasyPrint }, components: { vueEasyPrint },
@ -927,6 +919,7 @@ export default {
outQuery: { outQuery: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
maCode: "",
}, },
form: { form: {
remark: "", remark: "",
@ -950,11 +943,17 @@ export default {
carCode: "", carCode: "",
remark: "", remark: "",
}, },
titleView: "",
showView:false,
getListViewInfo:[],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
mounted() {
chapter('机具检验专用章', '重庆送变电工程有限公司')
},
methods: { methods: {
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
@ -1173,7 +1172,7 @@ export default {
// this.query.taskId = row.taskId // this.query.taskId = row.taskId
// this.getPrintTable(row.taskId) // this.getPrintTable(row.taskId)
this.openPrint = true; this.openPrint = true;
this.title = "机具设备到货验收单"; this.title = "出库检验单";
}, },
// //
@ -1192,6 +1191,12 @@ export default {
this.$refs.remarksPrintRef.print(); this.$refs.remarksPrintRef.print();
}, },
codeInfo(row) {
this.showView = true;
this.titleView = "查看";
this.getListViewInfo = row.maCodeVoList;
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download( this.download(
@ -1232,6 +1237,10 @@ export default {
row.inputNum = maxNum; row.inputNum = maxNum;
} }
}, },
printView() {
// this.$refs.remarksPrintRef.print();
},
}, },
watch: { watch: {

View File

@ -72,7 +72,16 @@
<el-table-column label="固定资产编号" align="center" prop="assetsCode" sortable show-overflow-tooltip/> <el-table-column label="固定资产编号" align="center" prop="assetsCode" sortable show-overflow-tooltip/>
<el-table-column label="设备原编号" align="center" prop="preCode" sortable show-overflow-tooltip/> <el-table-column label="设备原编号" align="center" prop="preCode" sortable show-overflow-tooltip/>
<el-table-column label="购置批次" align="center" prop="buyTask" sortable show-overflow-tooltip/> <el-table-column label="购置批次" align="center" prop="buyTask" sortable show-overflow-tooltip/>
<el-table-column label="绑定标签" align="center" prop="remark" sortable show-overflow-tooltip/> <el-table-column label="绑定标签" align="center" prop="qrCode" sortable show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.qrCode!=null" style="color:blue" @click="handleViewQrCode(scope.row)">
{{ "查看" }}
</span>
<span v-else>
{{ "暂无" }}
</span>
</template>
</el-table-column>
<el-table-column label="所在仓库" align="center" prop="ownHouse" sortable show-overflow-tooltip/> <el-table-column label="所在仓库" align="center" prop="ownHouse" sortable show-overflow-tooltip/>
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
@ -179,8 +188,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="绑定标签" prop="houseName"> <el-form-item label="绑定标签" prop="qrCode">
<el-input v-model="form.houseName" placeholder="请输入" maxlength="20" disabled/> <div id="qrcode" v-if="form.qrCode" style="display: flex;align-items: center;justify-content: center;" ref="codeItemTwo"
></div>
<span v-else>暂无</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -211,7 +222,7 @@
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="资产属性" prop="assetsId"> <el-form-item label="资产属性" prop="assetsId">
<el-select v-model="form.assetsId" placeholder="请选择资产属性" clearable style="width: 100%;" > <el-select v-model="form.assetsId" placeholder="请选择资产属性" clearable style="width: 100%;" disabled>
<el-option <el-option
v-for="dict in ZichanTypeList" v-for="dict in ZichanTypeList"
:key="dict.value" :key="dict.value"
@ -239,17 +250,43 @@
<el-input v-model="form.inOutNum" placeholder="请输入" maxlength="20" disabled/> <el-input v-model="form.inOutNum" placeholder="请输入" maxlength="20" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7">
<el-form-item label="库管员" prop="keeperName">
<el-input v-model="form.keeperName" placeholder="请输入" maxlength="20" disabled/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="7"> <el-col :span="12">
<el-form-item label="维修员" prop="repairName"> <el-form-item label="库管员" >
<el-input v-model="form.repairName" placeholder="请输入" maxlength="20" disabled/> <el-select
</el-form-item> v-model="form.keeperArr"
filterable multiple
placeholder="请选择库管员"
style="width: 100%"
disabled
>
<el-option
v-for="keeper in KeeperOptions"
:key="keeper.userId+''"
:label="keeper.userName"
:value="keeper.userId+''"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="维修员" >
<el-select
v-model="form.repairerArr"
filterable multiple
placeholder="请选择维修员"
style="width: 100%"
disabled
>
<el-option
v-for="keeper in repairerOptions"
:key="keeper.userId"
:label="keeper.userName"
:value="keeper.userId+''"
></el-option>
</el-select>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
@ -278,14 +315,33 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 二维码下载对话框 -->
<el-dialog title="二维码查看" :visible.sync="uploadOpen" width="450px" append-to-body :close-on-click-modal="false">
<div style="text-align: center" ref="codeQr">
<div class="uploadImg">
<div id="qrcode" class="qrcode" ref="codeItem"></div>
</div>
<div class="boxCode">二维码编号{{ rowObj.qrCode }}</div>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="downloadCode"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getListDevice,getDeviceDetail,editDevice,addDevice,delDevice,getDeviceType,getZichanType } from "@/api/ma/device"; import { getListDevice,getDeviceDetail,editDevice,addDevice,delDevice,getDeviceType,getZichanType } from "@/api/ma/device";
import { getKeeperIds} from "@/api/ma/typeConfigKeeper";
import { getRepairIds } from "@/api/ma/typeConfigRepair";
import {
getUserTypeList,
} from "@/api/ma/base";
import { downloadFile } from '@/utils/download' import { downloadFile } from '@/utils/download'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import QRCode from 'qrcodejs2';
import html2canvas from 'html2canvas';
export default { export default {
name: "Post", name: "Post",
data() { data() {
@ -364,21 +420,72 @@
}, },
// //
form: {}, form: {
// qrCode: "",
rules: { },
//
rules: {
}, },
uploadOpen: false,
rowObj:{},
qrCode:"",
qrcodeUrl: '',
KeeperOptions: [],
repairerOptions: [],
}; };
}, },
created() { created() {
this.getZichanType(); this.getZichanType();
this.getDeviceType(); this.getDeviceType();
this.getKeeperData();
this.getRepairerData();
this.getList(); this.getList();
}, },
// watch: {
// // form.qrCode
// 'form.qrCode': function (newValue) {
// if (newValue) {
// this.generateQRCode(newValue);
// } else {
// this.qrcodeUrl = ''; // URL
// }
// },
// },
methods: { methods: {
async getKeeperData() {
const itemName = "ku_guan_role_ids";
let roleIdsTemp = []
await getKeeperIds(itemName).then((response) => {
const roleIds = response.rows[response.rows.length - 1].itemValue
.split(",")
.map((item) => Number(item));
roleIdsTemp = roleIds;
});
await getUserTypeList(roleIdsTemp.join(',')).then((response) => {
this.KeeperOptions = response.rows;
});
},
async getRepairerData() {
const itemName = "wei_xiu_role_ids";
let roleIdsTemp = []
await getRepairIds(itemName).then((response) => {
const roleIds = response.rows[response.rows.length - 1].itemValue
.split(",")
.map((item) => Number(item));
roleIdsTemp = roleIds;
});
await getUserTypeList(roleIdsTemp.join(',')).then((response) => {
this.repairerOptions = response.rows;
console.log('4444',this.repairerOptions)
});
},
getDeviceType(){ getDeviceType(){
getDeviceType({level:2,skipPermission:1}).then(response => { getDeviceType({level:2,skipPermission:1}).then(response => {
let matTypeRes = response.data; let matTypeRes = response.data;
@ -443,7 +550,22 @@
const maId = row.maId const maId = row.maId
getDeviceDetail(maId).then((response) => { getDeviceDetail(maId).then((response) => {
this.form = response.data; this.form = response.data;
if (response.data.keeperId) {
this.form.keeperArr = response.data.keeperId.split(',');
} else {
this.form.keeperArr = []; //
}
if (response.data.repairId) {
this.form.repairerArr = response.data.repairId.split(',');
} else {
this.form.repairerArr = []; //
}
if (this.form.qrCode) {
this.generateQRCode(this.form.qrCode);
// URL
} else {
this.qrcodeUrl = '';
}
this.showHouse = true this.showHouse = true
this.title = '修改' this.title = '修改'
}) })
@ -454,11 +576,41 @@
const maId = row.maId const maId = row.maId
getDeviceDetail(maId).then((response) => { getDeviceDetail(maId).then((response) => {
this.form = response.data; this.form = response.data;
if (response.data.keeperId) {
this.form.keeperArr = response.data.keeperId.split(',');
} else {
this.form.keeperArr = []; //
}
if (response.data.repairId) {
this.form.repairerArr = response.data.repairId.split(',');
} else {
this.form.repairerArr = []; //
}
if (this.form.qrCode) {
this.generateQRCode(this.form.qrCode);
// URL
} else {
this.qrcodeUrl = '';
}
this.showHouse = true this.showHouse = true
this.title = '查看' this.title = '查看'
}) })
}, },
//
generateQRCode(value) {
this.$nextTick(() => {
this.$refs.codeItemTwo.innerHTML = ''
var qrcode = new QRCode(this.$refs.codeItemTwo, {
text: value, //
width: 55,
height: 55,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.H,
})
}, 500)
},
// //
reset() { reset() {
this.form = {}; this.form = {};
@ -507,7 +659,42 @@
}) })
.catch(() => {}) .catch(() => {})
}, },
//
handleViewQrCode(row){
this.rowObj = row
this.uploadOpen = true
this.qrCode = row.qrCode
let str = row.qrCode
this.$nextTick(() => {
this.$refs.codeItem.innerHTML = ''
var qrcode = new QRCode(this.$refs.codeItem, {
text: str, //
width: 256,
height: 256,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.H,
})
}, 500)
},
//
downloadCode(e) {
if (document.getElementById('qrcode').childNodes[0]) {
let element = this.$refs.codeQr
html2canvas(element).then((canvas) => {
// canvasURL
const image = canvas.toDataURL('image/png')
const alink = document.createElement('a')
alink.href = image
alink.download = this.qrCode
alink.click()
})
}
},
// handleExport() { // handleExport() {
// this.download('/material/ma_machine/export', { // this.download('/material/ma_machine/export', {
// ...this.queryParams // ...this.queryParams
@ -519,17 +706,6 @@
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.deviceCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini { ::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important; width: 60px !important;
margin-bottom: 10px; margin-bottom: 10px;
@ -540,4 +716,20 @@
display: none; display: none;
} }
} }
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.boxCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
.qrcode-container img {
width: 100px; /* 设置二维码的大小,调整为你需要的尺寸 */
height: 100px;
}
</style> </style>