Browse Source

Merge branch 'sit'

lucky 2 years ago
parent
commit
8bc67cd6e7
59 changed files with 11074 additions and 54 deletions
  1. 0 0
      dist/index.html
  2. BIN
      dist/static/css/chunk-00d6e94a.fd19ecc9.css.gz
  3. 0 0
      dist/static/css/chunk-21c784f6.40495e64.css
  4. BIN
      dist/static/css/chunk-21c784f6.40495e64.css.gz
  5. 0 0
      dist/static/js/app.429277cf.js
  6. BIN
      dist/static/js/app.429277cf.js.gz
  7. BIN
      dist/static/js/app.e8069d1b.js.gz
  8. 0 0
      dist/static/js/chunk-00d6e94a.b0b16fdc.js
  9. BIN
      dist/static/js/chunk-00d6e94a.b0b16fdc.js.gz
  10. 0 0
      dist/static/js/chunk-0b024dde.8a83fcbf.js
  11. 0 0
      dist/static/js/chunk-15caf0ce.11c4a5cc.js
  12. 0 0
      dist/static/js/chunk-1c777704.79339173.js
  13. 0 0
      dist/static/js/chunk-1d0a69b6.c0665910.js
  14. 0 0
      dist/static/js/chunk-21c784f6.16c4dbad.js
  15. BIN
      dist/static/js/chunk-21c784f6.16c4dbad.js.gz
  16. 0 0
      dist/static/js/chunk-44401bcc.fb102cf5.js
  17. 0 0
      dist/static/js/chunk-4ff11544.f294bf12.js
  18. 0 0
      dist/static/js/chunk-7a946667.f287d190.js
  19. 0 0
      dist/static/js/chunk-7a946667.f287d190.js.gz
  20. 0 0
      dist/static/js/chunk-a4a85b14.cc8d91e9.js
  21. 0 0
      dist/static/js/chunk-aa660142.8382e5a4.js
  22. 0 0
      dist/static/js/chunk-aa660142.8382e5a4.js.gz
  23. 0 0
      dist/static/js/chunk-b7f101b0.8651d032.js
  24. 0 0
      dist/static/js/chunk-ee636058.26387023.js
  25. 0 0
      dist/static/js/chunk-libs.2f6ba53d.js
  26. 0 0
      dist/static/js/chunk-libs.2f6ba53d.js.gz
  27. 112 0
      src/apis/service/reportQuery/saleReport/index.js
  28. 1 1
      src/views/reportQuery/purchaseReport/index.vue
  29. 1924 0
      src/views/reportQuery/saleReport/components/columns.js
  30. 225 0
      src/views/reportQuery/saleReport/components/table1.vue
  31. 298 0
      src/views/reportQuery/saleReport/components/table10.vue
  32. 317 0
      src/views/reportQuery/saleReport/components/table11.vue
  33. 310 0
      src/views/reportQuery/saleReport/components/table12.vue
  34. 310 0
      src/views/reportQuery/saleReport/components/table13.vue
  35. 316 0
      src/views/reportQuery/saleReport/components/table14.vue
  36. 317 0
      src/views/reportQuery/saleReport/components/table15.vue
  37. 374 0
      src/views/reportQuery/saleReport/components/table16.vue
  38. 312 0
      src/views/reportQuery/saleReport/components/table17.vue
  39. 312 0
      src/views/reportQuery/saleReport/components/table18.vue
  40. 312 0
      src/views/reportQuery/saleReport/components/table19.vue
  41. 317 0
      src/views/reportQuery/saleReport/components/table2.vue
  42. 317 0
      src/views/reportQuery/saleReport/components/table3.vue
  43. 333 0
      src/views/reportQuery/saleReport/components/table4.vue
  44. 317 0
      src/views/reportQuery/saleReport/components/table5.vue
  45. 16 0
      src/views/reportQuery/saleReport/components/table5.vue.rej
  46. 310 0
      src/views/reportQuery/saleReport/components/table6.vue
  47. 317 0
      src/views/reportQuery/saleReport/components/table7.vue
  48. 317 0
      src/views/reportQuery/saleReport/components/table8.vue
  49. 342 0
      src/views/reportQuery/saleReport/components/table9.vue
  50. 2 0
      src/views/reportQuery/saleReport/ex-table/index.js
  51. 470 0
      src/views/reportQuery/saleReport/ex-table/main.vue
  52. 0 0
      src/views/reportQuery/saleReport/ex-table/表格+分页
  53. 105 53
      src/views/reportQuery/saleReport/index.vue
  54. 2 0
      src/views/reportQuery/saleReport/period-date-picker/index.js
  55. 147 0
      src/views/reportQuery/saleReport/period-date-picker/main.vue
  56. 0 0
      src/views/reportQuery/saleReport/period-date-picker/日期选择区间
  57. 1994 0
      src/views/reportQuery/test/columns.js
  58. 58 0
      src/views/reportQuery/test/detail.vue
  59. 270 0
      src/views/reportQuery/test/index.vue

File diff suppressed because it is too large
+ 0 - 0
dist/index.html


BIN
dist/static/css/chunk-00d6e94a.fd19ecc9.css.gz


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-21c784f6.40495e64.css


BIN
dist/static/css/chunk-21c784f6.40495e64.css.gz


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.429277cf.js


BIN
dist/static/js/app.429277cf.js.gz


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


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-00d6e94a.b0b16fdc.js


BIN
dist/static/js/chunk-00d6e94a.b0b16fdc.js.gz


+ 0 - 0
dist/static/js/chunk-0b024dde.74597cc7.js → dist/static/js/chunk-0b024dde.8a83fcbf.js


+ 0 - 0
dist/static/js/chunk-15caf0ce.9459e3ce.js → dist/static/js/chunk-15caf0ce.11c4a5cc.js


+ 0 - 0
dist/static/js/chunk-1c777704.5b175cc8.js → dist/static/js/chunk-1c777704.79339173.js


+ 0 - 0
dist/static/js/chunk-1d0a69b6.f937bf2c.js → dist/static/js/chunk-1d0a69b6.c0665910.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-21c784f6.16c4dbad.js


BIN
dist/static/js/chunk-21c784f6.16c4dbad.js.gz


+ 0 - 0
dist/static/js/chunk-44401bcc.0a5accae.js → dist/static/js/chunk-44401bcc.fb102cf5.js


+ 0 - 0
dist/static/js/chunk-4ff11544.5f956d5b.js → dist/static/js/chunk-4ff11544.f294bf12.js


+ 0 - 0
dist/static/js/chunk-7a946667.6847e4bc.js → dist/static/js/chunk-7a946667.f287d190.js


+ 0 - 0
dist/static/js/chunk-7a946667.6847e4bc.js.gz → dist/static/js/chunk-7a946667.f287d190.js.gz


+ 0 - 0
dist/static/js/chunk-a4a85b14.582c3571.js → dist/static/js/chunk-a4a85b14.cc8d91e9.js


+ 0 - 0
dist/static/js/chunk-aa660142.9d946b3c.js → dist/static/js/chunk-aa660142.8382e5a4.js


+ 0 - 0
dist/static/js/chunk-aa660142.9d946b3c.js.gz → dist/static/js/chunk-aa660142.8382e5a4.js.gz


+ 0 - 0
dist/static/js/chunk-b7f101b0.8919805f.js → dist/static/js/chunk-b7f101b0.8651d032.js


+ 0 - 0
dist/static/js/chunk-ee636058.02107612.js → dist/static/js/chunk-ee636058.26387023.js


+ 0 - 0
dist/static/js/chunk-libs.f1d2ac0f.js → dist/static/js/chunk-libs.2f6ba53d.js


+ 0 - 0
dist/static/js/chunk-libs.f1d2ac0f.js.gz → dist/static/js/chunk-libs.2f6ba53d.js.gz


+ 112 - 0
src/apis/service/reportQuery/saleReport/index.js

@@ -0,0 +1,112 @@
+//采购部门报表
+import http from "@/apis/axios";
+const api = "admin/";
+export default {
+  // 添加
+  add: (data, params) => http(api + "add", data, "post", params),
+  // 分页查询
+  list: (data, params) => http(api + "cgdlist", data, "post", params),
+  // 删除
+  delete: (data, params) => http(api + "delete", data, "post", params),
+  // 详情
+  detail: (data, params) => http(api + "cgdinfo", data, "post", params),
+  // 更新
+  update: (data, params) => http(api + "cgdedit", data, "post", params),
+
+  //日报
+  saleexportconsultday: (data, params) => http(api + "saleexportconsultday", data, "post", params),
+  //日报导出
+  saleexportconsultdayexport: (data, params) => http(api + "saleexportconsultdayexport", data, "post", params),
+  //咨询单报表
+  saleexportconsultinfo: (data, params) => http(api + "saleexportconsultinfo", data, "post", params),
+  //咨询单报表导出
+  saleexportconsultinfoexport: (data, params) => http(api + "saleexportconsultinfoexport", data, "post", params),
+  //订单报表
+  saleexportlist: (data, params) => http(api + "saleexportlist", data, "post", params),
+  //订单报表导出
+  saleexport: (data, params) => http(api + "saleexport", data, "post", params),
+  //未发货报表
+  saleexportnotout: (data, params) => http(api + "saleexportnotout", data, "post", params),
+  //未发货报表导出
+  saleexportnotoutexport: (data, params) => http(api + "saleexportnotoutexport", data, "post", params),
+  //未签收报表
+  saleexportnotsigned: (data, params) => http(api + "saleexportnotsigned", data, "post", params),
+  //未签收报表导出
+  saleexportnotsignedexport: (data, params) => http(api + "saleexportnotsignedexport", data, "post", params),
+  //售后报表
+  saleexportorderreturn: (data, params) => http(api + "saleexportorderreturn", data, "post", params),
+  //售后报表导出
+  saleexportorderreturnexport: (data, params) => http(api + "saleexportorderreturnexport", data, "post", params),
+  //产品热销排行
+  saleexportgoodrankinglist: (data, params) => http(api + "saleexportgoodrankinglist", data, "post", params),
+  //产品热销排行导出
+  saleexportgoodrankinglistexport: (data, params) => http(api + "saleexportgoodrankinglistexport", data, "post", params),
+
+
+  // 暂无数据____________________________________________
+  //未开票报表
+  reportorderlistdetailed: (data, params) => http(api + "reportorderlistdetailed", data, "post", params),
+  //未开票报表导出
+  reportorderlistdetailedexport: (data, params) => http(api + "reportorderlistdetailedexport", data, "post", params),
+
+
+
+
+  //订单导出表
+  saleexportsaledetailed: (data, params) => http(api + "saleexportsaledetailed", data, "post", params),
+  //订单导出表导出
+  saleexportsaledetailedexport: (data, params) => http(api + "saleexportsaledetailedexport", data, "post", params),
+  //咨询单导出明细
+  saleexportconsultdetailed: (data, params) => http(api + "saleexportconsultdetailed", data, "post", params),
+  //咨询单导出明细导出
+  saleexportconsultdetailedexport: (data, params) => http(api + "saleexportconsultdetailedexport", data, "post", params),
+  //工差明细表
+  saleexportsalediff: (data, params) => http(api + "saleexportsalediff", data, "post", params),
+  //工差明细表导出
+  saleexportsalediffexport: (data, params) => http(api + "saleexportsalediffexport", data, "post", params),
+  //退货明细表
+  saleexportthdata: (data, params) => http(api + "saleexportthdata", data, "post", params),
+  //退货明细表导出
+  saleexportthdataexport: (data, params) => http(api + "saleexportthdataexport", data, "post", params),
+  //售后明细表
+  seord: (data, params) => http(api + "seord", data, "post", params),
+  //售后明细表导出
+  seorde: (data, params) => http(api + "seorde", data, "post", params),
+  //议价明细表
+  sebo: (data, params) => http(api + "sebo", data, "post", params),
+  //议价明细表导出
+  seboe: (data, params) => http(api + "seboe", data, "post", params),
+  //无地址待发货订单
+  seoona: (data, params) => http(api + "seoona", data, "post", params),
+  //无地址待发货订单导出
+  seoonae: (data, params) => http(api + "seoonae", data, "post", params),
+  //有地址待发货订单
+  seooa: (data, params) => http(api + "seooa", data, "post", params),
+  //有地址待发货订单导出
+  seooae: (data, params) => http(api + "seooae", data, "post", params),
+
+
+
+
+  
+  //开票明细表
+  reportchangeloglist: (data, params) => http(api + "reportchangeloglist", data, "post", params),
+  //开票明细表导出
+  reportchangelogeexport: (data, params) => http(api + "reportchangelogeexport", data, "post", params),
+  //待开票列表
+  reportchangeloglist: (data, params) => http(api + "reportchangeloglist", data, "post", params),
+  //待开票列表导出
+  reportchangelogeexport: (data, params) => http(api + "reportchangelogeexport", data, "post", params),
+  //待回款列表
+  reportchangeloglist: (data, params) => http(api + "reportchangeloglist", data, "post", params),
+  //待回款列表导出
+  reportchangelogeexport: (data, params) => http(api + "reportchangelogeexport", data, "post", params),
+
+};
+
+
+
+
+
+
+

