|
@@ -0,0 +1,2981 @@
|
|
|
+//钢材统计报表
|
|
|
+<template>
|
|
|
+ <div class="purchasFuelNewMonitor">
|
|
|
+ <div class="tableTop">
|
|
|
+ <el-form :inline="true" style="margin-top :5px">
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="screen"
|
|
|
+ placeholder="请选择需筛选的内容"
|
|
|
+ clearable
|
|
|
+ @change="changeScreen"
|
|
|
+ style="width:100px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-input
|
|
|
+ style="width:170px"
|
|
|
+ v-model="input"
|
|
|
+ placeholder="请输入查询条件"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="screen1"
|
|
|
+ placeholder="请选择需筛选的内容"
|
|
|
+ clearable
|
|
|
+ style="width:100px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options1"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-input
|
|
|
+ style="width:170px"
|
|
|
+ v-model="input1"
|
|
|
+ placeholder="请输入查询条件"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <label class="el-form-item__label" style="width: auto;"
|
|
|
+ >订单日期:</label
|
|
|
+ >
|
|
|
+ <el-date-picker
|
|
|
+ v-model="startTime"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width:150px"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ <span>至</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="endTime"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width:150px"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ <el-button type="primary" class="btn" @click="onclick">
|
|
|
+ <i class="el-icon-search"></i>
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="exportAllReportToExcel"
|
|
|
+ >下载Excel</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="refresh">
|
|
|
+ <i class="el-icon-refresh"></i>
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="isShowOperate">
|
|
|
+ <el-button type="primary" @click="checkTrans()"
|
|
|
+ ><i class="el-icon-truck"></i>轨迹</el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="operation()"
|
|
|
+ ><i class="el-icon-edit"></i>更改</el-button
|
|
|
+ >
|
|
|
+ <!-- <el-button type="primary" @click="batchoperation()"
|
|
|
+ ><i class="el-icon-edit"></i>批量更改</el-button
|
|
|
+ > -->
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="checkPoint()"
|
|
|
+ v-if="!notRoutList.includes('checkPoint')"
|
|
|
+ ><i class="el-icon-map-location"></i>实时路径</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="isShowOperate">
|
|
|
+ <el-button type="primary" @click="openReceive()">
|
|
|
+ <i class="el-icon-document"></i>签收抵达</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <label
|
|
|
+ class="el-form-item__label"
|
|
|
+ style="width: auto;font-size: 16px;line-height: auto;"
|
|
|
+ >车数/件数: {{ totalCapacity }}/{{ totalNumber }}
|
|
|
+ </label>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div class="table">
|
|
|
+ <el-table
|
|
|
+ :data="visibleList"
|
|
|
+ :span-method="objectSpanMethod"
|
|
|
+ ref="tableRef"
|
|
|
+ border
|
|
|
+ style="width: 100%; margin-top: 20px"
|
|
|
+ :height="maxHeight"
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ @cell-click="cellClik"
|
|
|
+ @cell-mouse-enter="cellMouse1"
|
|
|
+ @cell-mouse-leave="cellLeave1"
|
|
|
+ @row-click="rowClick"
|
|
|
+ :cell-style="cellStyle"
|
|
|
+ @filter-change="filterChange"
|
|
|
+ :key="saleSteelKey"
|
|
|
+ id="salesLogisticsStat_saleSteelReports_table"
|
|
|
+ individual-panel
|
|
|
+ @resetTable="reset"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ width="50"
|
|
|
+ label="序号"
|
|
|
+ align="center"
|
|
|
+ :resizable="false"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">{{ scope.row.group + 1 }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="orderTime"
|
|
|
+ label="订单日期"
|
|
|
+ width="110px"
|
|
|
+ align="center"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="consigneeName"
|
|
|
+ label="客户"
|
|
|
+ width="160px"
|
|
|
+ align="center"
|
|
|
+ column-key="consigneeName"
|
|
|
+ :filters="filterConsigneeList"
|
|
|
+ sortable
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="areaName"
|
|
|
+ label="销售片区"
|
|
|
+ width="150px"
|
|
|
+ align="center"
|
|
|
+ column-key="saleAreaList"
|
|
|
+ :filters="filterSaleAreaList"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="carrierName"
|
|
|
+ label="承运商"
|
|
|
+ align="center"
|
|
|
+ width="80px"
|
|
|
+ column-key="carrierList"
|
|
|
+ sortable
|
|
|
+ show-overflow-tooltip
|
|
|
+ :filters="filterCarrierList"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="capacityNo"
|
|
|
+ column-key="capacityNo"
|
|
|
+ label="车牌号"
|
|
|
+ align="center"
|
|
|
+ width="90px"
|
|
|
+ sortable
|
|
|
+ show-overflow-tooltip
|
|
|
+ :filters="filterCapacityList"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="materialName"
|
|
|
+ column-key="materialNameList"
|
|
|
+ label="物资名称"
|
|
|
+ align="center"
|
|
|
+ width="150px"
|
|
|
+ sortable
|
|
|
+ :filters="filtermaterialNameList"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="materialSpe"
|
|
|
+ label="物资规格"
|
|
|
+ column-key="materialSpe"
|
|
|
+ align="center"
|
|
|
+ sortable
|
|
|
+ :filters="filtermaterialSpe"
|
|
|
+ width="120px"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="materialNum"
|
|
|
+ label="物资件数"
|
|
|
+ align="center"
|
|
|
+ width="50px"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="addressPlace"
|
|
|
+ label="收货地址"
|
|
|
+ width="250px"
|
|
|
+ sortable
|
|
|
+ column-key="addressPlace"
|
|
|
+ :filters="filteraddressPlace"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="saleRemark"
|
|
|
+ column-key="saleRemark"
|
|
|
+ label="摘要"
|
|
|
+ width="150px"
|
|
|
+ align="center"
|
|
|
+ :filters="filterSaleRemark"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="capacityTel"
|
|
|
+ label="司机电话"
|
|
|
+ width="120px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="tareWeightTime"
|
|
|
+ label="皮重时间"
|
|
|
+ width="130px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="tareWeight" label="皮重" show-overflow-tooltip>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="grossWeightTime"
|
|
|
+ label="毛重时间"
|
|
|
+ width="130px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="grossWeight" label="毛重" show-overflow-tooltip>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="netWeight" label="净重" show-overflow-tooltip>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="isPrintDelivery"
|
|
|
+ label="送货单打印"
|
|
|
+ align="center"
|
|
|
+ width="100px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="outGateTime"
|
|
|
+ column-key="outGateTimeList"
|
|
|
+ label="出厂时间"
|
|
|
+ width="130px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="arrivalAddress"
|
|
|
+ label="抵达地址"
|
|
|
+ width="280px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="arrivalTime" label="抵达时间" width="150px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="receiptAddress"
|
|
|
+ label="签收地址"
|
|
|
+ width="280px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="receiptTime" label="签收时间" width="150px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="priceValue" label="系统建议运价" width="100px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="detailsAmount"
|
|
|
+ label="系统建议运费"
|
|
|
+ width="100px"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="orderNo"
|
|
|
+ label="运输订单号"
|
|
|
+ width="180px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="saler" label="业务员" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="shipperName"
|
|
|
+ label="发货单位"
|
|
|
+ width="170px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="consigneeTel"
|
|
|
+ label="收货客户电话"
|
|
|
+ width="120px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="isSelfMention" label="是否自提" align="center">
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column
|
|
|
+ prop="saleOrderNo"
|
|
|
+ label="销售订单号"
|
|
|
+ width="200px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="closeEntryId"
|
|
|
+ label="金蝶分录ID"
|
|
|
+ width="120px"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <vxe-modal
|
|
|
+ width="80%"
|
|
|
+ height="80%"
|
|
|
+ v-model="isShow3"
|
|
|
+ show-footer
|
|
|
+ show-zoom
|
|
|
+ class="vxeModal"
|
|
|
+ >
|
|
|
+ <div class="demo-image__preview" v-for="(item, i) in srcList" :key="i">
|
|
|
+ <span>{{ item.title }}</span>
|
|
|
+ <el-image
|
|
|
+ :src="item.src"
|
|
|
+ fit="fill"
|
|
|
+ @click.prevent.right="receiveClick(item.src, '抵达')"
|
|
|
+ >
|
|
|
+ <div slot="error" class="image-slot">
|
|
|
+ <span>司机未上传图片</span>
|
|
|
+ </div>
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </vxe-modal>
|
|
|
+ <vxe-modal width="80%" height="80%" v-model="isShow4" show-zoom>
|
|
|
+ <div class="demo-image__preview" v-for="(item, i) in srcList2" :key="i">
|
|
|
+ <el-image
|
|
|
+ :src="item.src"
|
|
|
+ fit="fill"
|
|
|
+ @click.prevent.right="receiveClick(item.src, '签收')"
|
|
|
+ >
|
|
|
+ <div slot="error" class="image-slot">
|
|
|
+ <span>司机未上传图片</span>
|
|
|
+ </div>
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </vxe-modal>
|
|
|
+ </div>
|
|
|
+ <div class="dialog">
|
|
|
+ <el-dialog
|
|
|
+ title="运单详情"
|
|
|
+ :visible.sync="centerDialogVisible"
|
|
|
+ width="90%"
|
|
|
+ center
|
|
|
+ >
|
|
|
+ <div class="steelMapClass">
|
|
|
+ <div class="steelMapClass1">
|
|
|
+ <div class="steelMapClass12">
|
|
|
+ <span>销售订单号:</span>
|
|
|
+ <span>{{ steelMap.saleOrderNo }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass12">
|
|
|
+ <span>订单状态:</span>
|
|
|
+ <span>{{ steelMap.saleOrderStatus }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass12">
|
|
|
+ <span>业务员:</span>
|
|
|
+ <span>{{ steelMap.saler }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass12">
|
|
|
+ <span>客户:</span>
|
|
|
+ <span>{{ steelMap.consigneeName }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass2">
|
|
|
+ <div class="steelMapClass22">
|
|
|
+ <span>收货地址:</span>
|
|
|
+ <el-select
|
|
|
+ v-model="steelMap.addressProvince"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="onchangeProvince"
|
|
|
+ style="width:120px"
|
|
|
+ :disabled="notRoutList.includes('province')"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in provinceList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.addressProvince"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select
|
|
|
+ v-model="steelMap.addressDistrict"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="onchangeCity"
|
|
|
+ style="width:120px"
|
|
|
+ :disabled="notRoutList.includes('city')"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in cityList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.addressDistrict"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select
|
|
|
+ v-model="steelMap.addressTown"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="onchangeCounty"
|
|
|
+ style="width:120px"
|
|
|
+ :disabled="notRoutList.includes('country')"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in countyList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.addressTown"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-autocomplete
|
|
|
+ class="inline-input"
|
|
|
+ v-model="steelMap.place"
|
|
|
+ :fetch-suggestions="querySearch1"
|
|
|
+ placeholder="请输入具体收货地址"
|
|
|
+ :trigger-on-focus="false"
|
|
|
+ @select="handleSelect1"
|
|
|
+ style="width:250px"
|
|
|
+ :disabled="notRoutList.includes('place')"
|
|
|
+ >
|
|
|
+ </el-autocomplete>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ circle
|
|
|
+ @click="addAddressClick"
|
|
|
+ v-if="!notRoutList.includes('addressClick')"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <!-- <div
|
|
|
+ class="steelMapClass23"
|
|
|
+ v-if="
|
|
|
+ (steelMap.carStatus == 4 ||
|
|
|
+ steelMap.carStatus == 5 ||
|
|
|
+ steelMap.carStatus == null) &&
|
|
|
+ !notRoutList.includes('closeOrder')
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-button type="danger" round @click="deleteEasEntryId"
|
|
|
+ >关闭运单</el-button
|
|
|
+ >
|
|
|
+ </div> -->
|
|
|
+ <!-- <div
|
|
|
+ class="steelMapClass23"
|
|
|
+ v-if="
|
|
|
+ steelMap.carStatus == 7 && !notRoutList.includes('closeOrder')
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-button type="danger" round @click="reverseCloseOrder"
|
|
|
+ >反关闭运单</el-button
|
|
|
+ >
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="steelMapClass3">
|
|
|
+ <div class="steelMapClass32">
|
|
|
+ <span>收货客户电话:</span>
|
|
|
+ <el-input
|
|
|
+ v-model="steelMap.consigneeTel"
|
|
|
+ style="width:150px"
|
|
|
+ :disabled="notRoutList.includes('consigeeTel')"
|
|
|
+ ></el-input>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ circle
|
|
|
+ @click="updateconsigneeTel"
|
|
|
+ v-if="!notRoutList.includes('consigeeTel')"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass33">
|
|
|
+ <span>承运商:</span>
|
|
|
+ <el-autocomplete
|
|
|
+ style="width:120px"
|
|
|
+ v-model="steelMap.carrierName"
|
|
|
+ :fetch-suggestions="querySearchCarrier"
|
|
|
+ placeholder="请输入承运商"
|
|
|
+ @select="handleSelectCarrier"
|
|
|
+ :disabled="notRoutList.includes('carrierName')"
|
|
|
+ >
|
|
|
+ </el-autocomplete>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ circle
|
|
|
+ @click="updateTruckCarrierDebounce"
|
|
|
+ v-if="!notRoutList.includes('carrierName')"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass33">
|
|
|
+ <span>车牌号:</span>
|
|
|
+ <el-autocomplete
|
|
|
+ style="width:120px"
|
|
|
+ v-model="steelMap.capacityNo"
|
|
|
+ :fetch-suggestions="querySearch"
|
|
|
+ placeholder="请输入车牌号"
|
|
|
+ @select="handleSelect()"
|
|
|
+ :disabled="
|
|
|
+ notRoutList.includes('capacityNo') &&
|
|
|
+ steelMap.capacityId != null
|
|
|
+ "
|
|
|
+ ></el-autocomplete>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ circle
|
|
|
+ @click="updateCapacityDebounce"
|
|
|
+ v-if="
|
|
|
+ !(
|
|
|
+ notRoutList.includes('capacityNo') &&
|
|
|
+ steelMap.capacityId != null
|
|
|
+ )
|
|
|
+ "
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass33">
|
|
|
+ <span>司机电话:</span>
|
|
|
+ <el-input
|
|
|
+ style="width:120px"
|
|
|
+ v-model="steelMap.capacityTel"
|
|
|
+ placeholder="请输入电话号码"
|
|
|
+ ></el-input>
|
|
|
+ <el-button type="success" circle @click="updateDriverTel"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass4">
|
|
|
+ <div class="steelMapClass42" v-if="steelMap.orderNo != null">
|
|
|
+ <span>运输订单号:</span>
|
|
|
+ <span>{{ steelMap.orderNo }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass43">
|
|
|
+ <span>运单状态:</span>
|
|
|
+ <span>{{ steelMap.orderStatus }}</span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="steelMapClass43"
|
|
|
+ v-if="steelMap.orderStatusTime != null"
|
|
|
+ >
|
|
|
+ <span>状态更新时间:</span>
|
|
|
+ <span>{{ steelMap.orderStatusTime }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass5">
|
|
|
+ <div class="steelMapClass52" v-if="steelMap.arrivalAddress != null">
|
|
|
+ <span>抵达地址:</span>
|
|
|
+ <span>{{ steelMap.arrivalAddress }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass6">
|
|
|
+ <div class="steelMapClass62" v-if="steelMap.receiptAddress != null">
|
|
|
+ <span>签收地址:</span>
|
|
|
+ <span>{{ steelMap.receiptAddress }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="steelMapClass7">
|
|
|
+ <div class="steelMapClass72" v-if="steelMap.priceValue != null">
|
|
|
+ <span>系统建议运价:</span>
|
|
|
+ <span>{{ steelMap.priceValue }}</span>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ circle
|
|
|
+ @click="updateDetailsOrderPrice"
|
|
|
+ v-if="!notRoutList.includes('capacityNo')"
|
|
|
+ >修改</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="table1">
|
|
|
+ <el-table
|
|
|
+ :data="steelMap.mapList"
|
|
|
+ border
|
|
|
+ style="width: 100%; margin-top: 20px"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="materialName"
|
|
|
+ label="物资名称"
|
|
|
+ align="center"
|
|
|
+ width="150px"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="materialSpe"
|
|
|
+ label="物资规格"
|
|
|
+ align="center"
|
|
|
+ sortable
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="materialNum"
|
|
|
+ label="物资件数"
|
|
|
+ align="center"
|
|
|
+ width="200px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <button
|
|
|
+ type="primary"
|
|
|
+ @click="scope.row.materialNum--"
|
|
|
+ style="height:40px"
|
|
|
+ v-if="!notRoutList.includes('materialNum')"
|
|
|
+ >
|
|
|
+ -
|
|
|
+ </button>
|
|
|
+ <input
|
|
|
+ v-model="scope.row.materialNum"
|
|
|
+ style="width:40px;height: 40px;font-size:16px;line-height: 40px;text-align: center;"
|
|
|
+ :disabled="notRoutList.includes('materialNum')"
|
|
|
+ />
|
|
|
+ <button
|
|
|
+ type="primary"
|
|
|
+ @click="scope.row.materialNum++"
|
|
|
+ style="height:40px"
|
|
|
+ v-if="!notRoutList.includes('materialNum')"
|
|
|
+ >
|
|
|
+ +
|
|
|
+ </button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="updateBillOrder(scope.row)"
|
|
|
+ v-if="!notRoutList.includes('materialNum')"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="grossWeight" label="毛重"> </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="grossWeightTime"
|
|
|
+ label="毛重时间"
|
|
|
+ width="130px"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="tareWeight" label="皮重"> </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="tareWeightTime"
|
|
|
+ label="皮重时间"
|
|
|
+ width="130px"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="netWeight" label="净重"> </el-table-column>
|
|
|
+ <el-table-column prop="loadTime" label="装货时间" width="130px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="detailsAmount" label="运费" width="130px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="closeEntryId"
|
|
|
+ label="金蝶分录ID"
|
|
|
+ width="100px"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="分录操作"
|
|
|
+ fixed="right"
|
|
|
+ width="120px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ @click="closeEasEntryId(scope.row)"
|
|
|
+ v-if="
|
|
|
+ scope.row.deletedStatus == null &&
|
|
|
+ !notRoutList.includes('closeEntry')
|
|
|
+ "
|
|
|
+ >关闭分录</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ @click="adverseCloseSaleMaterial(scope.row)"
|
|
|
+ v-if="
|
|
|
+ scope.row.deletedStatus != null &&
|
|
|
+ !notRoutList.includes('closeEntry')
|
|
|
+ "
|
|
|
+ >反关闭分录</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="centerDialogVisible = false">返 回</el-button>
|
|
|
+ </span>
|
|
|
+ <div>
|
|
|
+ <vxe-modal
|
|
|
+ width="549px"
|
|
|
+ height="731px"
|
|
|
+ v-model="isShow"
|
|
|
+ show-zoom
|
|
|
+ show-footer
|
|
|
+ class="vxeModal"
|
|
|
+ title="抵达上传照片"
|
|
|
+ >
|
|
|
+ <div class="demo-image__preview">
|
|
|
+ <div
|
|
|
+ class="demo-image__preview"
|
|
|
+ v-for="(item, index) in srcList"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <span>{{ item.title }}</span>
|
|
|
+ <el-image
|
|
|
+ style="height:731px;text-align:center"
|
|
|
+ :src="item.src"
|
|
|
+ >
|
|
|
+ <div slot="error" class="image-slot">
|
|
|
+ <span>司机未上传抵达图片</span>
|
|
|
+ </div>
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </vxe-modal>
|
|
|
+ <vxe-modal
|
|
|
+ width="549px"
|
|
|
+ height="731px"
|
|
|
+ v-model="isShow2"
|
|
|
+ show-zoom
|
|
|
+ show-footer
|
|
|
+ title="签收上传照片"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="demo-image__preview"
|
|
|
+ v-for="(item, index) in srcList2"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <span>{{ item.title }}</span>
|
|
|
+ <el-image style="height:731px;text-align:center" :src="item.src">
|
|
|
+ <div slot="error" class="image-slot">
|
|
|
+ <span>司机未上传签收图片</span>
|
|
|
+ </div>
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </vxe-modal>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+ <div style="height: 100%">
|
|
|
+ <vxe-modal
|
|
|
+ width="1237"
|
|
|
+ height="731"
|
|
|
+ v-model="value7"
|
|
|
+ show-zoom
|
|
|
+ resize
|
|
|
+ title="轨迹查询"
|
|
|
+ >
|
|
|
+ <template #default>
|
|
|
+ <PathView v-bind.sync="pathOption"></PathView>
|
|
|
+ </template>
|
|
|
+ </vxe-modal>
|
|
|
+ </div>
|
|
|
+ <div style="height:100%">
|
|
|
+ <vxe-modal
|
|
|
+ width="1237"
|
|
|
+ height="731"
|
|
|
+ v-model="value8"
|
|
|
+ show-zoom
|
|
|
+ resize
|
|
|
+ title="实时路径"
|
|
|
+ ><currentLocation :carNumber="carNumber"></currentLocation
|
|
|
+ ></vxe-modal>
|
|
|
+ </div>
|
|
|
+ <el-drawer
|
|
|
+ title="修改详单地址"
|
|
|
+ :visible.sync="dialogFormVisible"
|
|
|
+ size="40%"
|
|
|
+ >
|
|
|
+ 原详单地址
|
|
|
+ <el-input
|
|
|
+ style="width:250px;height: 30px"
|
|
|
+ v-model="originalAddress"
|
|
|
+ disabled
|
|
|
+ ></el-input>
|
|
|
+ <label>原单价</label>
|
|
|
+ <el-input
|
|
|
+ style="width:100px;height: 30px"
|
|
|
+ v-model="originalPriceValue"
|
|
|
+ disabled
|
|
|
+ ></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="addresText"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ style="margin-top: 10px; margin-left: 20px; width: 250px"
|
|
|
+ @keyup.native.enter="selectAddresClick"
|
|
|
+ ></el-input>
|
|
|
+ <el-button type="primary" @click="selectAddresClick"
|
|
|
+ ><i class="el-icon-search"></i>查询</el-button
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <!-- 查询所有的运输单价 -->
|
|
|
+ <dilTable
|
|
|
+ v-bind.sync="Address"
|
|
|
+ @radio-change="currentRadioChange2"
|
|
|
+ :drawer="aaadrawer"
|
|
|
+ ></dilTable>
|
|
|
+ </div>
|
|
|
+ <div class="opreation">
|
|
|
+ <el-button @click="dialogFormVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="makeSure">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
+ <el-dialog
|
|
|
+ title="抵达签收"
|
|
|
+ :visible.sync="arrivalReceiving"
|
|
|
+ :before-close="closeUpload"
|
|
|
+ >
|
|
|
+ <el-form style="margin-left:20%">
|
|
|
+ <el-form-item label="车牌号码">
|
|
|
+ <el-input
|
|
|
+ v-model="capacityNumber"
|
|
|
+ disabled
|
|
|
+ style="width:300px"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="签收地址">
|
|
|
+ <el-input v-model="location" style="width:400px"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="抵达图片(车头、满货箱)" style="">
|
|
|
+ <el-upload
|
|
|
+ ref="arrival"
|
|
|
+ list-type="picture-card"
|
|
|
+ action="/api/v1/otms/addtmstruckArrivalResult"
|
|
|
+ :limit="2"
|
|
|
+ :on-change="fileChange1"
|
|
|
+ :on-preview="handlePictureCardPreview"
|
|
|
+ :on-exceed="exceed"
|
|
|
+ accept=".jpg,.jpeg,.png,.gif,.bmp,.pdf,.JPG,.JPEG,.PBG,.GIF,.BMP,.PDF"
|
|
|
+ :auto-upload="false"
|
|
|
+ >
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="签收图片(空货箱、质保书、签收单)">
|
|
|
+ <el-upload
|
|
|
+ ref="receive"
|
|
|
+ list-type="picture-card"
|
|
|
+ action="null"
|
|
|
+ :limit="11"
|
|
|
+ :on-change="fileChange2"
|
|
|
+ :on-preview="handlePictureCardPreview"
|
|
|
+ :on-exceed="exceed"
|
|
|
+ accept=".jpg,.jpeg,.png,.gif,.bmp,.pdf,.JPG,.JPEG,.PBG,.GIF,.BMP,.PDF"
|
|
|
+ :auto-upload="false"
|
|
|
+ >
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="arrivalAndReceive"
|
|
|
+ :loading="isLoading"
|
|
|
+ style="margin-left:40%"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog :visible.sync="dialogVisible" width="80%">
|
|
|
+ <img width="100%" :src="dialogImageUrl" alt="" />
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { sjTime, isVehicleNumber } from '@/utils/sharedJsFile'
|
|
|
+import { getCookie } from '@/utils/util.js'
|
|
|
+import PathView from './mapTest.vue'
|
|
|
+import currentLocation from './currentLocation.vue'
|
|
|
+import { downloadFile } from '@/utils/base64ToBlob.js'
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ PathView,
|
|
|
+ currentLocation
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ batchAddressProvince: '',
|
|
|
+ batchAddressDistrict: '',
|
|
|
+ batchAddressTown: '',
|
|
|
+ batchPlace: '',
|
|
|
+ centerDialogVisibleBatch: false,
|
|
|
+ reallyList: [],
|
|
|
+ visibleList: [],
|
|
|
+ itemHeight: 30,
|
|
|
+ scrollTop: 0,
|
|
|
+ totalHeight: 0,
|
|
|
+ debounceS: false,
|
|
|
+ carNumber: '',
|
|
|
+ //弹出框
|
|
|
+ centerDialogVisible: false,
|
|
|
+ //根据车序号查询的值
|
|
|
+ steelMap: {},
|
|
|
+ //钢材子表数据
|
|
|
+ steelList: [],
|
|
|
+ drawer: false,
|
|
|
+ isShow3: false,
|
|
|
+ isShow4: false,
|
|
|
+ input: null,
|
|
|
+ screen: '',
|
|
|
+ screen1: '',
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ value: '客户',
|
|
|
+ lable: '客户'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '承运商',
|
|
|
+ lable: '承运商'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '车牌号',
|
|
|
+ lable: '车牌号'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '分录ID',
|
|
|
+ lable: '分录ID'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ options1: [
|
|
|
+ {
|
|
|
+ value: '客户',
|
|
|
+ lable: '客户'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '承运商',
|
|
|
+ lable: '承运商'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '车牌号',
|
|
|
+ lable: '车牌号'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ startTime: null,
|
|
|
+ endTime: null,
|
|
|
+ //合计净重
|
|
|
+ totalNumber: 0,
|
|
|
+ //合计车数
|
|
|
+ totalCapacity: 0,
|
|
|
+ tableTitle: '销售统计报表',
|
|
|
+ capacityList: [],
|
|
|
+ carrierList: [],
|
|
|
+ tableData: [],
|
|
|
+ //筛选条件1(客户)
|
|
|
+ filters1: [],
|
|
|
+ spanArr: [],
|
|
|
+ pos: 0,
|
|
|
+ //需要合并列的名称
|
|
|
+ mergeList: [
|
|
|
+ '选择',
|
|
|
+ '序号',
|
|
|
+ '整车操作',
|
|
|
+ '销售订单状态',
|
|
|
+ '销售订单号',
|
|
|
+ '发货单位',
|
|
|
+ '司机电话',
|
|
|
+ '运输订单号',
|
|
|
+ '签收地址',
|
|
|
+ '签收时间',
|
|
|
+ '抵达地址',
|
|
|
+ '抵达时间',
|
|
|
+ '出厂时间',
|
|
|
+ '进厂时间',
|
|
|
+ '运单状态',
|
|
|
+ '车牌号',
|
|
|
+ '承运商',
|
|
|
+ '客户',
|
|
|
+ '收货地址',
|
|
|
+ '业务员',
|
|
|
+ '送货单打印',
|
|
|
+ '收货客户电话',
|
|
|
+ '是否自提',
|
|
|
+ '订单日期',
|
|
|
+ '短信发送',
|
|
|
+ '销售片区',
|
|
|
+ '抵达时间',
|
|
|
+ '签收时间',
|
|
|
+ '系统建议运价',
|
|
|
+ '摘要'
|
|
|
+ ],
|
|
|
+ //钢材多拼车辆线路ID
|
|
|
+ //索引从1-10为1-10拼路线ID
|
|
|
+ lineSpelling: [
|
|
|
+ 0,
|
|
|
+ 110001,
|
|
|
+ 110002,
|
|
|
+ 110003,
|
|
|
+ 110004,
|
|
|
+ 110005,
|
|
|
+ 110006,
|
|
|
+ 110007,
|
|
|
+ 110008,
|
|
|
+ 110009,
|
|
|
+ 110010
|
|
|
+ ],
|
|
|
+ tableTitle: '销售钢材统计报表',
|
|
|
+ //所有省
|
|
|
+ provinceList: [],
|
|
|
+ //选中的省
|
|
|
+ province: '',
|
|
|
+ //所有市
|
|
|
+ cityList: [],
|
|
|
+ //选中的市
|
|
|
+ city: '',
|
|
|
+ //所有的县(区)
|
|
|
+ countyList: [],
|
|
|
+ //选中的县
|
|
|
+ county: '',
|
|
|
+ //地址输入框的值
|
|
|
+ addresText: '',
|
|
|
+ //已选中省市县
|
|
|
+ address: null,
|
|
|
+ //具体地址
|
|
|
+ place: null,
|
|
|
+ //暂存具体地址
|
|
|
+ place1: null,
|
|
|
+ //省市县Id
|
|
|
+ addressId: null,
|
|
|
+ addressRow: {},
|
|
|
+ srcList: [],
|
|
|
+ src: '',
|
|
|
+ isShow: false,
|
|
|
+ srcList2: [],
|
|
|
+ src2: '',
|
|
|
+ isShow2: false,
|
|
|
+ input1: '',
|
|
|
+ maxHeight: 700,
|
|
|
+ //轨迹窗口
|
|
|
+ value7: false,
|
|
|
+ //实时路径窗口
|
|
|
+ value8: false,
|
|
|
+ pathOption: {
|
|
|
+ orderNumber: '',
|
|
|
+ capacityNumber: '',
|
|
|
+ startPointName: '',
|
|
|
+ endPointName: ''
|
|
|
+ },
|
|
|
+ saleSteelKey: false,
|
|
|
+ tableRowIndex: '',
|
|
|
+ isRowClick: 0,
|
|
|
+ orgCodeList: [
|
|
|
+ 'wuliuyunshubu',
|
|
|
+ 'dagangadmin',
|
|
|
+ 'shichangxinxibu',
|
|
|
+ 'zidonghuabu',
|
|
|
+ 'chengyunshang'
|
|
|
+ ],
|
|
|
+ isShowOperate: false,
|
|
|
+ filterConsigneeList: [],
|
|
|
+ filterCarrierList: [],
|
|
|
+ filterCapacityList: [],
|
|
|
+ filtermaterialNameList: [],
|
|
|
+ filterSaleAreaList: [],
|
|
|
+ filterorderStatus: [],
|
|
|
+ filteraddressPlace: [],
|
|
|
+ filtermaterialSpe: [],
|
|
|
+ filterSaleRemark: [],
|
|
|
+ filterSaleOrderStatus: [],
|
|
|
+ filterMap: {},
|
|
|
+ //权限控制
|
|
|
+ notRoutList: [],
|
|
|
+ location: null,
|
|
|
+ orderNumber: null,
|
|
|
+ capacityNumber: null,
|
|
|
+ arrivalReceiving: false,
|
|
|
+ fileListArrival: [],
|
|
|
+ fileListReceive: [],
|
|
|
+ dialogImageUrl: '',
|
|
|
+ dialogVisible: false,
|
|
|
+ isLoading: false,
|
|
|
+ batchList: [],
|
|
|
+ Address: {
|
|
|
+ requestUrl: '',
|
|
|
+ selectionType: 'radio'
|
|
|
+ },
|
|
|
+ dialogFormVisible: false,
|
|
|
+ addresText: null,
|
|
|
+ originalPriceValue: null,
|
|
|
+ originalAddress: null,
|
|
|
+ aaadrawer: false,
|
|
|
+ downloadCapacityNo: null,
|
|
|
+ ops: {
|
|
|
+ vuescroll: {},
|
|
|
+ scrollPanel: {},
|
|
|
+ rail: {
|
|
|
+ keepShow: true
|
|
|
+ },
|
|
|
+ bar: {
|
|
|
+ hoverStyle: true,
|
|
|
+ onlyShowBarOnScroll: false, //是否只有滚动的时候才显示滚动条
|
|
|
+ background: '#5f9ea0', //滚动条颜色
|
|
|
+ opacity: 0.8, //滚动条透明度
|
|
|
+ 'overflow-x': 'hidden'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ if (this.orgCodeList.includes(getCookie('orgCode'))) {
|
|
|
+ this.isShowOperate = true
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'chengyunshang') {
|
|
|
+ this.notRoutList = [
|
|
|
+ 'checkPoint',
|
|
|
+ 'checkTrans',
|
|
|
+ 'carrierName',
|
|
|
+ 'consigeeTel',
|
|
|
+ 'province',
|
|
|
+ 'city',
|
|
|
+ 'country',
|
|
|
+ 'place',
|
|
|
+ 'addressClick',
|
|
|
+ 'closeOrder',
|
|
|
+ 'materialNum',
|
|
|
+ 'closeEntry',
|
|
|
+ 'capacityNo'
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ //只要涉及提交即必须设计防抖,在初始化时绑定防抖函数
|
|
|
+ this.updateCapacityDebounce = this.debounce(() => {
|
|
|
+ this.updateCapacity()
|
|
|
+ }, 3000)
|
|
|
+ this.updateTruckCarrierDebounce = this.debounce(() => {
|
|
|
+ this.updateTruckCarrier()
|
|
|
+ }, 3000)
|
|
|
+ this.cellMouse1 = this.debounce((row, column, cell) => {
|
|
|
+ this.cellMouse(row, column, cell)
|
|
|
+ }, 100)
|
|
|
+ this.cellLeave1 = this.debounce((row, column, cell) => {
|
|
|
+ this.cellLeave(row, column, cell)
|
|
|
+ }, 100)
|
|
|
+ this.getSteelReport()
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ tableData: {
|
|
|
+ handler(oldVal, newVal) {
|
|
|
+ this.filterListChange()
|
|
|
+ },
|
|
|
+ deep: true,
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ scrollTop: {
|
|
|
+ immediate: true,
|
|
|
+ deep: true,
|
|
|
+ handler(val) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (
|
|
|
+ val >=
|
|
|
+ this.tableData.length * 30 -
|
|
|
+ document.querySelector('.el-table__body-wrapper').offsetHeight -
|
|
|
+ 20
|
|
|
+ ) {
|
|
|
+ val =
|
|
|
+ this.tableData.length * 30 -
|
|
|
+ document.querySelector('.el-table__body-wrapper').offsetHeight
|
|
|
+ }
|
|
|
+ if (val <= 0) {
|
|
|
+ val = 0
|
|
|
+ }
|
|
|
+ document.querySelector(
|
|
|
+ '.el-table__body-wrapper .el-table__body'
|
|
|
+ ).style.transform = `translateY(${val}px)`
|
|
|
+ const start = Math.floor(val / this.itemHeight)
|
|
|
+ this.visibleList = this.tableData.slice(
|
|
|
+ start,
|
|
|
+ start + Math.floor(this.maxHeight / this.itemHeight) + 1
|
|
|
+ )
|
|
|
+ this.getSpanArr(this.visibleList)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {},
|
|
|
+ mounted() {
|
|
|
+ let that = this
|
|
|
+ this.$nextTick(() => {
|
|
|
+ window.onresize = () => {
|
|
|
+ return (() => {
|
|
|
+ this.maxHeight = window.innerHeight - 150
|
|
|
+ })()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.$refs.tableRef.bodyWrapper.addEventListener('scroll', e => {
|
|
|
+ // console.log(e)
|
|
|
+ if (this.debounceS) return
|
|
|
+ this.debounceS = true
|
|
|
+ this.scrollTop = e.target.scrollTop
|
|
|
+ setTimeout(() => {
|
|
|
+ this.debounceS = false
|
|
|
+ }, 70)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ activated() {
|
|
|
+ this.maxHeight = window.innerHeight - 150
|
|
|
+ },
|
|
|
+ computed: {},
|
|
|
+ methods: {
|
|
|
+ receiveClick(src, title) {
|
|
|
+ // this.dialogImageUrl = src
|
|
|
+ downloadFile(src, `${this.downloadCapacityNo}${title}照片`, '.jpg')
|
|
|
+ // this.dialogVisible = true
|
|
|
+ },
|
|
|
+ selectAddresClick() {
|
|
|
+ if (this.addresText) {
|
|
|
+ this.Address.requestUrl =
|
|
|
+ '/api/v1/ams/getAddressDeliveryAddress?apiId=511&con=' +
|
|
|
+ this.addresText
|
|
|
+ } else {
|
|
|
+ this.Address.requestUrl =
|
|
|
+ '/api/v1/ams/getAddressDeliveryAddress?apiId=511&i=' + new Date()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ updateDetailsOrderPrice() {
|
|
|
+ this.originalAddress = this.steelMap.addressPlace
|
|
|
+ this.originalPriceValue = this.steelMap.priceValue
|
|
|
+ console.log("数据是否正确")
|
|
|
+ console.log(this.originalAddress)
|
|
|
+ console.log(this.originalPriceValue)
|
|
|
+ this.Address.requestUrl =
|
|
|
+ '/api/v1/ams/getAddressDeliveryAddress?apiId=511&i=' + new Date()
|
|
|
+ this.dialogFormVisible = true
|
|
|
+ },
|
|
|
+ currentRadioChange2(val) {
|
|
|
+ //若具体地址有值,清空值
|
|
|
+ if (this.place != null) {
|
|
|
+ this.place = null
|
|
|
+ }
|
|
|
+ this.steelMap.placeId = val.placeId
|
|
|
+ this.steelMap.address = val.address
|
|
|
+ this.steelMap.addressId = val.addressId
|
|
|
+ this.steelMap.priceId = val.priceid
|
|
|
+ },
|
|
|
+ makeSure() {
|
|
|
+ //若没有单价Id
|
|
|
+ let mapValue = {
|
|
|
+ orderId: this.steelMap.orderId,
|
|
|
+ priceId: this.steelMap.priceId,
|
|
|
+ placeId: this.steelMap.placeId
|
|
|
+ }
|
|
|
+ //是否确定修改详单地址!
|
|
|
+ this.$confirm('确定修改', '提示', {
|
|
|
+ confirmButtonText: '仅修改单价',
|
|
|
+ cancelButtonText: '修改下货地址和单价',
|
|
|
+ distinguishCancelAndClose: true,
|
|
|
+ type: 'warning',
|
|
|
+ center: true
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ //初始化修改详单地址对话框的信息
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/bms/updateDetailsOrder', mapValue)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ this.$message.success('修改详单单价成功!')
|
|
|
+ //重置未结算详单表单信息
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ } else {
|
|
|
+ this.$message.error('修改详单单价失败,请联系管理员!')
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(action => {
|
|
|
+ if (action === 'cancel') {
|
|
|
+ mapValue.updatePlace = 1
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/bms/updateDetailsOrder', mapValue)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ this.$message.success('修改详单单价和地址成功!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //初始化修改详单地址对话框的信息
|
|
|
+ })
|
|
|
+ },
|
|
|
+ hanleScroll() {
|
|
|
+ console.log('我滚动了')
|
|
|
+ },
|
|
|
+ // batchAddressClick() {
|
|
|
+ // const loading = this.$loading({
|
|
|
+ // lock: true,
|
|
|
+ // text: '正在修改收货地址',
|
|
|
+ // spinner: 'el-icon-loading',
|
|
|
+ // background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ // })
|
|
|
+ // this.batchList.forEach(e => {
|
|
|
+ // e.addressProvince = this.batchAddressProvince
|
|
|
+ // e.addressDistrict = this.batchAddressDistrict
|
|
|
+ // e.place = this.batchPlace
|
|
|
+ // e.isCloseEas = Number(1)
|
|
|
+ // e.isNewCar = Number(1)
|
|
|
+ // e.shipperAddressId = this.addressId
|
|
|
+ // this.axios
|
|
|
+ // .post('/api/v1/ams/updateCarAddress', e)
|
|
|
+ // .then(res => {
|
|
|
+ // if (res.data.code == '200') {
|
|
|
+ // this.$message.success('修改收货地址成功!')
|
|
|
+ // this.getSteelReport()
|
|
|
+ // } else {
|
|
|
+ // this.$message.error('修改失败,请联系管理员!')
|
|
|
+ // this.getSteelReport()
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // .catch(() => {
|
|
|
+ // this.$message.error('修改失败,请联系管理员!')
|
|
|
+ // this.getSteelReport()
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ // },
|
|
|
+ // batchoperation() {
|
|
|
+ // if (this.batchList.length > 0) {
|
|
|
+ // console.log(this.batchList)
|
|
|
+ // this.getAllProvince()
|
|
|
+ // this.onchangeProvince()
|
|
|
+ // this.onchangeCity()
|
|
|
+ // this.centerDialogVisibleBatch = true
|
|
|
+ // } else {
|
|
|
+ // this.$message({
|
|
|
+ // type: 'info',
|
|
|
+ // offset: '250',
|
|
|
+ // message: '请先选择'
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ openReceive() {
|
|
|
+ if (Object.values(this.steelMap).length == 0) {
|
|
|
+ this.$message.warning('请选择需要补录的实绩')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let row = this.steelMap
|
|
|
+ if (!row.outGateTime) {
|
|
|
+ this.$message.warning('该车未出厂,不允许签收')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (row.arrivalAddress) {
|
|
|
+ this.location = row.arrivalAddress
|
|
|
+ } else {
|
|
|
+ this.location = row.addressPlace
|
|
|
+ }
|
|
|
+ this.orderNumber = row.orderNo
|
|
|
+ this.capacityNumber = row.capacityNo
|
|
|
+ this.arrivalReceiving = true
|
|
|
+ },
|
|
|
+ arrivalAndReceive() {
|
|
|
+ if (!this.location) {
|
|
|
+ this.$message.warning('请填写签收地址')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.fileListArrival.length < 2) {
|
|
|
+ this.$message.warning('抵达图至少两张')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.fileListReceive.length < 3) {
|
|
|
+ this.$message.warning('签收图最少三张')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.isLoading = true
|
|
|
+ //上传抵达
|
|
|
+ let formData = new window.FormData()
|
|
|
+ formData.append('file1', this.fileListArrival[0].raw)
|
|
|
+ formData.append('file2', this.fileListArrival[1].raw)
|
|
|
+ formData.append('orderNumber', this.orderNumber)
|
|
|
+ formData.append('resultArrivalAddress', this.location)
|
|
|
+ let options = {
|
|
|
+ // 设置axios的参数
|
|
|
+ url: '/api/v1/otms/addtmstruckArrivalResult',
|
|
|
+ data: formData,
|
|
|
+ method: 'post',
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'multipart/form-data'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.axios(options).then(res => {
|
|
|
+ console.log('arrivalRes:', res)
|
|
|
+ //上传签收
|
|
|
+ let formData = new window.FormData()
|
|
|
+ let request = ''
|
|
|
+ this.fileListReceive.forEach((item, index) => {
|
|
|
+ formData.append('file' + index, item.raw)
|
|
|
+ })
|
|
|
+ formData.append('orderNumber', this.orderNumber)
|
|
|
+ formData.append('resultArrivalAddress', this.location)
|
|
|
+ formData.append('num', request.length)
|
|
|
+ let options = {
|
|
|
+ url: '/api/v1/otms/addTmstruckReceiptResult',
|
|
|
+ data: formData,
|
|
|
+ method: 'post',
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'multipart/form-data'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.axios(options).then(res => {
|
|
|
+ console.log('receiveRes:', res)
|
|
|
+ if (res.data.data == 4) {
|
|
|
+ this.$message.error('新增抵达失败!')
|
|
|
+ this.isLoading = false
|
|
|
+ } else {
|
|
|
+ this.$message.success('上传成功!')
|
|
|
+ this.closeUpload()
|
|
|
+ this.$router.go(0)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ fileChange1(file, fileList) {
|
|
|
+ this.fileListArrival = fileList
|
|
|
+ },
|
|
|
+ fileChange2(file, fileList) {
|
|
|
+ this.fileListReceive = fileList
|
|
|
+ },
|
|
|
+ exceed() {
|
|
|
+ this.$message.warning('超出上传数量!')
|
|
|
+ },
|
|
|
+ handlePictureCardPreview(file) {
|
|
|
+ this.dialogImageUrl = file.url
|
|
|
+ this.dialogVisible = true
|
|
|
+ },
|
|
|
+ closeUpload() {
|
|
|
+ this.arrivalReceiving = false
|
|
|
+ this.isLoading = false
|
|
|
+ this.$refs.arrival.clearFiles()
|
|
|
+ this.$refs.receive.clearFiles()
|
|
|
+ },
|
|
|
+ //防抖函数--防止用户重复点击
|
|
|
+ debounce(func, delay) {
|
|
|
+ let timer = null
|
|
|
+ return function(...args) {
|
|
|
+ if (timer !== null) {
|
|
|
+ clearTimeout(timer)
|
|
|
+ }
|
|
|
+ timer = setTimeout(function() {
|
|
|
+ func.apply(this, args)
|
|
|
+ }, delay)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // handleSelectionChange(selection) {
|
|
|
+ // this.batchList = selection
|
|
|
+ // console.log(selection)
|
|
|
+ // },
|
|
|
+ //筛选
|
|
|
+ filterChange(obj) {
|
|
|
+ //承运商筛选,后续有待优化
|
|
|
+ if (typeof obj.carrierList != 'undefined' && obj.carrierList.length > 0) {
|
|
|
+ this.filterMap.carrierList = obj.carrierList
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.carrierList != 'undefined' &&
|
|
|
+ obj.carrierList.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.carrierList
|
|
|
+ }
|
|
|
+ //物资名称筛选,后续有待优化
|
|
|
+ if (
|
|
|
+ typeof obj.materialNameList != 'undefined' &&
|
|
|
+ obj.materialNameList.length > 0
|
|
|
+ ) {
|
|
|
+ this.filterMap.materialNameList = obj.materialNameList
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.materialNameList != 'undefined' &&
|
|
|
+ obj.materialNameList.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.materialNameList
|
|
|
+ }
|
|
|
+ //车牌号筛选,后续有待优化
|
|
|
+ if (typeof obj.capacityNo != 'undefined' && obj.capacityNo.length > 0) {
|
|
|
+ this.filterMap.capacityList = obj.capacityNo
|
|
|
+ }
|
|
|
+ if (typeof obj.capacityNo != 'undefined' && obj.capacityNo.length == 0) {
|
|
|
+ delete this.filterMap.capacityList
|
|
|
+ }
|
|
|
+ //客户筛选,后续有待优化
|
|
|
+ if (
|
|
|
+ typeof obj.consigneeName != 'undefined' &&
|
|
|
+ obj.consigneeName.length > 0
|
|
|
+ ) {
|
|
|
+ this.filterMap.consigneeNameList = obj.consigneeName
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.consigneeName != 'undefined' &&
|
|
|
+ obj.consigneeName.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.consigneeNameList
|
|
|
+ }
|
|
|
+ //销售片区筛选,后续有待优化
|
|
|
+ if (
|
|
|
+ typeof obj.saleAreaList != 'undefined' &&
|
|
|
+ obj.saleAreaList.length > 0
|
|
|
+ ) {
|
|
|
+ this.filterMap.saleAreaList = obj.saleAreaList
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.saleAreaList != 'undefined' &&
|
|
|
+ obj.saleAreaList.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.saleAreaList
|
|
|
+ }
|
|
|
+ //物资规格筛选
|
|
|
+ if (typeof obj.materialSpe != 'undefined' && obj.materialSpe.length > 0) {
|
|
|
+ this.filterMap.materialSpeList = obj.materialSpe
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.materialSpe != 'undefined' &&
|
|
|
+ obj.materialSpe.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.materialSpeList
|
|
|
+ }
|
|
|
+ //收货地址筛选
|
|
|
+ if (
|
|
|
+ typeof obj.addressPlace != 'undefined' &&
|
|
|
+ obj.addressPlace.length > 0
|
|
|
+ ) {
|
|
|
+ this.filterMap.addressPlaceList = obj.addressPlace
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.addressPlace != 'undefined' &&
|
|
|
+ obj.addressPlace.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.addressPlaceList
|
|
|
+ }
|
|
|
+ if (typeof obj.orderStatus != 'undefined' && obj.orderStatus.length > 0) {
|
|
|
+ this.filterMap.orderStatusList = obj.orderStatus
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.orderStatus != 'undefined' &&
|
|
|
+ obj.orderStatus.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.orderStatusList
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.saleOrderStatus != 'undefined' &&
|
|
|
+ obj.saleOrderStatus.length > 0
|
|
|
+ ) {
|
|
|
+ this.filterMap.saleOrderStatusList = obj.saleOrderStatus
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ typeof obj.saleOrderStatus != 'undefined' &&
|
|
|
+ obj.saleOrderStatus.length == 0
|
|
|
+ ) {
|
|
|
+ delete this.filterMap.saleOrderStatusList
|
|
|
+ }
|
|
|
+ if (typeof obj.saleRemark != 'undefined' && obj.saleRemark.length > 0) {
|
|
|
+ this.filterMap.saleRemarkList = obj.saleRemark
|
|
|
+ }
|
|
|
+ if (typeof obj.saleRemark != 'undefined' && obj.saleRemark.length == 0) {
|
|
|
+ delete this.filterMap.saleRemarkList
|
|
|
+ }
|
|
|
+ // if (obj)
|
|
|
+ this.onclick(this.filterMap)
|
|
|
+ },
|
|
|
+ //控制筛选数组变化
|
|
|
+ filterListChange() {
|
|
|
+ //客户筛选数组
|
|
|
+ let consigneeNameList = this.tableData.map(e => {
|
|
|
+ return e.consigneeName
|
|
|
+ })
|
|
|
+ //承运商筛选数组
|
|
|
+ let carrierNameList = this.tableData.map(e => {
|
|
|
+ return e.carrierName
|
|
|
+ })
|
|
|
+ //车牌号筛选数组
|
|
|
+ let capacityList = this.tableData.map(e => {
|
|
|
+ return e.newCapacityNo
|
|
|
+ })
|
|
|
+ //物资筛选数组
|
|
|
+ let materialNameList = this.tableData
|
|
|
+ .map(e => {
|
|
|
+ return e.materialName
|
|
|
+ })
|
|
|
+ .filter(e => {
|
|
|
+ return e != null
|
|
|
+ })
|
|
|
+ //销售片区筛选数组
|
|
|
+ let saleAreaList = this.tableData
|
|
|
+ .map(e => {
|
|
|
+ return e.areaName
|
|
|
+ })
|
|
|
+ .filter(e => {
|
|
|
+ return e != null
|
|
|
+ })
|
|
|
+ let addressPlaceList = this.tableData
|
|
|
+ .map(e => {
|
|
|
+ return e.addressPlace
|
|
|
+ })
|
|
|
+ .filter(e => {
|
|
|
+ return e != null
|
|
|
+ })
|
|
|
+ let orderStatusList = this.tableData
|
|
|
+ .map(e => {
|
|
|
+ return e.orderStatus
|
|
|
+ })
|
|
|
+ .filter(e => {
|
|
|
+ return e != null
|
|
|
+ })
|
|
|
+ let materialSpeList = this.tableData
|
|
|
+ .map(e => {
|
|
|
+ return e.materialSpe
|
|
|
+ })
|
|
|
+ .filter(e => {
|
|
|
+ return e != null
|
|
|
+ })
|
|
|
+ let saleOrderStatusList = this.tableData.map(e => {
|
|
|
+ return e.saleOrderStatus
|
|
|
+ })
|
|
|
+ let saleRemarkList = this.tableData.map(e => {
|
|
|
+ return e.saleRemark
|
|
|
+ })
|
|
|
+ this.filterConsigneeList = []
|
|
|
+ this.filterCarrierList = []
|
|
|
+ this.filterCapacityList = []
|
|
|
+ this.filtermaterialNameList = []
|
|
|
+ this.filterSaleAreaList = []
|
|
|
+ this.filterorderStatus = []
|
|
|
+ this.filteraddressPlace = []
|
|
|
+ this.filtermaterialSpe = []
|
|
|
+ this.filterSaleOrderStatus = []
|
|
|
+ this.filterSaleRemark = []
|
|
|
+ Array.from(new Set(consigneeNameList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterConsigneeList.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(carrierNameList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterCarrierList.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(capacityList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterCapacityList.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(materialNameList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filtermaterialNameList.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(saleAreaList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterSaleAreaList.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(addressPlaceList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filteraddressPlace.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(orderStatusList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterorderStatus.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(materialSpeList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filtermaterialSpe.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(saleOrderStatusList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterSaleOrderStatus.push(map)
|
|
|
+ })
|
|
|
+ Array.from(new Set(saleRemarkList)).forEach(e => {
|
|
|
+ let map = {}
|
|
|
+ map.text = e
|
|
|
+ map.value = e
|
|
|
+ this.filterSaleRemark.push(map)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ cellStyle({ row, column, rowIndex, columnIndex }) {
|
|
|
+ if (
|
|
|
+ column.property == 'arrivalAddress' ||
|
|
|
+ column.property == 'receiptAddress'
|
|
|
+ ) {
|
|
|
+ return { color: 'blue', height: '30px' }
|
|
|
+ } else {
|
|
|
+ return { height: '30px' }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ rowClick(row, column, event) {
|
|
|
+ this.steelMap = {}
|
|
|
+ this.tableRowIndex = row.group
|
|
|
+ this.isRowClick = 1
|
|
|
+ this.steelMap = row
|
|
|
+ },
|
|
|
+ tableRowClassName({ row, rowIndex }) {
|
|
|
+ if (row.group == this.tableRowIndex && this.tableRowIndex !== '') {
|
|
|
+ return 'warning-row'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cellMouse(row, column, cell, event) {
|
|
|
+ if (this.isRowClick == 0) {
|
|
|
+ this.tableRowIndex = row.group
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cellLeave(row, column, cell, event) {
|
|
|
+ if (this.isRowClick == 0) {
|
|
|
+ this.tableRowIndex = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ reset() {
|
|
|
+ var that = this
|
|
|
+ that.$nextTick(() => {
|
|
|
+ that.saleSteelKey = !that.saleSteelKey
|
|
|
+ })
|
|
|
+ },
|
|
|
+ checkTrans(row) {
|
|
|
+ this.isRowClick = 0
|
|
|
+ if (Object.values(this.steelMap).length == 0) {
|
|
|
+ this.$message.error('请点击需要查看轨迹的行!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (typeof row === 'undefined') {
|
|
|
+ row = this.steelMap
|
|
|
+ }
|
|
|
+ if (row.outGateTime == null) {
|
|
|
+ this.$message.error('该车还未出厂,暂无轨迹')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let that = this
|
|
|
+ that.axios
|
|
|
+ .post('/api/v1/otms/fullPath?orderNumber=' + row.orderNo)
|
|
|
+ .then(res => {
|
|
|
+ console.log(res.data)
|
|
|
+ if (res.data.data == '-1') {
|
|
|
+ this.$message.error('运输订单未关闭的自提车辆无权查看!')
|
|
|
+ } else if (res.data.data.startAndEndRoutes != null) {
|
|
|
+ that.pathOption.orderNumber = row.orderNo
|
|
|
+ that.pathOption.capacityNumber = row.capacityNo
|
|
|
+ that.pathOption.startPointName = '达钢集团小东门'
|
|
|
+ that.pathOption.endPointName = row.arrivalAddress
|
|
|
+ that.value7 = true
|
|
|
+ } else {
|
|
|
+ this.$message.error('车辆没有开启GPS')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ cellClik(row, column, cell, event) {
|
|
|
+ console.log(row)
|
|
|
+ if (column.property == 'arrivalAddress') {
|
|
|
+ if (row.orderNo && row.arrivalAddress) {
|
|
|
+ this.downloadCapacityNo = row.capacityNo
|
|
|
+ this.toPhotoClick(row.orderNo, 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (column.property == 'receiptAddress') {
|
|
|
+ if (row.orderNo && row.receiptAddress) {
|
|
|
+ this.downloadCapacityNo = row.capacityNo
|
|
|
+ this.receipctPhotoClick(row.orderNo, 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //反关闭运单
|
|
|
+ reverseCloseOrder() {
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/reverseCloseOrder', this.steelMap)
|
|
|
+ .then(res => {
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //筛选
|
|
|
+ //筛选客户
|
|
|
+ //点击操作弹出框
|
|
|
+ operation(row) {
|
|
|
+ this.isRowClick = 0
|
|
|
+ if (Object.values(this.steelMap).length == 0) {
|
|
|
+ this.$message.error('请点击需要执行更改操作的行!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (typeof row === 'undefined') {
|
|
|
+ row = this.steelMap
|
|
|
+ }
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/tms/getSteelReportDetailsBySmId?saleOrderMaterialId=' +
|
|
|
+ row.saleOrderMaterialId
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ this.steelMap = res.data.data
|
|
|
+ this.addressId = row.shipperAddressId
|
|
|
+ this.getAllProvince()
|
|
|
+ this.onchangeProvince()
|
|
|
+ this.onchangeCity()
|
|
|
+ this.centerDialogVisible = true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //查看抵达图
|
|
|
+ toPhotoClick(orderNo, num) {
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/otms/getArrivalPhoto?orderNumber=' + orderNo)
|
|
|
+ .then(res => {
|
|
|
+ this.srcList = []
|
|
|
+ this.srcList.push({
|
|
|
+ title: '车头照片',
|
|
|
+ src: res.data[0]
|
|
|
+ })
|
|
|
+ this.srcList.push({
|
|
|
+ title: '满货箱照片',
|
|
|
+ src: res.data[1]
|
|
|
+ })
|
|
|
+ if (num == 1) {
|
|
|
+ this.isShow3 = true
|
|
|
+ } else {
|
|
|
+ this.isShow = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //查看实时路径
|
|
|
+ checkPoint() {
|
|
|
+ if (this.input || this.input1 || this.steelMap.capacityNo) {
|
|
|
+ this.carNumber = this.input || this.input1 || this.steelMap.capacityNo
|
|
|
+ this.value8 = true
|
|
|
+ } else {
|
|
|
+ this.$message.error('请输入或者点击有车牌号的行查询车牌号的实时路径')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //查看签收图
|
|
|
+ receipctPhotoClick(orderNo, num) {
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/otms/getReceivingPhotoByUrl?orderNumber=' + orderNo)
|
|
|
+ .then(res => {
|
|
|
+ console.log(res.data)
|
|
|
+ if (num == 1) {
|
|
|
+ this.isShow4 = true
|
|
|
+ } else {
|
|
|
+ this.isShow2 = true
|
|
|
+ }
|
|
|
+ this.srcList2 = []
|
|
|
+ if (res.data && res.data.length > 0) {
|
|
|
+ res.data.forEach(item => {
|
|
|
+ this.srcList2.push({
|
|
|
+ title: '',
|
|
|
+ src: item
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //反关闭整条分录
|
|
|
+ adverseCloseSaleMaterial(row) {
|
|
|
+ console.log(row.saleMaterialId)
|
|
|
+ this.$confirm('确定反关闭该条分录?', '提示', {
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ center: true
|
|
|
+ }).then(() => {
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/ams/adverseCloseSaleMaterial?saleMaterialId=' +
|
|
|
+ row.saleMaterialId
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('反关闭成功')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ } else {
|
|
|
+ this.$message.error('反关闭失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('反关闭失败')
|
|
|
+ this.getSteelReport()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //销售钢材报表导出excel
|
|
|
+ exportAllReportToExcel() {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在导出Excel',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ var title = this.tableTitle
|
|
|
+ let tHeader = []
|
|
|
+ let filterVal = []
|
|
|
+ console.log(this.$refs.tableRef)
|
|
|
+ this.$refs.tableRef.$children.forEach(item => {
|
|
|
+ if (item.label != undefined && item.prop != undefined) {
|
|
|
+ if (tHeader.indexOf(item.label) === -1) {
|
|
|
+ tHeader.push(item.label)
|
|
|
+ }
|
|
|
+ if (filterVal.indexOf(item.prop) === -1) {
|
|
|
+ filterVal.push(item.prop)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.downloadLoading = true
|
|
|
+ require.ensure([], () => {
|
|
|
+ const {
|
|
|
+ export_json_to_excel
|
|
|
+ } = require('@/assets/excel/Export2Excel.js') //这里必须使用绝对路径,使用@/+存放export2Excel的路径
|
|
|
+ let data = this.tableData.map(v => filterVal.map(j => v[j])) //3.formatJson格式转换
|
|
|
+ export_json_to_excel(tHeader, data, title) // (title)导出的表格名称
|
|
|
+ })
|
|
|
+ loading.close()
|
|
|
+ },
|
|
|
+ changeScreen() {},
|
|
|
+ //承运商弹出层
|
|
|
+ handleSelectCarrier() {
|
|
|
+ this.carrierList.forEach(item => {
|
|
|
+ if (item.carrierName == this.steelMap.carrierName) {
|
|
|
+ this.steelMap.newCarrierId = item.carrierId
|
|
|
+ this.steelMap.carrierId = item.carrierId
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //承运商边输边查
|
|
|
+ querySearchCarrier(queryString, cb) {
|
|
|
+ if (queryString != null && queryString != '' && queryString.length > 1) {
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/uc/getCarrierMesByLike?index=' + queryString)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.carrierList = []
|
|
|
+ if (res.data.data.length == 0) {
|
|
|
+ this.$message.info('承运商不存在,请前往注册')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var restaurants = res.data.data
|
|
|
+ this.carrierList = res.data.data
|
|
|
+ var results = queryString
|
|
|
+ ? restaurants.filter(this.createFilterCarrier(queryString))
|
|
|
+ : restaurants
|
|
|
+ cb(results)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ createFilterCarrier(queryString) {
|
|
|
+ return restaurants => {
|
|
|
+ return (
|
|
|
+ restaurants.value1.toLowerCase().indexOf(queryString.toLowerCase()) >
|
|
|
+ -1
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //以下是车牌号边输边查搜索
|
|
|
+ querySearch(queryString, cb) {
|
|
|
+ console.log(queryString)
|
|
|
+ if (
|
|
|
+ (queryString != null && queryString != '' && queryString.length > 3) ||
|
|
|
+ queryString == '取消' ||
|
|
|
+ queryString == '待定'
|
|
|
+ ) {
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/uc/getCapacityByLike?index=' + queryString)
|
|
|
+ .then(res => {
|
|
|
+ this.capacityList = []
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ if (res.data.data.length == 0) {
|
|
|
+ this.$message.info('车牌号不存在,请前往注册')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var restaurants = res.data.data
|
|
|
+ this.capacityList = res.data.data
|
|
|
+ var results = queryString
|
|
|
+ ? restaurants.filter(this.createFilter(queryString))
|
|
|
+ : restaurants
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ createFilter(queryString) {
|
|
|
+ return restaurants => {
|
|
|
+ return (
|
|
|
+ restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
|
|
|
+ -1
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //车牌号弹出层
|
|
|
+ handleSelect() {
|
|
|
+ this.capacityList.forEach(item => {
|
|
|
+ if (item.capacityNumber === this.steelMap.capacityNo) {
|
|
|
+ this.steelMap.newsCapacityId = item.capacityId
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ updateCapacity() {
|
|
|
+ console.log('我只想测')
|
|
|
+ this.steelMap.capacityId = this.steelMap.newsCapacityId
|
|
|
+ if (this.steelMap.newsCapacityId == null) {
|
|
|
+ this.$message.warning('请先注册车牌号或者选中弹出后再提交!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ !(
|
|
|
+ isVehicleNumber(this.steelMap.capacityNo) ||
|
|
|
+ this.steelMap.capacityNo == '取消' ||
|
|
|
+ this.steelMap.capacityNo == '待定'
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ this.$message.error('请输入正确格式的车牌号!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.steelMap.capacityIds != 0) {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在变更车牌号',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/updateCapacityNumberInFactory', this.steelMap)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ this.$message.success('变更车牌号成功!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ console.log('更改车牌号之后的变化')
|
|
|
+ console.log(res.data)
|
|
|
+ if (res.data.data.capacityTel != 0) {
|
|
|
+ console.log('进入了这个界面')
|
|
|
+ this.steelMap.capacityTel = res.data.data.capacityTel
|
|
|
+ } else {
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/ams/matchingDriverTelRecently?capacityNumber=' +
|
|
|
+ this.steelMap.capacityNo
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.data != null) {
|
|
|
+ this.steelMap.capacityTel = res.data.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.updateDriverTel()
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.success('变更失败,请联系管理员')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.success('变更失败,请联系管理员')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ if (this.steelMap.carrierIds == 0) {
|
|
|
+ this.$message.error('请先选择承运商!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.steelMap.lineId = this.lineSpelling[this.steelMap.mapList.length]
|
|
|
+ this.steelMap.driverTel = this.steelMap.capacityTel
|
|
|
+ this.steelMap.capacityNumber = this.steelMap.capacityNo
|
|
|
+ let arr = []
|
|
|
+ arr.push(this.steelMap)
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在派车,请稍候',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/dispatchSteelOrder', arr)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('派车成功!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/ams/matchingDriverTelRecently?capacityNumber=' +
|
|
|
+ this.steelMap.capacityNo
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.data != null) {
|
|
|
+ this.steelMap.capacityTel = res.data.data
|
|
|
+ this.updateDriverTel()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.data.data)
|
|
|
+ this.getSteelReport()
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error(res.data.data)
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //修改司机电话号码
|
|
|
+ updateDriverTel() {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '修改电话号码中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ if (
|
|
|
+ this.steelMap.capacityTel == null ||
|
|
|
+ this.steelMap.capacityTel == ''
|
|
|
+ ) {
|
|
|
+ this.$message.error('电话号码不能为空')
|
|
|
+ loading.close()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var regex = /^[1][2,3,4,5,6,7,8,9][0-9]{9}$/
|
|
|
+ if (!regex.test(this.steelMap.capacityTel)) {
|
|
|
+ this.$message.error('电话号码不符合规则')
|
|
|
+ loading.close()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/uc/updateDriverTel', {
|
|
|
+ orderId: parseInt(this.steelMap.orderId),
|
|
|
+ saleOrderMaterialId: parseInt(this.steelMap.saleOrderMaterialId),
|
|
|
+ driverTel: this.steelMap.capacityTel
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ duration: 2000,
|
|
|
+ message: '修改电话号码成功',
|
|
|
+ offset: 250
|
|
|
+ })
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('修改失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('修改失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //修改收货客户电话
|
|
|
+ updateconsigneeTel() {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '修改电话号码中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ if (
|
|
|
+ this.steelMap.consigneeTel == null ||
|
|
|
+ this.steelMap.consigneeTel == ''
|
|
|
+ ) {
|
|
|
+ this.$message.error('电话号码不能为空')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/updateConsigneeTel', {
|
|
|
+ saleOrderNo: this.steelMap.saleOrderNo,
|
|
|
+ saleOrderMaterialId: this.steelMap.saleOrderMaterialId,
|
|
|
+ consigneeTel: this.steelMap.consigneeTel
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('修改成功')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('修改失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('修改失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //关闭车辆金蝶分录
|
|
|
+ deleteEasEntryId() {
|
|
|
+ this.$confirm('确定关闭该车金蝶分录吗?', '提示', {
|
|
|
+ confirmButtonText: '是',
|
|
|
+ cancelButtonText: '否',
|
|
|
+ center: true,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ let map = this.steelMap
|
|
|
+ map.operateName = getCookie('loginName')
|
|
|
+ map.isCloseEas = Number(0)
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在关闭车辆',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/updateCarAddress', map)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('关闭车辆成功')
|
|
|
+ this.getSteelReport()
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('关闭车辆失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('关闭车辆失败')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.info('取消关闭')
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //修改承运商授权
|
|
|
+ updateTruckCarrier() {
|
|
|
+ if (this.steelMap.newCarrierId == null) {
|
|
|
+ this.$message.warning('请注册承运商或者选中弹出层之后再提交!')
|
|
|
+ this.getSteelReport()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.steelMap.carrierIds != 0) {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在修改承运商授权',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/updateTruckNoCarrier', this.steelMap)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('修改承运商授权成功')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('修改失败,请联系管理员!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('修改失败,请联系管理员!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ //授权承运商
|
|
|
+ let arr = []
|
|
|
+ arr.push(this.steelMap)
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在授权承运商',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/dispatchToCarrier', arr)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ this.$message.success('授权承运商成功')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('授权失败,请联系管理员')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('授权失败,请联系管理员')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ updateAddress(row) {
|
|
|
+ this.drawer = true
|
|
|
+ this.addressRow = row
|
|
|
+ this.province = row.addressProvince
|
|
|
+ this.city = row.addressDistrict
|
|
|
+ this.county = row.addressTown
|
|
|
+ this.addressId = row.shipperAddressId
|
|
|
+ this.getAllProvince()
|
|
|
+ this.onchangeProvince()
|
|
|
+ this.onchangeCity()
|
|
|
+ },
|
|
|
+ //获取所有省数据
|
|
|
+ getAllProvince() {
|
|
|
+ this.axios.post('/api/v1/uc/getAllProvince').then(res => {
|
|
|
+ this.provinceList = res.data.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //省改变
|
|
|
+ onchangeProvince() {
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/uc/getDistrictByProvince?addressProvince=' +
|
|
|
+ this.steelMap.addressProvince +
|
|
|
+ '&i=' +
|
|
|
+ new Date()
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ this.cityList = res.data.data
|
|
|
+ // this.city = "";
|
|
|
+ // this.county = "";
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //市改变
|
|
|
+ onchangeCity() {
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/uc/getTownByDistrict?addressDistrict=' +
|
|
|
+ this.steelMap.addressDistrict +
|
|
|
+ '&i=' +
|
|
|
+ new Date()
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ this.countyList = res.data.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //县(区)改变
|
|
|
+ onchangeCounty() {
|
|
|
+ let mapValue = {
|
|
|
+ addressProvince: this.steelMap.addressProvince,
|
|
|
+ addressDistrict: this.steelMap.addressDistrict,
|
|
|
+ addressTown: this.steelMap.addressTown
|
|
|
+ }
|
|
|
+ this.axios.post('/api/v1/uc/getPlaceByAllAddress', mapValue).then(res => {
|
|
|
+ this.addressId = res.data.data[0].addressId
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //收货地址弹出层
|
|
|
+ handleSelect1(item) {
|
|
|
+ console.log('获取所有下拉值!')
|
|
|
+ },
|
|
|
+ //以下是收货地址边输边查搜索
|
|
|
+ querySearch1(queryString, cb) {
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/ams/getRealAddressByLike?addressId=' +
|
|
|
+ this.addressId +
|
|
|
+ '&index=' +
|
|
|
+ queryString
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ var restaurants = res.data.data
|
|
|
+ var results = queryString
|
|
|
+ ? restaurants.filter(this.createFilter1(queryString))
|
|
|
+ : restaurants
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ createFilter1(queryString) {
|
|
|
+ return restaurants => {
|
|
|
+ return (
|
|
|
+ restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
|
|
|
+ -1
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //修改收货地址
|
|
|
+ addAddressClick() {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在修改收货地址',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ let map = this.steelMap
|
|
|
+ map.isCloseEas = Number(1)
|
|
|
+ map.isNewCar = Number(1)
|
|
|
+ map.shipperAddressId = this.addressId
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/updateCarAddress', map)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('修改收货地址成功!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('修改失败,请联系管理员!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('修改失败,请联系管理员!')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //记录每一行的合并数
|
|
|
+ getSpanArr(data) {
|
|
|
+ //每次调用方法初始化
|
|
|
+ this.spanArr = []
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ if (i === 0) {
|
|
|
+ this.spanArr.push(1)
|
|
|
+ data[i].group = i
|
|
|
+ this.pos = 0
|
|
|
+ } else {
|
|
|
+ // 判断当前元素与上一个元素是否相同
|
|
|
+ if (data[i].saleOrderMaterialId === data[i - 1].saleOrderMaterialId) {
|
|
|
+ this.spanArr[this.pos] += 1
|
|
|
+ data[i].group = data[i - 1].group
|
|
|
+ this.spanArr.push(0)
|
|
|
+ } else {
|
|
|
+ this.spanArr.push(1)
|
|
|
+ this.pos = i
|
|
|
+ data[i].group = data[i - 1].group + 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
+ if (this.mergeList.indexOf(column.label) != -1) {
|
|
|
+ const _row = this.spanArr[rowIndex]
|
|
|
+ const _col = _row > 0 ? 1 : 0
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //计算总件数和总车数
|
|
|
+ getTotalNum(data) {
|
|
|
+ //通过车序号的个数来计算车数
|
|
|
+ let arr = []
|
|
|
+ arr = data.map(e => {
|
|
|
+ return e.saleOrderMaterialId
|
|
|
+ })
|
|
|
+ this.totalCapacity = Array.from(new Set(arr)).length
|
|
|
+ this.totalNumber = data.reduce(function(prev, item) {
|
|
|
+ return prev + item.materialNum
|
|
|
+ }, 0)
|
|
|
+ },
|
|
|
+ //减少物资件数
|
|
|
+ updateBillOrder(row) {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '修改物资件数中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ let map = {
|
|
|
+ materialId: row.materialId,
|
|
|
+ materialNum: row.materialNum
|
|
|
+ }
|
|
|
+ let arr = []
|
|
|
+ arr.push(map)
|
|
|
+ let updateMap = {
|
|
|
+ orderId: this.steelMap.orderId,
|
|
|
+ saleOrderId: this.steelMap.saleOrderId,
|
|
|
+ saleOrderMaterialId: this.steelMap.saleOrderMaterialId,
|
|
|
+ mapList: arr
|
|
|
+ }
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/oms/updateMaterialMes', updateMap)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('修改物资数量成功')
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('修改物资数量失败,请联系管理员')
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('修改物资数量失败,请联系管理员')
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //关闭单条分录
|
|
|
+ closeEasEntryId(row) {
|
|
|
+ if (this.steelMap.mapList.length == 1) {
|
|
|
+ this.deleteEasEntryId()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.$prompt('确定关闭该条分录吗?', '警告', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ center: true,
|
|
|
+ inputPlaceholder: '请输入关闭理由'
|
|
|
+ })
|
|
|
+ .then(({ value }) => {
|
|
|
+ if (value != null || value != '') {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在关闭该条分录',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ let map = {
|
|
|
+ orderId: this.steelMap.orderId,
|
|
|
+ saleOrderMaterialId: this.steelMap.saleOrderMaterialId,
|
|
|
+ saleMaterialId: row.saleMaterialId,
|
|
|
+ reason: value,
|
|
|
+ number: this.steelMap.saleOrderNo,
|
|
|
+ closeEntryId: row.closeEntryId
|
|
|
+ }
|
|
|
+ this.axios
|
|
|
+ .post('/api/v1/ams/closeSteelMaterialId', map)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code == '200') {
|
|
|
+ this.$message.success('关闭成功')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ } else {
|
|
|
+ this.$message.error('关闭失败,请联系管理员')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('关闭失败,请联系管理员')
|
|
|
+ this.operation(this.steelMap)
|
|
|
+ this.getSteelReport()
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.info('取消输入')
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //查询,输入查询条件
|
|
|
+ onclick(obj) {
|
|
|
+ this.isRowClick = 0
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在获取数据',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ let startTime = null
|
|
|
+ let endTime = null
|
|
|
+ let carrierSsoId = null
|
|
|
+ let carrierName = null
|
|
|
+ let consigneeName = null
|
|
|
+ let capacityNo = null
|
|
|
+ let remark = null
|
|
|
+ let saler = null
|
|
|
+ let easPrimaryId = null
|
|
|
+ let consigneeSsoId = null
|
|
|
+ if (this.startTime && this.endTime) {
|
|
|
+ startTime = sjTime(this.startTime)
|
|
|
+ endTime = sjTime(this.endTime)
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'chengyunshang') {
|
|
|
+ carrierSsoId = getCookie('userId')
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'xiaoshouyewuyuan') {
|
|
|
+ saler = getCookie('loginName')
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'shouhuokehu') {
|
|
|
+ consigneeSsoId = getCookie('userId')
|
|
|
+ obj.consigneeSsoId = consigneeSsoId
|
|
|
+ }
|
|
|
+ if (this.screen == '客户') {
|
|
|
+ consigneeName = this.input
|
|
|
+ } else if (this.screen == '承运商') {
|
|
|
+ carrierName = this.input
|
|
|
+ } else if (this.screen == '车牌号') {
|
|
|
+ capacityNo = this.input
|
|
|
+ } else if (this.screen == '分录ID') {
|
|
|
+ easPrimaryId = this.input
|
|
|
+ } else {
|
|
|
+ remark = this.input
|
|
|
+ }
|
|
|
+ if (this.screen1 == '客户') {
|
|
|
+ consigneeName = this.input1
|
|
|
+ } else if (this.screen1 == '承运商') {
|
|
|
+ carrierName = this.input1
|
|
|
+ } else if (this.screen1 == '车牌号') {
|
|
|
+ capacityNo = this.input1
|
|
|
+ } else {
|
|
|
+ remark = this.input1
|
|
|
+ }
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/tms/getSaleSteelReportNew?startTime=' +
|
|
|
+ startTime +
|
|
|
+ '&endTime=' +
|
|
|
+ endTime +
|
|
|
+ '&carrierSsoId=' +
|
|
|
+ carrierSsoId +
|
|
|
+ '&i=' +
|
|
|
+ new Date() +
|
|
|
+ '&remark=' +
|
|
|
+ remark +
|
|
|
+ '&consigneeName=' +
|
|
|
+ consigneeName +
|
|
|
+ '&carrierName=' +
|
|
|
+ carrierName +
|
|
|
+ '&capacityNo=' +
|
|
|
+ capacityNo +
|
|
|
+ '&saler=' +
|
|
|
+ saler +
|
|
|
+ '&easPrimaryId=' +
|
|
|
+ easPrimaryId,
|
|
|
+ obj
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ this.tableData = res.data.data
|
|
|
+ this.totalHeight += this.itemHeight
|
|
|
+ this.visibleList = res.data.data
|
|
|
+ console.log(this.visibleList, 'this.visibleList')
|
|
|
+ this.getSpanArr(this.visibleList)
|
|
|
+ this.getTotalNum(this.tableData)
|
|
|
+ loading.close()
|
|
|
+ console.log(this.visibleList)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //重新获取表格数据
|
|
|
+ refresh() {
|
|
|
+ this.getSteelReport()
|
|
|
+ },
|
|
|
+ //获取钢材统计报表
|
|
|
+ getSteelReport() {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在获取数据,请稍候',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ this.isRowClick = 0
|
|
|
+ let startTime = null
|
|
|
+ let endTime = null
|
|
|
+ let carrierSsoId = null
|
|
|
+ let carrierName = null
|
|
|
+ let consigneeName = null
|
|
|
+ let consigneeSsoId = null
|
|
|
+ let capacityNo = null
|
|
|
+ let remark = null
|
|
|
+ let saler = null
|
|
|
+ if (this.startTime && this.endTime) {
|
|
|
+ startTime = sjTime(this.startTime)
|
|
|
+ endTime = sjTime(this.endTime)
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'chengyunshang') {
|
|
|
+ carrierSsoId = getCookie('userId')
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'xiaoshouyewuyuan') {
|
|
|
+ saler = getCookie('loginName')
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'shouhuokehu') {
|
|
|
+ consigneeSsoId = getCookie('userId')
|
|
|
+ this.filterMap.consigneeSsoId = consigneeSsoId
|
|
|
+ }
|
|
|
+ if (this.screen == '客户') {
|
|
|
+ consigneeName = this.input
|
|
|
+ } else if (this.screen == '承运商') {
|
|
|
+ carrierName = this.input
|
|
|
+ } else if (this.screen == '车牌号') {
|
|
|
+ capacityNo = this.input
|
|
|
+ } else {
|
|
|
+ remark = this.input
|
|
|
+ }
|
|
|
+ if (this.screen1 == '下单客户') {
|
|
|
+ consigneeName = this.input1
|
|
|
+ } else if (this.screen == '承运商') {
|
|
|
+ carrierName = this.input1
|
|
|
+ } else if (this.screen == '车牌号') {
|
|
|
+ capacityNo = this.input1
|
|
|
+ } else {
|
|
|
+ remark = this.input1
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'chengyunshang') {
|
|
|
+ carrierSsoId = getCookie('userId')
|
|
|
+ }
|
|
|
+ if (getCookie('orgCode') == 'xiaoshouyewuyuan') {
|
|
|
+ saler = getCookie('loginName')
|
|
|
+ }
|
|
|
+
|
|
|
+ this.axios
|
|
|
+ .post(
|
|
|
+ '/api/v1/tms/getSaleSteelReportNew?startTime=' +
|
|
|
+ startTime +
|
|
|
+ '&endTime=' +
|
|
|
+ endTime +
|
|
|
+ '&carrierSsoId=' +
|
|
|
+ carrierSsoId +
|
|
|
+ '&saler=' +
|
|
|
+ saler +
|
|
|
+ '&i=' +
|
|
|
+ new Date() +
|
|
|
+ '&remark=' +
|
|
|
+ remark +
|
|
|
+ '&consigneeName=' +
|
|
|
+ consigneeName +
|
|
|
+ '&carrierName=' +
|
|
|
+ carrierName +
|
|
|
+ '&capacityNo=' +
|
|
|
+ capacityNo,
|
|
|
+ this.filterMap
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ this.tableData = res.data.data
|
|
|
+ this.totalHeight += this.itemHeight
|
|
|
+ this.visibleList = []
|
|
|
+ this.visibleList = this.tableData.slice(
|
|
|
+ 0,
|
|
|
+ Math.floor(this.maxHeight / this.itemHeight) + 1
|
|
|
+ )
|
|
|
+ console.log(this.visibleList)
|
|
|
+ this.getSpanArr(this.visibleList)
|
|
|
+ this.getTotalNum(this.tableData)
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.purchasFuelNewMonitor {
|
|
|
+ .tableTop {
|
|
|
+ margin-left: 20px;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ .table {
|
|
|
+ margin-left: 20px;
|
|
|
+ margin-top: 20px;
|
|
|
+ .el-tooltip {
|
|
|
+ width: auto !important;
|
|
|
+ }
|
|
|
+ /deep/ .el-table__body {
|
|
|
+ overflow-y: auto;
|
|
|
+ position: absolute !important;
|
|
|
+ tr:hover > td {
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ::-webkit-scrollbar {
|
|
|
+ height: 20px;
|
|
|
+ background-color: transparent;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog {
|
|
|
+ .steelMapClass {
|
|
|
+ .steelMapClass1 {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+ .steelMapClass12 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .steelMapClass2 {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+ .steelMapClass22 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ .el-select {
|
|
|
+ .el-input .el-input--suffix {
|
|
|
+ .el-input__inner {
|
|
|
+ border: 0px solid !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .steelMapClass3 {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+ .steelMapClass32 {
|
|
|
+ margin-left: 50px;
|
|
|
+ // margin-right: 10px;
|
|
|
+ }
|
|
|
+ .steelMapClass33 {
|
|
|
+ margin-left: 20px;
|
|
|
+ // margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .steelMapClass4 {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+
|
|
|
+ .steelMapClass42 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ .steelMapClass43 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ .steelMapClass44 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .steelMapClass5 {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+
|
|
|
+ .steelMapClass52 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ .steelMapClass521 {
|
|
|
+ margin-left: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .steelMapClass6 {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+ .steelMapClass62 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .steelMapClass7 {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: flex-start;
|
|
|
+ font-size: 16px;
|
|
|
+ .steelMapClass72 {
|
|
|
+ margin-left: 50px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .table1 {
|
|
|
+ margin-left: 20px;
|
|
|
+ margin-top: 20px;
|
|
|
+ .el-tooltip {
|
|
|
+ width: auto !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .address {
|
|
|
+ .button-box {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<!-- <style lang="scss">
|
|
|
+.el-table__body-wrapper {
|
|
|
+ overflow-y: auto;
|
|
|
+ .el-table__body {
|
|
|
+ position: absolute;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style> -->
|