Browse Source

Merge branch 'develop_yh31' of http://git.chelingzhu.com/jianguan-web/jg-ocs-html into develop_yh31

chenrui 1 year ago
parent
commit
af3e172c94

+ 4 - 1
src/views/salesManagement/salesQueryNew/comps/activeQueryPart.vue

@@ -259,6 +259,8 @@ export default {
       this.promoRuleData = promo.promotionRule
       this.queryParam.dealerLevel = data.buyerLevel
       this.queryParam.promoRuleSn = promo.promoRuleSn
+      this.queryParam.salesPromoSn = promo.salesPromoSn
+      
       const tabList = []
       if(this.promoRuleData){ 
         if(this.promoRuleData.gateFlag==='1'){
@@ -268,7 +270,8 @@ export default {
           tabList.push({text:'正价产品',val:'REGULAR'})
         }
         if(this.promoRuleData.regularPromotionSameFlag==='0'||this.promoRuleData.scopeFlag==='0'||(this.promoRuleData.promotionRuleType=='BUY_PROD_GIVE_MONEY'&&this.promoRuleData.scopeFlag==='1')){
-          tabList.push({text:'促销产品',val:'GIFT'})
+          const levelText = this.promoRuleData.scopeLevel ? '(阶梯'+this.promoRuleData.scopeLevel+')' : ''
+          tabList.push({text:'促销产品'+ levelText ,val:'GIFT'})
         }
         if(this.promoRuleData.promotionRuleType=='PROMO_PROD'){
           tabList.push({text:'特价产品',val:'DISCOUNT'})

+ 5 - 17
src/views/salesManagement/salesQueryNew/comps/productList.vue

@@ -11,12 +11,12 @@
             <span>促销门槛:</span>
             <div v-if="descDetail.gateFlag === '1'">
               <span v-if="descDetail.gateType==='RATIO_AMOUNT'">
-                购买门槛产品金额{{ descDetail.gateAmount*100 }}%作为配额
+                购买门槛产品金额{{ descDetail.gateValue*100 }}%作为配额
               </span>
               <span v-else-if="descDetail.gateType==='MIN_AMOUNT'">
-                购买门槛产品满最低金额{{ descDetail.gateAmount }}不限制配额。
+                购买门槛产品满最低金额{{ descDetail.gateValue }}不限制配额。
               </span>
-              <span v-else>购买满{{ descDetail.gateAmount }}元门槛产品,可使用 {{ descDetail.quotaAmount }}元配额,采购规则中的{{ descDetail.promotionRuleType == 'PROMO_PROD'?'特价':'正价' }}商品</span>
+              <span v-else>购买满{{ descDetail.gateValue }}元门槛产品,可使用 {{ descDetail.quotaAmount }}元配额,采购规则中的{{ descDetail.promotionRuleType == 'PROMO_PROD'?'特价':'正价' }}商品</span>
             </div>
             <span v-else>无</span>
           </div>
@@ -25,19 +25,7 @@
           <div style="display: flex;">
             <div style="display: flex;">
               <span>促销规则:</span>
-              <span v-if="descDetail.promotionRuleType == 'BUY_PROD_GIVE_PROD'">
-                {{ descDetail.regularSameFlag==='1'?'同款产品,':'不同款产品,' }}
-                购买满{{ descDetail.regularQty }}个正价产品,送{{ descDetail.promotionQty }}个促销产品
-                {{ descDetail.accrualFlag == 1 ? ',数量叠加':',数量不叠加' }}
-              </span>
-              <span v-else-if="descDetail.promotionRuleType == 'BUY_PROD_GIVE_MONEY'">
-                <!-- {{ descDetail.regularSameFlag==='1'?'同款产品,':'不同款产品,' }} -->
-                购买满{{ descDetail.regularAmount }}元正价产品,送{{ descDetail.giveAmount }}元促销品采购额
-                {{ descDetail.accrualFlag == 1 ? ',金额叠加':',金额不叠加' }}
-              </span>
-              <span v-else>
-                特价产品
-              </span>
+              <div v-html="descDetail.ruleInfo"></div>
             </div>
             <div style="display: flex;flex-grow: 1;">
               <div v-if="descDetail.promotionRuleType!='PROMO_PROD'&&descDetail.promotionRuleType!='BUY_PROD_GIVE_MONEY'">
@@ -470,7 +458,7 @@ export default {
       this.$emit('showDesc', this.showDescBox)
     },
     openCpModal () {
-      this.$emit('openCpModal', 1, this.id)
+      this.$emit('openCpModal', 1, this.id, this.countData&&this.countData.scopeLevel)
     },
     // 表格选中项
     rowSelectionFun (obj) {

+ 5 - 2
src/views/salesManagement/salesQueryNew/edit.vue

@@ -323,9 +323,12 @@ export default {
       // this.insterActiveOk(['normal','promo'][type])
     },
     // 打开选择产品弹框
-    openProductModal (type, refId) {
-      console.log(type, refId)
+    openProductModal (type, refId, scopeLevel) {
+      console.log(type, refId, scopeLevel)
       const promo = this.activeList.find(item => item.promoRuleSn == refId)
+      if(promo && promo.promotionRule){
+        promo.promotionRule.scopeLevel = scopeLevel
+      }
       this.$refs.chooseProduct.pageInit(this.detailData, promo, type)
       this.cpCurRefId = 'productList-' + refId
       this.showCpModal = true

+ 35 - 25
src/views/salesManagement/salesQueryNew/list.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <a-card size="small" :bordered="false" class="searchBox">
+    <a-card size="small" :bordered="false" class="searchBoxNormal">
       <!-- 搜索条件 -->
       <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline">
@@ -25,29 +25,29 @@
                 <a-input id="salesManagementList-purchaseBillNo" v-model.trim="queryParam.purchaseBillNo" allowClear placeholder="请输入采购单号"/>
               </a-form-item>
             </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="备货打印状态">
+                <v-select
+                  v-model="queryParam.printStatus"
+                  ref="printStatus"
+                  id="salesManagementList-printStatus"
+                  code="PRINT_STATUS"
+                  placeholder="请选择打印状态"
+                  allowClear></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="业务状态">
+                <v-select
+                  v-model="queryParam.billStatus"
+                  ref="billStatus"
+                  id="salesManagementList-billStatus"
+                  code="SALES_BILL_STATUS"
+                  placeholder="请选择业务状态"
+                  allowClear></v-select>
+              </a-form-item>
+            </a-col>
             <template v-if="advanced">
-              <a-col :md="6" :sm="24">
-                <a-form-item label="备货打印状态">
-                  <v-select
-                    v-model="queryParam.printStatus"
-                    ref="printStatus"
-                    id="salesManagementList-printStatus"
-                    code="PRINT_STATUS"
-                    placeholder="请选择打印状态"
-                    allowClear></v-select>
-                </a-form-item>
-              </a-col>
-              <a-col :md="6" :sm="24">
-                <a-form-item label="业务状态">
-                  <v-select
-                    v-model="queryParam.billStatus"
-                    ref="billStatus"
-                    id="salesManagementList-billStatus"
-                    code="SALES_BILL_STATUS"
-                    placeholder="请选择业务状态"
-                    allowClear></v-select>
-                </a-form-item>
-              </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="财务状态">
                   <v-select
@@ -95,8 +95,18 @@
                     allowClear></v-select>
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="转费用报销单">
+                  <v-select
+                    v-model="queryParam.promoFlag"
+                    ref="cxFlag"
+                    code="FLAG"
+                    placeholder="请选择是否促销单"
+                    allowClear></v-select>
+                </a-form-item>
+              </a-col>
             </template>
-            <a-col :md="24" :sm="24" style="text-align: center;">
+            <a-col :md="8" :sm="24">
               <a-button type="primary" :disabled="disabled" @click="$refs.table.refresh(true)">查询</a-button>
               <a-button style="margin-left: 10px" :disabled="disabled" @click="resetSearchForm()">重置</a-button>
               <a-button
@@ -661,7 +671,7 @@ export default {
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 270
+      this.tableHeight = window.innerHeight - tableSearchH - 260
     }
   },
   watch: {

+ 76 - 2
src/views/salesManagement/waitDispatchNew/queryPart.vue

@@ -70,6 +70,7 @@
     <div style="margin-bottom: 10px;display: flex;align-items: center;" v-if="detailData">
       <div style="display: flex;align-items: center;">
         <a-button type="primary" :disabled="newLoading" class="button-info" @click="handlePlAdd">批量添加</a-button>
+        <a-button type="primary" :disabled="newLoading" class="button-info" @click="handlePlPurchase">批量转采购额</a-button>
         <a-button type="primary" v-if="hasNormalProduct" ghost style="margin-left:6px;" :disabled="newLoading" @click="handlePlCancel">批量取消</a-button>
         <a-button type="primary" v-if="hasPrompActive&&hasNoPushedActive" ghost style="margin-left:6px;" :disabled="newLoading" @click="handleAllCancel">整单取消</a-button>
         <a-tooltip placement="top" v-if="hasPrompActive&&hasNoPushedActive" style="margin-left:6px;">
@@ -91,6 +92,7 @@
         <span v-if="$hasPermissions('B_salesDispatch_salesPrice')">已取消金额:<strong>{{ detailData&&(detailData.totalCancelAmount || detailData.totalCancelAmount==0) ? toThousands(detailData.totalCancelAmount) : '--' }}</strong>;</span>
         <span v-if="$hasPermissions('B_salesDispatch_salesPrice')">已下推金额:<strong>{{ detailData&&(detailData.totalPushedAmount || detailData.totalPushedAmount==0) ? toThousands(detailData.totalPushedAmount) :'--' }}</strong>;</span>
         <span v-if="$hasPermissions('B_salesDispatch_salesPrice')">待下推金额:<strong>{{ detailData&&(detailData.totalUnpushedAmount || detailData.totalUnpushedAmount==0) ? toThousands(detailData.totalUnpushedAmount) : '--' }}</strong>;</span>
+        <span v-if="$hasPermissions('B_salesDispatch_salesPrice')&&detailData&&detailData.totalConvertPromoGiftsAmount">促销产品转采购额金额:<strong>{{ toThousands(detailData.totalConvertPromoGiftsAmount) }}</strong>;</span>
       </div>
     </div>
     
@@ -206,6 +208,9 @@ export default {
     hasNoPushedActive(){
       return this.detailData&&this.detailData.totalPushedQty==0||!this.detailData.totalPushedQty
     },
+    hasConvertPromoGifts(){
+      return this.detailData&&this.detailData.totalConvertPromoGiftsAmount > 0
+    },
     checkboxOption () {
       return {
           disableSelectedRowKeys: this.disableSelectedRowKeys,
@@ -255,7 +260,7 @@ export default {
                     </div>
                 )
           }
-      // 输入框
+      // 取消数量输入框
       const inputFormat = function(record,data,h) {
         if(record.unpushedQty>0){
           return (
@@ -274,6 +279,30 @@ export default {
         }
         return '--'
       }
+      // 转采购额数量输入框
+      const inputFormat1 = function(record,data,h) {
+        if(record.unpushedQty>0){
+          // 已选
+          if(_this.selectedRowKeys.includes(record.id)){
+            return (
+              <div>
+                <a-input-number
+                  size="small"
+                  value={record.convertPromoGiftsQty}
+                  onChange={e => _this.convertPromoGiftsChange(e,record)}
+                  precision={0}
+                  min={0}
+                  max={record.unpushedQty}
+                  style="width: 100%;"
+                  placeholder="请输入" />
+              </div>
+            )
+          }else{
+            return record.convertPromoGiftsQty || 0
+          }
+        }
+        return '--'
+      }
       // 操作按钮
       const actionFormat = function(record,data,h) {
         if(record.unpushedQty>0){
@@ -312,6 +341,7 @@ export default {
                   {_this.$hasPermissions('B_salesEdit_salesPrice')&&record.promo&&record.total&&record.total.lossAmount ? (<span>优惠金额:<strong>{record.total.lossAmount}</strong>;</span>):('')}
                   {_this.$hasPermissions('B_salesEdit_salesPrice')&&record.promo&&record.total&&record.total.cgejyAmount>0 ? (<span>采购额结余:<strong>{_this.toThousands(record.total.cgejyAmount)}</strong>;</span>):('')}
                   {_this.$hasPermissions('B_salesEdit_salesPrice')&&record.promo&&record.total&&record.total.cgejyAmount<0 ? (<span>采购额超出:<strong>{_this.toThousands(record.total.cgeccAmount)}</strong>;</span>):('')}
+                  {_this.$hasPermissions('B_salesEdit_salesPrice') ? (<span>促销产品转采购额金额:<strong>{record.total&&record.total.convertPromoGiftsAmount||'--'}</strong>;</span>):('')}
                   {record.expenseAccountFlag!='WAIT' ? record.expenseAccountFlagDictValue : ''}
                 </div>
               </div>
@@ -346,8 +376,13 @@ export default {
           { title: '已下推', field: 'pushedQty', width: 80,key: "p", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} },
           { title: '待下推', field: 'unpushedQty', width: 80,key: "q", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} },
           { title: '取消数量', field: 'cancelNums', width: 80,key: "r", align: 'center',fixed: 'right',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return inputFormat(row,row[column.field],h)} },
-          { title: '操作', field: 'action', width: 80,key: "s", align: 'center',fixed: 'right',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return actionFormat(row,row[column.field],h)} },
         ])
+      if(this.hasConvertPromoGifts){
+        arr.push({ title: '转采购额数量', field: 'convertPromoGiftsQty', width: 80,key: "r", align: 'center',fixed: 'right',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { 
+          return inputFormat1(row,row[column.field],h)
+        } })
+      }
+      arr.push({ title: '操作', field: 'action', width: 80,key: "s", align: 'center',fixed: 'right',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return actionFormat(row,row[column.field],h)} })
       
       return arr
     }
@@ -383,6 +418,10 @@ export default {
       record.cancelNums = v
       this.dataSource.splice()
     },
+    convertPromoGiftsChange(v,record){
+      record.convertPromoGiftsQty = v
+      this.dataSource.splice()
+    },
     // 选择单元格
     selectedRowChange({ row, isSelected, selectedRowKeys }){
       // console.log(row, isSelected, selectedRowKeys);
@@ -534,6 +573,41 @@ export default {
         this.$message.warning('库存为0,不可添加!')
       }
     },
+    // 批量转采购额
+    handlePlPurchase(){
+      const _this = this
+      const chooseList = this.selectedRowKeys
+      if (chooseList.length == 0) {
+        _this.$message.warning('请先选择产品!')
+        return
+      }
+      const chooseRow = this.dataSource.filter(item => chooseList.includes(item.id) && item.convertPromoGiftsFlag==1)
+      const noChooseRow = this.dataSource.filter(item => chooseList.includes(item.id) && item.convertPromoGiftsFlag==0)
+      const obj = []
+      const noObj = []
+      chooseRow && chooseRow.map(item => {
+        obj.push(item.salesBillDetailSn)
+      })
+      noChooseRow && noChooseRow.map(item => {
+        noObj.push(item.productCode)
+      })
+      
+      if(obj.length){
+        this.$confirm({
+          title: '提示',
+          content: <div><div style="text-align:center;padding:10px 0;font-weight:bold;">确定将选中的促销产品转成采购额吗?</div><div style="font-size:12px;color:#999;padding:10px 0;">
+当该销售单完结后,可将采购额转成费用报销单。</div>{noObj.length?<div><div>总共选择了 {chooseList.length} 个产品,其中 {obj.length} 个产品可转采购额。</div><div> 产品 ({noObj.toString()}) 不可转采购额!</div></div>:''}</div>,
+          centered: true,
+          closable: true,
+          class: 'confirm-center',
+          onOk () {
+            _this.$emit('convertPromoGifts', obj)
+          }
+        })
+      }else{
+        _this.$message.warning('所选产品都不可转采购额!')
+      }
+    },
     // 批量添加
     handlePlAdd () {
       const _this = this

+ 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.103:8602/ocs-admin',
+        target: 'http://192.168.2.111:8602/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: {