+ 1 - 1
src/views/reportQuery/purchaseReport/index.vue

@@ -75,7 +75,7 @@ components:{
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "sellOutOrder"
+          (item) => item.menu_route == "purchaseReport"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;

+ 1924 - 0
src/views/reportQuery/saleReport/components/columns.js

@@ -0,0 +1,1924 @@
+//日报
+const table1 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "creater",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "consult_num",
+    label: "当日咨询单数量",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "consult_money",
+    label: "当日咨询单金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_num",
+    label: "当日下单数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_money",
+    label: "当日下单金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "receipt_num",
+    label: "当日签收数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "receipt_money",
+    label: "当日签收金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "invoice_num",
+    label: "当日申报发票数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "invoice_money",
+    label: "当日申报发票金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "after_sales_num",
+    label: "单日售后单数",
+    minWidth: "155px",
+  },
+  {
+    prop: "after_sales_money",
+    label: "单日售后金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "payment_num",
+    label: "当日回款单数",
+    minWidth: "155px",
+  },
+  {
+    prop: "payment_money",
+    label: "当日回款金额",
+    minWidth: "155px",
+  },
+
+]
+//咨询单报表
+const table2 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "creater",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "咨询时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "zxNo",
+    label: "咨询单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "budget_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_fee",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "is_bids",
+    label: "是否采反",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_zhuandan",
+    label: "订单转单",
+    minWidth: "155px",
+  },
+]
+//订单报表
+const table3 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "产品数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "is_stock",
+    label: "是否库存",
+    minWidth: "155px",
+  },
+  {
+    prop: "order_type",
+    label: "订单类型",
+    minWidth: "155px",
+  },
+]
+//未发货报表
+const table4 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "arrive_time",
+    label: "承诺发货时间",
+    minWidth: "155px",
+  },
+]
+
+//未签收报表
+const table5 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "sendtime",
+    label: "发货时间",
+    minWidth: "155px",
+  },
+]
+
+//售后报表
+const table6 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "售后时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "updatetime",
+    label: "签收时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "result",
+    label: "异常原因",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "处理状态",
+    minWidth: "155px",
+  },
+]
+
+
+//产品热销排行
+const table7 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "cat",
+    label: "产品品类",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  // {
+  //   prop: "supplierNo",
+  //   label: "下单时间",
+  //   minWidth: "155px",
+  // },
+  {
+    prop: "total_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "110px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "100px",
+  },
+
+]
+
+
+//未开票报表___________暂时不做
+const table8 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "name",
+    label: "发票申请单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "total",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "total",
+    label: "承诺回款时间",
+    minWidth: "155px",
+  },
+]
+
+
+//订单导出表
+const table9 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "确认单下单时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "order_type",
+    label: "订单类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "订单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "name",
+    label: "创建人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "company",
+    label: "销售方公司",
+    minWidth: "125px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "购买方公司(客户名称)",
+    minWidth: "155px",
+  },
+  {
+    prop: "platform_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "platform_order",
+    label: "平台订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "poNo",
+    label: "其他单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "paytime",
+    label: "承诺回款时间",
+    minWidth: "125px",
+  },
+  {
+    prop: "order_use",
+    label: "订单用途",
+    minWidth: "155px",
+  },
+  {
+    prop: "activity_type",
+    label: "活动类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_cat_name",
+    label: "一级分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "tax",
+    label: "税率",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "下单数量",
+    minWidth: "125px",
+  },
+  {
+    prop: "total_price",
+    label: "销售总额",
+    minWidth: "155px",
+  },
+  {
+    prop: "cgder",
+    label: "采购人",
+    minWidth: "155px",
+  },
+  {
+    prop: "customized",
+    label: "工期时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "arrive_time",
+    label: "要求到货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "remark",
+    label: "备注",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_stock",
+    label: "是否库存",
+    minWidth: "155px",
+  },
+
+
+]
+
+
+//咨询单导出明细
+const table10 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "咨询时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "salesman",
+    label: "业务员",
+    minWidth: "155px",
+  },
+  {
+    prop: "name",
+    label: "业务部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "zxNo",
+    label: "咨询单号",
+    minWidth: "155px",
+  },
+
+  // {
+  //   prop: "",
+  //   label: "咨询类型",
+  //   minWidth: "155px",
+  // },
+
+  {
+    prop: "first_customer_org",
+    label: "一级组织",
+    minWidth: "105px",
+  },
+  
+  {
+    prop: "second_customer_org",
+    label: "二级组织",
+    minWidth: "150px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "105px",
+  },
+  {
+    prop: "use_desc",
+    label: "产品用途",
+    minWidth: "115px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "115px",
+  },
+  {
+    prop: "brand_name",
+    label: "品牌",
+    minWidth: "155px",
+  },
+  {
+    prop: "model",
+    label: "型号",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "产品编码",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_cat_name",
+    label: "一级分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "budget_price",
+    label: "预算单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "105px",
+  },
+  {
+    prop: "num",
+    label: "需求数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "budget_total_price",
+    label: "预算总价",
+    minWidth: "155px",
+  },
+
+  // {
+  //   prop: "",
+  //   label: "产品单价(定价)",
+  //   minWidth: "155px",
+  // },
+
+  {
+    prop: "arrival_time",
+    label: "要求到货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_addrs",
+    label: "是否一地",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_custom",
+    label: "定制",
+    minWidth: "105px",
+  },
+  {
+    prop: "remark",
+    label: "咨询备注",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "竞单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "bargain_code",
+    label: "上次咨询单单号",
+    minWidth: "155px",
+  },
+ 
+]
+
+//工差明细表
+const table11 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "发起时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "diffCode",
+    label: "工差单号",
+    minWidth: "125px",
+  },
+  {
+    prop: "orderCode",
+    label: "关联确认单",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "poaddtime",
+    label: "确认单下单日期",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "company",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "noble_metal",
+    label: "贵金属种类",
+    minWidth: "105px",
+  },
+  {
+    prop: "good_num",
+    label: "下单数量",
+    minWidth: "115px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "总额",
+    minWidth: "105px",
+  },
+  {
+    prop: "good_weight",
+    label: "商品总重量",
+    minWidth: "115px",
+  },
+  {
+    prop: "diff_weight",
+    label: "工差重量",
+    minWidth: "155px",
+  },
+  {
+    prop: "diff_price",
+    label: "销售工差总费用",
+    minWidth: "105px",
+  },
+  {
+    prop: "is_update_sale",
+    label: "是否修改销售额",
+    minWidth: "115px",
+  },
+
+]
+
+//退货明细表
+const table12 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "return_time",
+    label: "退货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "thCode",
+    label: "退货单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "outCode",
+    label: "发货申请单编码",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "退货单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "创建人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "确认单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单日期",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "wsend_num",
+    label: "未发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "th_num",
+    label: "退货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "th_fee",
+    label: "退货销售货款",
+    minWidth: "155px",
+  },
+  {
+    prop: "contactor",
+    label: "发货单联系人",
+    minWidth: "155px",
+  },
+  {
+    prop: "mobile",
+    label: "发货单联系人电话",
+    minWidth: "155px",
+  },
+  {
+    prop: "addr",
+    label: "发货单地址",
+    minWidth: "155px",
+  },
+  {
+    prop: "result_desc",
+    label: "退货原因",
+    minWidth: "155px",
+  },
+]
+
+//售后明细表
+const table13 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "售后时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "returnCode",
+    label: "售后申请编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "outCode",
+    label: "发货申请编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_num",
+    label: "发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "处理状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "error_total_price",
+    label: "异常金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_receive",
+    label: "收货情况",
+    minWidth: "155px",
+  },
+  {
+    prop: "error_num",
+    label: "异常数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "result_desc",
+    label: "异常原因",
+    minWidth: "155px",
+  },
+  {
+    prop: "error_remark",
+    label: "异常备注",
+    minWidth: "155px",
+  },
+  {
+    prop: "except_code",
+    label: "期望意愿",
+    minWidth: "155px",
+  },
+ 
+]
+
+//议价明细表
+const table14 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "议价时间",
+    minWidth: "115px",
+  },
+  {
+    prop: "bargainNo",
+    label: "议价编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "infoNo",
+    label: "咨询单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "议价单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "bidsNo",
+    label: "采返商品编号",
+    minWidth: "115px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "申请人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "议价前售价",
+    minWidth: "155px",
+  },
+  {
+    prop: "after_price",
+    label: "期望售价",
+    minWidth: "155px",
+  },
+  {
+    prop: "result_desc",
+    label: "议价原因",
+    minWidth: "115px",
+  },
+  {
+    prop: "bargain_remark",
+    label: "议价备注",
+    minWidth: "115px",
+  },
+
+
+]
+
+//无地址待发货订单
+const table15 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "cgdNo",
+    label: "采购单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "company",
+    label: "公司名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "send_num",
+    label: "出库总数",
+    minWidth: "155px",
+  },
+  {
+    prop: "cat",
+    label: "商品分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_code",
+    label: "商品编码",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "wsend_num",
+    label: "未发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "send_date",
+    label: "应发货日期",
+    minWidth: "155px",
+  },
+  
+  
+]
+
+
+
+//__________________________________下方数据没更新
+
+
+
+
+
+
+
+
+//有地址待发货订单
+const table16 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "下单日期",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "sendtime",
+    label: "发货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "outCode",
+    label: "发货申请单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "发货申请单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "产品单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "send_num",
+    label: "发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "send_total_price",
+    label: "发货申请单总价",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "申请人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "cgdNo",
+    label: "采购单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "post_name",
+    label: "快递公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "post_code",
+    label: "快递单号",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "contactor",
+    label: "收货人",
+    minWidth: "155px",
+  },
+  {
+    prop: "mobile",
+    label: "收货电话",
+    minWidth: "155px",
+  },
+  {
+    prop: "addr",
+    label: "收货地址",
+    minWidth: "155px",
+  },
+  {
+    prop: "remark",
+    label: "备注",
+    minWidth: "155px",
+  },
+  
+  
+]
+//开票明细表
+const table17 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "销售方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "分公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "购买方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "PO编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "税率",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "下单数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "销售总额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "未开金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "发票号码",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "物流公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "物流单号",
+    minWidth: "155px",
+  },
+
+  
+  
+]
+
+//待开票列表
+const table18 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "销售方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "分公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "购买方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "PO编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "税率",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "下单数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "销售总额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "未开金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票类型",
+    minWidth: "155px",
+  },
+
+  
+  
+]
+//待回款列表
+const table19 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "创建时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "平台订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "业管单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "订单类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "销售方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "企业客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "商品分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "商品数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "总价",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "承诺回款时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "已回款金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "未回款金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "已开票金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "未开票金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "开票状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "发货状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "账期",
+    minWidth: "155px",
+  },
+
+  
+  
+]
+
+
+
+
+
+
+
+export {
+  table1,
+  table2,
+  table3,
+  table4,
+  table5,
+  table6,
+  table7,
+  table8,
+  table9,
+  table10,
+  table11,
+  table12,
+  table13,
+  table14,
+  table15,
+  table16,
+  table17,
+  table18,
+  table19,
+
+}

