瀏覽代碼

build:toB、toC切换修改样式,

snow 2 年之前
父節點
當前提交
2f1c39a8f9
共有 40 個文件被更改,包括 2175 次插入418 次删除
  1. 0 0
      dist/static/js/0.js
  2. 0 0
      dist/static/js/app.js
  3. 53 0
      src/apis/service/businessReportQuery/financeReport/index.js
  4. 11 0
      src/apis/service/businessReportQuery/productReport/index.js
  5. 18 18
      src/apis/service/businessReportQuery/purchaseReport/index.js
  6. 53 0
      src/apis/service/businessReportQuery/saleReportOrder/index.js
  7. 0 1
      src/assets/js/statusList.js
  8. 1 1
      src/views/businessReportQuery/businessFinanceReport/real-time-export-new.vue
  9. 196 178
      src/views/businessReportQuery/businessProductReport/components/columns.js
  10. 5 5
      src/views/businessReportQuery/businessProductReport/components/table1.vue
  11. 5 5
      src/views/businessReportQuery/businessProductReport/components/table2.vue
  12. 6 6
      src/views/businessReportQuery/businessProductReport/components/table3.vue
  13. 100 0
      src/views/businessReportQuery/businessPurchaseReport/components/columns.js
  14. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table10.vue
  15. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table11.vue
  16. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table12.vue
  17. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table13.vue
  18. 3 3
      src/views/businessReportQuery/businessPurchaseReport/components/table5.vue
  19. 9 5
      src/views/businessReportQuery/businessPurchaseReport/components/table6.vue
  20. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table7.vue
  21. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table8.vue
  22. 5 5
      src/views/businessReportQuery/businessPurchaseReport/components/table9.vue
  23. 5 2
      src/views/businessReportQuery/businessSaleReportOrder/real-time-export-new.vue
  24. 5 2
      src/views/businessReportQuery/businessStockReport/real-time-export-new.vue
  25. 1246 0
      src/views/goodStore/goodsOnline/components/fixed-price-form.vue
  26. 309 2
      src/views/goodStore/goodsOnline/components/online-form.vue
  27. 20 11
      src/views/goodStore/goodsOnline/detail.vue
  28. 6 12
      src/views/sellOut/beforeReturnGoodWorkOrder/index.vue
  29. 6 13
      src/views/sellOut/deliveryWorkOrder/index.vue
  30. 6 12
      src/views/sellOut/returnGoodWorkOrder/index.vue
  31. 15 4
      src/views/sellOut/salesOrder/index.vue
  32. 6 12
      src/views/sellOut/sellAfterApply/index.vue
  33. 6 13
      src/views/sellOut/sellOutOrder/index.vue
  34. 6 13
      src/views/sellOut/sellReturn/index.vue
  35. 6 12
      src/views/supplierSellOut/supplierBeforeReturnGoodWorkOrder/index.vue
  36. 6 13
      src/views/supplierSellOut/supplierDeliveryWorkOrder/index.vue
  37. 6 12
      src/views/supplierSellOut/supplierReturnWorkOrder/index.vue
  38. 14 2
      src/views/supplierSellOut/supplierSellAfterApply/index.vue
  39. 6 13
      src/views/supplierSellOut/supplierSellOutOrder/index.vue
  40. 6 13
      src/views/supplierSellOut/supplierSellReturn/index.vue

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


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


+ 53 - 0
src/apis/service/businessReportQuery/financeReport/index.js

@@ -0,0 +1,53 @@
+// 企业客户/供应商账号相关
+import http from '@/apis/axios'
+import testHttp from '@/apis/testAxios'
+const api = 'admin/'
+export default {
+  // 分页查询
+  list: (data, params) => http(api + 'receiptlist', data, 'post', params),
+  // 分页查询企业客户
+  clist: (data, params) => http(api + 'customerlist', data, 'post', params),
+  // 发票开票数据导出
+  receiptexport: (data, params) => http(api + 'receiptexport', data, 'post', params),
+  // 发票数据导入
+  receiptimport: (data, params) => http(api + 'receiptimport', data, 'post', params),
+  // 新建业务需求表
+  add: (data, params) => http(api + 'execsave', data, 'post', params),
+  // 获取预约导出业务需求表
+  exportList: (data, params) => http(api + 'execlist', data, 'post', params),
+
+  // 历史数据导出列表
+  hlist: (data, params) => testHttp(api + 'execnowlist', data, 'post', params),
+  // 准备执行
+  download: (data, params) => testHttp(api + 'execnowdown', data, 'post', params),
+  //  即时下载列表接口 -新
+  realNewList: (data, params) => http(api + 'r_nowlist', data, 'post', params)
+
+  // // 分页查询销售订单列表
+  // qrdlist: (data, params) => http(api + "qrdlist", data, "post", params),
+  // // 发票新建(金额)
+  // madd: (data, params) => http(api + "receiptadd", data, "post", params),
+  // // 发票编辑(金额)
+  // mupdate: (data, params) => http(api + "receiptedit", data, "post", params),
+  // // 发票新建(销售订单)
+  // oadd: (data, params) => http(api + "receiptcreate", data, "post", params),
+  // // 发票编辑(销售订单)
+  // oupdate: (data, params) => http(api + "receiptsave", data, "post", params),
+  // // 发票详情
+  // detail: (data, params) => http(api + "receiptinfo", data, "post", params),
+  // // 删除(取消申请)
+  // delete: (data, params) => http(api + 'receiptdel', data, 'post', params),
+  // // 发票状态修改
+  // status: (data, params) => http(api + 'receiptstatus', data, 'post', params),
+  // // 发票物流信息添加
+  // post: (data, params) => http(api + 'receiptpost', data, 'post', params),
+
+  // // 关联其他企业
+  // invoicelist: (data, params) => http(api + 'invoicelist', data, 'post', params),
+
+  // // 认领资金申请开票
+  // receiptbytrade: (data, params) => http(api + 'receiptbytrade', data, 'post', params),
+  // // 认领资金开票编辑
+  // editbytrade: (data, params) => http(api + 'editbytrade', data, 'post', params),
+
+}

+ 11 - 0
src/apis/service/businessReportQuery/productReport/index.js

@@ -0,0 +1,11 @@
+// 采购部门报表
+import http from '@/apis/axios'
+const api = 'admin/'
+export default {
+  // 商品基础信息
+  goodSimpleZhao: (data, params) => http(api + 'r_goodSimpleZhao', data, 'post', params),
+  // 商品成本信息
+  goodCostZhao: (data, params) => http(api + 'r_goodCostZhao', data, 'post', params),
+  // 商品售价信息
+  goodPriceZhao: (data, params) => http(api + 'r_goodPriceZhao', data, 'post', params)
+}

+ 18 - 18
src/apis/service/businessReportQuery/purchaseReport/index.js

@@ -24,42 +24,42 @@ export default {
   // 已采反报价信息
   reportconsultinfobidssum: (data, params) => http(api + 'r_reportconsultinfobidssum', data, 'post', params),
   // 已采反报价信息导出
-  reportconsultinfobidssumexport: (data, params) => http(api + 'reportconsultinfobidssumexport', data, 'post', params),
+  reportconsultinfobidssumexport: (data, params) => http(api + 'r_reportconsultinfobidssumexport', data, 'post', params),
   // 未采反信息
-  reportconsultinfobidssumnot: (data, params) => http(api + 'reportconsultinfobidssumnot', data, 'post', params),
+  reportconsultinfobidssumnot: (data, params) => http(api + 'r_reportconsultinfobidssumnot', data, 'post', params),
   // 未采反信息导出
-  reportconsultinfobidssumnotexport: (data, params) => http(api + 'reportconsultinfobidssumnotexport', data, 'post', params),
+  reportconsultinfobidssumnotexport: (data, params) => http(api + 'r_reportconsultinfobidssumnotexport', data, 'post', params),
   // 订单明细
-  reportorderlistdetailed: (data, params) => http(api + 'reportorderlistdetailed', data, 'post', params),
+  reportorderlistdetailed: (data, params) => http(api + 'r_reportorderlistdetailed', data, 'post', params),
   // 订单明细导出
-  reportorderlistdetailedexport: (data, params) => http(api + 'reportorderlistdetailedexport', data, 'post', params),
+  reportorderlistdetailedexport: (data, params) => http(api + 'r_reportorderlistdetailedexport', data, 'post', params),
   // 售后报表
-  reportorderreturnlist: (data, params) => http(api + 'reportorderreturnlist', data, 'post', params),
+  reportorderreturnlist: (data, params) => http(api + 'r_reportorderreturnlist', data, 'post', params),
   // 售后报表导出
-  reportorderreturnlistexport: (data, params) => http(api + 'reportorderreturnlistexport', data, 'post', params),
+  reportorderreturnlistexport: (data, params) => http(api + 'r_reportorderreturnlistexport', data, 'post', params),
   // 供应商报表
-  reportsupplierlist: (data, params) => http(api + 'reportsupplierlist', data, 'post', params),
+  reportsupplierlist: (data, params) => http(api + 'r_reportsupplierlist', data, 'post', params),
   // 供应商报表导出
-  reportsupplierlistexport: (data, params) => http(api + 'reportsupplierlistexport', data, 'post', params),
+  reportsupplierlistexport: (data, params) => http(api + 'r_reportsupplierlistexport', data, 'post', params),
   // 退货流水报表
-  reportsalereturnlist: (data, params) => http(api + 'reportsalereturnlist', data, 'post', params),
+  reportsalereturnlist: (data, params) => http(api + 'r_reportsalereturnlist', data, 'post', params),
   // 退货流水报表导出
-  reportsalereturnexport: (data, params) => http(api + 'reportsalereturnexport', data, 'post', params),
+  reportsalereturnexport: (data, params) => http(api + 'r_reportsalereturnexport', data, 'post', params),
   // 产品上线报表
-  reportgoodonlinelist: (data, params) => http(api + 'reportgoodonlinelist', data, 'post', params),
+  reportgoodonlinelist: (data, params) => http(api + 'r_reportgoodonlinelist', data, 'post', params),
   // 产品上线报表导出
-  reportgoodonlineexport: (data, params) => http(api + 'reportgoodonlineexport', data, 'post', params),
+  reportgoodonlineexport: (data, params) => http(api + 'r_reportgoodonlineexport', data, 'post', params),
   // 产品下线报表
-  reportgoodofflinelist: (data, params) => http(api + 'reportgoodofflinelist', data, 'post', params),
+  reportgoodofflinelist: (data, params) => http(api + 'r_reportgoodofflinelist', data, 'post', params),
   // 产品下线报表导出
-  reportgoodofflineexport: (data, params) => http(api + 'reportgoodofflineexport', data, 'post', params),
+  reportgoodofflineexport: (data, params) => http(api + 'r_reportgoodofflineexport', data, 'post', params),
 
   // 产品修改报表
-  reportchangeloglist: (data, params) => http(api + 'reportchangeloglist', data, 'post', params),
+  reportchangeloglist: (data, params) => http(api + 'r_reportchangeloglist', data, 'post', params),
   // 产品修改报表导出
-  reportchangelogeexport: (data, params) => http(api + 'reportchangelogeexport', data, 'post', params),
+  reportchangelogeexport: (data, params) => http(api + 'r_reportchangelogeexport', data, 'post', params),
 
   // 退货台账-业务口径导出
-  reportreturnexport: (data, params) => http(api + 'reportreturnexport', data, 'post', params)
+  reportreturnexport: (data, params) => http(api + 'r_reportreturnexport', data, 'post', params)
 }
 

