index.vue 8.04 KB
<template>
  <div>
    <el-form class="form-header" :model="queryParams" label-position="right" label-width="auto" size="medium">
      <el-row>
        <el-col :span="6">
          <el-form-item label="航班日期从" prop="fltDateStart">
            <el-date-picker
              value-format="yyyy-MM-dd"
              class="formItem"
              v-model="queryParams.fltDateStart"
              type="date"
              placeholder="选择日期"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="到" prop="fltDateEnd">
            <el-date-picker
              value-format="yyyy-MM-dd"
              class="formItem"
              v-model="queryParams.fltDateEnd"
              type="date"
              placeholder="选择日期"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="航班号">
            <el-input
              type="textarea"
              v-model="fltNo"
              clearable
              class="formItem"
              placeholder="AC001;AC002"
              rows="1"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="运单号">
            <el-input
              clearable
              type="textarea"
              v-model="queryParams.waybillNo"
              class="formItem"
              placeholder="请输入运单号(回车间隔)"
              rows="1"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="站点">
            <el-input
              type="textarea"
              v-model="siteName"
              class="formItem"
              placeholder="PVG;PEK"
              clearable
              rows="1"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="URSA">
            <el-input
              clearable
              type="textarea"
              v-model="ursa"
              class="formItem"
              placeholder="S_;P_;E2"
              rows="1"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="24">
          <el-switch
            v-model="queryParams.reExport"
            active-color="#13ce66"
            active-text="重新导出"
            style="padding-left: 35px"
          >
          </el-switch>
        </el-col>
      </el-row>
      <div style="margin-top:25px">
         <el-button
        type="primary"
        icon="el-icon-search"
        size="mini"
        @click="handleQuery"
        >搜索</el-button
      >
      <el-button
        type="warning"
        :disabled="tableData.length == 0"
        @click="xlse()"
        :loading="downLoadingTip.downloading"
        icon="el-icon-download"
        size="mini"
        v-hasPermi="['base:caExport:export']"
        >{{
          downLoadingTip.downloading ? downLoadingTip.tip : "导出"
        }}</el-button
      >
      </div>
    </el-form>

    <el-table
      max-height="500"
      highlight-current-row
      border
      stripe
      v-loading="loading"
      :data="tableData"
    >
      <el-table-column
        label="运单号"
        align="center"
        prop="waybillNo"
      />
      <el-table-column
        :show-overflow-tooltip="true"
        label="品牌描述"
        align="center"
        prop="nameDescription"
      />
      <el-table-column
        label="航班日期"
        align="center"
        prop="fltDate"
      />
      <el-table-column label="航班号" align="center" prop="fltNo" width="100"/>
      <el-table-column
        label="航班路线"
        align="center"
        prop="route"
      />
      <el-table-column
        label="配置航班类型"
        align="center"
        prop="kindName"
        width="130"
      />
      <el-table-column label="尺寸" align="center" prop="sizeStr" width="70"/>
      <el-table-column label="件数" align="center" prop="qty" width="70"/>
      <el-table-column label="实际重量" align="center" prop="actualWeight" width="100"/>
      <el-table-column
        label="创建时间"
        align="center"
        prop="createTime"
        width="180"
      />
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      layout=" prev, pager, next, jumper, sizes,total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.limitSize"
      @pagination="findAllFltData"
    />
  </div>
</template>

<script>
import { findCagroPreData } from "@/api/cargoSelect";
import { cargoXlsxPre } from "@/utils/zipdownload";
export default {
  name: "CAPreQualificationExport",
  data() {
    return {
      //导出
      downLoadingTip: {
        tip: "",
        downloading: false,
      },
      tableData: [], //表格数据
      // 遮罩层
      loading: false,
      // 弹出层标题
      title: "",
      // 总条数
      total: 0,
      // 原航班规则数据
      findAllFltDatList: [],
      // 新增修改查看规则弹出层
      open: false,
      // 查询参数
      queryParams: {
        limitStart: 0, //当前条数【代表第几条数据 +1开始】
        pageNum: 1,
        limitSize: 20, //一页显示多少条数据
        fltDateStart: undefined, //航班日期开始
        fltDateEnd: undefined, //航班日期结束
        reExport: false,
        //航班号
        fltNo: null,
        //运单号
        waybillNo: "",
        //站点
        siteName: "",
        //ursa
        ursa: "",
      },
      // 表单校验
      rules: {},
    };
  },
  methods: {
    // 导出表格
    xlse() {
      this.downLoadingTip.downloading = true;
      this.downLoadingTip.tip = "正在导出结果集请耐心等待";
      let cargoXlse = { title: "航班预审表", cargoExportPreQueryDto: {} };
      cargoXlse.cargoExportPreQueryDto = JSON.parse(
        JSON.stringify(this.queryParams)
      );
      cargoXlse.cargoExportPreQueryDto.limitStart = 0;
      cargoXlse.cargoExportPreQueryDto.limitSize = -1;
      cargoXlsxPre("/cargo/excelPre", cargoXlse)
        .then(() => {
          this.downLoadingTip.downloading = false;
          this.downLoadingTip.tip = "";
          this.progress = 100;
        })
        .catch(() => {
          this.downLoadingTip.downloading = false;
          this.downLoadingTip.tip = "";
        });
    },

    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.queryParams.start = 0;
      this.findAllFltData();
    },
    /** 预审信息查寻*/
    findAllFltData() {
      this.loading = true;
      if (this.queryParams.pageNum > 1) {
        this.queryParams.limitStart =
          (this.queryParams.pageNum - 1) * this.queryParams.limitSize;
      } else {
        this.queryParams.limitStart = 0;
      }
      findCagroPreData(this.queryParams).then((response) => {
        if (response.code == 200) {
          this.tableData = response.data.list;
          this.total = response.data.totalCount;
          this.loading = false;
          if(response.data.list.length == 0){
            this.$message({
                message: "未查询到数据",
                type: "warning",
              });
          }
        } else {
          this.msgError(response.msg);
        }
      });
    },
  },
  computed: {
    fltNo: {
      get: function () {
        return this.queryParams.fltNo;
      },
      set: function (val) {
        this.queryParams.fltNo = val.toUpperCase();
      },
    },
    siteName: {
      get: function () {
        return this.queryParams.siteName;
      },
      set: function (val) {
        this.queryParams.siteName = val.toUpperCase();
      },
    },
    ursa: {
      get: function () {
        return this.queryParams.ursa;
      },
      set: function (val) {
        this.queryParams.ursa = val.toUpperCase();
      },
    },
  },
};
</script>

<style scoped>
.tips {
  float: right;
  color: #606266;
  font-size: 14px;
  margin-right: 40px;
}
</style>