+ 225 - 0
src/views/reportQuery/saleReport/components/table1.vue

@@ -0,0 +1,225 @@
+<template>
+  <div>
+    <exTableNew
+      v-loading="loading"
+      :table="table"
+      :data="tableData"
+      :columns="table1"
+      :size="size"
+      @screen-reset="searchList()"
+      @screen-submit="searchList()"
+      @selection="selection_change"
+    >
+      <template #table-header="{}">
+        <div style="width: 100%">
+          <el-row style="padding: 0 0 0 80px">
+            <el-col :span="6" style="width: 150px">
+              <el-date-picker
+                v-model="parmValue.date"
+                type="date"
+                :size="searchSize"
+                placeholder="选择日期"
+                value-format="yyyy-MM-dd"
+                @change="searchList()"
+              >
+              </el-date-picker>
+            </el-col>
+
+            <el-col :span="4" style="width: 66px; float: right">
+              <el-button
+                type="warning"
+                class="fr"
+                :size="searchSize"
+                @click="restSearch"
+              >
+                重置
+              </el-button>
+            </el-col>
+            <el-col :span="4" style="width: 66px; float: right">
+              <el-button
+                type="primary"
+                style="margin-left: 30px"
+                @click="download"
+                :size="searchSize"
+                class="fr"
+              >
+                导出
+              </el-button>
+            </el-col>
+            <el-col :span="3" style="width: 66px; float: right">
+              <el-button
+                :size="searchSize"
+                type="primary"
+                style="float: right; margin-left: 5px"
+                @click="searchList"
+              >
+                刷新
+              </el-button>
+            </el-col>
+          </el-row>
+        </div>
+      </template>
+    </exTableNew>
+
+  </div>
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import exTableNew from "../ex-table/main.vue";
+import { table1 } from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive,
+    exTableNew,
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        date: null, //筛选日期
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      // pageInfo: {
+      //   size: 15,
+      //   curr: 1,
+      //   total: 0,
+      // },
+      // 表格表头 - 列参数
+      table1: table1,
+    };
+  },
+  mounted() {
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      // return;
+      this.loading = true;
+
+      const res = await asyncRequest.saleexportconsultday(this.parmValue);
+      if (res && res.code === 0 && res.data) {
+        console.log(res);
+        this.tableData = res.data.list;
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.$message.warning(res.message);
+      }
+      this.loading = false;
+    },
+
+    //重置
+    restSearch() {
+      this.parmValue = {
+        date: "", //筛选日期
+      };
+      // 表格 - 分页
+      // this.pageInfo = {
+      //   size: 15,
+      //   curr: 1,
+      //   total: 0,
+      // };
+      this.searchList();
+    },
+
+    //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件
+    async download() {
+       if ((this.parmValue.date ?? "") === "") {
+         this.$message.warning("请选择导出文件的日期");
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue));
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportconsultdayexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType,
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "日报.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 298 - 0
src/views/reportQuery/saleReport/components/table10.vue

