|
|
@@ -0,0 +1,223 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <!--顶部显示-->
|
|
|
+ <el-breadcrumb class="heading">
|
|
|
+ <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item>业务申请上报情况</el-breadcrumb-item>
|
|
|
+ </el-breadcrumb>
|
|
|
+
|
|
|
+ <!--内框顶部显示-->
|
|
|
+ <el-card class="box-card" style="height: calc(100vh - 115px);position:relative">
|
|
|
+ <div slot="header">
|
|
|
+ <span>
|
|
|
+ <i class="icon icon-table2"></i> 业务申请上报情况
|
|
|
+ </span>
|
|
|
+
|
|
|
+ <el-form
|
|
|
+ :model="searchForm"
|
|
|
+ ref="searchformRef"
|
|
|
+ :inline="true"
|
|
|
+ style="float: right;position:absolute;right:15px;top:10.5px"
|
|
|
+ >
|
|
|
+ <el-form-item label="推荐单位">
|
|
|
+ <el-input size="mini" v-model="searchForm.FullName" placeholder="请输入内容"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-dropdown
|
|
|
+ split-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="initDatas($event)"
|
|
|
+ @command="searchCommand"
|
|
|
+ >
|
|
|
+ 查询
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item command="clear">查询重置</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" size="mini" @click="exportExcel">导出</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!--内框表格显示-->
|
|
|
+ <el-table
|
|
|
+ id="rebateSetTable"
|
|
|
+ :data="entityList"
|
|
|
+ size="mini"
|
|
|
+ border
|
|
|
+ height="calc(100vh - 243px)"
|
|
|
+ style="width: 100%"
|
|
|
+ :span-method="cellMerge"
|
|
|
+ @sort-change="orderby"
|
|
|
+ >
|
|
|
+ <!--内框表格剩余栏显示-->
|
|
|
+ <el-table-column label="推荐单位" prop="FullName" align="center"></el-table-column>
|
|
|
+ <el-table-column label="准入类别" prop="SupplierTypeName" align="center"></el-table-column>
|
|
|
+ <el-table-column label="上报数量" prop="ZongShu" align="center"></el-table-column>
|
|
|
+ <el-table-column label="合格数量" prop="HeGe" align="center"></el-table-column>
|
|
|
+ <el-table-column label="不合格数量" prop="BuHeGe" align="center"></el-table-column>
|
|
|
+ <el-table-column label="不合格原因" prop="Reason" align="center"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <!-- 分页 -->
|
|
|
+ <el-pagination
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-sizes="[10, 15, 20, 25]"
|
|
|
+ :page-size="size"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="currentItemCount"
|
|
|
+ ></el-pagination>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+<script>
|
|
|
+import api from "@/api/oilsupplier/select";
|
|
|
+import FileSaver from "file-saver";
|
|
|
+import XLSX from "xlsx";
|
|
|
+import oapi from "@/api/oilsupplier/supplier";
|
|
|
+export default {
|
|
|
+ created() {
|
|
|
+ this.initDatas();
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 定义列表数据
|
|
|
+ entityList: [],
|
|
|
+ // 分页参数
|
|
|
+ size: 10,
|
|
|
+ currentPage: 1,
|
|
|
+ currentItemCount: 0,
|
|
|
+ searchForm: {
|
|
|
+ FullName: ""
|
|
|
+ },
|
|
|
+ //列表排序
|
|
|
+ Column: {
|
|
|
+ Order: "",
|
|
|
+ Prop: ""
|
|
|
+ },
|
|
|
+ spanArr: [],
|
|
|
+ pos: 0
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ methods: {
|
|
|
+ getSpanArr(data) {
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ if (i === 0) {
|
|
|
+ this.spanArr.push(1);
|
|
|
+ this.pos = 0;
|
|
|
+ } else {
|
|
|
+ // 判断当前元素与上一个元素是否相同
|
|
|
+ if (data[i].FullName === data[i - 1].FullName) {
|
|
|
+ this.spanArr[this.pos] += 1;
|
|
|
+ this.spanArr.push(0);
|
|
|
+ } else {
|
|
|
+ this.spanArr.push(1);
|
|
|
+ this.pos = i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ cellMerge({ row, column, rowIndex, columnIndex }) {
|
|
|
+ if (columnIndex === 0) {
|
|
|
+ const _row = this.spanArr[rowIndex];
|
|
|
+ const _col = _row > 0 ? 1 : 0;
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ };
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ exportExcel() {
|
|
|
+ /* generate workbook object from table */
|
|
|
+ let wb = XLSX.utils.table_to_book(
|
|
|
+ document.querySelector("#rebateSetTable")
|
|
|
+ );
|
|
|
+ /* get binary string as output */
|
|
|
+ let wbout = XLSX.write(wb, {
|
|
|
+ bookType: "xlsx",
|
|
|
+ bookSST: true,
|
|
|
+ type: "array"
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ FileSaver.saveAs(
|
|
|
+ new Blob([wbout], { type: "application/octet-stream" }),
|
|
|
+ "SupplierSituation.xlsx"
|
|
|
+ );
|
|
|
+ } catch (e) {
|
|
|
+ if (typeof console !== "undefined") console.log(e, wbout);
|
|
|
+ }
|
|
|
+ return wbout;
|
|
|
+ },
|
|
|
+
|
|
|
+ //列表排序功能
|
|
|
+ orderby(column) {
|
|
|
+ if (column.order == "ascending") {
|
|
|
+ this.Column.Order = "asc";
|
|
|
+ } else if (column.order == "descending") {
|
|
|
+ this.Column.Order = "desc";
|
|
|
+ }
|
|
|
+ this.Column.Prop = column.prop;
|
|
|
+ this.initDatas();
|
|
|
+ },
|
|
|
+ //初始化列表方法
|
|
|
+ initDatas(event) {
|
|
|
+ this.spanArr= []
|
|
|
+ if (event != null) {
|
|
|
+ this.currentPage = 1;
|
|
|
+ this.dialogVisible = false;
|
|
|
+ }
|
|
|
+ let params = {
|
|
|
+ _size: this.size,
|
|
|
+ _currentPage: this.currentPage,
|
|
|
+ Order: "desc",
|
|
|
+ Prop: "Fullname"
|
|
|
+ };
|
|
|
+
|
|
|
+ console.log(params);
|
|
|
+ api
|
|
|
+ .up(params, this.searchForm, this.$axios)
|
|
|
+ .then(res => {
|
|
|
+ this.entityList = res.data.items;
|
|
|
+ console.log("----this.entityList--",this.entityList)
|
|
|
+ this.getSpanArr(res.data.items);
|
|
|
+ this.currentItemCount = res.data.currentItemCount;
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //分页方法
|
|
|
+ handleCurrentChange(value) {
|
|
|
+ this.currentPage = value;
|
|
|
+ this.initDatas();
|
|
|
+ },
|
|
|
+ handleSizeChange(value) {
|
|
|
+ this.size = value;
|
|
|
+ this.currentPage = 1;
|
|
|
+ this.initDatas();
|
|
|
+ },
|
|
|
+ searchCommand(command) {
|
|
|
+ if (command == "clear") {
|
|
|
+ this.clearSearch();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ clearSearch() {
|
|
|
+ this.searchForm.FullName = "";
|
|
|
+ this.initDatas();
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|