Merge branch 'material-ui' of http://192.168.0.56:3000/bonus/bonus-ui into material-ui

This commit is contained in:
zzyuan 2024-12-27 17:55:14 +08:00
commit 0aa9855656
4 changed files with 348 additions and 194 deletions

View File

@ -473,7 +473,7 @@ export default {
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download( this.download(
"/material/base/dic/export", "/material/bm_unit_type/export",
{ {
...this.queryParams, ...this.queryParams,
dataCondition: this.ids, dataCondition: this.ids,

View File

@ -274,29 +274,19 @@
width="1100px" width="1100px"
append-to-body append-to-body
> >
<div style="height: 500px; overflow-y: scroll"> <div style="height: 600px; overflow-y: scroll;padding: 0 20px">
<vue-easy-print tableShow ref="remarksPrintRef" class="print"> <!-- <vue-easy-print tableShow ref="remarksPrintRefCheck" class="print" :printable="'checkId'"> -->
<div id="checkId">
<div <div
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="
@ -306,7 +296,8 @@
font-size: 14px; font-size: 14px;
" "
> >
<span>生产厂家供应商</span> <span>领用工程</span>
{{ checkDataInfo.leaseProject }}
</div> </div>
<div <div
@ -318,60 +309,28 @@
font-size: 14px; font-size: 14px;
" "
> >
<span>到货日期</span> <span>使用单位</span>
{{ checkDataInfo.leaseUnit }}
</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: 1000px; padding-bottom: 1px"
border border
> >
<!-- <el-table-column type="selection" width="55" align="center" />--> <el-table-column label="机具名称" align="center" prop="typeName"/>
<el-table-column label="序号" align="center" type="index" row="2" /> <el-table-column label="规格型号" align="center" prop="typeModelName" />
<el-table-column <el-table-column label="单位" align="center" prop="unit" width="40px"/>
label="物资名称" <el-table-column label="数量" align="center" prop="num" width="40px"/>
align="center" <el-table-column label="设备编码" align="center" prop="maCode"/>
prop="machineTypeName" <el-table-column label="额定载荷KN" align="center" prop="ratedLoad" width="80px"/>
/> <el-table-column label="试验载荷KN" align="center" prop="testLoad" width="80px"/>
<el-table-column <el-table-column label="持荷时间min" align="center" prop="holdingTime" width="80px"/>
label="规格型号" <el-table-column label="试验日期" align="center" prop="testTime" />
align="center" <el-table-column label="下次试验日期" align="center" prop="nextTestTime" width="120px"/>
prop="specificationType" <el-table-column label="检验结论" align="center" prop="checkResult" />
/> <el-table-column label="备注" align="center" prop="remark"/>
<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
@ -379,38 +338,32 @@
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: 30%; align-items: center;position: relative;">
<div> <div>
<span>供应科</span> <span>检验单位</span>
</div>
<div >
<canvas id="canvas" width="165" height="165" style="position: absolute; top: 50%; left: 90%; transform: translate(-100%, -50%);"></canvas>
</div> </div>
</div> </div>
<div class="item" style="width: 33%">
<div>
<span>生产技术科</span>
</div> </div>
</div> </div>
<!-- </vue-easy-print> -->
<div class="item" style="width: 33%">
<div>
<span>库管班</span>
</div>
</div>
</div>
</vue-easy-print>
</div> </div>
<div slot="footer" class="dialog-footer" style="text-align: center"> <div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="print"> </el-button> <el-button type="primary" @click="handleExportCheck">导出</el-button>
<el-button @click="openPrint = false"> </el-button> <el-button type="primary" @click="printCheck"> </el-button>
<el-button @click="closeDialogAndRefresh"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 领料单弹窗 --> <!-- 领料单弹窗 -->
<el-dialog :visible.sync="open" width="800px" append-to-body> <el-dialog :visible.sync="open" width="800px" :title="title" append-to-body>
<div style="height: 500px; overflow-y: scroll; padding: 0 20px"> <div style="height: 500px; overflow-y: scroll; padding: 0 20px">
<vue-easy-print tableShow ref="remarksPrintRef" class="print"> <vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div <div
@ -511,18 +464,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="alNum" /> <el-table-column label="预领数量" align="center" prop="preNum" />
<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-->
@ -560,6 +511,52 @@
<el-button @click="open = false"> </el-button> <el-button @click="open = false"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 编码管理查看弹窗 -->
<el-dialog
:title="titleView"
:visible.sync="showView"
width="800px"
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>
@ -574,9 +571,11 @@ import {
applyRemove, applyRemove,
applySend, applySend,
applySendAll, applySendAll,
getCheckInfo
} from "@/api/lease/apply"; } from "@/api/lease/apply";
import vueEasyPrint from "vue-easy-print"; import vueEasyPrint from "vue-easy-print";
import printJS from 'print-js';
export default { export default {
name: "Home", name: "Home",
@ -638,6 +637,7 @@ export default {
open: false, open: false,
printData: {}, printData: {},
printTableData: [], printTableData: [],
checkDataInfo: {},
// //
supplierStr: "", supplierStr: "",
@ -646,6 +646,10 @@ export default {
// //
leaseApplyData: {}, leaseApplyData: {},
sendTemp: [], sendTemp: [],
//
showView: false,
titleView: "",
getListViewInfo: [],
}; };
}, },
created() { created() {
@ -761,22 +765,62 @@ export default {
}); });
}, },
// //
handlePrint(row) { async handlePrint(row) {
// this.query.taskId = row.taskId const res = await getCheckInfo({id:row.id});
// this.getPrintTable(row.taskId) this.idTemp = row.id;
this.checkDataInfo = res.data.leaseApplyInfo;
this.printTableData = res.data.leaseOutVoList;
setTimeout(() => {
this.chapter('检验专用章', '机具设备分公司')
}, 200);
this.openPrint = true; this.openPrint = true;
this.title = "机具设备到货验收单"; this.title = "出库检验单";
},
/** 导出按钮操作 */
handleExportCheck() {
this.download(
"/material/lease_apply_info/exportInfo",
{ id:this.idTemp },
`出库检验单_${new Date().getTime()}.xlsx`
);
}, },
// //
async handleLld(row) { async handleLld(row) {
this.title = "领料单";
this.open = true; this.open = true;
var ids = row.id; var ids = row.id;
const res = await getApplyInfo(ids); const res = await getApplyInfo(ids);
console.log(res);
this.leaseApplyDetails = res.data.leaseApplyDetailsList; this.leaseApplyDetails = res.data.leaseApplyDetailsList;
this.leaseApplyData = res.data.leaseApplyInfo; this.leaseApplyData = res.data.leaseApplyInfo;
console.log(this.leaseApplyData); },
//
printCheck() {
printJS({
printable: 'checkId',
type: 'html',
targetStyles: ['*'],
//
});
},
//
closeDialogAndRefresh() {
this.openPrint = false;
},
codeInfo(row) {
this.showView = true;
this.titleView = "查看";
this.getListViewInfo = row.maCodeVoList;
},
//
printView() {
this.$refs.remarksPrintRefView.print();
}, },
// //
@ -842,6 +886,82 @@ export default {
}); });
} }
}, },
chapter(text, companyName) {
let canvas = document.getElementById("canvas");
let context = canvas.getContext("2d");
canvas.width = canvas.width;
context.height = canvas.height;
// //
// context.clearRect(0, 0, canvas.width, canvas.height);
//let text = "XXX";
//let companyName = "XXX";
//
let width = canvas.width / 2;
let height = canvas.height / 2;
context.lineWidth = 3;
context.strokeStyle = "#f00";
context.beginPath();
context.arc(width, height, 80, 0, Math.PI * 2); //
context.stroke();
//
this.create5star(context, width, height, 20, "#f00", 0);
//
context.font = "18px 宋体";
context.textBaseline = "middle"; //
context.textAlign = "center"; //
context.lineWidth = 1;
context.strokeStyle = "#ff2f2f";
context.strokeText(text, width, height + 50);
//
context.translate(width, height); // ,
context.font = "16px 宋体";
let count = companyName.length; //
let angle = (4 * Math.PI) / (3 * (count - 1)); //
let chars = companyName.split("");
let c;
for (let i = 0; i < count; i++) {
c = chars[i]; //
if (i == 0) {
context.rotate((5 * Math.PI) / 6);
} else {
context.rotate(angle);
}
context.save();
context.translate(65, 0); // ,x
context.rotate(Math.PI / 2); // 90,x
context.strokeStyle = "#ff5050"; //
context.strokeText(c, 0, 0); //
context.restore();
}
},
//
create5star(context, sx, sy, radius, color, rotato) {
context.save();
context.fillStyle = color;
context.translate(sx, sy); //
context.rotate(Math.PI + rotato); //
context.beginPath(); //
// let x = Math.sin(0);
// let y = Math.cos(0);
let dig = (Math.PI / 5) * 4;
for (let i = 0; i < 5; i++) {
//
let x = Math.sin(i * dig);
let y = Math.cos(i * dig);
context.lineTo(x * radius, y * radius);
}
context.closePath();
context.stroke();
context.fill();
context.restore();
}
}, },
watch: { watch: {

View File

@ -486,10 +486,10 @@
<el-dialog <el-dialog
:title="title" :title="title"
:visible.sync="openPrint" :visible.sync="openPrint"
width="800px" width="1100px"
append-to-body append-to-body
> >
<div style="height: 500px; overflow-y: scroll;padding: 0 20px"> <div style="height: 600px; overflow-y: scroll;padding: 0 20px">
<!-- <vue-easy-print tableShow ref="remarksPrintRefCheck" class="print" :printable="'checkId'"> --> <!-- <vue-easy-print tableShow ref="remarksPrintRefCheck" class="print" :printable="'checkId'"> -->
<div id="checkId"> <div id="checkId">
<div <div
@ -531,20 +531,20 @@
<el-table <el-table
:data="printTableData" :data="printTableData"
class="table" class="table"
style="margin-top: 20px; padding-bottom: 1px" style="margin-top: 20px;width: 1000px; padding-bottom: 1px"
border border
> >
<el-table-column label="机具名称" align="center" prop="typeName" width="60px"/> <el-table-column label="机具名称" align="center" prop="typeName"/>
<el-table-column label="规格型号" align="center" prop="typeModelName" width="60px"/> <el-table-column label="规格型号" align="center" prop="typeModelName" />
<el-table-column label="单位" align="center" prop="unit" width="40px"/> <el-table-column label="单位" align="center" prop="unit" width="40px"/>
<el-table-column label="数量" align="center" prop="num" width="40px"/> <el-table-column label="数量" align="center" prop="num" width="40px"/>
<el-table-column label="设备编码" align="center" prop="maCode" width="60px"/> <el-table-column label="设备编码" align="center" prop="maCode"/>
<el-table-column label="额定载荷KN" align="center" prop="ratedLoad" width="60px"/> <el-table-column label="额定载荷KN" align="center" prop="ratedLoad" width="80px"/>
<el-table-column label="试验载荷KN" align="center" prop="testLoad" width="60px"/> <el-table-column label="试验载荷KN" align="center" prop="testLoad" width="80px"/>
<el-table-column label="持荷时间min" align="center" prop="holdingTime" width="60px"/> <el-table-column label="持荷时间min" align="center" prop="holdingTime" width="80px"/>
<el-table-column label="试验日期" align="center" prop="testTime" width="50px"/> <el-table-column label="试验日期" align="center" prop="testTime" />
<el-table-column label="下次试验日期" align="center" prop="nextTestTime" width="60px"/> <el-table-column label="下次试验日期" align="center" prop="nextTestTime" width="120px"/>
<el-table-column label="检验结论" align="center" prop="checkResult" width="50px"/> <el-table-column label="检验结论" align="center" prop="checkResult" />
<el-table-column label="备注" align="center" prop="remark"/> <el-table-column label="备注" align="center" prop="remark"/>
</el-table> </el-table>
@ -557,12 +557,12 @@
justify-content: right; justify-content: right;
" "
> >
<div class="item" style="width: 50%; display: flex; align-items: center;"> <div class="item" style="width: 30%; align-items: center;position: relative;">
<div> <div>
<span>检验单位</span> <span>检验单位</span>
</div> </div>
<div > <div >
<canvas id="canvas" width="180" height="180" style="display: block;"></canvas> <canvas id="canvas" width="165" height="165" style="position: absolute; top: 50%; left: 90%; transform: translate(-100%, -50%);"></canvas>
</div> </div>
</div> </div>
@ -579,7 +579,7 @@
</el-dialog> </el-dialog>
<!-- 领料单弹窗 --> <!-- 领料单弹窗 -->
<el-dialog :visible.sync="open" width="800px" append-to-body> <el-dialog :visible.sync="open" width="800px" :title="title" append-to-body>
<div style="height: 500px; overflow-y: scroll; padding: 0 20px"> <div style="height: 500px; overflow-y: scroll; padding: 0 20px">
<vue-easy-print tableShow ref="remarksPrintRef" class="print"> <vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div <div
@ -680,7 +680,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="alNum" /> <el-table-column label="预领数量" align="center" prop="preNum" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column <el-table-column
label="出库方式" label="出库方式"
@ -812,7 +812,7 @@
<el-dialog <el-dialog
:title="titleView" :title="titleView"
:visible.sync="showView" :visible.sync="showView"
width="1000px" width="800px"
append-to-body append-to-body
> >
<div style="overflow-y: scroll"> <div style="overflow-y: scroll">
@ -1186,7 +1186,7 @@ export default {
this.printTableData = res.data.leaseOutVoList; this.printTableData = res.data.leaseOutVoList;
setTimeout(() => { setTimeout(() => {
this.chapter('机具检验专用章', this.checkDataInfo.leaseUnit) this.chapter('检验专用章', '机具设备分公司')
}, 200); }, 200);
this.openPrint = true; this.openPrint = true;
this.title = "出库检验单"; this.title = "出库检验单";
@ -1203,13 +1203,12 @@ export default {
// //
async handleLld(row) { async handleLld(row) {
this.title = "领料单";
this.open = true; this.open = true;
var ids = row.id; var ids = row.id;
const res = await getApplyInfo(ids); const res = await getApplyInfo(ids);
console.log(res);
this.leaseApplyDetails = res.data.leaseApplyDetailsList; this.leaseApplyDetails = res.data.leaseApplyDetailsList;
this.leaseApplyData = res.data.leaseApplyInfo; this.leaseApplyData = res.data.leaseApplyInfo;
console.log(this.leaseApplyData);
}, },
// //
@ -1275,7 +1274,7 @@ export default {
}, },
printView() { printView() {
// this.$refs.remarksPrintRef.print(); this.$refs.remarksPrintRefView.print();
}, },
// //
closeDialogAndRefresh() { closeDialogAndRefresh() {
@ -1305,16 +1304,16 @@ export default {
this.create5star(context, width, height, 20, "#f00", 0); this.create5star(context, width, height, 20, "#f00", 0);
// //
context.font = "14px 宋体"; context.font = "18px 宋体";
context.textBaseline = "middle"; // context.textBaseline = "middle"; //
context.textAlign = "center"; // context.textAlign = "center"; //
context.lineWidth = 1; context.lineWidth = 1;
context.strokeStyle = "#f00"; context.strokeStyle = "#ff2f2f";
context.strokeText(text, width, height + 50); context.strokeText(text, width, height + 50);
// //
context.translate(width, height); // , context.translate(width, height); // ,
context.font = "14px 宋体"; context.font = "16px 宋体";
let count = companyName.length; // let count = companyName.length; //
let angle = (4 * Math.PI) / (3 * (count - 1)); // let angle = (4 * Math.PI) / (3 * (count - 1)); //
let chars = companyName.split(""); let chars = companyName.split("");
@ -1330,6 +1329,7 @@ export default {
context.save(); context.save();
context.translate(65, 0); // ,x context.translate(65, 0); // ,x
context.rotate(Math.PI / 2); // 90,x context.rotate(Math.PI / 2); // 90,x
context.strokeStyle = "#ff5050"; //
context.strokeText(c, 0, 0); // context.strokeText(c, 0, 0); //
context.restore(); context.restore();
} }

View File

@ -218,6 +218,12 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="是否完成维修" prop="isFinished" align="center" width="150">
<template slot-scope="scope">
<div v-if="scope.row.isFinished==1" style="color: green;">{{ "已完成" }}</div>
<div v-if="scope.row.isFinished==0" style="color: red;">{{ "未完成" }}</div>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" width="300px"> <el-table-column label="操作" align="center" width="300px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -1099,7 +1105,23 @@ export default {
{ label: "自然损坏", id: 0 }, { label: "自然损坏", id: 0 },
{ label: "人为损坏", id: 1 }, { label: "人为损坏", id: 1 },
], // ], //
scrapRules: {}, scrapRules: {
scrapType: [
{
required: true,
message: "请选择损坏原因",
trigger: "change",
},
],
scrapReason: [
{
required: true,
message: "请输入报废原因",
trigger: "blur",
},
],
},
// //
deviceTypeTree: [], // deviceTypeTree: [], //
// //
@ -1412,6 +1434,9 @@ export default {
this.repairRowData.repairDeviceList.length > 0 this.repairRowData.repairDeviceList.length > 0
) { ) {
this.repairDeviceList = this.repairRowData.repairDeviceList; this.repairDeviceList = this.repairRowData.repairDeviceList;
// this.repairDeviceList.forEach((item) => {
// item.isFinished = item.status == 1 ? 1 : 0;
// });
} }
}, },
filterTree(nodes) { filterTree(nodes) {
@ -1536,9 +1561,10 @@ export default {
this.fileList.splice(sum, 1); this.fileList.splice(sum, 1);
}, },
// //
async saveSubmit() { saveSubmit() {
this.uploadKey = Date.now(); this.uploadKey = Date.now();
this.$refs["scrapForm"].validate(async(valid) => {
if(valid){
if(this.fileList.length!=0){ if(this.fileList.length!=0){
await this.getImaUpload(), await this.getImaUpload(),
await this.addWaitRepairPic(this.scrapForm); await this.addWaitRepairPic(this.scrapForm);
@ -1547,8 +1573,10 @@ export default {
} }
this.scrapRowData.repairType = 3 this.scrapRowData.repairType = 3
this.scrapRowData.codeScrapRepairPartList.push(this.scrapForm) this.scrapRowData.codeScrapRepairPartList.push(this.scrapForm)
this.scrapRowData.status = 1
this.openScrap = false; this.openScrap = false;
}
})
// this.reset(); // this.reset();
}, },
@ -1597,6 +1625,7 @@ export default {
// //
openInnerDialog(row) { openInnerDialog(row) {
console.log('111111111',row)
this.innerRowData = row; this.innerRowData = row;
this.partTableList = []; this.partTableList = [];
if ( if (
@ -1719,8 +1748,13 @@ export default {
this.innerRowData.partTableList.forEach((item) => { this.innerRowData.partTableList.forEach((item) => {
this.innerRowData.codeInRepairPartList.push(item); this.innerRowData.codeInRepairPartList.push(item);
}); });
if(this.partTableList.length==0) {
this.$message.error("请添加配件!");
return;
}else{
this.innerRowData.status = 1;
this.openInner = false; this.openInner = false;
}
// console.log(this.equipmentList) // console.log(this.equipmentList)
}, },
@ -1805,6 +1839,7 @@ export default {
this.backRowData.backTableList.forEach((item) => { this.backRowData.backTableList.forEach((item) => {
this.backRowData.codeOutRepairPartList.push(item); this.backRowData.codeOutRepairPartList.push(item);
}); });
this.backRowData.status = 1;
this.openBack = false; this.openBack = false;
} }
}); });
@ -1826,7 +1861,6 @@ export default {
// - // -
openScrapDialog(row) { openScrapDialog(row) {
console.log('row11',row)
this.scrapRowData = row; this.scrapRowData = row;
this.scrapForm = {}; this.scrapForm = {};
this.openScrap = true; this.openScrap = true;