@@ -0,0 +1,298 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table10"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'咨询'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+           <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 150px">
+                <el-input
+                    placeholder="产品用途"
+                    v-model="parmValue.use_desc"
+                    :size="searchSize"
+                    maxlength="100"
+                    @blur="
+                      pageInfo.curr = 1;
+                      parmValue.page = 1;
+                      searchList();
+                    "
+                  >
+                  </el-input>
+              </el-col>
+              
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table10} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        use_desc:"", //处理状态
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table10: table10,
+    };
+  },
+  mounted() {
+    // alert("未采反信息:接口暂无数据,以此提示")
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportconsultdetailed(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        use_desc:"", //处理状态
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        // is_export:0//是否导出0/1
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportconsultdetailedexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "咨询单导出明细.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table11.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table11"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'发起'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table11} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table11: table11,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportsalediff(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportsalediffexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "订单明细报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 310 - 0
src/views/reportQuery/saleReport/components/table12.vue

@@ -0,0 +1,310 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table12"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'退货'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+           <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 150px">
+                
+
+                <el-select
+                  :size="searchSize"
+                  v-model="parmValue.status"
+                  filterable
+                  clearable
+                  placeholder="退货单状态"
+                  style="width: 100%"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                    <el-option label="待业务审批" value="1"></el-option>
+                    <el-option label="待采购审核" value="2"></el-option>
+                    <el-option label="待设置仓库" value="3"></el-option>
+                    <el-option label="待客户退货" value="4"></el-option>
+                    <el-option label="售后已完成" value="5"></el-option>
+                    <el-option label="业务已驳回" value="6"></el-option>
+                    <el-option label="采购已驳回" value="7"></el-option>
+                    <el-option label="申请已取消" value="8"></el-option>
+                </el-select>
+              </el-col>
+              
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table12} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        status:"", //处理状态
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table12: table12,
+    };
+  },
+  mounted() {
+    
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportthdata(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        status:"", //处理状态
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        // is_export:0//是否导出0/1
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportthdataexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "退货明细表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 310 - 0
src/views/reportQuery/saleReport/components/table13.vue

@@ -0,0 +1,310 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table13"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'售后'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+           <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 150px">
+                
+
+                <el-select
+                  :size="searchSize"
+                  v-model="parmValue.status"
+                  filterable
+                  clearable
+                  placeholder="处理状态"
+                  style="width: 100%"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                    <el-option label="待业务审批" value="1"></el-option>
+                    <el-option label="待采购审核" value="2"></el-option>
+                    <el-option label="待设置仓库" value="3"></el-option>
+                    <el-option label="待客户退货" value="4"></el-option>
+                    <el-option label="售后已完成" value="5"></el-option>
+                    <el-option label="业务已驳回" value="6"></el-option>
+                    <el-option label="采购已驳回" value="7"></el-option>
+                    <el-option label="申请已取消" value="8"></el-option>
+                </el-select>
+              </el-col>
+              
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table13} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        status:"", //处理状态
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table13: table13,
+    };
+  },
+  mounted() {
+    
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.seord(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        status:"", //处理状态
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        // is_export:0//是否导出0/1
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/seorde",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "售后明细表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 316 - 0
src/views/reportQuery/saleReport/components/table14.vue

@@ -0,0 +1,316 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table14"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'议价'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table14} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table14: table14,
+    };
+  },
+  mounted() {
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.sebo(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/seboe",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "议价明细报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table15.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table15"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table15} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table15: table15,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.seoona(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/seoonae",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "无地址待发货订单.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 374 - 0
src/views/reportQuery/saleReport/components/table16.vue

@@ -0,0 +1,374 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table16"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="6" style="width: 200px">
+                
+
+                <el-select
+                  :size="searchSize"
+                  v-model="parmValue.status"
+                  filterable
+                  clearable
+                  placeholder="发货申请单状态"
+                  style="width: 100%"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                    <el-option label="待发货" value="0"></el-option>
+                    <el-option label="待库管发货" value="1"></el-option>
+                    <el-option label="已发货待收货" value="2"></el-option>
+                    <el-option label="已收货" value="3"></el-option>
+                    <el-option label="已全部退货" value="4"></el-option>
+                </el-select>
+              </el-col>
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+            <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 353px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date22"
+                      :end="parmValue.end_date22"
+                      :placeholder="'发货'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time2"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 170px; padding: 0 0 0 10px">
+                  <el-input
+                    placeholder="申请人部门"
+                    v-model="parmValue.apply_company"
+                    :size="searchSize"
+                    maxlength="100"
+                    @blur="
+                      pageInfo.curr = 1;
+                      parmValue.page = 1;
+                      searchList();
+                    "
+                  >
+                  </el-input>
+                </el-col>
+              
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table16} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+          start_date: "", //起始时间
+          end_date: "", // 结束时间
+        start_sendtime: "", //起始时间22
+        end_sendtime: "", // 结束时间22
+        status:"", //状态
+        apply_company:"",//部门
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table16: table16,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+
+      if (
+        (this.parmValue.start_sendtime !== "" && this.parmValue.end_sendtime === "") ||
+        (this.parmValue.start_sendtime === "" && this.parmValue.end_sendtime !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.seooa(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;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //起始时间
+          end_date: "", // 结束时间
+        start_sendtime: "", //起始时间22
+        end_sendtime: "", // 结束时间22
+        status:"", //状态
+        apply_company:"",//部门
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+    async time2(e) {
+      this.parmValue.start_sendtime = e.startTime || "";
+      this.parmValue.end_sendtime = e.endTime || "";
+      if (
+        (this.parmValue.start_sendtime !== "" && this.parmValue.end_sendtime === "") ||
+        (this.parmValue.start_sendtime === "" && this.parmValue.end_sendtime !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+     //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+
+      if (
+        (this.parmValue.start_sendtime !== "" && this.parmValue.end_sendtime === "") ||
+        (this.parmValue.start_sendtime === "" && this.parmValue.end_sendtime !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      
+      if((this.parmValue.start_date != "" && this.parmValue.end_date != "") || (this.parmValue.start_sendtime != "" && this.parmValue.end_sendtime != "")){
+        let start_date = new Date(this.parmValue.start_date).valueOf() || new Date(this.parmValue.start_sendtime).valueOf() ;
+        let end_date = new Date(this.parmValue.end_date).valueOf() || new Date(this.parmValue.end_sendtime).valueOf() ;
+        let start_date2 = new Date(this.parmValue.start_sendtime).valueOf() ;
+        let end_date2 = new Date(this.parmValue.end_sendtime).valueOf() ;
+        let flag = (end_date - start_date > 30 * 24 * 60 * 60 * 1000) || (end_date2 - start_date2 > 30 * 24 * 60 * 60 * 1000) ;
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择至少一种导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/seooae",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "有地址待发货订单.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 312 - 0
src/views/reportQuery/saleReport/components/table17.vue

@@ -0,0 +1,312 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table17"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 463px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'产品下线'"
+                      :width="'205px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+            <el-row style="padding: 10px 0 0 0" gutter="10">
+              <el-col :span="6" style="width: 240px">
+                <el-input
+                  clearable
+                  placeholder="采购维护人"
+                  v-model="parmValue.creater"
+                  maxlength="40"
+                  :size="searchSize"
+                  @blur="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                </el-input>
+              </el-col>
+              <el-col :span="6" style="width: 240px">
+                <el-input
+                  clearable
+                  placeholder="供应商名称"
+                  v-model="parmValue.supplier_name"
+                  maxlength="40"
+                  :size="searchSize"
+                  @blur="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                </el-input>
+              </el-col>
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table17} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "purchaseOrder",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+       supplier_name:"", //要搜索的供应商名称
+        creater:"", // 要搜索的采购维护人
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table17: table17,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.reportgoodofflinelist(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;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        supplier_name:"", //要搜索的供应商名称
+        creater:"", // 要搜索的采购维护人
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+     //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/reportgoodofflineexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "产品下线报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 312 - 0
src/views/reportQuery/saleReport/components/table18.vue

@@ -0,0 +1,312 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table18"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 463px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'产品下线'"
+                      :width="'205px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+            <el-row style="padding: 10px 0 0 0" gutter="10">
+              <el-col :span="6" style="width: 240px">
+                <el-input
+                  clearable
+                  placeholder="采购维护人"
+                  v-model="parmValue.creater"
+                  maxlength="40"
+                  :size="searchSize"
+                  @blur="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                </el-input>
+              </el-col>
+              <el-col :span="6" style="width: 240px">
+                <el-input
+                  clearable
+                  placeholder="供应商名称"
+                  v-model="parmValue.supplier_name"
+                  maxlength="40"
+                  :size="searchSize"
+                  @blur="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                </el-input>
+              </el-col>
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table18} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "purchaseOrder",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+       supplier_name:"", //要搜索的供应商名称
+        creater:"", // 要搜索的采购维护人
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table18: table18,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.reportgoodofflinelist(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;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        supplier_name:"", //要搜索的供应商名称
+        creater:"", // 要搜索的采购维护人
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+     //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/reportgoodofflineexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "产品下线报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 312 - 0
src/views/reportQuery/saleReport/components/table19.vue

@@ -0,0 +1,312 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table19"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 463px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'产品下线'"
+                      :width="'205px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+            <el-row style="padding: 10px 0 0 0" gutter="10">
+              <el-col :span="6" style="width: 240px">
+                <el-input
+                  clearable
+                  placeholder="采购维护人"
+                  v-model="parmValue.creater"
+                  maxlength="40"
+                  :size="searchSize"
+                  @blur="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                </el-input>
+              </el-col>
+              <el-col :span="6" style="width: 240px">
+                <el-input
+                  clearable
+                  placeholder="供应商名称"
+                  v-model="parmValue.supplier_name"
+                  maxlength="40"
+                  :size="searchSize"
+                  @blur="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                </el-input>
+              </el-col>
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table19} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "purchaseOrder",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+       supplier_name:"", //要搜索的供应商名称
+        creater:"", // 要搜索的采购维护人
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table19: table19,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.reportgoodofflinelist(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;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        supplier_name:"", //要搜索的供应商名称
+        creater:"", // 要搜索的采购维护人
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+     //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/reportgoodofflineexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "产品下线报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table2.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table2"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'咨询'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table2} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table2: table2,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportconsultinfo(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportconsultinfoexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "咨询单报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table3.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table3"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table3} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table3: table3,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportlist(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "订单报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 333 - 0
src/views/reportQuery/saleReport/components/table4.vue

@@ -0,0 +1,333 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table4"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 463px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'205px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+            <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 463px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date22"
+                      :end="parmValue.end_date22"
+                      :placeholder="'承诺发货'"
+                      :width="'205px'"
+                      :size="searchSize"
+                      @timeReturned="time2"
+                    />
+              </el-col>  
+              
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table4} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+          start_date: "", //起始时间
+          end_date: "", // 结束时间
+        start_arrive_date: "", //起始时间22
+        end_arrive_date: "", // 结束时间22
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table4: table4,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+
+      if (
+        (this.parmValue.start_arrive_date !== "" && this.parmValue.end_arrive_date === "") ||
+        (this.parmValue.start_arrive_date === "" && this.parmValue.end_arrive_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportnotout(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;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //起始时间
+          end_date: "", // 结束时间
+        start_arrive_date: "", //起始时间22
+        end_arrive_date: "", // 结束时间22
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+    async time2(e) {
+      this.parmValue.start_arrive_date = e.startTime || "";
+      this.parmValue.end_arrive_date = e.endTime || "";
+      if (
+        (this.parmValue.start_arrive_date !== "" && this.parmValue.end_arrive_date === "") ||
+        (this.parmValue.start_arrive_date === "" && this.parmValue.end_arrive_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+     //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+
+      if (
+        (this.parmValue.start_arrive_date !== "" && this.parmValue.end_arrive_date === "") ||
+        (this.parmValue.start_arrive_date === "" && this.parmValue.end_arrive_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      
+      if((this.parmValue.start_date != "" && this.parmValue.end_date != "") || (this.parmValue.start_arrive_date != "" && this.parmValue.end_arrive_date != "")){
+        let start_date = new Date(this.parmValue.start_date).valueOf() || new Date(this.parmValue.start_arrive_date).valueOf() ;
+        let end_date = new Date(this.parmValue.end_date).valueOf() || new Date(this.parmValue.end_arrive_date).valueOf() ;
+        let start_date2 = new Date(this.parmValue.start_arrive_date).valueOf() ;
+        let end_date2 = new Date(this.parmValue.end_arrive_date).valueOf() ;
+        let flag = (end_date - start_date > 30 * 24 * 60 * 60 * 1000) || (end_date2 - start_date2 > 30 * 24 * 60 * 60 * 1000) ;
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择至少一种导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportnotoutexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "未发货报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table5.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table5"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table5} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table5: table5,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportnotsigned(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportnotsignedexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "未签收报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 16 - 0
src/views/reportQuery/saleReport/components/table5.vue.rej

@@ -0,0 +1,16 @@
+diff a/src/views/reportQuery/purchaseReport/components/table5.vue b/src/views/reportQuery/purchaseReport/components/table5.vue	(rejected hunks)
+@@ -177,12 +177,10 @@
+     //重置
+     restSearch() {
+       this.parmValue = {
+-        zxNo:"", //咨询订单号
+-        start_date: "", //起始时间
+-        end_date: "", // 结束时间
++        start_date: "", //新建起始时间
++        end_date: "", // 新建结束时间
+         page: 1, // 页码
+         size: 15, // 每页显示条数
+-        is_export:0//是否导出
+       };
+       // 表格 - 分页
+       this.pageInfo = {

+ 310 - 0
src/views/reportQuery/saleReport/components/table6.vue

@@ -0,0 +1,310 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table6"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'咨询'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+           <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 150px">
+                
+
+                <el-select
+                  :size="searchSize"
+                  v-model="parmValue.status"
+                  filterable
+                  clearable
+                  placeholder="处理状态"
+                  style="width: 100%"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                    <el-option label="待业务审核" value="1"></el-option>
+                    <el-option label="待采购审核" value="2"></el-option>
+                    <el-option label="待设置仓库" value="3"></el-option>
+                    <el-option label="待客户退货" value="4"></el-option>
+                    <el-option label="售后已完成" value="5"></el-option>
+                    <el-option label="业务已驳回" value="6"></el-option>
+                    <el-option label="采购已驳回" value="7"></el-option>
+                    <el-option label="申请已取消" value="8"></el-option>
+                </el-select>
+              </el-col>
+              
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table6} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        status:"", //处理状态
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table6: table6,
+    };
+  },
+  mounted() {
+    // alert("未采反信息:接口暂无数据,以此提示")
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportorderreturn(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        status:"", //处理状态
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        // is_export:0//是否导出0/1
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportorderreturnexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "售后报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table7.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table7"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table7} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table7: table7,
+    };
+  },
+  mounted() {
+
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportgoodrankinglist(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportgoodrankinglistexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "产品热销排行.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 317 - 0
src/views/reportQuery/saleReport/components/table8.vue

@@ -0,0 +1,317 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table8"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'下单'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>  
+            </el-row>
+            <!-- <el-row style="padding: 10px 0 0 0">
+              
+              <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'导入'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <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">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row> -->
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table8} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table8: table8,
+    };
+  },
+  mounted() {
+    alert("暂时不做、无数据")
+    this.searchList();
+  },
+
+  methods: {
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.loading = true;
+      
+      const res = await asyncRequest.reportorderlistdetailed(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/reportorderlistdetailedexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "订单明细报表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 342 - 0
src/views/reportQuery/saleReport/components/table9.vue

@@ -0,0 +1,342 @@
+<template>
+    <div>
+      <ex-table
+        v-loading="loading"
+        :table="table"
+        :data="tableData"
+        :columns="table9"
+        :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();
+        "
+        @selection="selection_change"
+      >
+        <template #table-header="{}">
+          <div style="width: 100%">
+            <el-row style="padding: 0 0 0 80px">
+             
+               <el-col :span="6" style="width: 363px;">
+                <periodDatePickerActive
+                      :start="parmValue.start_date"
+                      :end="parmValue.end_date"
+                      :placeholder="'咨询'"
+                      :width="'165px'"
+                      :size="searchSize"
+                      @timeReturned="time"
+                    />
+              </el-col>  
+              <el-col :span="4" style="width: 66px; float: right">       
+                <el-button type="primary" style="margin-left:30px;" @click="download" :size="searchSize"  class="fr">
+                    导出
+                </el-button>
+              </el-col>
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+              
+            </el-row>
+           <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 150px">
+                
+
+                <el-select
+                  :size="searchSize"
+                  v-model="parmValue.status"
+                  filterable
+                  clearable
+                  placeholder="处理状态"
+                  style="width: 100%"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                    <el-option label="待发货" value="0"></el-option>
+                    <el-option label="待发货完成" value="1"></el-option>
+                    <el-option label="发货已完成" value="2"></el-option>
+                    <el-option label="订单已取消" value="3"></el-option>
+                </el-select>
+              </el-col>
+              <!-- 销售方公司 -->
+              <el-col :span="4" style="width: 240px; padding: 0 0 0 10px">
+                <search-work-company
+                  :type="'1'"
+                  :value="parmValue.company"
+                  :size="'mini'"
+                  :placeholder="'销售方公司'"
+                  :disabled="false"
+                  :isDetail="false"
+                  @searchChange="supplierChange"
+                />
+              </el-col>
+               <el-col :span="4" style="width: 170px; padding: 0 0 0 10px">
+                  <el-input
+                    placeholder="申请人部门"
+                    v-model="parmValue.create_company"
+                    :size="searchSize"
+                    maxlength="100"
+                    @blur="
+                      pageInfo.curr = 1;
+                      parmValue.page = 1;
+                      searchList();
+                    "
+                  >
+                  </el-input>
+                </el-col>
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
+              </el-col>     
+            </el-row>
+          </div>
+       </template>
+
+        
+      </ex-table>
+    </div>
+
+  
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import periodDatePickerActive from "../period-date-picker/main.vue";
+import { table9} from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {
+    periodDatePickerActive
+  },
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    
+  },
+  data() {
+    return {
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        status:"", //处理状态
+        create_company:"",//部门
+        company:"",//销售方公司
+        start_date: "", //起始时间
+        end_date: "", // 结束时间
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+       
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table9: table9,
+    };
+  },
+  mounted() {
+    // alert("未采反信息:接口暂无数据,以此提示")
+    this.searchList();
+  },
+
+  methods: {
+    async supplierChange(e) {
+      const { id, code, label } = e;
+      this.parmValue.company = code || "";
+      this.parmValue.page = 1;
+      this.pageInfo.curr = 1;
+      await this.searchList();
+    },
+    //初始化http请求
+    async searchList() {
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      // return;
+      this.loading = true;
+      
+      const res = await asyncRequest.saleexportsaledetailed(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.$message.warning(res.message)
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+   
+    //重置
+    restSearch() {
+      this.parmValue = {
+        status:"", //处理状态
+        start_date: "", //新建起始时间
+        end_date: "", // 新建结束时间
+        create_company:"",//部门
+        company:"",//销售方公司
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        // is_export:0//是否导出0/1
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+    
+    // 时间函数
+    async time(e) {
+      this.parmValue.start_date = e.startTime || "";
+      this.parmValue.end_date = e.endTime || "";
+      if (
+        (this.parmValue.start_date !== "" && this.parmValue.end_date === "") ||
+        (this.parmValue.start_date === "" && this.parmValue.end_date !== "")
+      ) {
+        this.$message.warning("时间区间不完整!");
+        return;
+      }
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+
+     //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //导出文件 
+    async download() {
+      // if(this.changeList.length<=0){
+      //   this.$message.warning("请选择有效数据")
+      //   return;
+      // }
+      let start_date = new Date(this.parmValue.start_date).valueOf();
+      let end_date = new Date(this.parmValue.end_date).valueOf();
+      let flag = end_date - start_date > 30 * 24 * 60 * 60 * 1000;
+      if(this.parmValue.start_date != "" && this.parmValue.end_date != ""){
+        if(flag){
+          this.$message.warning("导出文件的时间区间不能超过30天")
+          return;
+        }
+      }else{
+        this.$message.warning("请选择导出文件的时间区间")
+        return;
+      }
+      let model = JSON.parse(JSON.stringify(this.parmValue))
+      // model.is_export = 1;
+      if (!this.loading) {
+        this.loading = true;
+        let httpType = `aplication/zip`;
+        axios({
+          method: "post",
+          url: this.fileUrl + "admin/saleexportsaledetailedexport",
+          responseType: "blob",
+          data: model,
+          headers: {
+            // 'Content-Type': 'multipart/form-data',
+            // Accept: "application/vnd.ms-excel"
+            Accept: httpType,
+          },
+        })
+          .then((res) => {
+            // console.log(res)
+            // console.log(this.fileUrl)
+            // return;
+            if (res && res.status == 200 && res.data) {
+              let url = window.URL.createObjectURL(
+                new Blob([res.data], {
+                  // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
+                  type: httpType
+                })
+              );
+              let link = document.createElement("a");
+              link.style.display = "none";
+              link.href = url;
+              let excelName = "订单导出表.zip";
+              link.setAttribute("download", excelName);
+              document.body.appendChild(link);
+              link.click();
+              link.remove();
+              window.URL.revokeObjectURL(url); //释放掉blob对象
+              this.$message.success(`导出成功!`);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            } else {
+              this.$message.error(res.data.message);
+              setTimeout(() => {
+                this.loading = false;
+              }, 500);
+            }
+          })
+          .catch((error) => {
+            console.log(error);
+            this.loading = false;
+          });
+      }
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+</style>
+   

+ 2 - 0
src/views/reportQuery/saleReport/ex-table/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 470 - 0
src/views/reportQuery/saleReport/ex-table/main.vue

@@ -0,0 +1,470 @@
+<template>
+  <div>
+    <div class="table-header">
+      <template v-for="(item, index) in table._defaultHeader_">
+        <el-dropdown
+          v-if="item == 'setcol'"
+          placement="bottom-end"
+          trigger="click"
+          class="setcol-table-lie"
+          :hide-on-click="false"
+          :key="index"
+        >
+          <el-button size="mini">列设置</el-button>
+          <el-dropdown-menu slot="dropdown" :class="'ex-table-setcol-dropdown'">
+            <template v-for="(column, index) in setColumns">
+              <el-dropdown-item
+                v-if="!column._noset_"
+                :key="'setColumns' + index"
+              >
+                <el-switch
+                  v-model="column._hidden_"
+                  :active-text="column.label"
+                  :active-value="false"
+                  :inactive-value="true"
+                ></el-switch>
+              </el-dropdown-item>
+            </template>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </template>
+      <slot
+        name="table-header"
+        :selection="tableSelection"
+        :alldata="data"
+      ></slot>
+    </div>
+    <el-table
+      ref="elTable"
+      :data="data"
+      v-bind="table"
+      :size="size"
+      v-on="$listeners"
+      @selection-change="handleSelectionChange"
+      :span-method="arraySpanMethod"
+      style="width: 100%"
+    >
+      <template v-for="(column, index) in columns">
+        <el-table-column
+          align="center"
+          v-if="!column._hidden_ && column.type && !column._slot_"
+          v-bind="column"
+          :key="index"
+          width="45px"
+        ></el-table-column>
+        <el-table-column
+          show-overflow-tooltip
+          v-else-if="!column._hidden_"
+          v-bind="column"
+          :key="index"
+        >
+          <template slot="header" slot-scope="scope">
+            <span>{{ column.label }}</span>
+            <span
+              v-if="column._screen_"
+              @click.stop="addConditionItemByCol(column, scope)"
+            >
+              <i
+                v-if="column._screen_tip_ === false"
+                :style="isHasScreenColumn(column) ? 'color:#3888e5;' : ''"
+                class="el-icon-connection"
+              />
+              <el-tooltip
+                v-else
+                :effect="column._screen_tip_effect_ || 'dark'"
+                :content="column._screen_tip_ || '筛选'"
+                :placement="column._screen_tip_placement_ || 'top'"
+              >
+                <i
+                  :style="isHasScreenColumn(column) ? 'color:#3888e5;' : ''"
+                  class="el-icon-connection"
+                />
+              </el-tooltip>
+            </span>
+          </template>
+          <slot
+            v-if="column._slot_"
+            slot-scope="scope"
+            :name="column._slot_"
+            :scope="scope"
+          ></slot>
+          <template v-else-if="column._render_" slot-scope="scope">
+            <ex-slot
+              :column="column"
+              :render="column._render_"
+              :scope="scope"
+            ></ex-slot>
+          </template>
+          <template v-else slot-scope="scope">
+            <span>{{
+              column._format_
+                ? column._format_(scope.row)
+                : getObjPrototype(scope.row, column.prop)
+            }}</span>
+          </template>
+        </el-table-column>
+      </template>
+    </el-table>
+    <!-- <el-pagination
+      v-if="page !== false && data && data.length > 0"
+      :current-page="page.curr"
+      :page-sizes="[10, 20, 50, 100]"
+      :total="page.total"
+      layout="total, sizes, prev, pager, next, jumper"
+      style="text-align: right"
+      class="fu-page"
+      @current-change="$emit('page-curr-change', $event)"
+      @size-change="$emit('page-size-change', $event)"
+    />
+  -->
+    <!-- <div
+      v-if="data && data.length > 0"
+      class="Pagination"
+      style="text-align: right; margin-top: 10px"
+    >
+      <el-pagination
+        :current-page="page.curr"
+        :page-sizes="[15, 50, 100]"
+        :page-size="page.size"
+        :size="searchSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="page.total"
+        @size-change="$emit('page-size-change', $event)"
+        @current-change="$emit('page-curr-change', $event)"
+      />
+    </div> -->
+  </div>
+</template>
+
+<script>
+import Sortable from "sortablejs";
+export default {
+  name: "ex-table",
+  components: {
+    "ex-slot": {
+      functional: true,
+      props: {
+        render: Function,
+        scope: {
+          type: Object,
+          default: null,
+        },
+        column: {
+          type: Object,
+          default: null,
+        },
+      },
+      render: (h, data) => {
+        if (data.props.column) data.props.scope.column = data.props.column;
+        return data.props.render(h, data.props.scope);
+      },
+    },
+  },
+  props: {
+    /**
+     * el-table 属性集合
+     * 自定义属性:
+     * 
+     * @param {Array} _defaultHeader_  : 默认的表格头部,支持['setcol', 'screen'] setcol-列设置 screen-筛选
+     * 
+     * 可使用插槽扩展表格头部:
+     * table-header - 具名插槽
+     * slotProps:selection - 表格选中的数据  alldata - 表格当前全部数据
+     * <template #table-header="slotProps">
+     *   <el-button size="small" @click="click(slotProps)">扩展1</el-button>
+     * </template>
+     */
+    table: {
+      type: Object,
+      default: () => {},
+    },
+    // el-table 表格数据 对应data字段
+    data: {
+      type: Array,
+      default: () => [],
+    },
+    /**
+     * el-table-column 表格列属性集合
+     * 自定义属性:
+     * @param {String}       _filter_       : 是否不允许设置列
+     * @param {Boolean}       _noset_        : 是否不允许设置列
+     * @param {Boolean}        _screen_      : 是否允许筛选
+     * @param {Boolean}        _hidden_      : 是否隐藏列
+     * @param {String/Boolean} _screen_tip_  : 筛选按钮提示信息,为false不提示
+     * @param {String} _screen_tip_effect_   : 筛选按钮提示信息主题,dark/light
+     * @param {String} _screen_tip_placement_: 筛选按钮提示信息位置,top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end
+     * @param {Array}          _keys_        : 支持的筛选key
+     * @param {Array}      _select_options_  : 若需支持包含select的key,value的备选数据,示例:{_select_options_: [{id:'', label:''},...]}
+     * @param {Array}  _select_options_end_  : 若需支持包含select的key,value_end的备选数据,默认使用_select_options_,示例:{_select_options_: [{id:'', label:''},...]}
+     * @param {Array}          _keys_        : 支持的筛选key
+     * @param {String}         _slot_        : 使用具名插槽时的名称
+     * @param {Function}       _format_      : 数据格式化函数,支持返回html
+     * @param {Function}       _render_      : 自定义列,采用vue中的render函数,示例: { _render_:(h, scope) => { return h(...) } }
+     */
+    columns: {
+      type: Array,
+      default: () => [],
+    },
+    /**
+     * el-pagination
+     * @param {Boolean} page 是否开启表格分页,若不传或传false则不开启
+     * @param {Object} page {
+     *   size: '10'
+     *   total: '100'
+     *   curr: '1'
+     * }
+     * Event:
+     * page-curr-change  分页当前页改变
+     * page-size-change  分页大小改变
+     */
+    page: {
+      type: Object,
+      default: {
+        curr: 1,
+        size: 15,
+        total: 0,
+      },
+    },
+    /**
+     * 筛选条件集合
+     */
+    conditions: {
+      type: Array,
+      default: () => [],
+    },
+    /**
+     * 是否允许拖拽行
+     */
+    isRowDrop: {
+      type: Boolean,
+      default: false,
+    },
+    /**
+     * 是否允许拖拽列
+     */
+    isColDrop: {
+      type: Boolean,
+      default: false,
+    },
+    /**
+     * 表格大小
+     */
+    size: {
+      type: String,
+      default: "mini",
+    },
+  },
+  computed: {
+    // 允许筛选的列
+    screenColumns() {
+      return this.columns.filter((item) => item._screen_ === true);
+    },
+    // 允许设置的列
+    setColumns() {
+      return this.columns.filter((item) => !item._noset_);
+    },
+    // 筛选条件是否包含当前列
+    isHasScreenColumn() {
+      return function (col) {
+        return this.conditions.some((item) => item.prop === col.prop);
+      };
+    },
+    page_curr() {
+      return this.page.curr;
+    },
+    page_size() {
+      return this.page.size;
+    },
+    page_total() {
+      return this.page.total;
+    },
+  },
+  data() {
+    return {
+      // 表格选中项
+      tableSelection: [],
+    };
+  },
+  watch: {
+    page_curr: function (val) {
+      this.page.curr = val;
+    },
+    page_size: function (val) {
+      this.page.size = val;
+    },
+    page_total: function (val) {
+      this.page.total = val;
+    },
+  },
+  mounted() {
+    // 拖拽绑定
+    this.rowDrop();
+    this.columnDrop();
+  },
+  directives: {
+    // v-drap  可拖拽指令
+    drap: {
+      inserted: function (element, binding) {
+        element.onmousedown = function (e) {
+          let el = binding.modifiers.parent ? element.parentNode : element,
+            bodyWidth = document.body.offsetWidth,
+            bodyHeight = document.body.offsetHeight,
+            elWidth = el.offsetWidth,
+            elHeight = el.offsetHeight;
+          // 开始拖动,记录左上角坐标点
+          let disX = e.clientX - el.offsetLeft;
+          let disY = e.clientY - el.offsetTop;
+          document.onmousemove = function (e) {
+            // 拖动中,修改dom的左上角坐标点
+            let l = e.clientX - disX;
+            let t = e.clientY - disY;
+            if (binding.modifiers.limit) {
+              l = l < 0 ? 0 : l;
+              t = t < 0 ? 0 : t;
+              l = l > bodyWidth - elWidth ? bodyWidth - elWidth : l;
+              t = t > bodyHeight - elHeight ? bodyHeight - elHeight : t;
+            }
+            el.style.left = l + "px";
+            el.style.top = t + "px";
+          };
+          document.onmouseup = function () {
+            // 结束拖动
+            document.onmousemove = null;
+          };
+        };
+      },
+    },
+  },
+  methods: {
+    //
+    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
+      // if (rowIndex % 2 === 0) {
+      //   if (columnIndex === 0) {
+      //     return [1, 2];
+      //   } else if (columnIndex === 1) {
+      //     return [0, 0];
+      //   }
+      // }
+    },
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0) {
+        if (rowIndex % 2 === 0) {
+          return {
+            rowspan: 2,
+            colspan: 1,
+          };
+        } else {
+          return {
+            rowspan: 0,
+            colspan: 0,
+          };
+        }
+      }
+    },
+    handleSelectionChange(val) {
+      this.tableSelection = val;
+      this.$emit("selection", { list: this.tableSelection });
+    },
+    //行拖拽
+    rowDrop() {
+      const tbody = document.querySelector(
+        ".el-table__body-wrapper > table > tbody"
+      );
+      Sortable.create(tbody, {
+        disabled: !this.isRowDrop,
+        ghostClass: "sortable-ghost",
+        animation: 180,
+        delay: 0,
+        onEndevt: (evt) => {
+          const currItem = this.data.splice(evt.oldIndex, 1)[0];
+          this.data.splice(evt.newIndex, 0, currItem);
+        },
+      });
+    },
+    //列拖拽
+    columnDrop() {
+      const wrapperTr = document.querySelector(".el-table__header-wrapper tr");
+      Sortable.create(wrapperTr, {
+        disabled: !this.isColDrop,
+        ghostClass: "sortable-ghost",
+        animation: 180,
+        delay: 0,
+        onEnd: (evt) => {
+          const currItem = this.columns.splice(evt.oldIndex, 1)[0];
+          this.columns.splice(evt.newIndex, 0, currItem);
+        },
+      });
+    },
+    // 获取对象的属性
+    getObjPrototype(o, a) {
+      let fn = Function;
+      return new fn("obj", `return obj.${a}`)(o);
+    },
+    /** 表格方法 传递给el-table,后续有需要可继续增加 **/
+    // 对 Table 进行重新布局。当 Table 或其祖先元素由隐藏切换为显示时,可能需要调用此方法
+    doLayout(...arg) {
+      this.$refs.elTable.doLayout(...arg);
+    },
+    // 用于多选表格,清空用户的选择
+    clearSelection(...arg) {
+      this.$refs.elTable.clearSelection(...arg);
+    },
+    // 用于多选表格,切换某一行的选中状态
+    toggleRowSelection(...arg) {
+      this.$refs.elTable.toggleRowSelection(...arg);
+    },
+    // 用于多选表格,切换所有行的选中状态
+    toggleAllSelection(...arg) {
+      this.$refs.elTable.toggleAllSelection(...arg);
+    },
+    // 用于单选表格,设定某一行为选中行
+    setCurrentRow(...arg) {
+      this.$refs.elTable.setCurrentRow(...arg);
+    },
+    // 用于可展开表格与树形表格,切换某一行的展开状态,如果使用了第二个参数,则是设置这一行展开与否(expanded 为 true 则展开)
+    toggleRowExpansion(...arg) {
+      this.$refs.elTable.toggleRowExpansion(...arg);
+    },
+  },
+};
+</script>
+
+<style lang="css">
+.el-switch__core {
+  flex-shrink: 0;
+}
+.el-switch,
+.el-switch__label {
+  height: auto;
+}
+
+.ex-table-setcol-dropdown {
+  max-width: 180px;
+  max-height: 280px;
+  overflow-y: auto;
+}
+</style>
+
+<style lang="scss" scoped>
+.table-header {
+  display: flex;
+  position: relative;
+  display: -webkit-flex;
+  // background-color: #f5f5f5;
+  padding: 0 0;
+
+  .setcol-table-lie {
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 7;
+  }
+}
+.table-header > * {
+  margin-top: 10px;
+  margin-bottom: 12px;
+}
+// .table-header :nth-child(n + 2) {
+//   margin-left: 10px;
+// }
+</style>

+ 0 - 0
src/views/reportQuery/saleReport/ex-table/表格+分页


+ 105 - 53
src/views/reportQuery/saleReport/index.vue

@@ -1,68 +1,120 @@
 <template>
-  <div>222销售</div>
+    <div class="pagePadding">
+    <div
+      v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
+    >
+        <!-- <el-tabs v-model="activeName" @tab-click="handleClick"> -->
+        <el-tabs v-model="activeName">
+            <el-tab-pane label="日报" name="table1"><table1 v-if="activeName == 'table1'"></table1></el-tab-pane>
+
+            <el-tab-pane label="咨询单报表" name="table2"><table2 v-if="activeName == 'table2'"></table2></el-tab-pane>
+            <el-tab-pane label="订单报表" name="table3"><table3 v-if="activeName == 'table3'"></table3></el-tab-pane>
+            <el-tab-pane label="未发货报表" name="table4"><table4 v-if="activeName == 'table4'"></table4></el-tab-pane>
+            <el-tab-pane label="未签收报表" name="table5"><table5 v-if="activeName == 'table5'"></table5></el-tab-pane>
+            <el-tab-pane label="售后报表" name="table6"><table6 v-if="activeName == 'table6'"></table6></el-tab-pane>
+            <el-tab-pane label="产品热销排行" name="table7"><table7 v-if="activeName == 'table7'"></table7></el-tab-pane>
+            <!-- <el-tab-pane label="未开票报表" name="table8"><table8 v-if="activeName == 'table8'"></table8></el-tab-pane> -->
+            <!-- <el-tab-pane label="订单导出表" name="table9"><table9 v-if="activeName == 'table9'"></table9></el-tab-pane> -->
+            <el-tab-pane label="咨询单导出明细" name="table10"><table10 v-if="activeName == 'table10'"></table10></el-tab-pane>
+            <el-tab-pane label="工差明细表" name="table11"><table11 v-if="activeName == 'table11'"></table11></el-tab-pane>
+            <el-tab-pane label="退货明细表" name="table12"><table12 v-if="activeName == 'table12'"></table12></el-tab-pane>
+            <el-tab-pane label="售后明细表" name="table13"><table13 v-if="activeName == 'table13'"></table13></el-tab-pane>
+            <el-tab-pane label="议价明细表" name="table14"><table14 v-if="activeName == 'table14'"></table14></el-tab-pane>
+            <el-tab-pane label="无地址待发货订单" name="table15"><table15 v-if="activeName == 'table15'"></table15></el-tab-pane>
+            <el-tab-pane label="有地址待发货订单" name="table16"><table16 v-if="activeName == 'table16'"></table16></el-tab-pane>
+            <!-- <el-tab-pane label="开票明细表" name="table17"><table17 v-if="activeName == 'table17'"></table17></el-tab-pane> -->
+            <!-- <el-tab-pane label="待开票列表" name="table18"><table18 v-if="activeName == 'table18'"></table18></el-tab-pane> -->
+            <!-- <el-tab-pane label="待回款列表" name="table19"><table19 v-if="activeName == 'table19'"></table19></el-tab-pane> -->
+          
+          
+        </el-tabs>
+      
+    </div>
+    <div v-else>
+      <no-auth></no-auth>
+    </div>
+  </div>
 </template>
 
 <script>
-export default {
-  data() {
-    return {
-      obj: {
-        name: "测试",
-        age: 2,
-      },
-      obj2: {
-        sex: "男",
-      },
-      arr: [1, 2],
-      arr2: [3, 4, 2],
-    };
-  },
-  mounted() {
-    this.test();
-  },
-  methods: {
-    test() {
-    //   let { name, age } = this.obj;
-      // console.log(name)
-
-      // let obj = {...this.obj,...this.obj2}
-      // console.log(obj)
-
-      // let str = `${age>0?'ok':'no'}`
-      // console.log(str)
-
-      // if(this.arr.includes(1)){
-      //     console.log("ok")
-      // }
-
-    //   const deps = {
-    //     采购部: [1, 2, 3],
-    //     人事部: [5, 8, 12],
-    //     行政部: [5, 14, 79],
-    //     运输部: [3, 64, 105],
-    //   };
-    //   console.log(Object.values(deps).flat());
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import { mapGetters } from "vuex";
+//标签页组件引入
+const table1 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table1")
+const table2 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table2")
+const table3 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table3")
+const table4 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table4")
+const table5 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table5")
+const table6 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table6")
+const table7 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table7")
+const table8 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table8")
+const table9 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table9")
+const table10 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table10")
+const table11 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table11")
+const table12 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table12")
+const table13 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table13")
+const table14 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table14")
 
-    
-   
-    // let a = '';
-
-    // if(a??'' !==""){
-
-    //     alert(111)
-    // }else{
-    //     alert("iusadhaiusd")
-    // }
+const table15 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table15")
+const table16 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table16")
+const table17 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table17")
+const table18 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table18")
+const table19 = ()=>import(/* webpackChunkName:'mycomp' */ "./components/table19")
 
 
 
+export default {
+mixins: [mixinPage, resToken],
+components:{
+    table1,
+    table2,
+    table3,
+    table4,
+    table5,
+    table6,
+    table7,
+    table8,
+    table9,
+    table10,
+    table11,
+    table12,
+    table13,
+    table14,
+    table15,
+    table16,
+    table17,
+    table18,
+    table19,
+},
 
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "saleReport"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
     },
-
-
   },
-};
+  data(){
+      return {
+          activeName: 'table1'
+      }
+  },
+  methods:{
+    //   handleClick(tab, event) {
+    //     console.log(tab, event);
+    //   }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
+
 </style>

+ 2 - 0
src/views/reportQuery/saleReport/period-date-picker/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 147 - 0
src/views/reportQuery/saleReport/period-date-picker/main.vue

@@ -0,0 +1,147 @@
+<template>
+  <div class="fl time">
+    <el-date-picker
+      v-model="startTime"
+      style="margin: 0"
+      class="date-picker"
+      type="date"
+      :size="size"
+      :style="{ width: width }"
+      :placeholder="(placeholder||'') + '开始日期'"
+      value-format="yyyy-MM-dd"
+      :picker-options="pickerOptions1"
+      :editable="false"
+      :clearable="true"
+      :disabled="isEdit"
+      @change="timeChange"
+    />
+    <samp style="padding: 0 3px; margin: 0">至</samp>
+    <el-date-picker
+      style="margin: 0"
+      :size="size"
+      v-model="endTime"
+      class="date-picker"
+      :style="{ width: width }"
+      type="date"
+      :placeholder="(placeholder||'') + '结束日期'"
+      :disabled="isEdit"
+      :picker-options="pickerOptions2"
+      :editable="false"
+      value-format="yyyy-MM-dd"
+      :clearable="true"
+      @change="timeChange"
+    />
+  </div>
+</template>
+
+<script>
+// 选择时间段(只有日期)组件
+// timeReturned 返回值{startTime: Number,endTime: Number}
+export default {
+  name: "PeriodDatePicker",
+  props: ["start", "end", "disabled", "size", "width", "type", "placeholder"],
+  data() {
+    return {
+      startTime: this.start,
+      endTime: this.end,
+      isEdit: this.disabled,
+      pickerOptions1: {
+        disabledDate: (time) => {
+          if (this.endTime != null && this.endTime != "" && time) {
+            return time.getTime() > new Date(this.endTime).valueOf();
+          }
+        },
+      },
+      pickerOptions2: {
+        disabledDate: (time) => {
+          if (this.startTime != null && this.startTime != "" && time) {
+            return time.getTime() < new Date(this.startTime).valueOf();
+          }
+        },
+      },
+    };
+  },
+  watch: {
+    disabled: function (val) {
+      this.isEdit = val;
+    },
+    start(val) {
+      this.startTime = val;
+    },
+    end(val) {
+      this.endTime = val;
+    },
+  },
+  mounted() {},
+  methods: {
+    timeChange() {
+      if (
+        this.startTime !== "" &&
+        this.startTime !== null &&
+        this.endTime !== "" &&
+        this.endTime !== null
+      ) {
+        if (this.type + "" === "1" && !this.setType(365)) {
+          this.showMessage("时间跨度不能超过一年!");
+          return;
+        } else if (this.type + "" === "2" && !this.setType(90)) {
+          this.showMessage("时间跨度不能超过90天!");
+          return;
+        }else if (this.type + "" === "3" && !this.setType(30)) {
+          this.showMessage("时间跨度不能超过30天!");
+          return;
+        } else if (
+          new Date(this.endTime).valueOf() < new Date(this.startTime).valueOf()
+        ) {
+          this.showMessage("结束时间不大于开始时间!");
+          return;
+        } else {
+          this.timeReturned();
+        }
+      } else {
+        this.timeReturned();
+      }
+    },
+    timeReturned() {
+      let s = this.startTime == null ? "" : this.startTime;
+      let e = this.endTime == null ? "" : this.endTime;
+      let model = {
+        startTime: s == "" ? "" : this.transformTime(s),
+        endTime: e == "" ? "" : this.transformTime(e),
+      };
+
+      this.$emit("timeReturned", model);
+    },
+
+    transformTime(tTime) {
+      let time = new Date(tTime);
+      let y = time.getFullYear();
+      let M = time.getMonth() + 1;
+      let d = time.getDate();
+      return y + "-" + (M < 10 ? "0" + M : M) + "-" + (d < 10 ? "0" + d : d);
+    },
+    showMessage(message) {
+      this.$message.error(message);
+      this.startTime = "";
+      this.endTime = "";
+      this.timeReturned();
+    },
+    setType(days) {
+      let step = 24 * 3600 * 1000;
+      let sDay = new Date(this.startTime).valueOf();
+      let eDay = new Date(this.endTime).valueOf();
+      let isok = true;
+      if (eDay - sDay > step * days) {
+        isok = false;
+      }
+
+      return isok;
+    },
+  },
+};
+</script>
+<style lang="scss">
+.date-picker.el-input {
+  // width: 150px !important;
+}
+</style>

+ 0 - 0
src/views/reportQuery/saleReport/period-date-picker/日期选择区间


+ 1994 - 0
src/views/reportQuery/test/columns.js

@@ -0,0 +1,1994 @@
+const schTahead = [
+  {
+    prop: "xiugai1",
+    label: "采购单号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai2",
+    label: "供应商编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai3",
+    label: "对账编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai4",
+    label: "付款编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai5",
+    label: "回票编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai6",
+    label: "订单编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai7",
+    label: "企业客户编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai8",
+    label: "发票申请编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai9",
+    label: "发票编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai10",
+    label: "退票编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai11",
+    label: "资金编号",
+    t1:"方便统一修改、留存",
+  },
+  {
+    prop: "xiugai12",
+    label: "退款编号",
+    t1:"方便统一修改、留存",
+  },
+
+]
+
+
+
+//日报
+const table1 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "creater",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "consult_num",
+    label: "当日咨询单数量",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "consult_money",
+    label: "当日咨询单金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_num",
+    label: "当日下单数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_money",
+    label: "当日下单金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "receipt_num",
+    label: "当日签收数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "receipt_money",
+    label: "当日签收金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "invoice_num",
+    label: "当日申报发票数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "invoice_money",
+    label: "当日申报发票金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "after_sales_num",
+    label: "单日售后单数",
+    minWidth: "155px",
+  },
+  {
+    prop: "after_sales_money",
+    label: "单日售后金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "payment_num",
+    label: "当日回款单数",
+    minWidth: "155px",
+  },
+  {
+    prop: "payment_money",
+    label: "当日回款金额",
+    minWidth: "155px",
+  },
+
+]
+//咨询单报表
+const table2 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    prop: "creater",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "咨询时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "zxNo",
+    label: "咨询单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "budget_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_fee",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "is_bids",
+    label: "是否采反",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_zhuandan",
+    label: "订单转单",
+    minWidth: "155px",
+  },
+  {
+    prop:"",
+    label: "操作",
+    _slot_: "operation",
+    fixed: "right",
+    _noset_: true,
+    width: "50px",
+
+  }
+]
+//订单报表
+const table3 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "产品数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "is_stock",
+    label: "是否库存",
+    minWidth: "155px",
+  },
+  {
+    prop: "order_type",
+    label: "订单类型",
+    minWidth: "155px",
+  },
+]
+//未发货报表
+const table4 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "arrive_time",
+    label: "承诺发货时间",
+    minWidth: "155px",
+  },
+]
+
+//未签收报表
+const table5 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "sendtime",
+    label: "发货时间",
+    minWidth: "155px",
+  },
+]
+
+//售后报表
+const table6 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "creater_company",
+    label: "创建人部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "售后时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "updatetime",
+    label: "签收时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "result",
+    label: "异常原因",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "处理状态",
+    minWidth: "155px",
+  },
+]
+
+
+//产品热销排行
+const table7 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "cat",
+    label: "产品品类",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  // {
+  //   prop: "supplierNo",
+  //   label: "下单时间",
+  //   minWidth: "155px",
+  // },
+  {
+    prop: "total_num",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级企业",
+    minWidth: "110px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级企业",
+    minWidth: "100px",
+  },
+
+]
+
+
+//未开票报表___________暂时不做
+const table8 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "name",
+    label: "发票申请单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "total",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "一级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "二级企业",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "total",
+    label: "承诺回款时间",
+    minWidth: "155px",
+  },
+]
+
+
+//订单导出表
+const table9 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "确认单下单时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "order_type",
+    label: "订单类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "订单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "name",
+    label: "创建人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "company",
+    label: "销售方公司",
+    minWidth: "125px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "购买方公司(客户名称)",
+    minWidth: "155px",
+  },
+  {
+    prop: "platform_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "platform_order",
+    label: "平台订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "poNo",
+    label: "其他单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "paytime",
+    label: "承诺回款时间",
+    minWidth: "125px",
+  },
+  {
+    prop: "order_use",
+    label: "订单用途",
+    minWidth: "155px",
+  },
+  {
+    prop: "activity_type",
+    label: "活动类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_cat_name",
+    label: "一级分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "tax",
+    label: "税率",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_num",
+    label: "下单数量",
+    minWidth: "125px",
+  },
+  {
+    prop: "total_price",
+    label: "销售总额",
+    minWidth: "155px",
+  },
+  {
+    prop: "cgder",
+    label: "采购人",
+    minWidth: "155px",
+  },
+  {
+    prop: "customized",
+    label: "工期时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "arrive_time",
+    label: "要求到货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "remark",
+    label: "备注",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_stock",
+    label: "是否库存",
+    minWidth: "155px",
+  },
+
+
+]
+
+
+//咨询单导出明细
+const table10 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "咨询时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "salesman",
+    label: "业务员",
+    minWidth: "155px",
+  },
+  {
+    prop: "name",
+    label: "业务部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "zxNo",
+    label: "咨询单号",
+    minWidth: "155px",
+  },
+
+  // {
+  //   prop: "",
+  //   label: "咨询类型",
+  //   minWidth: "155px",
+  // },
+
+  {
+    prop: "first_customer_org",
+    label: "一级组织",
+    minWidth: "105px",
+  },
+  
+  {
+    prop: "second_customer_org",
+    label: "二级组织",
+    minWidth: "150px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "105px",
+  },
+  {
+    prop: "use_desc",
+    label: "产品用途",
+    minWidth: "115px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "115px",
+  },
+  {
+    prop: "brand_name",
+    label: "品牌",
+    minWidth: "155px",
+  },
+  {
+    prop: "model",
+    label: "型号",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "产品编码",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_cat_name",
+    label: "一级分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "budget_price",
+    label: "预算单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    minWidth: "105px",
+  },
+  {
+    prop: "num",
+    label: "需求数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "budget_total_price",
+    label: "预算总价",
+    minWidth: "155px",
+  },
+
+  // {
+  //   prop: "",
+  //   label: "产品单价(定价)",
+  //   minWidth: "155px",
+  // },
+
+  {
+    prop: "arrival_time",
+    label: "要求到货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_addrs",
+    label: "是否一地",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_custom",
+    label: "定制",
+    minWidth: "105px",
+  },
+  {
+    prop: "remark",
+    label: "咨询备注",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "竞单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "bargain_code",
+    label: "上次咨询单单号",
+    minWidth: "155px",
+  },
+ 
+]
+
+//工差明细表
+const table11 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "发起时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "diffCode",
+    label: "工差单号",
+    minWidth: "125px",
+  },
+  {
+    prop: "orderCode",
+    label: "关联确认单",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "poaddtime",
+    label: "确认单下单日期",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "company",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "noble_metal",
+    label: "贵金属种类",
+    minWidth: "105px",
+  },
+  {
+    prop: "good_num",
+    label: "下单数量",
+    minWidth: "115px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_price",
+    label: "总额",
+    minWidth: "105px",
+  },
+  {
+    prop: "good_weight",
+    label: "商品总重量",
+    minWidth: "115px",
+  },
+  {
+    prop: "diff_weight",
+    label: "工差重量",
+    minWidth: "155px",
+  },
+  {
+    prop: "diff_price",
+    label: "销售工差总费用",
+    minWidth: "105px",
+  },
+  {
+    prop: "is_update_sale",
+    label: "是否修改销售额",
+    minWidth: "115px",
+  },
+
+]
+
+//退货明细表
+const table12 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "return_time",
+    label: "退货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "thCode",
+    label: "退货单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "outCode",
+    label: "发货申请单编码",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "退货单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "创建人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "确认单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "addtime",
+    label: "下单日期",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "wsend_num",
+    label: "未发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "th_num",
+    label: "退货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "th_fee",
+    label: "退货销售货款",
+    minWidth: "155px",
+  },
+  {
+    prop: "contactor",
+    label: "发货单联系人",
+    minWidth: "155px",
+  },
+  {
+    prop: "mobile",
+    label: "发货单联系人电话",
+    minWidth: "155px",
+  },
+  {
+    prop: "addr",
+    label: "发货单地址",
+    minWidth: "155px",
+  },
+  {
+    prop: "result_desc",
+    label: "退货原因",
+    minWidth: "155px",
+  },
+]
+
+//售后明细表
+const table13 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "addtime",
+    label: "售后时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "returnCode",
+    label: "售后申请编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_name",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "apply_company",
+    label: "部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "outCode",
+    label: "发货申请编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total_num",
+    label: "发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "status",
+    label: "处理状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "orderCode",
+    label: "订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "first_customer_org",
+    label: "一级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "second_customer_org",
+    label: "二级组织",
+    minWidth: "155px",
+  },
+  {
+    prop: "companyName",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "sale_price",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "error_total_price",
+    label: "异常金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "is_receive",
+    label: "收货情况",
+    minWidth: "155px",
+  },
+  {
+    prop: "error_num",
+    label: "异常数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "result_desc",
+    label: "异常原因",
+    minWidth: "155px",
+  },
+  {
+    prop: "error_remark",
+    label: "异常备注",
+    minWidth: "155px",
+  },
+  {
+    prop: "except_code",
+    label: "期望意愿",
+    minWidth: "155px",
+  },
+ 
+]
+
+
+
+//__________________________________下方数据没更新
+
+
+
+
+
+
+
+
+//议价明细表
+const table14 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "date",
+    label: "议价时间",
+    minWidth: "115px",
+  },
+  {
+    prop: "total",
+    label: "议价编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "咨询单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "议价单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "采返商品编号",
+    minWidth: "115px",
+  },
+  {
+    prop: "total",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "申请人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "议价前售价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "期望售价",
+    minWidth: "155px",
+  },
+  {
+    prop: "total",
+    label: "议价原因",
+    minWidth: "115px",
+  },
+  {
+    prop: "total",
+    label: "议价备注",
+    minWidth: "115px",
+  },
+
+
+]
+
+//无地址待发货订单
+const table15 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "下单时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "采购单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "公司名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "出库总数",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "商品分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品编码",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "未发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "应发货日期(下单日期+工期)",
+    minWidth: "155px",
+  },
+  
+  
+]
+
+//有地址待发货订单
+const table16 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "下单日期",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "发货时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "发货申请单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "发货申请单状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "产品单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "发货数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "发货申请单总价",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "申请人",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "申请人所属部门",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "采购",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "快递公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "快递单号",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "收货人",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "收货电话",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "收货地址",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "备注",
+    minWidth: "155px",
+  },
+  
+  
+]
+//开票明细表
+const table17 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "销售方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "分公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "购买方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "PO编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "税率",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "下单数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "销售总额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "未开金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "发票号码",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "物流公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "物流单号",
+    minWidth: "155px",
+  },
+
+  
+  
+]
+
+//待开票列表
+const table18 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "销售方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "分公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "购买方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "PO编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "产品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "税率",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "单位",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "下单数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "销售总额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票金额",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "未开金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "开票类型",
+    minWidth: "155px",
+  },
+
+  
+  
+]
+//待回款列表
+const table19 = [
+  // {
+  //   type: "expand",
+  //   _slot_: "expand",
+  //   fixed: "left",
+  //   _noset_: true,
+  // },
+  {
+    type: "selection",
+    fixed: "left",
+    _noset_: true
+  },
+  {
+    prop: "spuCode",
+    label: "创建时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "订单编号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "平台订单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "业管单号",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "订单类型",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "所属平台",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "销售方公司",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "企业客户名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "创建人",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "商品名称",
+    minWidth: "155px",
+  },
+  {
+    prop: "brandid",
+    label: "商品分类",
+    minWidth: "155px",
+  },
+  {
+    prop: "brand_id",
+    label: "商品数量",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "销售单价",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "总价",
+    minWidth: "155px",
+  },
+
+  {
+    prop: "spuCode",
+    label: "承诺回款时间",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "已回款金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "未回款金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "good_name",
+    label: "已开票金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "未开票金额",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "开票状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "发货状态",
+    minWidth: "155px",
+  },
+  {
+    prop: "spuCode",
+    label: "账期",
+    minWidth: "155px",
+  },
+
+  
+  
+]
+
+
+
+
+
+
+
+export {
+  table1,
+  table2,
+  table3,
+  table4,
+  table5,
+  table6,
+  table7,
+  table8,
+  table9,
+  table10,
+  table11,
+  table12,
+  table13,
+  table14,
+  table15,
+  table16,
+  table17,
+  table18,
+  table19,
+  schTahead,
+}