+ 53 - 0
src/apis/service/businessReportQuery/saleReportOrder/index.js

@@ -0,0 +1,53 @@
+// 企业客户/供应商账号相关
+import http from '@/apis/axios'
+import testHttp from '@/apis/testAxios'
+const api = 'admin/'
+export default {
+  // 分页查询
+  list: (data, params) => http(api + 'receiptlist', data, 'post', params),
+  // 分页查询企业客户
+  clist: (data, params) => http(api + 'customerlist', data, 'post', params),
+  // 发票开票数据导出
+  receiptexport: (data, params) => http(api + 'receiptexport', data, 'post', params),
+  // 发票数据导入
+  receiptimport: (data, params) => http(api + 'receiptimport', data, 'post', params),
+  // 新建业务需求表
+  add: (data, params) => http(api + 'execsave', data, 'post', params),
+  // 获取预约导出业务需求表
+  exportList: (data, params) => http(api + 'execlist', data, 'post', params),
+
+  // 历史数据导出列表
+  hlist: (data, params) => testHttp(api + 'execnowlist', data, 'post', params),
+  // 准备执行
+  download: (data, params) => testHttp(api + 'execnowdown', data, 'post', params),
+  //  即时下载列表接口 -新
+  realNewList: (data, params) => http(api + 'r_nowlist', data, 'post', params)
+
+  // // 分页查询销售订单列表
+  // qrdlist: (data, params) => http(api + "qrdlist", data, "post", params),
+  // // 发票新建(金额)
+  // madd: (data, params) => http(api + "receiptadd", data, "post", params),
+  // // 发票编辑(金额)
+  // mupdate: (data, params) => http(api + "receiptedit", data, "post", params),
+  // // 发票新建(销售订单)
+  // oadd: (data, params) => http(api + "receiptcreate", data, "post", params),
+  // // 发票编辑(销售订单)
+  // oupdate: (data, params) => http(api + "receiptsave", data, "post", params),
+  // // 发票详情
+  // detail: (data, params) => http(api + "receiptinfo", data, "post", params),
+  // // 删除(取消申请)
+  // delete: (data, params) => http(api + 'receiptdel', data, 'post', params),
+  // // 发票状态修改
+  // status: (data, params) => http(api + 'receiptstatus', data, 'post', params),
+  // // 发票物流信息添加
+  // post: (data, params) => http(api + 'receiptpost', data, 'post', params),
+
+  // // 关联其他企业
+  // invoicelist: (data, params) => http(api + 'invoicelist', data, 'post', params),
+
+  // // 认领资金申请开票
+  // receiptbytrade: (data, params) => http(api + 'receiptbytrade', data, 'post', params),
+  // // 认领资金开票编辑
+  // editbytrade: (data, params) => http(api + 'editbytrade', data, 'post', params),
+
+}

+ 0 - 1
src/assets/js/statusList.js

@@ -57,7 +57,6 @@ const accountLevels = {
 };
 
 export const usetypeOtions = [
-  // { value: '0', label: '无' },
   { value: '1', label: 'toB' },
   { value: '2', label: 'toC' }
 ]

+ 1 - 1
src/views/businessReportQuery/businessFinanceReport/real-time-export-new.vue

@@ -47,7 +47,7 @@
   </div>
 </template>
 <script>
-import asyncRequest from "@/apis/service/reportQuery/financeReport/index.js";
+import asyncRequest from "@/apis/service/businessReportQuery/financeReport/index.js";
 import addEdit from "./addEdit";
 import { mapGetters } from "vuex";
 import urlConfig from "@/apis/url-config";

+ 196 - 178
src/views/businessReportQuery/businessProductReport/components/columns.js

