<template>
|
<div style="padding: 10px; position: relative;">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
|
<el-form-item label="开始日期" style="margin-left: 100px;">
|
<el-date-picker v-model="queryParams.sTime" type="date" placeholder="开始日期" style="width: 150px;">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="结束日期">
|
<el-date-picker v-model="queryParams.eTime" type="date" placeholder="结束日期" style="width: 150px;">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="日期间隔">
|
<el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange"
|
style="width: 150px;">
|
<el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="单据号" prop="HBillNo">
|
<el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery"
|
style="width: 150px;" />
|
</el-form-item>
|
<el-form-item label="车牌号" prop="HPlateNumber">
|
<el-input v-model="queryParams.HPlateNumber" placeholder="请输入车牌号" @keyup.enter.native="handleQuery"
|
style="width: 120px;" />
|
</el-form-item>
|
<el-form-item label="发货通知单" prop="HSourceBillNo">
|
<el-input v-model="queryParams.HSourceBillNo" placeholder="请输入发货通知单" @keyup.enter.native="handleQuery"
|
style="width: 120px;" />
|
</el-form-item>
|
<el-form-item label="物流状态" prop="HBillStatus">
|
<el-select v-model="queryParams.HBillStatus" placeholder="请选择物流状态">
|
<el-option v-for="(item, index) in HBillStatusList" :key="index" :label="item.Name"
|
:value="item.Name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="组织" prop="HOrgID">
|
<el-select v-model="queryParams.HOrgID" placeholder="请选择组织">
|
<el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name"
|
:value="item.ID">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label-width="78px">
|
<el-button type="primary" icon="el-icon-search" @click="handleQuery"> 搜 索</el-button>
|
<el-button icon="el-icon-circle-close" @click="resetQuery">重 置</el-button>
|
</el-form-item>
|
<el-collapse v-model="activeSeach">
|
<el-collapse-item title="更多" name="1">
|
<el-card class="box-card">
|
<el-form-item label="供应商" prop="HSupName">
|
<el-input v-model="queryParams.HSupName" placeholder="请输入供应商名称"
|
@keyup.enter.native="handleQuery" />
|
</el-form-item>
|
<el-form-item label="物料代码" prop="HMaterNumber">
|
<el-input v-model="queryParams.HMaterNumber" placeholder="请输入物料代码"
|
@keyup.enter.native="handleQuery" />
|
</el-form-item>
|
<el-form-item label="物料名称" prop="HMaterName">
|
<el-input v-model="queryParams.HMaterName" placeholder="请输入物料名称"
|
@keyup.enter.native="handleQuery" />
|
</el-form-item>
|
<div slot="header" class="clearfix"><span>过滤</span></div>
|
<div>
|
<el-row>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName1" placeholder="请选择"
|
@change="riqiChange">
|
<span v-for="(item, index) in btList" :key="index">
|
<el-option :label="item.field" :value="item.field"
|
v-if="!item.hide"></el-option>
|
</span>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px;">
|
<el-select v-model="queryParams.Comparator1" placeholder="请选择"
|
@change="riqiChange">
|
<el-option v-for="(item, index) in comparatorList" :key="index"
|
:label="item.label" :value="item.value"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="11">
|
<el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
</el-row>
|
<el-row>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName2" placeholder="请选择"
|
@change="riqiChange">
|
<span v-for="(item, index) in btList" :key="index">
|
<el-option :label="item.field" :value="item.field"
|
v-if="!item.hide"></el-option>
|
</span>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px;">
|
<el-select v-model="queryParams.Comparator2" placeholder="请选择"
|
@change="riqiChange">
|
<el-option v-for="(item, index) in comparatorList" :key="index"
|
:label="item.label" :value="item.value"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="11">
|
<el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
</el-row>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange">
|
<el-option v-for="(item, index) in btList" :key="index" :label="item.field"
|
:value="item.field"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px;">
|
<el-select v-model="queryParams.Comparator" placeholder="请选择"
|
@change="riqiChange">
|
<el-option v-for="(item, index) in comparatorList" :key="index"
|
:label="item.label" :value="item.value"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="11">
|
<el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
</div>
|
</el-card>
|
</el-collapse-item>
|
</el-collapse>
|
</el-form>
|
<el-row :gutter="10" class="mb8" style="margin-top: 10px;">
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
|
id="btn-Add">新增</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="handleEdit(row = rowForm, OperationType = 3, copyType = 0)">编辑</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-document-copy" size="mini" :disabled="single"
|
@click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
|
</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="set_CheckBill(0, form = rowForm)">审核</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="set_CheckBill(1, form = rowForm)">反审核</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
|
@click="handleVolume(rowForm)">维护零单占用体积</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
|
@click="set_ConfirmBill">供应商确认</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="hanleCarOrDriver(form = rowForm)">分配车辆和司机</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="openDataDialog(14, form = rowForm)">分配车辆</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="openDataDialog(15, form = rowForm)">分配司机</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
|
@click="set_ConfirmOtherBill(1)">到厂确认</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
|
@click="set_ConfirmOtherBill(2)">提货确认</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
|
@click="set_ConfirmOtherBill(3)">出厂运输确认</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
|
@click="set_ConfirmOtherBill(4)">到货签收确认</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini"
|
@click="handlePush(row = rowForm, OperationType = 4)">下推(费用结算单)</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="set_CloseBills(1, form = rowForm)">关闭</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="set_CloseBills(2, form = rowForm)">反关闭</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="set_DropBill(1, form = rowForm)">作废</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
|
@click="set_DropBill(2, form = rowForm)">反作废</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
|
</el-col>
|
<!-- <el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-upload" size="mini" :disabled="single"
|
@click="handleFileUpload">附件上传</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-download" size="mini" :disabled="multiple"
|
@click="handleBatchFileDownload">附件下载</el-button>
|
</el-col> -->
|
</el-row>
|
<div class="tableBox" v-loading="loading">
|
<el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
|
@selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick"
|
:row-style="rowStyle" @cell-dblclick="handleDblclick" v-if="tableShow">
|
<template v-for="(item, index) in btList">
|
<el-table-column type="selection" width="55" align="center" :fixed="item.fixed"
|
v-if="item.type == 'checkbox'" :key="index" />
|
<el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
|
:key="item.id" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort"
|
show-overflow-tooltip :fixed="item.fixed">
|
<template slot-scope="{row, column }">
|
<el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
|
<div :style="item.style">
|
<span v-if="column.property.includes('日期')">{{ parseTime(row[column.property],
|
'{y}-{m}-{d}') }}</span>
|
<el-button type="text" @click="handleEdit(row, OperationType = 3)"
|
v-else-if="column.property == '单据号'">{{
|
row.单据号
|
}}</el-button>
|
<span v-else>{{ row[column.label] }}</span>
|
</div>
|
</template>
|
</el-table-column>
|
</template>
|
</el-table>
|
<!-- 记录数、页数、当前页 -->
|
<!-- <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize"
|
@pagination="handleQuery" /> -->
|
<pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" @pagination="getList" />
|
<!-- 列设置 -->
|
<el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
|
<RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
|
</el-dialog>
|
<!-- 编辑 -->
|
<el-dialog title="编辑" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox"
|
@close="close">
|
<Edit :OperationType=OperationType :linterid=this.rowForm.HInterID
|
:HSouceBillType=this.rowForm.HSourceBillType :copyType="copyType" @editClose="editClose"
|
v-if="editShow" />
|
</el-dialog>
|
<!-- 打印 -->
|
<el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
|
<PrintList :linterid='printIds' :MyMsg='printIds' :Type='HBillType' :HModName="HBillType"
|
@rowEditClose="rowSetClose" v-if="printListShow" />
|
<!-- <div>111</div> -->
|
</el-dialog>
|
|
<el-dialog title="维护零单占用体积" :visible.sync="openVolume" width="580px" append-to-body>
|
<el-form ref="form" :model="formVolume" :rules="rulesVolume" label-width="130px">
|
<el-form-item label="单据号">
|
<el-input v-model="formVolume.单据号" placeholder="请输入单据号" disabled />
|
</el-form-item>
|
<el-form-item label="零单占用体积">
|
<el-input-number v-model="formVolume.currentVolume"
|
:placeholder="`零担体积: ${formVolume.零担体积 || 0}`" />
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="set_HScatteredVolumeList">确 定</el-button>
|
<el-button @click="cancelVolume">取 消</el-button>
|
</div>
|
</el-dialog>
|
<!-- 条码明细 -->
|
<BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail" />
|
<!-- 包装容器出入库明细 -->
|
<PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail" />
|
<!-- 下推 -->
|
<el-dialog title="下推运单结算单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox"
|
@close="close">
|
<PayMentOtherBillTranEdit :OperationType='4' :propsData='pushData'
|
:HSouceBillType=this.rowForm.HSourceBillType @editClose="pushClose" v-if="pushShow" />
|
</el-dialog>
|
<el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
|
<GyCar @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCarShow" />
|
<GyDriver @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyDriverShow" />
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="deptClickSub">确 定</el-button>
|
<el-button @click="deptClose">取 消</el-button>
|
</div>
|
</el-dialog>
|
<!-- 分配车辆和司机 -->
|
<el-dialog title="分配车辆和司机" :visible.sync="openCarDriver" width="500px" append-to-body>
|
<el-form ref="carDriverForm" :model="carDriverForm" :rules="carDriverRules" label-width="100px">
|
<el-form-item label="车牌号" prop="CarHNumber">
|
<el-input v-model="carDriverForm.CarHNumber" placeholder="请输入车牌号" />
|
</el-form-item>
|
<el-form-item label="车辆名称" prop="CarHName">
|
<el-input v-model="carDriverForm.CarHName" placeholder="请输入车辆名称" />
|
</el-form-item>
|
<el-form-item label="驾驶员" prop="DriverHName">
|
<el-input v-model="carDriverForm.DriverHName" placeholder="请输入驾驶员" />
|
</el-form-item>
|
<el-form-item label="身份证号" prop="DriverHIDCard">
|
<el-input v-model="carDriverForm.DriverHIDCard" placeholder="请输入身份证号" />
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="submitCarDriver">确 定</el-button>
|
<el-button @click="openCarDriver = false">取 消</el-button>
|
</div>
|
</el-dialog>
|
<!-- 附件上传 -->
|
<el-dialog title="附件上传" :visible.sync="openFileUpload" width="600px" append-to-body>
|
<el-form ref="fileUploadForm" label-width="100px">
|
<el-form-item label="单据号">
|
<el-input v-model="fileUploadForm.billNo" disabled />
|
</el-form-item>
|
<el-form-item label="附件">
|
<el-upload class="upload-demo" ref="fileUpload" :headers="upload.headers" action="http://220.189.218.155:9010/File" :on-preview="handleFilePreview"
|
:on-remove="handleFileRemove" :on-change="handleFileChange" :file-list="fileList" :on-success="handleFileSuccess" :on-error="handleFileError"
|
:limit="10" :on-exceed="handleFileExceed"
|
accept=".jpg,.png,.jpeg,.pdf,.doc,.docx,.xls,.xlsx,.zip,.rar">
|
<el-button size="small" type="primary">点击上传</el-button>
|
<div slot="tip" class="el-upload__tip">
|
支持上传jpg/png/jpeg/pdf/doc/docx/xls/xlsx/zip/rar格式文件,最多10个</div>
|
</el-upload>
|
</el-form-item>
|
<el-form-item label="已上传附件" v-if="uploadedFileList.length > 0">
|
<el-table :data="uploadedFileList" border size="small" max-height="200">
|
<el-table-column label="文件名" prop="name" align="center" show-overflow-tooltip />
|
<el-table-column label="上传时间" prop="uploadTime" align="center" width="150" />
|
<el-table-column label="操作" align="center" width="100">
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click="downloadFile(scope.row)">下载</el-button>
|
<el-button type="text" size="small" style="color: red;"
|
@click="deleteUploadedFile(scope.row, scope.$index)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<!-- <el-button type="primary" @click="submitFileUpload" :loading="fileUploadLoading">上传</el-button> -->
|
<el-button @click="openFileUpload = false">关 闭</el-button>
|
</div>
|
</el-dialog>
|
<!-- 附件批量下载 -->
|
<el-dialog title="附件批量下载" :visible.sync="openBatchDownload" width="900px" append-to-body>
|
<div style="margin-bottom: 10px;">
|
<el-alert :title="`已选择 ${selectedBillCount} 条单据,共 ${batchFileList.length} 个附件`" type="info"
|
show-icon :closable="false" />
|
</div>
|
<el-table :data="batchFileList" border v-loading="batchDownloadLoading" max-height="400"
|
@selection-change="handleBatchFileSelectionChange">
|
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column label="单据号" prop="billNo" align="center" width="150" show-overflow-tooltip />
|
<el-table-column label="文件名" prop="name" align="center" show-overflow-tooltip />
|
<el-table-column label="文件类型" prop="fileType" align="center" width="100" />
|
<el-table-column label="上传时间" prop="uploadTime" align="center" width="150" />
|
<el-table-column label="操作" align="center" width="80">
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click="downloadSingleFile(scope.row)">下载</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="batchDownloadFiles" :loading="batchDownloadLoading"
|
:disabled="selectedBatchFiles.length === 0">批量下载选中</el-button>
|
<el-button type="primary" @click="downloadAllFiles" :loading="batchDownloadLoading">下载全部</el-button>
|
<el-button @click="openBatchDownload = false">关 闭</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import axios from 'axios'
|
import moment from 'moment'; //时间格式化
|
import RowSettings from '@/views/component/rowSettings' //列设置组件
|
import PrintList from '@/views/component/printList' //打印组件
|
import BarCodeDetail from '@/views/component/BarCodeDetail' //条码明细组件
|
import PackStockDetail from '@/views/component/PackStockDetail' //条码明细组件
|
import Edit from '@/views/logistics/transportGPS/Add_Edit_WL_YayBill' //编辑页面组件
|
import PayMentOtherBillTranEdit from "@/views/logistics/WayBillPaymentBill/Pay_WayBillPaymentBillEdit.vue"; //编辑页面组件
|
import GyCar from "@/views/basic/gyCar/gyCarList.vue"
|
import GyDriver from "@/views/system/user/GyDriver.vue"
|
export default {
|
name: 'WL_YayBill',
|
components: { BarCodeDetail, PackStockDetail, Edit, RowSettings, PrintList, PayMentOtherBillTranEdit, GyCar, GyDriver },
|
data() {
|
return {
|
upload: {
|
// 是否显示弹出层
|
open: false,
|
// 弹出层标题
|
title: "",
|
// 是否禁用上传
|
isUploading: false,
|
// 是否更新已经存在的数据
|
updateSupport: 0,
|
// 设置上传的请求头部
|
headers: { 'Content-Type': 'multipart/form-data'},
|
// 上传的地址
|
url: 'http://220.189.218.155:9010/File'
|
},
|
baseURL: process.env.VUE_APP_BASE_API, //后端接口前缀(后端服务器ip地址)
|
HModName: "Cg_ContractTransportBillMainList",
|
HBillType: "WL_YayBill",
|
OperationType: null, //保存类型(新增1修改3)
|
copyType: 0, //复制标记。打开编辑组件时,用于区分编辑还是复制
|
HInterID: null,
|
hPriceTypeList: ['成本价', '结算价'],
|
HBillStatusList:[
|
{ID: 1, Name: "申请中" },
|
{ID: 2, Name: "待供应商确认" },
|
{ID: 3, Name: "指定驾驶员、车辆中" },
|
{ID: 4, Name: "正在前往始发地" },
|
{ID: 5, Name: "提货中" },
|
{ID: 6, Name: "准备离厂" },
|
{ID: 7, Name: "送货中" },
|
{ID: 8, Name: "已签收" },
|
{ID: 9, Name: "已核算" },
|
],
|
rqsgList: [ //日期间隔下拉列表数据
|
{ label: '今天', value: 0 },
|
{ label: '近两天', value: 1 },
|
{ label: '近三天', value: 2 },
|
{ label: '近四天', value: 3 },
|
{ label: '近五天', value: 4 },
|
{ label: '近六天', value: 5 },
|
{ label: '近七天', value: 6 },
|
{ label: '近30天', value: 29 },
|
{ label: '近半年', value: 180 },
|
{ label: '近一年', value: 365 },
|
],
|
organizationList: JSON.parse(sessionStorage.getItem('organizationList')), //组织列表
|
btList: [], //列表表头字段列表
|
comparatorList: [ //运算标识下拉列表
|
{ label: '=', value: '=' },
|
{ label: '>=', value: '>=' },
|
{ label: '>', value: '>' },
|
{ label: '<=', value: '<=' },
|
{ label: '<', value: '<' },
|
{ label: '<>', value: '<>' },
|
{ label: '包含', value: '7' },
|
{ label: '左包含', value: '8' },
|
{ label: '右包含', value: '9' },
|
{ label: '不包含', value: '10' },
|
],
|
|
dialogTitle: '', // 弹窗标题
|
title: "", // 弹出层标题
|
open: false, // 是否显示弹出层
|
loading: true, // 遮罩层
|
rowList: [], // 选中行数据集合
|
activeSeach: '',
|
// addBtnShow: false, //编辑组件容器显示标记
|
editShow: false, //编辑组件容器显示标记
|
openEdit: false, //编辑组件显示标记
|
pushShow: false,
|
openPush: false,
|
pushData: '',
|
openPrintList: false, //打印组件容器显示标记
|
printListShow: false, //打印组件显示标记
|
openBtnHide: false, //按钮组件容器显示标记
|
btnHideShow: false, //按钮组件显示标记
|
openRowHide: false, //列设置组件显示标记
|
rowHideShow: false, //列设置组件容器显示标记
|
barCodeDetailShow: false, //条码明细组件容器显示标记
|
packStockDetailShow: false, //包装容器出入库明细容器显示标记
|
openVolume: false, //维护零单占用体积弹窗标记
|
openData: false, //数据弹窗
|
openCarDriver: false, //分配车辆和司机弹窗标记
|
carDriverForm: { //分配车辆和司机表单
|
CarHNumber: '',
|
CarHName: '',
|
DriverHName: '',
|
DriverHIDCard: ''
|
},
|
carDriverRules: { //分配车辆和司机表单验证
|
CarHNumber: [{ required: true, message: '请输入车牌号', trigger: 'blur' }],
|
CarHName: [{ required: true, message: '请输入车辆名称', trigger: 'blur' }],
|
DriverHName: [{ required: true, message: '请输入驾驶员', trigger: 'blur' }],
|
DriverHIDCard: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
|
},
|
openFileUpload: false, //附件上传弹窗标记
|
fileUploadForm: { //附件上传表单
|
billNo: '',
|
hInterID: 0
|
},
|
fileList: [], //待上传文件列表
|
uploadFiles: [], //待上传文件数据
|
fileUploadLoading: false, //上传加载状态
|
uploadedFileList: [], //已上传文件列表
|
openBatchDownload: false, //批量下载弹窗标记
|
batchFileList: [], //批量下载文件列表
|
selectedBatchFiles: [], //选中的批量下载文件
|
batchDownloadLoading: false, //批量下载加载状态
|
selectedBillCount: 0, //选中的单据数量
|
dialogTypeNum: null, //部门弹窗1,仓库弹窗2
|
gyCarShow: false, //车辆数据组件显示标记
|
gyDriverShow: false, //司机数据组件显示标记
|
deptform: {}, //弹窗选中数据
|
// 查询参数
|
sWhere: '', // 拼接过滤条件
|
queryParams: { // form数据
|
HBillNo: '',
|
HPlateNumber: '',
|
HInitTimeCycle: 29,
|
HSourceBillNo:'',
|
HBillStatus:'',
|
sTime: '',
|
eTime: '',
|
HOrgID: sessionStorage["OrganizationID"] - 0,
|
HSupName: null,
|
HMaterNumber: '',
|
HMaterName: '',
|
ColName1: '',
|
ColName2: '',
|
ColName: '',
|
Comparator1: '',
|
Comparator2: '',
|
Comparator: '',
|
ColContent1: '',
|
ColContent2: '',
|
ColContent: '',
|
},
|
loading: true,
|
tyResList: [],//列表(接口数据)
|
btList: [],//表头列表显示
|
btResList: [],
|
tableData: [],//列表(分页显示)
|
dataList: [],
|
titleData: [],//不需要显示的字段 可扩展
|
pageSizes: [ 50,100, 500, 5000, 50000],
|
page: 1, //page页索引
|
pageSize: 0, //page页面记录数
|
total: 0, //记录合计数
|
tableShow: true, // table显示标记
|
totalNameList: [], // 需要设置合计行的列数组
|
tableData: [], // 列表数据。用于table监听事件
|
ids: [], // 选中行的hmainid数组
|
printIds: '', //打印选择Id字段
|
single: true, // 当选中的行数不为1时为true。用于禁用相关操作
|
multiple: true, // 当选中的行数为0时为true。用于禁用相关操作
|
lastSelectedRowIndex: null, // 用于记录上次点击的行索引
|
lastSelectedRow: null, // 上一次选中的行
|
selectedRow: null, // 当前选中的行
|
rowForm: {}, // 当选中的只有一行时,更新数据为该选中的行。
|
formVolume: {}, // 维护零单占用体积表单。
|
rulesVolume: {}, // 维护零单占用体积表单验证。
|
tyResList: [], // 列表数据,用于导出
|
titleData: ["HInterID", "HEntryID", "HBillStatus", "HMaterID", "HPreventErrMouldID", "HOrgID"], // 不需要显示的字段 可扩展
|
btResList: [], // 列表表头数据。用于列设置
|
dataList: [], // option记录。用于当option数据无效时,用于列设置
|
};
|
},
|
created() {
|
this.riqiChange()
|
this.handleQuery();
|
},
|
|
methods: {
|
|
//#region 设置表头
|
renderHeader(h, { column, $index }) {// 新建一个 span
|
let span = document.createElement(span)// 设置表头名称
|
span.innerText = column.label
|
//临时插入 document
|
document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
|
document.body.removeChild(span)
|
return h(span, column.label)
|
},
|
//#endregion
|
|
//#region 点击行
|
handleRowClick(row, column, event) {
|
this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
|
this.selectedRow = row; // 记录当前选中的行
|
this.lastSelectedRowIndex = this.tableData.indexOf(row);
|
this.$refs.tableData.toggleRowSelection(row);
|
},
|
//#endregion
|
|
//#region 选中行高亮样式
|
rowStyle({ row, rowIndex }) {
|
if (this.ids.includes(row.HInterID)) {
|
return { "background": "#ecf5ff" }
|
}
|
},
|
//#endregion
|
|
//#region 双击行
|
handleDblclick(row, column, cell, event) {
|
this.OperationType = 3
|
this.handleEdit()
|
},
|
//#endregion
|
|
//#region 多选框选中数据
|
handleSelectionChange(selection) {
|
// this.rowForm = {}
|
this.rowList = selection
|
this.ids = selection.map(item => item.HInterID)
|
this.single = selection.length != 1
|
this.multiple = !selection.length
|
if (!this.single) {
|
this.rowForm = selection[0]
|
}
|
},
|
//#endregion
|
|
//#region 根据日期间隔,设置开始日期、结束日期
|
riqiChange() {
|
const end = new Date();
|
const start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
|
const yyyyS = start.getFullYear();
|
const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
|
const ddS = String(start.getDate()).padStart(2, '0');
|
const yyyyE = end.getFullYear();
|
const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
|
const ddE = String(end.getDate()).padStart(2, '0');
|
this.queryParams.sTime = yyyyS + '-' + mmS + '-' + ddS
|
this.queryParams.eTime = yyyyE + '-' + mmE + '-' + ddE
|
},
|
//#endregion
|
|
//#region 重置
|
resetQuery() {
|
this.sWhere = ''
|
this.queryParams = {
|
HBillNo: '',
|
HInitTimeCycle: 29,
|
HSupName: null,
|
HMaterNumber: '',
|
HMaterName: '',
|
ColName1: '',
|
ColName2: '',
|
ColName: '',
|
Comparator1: '',
|
Comparator2: '',
|
Comparator: '',
|
ColContent1: '',
|
ColContent2: '',
|
ColContent: '',
|
}
|
this.riqiChange()
|
this.resetForm("queryForm")
|
this.handleQuery()
|
},
|
//#endregion
|
//#region 权限判断
|
async set_ModCheck(ModRightNameCheck) {
|
var Permission = false;
|
const res = await axios.get(this.$baseUrl + '/LMES/getReportByModRightNameCheck', {
|
params: {
|
"ModRightNameCheck": ModRightNameCheck,
|
"user": sessionStorage["HUserName"],
|
|
},
|
}).then(result => {
|
if (result.data.count != 1) {
|
Permission = true;
|
this.sWhere = this.sWhere + " and 承运商ID =" + sessionStorage["HSupID"]
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#endregion
|
//#region 快速过滤
|
async handleQuery() {
|
this.sWhere = ''
|
await this.set_ModCheck("WLYayBill_SUPQuery")
|
if (this.queryParams.ColName && this.queryParams.Comparator) {
|
var com = "";
|
switch (this.queryParams.Comparator) {
|
case "7":
|
com = "like'%" + this.queryParams.ColContent + "%'";
|
break;
|
case "8":
|
com = "like'%" + this.queryParams.ColContent + "'";
|
break;
|
case "9":
|
com = "like'" + this.queryParams.ColContent + "%'";
|
break;
|
case "10":
|
com = "not like'%" + this.queryParams.ColContent + "%'";
|
break;
|
default:
|
com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName + " " + com;
|
}
|
if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
|
var com1 = "";
|
switch (this.queryParams.Comparator1) {
|
case "7":
|
com1 = "like'%" + this.queryParams.ColContent1 + "%'";
|
break;
|
case "8":
|
com1 = "like'%" + this.queryParams.ColContent1 + "'";
|
break;
|
case "9":
|
com1 = "like'" + this.queryParams.ColContent1 + "%'";
|
break;
|
case "10":
|
com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
|
break;
|
default:
|
com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
|
}
|
if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
|
var com2 = "";
|
switch (this.queryParams.Comparator2) {
|
case "7":
|
com2 = "like'%" + this.queryParams.ColContent2 + "%'";
|
break;
|
case "8":
|
com2 = "like'%" + this.queryParams.ColContent2 + "'";
|
break;
|
case "9":
|
com2 = "like'" + this.queryParams.ColContent2 + "%'";
|
break;
|
case "10":
|
com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
|
break;
|
default:
|
com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
|
}
|
if (this.queryParams.sTime) {
|
this.queryParams.sTime = moment(this.queryParams.sTime).format('YYYY-MM-DD')
|
this.queryParams.eTime = moment(this.queryParams.eTime).format('YYYY-MM-DD')
|
this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.queryParams.sTime + "'" + " and CONVERT(varchar(100),日期, 23) <= '" + this.queryParams.eTime + "'";
|
}
|
if (this.queryParams.HBillNo) {
|
this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
|
}
|
if (this.queryParams.HPlateNumber) {
|
this.sWhere += " and 车牌号 like '%" + this.queryParams.HPlateNumber + "%'";
|
}
|
if (this.queryParams.HSourceBillNo) {
|
this.sWhere += " and 发货通知单号 like '%" + this.queryParams.HSourceBillNo + "%'";
|
}
|
if (this.queryParams.HBillStatus) {
|
this.sWhere += " and 物流状态 like '%" + this.queryParams.HBillStatus + "%'";
|
}
|
|
if (this.queryParams.HOrgID) {
|
this.sWhere += " and HOrgID = '" + this.queryParams.HOrgID + "'";
|
}
|
console.log("swhere", this.sWhere)
|
this.clearData()
|
this.getList()
|
},
|
//#endregion
|
|
//#region 查询
|
getList() {
|
|
if (this.pageSize == 0) {
|
this.pageSize = 50
|
}
|
this.tableShow = false
|
this.loading = true
|
console.log("swhere", this.sWhere)
|
// 列表查询
|
axios.get(this.$baseUrl + '/WLYayBillController/page', {
|
params: {
|
"sWhere": this.sWhere,
|
"user": sessionStorage["HUserName"],
|
"page": this.page,
|
"size": this.pageSize,
|
"Type":3321
|
},
|
}).then(response => {
|
this.tyResList = response.data.data//总数据
|
let data1 = response.data
|
let option = []
|
if (data1.list && data1.list.length > 0) {
|
this.btResList = data1.list //列表表头数据
|
this.total = data1.count;
|
var data = [];//列字段数据
|
var col = [];
|
var totalArray = [];
|
//给空的数组赋值
|
for (var key in data1.list) {//循序遍历数组
|
data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
|
}
|
//在列表左边添加勾选框
|
col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
|
for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
|
if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中 //计算列
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
|
} else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
|
}
|
else {
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
|
}
|
}
|
option.cols = [col]
|
this.dataList = option
|
option.data = data1.data;
|
var result = data1.data;
|
option.data = result;
|
let HModName = this.HModName
|
this.DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, this.dataList);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
//#region 合计行数据处理
|
getSummaries(param) {
|
const { columns, data } = param;
|
const sums = [];
|
columns.forEach((column, index) => {
|
if (index === 0) {
|
sums[index] = '合计';
|
return;
|
}
|
const values = data.map(item => Number(item[column.property]));
|
if (this.totalNameList[index].totalRow) {
|
if (!values.every(value => isNaN(value))) {
|
sums[index] = values.reduce((prev, curr) => {
|
const value = Number(curr);
|
if (!isNaN(value)) {
|
return prev + curr;
|
} else {
|
return prev;
|
}
|
}, 0)
|
|
} else {
|
sums[index] = '';
|
}
|
}
|
}, 1000);
|
return sums;
|
},
|
//#endregion
|
|
//#endregion
|
|
//#region 新增
|
handleAddEdit() {
|
this.rowForm.HInterID = 0
|
this.editShow = true
|
this.openEdit = true
|
},
|
//#endregion
|
|
//#region 编辑
|
handleEdit(row) {
|
this.rowForm = row
|
this.editShow = true
|
this.openEdit = true
|
},
|
editClose(val) {
|
this.open = val
|
this.editShow = false
|
this.openEdit = val
|
this.handleQuery()
|
},
|
//#endregion
|
|
//#region 删除
|
handleDelete() {
|
this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => {
|
axios.get(this.$baseUrl + "/WLYayBillController/deleteBill", {
|
params: { 'HItemID': this.rowForm.HInterID.toString(), 'user': sessionStorage["HUserName"] }
|
}).then(response => {
|
if (response.data.count == 1) {
|
this.handleQuery()
|
this.$modal.msgSuccess("删除成功")
|
} else {
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
}
|
}).catch(error => {
|
console.log(error)
|
this.$modal.msgError("接口请求失败!");
|
});
|
}).catch(() => { })
|
},
|
//#endregion
|
|
//#region 承运商确认
|
set_ConfirmBill() {
|
var confirmMes = "";
|
if (this.rowForm["承运商确认时间"] != null) {
|
confirmMes = "是否更新承运商确认时间?"
|
} else {
|
confirmMes = "是否确认承运商确认时间?"
|
|
}
|
this.$modal.confirm(confirmMes).then(() => {
|
axios.get(this.$baseUrl + "/WLYayBillController/ConfrimBillNo", {
|
params: { 'HInterID': this.rowForm.HInterID.toString(), "IsAudit": 0, 'CurUserName': sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.count == 1) {
|
this.handleQuery()
|
this.$modal.msgSuccess(result.Message)
|
} else {
|
this.$modal.msgError(result.code + result.Message);
|
}
|
}).catch(error => {
|
console.log(error)
|
this.$modal.msgError("接口请求失败!");
|
});
|
}).catch(() => { })
|
|
},
|
//#endregion
|
//#region 其他确认
|
set_ConfirmOtherBill(nums) {
|
var confirmMes = "";
|
if (nums === 1) {
|
confirmMes = "是否确认到厂?"
|
}
|
else if (nums === 2) {
|
confirmMes = "是否确认提货?"
|
}
|
else if (nums === 3) {
|
confirmMes = "是否确认出厂运输?"
|
}
|
else if (nums === 4) {
|
confirmMes = "是否确认到货签收?"
|
} else {
|
confirmMes = "是否确认承运商确认时间?"
|
}
|
this.$modal.confirm(confirmMes).then(() => {
|
axios.get(this.$baseUrl + "/WLYayBillController/ConfrimOtherBillNo", {
|
params: { 'HInterID': this.rowForm.HInterID.toString(), "IsAudit": nums, 'CurUserName': sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.count == 1) {
|
this.handleQuery()
|
this.$modal.msgSuccess(result.Message)
|
} else {
|
this.$modal.msgError(result.code + result.Message);
|
}
|
}).catch(error => {
|
console.log(error)
|
this.$modal.msgError("接口请求失败!");
|
});
|
}).catch(() => { })
|
},
|
//#endregion
|
//#region 维护零单占用体积
|
//#region 维护零单占用体积重置
|
resetVolume() {
|
this.formVolume = {
|
HInterID: 0,
|
HEntryID0: 0,
|
currentVolume: 0,
|
|
单据号: ''
|
}
|
},
|
//#endregion
|
//#region 维护零单占用体积重置
|
handleVolume(form) {
|
this.resetVolume()
|
axios.get(this.$baseUrl + "/WLYayBillController/WL_YayBillDetail", {
|
params: { 'HID': form.HInterID }
|
}).then(response => {
|
console.log(response.data.data.h_v_WL_YayBillEdit)
|
// this.formVolume = response.data.data.h_v_WL_YayBillEdit[form.HEntryID-1]
|
this.formVolume = form
|
this.openVolume = true
|
})
|
},
|
//#endregion
|
//#region 下推运单费用
|
SelectPayWayBill() {
|
this.editShow = true
|
this.openEdit = true
|
this.OperationType = 4
|
},
|
//关闭下推页面
|
pushClose(val) {
|
this.open = val
|
this.pushShow = false
|
this.openPush = val
|
this.clearData()
|
this.getList()
|
},
|
//#endregion
|
cancelVolume() {
|
this.openVolume = false
|
this.resetVolume()
|
this.handleQuery()
|
},
|
//#region 维护零单占用体积提交
|
set_HScatteredVolumeList() {
|
axios.get(this.$baseUrl + "/WLYayBillController/updateBillMEs", {
|
params: {
|
'HInterID': this.formVolume.HInterID.toString(),
|
"HEntryID": this.formVolume.HEntryID.toString(),
|
"ScatteredVolume": this.formVolume.currentVolume,
|
'CurUserName': sessionStorage["HUserName"]
|
}
|
}).then(response => {
|
let result = response.data
|
if (result.count == 1) {
|
this.handleQuery()
|
this.openVolume = true
|
this.$modal.msgSuccess(result.Message)
|
} else {
|
this.$modal.msgError(result.code + result.Message);
|
}
|
}).catch(error => {
|
console.log(error)
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#endregion
|
//#endregion
|
//#region 审核/反审核
|
set_CheckBill(num, form) {
|
var InterID = form.hmainid || form.HInterID
|
//逻辑审核方法
|
axios.get(this.$baseUrl + "/WLYayBillController/AuditWLYayBill", {
|
params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.code == 1) {
|
this.$modal.msgSuccess(result.Message);
|
this.handleQuery();
|
}
|
else {
|
this.$modal.msgError("错误:" + result.code + result.Message,);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#endregion
|
//#region 打开下推组件弹窗
|
handlePush() {
|
|
if (this.rowList && this.rowList.length > 0) {
|
var dataArray = [];
|
for (var i = 0; i < this.rowList.length; i++) {
|
if (this.rowList[i].单据状态 != "已审核") {
|
this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
|
return;
|
}
|
if (this.rowList[i].HQtyMust <= 0) {
|
this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
|
return;
|
}
|
var temp = {
|
"HInterID": this.rowList[i].HInterID
|
, "HEntryID": this.rowList[i].HEntryID
|
, "HBillStatus": this.rowList[i].单据状态
|
}
|
dataArray.push(temp);
|
}
|
var datajson = {
|
"data": dataArray
|
};
|
this.pushData = JSON.stringify(datajson)
|
this.pushShow = true
|
this.openPush = true
|
} else {
|
this.$modal.msgError("请选择数据下推!")
|
}
|
},
|
//#endregion
|
//#region 关闭/反关闭
|
set_CloseBills(num) {
|
var InterID = form.hmainid || form.HInterID
|
//逻辑审核方法
|
axios.get(this.$baseUrl + "/Cg_ContractTransportBillEdit/CloseCg_ContractTransportBillEdit", {
|
params: { "HInterID": InterID, "Type": num, "CurUserName": sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.code == 1) {
|
this.$modal.msgSuccess(result.Message);
|
this.handleQuery();
|
}
|
else {
|
this.$modal.msgError("错误:" + result.code + result.Message,);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#endregion
|
//#region 作废/反作废
|
set_DropBill(num) {
|
var InterID = form.hmainid || form.HInterID
|
//逻辑审核方法
|
axios.get(this.$baseUrl + "/Cg_ContractTransportBillEdit/DropCg_ContractTransportBillEdit", {
|
params: { "HInterID": InterID, "Type": num, "CurUserName": sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.code == 1) {
|
this.$modal.msgSuccess(result.Message);
|
this.handleQuery();
|
}
|
else {
|
this.$modal.msgError("错误:" + result.code + result.Message,);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#endregion
|
//#region 列设置
|
handleRowHide() {
|
this.rowHideShow = true
|
this.openRowHide = true
|
},
|
rowSetClose(val) {
|
this.rowHideShow = false
|
this.tableShow = true
|
this.openRowHide = val
|
this.handleQuery()
|
},
|
DisPlay_HideColumn(HModName, user, option, dataOption) {
|
this.totalNameList = []
|
axios.get(this.$baseUrl + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
|
params: {
|
"HModName": HModName,
|
"user": user,
|
},
|
}).then(res => {
|
let data1 = res.data
|
if (data1.data.length != 0) {
|
var dataCol = [];//数据库查询出的列数据
|
var newCols = [[]];//对应数据库列顺序col
|
newCols[0].push(option.cols[0][0]);//放入第一个checkbox
|
dataCol = data1.data[0].HGridString.split(',');
|
//列设置列数与页面列数是否一致
|
if (dataCol.length == option.cols[0].length - 1) {
|
//遍历寻找列设置对应列按顺序插入
|
for (var j = 0; j < option.cols[0].length - 1; j++) {
|
for (var i = 0; i < option.cols[0].length - 1; i++) {
|
var dataCols = dataCol[j].split('|');
|
//选择与datacols相应列进行修改
|
if (option.cols[0][i + 1]["field"] == dataCols[5]) {
|
//隐藏列
|
if (dataCols[1] == 1) {
|
option.cols[0][i + 1]["hide"] = true;
|
}
|
//设置列宽
|
if (dataCols[3] > 0) {
|
option.cols[0][i + 1]["width"] = dataCols[3];
|
}
|
//设置内容字体大小
|
if (data1.data[0].HFontSize != 0) {
|
option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
|
} else {
|
option.cols[0][i + 1]["style"] = "font-size:100%";
|
}
|
//显示列
|
if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
|
option.cols[0][i + 1]["hide"] = false;
|
}
|
//统计列
|
if (dataCols[6] == 1) {
|
option.cols[0][i + 1]["totalRow"] = true;
|
} else {
|
option.cols[0][i + 1]["totalRow"] = false;
|
}
|
//字体所在位置(左 居中 右)
|
switch (dataCols[2]) {
|
case "L":
|
option.cols[0][i + 1]["align"] = "left";
|
break;
|
case "M":
|
option.cols[0][i + 1]["align"] = "center";
|
break;
|
case "R":
|
option.cols[0][i + 1]["align"] = "right";
|
break;
|
}
|
//设置表格title属性显示别名
|
if (dataCols[4] != null && dataCols[4] != "") {
|
option.cols[0][i + 1]["title"] = dataCols[4];
|
}
|
newCols[0].push(option.cols[0][i + 1]);
|
break;
|
}
|
}
|
}
|
//遍历循环后判断对应列数是否一致
|
if (dataCol.length == newCols[0].length - 1) {
|
option.cols = newCols;
|
//取消冻结列
|
for (var i = 1; i < option.cols[0].length - 1; i++) {
|
if (option.cols[0][i + 1]["fixed"] != null) {
|
option.cols[0][i + 1]["fixed"] = null;
|
}
|
else {
|
break;
|
}
|
}
|
//冻结列
|
if (data1.data[0].HFixCols != 0) {
|
for (var i = 0; i < data1.data[0].HFixCols; i++) {
|
if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
|
data1.data[0].HFixCols += 1;
|
}
|
|
option.cols[0][i + 1]["fixed"] = "left";
|
}
|
}
|
//设置列排序
|
for (var i = 1; i < option.cols[0].length; i++) {
|
if (data1.data[0].HSortFlag == "是") {
|
option.cols[0][i]["sort"] = true;
|
}
|
else {
|
option.cols[0][i]["sort"] = false;
|
}
|
}
|
}
|
}
|
this.btList = option.cols[0]
|
this.btList.map(item => {
|
if (!item.hide) {
|
this.totalNameList.push(item)
|
}
|
})
|
// if (data1.data[0].HPageSize == 0) {
|
// this.pageSize = 50
|
// } else {
|
// this.pageSize = data1.data[0].HPageSize
|
// }
|
this.tableData = option.data
|
this.tableShow = true
|
this.loading = false
|
} else {
|
this.btList = dataOption.cols[0]
|
this.btList.map(item => {
|
if (!item.hide) {
|
this.totalNameList.push(item)
|
}
|
})
|
this.tableData = dataOption.data
|
this.tableShow = true
|
this.loading = false
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#endregion
|
|
//#region 按钮设置
|
handleBtnHide() {
|
this.btnHideShow = true
|
this.openBtnHide = true
|
},
|
//#endregion
|
|
//#region 导出
|
handleExport() {
|
const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表
|
const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿
|
this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1"
|
this.$XLSX.writeFile(wb, `Cg_ContractTransportBillMainList_${new Date().getTime()}.xlsx`); // 导出文件
|
},
|
//#endregion
|
|
//#region 打印
|
get_PrintReport() {
|
if (this.ids.length == 0) {
|
this.$modal.msgError("请至少选择一行数据")
|
} else {
|
this.printIds = this.ids.join(',')
|
this.printListShow = true
|
this.openPrintList = true
|
}
|
},
|
//#endregion
|
|
//#region 条码明细
|
get_BarCodeDetail() {
|
// if (this.selectedRow.length !== 1) {
|
// this.$message.warning('请选择一行数据查看条码明细!')
|
// return
|
// }
|
this.barCodeDetailShow = true
|
this.$nextTick(() => {
|
this.$refs.barcodeDetail.open(this.rowForm)
|
})
|
},
|
//#endregion
|
|
//#region 包装容器出入库明细
|
get_PackStockDetail() {
|
// if (this.selectedRow.length !== 1) {
|
// this.$message.warning('请选择一行数据查看条码明细!')
|
// return
|
// }
|
this.packStockDetailShow = true
|
this.$nextTick(() => {
|
this.$refs.packStockDetail.open(this.rowForm)
|
})
|
},
|
//#endregion
|
|
//#region 退出
|
close() {
|
// this.reset()
|
this.tableShow = true
|
this.openEdit = false
|
this.editShow = false
|
this.pushShow = false
|
this.openPush = false
|
this.handleQuery()
|
},
|
//#endregion
|
|
//#region 获取公司名,根据公司进行定制化开发
|
defaintOperationByCompanyName() {
|
var result = false;
|
axios.get(this.$baseUrl + '/Xt_getInfo/getCompanyName').then(response => {
|
var data1 = response.data
|
if (data1.count == 1) {
|
if (data1.data == "水务") {
|
result = true;
|
}
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
return result;
|
},
|
//#endregion
|
//#region 数据弹窗
|
//#region 打开数据列表弹窗
|
openDataDialog(num, row) {
|
this.showReset()
|
if (num == 14) {
|
this.dialogTitle = '车辆列表'
|
this.gyCarShow = true
|
this.openData = true
|
} else if (num == 15) {
|
this.dialogTitle = '司机列表'
|
this.gyDriverShow = true
|
this.openData = true
|
}
|
},
|
//#region 将数据弹窗全部取消加载
|
showReset() {
|
this.gyCarShow = false
|
this.gyDriverShow = false
|
},
|
//#endregion
|
//#endregion
|
|
//#region 弹窗数据双击返回表单赋值事件
|
async dbEmitData(deptRow, num) {
|
let IsAudit = null
|
if (num == 14) {
|
IsAudit = 1
|
} else if (num == 15) {
|
IsAudit = 2
|
}
|
try {
|
console.log(deptRow)
|
const response = await axios.get(this.baseURL + '/WLYayBillController/selectDriver', {
|
params: {
|
"HInterID": this.rowForm.HInterID.toString(),
|
"HcheckID": deptRow.HItemID,
|
"IsAudit": IsAudit,
|
"CurUserName": sessionStorage["HUserName"]
|
},
|
});
|
if (response.data.code == 1) {
|
// return response.data.data[0];
|
if (num == 14) {
|
this.gyCarShow = false
|
this.openData = false
|
this.$modal.msgSuccess(response.data.msg || "车辆添加成功");
|
num = 15
|
this.$nextTick(() => {
|
this.gyDriverShow = true
|
this.openData = true
|
})
|
|
} else if (num == 15) {
|
this.gyDriverShow = false
|
this.openData = false
|
this.$modal.msgSuccess(response.data.msg || "司机添加成功");
|
}
|
} else {
|
this.$modal.msgError(response.data.msg || "请先供应商确认");
|
}
|
} catch (error) {
|
this.$modal.msgError("获取源单数据时发生错误,请稍后重试!");
|
}
|
},
|
//#endregion
|
//#region 弹窗数据单击事件
|
emitData(deptRow, num) {
|
this.dialogTypeNum = num
|
this.deptform = deptRow
|
},
|
//#endregion
|
//#region 弹窗确定事件
|
deptClickSub() {
|
this.dbEmitData(this.deptform, this.dialogTypeNum)
|
this.deptform = {}
|
},
|
//#endregion
|
|
//#region 弹窗取消事件
|
deptClose() {
|
this.deptform = {}
|
this.openData = false
|
},
|
//#endregion
|
//#endregion
|
//#region 分配车辆和司机
|
hanleCarOrDriver(form) {
|
this.carDriverForm = {
|
CarHNumber: '',
|
CarHName: '',
|
DriverHName: '',
|
DriverHIDCard: ''
|
}
|
this.openCarDriver = true
|
},
|
submitCarDriver() {
|
this.$refs.carDriverForm.validate((valid) => {
|
if (valid) {
|
axios({
|
method: 'GET',
|
url: this.baseURL + "WLYayBillController/selectDriver1",
|
params: {
|
"CarHNumber": this.carDriverForm.CarHNumber,
|
"CarHName": this.carDriverForm.CarHName,
|
"DriverHName": this.carDriverForm.DriverHName,
|
"DriverHIDCard": this.carDriverForm.DriverHIDCard,
|
"CurUserName": sessionStorage["HUserName"],
|
"HInterID": this.rowForm.HInterID
|
},
|
}).then(response => {
|
let result = response.data
|
if (result.code == 1) {
|
this.$modal.msgSuccess(result.Message || "分配成功");
|
this.openCarDriver = false
|
this.handleQuery()
|
} else {
|
this.$modal.msgError(result.code + result.Message);
|
}
|
}).catch(error => {
|
console.log(error)
|
this.$modal.msgError("接口请求失败!");
|
});
|
}
|
})
|
},
|
//#endregion
|
//#region 附件上传
|
handleFileUpload() {
|
this.fileUploadForm = {
|
billNo: this.rowForm.单据号,
|
hInterID: this.rowForm.HInterID
|
}
|
this.fileList = []
|
this.uploadFiles = []
|
this.uploadedFileList = []
|
// this.getUploadedFileList()
|
this.openFileUpload = true
|
},
|
handleFileChange(file, fileList) {
|
console.log(file, fileList)
|
|
// this.uploadFiles = fileList
|
},
|
handleFileRemove(file, fileList) {
|
console.log(file, fileList)
|
|
this.uploadFiles = fileList
|
},
|
handleFileSuccess(response, file, fileList){
|
console.log(response, file, fileList)
|
|
},
|
handleFileError(response, file, fileList){
|
console.log(response, file, fileList)
|
},
|
handleFilePreview(file) {
|
|
if (file.url) {
|
window.open(file.url, '_blank')
|
} else if (file.raw) {
|
const url = URL.createObjectURL(file.raw)
|
window.open(url, '_blank')
|
} else {
|
this.$modal.msgWarning('无法预览该文件')
|
}
|
},
|
handleFileExceed(files, fileList) {
|
this.$modal.msgWarning(`当前限制选择 10 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
|
},
|
submitFileUpload() {
|
if (this.uploadFiles.length === 0) {
|
this.$modal.msgWarning('请先选择要上传的文件')
|
return
|
}
|
console.log(this.uploadFiles)
|
this.fileUploadLoading = true
|
const formData = new FormData()
|
this.uploadFiles.forEach(file => {
|
formData.append('files', file.raw)
|
})
|
|
// formData.append('HBillNo', this.fileUploadForm.billNo)
|
formData.append('HInterID', this.fileUploadForm.hInterID)
|
formData.append('HUserName', sessionStorage["HUserName"] || '')
|
// axios.get(this.$baseUrl + '/WLYayBillController/saveFileAddress', formData, {
|
// headers: {
|
// 'Content-Type': 'multipart/form-data'
|
// },
|
// params:{
|
// HInterID:this.fileUploadForm.hInterID,
|
// HFileAddress:this.fileUploadPath + '/' + this.uploadFiles[0].name,
|
// CurUserName:sessionStorage["HUserName"]
|
// }
|
// })
|
axios('', {
|
headers: {
|
'Content-Type': 'multipart/form-data'
|
},
|
methods: 'post',
|
data: formData
|
}).then(response => {
|
console.log(response)
|
this.fileUploadLoading = false
|
if (response.data.code == 1) {
|
this.$modal.msgSuccess(response.data.Message || '文件上传成功')
|
this.fileList = []
|
this.uploadFiles = []
|
this.getUploadedFileList()
|
} else {
|
this.$modal.msgError(response.data.code + response.data.Message || '上传失败')
|
}
|
}).catch(error => {
|
this.fileUploadLoading = false
|
this.$modal.msgError('上传请求失败')
|
console.error('上传错误:', error)
|
})
|
},
|
getUploadedFileList() {
|
axios.get(this.$baseUrl + '/WLYayBillController/GetFileList', {
|
params: {
|
HInterID: this.fileUploadForm.hInterID
|
}
|
}).then(response => {
|
if (response.data.code == 1) {
|
this.uploadedFileList = response.data.data || []
|
}
|
}).catch(error => {
|
console.error('获取文件列表失败:', error)
|
})
|
},
|
downloadFile(row) {
|
if (row.url) {
|
window.open(row.url, '_blank')
|
} else {
|
axios.get(this.$baseUrl + '/WLYayBillController/DownloadFile', {
|
params: {
|
fileId: row.id || row.fileId
|
},
|
responseType: 'blob'
|
}).then(response => {
|
const blob = new Blob([response.data])
|
const url = window.URL.createObjectURL(blob)
|
const link = document.createElement('a')
|
link.href = url
|
link.download = row.name || row.fileName
|
link.click()
|
window.URL.revokeObjectURL(url)
|
}).catch(error => {
|
this.$modal.msgError('下载失败')
|
console.error('下载错误:', error)
|
})
|
}
|
},
|
deleteUploadedFile(row, index) {
|
this.$modal.confirm('确认要删除该文件吗?').then(() => {
|
axios.get(this.$baseUrl + '/WLYayBillController/DeleteFile', {
|
params: {
|
fileId: row.id || row.fileId,
|
HInterID: this.fileUploadForm.hInterID,
|
HUserName: sessionStorage["HUserName"]
|
}
|
}).then(response => {
|
if (response.data.code == 1) {
|
this.$modal.msgSuccess('删除成功')
|
this.uploadedFileList.splice(index, 1)
|
} else {
|
this.$modal.msgError(response.data.Message || '删除失败')
|
}
|
}).catch(error => {
|
this.$modal.msgError('删除请求失败')
|
console.error('删除错误:', error)
|
})
|
}).catch(() => { })
|
},
|
//#endregion
|
//#region 附件批量下载
|
handleBatchFileDownload() {
|
if (this.rowList.length === 0) {
|
this.$modal.msgWarning('请先选择要下载附件的单据')
|
return
|
}
|
this.selectedBillCount = this.rowList.length
|
this.batchFileList = []
|
this.selectedBatchFiles = []
|
this.getBatchFileList()
|
this.openBatchDownload = true
|
},
|
getBatchFileList() {
|
this.batchDownloadLoading = true
|
const interIds = this.rowList.map(item => item.HInterID).join(',')
|
axios.get(this.$baseUrl + '/WLYayBillController/GetBatchFileList', {
|
params: {
|
HInterIDs: interIds
|
}
|
}).then(response => {
|
this.batchDownloadLoading = false
|
if (response.data.code == 1) {
|
this.batchFileList = response.data.data || []
|
} else {
|
this.$modal.msgError(response.data.Message || '获取文件列表失败')
|
}
|
}).catch(error => {
|
this.batchDownloadLoading = false
|
this.$modal.msgError('获取文件列表失败')
|
console.error('获取文件列表错误:', error)
|
})
|
},
|
handleBatchFileSelectionChange(selection) {
|
this.selectedBatchFiles = selection
|
},
|
downloadSingleFile(row) {
|
if (row.url) {
|
window.open(row.url, '_blank')
|
} else {
|
axios.get(this.$baseUrl + '/WLYayBillController/DownloadFile', {
|
params: {
|
fileId: row.id || row.fileId
|
},
|
responseType: 'blob'
|
}).then(response => {
|
const blob = new Blob([response.data])
|
const url = window.URL.createObjectURL(blob)
|
const link = document.createElement('a')
|
link.href = url
|
link.download = row.name || row.fileName
|
link.click()
|
window.URL.revokeObjectURL(url)
|
}).catch(error => {
|
this.$modal.msgError('下载失败')
|
console.error('下载错误:', error)
|
})
|
}
|
},
|
batchDownloadFiles() {
|
if (this.selectedBatchFiles.length === 0) {
|
this.$modal.msgWarning('请先选择要下载的文件')
|
return
|
}
|
this.downloadFiles(this.selectedBatchFiles)
|
},
|
downloadAllFiles() {
|
if (this.batchFileList.length === 0) {
|
this.$modal.msgWarning('没有可下载的文件')
|
return
|
}
|
this.downloadFiles(this.batchFileList)
|
},
|
downloadFiles(fileList) {
|
this.batchDownloadLoading = true
|
const fileIds = fileList.map(item => item.id || item.fileId).join(',')
|
axios.get(this.$baseUrl + '/WLYayBillController/BatchDownloadFiles', {
|
params: {
|
fileIds: fileIds
|
},
|
responseType: 'blob'
|
}).then(response => {
|
this.batchDownloadLoading = false
|
const blob = new Blob([response.data], { type: 'application/zip' })
|
const url = window.URL.createObjectURL(blob)
|
const link = document.createElement('a')
|
link.href = url
|
const now = new Date()
|
const timestamp = `${now.getFullYear()}${(now.getMonth() + 1).toString().padStart(2, '0')}${now.getDate().toString().padStart(2, '0')}_${now.getHours().toString().padStart(2, '0')}${now.getMinutes().toString().padStart(2, '0')}${now.getSeconds().toString().padStart(2, '0')}`
|
link.download = `附件下载_${timestamp}.zip`
|
link.click()
|
window.URL.revokeObjectURL(url)
|
this.$modal.msgSuccess('下载成功')
|
}).catch(error => {
|
this.batchDownloadLoading = false
|
this.$modal.msgError('批量下载失败')
|
console.error('批量下载错误:', error)
|
})
|
},
|
//#endregion
|
//清除选中数据的缓存
|
clearData() {
|
this.ids = []
|
this.multiple = true
|
this.single = true
|
this.OperationType = 0
|
this.copyType = 0
|
},
|
}
|
};
|
</script>
|
<style>
|
.xsckdBox .el-date-editor.el-input {
|
width: 100%;
|
}
|
</style>
|