+ 58 - 0
src/views/reportQuery/test/detail.vue

@@ -0,0 +1,58 @@
+<template>
+  <div class="pagePadding">
+    <div
+      style="width: 100%"
+    >
+      详情111
+  
+    </div>
+
+  </div>
+</template>
+   <script>
+// import mixinPage from "@/mixins/elPaginationHandle";
+// import { mapGetters } from "vuex";
+// import resToken from "@/mixins/resToken";
+// import asyncRequest from "@/apis/service/purchaseIn/purchaseOrder";
+
+export default {
+  name: "test",
+  // mixins: [mixinPage, resToken],
+  components: {
+
+  },
+
+  computed: {
+    // ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+    // powers() {
+    //   let tran =
+    //     this.$store.getters.btnList.find(
+    //       (item) => item.menu_route == "testDetail"
+    //     ) || {};
+    //   if (tran && tran.action && tran.action.length > 0) {
+    //     return tran.action;
+    //   } else {
+    //     return [];
+    //   }
+    // },
+  },
+  data() {
+    return {
+      // row:this.$router.query.row
+    };
+  },
+  mounted() {
+    // console.log(11111,this.row)
+  },
+  methods: {
+   
+
+
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrderDetail {
+}
+</style>
+

+ 270 - 0
src/views/reportQuery/test/index.vue

@@ -0,0 +1,270 @@
+<template>
+  <div>
+    <ex-table
+      v-loading="loading"
+      :table="table"
+      :data="tableData"
+      :columns="table2"
+      :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();
+      "
+      @selection="selection_change"
+    >
+      <template #table-header="{}">
+        <div style="width: 100%">
+          <el-row style="padding: 0 0 0 80px">
+            <el-col :span="4" style="width: 106px; float: left">
+              <el-button
+                type="primary"
+                style="margin-left: 30px"
+                @click="dialogFormVisible = true"
+                :size="searchSize"
+                class="fr"
+              >
+                筛选条件汇总
+              </el-button>
+            </el-col>
+            <el-col :span="3" style="width: 66px; float: right">
+              <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">
+              <el-button
+                type="warning"
+                class="fr"
+                :size="searchSize"
+                @click="restSearch"
+              >
+                重置
+              </el-button>
+            </el-col>
+          </el-row>
+        </div>
+      </template>
+
+      <template #operation="{ scope }">
+        <el-tooltip effect="dark" content="详情" placement="top">
+          <!-- 路由跳转参数需更改 -->
+          <i class="el-icon-view tb-icon" @click="getRouter(`testDetail`,scope.row.zxNo)"></i>
+        </el-tooltip>
+      </template>
+    </ex-table>
+
+    <el-dialog title="筛选条件汇总" :visible.sync="dialogFormVisible" width="600px">
+        <div>
+            <el-col style="padding:20px" v-for="(item,index) in schTahead" :span="12" :key="item.prop+index" >
+                <el-input v-model="parmValue[item.prop]" :placeholder="item.label"></el-input>
+            </el-col>
+        </div>
+        
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="clear">清空</el-button>
+        <el-button type="primary" @click="search">搜索</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import urlConfig from "@/apis/url-config";
+import asyncRequest from "@/apis/service/reportQuery/saleReport";
+import { table2,schTahead } from "./columns";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "saleReport",
+  mixins: [mixinPage, resToken],
+  components: {},
+  computed: {
+    ...mapGetters(["tablebtnSize", "searchSize", "size"]),
+  },
+  data() {
+    return {
+      dialogFormVisible: false,
+      //选中数组
+      changeList: [],
+      //全局url
+      fileUrl: urlConfig.baseURL,
+      //loading
+      loading: false,
+      //请求参数集合
+      parmValue: {
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+
+        xiugai1: "",
+        xiugai2: "",
+        xiugai3: "",
+        xiugai4: "",
+        xiugai5: "",
+        xiugai6: "",
+        xiugai7: "",
+        xiugai8: "",
+        xiugai9: "",
+        xiugai10: "",
+        xiugai11: "",
+        xiugai12: "",
+      },
+      // 表格 - 数据集合
+      tableData: [],
+      // 表格 - 参数
+      table: {
+        stripe: true,
+        border: true,
+        _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 分页
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      // 表格表头 - 列参数
+      table2: table2,
+
+      //筛选相关
+      schTahead:schTahead,
+    };
+  },
+  mounted() {
+    this.searchList();
+  },
+
+  methods: {
+    
+    //搜索
+    async search() {
+ 
+        this.searchList()
+      this.dialogFormVisible = false;
+    },
+    //初始化http请求
+    async searchList() {
+      this.loading = true;
+
+      const res = await asyncRequest.saleexportconsultinfo(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.$message.warning(res.message);
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+    //点击详情
+    getRouter(toRouter, queryId){
+      // this.$router.push(toRouter)
+      // return;
+      if (toRouter && queryId) {
+        let model = {
+          id: queryId,
+          // row:row,
+          type: 'view',
+        };
+        // alert(queryId)
+
+        //有多选框的条件
+        // this.parmValue.select = this.select ;
+        // this.parmValue.sselect = this.sselect ;
+        // this.parmValue.s_input= this.s_input;
+        //
+         let routerModel = {
+          options: JSON.parse(JSON.stringify(this.parmValue)),
+          router: this.$route.path,
+        };
+        model.preModel = JSON.stringify(routerModel);
+       
+        this.routeGoto(toRouter, model);
+      } else {
+        this.$message.warning("暂未找到相关流程!");
+      }
+    },
+
+    //重置
+    restSearch() {
+      this.parmValue = {
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        xiugai1: "",
+        xiugai2: "",
+        xiugai3: "",
+        xiugai4: "",
+        xiugai5: "",
+        xiugai6: "",
+        xiugai7: "",
+        xiugai8: "",
+        xiugai9: "",
+        xiugai10: "",
+        xiugai11: "",
+        xiugai12: "",
+      };
+      // 表格 - 分页
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.searchList();
+    },
+
+    //选中触发函数
+    selection_change(e) {
+      const { list } = e;
+      //选中的数组集合
+      this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : [];
+    },
+    //清空
+    clear(){
+        this.parmValue = {
+        // is_export:0,//是否导出0/1
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+        xiugai1: "",
+        xiugai2: "",
+        xiugai3: "",
+        xiugai4: "",
+        xiugai5: "",
+        xiugai6: "",
+        xiugai7: "",
+        xiugai8: "",
+        xiugai9: "",
+        xiugai10: "",
+        xiugai11: "",
+        xiugai12: "",
+      };
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.purchaseOrder {
+  // text-align: right;
+}
+/deep/.table-header {
+  margin: 10px 0 5px 0;
+}
+</style>
+   

Some files were not shown because too many files changed in this diff