@@ -1,4 +1,4 @@
-//已采反报价信息
+// 已采反报价信息
 const table1 = [
   // {
   //   type: "selection",
@@ -6,160 +6,178 @@ const table1 = [
   //   _noset_: true
   // },
   {
-    prop: "skuCode",
-    label: "商品上线编号",
-    minWidth: "155px",
+    prop: 'skuCode',
+    label: '商品上线编号',
+    minWidth: '155px'
   },
   {
-    prop: "spuCode",
-    label: "商品成本编号",
-    minWidth: "155px",
+    prop: 'spuCode',
+    label: '商品成本编号',
+    minWidth: '155px'
   },
   {
-    prop: "plat_code",
-    label: "平台商品编码",
-    minWidth: "155px",
+    prop: 'plat_code',
+    label: '平台商品编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
   },
-
   {
-    prop: "good_name",
-    label: "商品名称",
-    minWidth: "155px",
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
   },
   {
-    prop: "platform_name",
-    label: "上线平台",
-    minWidth: "155px",
+    prop: 'good_name',
+    label: '商品名称',
+    minWidth: '155px'
   },
   {
-    prop: "online_time",
-    label: "上线完成时间",
-    minWidth: "145px",
+    prop: 'platform_name',
+    label: '上线平台',
+    minWidth: '155px'
   },
   {
-    prop: "moq",
-    label: "起订量",
-    minWidth: "110",
+    prop: 'online_time',
+    label: '上线完成时间',
+    minWidth: '145px'
   },
   {
-    prop: "nake_fee",
-    label: "成本单价",
-    minWidth: "110px",
+    prop: 'moq',
+    label: '起订量',
+    minWidth: '110'
   },
   {
-    prop: "cost_fee",
-    label: "工艺费",
-    minWidth: "110px",
+    prop: 'nake_fee',
+    label: '成本单价',
+    minWidth: '110px'
   },
   {
-    prop: "delivery_fee",
-    label: "物流费",
-    minWidth: "110px",
+    prop: 'cost_fee',
+    label: '工艺费',
+    minWidth: '110px'
   },
   {
-    prop: "cert_fee",
-    label: "证书费",
-    minWidth: "110px",
+    prop: 'delivery_fee',
+    label: '物流费',
+    minWidth: '110px'
   },
   {
-    prop: "mark_fee",
-    label: "加标费",
-    minWidth: "110px",
+    prop: 'cert_fee',
+    label: '证书费',
+    minWidth: '110px'
   },
   {
-    prop: "packing_fee",
-    label: "包装费",
-    minWidth: "110px",
+    prop: 'mark_fee',
+    label: '加标费',
+    minWidth: '110px'
   },
   {
-    prop: "other_fee",
-    label: "其他费用",
-    minWidth: "110px",
+    prop: 'packing_fee',
+    label: '包装费',
+    minWidth: '110px'
   },
   {
-    prop: "nake_total",
-    label: "成本合计",
-    minWidth: "110px",
+    prop: 'other_fee',
+    label: '其他费用',
+    minWidth: '110px'
   },
   {
-    prop: "addtime",
-    label: "申请上线时间",
-    minWidth: "145px",
+    prop: 'nake_total',
+    label: '成本合计',
+    minWidth: '110px'
   },
+  {
+    prop: 'addtime',
+    label: '申请上线时间',
+    minWidth: '145px'
+  }
 ]
-//采购订单总金额
+// 采购订单总金额
 const table2 = [
-   // {
+  // {
   //   type: "selection",
   //   fixed: "left",
   //   _noset_: true
   // },
   {
-    prop: "skuCode",
-    label: "商品上线编号",
-    minWidth: "155px",
+    prop: 'skuCode',
+    label: '商品上线编号',
+    minWidth: '155px'
   },
   {
-    prop: "spuCode",
-    label: "商品成本编号",
-    minWidth: "155px",
+    prop: 'spuCode',
+    label: '商品成本编号',
+    minWidth: '155px'
   },
   {
-    prop: "plat_code",
-    label: "平台商品编码",
-    minWidth: "155px",
+    prop: 'plat_code',
+    label: '平台商品编码',
+    minWidth: '155px'
   },
-
   {
-    prop: "good_name",
-    label: "商品名称",
-    minWidth: "155px",
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
   },
   {
-    prop: "platform_name",
-    label: "上线平台",
-    minWidth: "155px",
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
   },
   {
-    prop: "online_time",
-    label: "上线完成时间",
-    minWidth: "145px",
+    prop: 'good_name',
+    label: '商品名称',
+    minWidth: '155px'
   },
   {
-    prop: "moq",
-    label: "起订量",
-    minWidth: "110",
+    prop: 'platform_name',
+    label: '上线平台',
+    minWidth: '155px'
   },
   {
-    prop: "sale_price",
-    label: "售价",
-    minWidth: "110px",
+    prop: 'online_time',
+    label: '上线完成时间',
+    minWidth: '145px'
   },
   {
-    prop: "cost_fee",
-    label: "工艺费",
-    minWidth: "110px",
+    prop: 'moq',
+    label: '起订量',
+    minWidth: '110'
   },
-
   {
-    prop: "market_price",
-    label: "市场价",
-    minWidth: "110px",
+    prop: 'sale_price',
+    label: '售价',
+    minWidth: '110px'
   },
   {
-    prop: "market_platform",
-    label: "对比平台",
-    minWidth: "110px",
+    prop: 'cost_fee',
+    label: '工艺费',
+    minWidth: '110px'
+  },
+
+  {
+    prop: 'market_price',
+    label: '市场价',
+    minWidth: '110px'
   },
   {
-    prop: "addtime",
-    label: "申请上线时间",
-    minWidth: "145px",
+    prop: 'market_platform',
+    label: '对比平台',
+    minWidth: '110px'
   },
+  {
+    prop: 'addtime',
+    label: '申请上线时间',
+    minWidth: '145px'
+  }
 
 ]
 
-//商品修改报表
+// 商品修改报表
 const table3 = [
   // {
   //   type: "expand",
@@ -168,147 +186,147 @@ const table3 = [
   //   _noset_: true,
   // },
   {
-    type: "selection",
-    fixed: "left",
+    type: 'selection',
+    fixed: 'left',
     _noset_: true
   },
   {
-    prop: "skuCode",
-    label: "商品上线编号",
-    minWidth: "155px",
+    prop: 'skuCode',
+    label: '商品上线编号',
+    minWidth: '155px'
   },
   {
-    prop: "spuCode",
-    label: "商品成本编号",
-    minWidth: "155px",
+    prop: 'spuCode',
+    label: '商品成本编号',
+    minWidth: '155px'
   },
   {
-    prop: "plat_code",
-    label: "平台商品编码",
-    minWidth: "155px",
+    prop: 'plat_code',
+    label: '平台商品编码',
+    minWidth: '155px'
   },
   {
-    prop: "creater",
-    label: "采购维护人",
-    minWidth: "100px",
+    prop: 'creater',
+    label: '采购维护人',
+    minWidth: '100px'
   },
   {
-    prop: "good_name",
-    label: "商品名称",
-    minWidth: "155px",
+    prop: 'good_name',
+    label: '商品名称',
+    minWidth: '155px'
   },
   {
-    prop: "brand_name",
-    label: "品牌",
-    minWidth: "155px",
+    prop: 'brand_name',
+    label: '品牌',
+    minWidth: '155px'
   },
   {
-    prop: "cat_name",
-    label: "分类",
-    minWidth: "155px",
-    
+    prop: 'cat_name',
+    label: '分类',
+    minWidth: '155px'
+
   },
   {
-    prop: "company",
-    label: "业务企业名称",
-    minWidth: "155px",
+    prop: 'company',
+    label: '业务企业名称',
+    minWidth: '155px'
   },
   {
-    prop: "name",
-    label: "供应商名称",
-    minWidth: "155px",
+    prop: 'name',
+    label: '供应商名称',
+    minWidth: '155px'
   },
   {
-    prop: "platform_name",
-    label: "上线平台",
-    minWidth: "155px",
+    prop: 'platform_name',
+    label: '上线平台',
+    minWidth: '155px'
   },
   {
-    prop: "online_time",
-    label: "上线完成时间",
-    minWidth: "155px",
+    prop: 'online_time',
+    label: '上线完成时间',
+    minWidth: '155px'
   },
   {
-    prop: "exam_status",
-    label: "上线状态",
-    minWidth: "155px",
+    prop: 'exam_status',
+    label: '上线状态',
+    minWidth: '155px'
   },
   {
-    prop: "is_stock",
-    label: "是否库存品",
-    minWidth: "155px",
+    prop: 'is_stock',
+    label: '是否库存品',
+    minWidth: '155px'
   },
   {
-    prop: "good_type",
-    label: "是否定制",
-    minWidth: "155px",
+    prop: 'good_type',
+    label: '是否定制',
+    minWidth: '155px'
   },
   {
-    prop: "specifications",
-    label: "规格",
-    minWidth: "155px",
+    prop: 'specifications',
+    label: '规格',
+    minWidth: '155px'
   },
   {
-    prop: "unit",
-    label: "单位",
-    minWidth: "155px",
+    prop: 'unit',
+    label: '单位',
+    minWidth: '155px'
   },
   {
-    prop: "good_remark",
-    label: "商品备注",
-    minWidth: "155px",
+    prop: 'good_remark',
+    label: '商品备注',
+    minWidth: '155px'
   },
 
   {
-    prop: "supply_area",
-    label: "供货区域",
-    minWidth: "155px",
+    prop: 'supply_area',
+    label: '供货区域',
+    minWidth: '155px'
   },
   {
-    prop: "craft_desc",
-    label: "工艺说明",
-    minWidth: "155px",
+    prop: 'craft_desc',
+    label: '工艺说明',
+    minWidth: '155px'
   },
   {
-    prop: "noble_metal",
-    label: "贵金属信息",
-    minWidth: "155px",
+    prop: 'noble_metal',
+    label: '贵金属信息',
+    minWidth: '155px'
   },
   {
-    prop: "cgd_gold_price",
-    label: "供应商采购金价",
-    minWidth: "155px",
+    prop: 'cgd_gold_price',
+    label: '供应商采购金价',
+    minWidth: '155px'
   },
   {
-    prop: "demo_fee",
-    label: "工艺说明",
-    minWidth: "155px",
+    prop: 'demo_fee',
+    label: '工艺说明',
+    minWidth: '155px'
   },
   {
-    prop: "demo_fee",
-    label: "打样费",
-    minWidth: "155px",
+    prop: 'demo_fee',
+    label: '打样费',
+    minWidth: '155px'
   },
   {
-    prop: "open_fee",
-    label: "开模费",
-    minWidth: "155px",
+    prop: 'open_fee',
+    label: '开模费',
+    minWidth: '155px'
   },
   {
-    prop: "sample_fee",
-    label: "调样费",
-    minWidth: "155px",
+    prop: 'sample_fee',
+    label: '调样费',
+    minWidth: '155px'
   },
   {
-    prop: "tax",
-    label: "税点",
-    minWidth: "155px",
+    prop: 'tax',
+    label: '税点',
+    minWidth: '155px'
   },
   {
-    prop: "addtime",
-    label: "申请上线时间",
-    minWidth: "155px",
-  },
-  
+    prop: 'addtime',
+    label: '申请上线时间',
+    minWidth: '155px'
+  }
+
 ]
-export { table1, table2, table3}
+export { table1, table2, table3 }

+ 5 - 5
src/views/businessReportQuery/businessProductReport/components/table1.vue

@@ -87,7 +87,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/productReport'
+import asyncRequest from '@/apis/service/businessReportQuery/productReport'
 import periodDatePickerActive from '../period-date-picker-month/index.vue'
 import { table1 } from './columns'
 import { mapGetters } from 'vuex'
@@ -168,7 +168,7 @@ export default {
       this.loading = true
       const res = await asyncRequest.goodCostZhao({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
       if (res && res.code === 0 && res.data) {
         console.log(res)
@@ -252,11 +252,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/goodCostZhaoExport',
+          url: this.fileUrl + 'admin/r_goodCostZhaoExport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -278,7 +278,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '商品成本信息报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-商品成本信息报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessProductReport/components/table2.vue

@@ -87,7 +87,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/productReport'
+import asyncRequest from '@/apis/service/businessReportQuery/productReport'
 import periodDatePickerActive from '../period-date-picker-month/index.vue'
 import companyHelper from '@/mixins/companyHelper'
 import { table2 } from './columns'
@@ -169,7 +169,7 @@ export default {
       this.loading = true
       const res = await asyncRequest.goodPriceZhao({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
       if (res && res.code === 0 && res.data) {
         console.log(res)
@@ -253,11 +253,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/goodPriceZhaoExport',
+          url: this.fileUrl + 'admin/r_goodPriceZhaoExport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -279,7 +279,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '商品售价信息报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-商品售价信息报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 6 - 6
src/views/businessReportQuery/businessProductReport/components/table3.vue

@@ -99,11 +99,11 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/productReport'
+import asyncRequest from '@/apis/service/businessReportQuery/productReport'
 import periodDatePickerActive from '../period-date-picker-month/index.vue'
+import companyHelper from '@/mixins/companyHelper'
 import { table3 } from './columns'
 import { mapGetters } from 'vuex'
-import companyHelper from '@/mixins/companyHelper'
 
 export default {
   name: 'PurchaseOrder',
@@ -197,7 +197,7 @@ export default {
       this.loading = true
       const res = await asyncRequest.goodSimpleZhao({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
       console.log(res)
       if (res && res.code === 0 && res.data) {
@@ -280,11 +280,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/goodSimpleZhaoExport',
+          url: this.fileUrl + 'admin/r_goodSimpleZhaoExport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -306,7 +306,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '商品基本信息报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-商品基本信息报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 100 - 0
src/views/businessReportQuery/businessPurchaseReport/components/columns.js

@@ -213,6 +213,16 @@ const table5 = [
     label: '竞价时间',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'bidNo',
     label: '采购反馈单号',
@@ -313,6 +323,16 @@ const table6 = [
     label: '竞价订单号',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'good_name',
     label: '商品名称',
@@ -373,6 +393,16 @@ const table7 = [
     label: '创建时间',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'supplierNo',
     label: '供应商编号',
@@ -478,6 +508,16 @@ const table8 = [
     label: '创建时间',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'cgdNo',
     label: '采购单编号',
@@ -559,6 +599,16 @@ const table9 = [
     label: '录入供应商时间',
     minWidth: '155px'
   },
+  // {
+  //   prop: 'relaComNo',
+  //   label: '业务公司编码',
+  //   minWidth: '155px'
+  // },
+  // {
+  //   prop: 'relaComName',
+  //   label: '业务公司名称',
+  //   minWidth: '165px'
+  // },
   {
     prop: 'name',
     label: '供应商名称',
@@ -619,6 +669,16 @@ const table10 = [
     label: '退货单号',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'addtime',
     label: '退货时间',
@@ -696,6 +756,16 @@ const table11 = [
   //   fixed: "left",
   //   _noset_: true,
   // },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'company_name',
     label: '采购维护人所属部门',
@@ -771,6 +841,16 @@ const table12 = [
     label: '商品下线时间',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'company_name',
     label: '采购维护人所属部门',
@@ -841,6 +921,16 @@ const table13 = [
     label: '商品名称',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'name',
     label: '供应商名称',
@@ -889,6 +979,16 @@ const table14 = [
     label: '创建时间',
     minWidth: '155px'
   },
+  {
+    prop: 'relaComNo',
+    label: '业务公司编码',
+    minWidth: '155px'
+  },
+  {
+    prop: 'relaComName',
+    label: '业务公司名称',
+    minWidth: '165px'
+  },
   {
     prop: 'total',
     label: '单据状态',

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table10.vue

@@ -117,7 +117,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import { table10 } from './columns'
 import { mapGetters } from 'vuex'
@@ -188,7 +188,7 @@ export default {
 
       const res = await asyncRequest.reportsalereturnlist({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
 
       if (res && res.code === 0 && res.data) {
@@ -267,11 +267,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportsalereturnexport',
+          url: this.fileUrl + 'admin/r_reportsalereturnexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo:this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -293,7 +293,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '退货流水报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-退货流水报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table11.vue

@@ -103,7 +103,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import { table11 } from './columns'
 import { mapGetters } from 'vuex'
@@ -174,7 +174,7 @@ export default {
 
       const res = await asyncRequest.reportgoodonlinelist({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
 
       if (res && res.code === 0 && res.data) {
@@ -255,11 +255,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportgoodonlineexport',
+          url: this.fileUrl + 'admin/r_reportgoodonlineexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo:this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -281,7 +281,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '产品上线报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-产品上线报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table12.vue

@@ -103,7 +103,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import companyHelper from '@/mixins/companyHelper'
 import { table12 } from './columns'
@@ -174,7 +174,7 @@ export default {
 
       const res = await asyncRequest.reportgoodofflinelist({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
 
       if (res && res.code === 0 && res.data) {
@@ -255,11 +255,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportgoodofflineexport',
+          url: this.fileUrl + 'admin/r_reportgoodofflineexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -281,7 +281,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '产品下线报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-产品下线报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table13.vue

@@ -223,7 +223,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import { table13, editTable13 } from './columns'
 import { mapGetters } from 'vuex'
@@ -332,7 +332,7 @@ export default {
       this.loading = true
       const res = await asyncRequest.reportchangeloglist({
         ...this.parmValue,
-        relaComNo: this.currentCompany
+        needRela: true
       })
       console.log(res)
       if (res && res.code === 0 && res.data) {
@@ -414,11 +414,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportchangelogeexport',
+          url: this.fileUrl + 'admin/r_reportchangelogeexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -440,7 +440,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '产品修改报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-产品修改报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 3 - 3
src/views/businessReportQuery/businessPurchaseReport/components/table5.vue

@@ -321,11 +321,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportconsultinfobidssumexport',
+          url: this.fileUrl + 'admin/r_reportconsultinfobidssumexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -345,7 +345,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '已采反报价.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-已采反报价.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 9 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table6.vue

@@ -103,7 +103,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import { table6 } from './columns'
 import { mapGetters } from 'vuex'
@@ -173,7 +173,11 @@ export default {
       // return;
       this.loading = true
 
-      const res = await asyncRequest.reportconsultinfobidssumnot(this.parmValue)
+      const res = await asyncRequest.reportconsultinfobidssumnot({
+        ...this.parmValue,
+        needRela: true
+      })
+
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list
         this.pageInfo.total = Number(res.data.count)
@@ -267,11 +271,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportconsultinfobidssumnotexport',
+          url: this.fileUrl + 'admin/r_reportconsultinfobidssumnotexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -293,7 +297,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '未采反信息.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-未采反信息.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table7.vue

@@ -110,7 +110,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import { table7 } from './columns'
 import { mapGetters } from 'vuex'
@@ -181,7 +181,7 @@ export default {
 
       const res = await asyncRequest.reportorderlistdetailed({
         ...this.parmValue,
-        relaComNo: this.currentCompany
+        needRela: true
       })
 
       if (res && res.code === 0 && res.data) {
@@ -262,11 +262,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportorderlistdetailedexport',
+          url: this.fileUrl + 'admin/r_reportorderlistdetailedexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -288,7 +288,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '订单明细报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-订单明细报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table8.vue

@@ -110,7 +110,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import companyHelper from '@/mixins/companyHelper'
 import { table8 } from './columns'
@@ -181,7 +181,7 @@ export default {
 
       const res = await asyncRequest.reportorderreturnlist({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
 
       if (res && res.code === 0 && res.data) {
@@ -257,11 +257,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportorderreturnlist',
+          url: this.fileUrl + 'admin/r_reportorderreturnlistexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo: this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -283,7 +283,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '售后明细报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-售后明细报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 5
src/views/businessReportQuery/businessPurchaseReport/components/table9.vue

@@ -86,7 +86,7 @@
 import mixinPage from '@/mixins/elPaginationHandle'
 import resToken from '@/mixins/resToken'
 import urlConfig from '@/apis/url-config'
-import asyncRequest from '@/apis/service/reportQuery/purchaseReport'
+import asyncRequest from '@/apis/service/businessReportQuery/purchaseReport'
 import periodDatePickerActive from '../period-date-picker/main.vue'
 import { table9 } from './columns'
 import { mapGetters } from 'vuex'
@@ -165,7 +165,7 @@ export default {
 
       const res = await asyncRequest.reportsupplierlist({
         ...this.parmValue,
-        relaComNo:this.currentCompany
+        needRela: true
       })
 
       if (res && res.code === 0 && res.data) {
@@ -278,11 +278,11 @@ export default {
         const httpType = `aplication/zip`
         axios({
           method: 'post',
-          url: this.fileUrl + 'admin/reportsupplierlistexport',
+          url: this.fileUrl + 'admin/r_reportsupplierlistexport',
           responseType: 'blob',
           data: {
             ...model,
-            relaComNo:this.currentCompany
+            needRela: true
           },
           headers: {
             // 'Content-Type': 'multipart/form-data',
@@ -304,7 +304,7 @@ export default {
               const link = document.createElement('a')
               link.style.display = 'none'
               link.href = url
-              const excelName = '每日录入供应商报表.zip'
+              const excelName = this.getCompanyWithCode(this.currentCompany).name + '-每日录入供应商报表.zip'
               link.setAttribute('download', excelName)
               document.body.appendChild(link)
               link.click()

+ 5 - 2
src/views/businessReportQuery/businessSaleReportOrder/real-time-export-new.vue

@@ -87,7 +87,7 @@
   </div>
 </template>
 <script>
-import asyncRequest from "@/apis/service/reportQuery/saleReportOrder/index.js";
+import asyncRequest from "@/apis/service/businessReportQuery/saleReportOrder/index.js";
 import addEdit from "./addEdit";
 import { mapGetters } from "vuex";
 import urlConfig from "@/apis/url-config";
@@ -161,7 +161,10 @@ export default {
     },
     async searchList() {
       this.loading = true;
-      const res = await asyncRequest.realNewList(this.parmValue);
+      const res = await asyncRequest.realNewList({
+        ...this.parmValue,
+        needRela: true
+      });
       if (res && res.code === 0 && res.data) {
            this.tableData = res.data.list;
       } else if (res && res.code >= 100 && res.code <= 104) {

+ 5 - 2
src/views/businessReportQuery/businessStockReport/real-time-export-new.vue

@@ -87,7 +87,7 @@
   </div>
 </template>
 <script>
-import asyncRequest from "@/apis/service/reportQuery/saleReportOrder/index.js";
+import asyncRequest from "@/apis/service/businessReportQuery/saleReportOrder/index.js";
 import addEdit from "./addEdit";
 import { mapGetters } from "vuex";
 import urlConfig from "@/apis/url-config";
@@ -161,7 +161,10 @@ export default {
     },
     async searchList() {
       this.loading = true;
-      const res = await asyncRequest.realNewList(this.parmValue);
+      const res = await asyncRequest.realNewList({
+        ...this.parmValue,
+        needRela: true
+      });
       if (res && res.code === 0 && res.data) {
            this.tableData = res.data.list;
       } else if (res && res.code >= 100 && res.code <= 104) {

+ 1246 - 0
src/views/goodStore/goodsOnline/components/fixed-price-form.vue

@@ -0,0 +1,1246 @@
+<template>
+  <div v-loading="loading">
+    <!-- {{ sitem.is_gold_price }} -->
+    <el-form
+      :model="addrForm"
+      ref="addrForm"
+      status-icon
+      class="demo-addrForm-goodsOnline"
+      :size="'mini'"
+    >
+      <el-table
+        :data="addrForm.good_ladder"
+        :size="'mini'"
+        border
+        stripe
+        max-height="300px"
+        row-key="key"
+        style="width: 100%; margin: 0 0 20px 0"
+      >
+        <el-table-column type="index" width="50" show-overflow-tooltip />
+        <el-table-column prop="min_num" label="起订量(>=)" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'min_num'"
+              :rules="addrRules.min_num"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.min_num"
+                :placeholder="'起订量(>=)'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="0"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'min_num', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.min_num }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="new_sale_price" show-overflow-tooltip   v-if="!(sitem && sitem.is_gold_price === '1' && is_noble)">
+          <template slot="header" slot-scope="scope">
+            <span>系统售价</span>
+          </template>
+
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'new_sale_price'"
+              :rules="addrRules.new_sale_price"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-input
+                v-loading="scope.row.loading"
+                v-model="scope.row.new_sale_price"
+                placeholder="系统售价"
+                :disabled="true"
+                :size="'mini'"
+                maxlength="20"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.new_sale_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="sale_price"
+          label="售价"
+          show-overflow-tooltip
+          v-if="!(sitem && sitem.is_gold_price === '1' && is_noble)"
+        >
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'sale_price'"
+              :rules="addrRules.sale_price"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.sale_price"
+                :placeholder="'售价'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'sale_price', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.sale_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="new_cost_fee"
+          show-overflow-
+          v-if="sitem && sitem.is_gold_price === '1' && is_noble"
+          label="系统工艺费"
+        >
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'new_cost_fee'"
+              :rules="addrRules.new_cost_fee"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-input
+                v-loading="scope.row.loading"
+                v-model="scope.row.new_cost_fee"
+                placeholder="工艺费"
+                :disabled="true"
+                :size="'mini'"
+                maxlength="20"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.new_cost_fee }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="cost_fee"
+          label="工艺费"
+          show-overflow-tooltip
+          v-if="sitem && sitem.is_gold_price === '1' && is_noble"
+        >
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'cost_fee'"
+              :rules="addrRules.cost_fee"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.cost_fee"
+                :placeholder="'工艺费'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'cost_fee', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.cost_fee }}</span>
+          </template>
+        </el-table-column>
+
+        <el-table-column prop="market_price" label="市场价" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'market_price'"
+              :rules="addrRules.market_price"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.market_price"
+                :placeholder="'市场价'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'market_price', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.market_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="market_platform" label="对比平台" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'market_platform'"
+              :rules="addrRules.market_platform"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-input
+                v-model="scope.row.market_platform"
+                placeholder="对比平台"
+                maxlength="50"
+                :disabled="!scope.row.edit"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.market_platform }}</span>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column prop="status" label="状态" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'status'"
+              :rules="addrRules.status"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-select v-model="scope.row.status" placeholder="状态">
+                <el-option
+                  v-for="item in status_options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{
+              scope.row.status + "" == "1" ? "启用" : "禁用"
+            }}</span>
+          </template>
+        </el-table-column> -->
+        <el-table-column fixed="right">
+          <template slot="header" slot-scope="scope">
+            <span>操作</span>
+            <el-tooltip effect="dark" content="添加阶梯" placement="top">
+              <i
+                class="el-icon-circle-plus-outline tb-icon fr"
+                @click="openCostEdit(-1)"
+              ></i>
+            </el-tooltip>
+          </template>
+          <template slot-scope="scope">
+            <el-tooltip
+              effect="dark"
+              content="保存"
+              v-if="scope.row.edit"
+              placement="top"
+            >
+              <i class="el-icon-circle-check tb-icon" @click="checkRow(scope.$index)"></i>
+            </el-tooltip>
+            <el-tooltip effect="dark" v-else content="修改" placement="top">
+              <i class="el-icon-edit tb-icon" @click="openCostEdit(scope.$index)"></i>
+            </el-tooltip>
+            <el-tooltip effect="dark" content="删除" placement="top">
+              <i
+                class="el-icon-delete tb-icon"
+                @click="openCostEditDelete(scope.$index)"
+              ></i>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-form>
+    <el-form
+      ref="ruleForm"
+      :model="ruleForm"
+      status-icon
+      :rules="rulesThis"
+      :label-position="'left'"
+      class="demo-ruleForm-goodsOnline"
+      :size="'mini'"
+    >
+      <el-row>
+        <el-col :span="12"
+          ><el-form-item label="审核状态" prop="state">
+            <el-radio-group
+              v-model="ruleForm.state"
+              placeholder="请选择审核状态"
+              :size="size || 'medium'"
+              @change="stateChange"
+            >
+              <el-radio v-for="item in stateList" :key="item.value" :label="item.value">{{
+                item.label
+              }}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+
+          <el-form-item
+            label="平台商品编码"
+            label-width="120px"
+            v-if="ruleForm.state + '' === '1'"
+            prop="plat_code"
+          >
+            <el-input
+              placeholder="平台商品编码"
+              v-model="ruleForm.plat_code"
+              :disabled="disabled"
+              maxlength="100"
+          /></el-form-item>
+
+          
+          <el-form-item label="审核备注" prop="remark" label-width="100px">
+            <!-- v-if="ruleForm.state === '0'" -->
+            <el-input
+              type="textarea"
+              placeholder="审核备注"
+              v-model="ruleForm.remark"
+              :disabled="disabled"
+              maxlength="250"
+              show-word-limit
+              :autosize="{ minRows: 3, maxRows: 3 }"
+            />
+          </el-form-item>
+        </el-col>
+
+
+        <el-col :span="12" v-if="ruleForm.state === '1'"
+          ><el-form-item label="售价凭证类型" prop="proof_type">
+            <el-radio-group v-model="ruleForm.proof_type" @change="set_proof_url()">
+              <el-radio v-for="item in options" :key="item.value" :label="item.value">{{
+                item.label
+              }}</el-radio>
+            </el-radio-group>
+            <el-button class="fr" type="primary" @click="showVoucher = true"
+              >查看历史凭证</el-button
+            >
+          </el-form-item>
+          <el-form-item label="凭证文件" prop="proof_url">
+            <ul class="shangchuan-ul">
+              <li v-if="ruleForm.proof_type === '1'" class="shiping">
+                <div v-if="video_url" class="clearfix">
+                  <el-popover placement="top" width="300" trigger="hover">
+                    <video width="275" controls class="fl">
+                      <source :src="video_url" type="video/mp4" />
+                      <source :src="video_url" type="video/avi" />
+                      您的浏览器不支持Video标签。
+                    </video>
+                    <i
+                      class="el-icon-video-camera-solid hover"
+                      style="font-size: 18px"
+                      slot="reference"
+                    ></i>
+                  </el-popover>
+                  <el-link
+                    :underline="false"
+                    @click="deleteUrl('1')"
+                    type="warning"
+                    style="margin: 0 0 0 16px"
+                    >删除</el-link
+                  >
+                </div>
+
+                <div class="activity-upload" v-else>
+                  <div class="btnupload" style="position: relative">
+                    <i class="el-icon-plus avatar-uploader-icon"></i>
+                    <video-upload
+                      class="Upload"
+                      :disabled="type === 'view' || type === 'editCoin'"
+                      :accept="'.mp4,.avi'"
+                      :multiple="false"
+                      :uploadcondition="beforeVideoUpload"
+                      @UploadErrorEvent="UploadVideoEventproof_url"
+                      @UploadSuccessEvent="UploadSuccessVideoproof_url"
+                    />
+                  </div>
+
+                  <div class="txt-tips fl">
+                    <p>建议大小:小于10MB</p>
+                    <p>文件格式:.mp4,.avi</p>
+                  </div>
+                </div>
+              </li>
+              <li v-if="ruleForm.proof_type === '2'" class="tupian">
+                <div v-if="img_url" class="clearfix">
+                  <img
+                    style="width: 50px; height: 50px"
+                    :src="img_url"
+                    class="avatar fl"
+                  />
+                  <el-link
+                    :underline="false"
+                    @click="deleteUrl('2')"
+                    type="warning"
+                    style="margin: 0 0 0 16px"
+                    >删除</el-link
+                  >
+                </div>
+
+                <div class="activity-upload" v-else>
+                  <div class="btnupload" style="position: relative">
+                    <i class="el-icon-plus avatar-uploader-icon"></i>
+                    <file-upload
+                      class="Upload"
+                      :disabled="type === 'view' || type === 'editCoin'"
+                      :accept="'.jpg,.png,.jpeg'"
+                      :multiple="false"
+                      :uploadcondition="beforeAvatarUpload"
+                      @UploadErrorEvent="UploadErrorEventproof_url"
+                      @UploadSuccessEvent="UploadSuccessEventproof_url"
+                    ></file-upload>
+                  </div>
+                  <div class="txt-tips fl">
+                    <p>建议大小:小于1MB</p>
+                    <p>文件格式:.jpg,.png,.jpeg</p>
+                  </div>
+                </div>
+              </li>
+              <li v-if="ruleForm.proof_type === '3'" class="qita">
+                <div v-if="other_url" class="clearfix">
+                  <a :href="other_url" download="凭证文件">点击下载</a>
+
+                  <el-link
+                    :underline="false"
+                    @click="deleteUrl('3')"
+                    type="warning"
+                    style="margin: 0 0 0 16px"
+                    >删除</el-link
+                  >
+                </div>
+
+                <div class="activity-upload" v-else>
+                  <div class="btnupload" style="position: relative">
+                    <i class="el-icon-plus avatar-uploader-icon"></i>
+                    <file-upload-pdf
+                      class="Upload"
+                      :accept="'.xlsx,.xls,.pdf,.zip,.rar,.7z'"
+                      :multiple="false"
+                      :uploadcondition="beforeOtherUpload"
+                      @UploadErrorEvent="UploadErrorOtherproof_url"
+                      @UploadSuccessEvent="UploadSuccessOtherproof_url"
+                    />
+                  </div>
+                  <div class="txt-tips fl">
+                    <p>建议大小:小于5MB</p>
+                    <p>文件格式:.xlsx,.xls,.pdf,.zip,.rar,.7z</p>
+                  </div>
+                </div>
+              </li>
+            </ul>
+          </el-form-item>
+          <show-voucher-model
+            :showModel="showVoucher"
+            :id="spuCode"
+            @cancel="showVoucher = false"
+            @searchChange="resvoucher"
+          />
+        </el-col>
+
+        <el-col :span="24">
+          <el-form-item class="fr">
+            <el-button
+              v-if="!isDetail && ruleForm.state !== '1'"
+              :size="'mini'"
+              type="primary"
+              @click="rejectRe('')"
+              >驳回重新审核
+            </el-button>
+            <el-button v-if="!isDetail" :size="'mini'" type="primary" @click="submitForm"
+              >保 存
+            </el-button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import asyncRequest from "@/apis/service/goodStore/goodsOnline";
+import showVoucherModel from "@/components/show-voucher-model";
+import companyHelper from "@/mixins/companyHelper"
+import { isAlphanumeric, isnumber, validAlphabets } from "@/utils/validate";
+    
+export default {
+  name: "exam-form",
+  props: [
+    "size",
+    "statusList",
+    "disabled",
+    "isMust",
+    "labelWidth",
+    "id",
+    "spuCode",
+    "sitem",
+  ],
+  components: {
+    // costFormAddEdit,
+    showVoucherModel,
+  },
+  mixins:[companyHelper],
+  /**
+   * 属性集合
+   * @param {String}        size             : 组件大小             非必填
+   * @param {Array}         statusList       : 驳回至备选项          必填
+   * @param {Boolean}       disabled         : 是否禁用              必填
+   * @param {Boolean}       isMust           : 是否需要展示驳回节点   必填
+   *
+   *
+   */
+  /**
+   * 事件集合
+   * @searchChange             : 选中值变化调用   抛出选中数据
+   */
+  data() {
+    const validate_num = (rule, value, callback) => {
+      const { required } = rule;
+      if (required && value === "") {
+        callback(new Error("不能为空!"));
+      } else {
+        callback();
+      }
+    };
+    const validate_num_0 = (rule, value, callback) => {
+      const { required } = rule;
+      if (required && value === "") {
+        callback(new Error("不能为空!"));
+      } else if (
+        required &&
+        (value === "0" ||
+          value === "0." ||
+          value === "0.0" ||
+          value === "0.00" ||
+          value === "0.000")
+      ) {
+        callback(new Error("不能为零!"));
+      } else {
+        callback();
+      }
+    };
+    const validate_plat_code = (rule, value, callback) => {
+      if (value === "" || !value) {
+        callback(new Error("平台商品编号不能为空!"));
+      } else {
+        if (isnumber(value)) {
+          callback();
+        } else if (validAlphabets(value)) {
+          callback();
+        } else if (isAlphanumeric(value)) {
+          callback();
+        } else {
+          callback("平台商品编号仅支持数字和字母!");
+        }
+      }
+  };
+
+    return {
+      loading: false,
+      stateList: [
+        {
+          value: "1",
+          label: "通过",
+        },
+        {
+          value: "0",
+          label: "驳回",
+        },
+      ],
+      platform_id:"",
+      showVoucher: false,
+      is_noble: false,
+      video_url: "",
+      img_url: "",
+      other_url: "",
+      options: [
+        {
+          value: "1",
+          label: "视频",
+        },
+        {
+          value: "2",
+          label: "图片",
+        },
+        {
+          value: "3",
+          label: "其他",
+        },
+      ],
+      status_options: [
+        {
+          value: "1",
+          label: "启用",
+        },
+        {
+          value: "0",
+          label: "禁用",
+        },
+      ],
+      showModelThis: this.showModel,
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() < Date.now() - 60 * 60 * 24 * 1000;
+        },
+      },
+      costshowModel: false,
+      costmodelIndex: "",
+      costsitem: {},
+      ruleForm: {
+        plat_code:"",
+        skuCode: "",
+        numStatus: "",
+        state: "1", //通过or驳回
+        proof_type: "1", //
+        proof_url: "", //驳回至
+        remark: "",
+      },
+      rulesThis: this.rules,
+      rules: {
+        proof_type: [
+          {
+            required: true,
+            message: "请选择凭证类型",
+            trigger: "change",
+          },
+        ],
+        plat_code: [
+          {
+            required: true,
+            validator:validate_plat_code,
+            trigger:'change'
+          },
+        ], 
+        proof_url: [
+          {
+            required: true,
+            message: "请上传凭证文件",
+            trigger: "blur,change",
+          },
+        ],
+        rebut: [
+          {
+            required: true,
+            message: "请选择驳回节点",
+            trigger: "change",
+          },
+        ],
+        state: [
+          {
+            required: true,
+            message: "请选择审核状态",
+            trigger: "change",
+          },
+        ],
+        remark: [
+          { required: true, message: "请输入审核备注", trigger: "blur" },
+          {
+            min: 1,
+            max: 250,
+            message: "长度在 1 到 250 个字符",
+            trigger: "blur",
+          },
+        ],
+      },
+      addrForm: {
+        good_ladder: [],
+      },
+      good_ladder: [],
+      addrRules: {
+        min_num: [
+          {
+            required: true,
+            validator: validate_num_0,
+            trigger: "blur",
+          },
+        ],
+        new_sale_price: [{ required: false }],
+        sale_price: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validate_num,
+          },
+        ],
+        cost_fee: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validate_num,
+          },
+        ],
+        new_cost_fee: [
+          {
+            required: false,
+          },
+        ],
+        market_price: [
+          {
+            required: true,
+            validator: validate_num,
+            trigger: "blur",
+          },
+        ],
+
+        market_platform: [
+          {
+            required: true,
+            message: "对比平台不能为空",
+            trigger: "blur",
+          },
+        ],
+        status: [
+          {
+            required: true,
+            message: "状态不能为空",
+            trigger: "change",
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    isDetail: function (val, old) {
+      if (this.isDetail !== val) {
+        this.options = [];
+        this.selectLoading = false;
+      }
+    },
+    newTime: function (val) {
+      if (val) {
+        this.initForm();
+      }
+    },
+  },
+  mounted() {
+    this.initForm();
+  },
+  methods: {
+    // 点击驳回重新审核或驳回并下线按钮
+    async rejectRe(numStatus) {
+      this.ruleForm.numStatus = numStatus;
+      await this.$refs.ruleForm.validate(async (valid) => {
+        if (valid) {
+          console.log(valid);
+          this.$emit("searchChange", this.ruleForm);
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    async initForm() {
+      this.loading = true;
+      await this.resetForm();
+      this.rulesThis = this.rules;
+      this.stateChange();
+      this.loading = false;
+    },
+    stateChange() {
+      if (this.ruleForm.state === "1") {
+        this.rulesThis.rebut[0].required = false;
+        this.rulesThis.remark[0].required = false;
+      } else {
+        this.rulesThis.rebut[0].required = true;
+        this.rulesThis.remark[0].required = true;
+      }
+    },
+
+    openCostEdit(index) {
+      let findex = this.addrForm.good_ladder.findIndex((v) => v.edit === true);
+      if (findex !== -1) {
+        this.$message.warning("当前已有阶梯售价在编辑,请保存后再试!");
+        return;
+      } else {
+        if (index === -1) {
+          this.addrForm.good_ladder.push({
+            edit: true,
+            min_num: "0",
+            new_sale_price: "0",
+            new_cost_fee: "0",
+            sale_price: "0",
+            cost_fee: "0",
+            market_price: "0",
+            market_platform: "",
+            status: "1",
+          });
+        } else {
+          this.addrForm.good_ladder[index].edit = true;
+          this.addrForm.good_ladder[index].newTime = new Date().valueOf() + "";
+        }
+      }
+    },
+    async get_new(index) {
+      const { min_num } = this.addrForm.good_ladder[index];
+      this.addrForm.good_ladder[index].search_loading = true;
+      let { code, data, message } = await asyncRequest.goodupprice({
+        platform_id:this.platform_id,
+        min_num: min_num,
+        spuCode: this.spuCode,
+        relaComNo: this.companyNo,
+        needRela: true
+      });
+      let resModel = {
+        isok: code,
+        platform_id: this.platform_id,
+        price: code === 0 ? data.sale_price : "0",
+        new_cost_fee: code === 0 ? data.new_cost_fee : "0",
+        message: message,
+      };
+      this.addrForm.good_ladder[index].search_loading = false;
+      return resModel;
+    },
+    //保存某一行
+    async checkRow(rowIndex) {
+       // new_sale_price  sale_price
+       // new_cost_fee cost_fee
+      const { sale_price ,new_sale_price , cost_fee , new_cost_fee } = this.addrForm.good_ladder[rowIndex] || {}
+      const _salePrice = Number(sale_price)
+      const _systemSalePrice = Number(new_sale_price)
+      const _costFee = Number(cost_fee)
+      const _systemCostFee = Number(new_cost_fee)
+
+      if(_salePrice && _salePrice < _systemSalePrice){
+        this.$message.warning('售价不能小于系统售价!')
+        return
+      }
+
+      if(_costFee && _costFee < _systemCostFee) {
+        this.$message.warning('工艺费不能小于系统工艺费!')
+        return
+      }
+
+      await this.$refs.addrForm.validate(async (valid) => {
+        if (valid) {
+          if (!this.addrForm.good_ladder[rowIndex].search_loading) {
+            const { min_num } = this.addrForm.good_ladder[rowIndex];
+            let findex = this.addrForm.good_ladder.findIndex(
+              (v) => v.edit !== true && v.min_num + "" === min_num + ""
+            );
+            if (findex !== -1) {
+              this.$message.warning("当前已有相同起订量的销售价!");
+              return;
+            }
+            let { isok, price, message, new_cost_fee } = await this.get_new(rowIndex);
+            if (isok === 0) {
+              this.addrForm.good_ladder[rowIndex].new_sale_price = price;
+              this.addrForm.good_ladder[rowIndex].new_cost_fee = new_cost_fee;
+              this.addrForm.good_ladder[rowIndex].edit = false;
+            } else if (isok >= 100 && isok <= 104) {
+              await this.logout();
+            } else {
+              this.addrForm.good_ladder[rowIndex].new_sale_price = price;
+              this.addrForm.good_ladder[rowIndex].new_cost_fee = new_cost_fee;
+              this.$message.warning(message);
+            }
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    openCostEditDelete(index) {
+      this.addrForm.good_ladder.splice(index, 1);
+    },
+    async num_change(e, key, index) {
+      const resNum = e ?? "";
+      this.addrForm.good_ladder[index][key] = resNum === "" ? "0" : resNum;
+      if (key === "min_num") {
+        const { min_num } = this.addrForm.good_ladder[index];
+        if (min_num === "" || min_num === "0") {
+          this.addrForm.good_ladder[index].new_sale_price = "0";
+        } else {
+          if (!this.addrForm.good_ladder[index].search_loading) {
+            let { isok, price, message, new_cost_fee } = await this.get_new(index);
+            if (isok === 0) {
+              this.addrForm.good_ladder[index].new_sale_price = price;
+              this.addrForm.good_ladder[index].new_cost_fee = new_cost_fee;
+            } else if (isok >= 100 && isok <= 104) {
+              await this.logout();
+            } else {
+              this.addrForm.good_ladder[index].new_sale_price = price;
+              this.addrForm.good_ladder[index].new_cost_fee = new_cost_fee;
+              this.$message.warning(message);
+            }
+          }
+        }
+      }
+    },
+
+    async resetForm() {
+      this.is_noble = false;
+      // 重置
+      await this.$nextTick(async () => {
+        if (this.$refs.ruleForm && this.$refs.addrForm) {
+          this.$refs.ruleForm.resetFields();
+          this.$refs.ruleForm.clearValidate();
+          this.$refs.addrForm.resetFields();
+          this.$refs.addrForm.clearValidate();
+          let { proof, ladderlist, cat_info ,platform_id} = this.sitem;
+          console.log(platform_id)
+          this.platform_id = platform_id;
+          if (cat_info && cat_info.length > 0) {
+            cat_info.forEach((e) => {
+              if (e.id === "6") {
+                this.is_noble = true;
+              }
+            });
+          }
+          ladderlist.map((a) => {
+            a.search_loading = false;
+            a.new_sale_price = "0";
+            a.newTime = new Date().valueOf() + "";
+            a.edit = false;
+            return a;
+          });
+
+          this.ruleForm = {
+            skuCode: this.id,
+            state: "1", // 通过or驳回
+            remark: "",
+            numStatus: "",
+            proof_type: proof && proof.proof_type ? proof.proof_type : "1", // 通过or驳回
+            proof_url: proof && proof.proof_url ? proof.proof_url : "", //驳回至
+          };
+          this.addrForm = {
+            good_ladder:
+              ladderlist && ladderlist.length > 0
+                ? JSON.parse(JSON.stringify(ladderlist))
+                : [],
+          };
+          this.good_ladder =
+            ladderlist && ladderlist.length > 0
+              ? JSON.parse(JSON.stringify(ladderlist))
+              : [];
+          // console.log(this.ruleForm.proof_url);
+          switch (this.ruleForm.proof_type) {
+            case "1":
+              this.video_url = this.ruleForm.proof_url;
+              break;
+            case "2":
+              this.img_url = this.ruleForm.proof_url;
+              break;
+            case "3":
+              this.other_url = this.ruleForm.proof_url;
+              break;
+            default:
+              this.video_url = this.ruleForm.proof_url;
+          }
+          this.$refs.ruleForm.validateField("proof_url");
+          for (let i = 0; i < this.addrForm.good_ladder.length; i++) {
+            let { isok, price, new_cost_fee, message } = await this.get_new(i);
+            if (isok === 0) {
+              this.addrForm.good_ladder[i].new_sale_price = price;
+              this.addrForm.good_ladder[i].new_cost_fee = new_cost_fee;
+              this.addrForm.good_ladder[i].edit = false;
+            } else if (isok >= 100 && isok <= 104) {
+              await this.logout();
+            } else {
+              this.addrForm.good_ladder[i].new_sale_price = price;
+              this.addrForm.good_ladder[i].new_cost_fee = new_cost_fee;
+              this.addrForm.good_ladder[i].edit = true;
+              this.addrForm.good_ladder[i].newTime = new Date().valueOf() + "";
+              this.$message.warning(message);
+            }
+          }
+        }
+      });
+    },
+    async submitForm() {
+      await this.$refs.ruleForm.validate(async (valid) => {
+        if (valid) {
+          if (!this.loading) {
+            let model = JSON.parse(JSON.stringify(this.ruleForm));
+            const { state } = model;
+            if (state + "" === "1") {
+              this.loading = true;
+              if (this.addrForm.good_ladder.length === 0) {
+                this.$message.warning("至少存在一条销售价信息!");
+                this.loading = false;
+                return;
+              }
+              let list = JSON.parse(JSON.stringify(this.addrForm.good_ladder));
+              let all_is_ok = true;
+              let isok = true;
+              for (let i = 0; i < this.addrForm.good_ladder; i++) {
+                this.addrForm.good_ladder[i].search_loading = true;
+                const { market_platform } = this.addrForm.good_ladder[i];
+                if (market_platform == "") {
+                  isok = false;
+                }
+                let { isok, price, new_cost_fee } = await this.get_new(i);
+                if (isok === 0) {
+                  this.set_ladder_item(i, price, new_cost_fee);
+                } else if (isok >= 100 && isok <= 104) {
+                  await this.logout();
+                } else {
+                  all_is_ok = false;
+                  this.set_ladder_item(i, price, new_cost_fee);
+                }
+              }
+              if (!isok) {
+                this.$message.warning("比价平台不能为空!");
+                this.loading = false;
+              }
+              if (!all_is_ok) {
+                this.$message.warning("阶梯售价未满足成本最低起订量!");
+                this.loading = false;
+              }
+              let list2 = [];
+              list.forEach((e) => {
+                let n = JSON.parse(JSON.stringify(e));
+                for (let key in n) {
+                  n[key] += "";
+                }
+                delete n["index"];
+                list2.push(n);
+              });
+              this.good_ladder.forEach((si, sii) => {
+                const index = list2.findIndex((ai, aii) => si.id === ai.id);
+                if (index === -1) {
+                  si.is_del = "1";
+                  list2.push(si);
+                }
+              });
+              model.good_ladder = list2;
+
+              model.skuCode = this.id;
+              model.exam_remark = model.remark;
+              model.exam_status = "3";
+              delete model["remark"];
+              await this.successHttp(model);
+            } else {
+              const { remark } = this.ruleForm;
+              await this.successHttp({
+                exam_remark: remark,
+                exam_status: "4",
+                skuCode: this.id,
+                noRelation: true,
+              });
+            }
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    async successHttp(model) {
+      const { code, message } = await asyncRequest.ladderOne(model);
+      this.loading = false;
+      if (code === 0) {
+        this.$notify.success({
+          title: "信息提交成功",
+          message: "",
+        });
+        this.$emit("resSuccess", true);
+      } else if (code >= 100 && code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(message);
+      }
+    },
+
+    resvoucher(e) {
+      const { proof_type, proof_url } = e;
+      this.ruleForm.proof_type = proof_type || "1";
+      switch (this.ruleForm.proof_type) {
+        case "1":
+          this.video_url = proof_url;
+          break;
+        case "2":
+          this.img_url = proof_url;
+          break;
+        case "3":
+          this.other_url = proof_url;
+          break;
+        default:
+          this.video_url = proof_url;
+      }
+      this.set_proof_url();
+    },
+    //图片上传成功
+    async UploadSuccessEventproof_url(data) {
+      const { url } = data;
+      if (url === "noToken") {
+        await this.logout();
+      } else {
+        this.img_url = url;
+        this.set_proof_url();
+        this.$message.success("图片上传成功!");
+      }
+    },
+
+    //图片上传失败
+    UploadErrorEventproof_url(res) {
+      if (res !== "break") {
+        this.set_proof_url();
+        this.$message.error("图片上传失败!");
+      }
+    },
+
+    //判断图片规格
+    beforeAvatarUpload(file) {
+      let isJPG = false;
+      if (
+        file.type === "image/jpg" ||
+        file.type === "image/png" ||
+        file.type === "image/jpeg"
+      ) {
+        isJPG = true;
+      }
+      const isLt2M = file.size / 1024 / 1024 < 1;
+      if (!isJPG) {
+        this.$message.error("图片格式不正确!");
+      }
+      if (!isLt2M) {
+        this.$message.error("图片大小不能超过 1MB!");
+      }
+      return isJPG && isLt2M;
+    },
+
+    //视频上传成功
+    async UploadSuccessVideoproof_url(data) {
+      const { url } = data;
+      if (url === "noToken") {
+        await this.logout();
+      } else {
+        this.video_url = url;
+        this.set_proof_url();
+        this.$message.success("视频上传成功!");
+      }
+    },
+
+    //视频上传失败
+    UploadErrorVideoproof_url(res) {
+      if (res !== "break") {
+        this.set_proof_url();
+        this.$message.error("视频上传失败!");
+      }
+    },
+
+    //判断视频规格
+    beforeVideoUpload(file) {
+      let isJPG = false;
+      if (file.type === "video/mp4" || file.type === "video/avi") {
+        isJPG = true;
+      }
+      const isLt2M = file.size / 1024 / 1024 < 10;
+      if (!isJPG) {
+        this.$message.error("视频格式不正确!");
+      }
+      if (!isLt2M) {
+        this.$message.error("视频大小不能超过 10MB!");
+      }
+      return isJPG && isLt2M;
+    },
+
+    // 其他文件上传成功
+    async UploadSuccessOtherproof_url(data) {
+      const { url } = data;
+      if (url === "noToken") {
+        await this.logout();
+      } else {
+        this.other_url = url;
+        this.set_proof_url();
+        this.$message.success("文件成功!");
+      }
+    },
+
+    //其他文件上传失败
+    UploadErrorOtherproof_url(res) {
+      if (res !== "break") {
+        this.set_proof_url();
+        this.$message.error("文件上传失败!");
+      }
+    },
+
+    //判断其他文件规格
+    beforeOtherUpload(file) {
+      console.log(file);
+      let isJPG = false;
+      if (
+        file.type === "application/vnd.ms-excel" ||
+        file.type ===
+          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
+        file.type === "application/pdf" ||
+        file.type === "application/x-zip-compressed"
+      ) {
+        isJPG = true;
+      }
+      let name = file.name;
+      let list = name.split(".");
+      if (list[list.length - 1] === "rar" || list[list.length - 1] === "7z") {
+        isJPG = true;
+      }
+
+      const isLt2M = file.size / 1024 / 1024 < 5;
+      if (!isJPG) {
+        this.$message.error("文件格式不正确!");
+      }
+      if (!isLt2M) {
+        this.$message.error("文件大小不能超过 5MB!");
+      }
+      return isJPG && isLt2M;
+    },
+
+    deleteUrl(type) {
+      switch (type) {
+        case "1":
+          this.video_url = "";
+          break;
+        case "2":
+          this.img_url = "";
+          break;
+        case "3":
+          this.other_url = "";
+          break;
+        default:
+          this.video_url = "";
+      }
+      this.set_proof_url();
+    },
+    set_proof_url() {
+      const { proof_type } = this.ruleForm;
+      switch (proof_type) {
+        case "1":
+          this.ruleForm.proof_url = this.video_url;
+          break;
+        case "2":
+          this.ruleForm.proof_url = this.img_url;
+          break;
+        case "3":
+          this.ruleForm.proof_url = this.other_url;
+          break;
+        default:
+          this.ruleForm.proof_url = this.video_url;
+      }
+      this.$refs.ruleForm.validateField("proof_url");
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.demo-ruleForm-goodsOnline {
+  .shangchuan-ul {
+    li {
+      position: relative;
+      width: 100%;
+      &.tupian {
+      }
+    }
+  }
+}
+</style>

+ 309 - 2
src/views/goodStore/goodsOnline/components/online-form.vue

@@ -207,7 +207,7 @@
       class="demo-addrForm-goodsOnline"
       :size="'mini'"
     >
-      <el-table
+      <!-- <el-table
         :data="addrForm.good_ladder"
         :size="'mini'"
         border
@@ -259,6 +259,237 @@
             />
           </template>
         </el-table-column>
+      </el-table> -->
+
+      <el-table
+        :data="addrForm.good_ladder"
+        :size="'mini'"
+        border
+        stripe
+        max-height="300px"
+        row-key="key"
+        style="width: 100%; margin: 0 0 20px 0"
+      >
+        <el-table-column type="index" width="50" show-overflow-tooltip />
+        <el-table-column prop="min_num" label="起订量(>=)" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'min_num'"
+              :rules="addrRules.min_num"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.min_num"
+                :placeholder="'起订量(>=)'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="0"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'min_num', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.min_num }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="new_sale_price" show-overflow-tooltip>
+          <template slot="header" slot-scope="scope">
+            <span>系统售价</span>
+          </template>
+
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'new_sale_price'"
+              :rules="addrRules.new_sale_price"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-input
+                v-loading="scope.row.loading"
+                v-model="scope.row.new_sale_price"
+                placeholder="系统售价"
+                :disabled="true"
+                :size="'mini'"
+                maxlength="20"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.new_sale_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="sale_price"
+          label="售价"
+          show-overflow-tooltip
+          v-if="!(sitem && sitem.is_gold_price === '1' && is_noble)"
+        >
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'sale_price'"
+              :rules="addrRules.sale_price"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.sale_price"
+                :placeholder="'售价'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'sale_price', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.sale_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="new_cost_fee"
+          show-overflow-
+          v-if="sitem && sitem.is_gold_price === '1' && is_noble"
+          label="系统工艺费"
+        >
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'new_cost_fee'"
+              :rules="addrRules.new_cost_fee"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-input
+                v-loading="scope.row.loading"
+                v-model="scope.row.new_cost_fee"
+                placeholder="工艺费"
+                :disabled="true"
+                :size="'mini'"
+                maxlength="20"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.new_cost_fee }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="cost_fee"
+          label="工艺费"
+          show-overflow-tooltip
+          v-if="sitem && sitem.is_gold_price === '1' && is_noble"
+        >
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'cost_fee'"
+              :rules="addrRules.cost_fee"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.cost_fee"
+                :placeholder="'工艺费'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+              :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'cost_fee', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.cost_fee }}</span>
+          </template>
+        </el-table-column>
+
+        <el-table-column prop="market_price" label="市场价" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'market_price'"
+              :rules="addrRules.market_price"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <digital-input
+                :values="scope.row.market_price"
+                :placeholder="'市场价'"
+                :min="0"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :controls="false"
+                :append="''"
+                :newTime="scope.row.newTime"
+                :size="'mini'"
+                :disabled="!scope.row.edit"
+                @reschange="num_change($event, 'market_price', scope.$index)"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.market_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="market_platform" label="对比平台" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-form-item
+              v-show="scope.row.edit"
+              :prop="'good_ladder.' + scope.$index + '.' + 'market_platform'"
+              :rules="addrRules.market_platform"
+              :size="'mini'"
+              :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+            >
+              <el-input
+                v-model="scope.row.market_platform"
+                placeholder="对比平台"
+                maxlength="50"
+                :disabled="!scope.row.edit"
+              />
+            </el-form-item>
+            <span v-show="!scope.row.edit">{{ scope.row.market_platform }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column fixed="right">
+          <template slot="header" slot-scope="scope">
+            <span>操作</span>
+            <el-tooltip effect="dark" content="添加阶梯" placement="top">
+              <i
+                class="el-icon-circle-plus-outline tb-icon fr"
+                @click="openCostEdit(-1)"
+              ></i>
+            </el-tooltip>
+          </template>
+          <template slot-scope="scope">
+            <el-tooltip
+              effect="dark"
+              content="保存"
+              v-if="scope.row.edit"
+              placement="top"
+            >
+              <i class="el-icon-circle-check tb-icon" @click="checkRow(scope.$index)" />
+            </el-tooltip>
+            <el-tooltip effect="dark" v-else content="修改" placement="top">
+              <i class="el-icon-edit tb-icon" @click="openCostEdit(scope.$index)" />
+            </el-tooltip>
+            <el-tooltip effect="dark" content="删除" placement="top">
+              <i
+                class="el-icon-delete tb-icon"
+                @click="openCostEditDelete(scope.$index)"
+              />
+            </el-tooltip>
+          </template>
+        </el-table-column>
       </el-table>
     </el-form>
     <div class="tr">
@@ -348,6 +579,7 @@ export default {
   };
 
     return {
+      search_loading: false,
       loading: false,
       companyNo: "",
       platform_id: "",
@@ -494,6 +726,81 @@ export default {
     this.initForm();
   },
   methods: {
+    openCostEditDelete(index) {
+      this.addrForm.good_ladder.splice(index, 1);
+    },
+    openCostEdit(index) {
+      let findex = this.addrForm.good_ladder.findIndex((v) => v.edit === true);
+      if (findex !== -1) {
+        this.$message.warning("当前已有阶梯售价在编辑,请保存后再试!");
+        return;
+      } else {
+        if (index === -1) {
+          this.addrForm.good_ladder.push({
+            edit: true,
+            min_num: "0",
+            new_sale_price: "0",
+            new_cost_fee: "0",
+            sale_price: "0",
+            cost_fee: "0",
+            market_price: "0",
+            market_platform: "",
+            status: "1",
+          });
+        } else {
+          this.addrForm.good_ladder[index].edit = true;
+          this.addrForm.good_ladder[index].newTime = new Date().valueOf() + "";
+        }
+      }
+    },
+    async checkRow(rowIndex) {
+      const { market_platform, sale_price, market_price ,new_sale_price} = this.addrForm.good_ladder[rowIndex]
+      const _salePrice = Number(sale_price)
+      const _marketPrice = Number(market_price)
+      const _systemSalePrice = Number(new_sale_price)
+
+      if(!market_platform){
+        this.$message.warning("对比平台不能为空")
+        return
+      }
+
+      if(!_salePrice && !_marketPrice){
+        this.$message.warning("市场价和售价只能填写一个")
+        return
+      }
+
+      if(_salePrice && _salePrice < _systemSalePrice){
+        this.$message.warning("售价不能小于系统售价")
+        return
+      }
+
+      if(_marketPrice && _marketPrice < _systemSalePrice){
+        this.$message.warning("市场价格不能小于系统售价")
+        return
+      }
+
+      const { min_num } = this.addrForm.good_ladder[rowIndex];
+      let findex = this.addrForm.good_ladder.findIndex(
+        (v) => v.edit !== true && v.min_num + "" === min_num + ""
+      );
+      if (findex !== -1) {
+        this.$message.warning("当前已有相同起订量的销售价!");
+        return;
+      }
+      let { isok, price, message, new_cost_fee } = await this.get_new(rowIndex);
+      if (isok === 0) {
+        console.log(this.addrForm.good_ladder[rowIndex])
+        this.addrForm.good_ladder[rowIndex].new_sale_price = price;
+        this.addrForm.good_ladder[rowIndex].new_cost_fee = new_cost_fee;
+        this.addrForm.good_ladder[rowIndex].edit = false;
+      } else if (isok >= 100 && isok <= 104) {
+        await this.logout();
+      } else {
+        this.addrForm.good_ladder[rowIndex].new_sale_price = price;
+        this.addrForm.good_ladder[rowIndex].new_cost_fee = new_cost_fee;
+        this.$message.warning(message);
+      }
+    },
     async initForm() {
       this.loading = true;
       await this.resetForm();
@@ -514,7 +821,6 @@ export default {
     async get_new(index) {
       const { min_num } = this.addrForm.good_ladder[index];
       this.addrForm.good_ladder[index].search_loading = true;
-      console.log(this.companyNo);
       let { code, data, message } = await asyncRequest.goodupprice({
         min_num: min_num,
         spuCode: this.spuCode,
@@ -534,6 +840,7 @@ export default {
 
     async num_change(e, key, index) {
       const resNum = e ?? "";
+      console.log(111)
       this.addrForm.good_ladder[index][key] = resNum === "" ? "0" : resNum;
       if (key === "min_num") {
         const { min_num } = this.addrForm.good_ladder[index];

+ 20 - 11
src/views/goodStore/goodsOnline/detail.vue

@@ -242,11 +242,11 @@
             </el-collapse-item>
 
             <el-collapse-item
+              v-if="status == '2' && ppowers.some((i) => i == '2') && !isSupertube" 
               title="待产品审核"
               name="1"
-              v-if="status == '2' && ppowers.some((i) => i == '2') && !isSupertube"
             >
-              <online-form
+              <FixedPriceForm         
                 :newTime="newTime"
                 :id="queryId"
                 :spuCode="spuCode"
@@ -255,27 +255,33 @@
                 :disabled="false"
                 :isMust="false"
                 @resSuccess="initForm"
-              />
+                @searchChange="examForm1"
+                @rejectRes="examForm2"
+               />
             </el-collapse-item>
           </el-collapse>
         </el-tab-pane>
+        
         <el-tab-pane label="审批记录" name="2">
           <process-time-line
             v-if="newTime !== ''"
             :newTime="newTime"
             :type="'SPSX'"
             :orderCode="queryId"
-        /></el-tab-pane>
+          />
+        </el-tab-pane>
+
         <el-tab-pane label="审批备注" name="3">
           <process-remark-time-line
             v-if="newTime !== ''"
             :newTime="newTime"
             :skuCode="queryId"
-        /></el-tab-pane>
+          />
+         </el-tab-pane>
 
-        <el-tab-pane label="流程图" name="4">
-          <flow-chart process_id="16" type="SPSX" :orderCode="queryId" />
-        </el-tab-pane>
+         <el-tab-pane label="流程图" name="4">
+           <flow-chart process_id="16" type="SPSX" :orderCode="queryId" />
+         </el-tab-pane>
       </el-tabs>
     </div>
     <div v-else>
@@ -289,6 +295,10 @@ import resToken from "@/mixins/resToken";
 import { mapGetters } from "vuex";
 import { public_listCol, purchase_listCol, sale_listCol } from "./ShowDataTableColumns";
 import processRemarkTimeLine from "./components/process-remark-time-line";
+import { isArray } from "@/utils/validate";
+import onlineForm from "./components/online-form";
+import FixedPriceForm from "./components/fixed-price-form.vue"
+
 import {
   options1,
   options2,
@@ -299,14 +309,13 @@ import {
   options7,
   options8,
 } from "./columns";
-import { isArray } from "@/utils/validate";
-import onlineForm from "./components/online-form";
 export default {
   name: "goodsOnlineDetail",
   mixins: [resToken],
   components: {
     onlineForm,
     processRemarkTimeLine,
+    FixedPriceForm
   },
   computed: {
     ...mapGetters([
@@ -314,7 +323,7 @@ export default {
       "searchSize",
       "size",
       "private_field",
-      ', "isSupertube"',
+      "isSupertube"
     ]),
     powers() {
       const tran =

+ 6 - 12
src/views/sellOut/beforeReturnGoodWorkOrder/index.vue

@@ -26,24 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <el-col :span="4" style="width: 160px; padding: 0 0 0 10px">
                 <el-select

+ 6 - 13
src/views/sellOut/deliveryWorkOrder/index.vue

@@ -26,25 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="4" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
-                  style="width: 100%"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <!-- 时间区间 -->
               <el-col :span="6" style="width: 303px; padding: 0 0 0 10px">

+ 6 - 12
src/views/sellOut/returnGoodWorkOrder/index.vue

@@ -26,24 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <el-col :span="4" style="width: 160px; padding: 0 0 0 10px">
                 <el-select

+ 15 - 4
src/views/sellOut/salesOrder/index.vue

@@ -57,7 +57,7 @@
                 </el-select>
               </el-col>
               <el-col :span="4" style="width: 150px; padding: 0 0 0 9px">
-                <el-select
+                <!-- <el-select
                   :size="searchSize"
                   v-model="parmValue.use_type"
                   filterable
@@ -75,7 +75,19 @@
                     :label="item.label"
                     :value="item.value"
                   />
-                </el-select>
+                </el-select> -->
+                <el-switch 
+                  v-model="parmValue.use_type"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                />
               </el-col>
 
               <el-col :span="3" style="width: 66px; float: right">
@@ -337,14 +349,13 @@ import addEdit from "./components/addEdit";
 import userAddEdit from "./userAddEdit";
 import { mapGetters } from "vuex";
 import companyHelper from "@/mixins/companyHelper";
-// import {} from "@/utils/stat"
+import { MessageBox } from "element-ui";
 
 import {
   xs_order_type_options,
   xs_order_source_options,
   usetypeOtions,
 } from "@/assets/js/statusList";
-import { MessageBox } from "element-ui";
 
 export default {
   name: "salesOrder",

+ 6 - 12
src/views/sellOut/sellAfterApply/index.vue

@@ -26,24 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
-                  style="width: 100%"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  placeholder="平台类型"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <!-- 时间选择 -->
               <el-col :span="4" style="width: 303px; padding: 0 0 0 10px">

+ 6 - 13
src/views/sellOut/sellOutOrder/index.vue

@@ -89,25 +89,18 @@
             </el-row>
             <el-row style="padding-top: 10px">
               <el-col :span="4" style="width: 177px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
-                  style="width: 100%"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
 
               <el-col :span="4" style="width: 150px; padding: 0 0 0 9px">

+ 6 - 13
src/views/sellOut/sellReturn/index.vue

@@ -26,25 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
-                  style="width: 100%"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
 
               <!-- 时间区间 -->

+ 6 - 12
src/views/supplierSellOut/supplierBeforeReturnGoodWorkOrder/index.vue

@@ -26,24 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <el-col :span="4" style="width: 160px; padding: 0 0 0 10px">
                 <el-select

+ 6 - 13
src/views/supplierSellOut/supplierDeliveryWorkOrder/index.vue

@@ -26,25 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="4" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
-                  style="width: 100%"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <!-- 时间区间 -->
               <el-col :span="6" style="width: 303px; padding: 0 0 0 10px">

+ 6 - 12
src/views/supplierSellOut/supplierReturnWorkOrder/index.vue

@@ -26,24 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
               <el-col :span="4" style="width: 160px; padding: 0 0 0 10px">
                 <el-select

+ 14 - 2
src/views/supplierSellOut/supplierSellAfterApply/index.vue

@@ -26,7 +26,7 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
+                <!-- <el-select
                   :size="searchSize"
                   style="width: 100%"
                   v-model="parmValue.use_type"
@@ -43,7 +43,19 @@
                     :label="item.label"
                     :value="item.value"
                   />
-                </el-select>
+                </el-select> -->
+                <el-switch 
+                  v-model="parmValue.use_type"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                />
               </el-col>
               <!-- 时间选择 -->
               <el-col :span="4" style="width: 303px; padding: 0 0 0 10px">

+ 6 - 13
src/views/supplierSellOut/supplierSellOutOrder/index.vue

@@ -89,25 +89,18 @@
             </el-row>
             <el-row style="padding-top: 10px">
               <el-col :span="4" style="width: 177px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
-                  style="width: 100%"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
 
               <el-col :span="4" style="width: 150px; padding: 0 0 0 9px">

+ 6 - 13
src/views/supplierSellOut/supplierSellReturn/index.vue

@@ -26,25 +26,18 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="3" style="width: 120px">
-                <el-select
-                  :size="searchSize"
+                <el-switch 
                   v-model="parmValue.use_type"
-                  filterable
-                  placeholder="平台类型"
-                  style="width: 100%"
+                  :active-value="usetypeOtions[1].value"
+                  :inactive-value="usetypeOtions[0].value"
+                  :active-text="usetypeOtions[1].label"
+                  :inactive-text="usetypeOtions[0].label"
                   @change="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
                     searchList();
                   "
-                >
-                  <el-option
-                    v-for="item in usetypeOtions"
-                    :key="'use_type' + item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
+                />
               </el-col>
 
               <!-- 时间区间 -->

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