bonus-ui/src/views/material/lease/apply/component/homeApply.vue

978 lines
28 KiB
Vue
Raw Normal View History

2024-11-11 12:12:48 +08:00
<template>
<div>
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="日期">
<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 label="关键字" prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
2024-11-14 12:57:47 +08:00
<el-form-item label="状态" prop="taskStatus">
2024-11-11 16:16:55 +08:00
<el-select
2024-11-14 12:57:47 +08:00
v-model="queryParams.taskStatus"
2024-11-11 16:16:55 +08:00
placeholder="请选择状态"
clearable
filterable
style="width: 240px"
>
<el-option
2024-11-14 12:57:47 +08:00
v-for="dict in dict.type.lease_task_status"
2024-11-11 16:16:55 +08:00
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
2024-11-11 12:12:48 +08:00
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
2024-11-14 08:49:14 +08:00
>搜索
</el-button>
2024-11-11 12:12:48 +08:00
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
2024-11-14 08:49:14 +08:00
>重置
</el-button>
2024-11-11 12:12:48 +08:00
</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="handleAdd"
2024-11-14 08:49:14 +08:00
>领料申请
</el-button>
2024-11-11 12:12:48 +08:00
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-plus"
size="mini"
2024-11-12 15:05:17 +08:00
@click="handleSendAll"
2024-11-14 08:49:14 +08:00
>发布
</el-button>
2024-11-11 12:12:48 +08:00
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
2024-11-14 08:49:14 +08:00
>导出
</el-button>
2024-11-11 12:12:48 +08:00
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
2024-11-12 15:05:17 +08:00
<el-table
v-loading="loading"
:data="typeList"
row-key="id"
@selection-change="handleSelectionChange"
border
>
2024-11-14 08:49:14 +08:00
<el-table-column
type="selection"
width="55"
align="center"
:selectable="selectable"
/>
2024-11-22 14:07:50 +08:00
<el-table-column width="60" align="center" label="序号" type="index" >
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
2024-11-11 12:12:48 +08:00
<el-table-column
align="center"
2024-12-23 18:33:34 +08:00
width="100"
2024-11-11 12:12:48 +08:00
label="申请时间"
2024-11-13 14:00:32 +08:00
prop="createTime"
2024-12-23 18:33:34 +08:00
2024-11-11 12:12:48 +08:00
/>
<el-table-column
label="申请人"
2024-12-23 18:33:34 +08:00
width="100"
2024-11-11 12:12:48 +08:00
align="center"
2024-11-13 14:00:32 +08:00
prop="createBy"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁单位"
align="center"
2024-11-13 14:00:32 +08:00
prop="leaseUnit"
2024-12-23 18:33:34 +08:00
width="150px"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁工程"
align="center"
2024-11-13 14:00:32 +08:00
prop="leaseProject"
2024-12-23 18:33:34 +08:00
width="150px"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
/>
2024-12-23 18:33:34 +08:00
<el-table-column
2024-11-11 12:12:48 +08:00
label="领料物资类型"
align="center"
2024-12-23 18:33:34 +08:00
prop="maTypeNames"
2024-11-11 16:16:55 +08:00
width="110px"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
2024-12-23 18:33:34 +08:00
/>
2024-11-11 12:12:48 +08:00
<el-table-column
label="协议号"
align="center"
2024-11-13 14:00:32 +08:00
prop="agreementCode"
2024-12-23 18:33:34 +08:00
width="140"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁申请单号"
align="center"
2024-11-13 14:00:32 +08:00
prop="code"
2024-12-23 18:33:34 +08:00
width="140px"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="领料人"
align="center"
2024-11-13 14:00:32 +08:00
prop="leasePerson"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
/>
<el-table-column
label="领料人电话"
align="center"
2024-11-13 14:00:32 +08:00
prop="phone"
2024-11-11 12:12:48 +08:00
width="120px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
2024-11-14 12:57:47 +08:00
prop="taskStatus"
2024-11-11 12:12:48 +08:00
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<dict-tag
2024-11-14 12:57:47 +08:00
:options="dict.type.lease_task_status"
:value="scope.row.taskStatus"
2024-11-11 12:12:48 +08:00
/>
</template>
</el-table-column>
<el-table-column
label="备注"
align="center"
width="100"
prop="remark"
:show-overflow-tooltip="true"
/>
2024-11-11 16:16:55 +08:00
<el-table-column label="操作" align="center" width="300">
2024-11-11 12:12:48 +08:00
<template slot-scope="scope">
<el-button
size="mini"
style="margin-bottom: 10px"
type="normal"
@click="handleView(scope.row)"
2024-11-14 08:49:14 +08:00
>查看
</el-button>
2024-11-11 12:12:48 +08:00
<el-button
size="mini"
style="margin-bottom: 10px"
type="primary"
@click="handleUpdate(scope.row)"
2024-11-14 15:30:10 +08:00
v-if="scope.row.taskStatus == 1"
2024-11-11 12:12:48 +08:00
v-hasPermi="['purchase:info:edit']"
2024-11-14 08:49:14 +08:00
>编辑
</el-button>
2024-11-11 12:12:48 +08:00
<el-button
size="mini"
style="margin-bottom: 10px"
type="success"
2024-11-12 10:28:11 +08:00
@click="handleSend(scope.row)"
2024-11-14 12:57:47 +08:00
v-if="scope.row.taskStatus == 1"
2024-11-11 12:12:48 +08:00
v-hasPermi="['purchase:person:notice']"
2024-11-14 08:49:14 +08:00
>发布
</el-button>
2024-11-14 15:30:10 +08:00
<el-button
size="mini"
type="warning"
v-if="scope.row.taskStatus != 1"
2024-11-14 15:30:10 +08:00
@click="handleLld(scope.row)"
2024-11-14 08:49:14 +08:00
>领料单
</el-button>
2024-11-14 15:30:10 +08:00
<el-button
size="mini"
type="warning"
@click="handlePrint(scope.row)"
v-if="scope.row.taskStatus == 4"
2024-11-14 08:49:14 +08:00
>出库检验单
</el-button>
2024-11-11 12:12:48 +08:00
<el-button
size="mini"
type="danger"
@click="handleDeletePurchase(scope.row)"
2024-11-14 12:57:47 +08:00
v-if="scope.row.taskStatus == 1"
2024-11-11 12:12:48 +08:00
v-hasPermi="['purchase:info:remove']"
2024-11-14 08:49:14 +08:00
>删除
</el-button>
2024-11-11 12:12:48 +08:00
</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: 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>
{{ 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>
<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>
</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>
2024-11-13 16:34:16 +08:00
<!-- 领料单弹窗 -->
2024-12-27 13:36:46 +08:00
<el-dialog :visible.sync="open" width="800px" :title="title" append-to-body>
2024-11-13 16:34:16 +08:00
<div style="height: 500px; overflow-y: scroll; padding: 0 20px">
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
2024-11-14 08:49:14 +08:00
<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;
"
>
2024-11-13 16:34:16 +08:00
<span>领料单位</span>
{{ leaseApplyData.leaseUnit }}
</div>
2024-11-14 08:49:14 +08:00
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
2024-11-13 16:34:16 +08:00
<span>工程名称</span>
{{ leaseApplyData.leaseProject }}
</div>
2025-01-08 09:13:02 +08:00
<div class="item" style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
2024-11-13 16:34:16 +08:00
<span>时间</span>
2025-01-08 09:13:02 +08:00
<span v-if="leaseApplyData.createTime">{{ leaseApplyData.createTime.split(" ")[0] }}</span>
2024-11-13 16:34:16 +08:00
</div>
2024-11-14 08:49:14 +08:00
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
2024-11-13 16:34:16 +08:00
<span>编号</span>
{{ leaseApplyData.code }}
</div>
</div>
2024-11-14 08:49:14 +08:00
<el-table
:data="leaseApplyDetails"
class="table"
border
style="margin-top: 20px; padding: 1px"
>
<el-table-column label="序号" align="center" type="index" />
<el-table-column label="类型名称" align="center" prop="typeName" />
<!-- <el-table-column type="expand">
2024-11-13 16:34:16 +08:00
<template slot-scope="scope">
<div class="nested-table-container">
<el-table :data="scope.row.maTypeDetails" style="width: 100%">
&lt;!&ndash; 子表格的列 &ndash;&gt;
<el-table-column label="序号" align="center" type="index"/>
<el-table-column label="类型名称" align="center" prop="typeName" :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
label="预领数量"
align="center"
prop="preNum"
:show-overflow-tooltip="true"
/>
</el-table>
</div>
</template>
</el-table-column>-->
2024-11-14 08:49:14 +08:00
<el-table-column label="规格型号" align="center" prop="typeName" />
<el-table-column label="计量单位" align="center" prop="unitName" />
2024-12-27 13:36:46 +08:00
<el-table-column label="预领数量" align="center" prop="preNum" />
2024-11-14 08:49:14 +08:00
<el-table-column label="备注" align="center" prop="remark" />
2024-11-13 16:34:16 +08:00
<el-table-column
2024-11-14 08:49:14 +08:00
label="出库方式"
2024-11-13 16:34:16 +08:00
align="center"
2024-12-27 13:36:46 +08:00
prop="manageType"
2024-11-14 08:49:14 +08:00
>
2024-11-13 16:34:16 +08:00
<template slot-scope="scope">
2024-12-27 13:36:46 +08:00
<span v-if="scope.row.manageType == 0" style="color: blue;" @click="codeInfo(scope.row)">编码出库</span>
<span v-if="scope.row.manageType == 1">数量出库</span>
2024-11-13 16:34:16 +08:00
</template>
</el-table-column>
2024-11-14 08:49:14 +08:00
<!-- <el-table-column-->
<!-- label="出库方式"-->
<!-- align="center"-->
<!-- prop="manageTypeName"-->
<!-- />-->
2024-11-13 16:34:16 +08:00
</el-table>
2024-11-14 08:49:14 +08:00
<div
class="fillIn"
style="
margin-top: 30px;
display: flex;
justify-content: space-between;
"
>
2024-11-13 16:34:16 +08:00
<div class="item" style="width: 25%">
<span>审核</span>
</div>
<div class="item" style="width: 25%">
<span>领料</span>
</div>
<div class="item" style="width: 25%">
<span>仓库</span>
</div>
<div class="item" style="width: 25%">
2025-01-07 18:27:04 +08:00
<span>制单</span>
2024-11-13 16:34:16 +08:00
</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="open = false"> </el-button>
</div>
</el-dialog>
2024-12-27 13:36:46 +08:00
<!-- 编码管理查看弹窗 -->
<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>
2024-11-11 12:12:48 +08:00
</div>
</template>
<script>
import {
2024-11-11 16:16:55 +08:00
getListLeaseApply,
2024-11-11 12:12:48 +08:00
getPurchaseCheckInfo,
getAcceptanceForm,
purchaseCheckInfoRemove,
2024-11-11 16:16:55 +08:00
queryStatusDataApi,
2024-11-13 16:34:16 +08:00
getApplyInfo,
2024-11-13 16:05:29 +08:00
applyRemove,
2024-11-14 08:49:14 +08:00
applySend,
applySendAll,
getCheckInfo
2024-11-11 16:16:55 +08:00
} from "@/api/lease/apply";
2024-11-11 12:12:48 +08:00
2024-11-14 08:49:14 +08:00
import vueEasyPrint from "vue-easy-print";
import printJS from 'print-js';
2024-11-13 16:34:16 +08:00
2024-11-11 12:12:48 +08:00
export default {
name: "Home",
2024-11-14 12:57:47 +08:00
dicts: ["lease_task_status", "ma_type_manage_type"],
2024-11-11 12:12:48 +08:00
// 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: [],
2024-11-11 16:16:55 +08:00
statusDataRange: [],
2024-11-11 12:12:48 +08:00
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
2024-12-02 12:10:24 +08:00
time: null, //申请时间
2024-11-11 12:12:48 +08:00
keyWord: "",
2024-12-02 12:10:24 +08:00
taskStatus: null, //申请时间
2024-11-11 12:12:48 +08:00
},
form: {
remark: "",
},
// 表单校验
rules: {
remark: [
2024-11-14 08:49:14 +08:00
{ required: true, message: "通知内容不能为空", trigger: "blur" },
2024-11-11 12:12:48 +08:00
],
},
openPrint: false,
2024-11-13 16:34:16 +08:00
open: false,
2024-11-11 12:12:48 +08:00
printData: {},
printTableData: [],
checkDataInfo: {},
2024-11-11 12:12:48 +08:00
// 供应商
supplierStr: "",
2024-11-13 16:34:16 +08:00
//领料单
leaseApplyDetails: [],
// 领料任务详情数据
leaseApplyData: {},
2024-11-14 08:49:14 +08:00
sendTemp: [],
2024-12-27 13:36:46 +08:00
// 编码管理查看弹窗
showView: false,
titleView: "",
getListViewInfo: [],
2024-11-11 12:12:48 +08:00
};
},
created() {
2024-11-11 16:16:55 +08:00
// this.getStatusList();
2024-11-11 12:12:48 +08:00
this.getList();
// this.getTypeList()
},
2024-11-13 16:34:16 +08:00
components: { vueEasyPrint },
2024-11-11 12:12:48 +08:00
methods: {
// getTypeList() {
// getTypeList({ level: '3' }).then((response) => {
// this.typesList = response.data
// })
// getTypeList({ level: '4' }).then((response) => {
// this.modelList = response.data
// })
// },
2024-11-12 15:05:17 +08:00
// 多选框选中数据
handleSelectionChange(selection) {
2024-11-14 08:49:14 +08:00
this.sendTemp = [];
2024-11-12 15:05:17 +08:00
this.ids = selection.map((item) => item.id);
2024-11-14 08:49:14 +08:00
selection.forEach((item) => {
this.sendTemp.push({ id: item.id, taskId: item.taskId });
});
2024-11-12 15:05:17 +08:00
this.single = selection.length != 1;
this.multiple = !selection.length;
},
2024-11-11 16:16:55 +08:00
2024-11-14 08:49:14 +08:00
//是否可用勾选框
selectable(row) {
2024-11-14 12:57:47 +08:00
if (row.taskStatus == 1) {
2024-11-14 08:49:14 +08:00
return true;
2024-11-14 12:57:47 +08:00
} else {
return false;
2024-11-14 08:49:14 +08:00
}
},
2024-11-11 12:12:48 +08:00
getList() {
this.loading = true;
const params = {
keyWord: this.queryParams.keyWord,
2024-12-02 12:10:24 +08:00
taskStatus: this.queryParams.taskStatus,
2024-11-11 12:12:48 +08:00
startTime: this.queryParams.time && this.queryParams.time[0],
2024-12-02 12:10:24 +08:00
endTime: this.queryParams.time && this.queryParams.time[1],
2024-11-11 12:12:48 +08:00
pageSize: this.queryParams.pageSize,
pageNum: this.queryParams.pageNum,
2024-12-02 12:10:24 +08:00
statusList:[this.queryParams.taskStatus]
2024-11-11 12:12:48 +08:00
};
2024-11-11 16:16:55 +08:00
getListLeaseApply(this.addDateRange(params)).then((response) => {
2024-11-11 12:12:48 +08:00
this.typeList = response.rows;
this.total = response.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");
},
//获取验收单数据
getPrintTable(taskId) {
2024-11-14 08:49:14 +08:00
getAcceptanceForm({ taskId: taskId }).then((response) => {
2024-11-11 12:12:48 +08:00
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(",");
});
},
//查看验收单
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);
2024-11-11 12:12:48 +08:00
this.openPrint = true;
this.title = "出库检验单";
},
/** 导出按钮操作 */
handleExportCheck() {
this.download(
"/material/lease_apply_info/exportInfo",
{ id:this.idTemp },
`出库检验单_${new Date().getTime()}.xlsx`
);
2024-11-11 12:12:48 +08:00
},
2024-11-13 16:34:16 +08:00
//打开领料单
async handleLld(row) {
2024-12-27 13:36:46 +08:00
this.title = "领料单";
2024-11-14 08:49:14 +08:00
this.open = true;
var ids = row.id;
const res = await getApplyInfo(ids);
this.leaseApplyDetails = res.data.leaseApplyDetailsList;
this.leaseApplyData = res.data.leaseApplyInfo;
},
//出库检验单打印
printCheck() {
printJS({
printable: 'checkId',
type: 'html',
targetStyles: ['*'],
// 其他配置选项
});
},
// 关闭弹窗并刷新页面
closeDialogAndRefresh() {
this.openPrint = false;
2024-11-13 16:34:16 +08:00
},
2024-12-27 13:36:46 +08:00
codeInfo(row) {
this.showView = true;
this.titleView = "查看";
this.getListViewInfo = row.maCodeVoList;
},
//打印
printView() {
this.$refs.remarksPrintRefView.print();
},
2024-11-11 12:12:48 +08:00
//打印
print() {
this.$refs.remarksPrintRef.print();
},
/** 删除按钮操作 */
handleDeletePurchase(row) {
// console.log(row)
2024-11-13 16:05:29 +08:00
let ids = [];
ids.push(row.id);
console.log("ids", ids);
2024-11-11 12:12:48 +08:00
this.$modal
.confirm("是否确认删除所选择的数据项?")
.then(function () {
2024-11-13 16:05:29 +08:00
return applyRemove(ids);
2024-11-11 12:12:48 +08:00
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
2024-11-14 08:49:14 +08:00
.catch(() => {});
2024-11-11 12:12:48 +08:00
},
/** 导出按钮操作 */
handleExport() {
this.download(
2024-11-12 15:05:17 +08:00
"/material/lease_apply_info/export",
2024-11-14 08:49:14 +08:00
{ ...this.queryParams },
2024-11-12 15:05:17 +08:00
`领料申请_${new Date().getTime()}.xlsx`
2024-11-11 12:12:48 +08:00
);
},
2024-11-12 15:05:17 +08:00
//发布按钮
handleSend(row) {
2024-11-14 08:49:14 +08:00
const param = { id: row.id, taskId: row.taskId };
2024-11-13 16:05:29 +08:00
this.$modal
.confirm("是否确认发布所选择的数据项?")
.then(function () {
2024-11-14 08:49:14 +08:00
return applySend(param);
2024-11-13 16:05:29 +08:00
})
.then(() => {
this.getList();
this.$modal.msgSuccess("发布成功");
})
.catch(() => {});
2024-11-12 15:05:17 +08:00
},
handleSendAll() {
if (this.ids.length == 0) {
this.$alert("请至少勾选一个领料申请", "提示", {
type: "warning",
confirmButtonText: "确定",
});
return;
} else {
2024-11-14 08:49:14 +08:00
applySendAll(this.sendTemp).then((response) => {
if (response.code == 200) {
2024-11-13 16:05:29 +08:00
this.$modal.msgSuccess("发布成功");
2024-11-14 08:49:14 +08:00
}
this.getList();
});
2024-11-12 15:05:17 +08:00
}
},
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();
}
2024-11-12 10:28:11 +08:00
},
2024-11-11 12:12:48 +08:00
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>