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() {
this.download(
"/material/base/dic/export",
"/material/bm_unit_type/export",
{
...this.queryParams,
dataCondition: this.ids,

View File

@ -267,150 +267,103 @@
@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>
<!-- 验收单弹窗 -->
<el-dialog
:title="title"
:visible.sync="openPrint"
width="1100px"
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>
<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" />
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>使用单位</span>
{{ checkDataInfo.leaseUnit }}
</div>
</div>
<el-table
:data="printTableData"
class="table"
style="margin-top: 20px;width: 1000px; padding-bottom: 1px"
border
>
<el-table-column label="机具名称" align="center" prop="typeName"/>
<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="num" width="40px"/>
<el-table-column label="设备编码" align="center" prop="maCode"/>
<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 label="持荷时间min" align="center" prop="holdingTime" width="80px"/>
<el-table-column label="试验日期" align="center" prop="testTime" />
<el-table-column label="下次试验日期" align="center" prop="nextTestTime" width="120px"/>
<el-table-column label="检验结论" align="center" prop="checkResult" />
<el-table-column label="备注" align="center" prop="remark"/>
</el-table>
<!-- <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;
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%);"></canvas>
</div>
</div>
<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>
</div>
<!-- </vue-easy-print> -->
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="handleExportCheck">导出</el-button>
<el-button type="primary" @click="printCheck"> </el-button>
<el-button @click="closeDialogAndRefresh"> </el-button>
</div>
</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">
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div
@ -511,18 +464,16 @@
</el-table-column>-->
<el-table-column label="规格型号" align="center" prop="typeName" />
<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="manageTypeName"
prop="manageType"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.ma_type_manage_type"
:value="scope.row.manageType"
/>
<span v-if="scope.row.manageType == 0" style="color: blue;" @click="codeInfo(scope.row)">编码出库</span>
<span v-if="scope.row.manageType == 1">数量出库</span>
</template>
</el-table-column>
<!-- <el-table-column-->
@ -560,6 +511,52 @@
<el-button @click="open = false"> </el-button>
</div>
</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>
</template>
@ -574,9 +571,11 @@ import {
applyRemove,
applySend,
applySendAll,
getCheckInfo
} from "@/api/lease/apply";
import vueEasyPrint from "vue-easy-print";
import printJS from 'print-js';
export default {
name: "Home",
@ -638,6 +637,7 @@ export default {
open: false,
printData: {},
printTableData: [],
checkDataInfo: {},
//
supplierStr: "",
@ -646,6 +646,10 @@ export default {
//
leaseApplyData: {},
sendTemp: [],
//
showView: false,
titleView: "",
getListViewInfo: [],
};
},
created() {
@ -761,22 +765,62 @@ export default {
});
},
//
handlePrint(row) {
// this.query.taskId = row.taskId
// this.getPrintTable(row.taskId)
async handlePrint(row) {
const res = await getCheckInfo({id:row.id});
this.idTemp = row.id;
this.checkDataInfo = res.data.leaseApplyInfo;
this.printTableData = res.data.leaseOutVoList;
setTimeout(() => {
this.chapter('检验专用章', '机具设备分公司')
}, 200);
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) {
this.title = "领料单";
this.open = true;
var ids = row.id;
const res = await getApplyInfo(ids);
console.log(res);
this.leaseApplyDetails = res.data.leaseApplyDetailsList;
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: {

View File

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

View File

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