lilei 1 rok temu
rodzic
commit
fccb5553db

+ 217 - 0
src/api/salesDetailNew.js

@@ -0,0 +1,217 @@
+import { axios } from '@/utils/request'
+
+//  销售详情 删除
+export const salesDetailDel = (params) => {
+  return axios({
+    url: `/salesn/detail/delete`,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 批量删除
+export const salesDetailBatchDel = (params) => {
+  return axios({
+    url: `/salesn/detail/delete/batch`,
+    data: params,
+    method: 'post'
+  })
+}
+// 仓库设置
+export const updateWarehouse = (params) => {
+    return axios({
+      url: '/salesn/detail/updateWarehouse',
+      method: 'post',
+      data: params
+    })
+}
+// 删除全部已选产品
+export const deleteAll = (params) => {
+    return axios({
+      url: `/salesn/detail/delete/all`,
+      method: 'post',
+      data: params
+    })
+  }
+
+// 新增销售明细
+export const salesDetailInsert = (params) => {
+  return axios({
+    url: '/salesn/detail/insert',
+    data: params,
+    method: 'post'
+  })
+}
+
+// 销售详情列表分页
+export const salesDetailList = (params) => {
+  const url = `/salesn/detail/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 销售详情列表不分页
+export const salesDetailAllList = (params) => {
+  const url = `/salesn/detail/query`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+//  修改销售明细数量
+export const salesDetailUpdateQty = (params) => {
+    return axios({
+        url: '/salesn/detail/updateQty',
+        data: params,
+        method: 'post'
+    })
+}
+// 销售  解析导入的文件
+export const salesParseProducts = params => {
+    return axios({
+      url: '/salesn/detail/importParse',
+      data: params,
+      method: 'post'
+    })
+  }
+
+ 
+// 缺货明细
+export const salesStockoutDetail = (params) => {
+  const url = `/sales/detail/queryPageStock`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+ 
+// 修改销售明细取消数量
+export const salesDetailUpdateCancelQty = (params) => {
+  return axios({
+    url: '/sales/detail/updateBatchCancelQty',
+    data: params,
+    method: 'post'
+  })
+}
+
+// 获取产品适用活动的促销产品列表
+export const getPromoGoodsList = (params) => {
+  const url = `/sales/detail/getPromoGoodsList/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 批量添加促销品
+export const addPromoGoods = (params) => {
+  return axios({
+    url: `/sales/detail/addPromoGoods`,
+    data: params,
+    method: 'post'
+  })
+}
+// 促销产品统计  列表  分页
+export const salesDetailPromoList = (params) => {
+  const url = `/sales/detail/queryPageByPromo/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 促销产品统计  合计
+export const salesDetailPromoCount = (params) => {
+  return axios({
+    url: `/sales/detail/queryCountByPromo`,
+    data: params,
+    method: 'post'
+  })
+}
+// 促销产品统计  详情  列表  分页
+export const salesDetailPromoProductList = (params) => {
+  const url = `/sales/detail/queryPageOfPromoProduct/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+ 
+// 销售  批量插入
+export const salesBatchInsert = params => {
+  return axios({
+    url: '/sales/detail/batchInsert',
+    data: params,
+    method: 'post'
+  })
+}
+//  销售 导入产品 导出错误项
+export const salesFailExcel = (params) => {
+  const url = `/sales/detail/downloadFailExcel`
+  return axios.request({
+    url: url,
+    method: 'post',
+    data: params.list,
+    responseType: 'blob'
+  })
+}
+
+// 导出缺货明细
+export const exportStockout = params => {
+  const url = `/sales/detail/exportStockout`
+  delete params.priceType
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 导出分组缺货明细
+export const exportGroupStockout = params => {
+  const url = `/sales/detail/exportGroupStockout`
+  delete params.priceType
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 批量新增代发货信息
+export const insertBatchOfWaitDispatch = (params) => {
+    return axios({
+      url: '/sales/detail/insertBatchOfWaitDispatch',
+      data: params,
+      method: 'post'
+    })
+  }
+  
+// 一键发货
+export const salesDetailDispatchByOneKey = (params) => {
+    return axios({
+    url: `/sales/detail/dispatchByOneKey/${params.salesBillSn}`,
+    data: params,
+    method: 'post'
+    })
+}

+ 229 - 0
src/api/salesNew.js

@@ -0,0 +1,229 @@
+import { axios } from '@/utils/request'
+
+// 销售 统计查询
+export const salesCount = (params) => {
+    return axios({
+      url: `/salesn/queryCount`,
+      data: params,
+      method: 'post'
+    })
+  }
+//  销售 列表  有分页
+export const salesList = (params) => {
+    const url = `/salesn/queryPage/${params.pageNo}/${params.pageSize}`
+    delete params.pageNo
+    delete params.pageSize
+    return axios({
+        url: url,
+        data: params,
+        method: 'post'
+    })
+}
+//  销售 新增
+export const salesSave = (params) => {
+    return axios({
+      url: '/salesn/insert',
+      data: params,
+      method: 'post'
+    })
+}
+// 销售 编辑
+export const salesModify = (params) => {
+    return axios({
+      url: '/salesn/modifyWarehouse',
+      data: params,
+      method: 'post'
+    })
+  }
+//  销售 详情bysn
+export const salesDetailBySn = (params) => {
+    return axios({
+      url: `/salesn/findBySn/${params.salesBillSn}`,
+      method: 'get'
+    })
+  }
+// 查询客户名称
+export const salesDetailByNo = (params) => {
+    return axios({
+      url: `/salesn/findBySaleBillNo/${params.salesBillNo}`,
+      method: 'get'
+    })
+  }
+//  销售 删除
+export const salesDel = (params) => {
+    return axios({
+      url: `/salesn/delete/${params.salesBillSn}`,
+      method: 'get'
+    })
+  }
+//  销售 取消
+export const salesCancle = (params) => {
+    return axios({
+      url: `/salesn/cancle/${params.salesBillSn}`,
+      method: 'get'
+    })
+  }
+
+// 根据销售单sn查询参加的活动
+export const salesPromoQueryList = (params) => {
+    return axios({
+        url: `/salesPromo/queryExtList`,
+        data: params,
+        method: 'post'
+    })
+}
+
+
+//  销售 审核
+export const salesWriteAudit = (params) => {
+  return axios({
+    url: '/sales/audit',
+    data: params,
+    method: 'post'
+  })
+}
+//  销售 一键审核
+export const salesWriteAuditPush = (params) => {
+  return axios({
+    url: '/sales/auditPush',
+    data: params,
+    method: 'post'
+  })
+}
+
+//  销售 打印
+export const salesPrint = (params) => {
+  return axios({
+    url: '/sales/print',
+    data: params,
+    method: 'post'
+  })
+}
+//  销售 打印预览
+export const salesPrintPreview = (params) => {
+  return axios({
+    url: '/sales/printPreview',
+    data: params,
+    method: 'post'
+  })
+}
+//  销售 提交
+export const salesWriteSubmit = (params) => {
+  return axios({
+    url: '/sales/submit',
+    data: params,
+    method: 'post'
+  })
+}
+
+// 获取促销活动
+export const getPromoacActiveList = (params) => {
+  return axios({
+    url: `/sales/getPromoacActiveList/${params.salesBillSn}`,
+    data: params,
+    method: 'get'
+  })
+}
+//  促销订单统计 列表  有分页
+export const salesPromoList = (params) => {
+  const url = `/sales/queryPageByPromo/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+//  促销订单统计 合计
+export const salesPromoCount = (params) => {
+  return axios({
+    url: '/sales/queryCountByPromo',
+    data: params,
+    method: 'post'
+  })
+}
+// 销售  详情  该销售单的产品二级分类
+export const salesDetailProductType = (params) => {
+  return axios({
+    url: `/sales/detail/queryProductType/${params.sn}`,
+    method: 'get'
+  })
+}
+// 销售 详情  打印
+export const salesDetailPrint = params => {
+  const url = `/sales/print/${params.priceType}`
+  delete params.priceType
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 销售 详情  导出
+export const salesDetailExcel = params => {
+  const url = `/sales/excel/${params.priceType}`
+  delete params.priceType
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 销售 详情  分类导出
+export const salesDetailTypeExcel = params => {
+  const url = `/sales/detail/typeExcel`
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+
+// 车架号
+export const supperCodeByVin = (params) => {
+  return axios({
+    url: `/vinIdentify/queryPartCodeByVin/${params.vin}`,
+    method: 'get'
+  })
+}
+// 车架号  识别图片内容
+export const vinCodeParse = params => {
+  return axios.request({
+    url: `/vinIdentify/ocr`,
+    method: 'post',
+    data: params,
+    responseType: 'blob'
+  })
+}
+// 是否更新价格判断
+export const submitCheck = (params) => {
+  return axios({
+    url: '/sales/submitCheck',
+    method: 'post',
+    data: params
+  })
+}
+// 当前价格  提交
+export const updateBatch = (params) => {
+  return axios({
+    url: '/sales/detail/updateBatch',
+    method: 'post',
+    data: params
+  })
+}
+
+// 销售一览表 列表
+export const salesOverviewQueryPage = (params) => {
+  const url = `/salesOverview/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}

+ 1 - 24
src/views/salesManagement/salesQuery/edit.vue

@@ -243,7 +243,7 @@ import chooseWarehouse from '@/views/common/chooseWarehouse'
 import ProductBrand from '@/views/common/productBrand.js'
 import productTypeAll from '@/views/common/productTypeAll.js'
 import { salesModify, salesDetailBySn, salesWriteSubmit, getPromoacActiveList, deleteAll, submitCheck, updateBatch, updateWarehouse } from '@/api/sales'
-import { salesDetailStockList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailBatchDel, salesDetailDelAll, addPromoGoods, salesBatchInsert } from '@/api/salesDetail'
+import { salesDetailStockList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailBatchDel, addPromoGoods, salesBatchInsert } from '@/api/salesDetail'
 export default {
   name: 'SalesEdit',
   mixins: [commonMixin],
@@ -522,29 +522,6 @@ export default {
     handleBack () {
       this.$router.push({ path: '/salesManagement/salesQuery/list', query: { closeLastOldTab: true } })
     },
-    // 整单删除
-    delSalerDetailAll () {
-      const _this = this
-      this.$confirm({
-        title: '提示',
-        content: '确认要整单删除吗?',
-        centered: true,
-        closable: true,
-        onOk () {
-          _this.delLoading = true
-          _this.spinning = true
-          salesDetailDelAll({ salesBillSn: _this.salesBillSn }).then(res => {
-            if (res.status == 200) {
-              _this.resetSearchForm()
-              _this.$refs.promotable.resetCurForm()
-              _this.$message.success(res.message)
-            }
-            _this.delLoading = false
-            _this.spinning = false
-          })
-        }
-      })
-    },
     // 删除产品
     handleDel (row) {
       const _this = this

+ 0 - 15
src/views/salesManagement/salesQuery/importGuideModal.vue

@@ -71,8 +71,6 @@
 import { commonMixin } from '@/utils/mixin'
 import ChooseImportModal from './chooseImportModal.vue'
 import { Upload } from '@/components'
-import { hdExportExcel } from '@/libs/exportExcel'
-import { salesDownload } from '@/api/salesDetail'
 export default {
   name: 'SalesImportGuideModal',
   mixins: [commonMixin],
@@ -130,19 +128,6 @@ export default {
       this.openImportModal = false
       this.isShow = false
     }
-    //  导出
-    // handleExport () {
-    //   const _this = this
-    //   const params = { grabFlag: this.params.grabFlag }
-    //   this.exportLoading = true
-    //   this.spinning = true
-    //   setTimeout(() => {
-    //     _this.exportLoading = false
-    //   }, 1000)
-    //   hdExportExcel(salesDownload, params, '销售导入模板', function () {
-    //     _this.spinning = false
-    //   })
-    // }
   },
   watch: {
     //  父页面传过来的弹框状态

+ 3 - 7
src/views/salesManagement/salesQueryNew/chooseCustomModal.vue

@@ -33,9 +33,6 @@
           {{ chooseAddr }}
           <a-button type="link" :disabled="!form.buyerSn" id="chooseCustom-chooseAddr" @click="handleChoose">{{ addressVal }} >></a-button>
         </a-form-model-item>
-        <!--  <a-form-model-item label="出库仓库" prop="warehouseSn">
-          <chooseWarehouse ref="warehouse" v-model="form.warehouseSn"></chooseWarehouse>
-        </a-form-model-item> -->
         <a-form-model-item :wrapper-col="{ span: 12, offset: 6 }" style="text-align: center;">
           <a-button type="primary" :loading="confirmLoading" @click="handleSubmit" id="chooseCustom-btn-submit">保存</a-button>
           <a-button @click="cancel" style="margin-left: 15px" id="chooseCustom-btn-back">取消</a-button>
@@ -54,7 +51,7 @@ import dealerSubareaScopeList from '@/views/common/dealerSubareaScopeList.vue'
 import chooseAddressModal from './receivingAddress/chooseAddressModal.vue'
 import { dealerRecevieAddrQuery } from '@/api/dealerRecevieAddr'
 import chooseWarehouse from '@/views/common/chooseWarehouse'
-import { salesSave } from '@/api/sales'
+import { salesSave } from '@/api/salesNew'
 export default {
   name: 'SalesChooseCustomModal',
   mixins: [commonMixin],
@@ -90,8 +87,7 @@ export default {
       rules: {
         buyerSn: [ { required: true, message: '请选择客户', trigger: ['change', 'blur'] } ],
         settleStyleSn: [ { required: true, message: '请选择支付方式', trigger: ['change', 'blur'] } ],
-        consigneeTel: [ { required: true, message: '请选择收货地址', trigger: ['change', 'blur'] } ],
-        warehouseSn: [ { required: true, message: '请选择出库仓库', trigger: ['change', 'blur'] } ]
+        consigneeTel: [ { required: true, message: '请选择收货地址', trigger: ['change', 'blur'] } ]
       },
       addressVal: '选择地址', //  选择地址/更换地址
       chooseAddr: '', //  当前已选地址信息
@@ -108,7 +104,7 @@ export default {
         this.$refs.ruleForm.clearValidate()
         this.getDefaultAddress()
         if (val.row) {
-          this.form.warehouseSn = val.row.defaultWarehouseSn
+          // this.form.warehouseSn = val.row.defaultWarehouseSn
         }
       } else {
         this.form.buyerName = ''

+ 0 - 15
src/views/salesManagement/salesQueryNew/comps/importGuideModal.vue

@@ -71,8 +71,6 @@
 import { commonMixin } from '@/utils/mixin'
 import ChooseImportModal from './chooseImportModal.vue'
 import { Upload } from '@/components'
-import { hdExportExcel } from '@/libs/exportExcel'
-import { salesDownload } from '@/api/salesDetail'
 export default {
   name: 'SalesImportGuideModal',
   mixins: [commonMixin],
@@ -130,19 +128,6 @@ export default {
       this.openImportModal = false
       this.isShow = false
     }
-    //  导出
-    // handleExport () {
-    //   const _this = this
-    //   const params = { grabFlag: this.params.grabFlag }
-    //   this.exportLoading = true
-    //   this.spinning = true
-    //   setTimeout(() => {
-    //     _this.exportLoading = false
-    //   }, 1000)
-    //   hdExportExcel(salesDownload, params, '销售导入模板', function () {
-    //     _this.spinning = false
-    //   })
-    // }
   },
   watch: {
     //  父页面传过来的弹框状态

+ 10 - 11
src/views/salesManagement/salesQueryNew/comps/productList.vue

@@ -1,13 +1,12 @@
 <template>
   <div>
-    <div class="table-page-search-wrapper" v-show="showDescBox">
-      <div>
-        <a-descriptions :column="4">
+    <div class="table-page-search-wrapper" v-show="showDescBox&&descDetail">
+      <a-descriptions :column="4">
           <a-descriptions-item label="促销类型">
-            买产品送产品
+            {{ descDetail.promotionRuleTypeDictValue }}
           </a-descriptions-item>
           <a-descriptions-item label="促销门槛" span="3">
-            购买1000元门槛产品,可使用200元配额,采购正价产品
+            {{ descDetail.gateTypeDictValue }}
           </a-descriptions-item>
           <a-descriptions-item label="促销规则">
             购买满10个正价产品,送10个促销产品
@@ -22,7 +21,6 @@
             8000
           </a-descriptions-item>
         </a-descriptions>
-      </div>
     </div>
     <!-- 筛选条件 -->
    <div class="table-page-search-wrapper" style="margin:0" v-show="showSearchBox">
@@ -231,8 +229,7 @@
   import chooseWarehouse from '@/views/common/chooseWarehouse'
   import ProductBrand from '@/views/common/productBrand.js'
   import productTypeAll from '@/views/common/productTypeAll.js'
-  import { salesModify, salesDetailBySn, salesWriteSubmit, getPromoacActiveList, deleteAll, submitCheck, updateWarehouse } from '@/api/sales'
-  import { salesDetailStockList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailBatchDel, salesDetailDelAll, addPromoGoods, salesBatchInsert } from '@/api/salesDetail'
+  import { salesDetailList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailBatchDel, deleteAll, updateWarehouse, salesBatchInsert } from '@/api/salesDetailNew'
   export default {
     name: 'ProductList',
     mixins: [commonMixin],
@@ -276,7 +273,7 @@
         loadData: parameter => {
           this.disabled = true
           this.queryParam.salesBillSn = this.salesBillSn || ''
-          return salesDetailStockList(Object.assign(parameter, this.queryParam)).then(res => {
+          return salesDetailList(Object.assign(parameter, this.queryParam, {showStock: true})).then(res => {
             let data
             if (res.status == 200) {
               data = res.data
@@ -310,7 +307,8 @@
         productType: [],
         rowSelectionInfo: null,
         warehouseDataList: [],
-        openUpActiveModal: false
+        openUpActiveModal: false,
+        descDetail: null
       }
     },
     computed: {
@@ -354,8 +352,9 @@
       showSearch(){
         this.showSearchBox = !this.showSearchBox
       },
-      showDesc(){
+      showDesc(descDetail){
         this.showDescBox = !this.showDescBox
+        this.descDetail = descDetail
       },
       openCpModal(){
         this.$emit('openCpModal', 1, 'productList-'+this.id)

+ 3 - 3
src/views/salesManagement/salesQueryNew/comps/productNormalList.vue

@@ -179,8 +179,7 @@
   import chooseWarehouse from '@/views/common/chooseWarehouse'
   import ProductBrand from '@/views/common/productBrand.js'
   import productTypeAll from '@/views/common/productTypeAll.js'
-  import { getPromoacActiveList, deleteAll, updateWarehouse } from '@/api/sales'
-  import { salesDetailStockList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailBatchDel, salesDetailDelAll, addPromoGoods, salesBatchInsert } from '@/api/salesDetail'
+  import { salesDetailList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailBatchDel, deleteAll, updateWarehouse, addPromoGoods, salesBatchInsert } from '@/api/salesDetailNew'
   export default {
     name: 'ProductList',
     mixins: [commonMixin],
@@ -219,7 +218,7 @@
         loadData: parameter => {
           this.disabled = true
           this.queryParam.salesBillSn = this.salesBillSn || ''
-          return salesDetailStockList(Object.assign(parameter, this.queryParam)).then(res => {
+          return salesDetailList(Object.assign(parameter, this.queryParam, {showStock: true})).then(res => {
             let data
             if (res.status == 200) {
               data = res.data
@@ -383,6 +382,7 @@
             _this.$message.success(res.message)
           }
           _this.$refs.table.refresh(true)
+          _this.$refs.table.clearSelected()
           _this.spinning = false
         })
       },

+ 5 - 8
src/views/salesManagement/salesQueryNew/detail.vue

@@ -217,8 +217,8 @@ import auditModal from '@/views/common/auditModal.vue'
 import dsModal from '@/views/salesManagement/waitDispatch/dsModal.vue'
 import stockOutDetail from './stockOutDetailModal.vue'
 import chooseWarehouse from '@/views/common/chooseWarehouse'
-import { salesDetailBySn, salesDetailPrint, salesDetailExcel, salesDetailTypeExcel, salesWriteAudit, salesWriteAuditPush } from '@/api/sales'
-import { salesDetailAllList, salesDetailAllStockList } from '@/api/salesDetail'
+import { salesDetailBySn, salesDetailPrint, salesDetailExcel, salesDetailTypeExcel, salesWriteAudit, salesWriteAuditPush } from '@/api/salesNew'
+import { salesDetailAllList } from '@/api/salesDetail'
 export default {
   name: 'SalesDetail',
   mixins: [commonMixin],
@@ -243,13 +243,10 @@ export default {
       loadData: parameter => {
         this.disabled = true
         const params = Object.assign(parameter, { salesBillSn: this.bizSn || this.$route.params.sn, warehouseSn: this.queryParam.warehouseSn })
-        let url = salesDetailAllList
         if (this.detailData && (this.detailData.billStatus == 'WAIT_AUDIT' || this.detailData.billStatus == 'HQ_CHANGE') && this.$hasPermissions('B_salesAudit')) { //  审核,需用到库存
-          url = salesDetailAllStockList
-        } else { // 非审核
-          url = salesDetailAllList
-        }
-        return url(params).then(res => {
+          params.showStock = true
+        } 
+        return salesDetailAllList(params).then(res => {
           let data
           if (res.status == 200) {
             data = res.data

+ 23 - 39
src/views/salesManagement/salesQueryNew/edit.vue

@@ -40,20 +40,20 @@
       :bordered="false" 
       class="salesEdit-cont" 
       v-for="item in activeList" 
-      :key="item.activeId" 
+      :key="item.promoRuleSn" 
       >
         <div slot="title" style="display: inline-block;width:100%;">
-          <strong style="margin-right:10px;font-size:14px;">{{item.activeName}}</strong> ({{item.activeDesc}})
-          <span style="margin-left:20px;color:#00aaff;cursor: pointer;"  @click="(event) => {showDesc(event, item.activeId)}">
+          <strong style="margin-right:10px;font-size:14px;">{{item.promotion.title}}</strong> ({{item.promotion.description}})
+          <span style="margin-left:20px;color:#00aaff;cursor: pointer;"  @click="(event) => {showDesc(event, item)}">
             <a-icon title="查看活动详情" type="eye"/> 活动详情
           </span>
-          <span style="margin:0 20px;color:#ff0800;cursor: pointer;" @click="(event) => {disabledActive(event, item.activeId)}">
+          <span style="margin:0 20px;color:#ff0800;cursor: pointer;" @click="(event) => {disabledActive(event, item.promoRuleSn)}">
             <a-icon title="禁用规则" type="disconnect"/> 禁用规则
           </span>
         </div>
         <div slot="extra" @click="tooglePanel(item)" style="cursor: pointer;">{{ item.isActive ? '收起' : '展开' }} <a-icon type="caret-right" :rotate="item.isActive ? 90 : 0"/> </div>
         <div v-show="item.isActive" style="padding: 10px;">
-          <productList :ref="'productList-'+item.activeId" :id="item.activeId" @openCpModal="openProductModal" :detailData="detailData" :warehouseSn="warehouseSn" :salesBillSn="salesBillSn"></productList>
+          <productList :ref="'productList-'+item.promoRuleSn" :id="item.promoRuleSn" @openCpModal="openProductModal" :detailData="detailData" :warehouseSn="warehouseSn" :salesBillSn="salesBillSn"></productList>
         </div>
       </a-card>
     </a-spin>
@@ -126,7 +126,7 @@ import productList from './comps/productList.vue'
 import productNormalList from './comps/productNormalList.vue'
 import chooseProduct from './comps/chooseProduct.vue'
 import setPriceModal from './setPriceModal.vue'
-import { salesDetailBySn, salesWriteSubmit, submitCheck, updateBatch } from '@/api/sales'
+import { salesDetailBySn, salesWriteSubmit, submitCheck, updateBatch, salesPromoQueryList } from '@/api/salesNew'
 export default {
   name: 'SalesNewEdit',
   mixins: [commonMixin],
@@ -185,9 +185,22 @@ export default {
         if (res.status == 200) {
           this.detailData = res.data
         }
-        this.getActive()
+        this.getActiveList()
       })
     },
+    // 获取销售单参与的活动列表
+    getActiveList(){
+      salesPromoQueryList({ salesBillSn: this.$route.params.sn }).then(res => {
+        if(res.status == 200){
+          this.activeList = res.data || []
+          this.activeList.map(item => {
+            item.isActive = true
+            this.activeDesKey['search-'+item.promoRuleSn] = false
+          })
+        }
+      })
+    },
+    // 添加产品,包括正常和活动的产品
     closeProductModal(){
         this.cpModalType = 0
         this.cpCurRefId = ''
@@ -267,10 +280,10 @@ export default {
       })
     },
     // 展开收缩活动详情
-    showDesc(e,id){
+    showDesc(e,item){
       e.stopPropagation()
-      const row = this.$refs['productList-'+id][0]
-      row&&row.showDesc()
+      const row = this.$refs['productList-'+item.promoRuleSn][0]
+      row&&row.showDesc(item.promotionRule)
     },
     // 禁用活动
     disabledActive(e,id){
@@ -309,35 +322,6 @@ export default {
       console.log(e)
       this.disabledActiveOption = e.target.value
     },
-    // 获取活动列表
-    getActive(){
-      this.activeList = [
-        {
-          activeId: '102312313',
-          activeName: "520以爱之名保护你",
-          activeDesc: "满5000赠300"
-        },
-        {
-          activeId: '02342341',
-          activeName: "夏季清爽502优惠活动",
-          activeDesc: "满8000减500"
-        },
-        {
-          activeId: '22558888',
-          activeName: "国庆10天热门活动",
-          activeDesc: "满5000减300"
-        },
-        {
-          activeId: '856688774',
-          activeName: "春节滤清器特价活动",
-          activeDesc: "滤清器8款特价产品优惠"
-        }
-      ]
-      this.activeList.map(item => {
-        item.isActive = true
-        this.activeDesKey['search-'+item.activeId] = false
-      })
-    },
     pageInit () {
       this.salesBillSn = this.$route.params.sn
       this.warehouseSn = this.$route.params.sn ? this.$route.params.wSn : ''

+ 3 - 2
src/views/salesManagement/salesQueryNew/list.vue

@@ -295,7 +295,7 @@ import commonModal from '@/views/common/commonModal.vue'
 import chooseCustomModal from './chooseCustomModal.vue'
 import dealerSubareaScopeList from '@/views/common/dealerSubareaScopeList.vue'
 import reportModal from '@/views/common/reportModal.vue'
-import { salesList, salesDel, salesCount } from '@/api/sales'
+import { salesList, salesDel,salesCancle, salesCount } from '@/api/salesNew'
 import { hdExportExcel } from '@/libs/exportExcel'
 import chooseWarehouse from '@/views/common/chooseWarehouse'
 import { findBySalesBillSn, dispatchBatchPrintStatus, queryBySalesBillSn } from '@/api/dispatch'
@@ -495,7 +495,8 @@ export default {
         closable: true,
         onOk () {
           _this.spinning = true
-          salesDel({ salesBillSn: row.salesBillSn }).then(res => {
+          const fun = row.salesBillSource == 'PURCHASE' ? salesCancle : salesDel
+          fun({ salesBillSn: row.salesBillSn }).then(res => {
             if (res.status == 200) {
               _this.$message.success(res.message)
               _this.$refs.table.refresh()

+ 2 - 2
vue.config.js

@@ -108,9 +108,9 @@ const vueConfig = {
     // If you want to turn on the proxy, please remosve the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.2.117:80/ocs-admin',
+        target: 'http://192.168.2.111/ocs-admin',
         // target: 'https://t.ocs.360arrow.com/ocs-admin', //  练习
-        target: 'https://p.ocs.360arrow.com/ocs-admin', //  预发布
+        // target: 'https://p.ocs.360arrow.com/ocs-admin', //  预发布
         ws: false,
         changeOrigin: true,
         pathRewrite: {