| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 | <template>  <div>    <basic-container class="page-crad">      <avue-crud        ref="crud"        :option="option"        :data="dataList"        :page.sync="page"        :search.sync="search"        :cell-style="cellStyle"        @search-change="searchChange"        @current-change="currentChange"        @size-change="sizeChange"        @refresh-change="refreshChange"        @on-load="onLoad"        :table-loading="loading"        @saveColumn="saveColumn"        @resetColumn="resetColumn"        @search-criteria-switch="searchCriteriaSwitch"      >        <template slot="menuLeft">          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>        </template>        <template slot="corpNameSearch">          <crop-select v-model="search.corpId" corpType="KH"></crop-select>        </template>        <template slot="storageNameSearch">          <warehouse-select            v-model="search.storageId"            :configuration="configurationWarehouse"/>        </template>      </avue-crud>    </basic-container>  </div></template><script>import { getToken } from "@/util/auth";import { getList, exportExcel } from "@/api/statisticAnalysis/salesReconciliation";import { micrometerFormat } from "@/util/validate";import _ from "lodash";import option from "../../businessManagement/salesOrder/configuration/mainList.json";export default {  name: "index",  data() {    return {      form: {},      search: {},      dataList: [],      loading: false,      detailData: {},      page: {        pageSize: 20,        currentPage: 1,        total: 0,        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]      },      option: {},      defaultOption: {        searchShow: true,        align: "center",        searchSpan: 8,        border: true,        index: true,        addBtn: false,        viewBtn: false,        editBtn: false,        delBtn: false,        showSummary: true,        searchIcon: true,        searchIndex: 2,        menu: false,        column: [          {            label: "客户名称",            prop: "corpName",            search: true,            overHidden: true,          },          {            label: "制单日期",            prop: "businesDate",            search: true,            type: 'date',            format: "yyyy-MM-dd",            valueFormat: "yyyy-MM-dd",            unlinkPanels: true,            searchRange: true,            overHidden: true,          },          {            label: "商品名称",            prop: "goodName",            search: false,            overHidden: true,          },          {            label: "规格",            prop: "typeno",            search: false,            overHidden: true,          },          {            label: "级别",            prop: "level",            search: false,            overHidden: true,          },          {            label: "花纹",            prop: "brandItem",            search: false,            overHidden: true,          },          {            label: "批号",            prop: "lotNo",            search: false,            overHidden: true,          },          {            label: "销售数量",            prop: "orderQuantity",            search: false,            overHidden: true,          },          {            label: "单价",            prop: "price",            search: false,            overHidden: true,          },          {            label: "应收金额",            prop: "debitAmount",            search: false,            overHidden: true,          },          {            label: "仓库名称",            prop: "storageName", //storageId            search: true,            overHidden: true,          },          {            label: "备注",            prop: "remarks",            search: false,            overHidden: true,          },        ],      },      // 仓库配置      configurationWarehouse: {        multipleChoices: false,        multiple: false,        collapseTags: false,        placeholder: "请点击右边按钮选择",        dicData: [],      },    };  },  filters: {    decimalFormat(num) {      return num ? Number(num).toFixed(2) : "0.00";    }  },  async created() {    this.option = await this.getColumnData(this.getColumnName(126), this.defaultOption);    let i = 0;    this.option.column.forEach(item => {      if (item.search) i++    })    if (i % 3 !== 0){      const num = 3 - Number(i % 3)      this.option.searchMenuSpan = num * 8;      this.option.searchMenuPosition = "right";    }  },  methods: {    cellStyle() {      return "padding:0;height:40px;";    },    searchCriteriaSwitch(type) {      if (type) {        this.option.height = this.option.height - 46;      } else {        this.option.height = this.option.height + 46;      }      this.$refs.crud.getTableHeight();    },    //点击搜索按钮触发    searchChange(params, done) {      this.page.currentPage = 1;      this.onLoad(this.page, params);      done();    },    refreshChange() {      delete this.search.corpName;      delete this.search.storageName      this.onLoad(this.page, this.search);    },    currentChange(val) {      this.page.currentPage = val;    },    sizeChange(val) {      this.page.currentPage = 1;      this.page.pageSize = val;    },    onLoad(page, params) {      this.loading = true;      this.dataList.forEach(item => {        this.$refs.crud.toggleRowExpansion(item, false);      });      let queryParams = Object.assign({}, params);      if (queryParams.businesDate && queryParams.businesDate.length > 0) {        queryParams = {          ...queryParams,          orderStartDate: queryParams.businesDate[0] + ' 00:00:00',          orderEndDate: queryParams.businesDate[1] + ' 23:59:59',        }        delete queryParams.businesDate;      }      getList(        page.currentPage,        page.pageSize,        queryParams      )        .then(res => {          if (res.data.data.records) {            res.data.data.records.forEach(e => {              e.itemLoading = true;            });          }          this.dataList = res.data.data.records ? res.data.data.records : [];          this.page.total = res.data.data.total;          if (this.page.total) {            this.option.height = window.innerHeight - 210;          }        })        .finally(() => {          this.loading = false;        });    },    editOpen(row) {      if (row.billType == "BJ") {        this.$router.push({          path: "/exportTrade/customerInquiry/index",          query: {            id: row.id          }        });      } else {        this.$router.push({          path: "/exportTrade/salesContract/index",          query: {            id: row.id          }        });      }    },    outExport() {      if (!this.search.corpId) this.$set(this.search, 'corpId', '');      if (!this.search.storageId) this.$set(this.search, 'storageId', '');      if (this.search.businesDate && this.search.businesDate.length > 0) {        this.search = {          ...this.search,          orderStartDate: this.search.businesDate[0] + ' 00:00:00',          orderEndDate: this.search.businesDate[1] + ' 23:59:59',        }      } else {        this.search = {          ...this.search,          orderStartDate: '',          orderEndDate: '',        }      }      // return console.log(this.search)      this.$confirm('是否导出销售对账信息?', '提示', {        confirmButtonText: '确定',        cancelButtonText: '取消',        type: 'warning'      }).then(() => {        window.open(          `/api/blade-purchase-sales/dealerOrder/orderItemStat/export?${            this.website.tokenHeader          }=${getToken()}&corpId=${this.search.corpId}&storageId=${this.search.storageId}&orderStartDate=${this.search.orderStartDate}&orderEndDate=${this.search.orderEndDate}`        );      }).catch(() => {        this.$message({          type: 'info',          message: '已取消' //        });      })    },    //列保存触发    async saveColumn() {      const inSave = await this.saveColumnData(        this.getColumnName(126),        this.option      );      if (inSave) {        this.$nextTick(() => {          this.$refs.crud.doLayout();        });        this.$message.success("保存成功");        //关闭窗口        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },    async resetColumn() {      this.option = this.defaultOption;      const inSave = await this.delColumnData(this.getColumnName(126), this.defaultOption);      if (inSave) {        this.$nextTick(() => {          this.$refs.crud.doLayout()        })        this.$message.success("重置成功");        //关闭窗口        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },  }};</script><style scoped>.page-crad ::v-deep .basic-container__card {  height: 94.2vh;}::v-deep .el-table__expanded-cell[class*="cell"] {  padding: 0px;}.itemTable ::v-deep .el-table {  width: 100%;}</style>
 |