Преглед изворни кода

Merge branch 'sit' of daiyanrong/accout-ui into master

戴艳蓉 пре 3 година
родитељ
комит
1c332f36d4

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/index.html


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/css/chunk-b4bd2340.e20b8c72.css


BIN
dist/static/css/chunk-43991dee.c22a8c33.css.gz → dist/static/css/chunk-b4bd2340.e20b8c72.css.gz


BIN
dist/static/js/app.5992f377.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/app.a7839fcc.js


BIN
dist/static/js/app.a7839fcc.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/chunk-43991dee.b2b923c1.js


BIN
dist/static/js/chunk-43991dee.b2b923c1.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/chunk-b4bd2340.88b6d95c.js


BIN
dist/static/js/chunk-b4bd2340.88b6d95c.js.gz


+ 4 - 2
src/apis/service/search/standBook/index.js

@@ -10,8 +10,10 @@ export default {
   receiptexport: (data, params) => http(api + "receiptexport", data, "post", params),
   // 发票数据导入
   receiptimport: (data, params) => http(api + "receiptimport", data, "post", params),
-  // // 查询财务信息
-  // cwlist: (data, params) => http(api + "customerinfo", data, "post", params),
+  // 新建业务需求表
+  add: (data, params) => http(api + "execsave", data, "post", params),
+  //获取预约导出业务需求表
+  exportList: (data, params) => http(api + "execlist", data, "post", params),
   // // 分页查询确认单列表
   // qrdlist: (data, params) => http(api + "qrdlist", data, "post", params),
   // // 发票新建(金额)

+ 227 - 0
src/views/search/standBook/addEdit.vue

@@ -0,0 +1,227 @@
+<template>
+  <el-dialog
+    v-loading="loading"
+    :title="'添加表格需求'"
+    :center="true"
+    align="left"
+    top="25vh"
+    width="600px"
+    :close-on-click-modal="false"
+    :visible.sync="showModelThis"
+    element-loading-text="拼命加载中"
+    element-loading-spinner="el-icon-loading"
+    element-loading-background="rgba(0, 0, 0, 0.8)"
+    @close="closeModel"
+  >
+    <el-card style="margin: -20px 0 0 0">
+      <el-row :gutter="10">
+        <el-col :span="24">
+          <el-form
+            ref="ruleForm"
+            :model="ruleForm"
+            status-icon
+            :rules="rulesThis"
+            label-width="90px"
+            class="demo-ruleForm"
+          >
+            <el-form-item label="业务表" prop="id">
+              <el-select
+                v-model="ruleForm.id"
+                style="width: 100%"
+                placeholder="请选择业务表"
+              >
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="数据时间" prop="start">
+              <period-date-picker
+                :start="ruleForm.start"
+                :end="ruleForm.end"
+                :type="0"
+                :width="'199px'"
+                :size="searchSize"
+                @timeReturned="timeReturned($event)"
+              />
+            </el-form-item>
+          </el-form>
+        </el-col>
+        <el-col :span="12" style="text-align: right">
+          <el-alert
+            style="width: 230px"
+            :closable="false"
+            title="报表会在明天01:00开始生成!"
+            type="warning"
+          >
+          </el-alert>
+        </el-col>
+        <el-col :span="12" style="text-align: right">
+          <el-button v-if="!isDetail" type="primary" @click="submitForm"
+            >保 存
+          </el-button>
+          <el-button @click="showModelThis = false">{{
+            isDetail ? "关 闭" : "取 消"
+          }}</el-button>
+        </el-col>
+      </el-row>
+    </el-card>
+  </el-dialog>
+</template>
+<script>
+import asyncRequest from "@/apis/service/search/standBook";
+import resToken from "@/mixins/resToken";
+import PeriodDatePicker from "@/components/PeriodDatePicker";
+export default {
+  name: "Account",
+  props: ["showModel", "id", "isDetail", "sitem"],
+  mixins: [resToken],
+  components: {
+    PeriodDatePicker,
+  },
+
+  data() {
+    const validateTime = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("数据开始时间不能为空!"));
+      } else {
+        if (this.ruleForm.end === "") {
+          callback(new Error("数据结束时间不能为空!"));
+        } else {
+          callback();
+        }
+      }
+    };
+    return {
+      options: [
+        {
+          value: "1",
+          label: "回票明细报表",
+        },
+        {
+          value: "2",
+          label: "回票公司订单明细报表",
+        },
+        {
+          value: "3",
+          label: "库存出入库明细报表",
+        },
+        {
+          value: "4",
+          label: "收入成本明细报表",
+        },
+      ],
+      loading: false,
+      title: "添加账号",
+      showModelThis: this.showModel,
+      ruleForm: {
+        start: "",
+        end: "",
+        id: "",
+      },
+      rulesThis: this.rules,
+      rules: {
+        start: [
+          {
+            required: true,
+            validator: validateTime,
+            trigger: "change",
+          },
+        ],
+        id: [
+          {
+            required: true,
+            message: "请选择业务表!",
+            trigger: "change",
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    showModel: function (val) {
+      this.showModelThis = val;
+      if (val) {
+        this.initForm();
+      }
+    },
+    showModelThis(val) {
+      if (!val) {
+        this.$emit("cancel");
+      }
+    },
+  },
+  methods: {
+    closeModel() {
+      console.log("closeModel!!");
+    },
+    async initForm() {
+      this.loading = true;
+      this.rulesThis = this.rules;
+      await this.resetForm();
+      this.loading = false;
+    },
+    async timeReturned(e) {
+      if (e.startTime !== "") {
+        this.ruleForm.start = e.startTime;
+      } else {
+        this.ruleForm.start = "";
+      }
+      if (e.endTime !== "") {
+        this.ruleForm.end = e.endTime;
+      } else {
+        this.ruleForm.end = "";
+      }
+    },
+    async resetForm() {
+      // 重置
+      await this.$nextTick(() => {
+        if (this.$refs.ruleForm) {
+          this.$refs.ruleForm.resetFields();
+          this.$refs.ruleForm.clearValidate();
+          this.ruleForm = {
+            start: "",
+            end: "",
+            id: "",
+          };
+        }
+      });
+    },
+    async submitForm() {
+      await this.$refs.ruleForm.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          const model = JSON.parse(JSON.stringify(this.ruleForm));
+          let res = await asyncRequest.add(model);
+          this.loading = false;
+          if (res && res.code === 0) {
+            this.$notify.success({
+              title: "需求创建成功!",
+              message: "",
+            });
+            this.showModelThis = false;
+            // 刷新
+            this.$emit("refresh");
+          } else if (res && res.code >= 100 && res.code <= 104) {
+            await this.logout();
+          } else {
+            this.$message.warning(res.message);
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+  },
+};
+</script>
+
+   <style lang="scss" scoped>
+.account {
+}
+</style>

+ 18 - 289
src/views/search/standBook/index.vue

@@ -4,59 +4,30 @@
       v-loading="loading"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
-      <div class="standBook-ul-box">
-        <ul class="standBook-ul clearfix">
-          <li v-for="item in options" :key="item.value">
-            <div class="label">{{ item.label }}:</div>
-            <div class="time">
-              <period-date-picker
-                :start="item.start"
-                :end="item.end"
-                :type="0"
-                :width="'135px'"
-                :size="searchSize"
-                @timeReturned="timeReturned($event, item.value)"
-              />
-            </div>
-            <div class="operation">
-              <el-button
-                type="primary"
-                class="fr"
-                icon="el-icon-download"
-                style="margin-left: 15px"
-                :size="searchSize"
-                v-if="powers.some((item) => item == '049')"
-                @click="batchExport(item.value)"
-                >导出</el-button
-              >
-              <el-button
-                v-if="powers.some((item) => item == '024')"
-                type="warning"
-                class="fr"
-                :size="searchSize"
-                @click="restSearch(item.value)"
-              >
-                重置
-              </el-button>
-            </div>
-          </li>
-        </ul>
-      </div>
+      <el-tabs type="border-card" v-model="activeName">
+        <el-tab-pane label="实时导出" name="1">
+          <real-time-export/>
+        </el-tab-pane>
+        <el-tab-pane label="预约导出" name="2"> 
+          <pre-export/>
+        </el-tab-pane>
+      </el-tabs>
     </div>
-
     <no-auth v-else></no-auth>
   </div>
 </template>
 <script>
 import resToken from "@/mixins/resToken";
 import urlConfig from "@/apis/url-config";
-import PeriodDatePicker from "@/components/PeriodDatePicker";
+import realTimeExport from "./real-time-export"
+import preExport from "./pre-export"
 import { mapGetters } from "vuex";
 export default {
   name: "standBook",
   mixins: [resToken],
   components: {
-    PeriodDatePicker,
+    realTimeExport,
+    preExport
   },
   computed: {
     //组件SIZE设置
@@ -76,264 +47,22 @@ export default {
   },
   data() {
     return {
-      options: [
-  //  {
-  //         value: "13",
-  //         label: "出入库明细表",
-  //         start: "",
-  //         end: "",
-  //         url: "outinreport",
-  //       },
-  //       {
-  //         value: "14",
-  //         label: "收入明细表",
-  //         start: "",
-  //         end: "",
-  //         url: "inforeport",
-  //       },
-  //          {
-  //         value: "15",
-  //         label: "回票公司明细表",
-  //         start: "",
-  //         end: "",
-  //         url: "invcomreport",
-  //       },
-  //       {
-  //         value: "16",
-  //         label: "回票明细表",
-  //         start: "",
-  //         end: "",
-  //         url: "invreport",
-  //       },
-        {
-          value: "11",
-          label: "应收账款账龄表",
-          start: "",
-          end: "",
-          url: "downqrdpay",
-        },
-        {
-          value: "12",
-          label: "应收账款开票汇总表",
-          start: "",
-          end: "",
-          url: "downqrdinv",
-        },
-
-
-        {
-          value: "6",
-          label: "应收台账",
-          start: "",
-          end: "",
-          url: "Admin/downreportcwtz",
-        },
-        {
-          value: "1",
-          label: "确认单台账",
-          start: "",
-          end: "",
-          url: "Admin/downreportqrdtz",
-        },
-        {
-          value: "2",
-          label: "确认单明细",
-          start: "",
-          end: "",
-          url: "Admin/downreportqrd",
-        },
-        {
-          value: "3",
-          label: "采购单台账",
-          start: "",
-          end: "",
-          url: "Admin/downreportcgdtz",
-        },
-        {
-          value: "4",
-          label: "采购单明细",
-          start: "",
-          end: "",
-          url: "Admin/downreportcgd",
-        },
-
-        {
-          value: "5",
-          label: "退货台账",
-          start: "",
-          end: "",
-          url: "Admin/downreportthtz",
-        },
-                {
-          value: "7",
-          label: "核算确认单",
-          start: "",
-          end: "",
-          url: "downqrd",
-        },
-        {
-          value: "8",
-          label: "核算采购单",
-          start: "",
-          end: "",
-          url: "downcgd",
-        },
-        {
-          value: "9",
-          label: "业绩确认采购单",
-          start: "",
-          end: "",
-          url: "downqrdtz",
-        },
-        {
-          value: "10",
-          label: "业绩退货单",
-          start: "",
-          end: "",
-          url: "downth",
-        },
-      ],
-
+      activeName: "1",
       loading: false,
-
       fileUrl: urlConfig.baseURL,
-      // 表格 - 数据
-      tableData: [],
     };
   },
+  mounted(){
+    this.activeName="1"
+  },
   methods: {
-    restSearch(type) {
-      let index = this.resType(type);
-      if (index !== -1) {
-        this.options[index].start = "";
-        this.options[index].end = "";
-      }
-    },
-
-    async timeReturned(e, type) {
-      let index = this.resType(type);
-      if (index !== -1) {
-        if (e.startTime !== "") {
-          this.options[index].start = e.startTime;
-        } else {
-          this.options[index].start = "";
-        }
-        if (e.endTime !== "") {
-          this.options[index].end = e.endTime;
-        } else {
-          this.options[index].end = "";
-        }
-      }
-    },
-
-    resType(value) {
-      return this.options.findIndex((v1) => v1.value === value);
-    },
-    /**
-     * 批量导出开票信息
-     * * @param {Array} selection //选中的对账编码
-     */
-    async batchExport(type) {
-      let index = this.resType(type);
-      if (index !== -1) {
-        let url = this.options[index].url;
-        let title = this.options[index].label;
-        let model = {
-          start: this.options[index].start,
-          end: this.options[index].end,
-        };
-        if (!this.loading) {
-          if (model.start === "" || model.end === "") {
-            this.$message.warning("请选择时间区间!");
-            return;
-          }
-          this.loading = true;
-          let httpType = `aplication/zip`;
-          axios({
-            method: "post",
-            url: this.fileUrl + url,
-            responseType: "blob",
-            data: model,
-            headers: {
-              Accept: httpType,
-            },
-          })
-            .then((res) => {
-              if (res && res.status == 200 && res.data) {
-                let blob = new Blob([res.data], {
-                  type: httpType,
-                });
-                let url = window.URL.createObjectURL(blob);
-                let aLink = document.createElement("a");
-                aLink.style.display = "none";
-                aLink.href = url;
-                aLink.setAttribute(
-                  "download",
-                  `${model.start}至${model.end}${title}.zip`
-                );
-                document.body.appendChild(aLink);
-                aLink.click();
-                document.body.removeChild(aLink); //下载完成移除元素
-                window.URL.revokeObjectURL(url); //释放掉blob对象
-
-                this.$message.success(title + `信息导出成功!`);
-                setTimeout(() => {
-                  this.loading = false;
-                }, 500);
-              } else {
-                this.$message.error(res.data.message);
-                setTimeout(() => {
-                  this.loading = false;
-                }, 500);
-              }
-            })
-            .catch((error) => {
-              this.loading = false;
-            });
-        }
-      }
-    },
+  
   },
 };
 </script>
 
 <style lang="scss" scoped>
 .standBook {
-  .standBook-ul-box {
-    width: 100%;
-    padding: 25px 10% 0 4%;
-    text-align: center;
-
-    .standBook-ul {
-      width: 680px;
-      display: block;
-      box-sizing: border-box;
-      text-align: left;
-      margin: 0 auto;
-      li {
-        float: left;
-        width: 100%;
-        display: block;
-        box-sizing: border-box;
-        padding: 12px 0;
-        .label {
-          width: 180px;
-          float: left;
-          height: 32px;
-          text-align: right;
-          line-height: 32px;
-          padding: 0 15px 0 0;
-        }
-        .time {
-          float: left;
-          width: 300px;
-        }
-        .operation {
-          float: left;
-          width: 160px;
-        }
-      }
-    }
-  }
+  
 }
 </style>

+ 270 - 0
src/views/search/standBook/pre-export.vue

@@ -0,0 +1,270 @@
+<template>
+  <div class="pre-export">
+    <ex-table
+      style="margin-top: -10px"
+      v-loading="loading"
+      :table="table"
+      :data="tableData"
+      :columns="columns"
+      :page="pageInfo"
+      :size="size"
+      @page-curr-change="handlePageChange"
+      @page-size-change="handleSizeChange"
+      @screen-reset="
+        pageInfo.curr = 1;
+        parmValue.page = 1;
+        searchList();
+      "
+      @screen-submit="
+        pageInfo.curr = 1;
+        parmValue.page = 1;
+        searchList();
+      "
+    >
+      <template #table-header="{}">
+        <div style="width: 100%">
+          <el-row style="padding: 0 0 0 80px">
+            <el-col :span="24">
+              <el-col :span="12" style="width:355px">
+                <el-alert :closable="false" title="新建的需求业务报表,会在隔天01:00开始生成文件!" type="warning"> </el-alert>
+              </el-col>
+
+              <el-col
+                :span="3"
+                style="width: 66px; float: right"
+                v-if="powers.some((item) => item == '002')"
+              >
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              <el-col
+                :span="4"
+                style="width: 66px; float: right"
+                v-if="powers.some((item) => item == '024')"
+              >
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>
+              <el-col
+                :span="3"
+                style="width: 66px; float: right"
+                v-if="powers.some((item) => item == '003')"
+              >
+                <el-button
+                  :size="searchSize"
+                  type="success"
+                  style="float: right"
+                  @click="openModal('add', false)"
+                >
+                  添加
+                </el-button>
+              </el-col>
+            </el-col>
+          </el-row>
+        </div>
+      </template>
+      <template #status="{ scope }">
+        <el-tag
+          :size="tablebtnSize"
+          :type="scope.row.status == '1' ? 'warning' : 'success'"
+          v-text="
+            (statusOptions.find((item) => item.id == scope.row.status) || {})
+              .label || '--'
+          "
+        ></el-tag>
+      </template>
+      <template #operation="{ scope }">
+        <el-tooltip
+          v-if="powers.some((item) => item == '049') && scope.row.status == '2'"
+          effect="dark"
+          content="导出"
+          placement="top"
+        >
+          <i
+            class="el-icon-download tb-icon"
+            @click="batchExport(scope.row.down_url)"
+          ></i>
+        </el-tooltip>
+      </template>
+    </ex-table>
+    <add-edit
+      :id="modelId"
+      :sitem="sitem"
+      :show-model="showModel"
+      :is-detail="isDetail"
+      @refresh="searchList"
+      @cancel="showModel = false"
+    />
+  </div>
+</template>
+<script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import asyncRequest from "@/apis/service/search/standBook";
+import ExTable from "@/components/ExTableNew.vue";
+import addEdit from "./addEdit";
+import { mapGetters } from "vuex";
+import urlConfig from "@/apis/url-config";
+import resToken from "@/mixins/resToken";
+export default {
+  name: "Account",
+  components: {
+    addEdit,
+    ExTable,
+  },
+  mixins: [mixinPage, resToken],
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "standBook"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
+  data() {
+    return {
+      fileUrl: urlConfig.baseURL,
+      // 状态
+      statusOptions: [
+        { id: "1", label: "待执行" },
+        { id: "2", label: "已完成" },
+      ],
+      loading: true,
+      showModel: false,
+      parmValue: {
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      },
+      // 表格 - 数据
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格 - 列参数
+      columns: [
+        {
+          prop: "name",
+          label: "业务表名称",
+          "min-width": "130px",
+        },
+        {
+          prop: "start",
+          label: "数据开始时间",
+          "min-width": "140px",
+        },
+        {
+          prop: "end",
+          width: "140px",
+          "min-width": "数据结束时间",
+        },
+        {
+          prop: "apply_name",
+          label: "申请人",
+          "min-width": "70px",
+        },
+        {
+          prop: "status",
+          label: "状态",
+          _slot_: "status",
+          "min-width": "70px",
+        },
+
+        {
+          prop: "expiretime",
+          label: "文件过期时间",
+          "min-width": "140px",
+          sortable: true,
+        },
+        {
+          prop: "addtime",
+          label: "创建时间",
+          "min-width": "140px",
+          sortable: true,
+        },
+        {
+          prop: "",
+          label: "操作",
+          fixed: "right",
+          width: "52px",
+          _noset_: true,
+          _slot_: "operation",
+        },
+      ],
+    };
+  },
+  mounted() {
+    this.searchList();
+  },
+  methods: {
+    restSearch() {
+      this.parmValue = {
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      this.searchList();
+    },
+    openModal(id, isDetail, sitem) {
+      this.showModel = true;
+    },
+
+    batchExport(content) {
+      if (!this.loading) {
+        this.loading = true;
+        let aEle = document.createElement("a"); // 创建a标签
+        // aEle.download = fileName; // 设置下载文件的文件名
+        aEle.href = this.fileUrl + content; // content为后台返回的下载地址
+        aEle.click(); // 设置点击事件
+        // document.body.removeChild(aEle); //下载完成移除元素
+        this.$message.success(`导出成功!`);
+        setTimeout(() => {
+          this.loading = false;
+        }, 500);
+      }
+    },
+    async searchList() {
+      this.loading = true;
+      const res = await asyncRequest.exportList(this.parmValue);
+      if (res && res.code === 0 && res.data) {
+        this.tableData = res.data.list;
+        this.pageInfo.total = Number(res.data.count);
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.account {
+}
+</style>

+ 327 - 0
src/views/search/standBook/real-time-export.vue

@@ -0,0 +1,327 @@
+<template>
+  <div class="real-time-export">
+    <div class="standBook-ul-box">
+      <ul class="standBook-ul clearfix">
+        <li v-for="item in options" :key="item.value">
+          <div class="label">{{ item.label }}:</div>
+          <div class="time">
+            <period-date-picker
+              :start="item.start"
+              :end="item.end"
+              :type="0"
+              :width="'135px'"
+              :size="searchSize"
+              @timeReturned="timeReturned($event, item.value)"
+            />
+          </div>
+          <div class="operation">
+            <el-button
+              type="primary"
+              class="fr"
+              icon="el-icon-download"
+              style="margin-left: 15px"
+              :size="searchSize"
+              v-if="powers.some((item) => item == '049')"
+              @click="batchExport(item.value)"
+              >导出</el-button
+            >
+            <el-button
+              v-if="powers.some((item) => item == '024')"
+              type="warning"
+              class="fr"
+              :size="searchSize"
+              @click="restSearch(item.value)"
+            >
+              重置
+            </el-button>
+          </div>
+        </li>
+      </ul>
+    </div>
+  </div>
+</template>
+<script>
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import PeriodDatePicker from "@/components/PeriodDatePicker";
+import { mapGetters } from "vuex";
+export default {
+  name: "standBook",
+  mixins: [resToken],
+  components: {
+    PeriodDatePicker,
+  },
+  computed: {
+    //组件SIZE设置
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    //组件SIZE设置
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "standBook"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
+  data() {
+    return {
+      options: [
+        // {
+        //   value: "13",
+        //   label: "出入库明细表",
+        //   start: "",
+        //   end: "",
+        //   url: "outinreport",
+        // },
+        // {
+        //   value: "14",
+        //   label: "收入明细表",
+        //   start: "",
+        //   end: "",
+        //   url: "inforeport",
+        // },
+        // {
+        //   value: "15",
+        //   label: "回票公司明细表",
+        //   start: "",
+        //   end: "",
+        //   url: "invcomreport",
+        // },
+        // {
+        //   value: "16",
+        //   label: "回票明细表",
+        //   start: "",
+        //   end: "",
+        //   url: "invreport",
+        // },
+        {
+          value: "11",
+          label: "应收账款账龄表",
+          start: "",
+          end: "",
+          url: "downqrdpay",
+        },
+        {
+          value: "12",
+          label: "应收账款开票汇总表",
+          start: "",
+          end: "",
+          url: "downqrdinv",
+        },
+
+        {
+          value: "6",
+          label: "应收台账",
+          start: "",
+          end: "",
+          url: "Admin/downreportcwtz",
+        },
+        {
+          value: "1",
+          label: "确认单台账",
+          start: "",
+          end: "",
+          url: "Admin/downreportqrdtz",
+        },
+        {
+          value: "2",
+          label: "确认单明细",
+          start: "",
+          end: "",
+          url: "Admin/downreportqrd",
+        },
+        {
+          value: "3",
+          label: "采购单台账",
+          start: "",
+          end: "",
+          url: "Admin/downreportcgdtz",
+        },
+        {
+          value: "4",
+          label: "采购单明细",
+          start: "",
+          end: "",
+          url: "Admin/downreportcgd",
+        },
+
+        {
+          value: "5",
+          label: "退货台账",
+          start: "",
+          end: "",
+          url: "Admin/downreportthtz",
+        },
+        {
+          value: "7",
+          label: "核算确认单",
+          start: "",
+          end: "",
+          url: "downqrd",
+        },
+        {
+          value: "8",
+          label: "核算采购单",
+          start: "",
+          end: "",
+          url: "downcgd",
+        },
+        {
+          value: "9",
+          label: "业绩确认采购单",
+          start: "",
+          end: "",
+          url: "downqrdtz",
+        },
+        {
+          value: "10",
+          label: "业绩退货单",
+          start: "",
+          end: "",
+          url: "downth",
+        },
+      ],
+      loading: false,
+      fileUrl: urlConfig.baseURL,
+    };
+  },
+  methods: {
+    restSearch(type) {
+      let index = this.resType(type);
+      if (index !== -1) {
+        this.options[index].start = "";
+        this.options[index].end = "";
+      }
+    },
+
+    async timeReturned(e, type) {
+      let index = this.resType(type);
+      if (index !== -1) {
+        if (e.startTime !== "") {
+          this.options[index].start = e.startTime;
+        } else {
+          this.options[index].start = "";
+        }
+        if (e.endTime !== "") {
+          this.options[index].end = e.endTime;
+        } else {
+          this.options[index].end = "";
+        }
+      }
+    },
+
+    resType(value) {
+      return this.options.findIndex((v1) => v1.value === value);
+    },
+    /**
+     * 批量导出开票信息
+     * * @param {Array} selection //选中的对账编码
+     */
+    async batchExport(type) {
+      let index = this.resType(type);
+      if (index !== -1) {
+        let url = this.options[index].url;
+        let title = this.options[index].label;
+        let model = {
+          start: this.options[index].start,
+          end: this.options[index].end,
+        };
+        if (!this.loading) {
+          if (model.start === "" || model.end === "") {
+            this.$message.warning("请选择时间区间!");
+            return;
+          }
+          this.loading = true;
+          let httpType = `aplication/zip`;
+          axios({
+            method: "post",
+            url: this.fileUrl + url,
+            responseType: "blob",
+            data: model,
+            headers: {
+              Accept: httpType,
+            },
+          })
+            .then((res) => {
+              if (res && res.status == 200 && res.data) {
+                let blob = new Blob([res.data], {
+                  type: httpType,
+                });
+                let url = window.URL.createObjectURL(blob);
+                let aLink = document.createElement("a");
+                aLink.style.display = "none";
+                aLink.href = url;
+                aLink.setAttribute(
+                  "download",
+                  `${model.start}至${model.end}${title}.zip`
+                );
+                document.body.appendChild(aLink);
+                aLink.click();
+                document.body.removeChild(aLink); //下载完成移除元素
+                window.URL.revokeObjectURL(url); //释放掉blob对象
+
+                this.$message.success(title + `信息导出成功!`);
+                setTimeout(() => {
+                  this.loading = false;
+                }, 500);
+              } else {
+                this.$message.error(res.data.message);
+                setTimeout(() => {
+                  this.loading = false;
+                }, 500);
+              }
+            })
+            .catch((error) => {
+              this.loading = false;
+            });
+        }
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.real-time-export {
+  .standBook-ul-box {
+    width: 100%;
+    padding: 0 10% 0 4%;
+    text-align: center;
+
+    .standBook-ul {
+      width: 680px;
+      display: block;
+      box-sizing: border-box;
+      text-align: left;
+      margin: 0 auto;
+      li {
+        float: left;
+        width: 100%;
+        display: block;
+        box-sizing: border-box;
+        padding: 10px 0;
+        .label {
+          width: 180px;
+          float: left;
+          height: 32px;
+          text-align: right;
+          line-height: 32px;
+          padding: 0 15px 0 0;
+        }
+        .time {
+          float: left;
+          width: 300px;
+        }
+        .operation {
+          float: left;
+          width: 160px;
+        }
+      }
+    }
+  }
+}
+</style>

Неке датотеке нису приказане због велике количине промена