lilei 1 năm trước cách đây
mục cha
commit
cd758492a6

+ 3 - 2
src/views/common/chooseDealer.vue

@@ -11,7 +11,7 @@
           </a-col>
           <a-col :md="8" :sm="24">
             <a-form-item label="商户类型">
-              <v-select code="DEALER_TYPE" id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+              <dealerType id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear></dealerType>
             </a-form-item>
           </a-col>
           <a-col :md="8" :sm="24">
@@ -88,10 +88,11 @@ import { STable, VSelect } from '@/components'
 import AreaList from '@/views/common/areaList.js'
 import { queryDealerPageList } from '@/api/dealer'
 import subarea from '@/views/common/subarea.js'
+import dealerType from '@/views/common/dealerType.js'
 export default {
   name: 'ChooseDealer',
   mixins: [commonMixin],
-  components: { STable, VSelect, subarea, AreaList },
+  components: { STable, VSelect, subarea, AreaList, dealerType },
   props: {
     pageType: {
       type: String,

+ 109 - 0
src/views/common/dealerType.js

@@ -0,0 +1,109 @@
+import { allocateTypeTreeList } from '@/api/allocateType'
+const AllocateType = {
+  template: `
+      <a-cascader
+        :value="defaultVal"
+        :allowClear="allowClear"
+        :change-on-select="changeOnSelect"
+        @change="handleChange"
+        :options="list"
+        expand-trigger="hover"
+        :placeholder="placeholder"
+        :id="id"
+        :fieldNames="{ label: 'name', value: 'allocateTypeSn', children: 'sonList' }"/>
+    `,
+  props: {
+    value: {
+      type: Array,
+      defatut: function(){
+        return []
+      }
+    },
+    id: {
+      type: String,
+      default: ''
+    },
+    placeholder:{
+      type: String,
+      default: '请选择商户类型'
+    },
+    changeOnSelect:{
+      type: Boolean,
+      default: false
+    },
+    allowClear:{
+      type: Boolean,
+      default: true
+    },
+    level:{
+      type: [String,Number],
+      default: ''
+    }
+  },
+  data() {
+    return {
+      defaultVal: this.value,
+      list: []
+    };
+  },
+  mounted() {
+    this.getProductBrand()
+  },
+  watch: {
+    value(newValue, oldValue) {
+      this.defaultVal = newValue
+    }
+  },
+  methods: {
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    handleChange(value,opts) {
+      this.defaultVal = value;
+      this.$emit('input', value);
+      this.$emit('change', value,opts);
+    },
+    //  价格类型
+    getProductBrand () {
+      allocateTypeTreeList({}).then(res => {
+        if (res.status == 200) {
+          if(this.level){
+            this.list = this.getBylevel(res.data)
+          }else{
+            this.list = res.data
+          }
+        } else {
+          this.list = []
+        }
+      })
+    },
+    getBylevel(data){
+      const ret = []
+      // 显示一级分类
+      if(this.level == 1){
+        data.map(item => {
+          if(item.sonList){
+            delete item.sonList
+          }
+        })
+      }
+      // 显示二级分类
+      if(this.level == 2){
+        data.map(item => {
+          if(item.sonList){
+            item.sonList.map(cd => {
+              if(cd.sonList){
+                 delete cd.sonList
+              }
+            })
+          }
+        })
+      }
+      return data
+    }
+  },
+};
+
+export default AllocateType

+ 3 - 2
src/views/dealerManagement/businessOwnerSettings/chooseDealer.vue

@@ -11,7 +11,7 @@
           </a-col>
           <a-col :md="8" :sm="24">
             <a-form-item label="商户类型">
-              <v-select code="DEALER_TYPE" id="chooseDealer-dealerType" v-model="queryParam.dealer.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+              <dealerType id="chooseDealer-dealerType" v-model="queryParam.dealer.dealerType" allowClear></dealertype>
             </a-form-item>
           </a-col>
           <a-col :md="8" :sm="24">
@@ -88,10 +88,11 @@ import { STable, VSelect } from '@/components'
 import AreaList from '@/views/common/areaList.js'
 import { bizuserScopeQueryDealer } from '@/api/bizuser'
 import subarea from '@/views/common/subarea.js'
+import dealerType from '@/views/common/dealerType.js'
 export default {
   name: 'ChooseDealer',
   mixins: [commonMixin],
-  components: { STable, VSelect, subarea, AreaList },
+  components: { STable, VSelect, subarea, AreaList, dealerType },
   props: {
     pageType: {
       type: String,

+ 3 - 2
src/views/dealerManagement/marketingDivisionSetNew/viewDealers.vue

@@ -21,7 +21,7 @@
               </a-col>
               <a-col :md="8" :sm="24">
                 <a-form-item label="商户类型">
-                  <v-select code="DEALER_TYPE" id="viewDealers-dealerType" v-model="queryParam.dealer.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+                  <dealerType id="viewDealers-dealerType" v-model="queryParam.dealer.dealerType" allowClear></dealertype>
                 </a-form-item>
               </a-col>
               <a-col :md="8" :sm="24">
@@ -111,10 +111,11 @@ import { STable, VSelect } from '@/components'
 import chooseDealer from '@/views/common/chooseDealer.vue'
 import AreaList from '@/views/common/areaList.js'
 import { Empty } from 'ant-design-vue'
+import dealerType from '@/views/common/dealerType.js'
 import { queryPageAreaDealer, batchBindDealer, bindDealer, deleteBindDealer } from '@/api/subarea'
 export default {
   mixins: [commonMixin],
-  components: { STable, VSelect, chooseDealer, AreaList },
+  components: { STable, VSelect, chooseDealer, AreaList, dealerType },
   props: {
     showModal: {
       type: Boolean,

+ 4 - 5
src/views/dealerManagement/merchantInfoManagement/edit.vue

@@ -31,12 +31,10 @@
                 </a-col>
                 <a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
                   <a-form-model-item label="商户类型" prop="dealerType">
-                    <v-select
-                      code="DEALER_TYPE"
+                    <dealerType
                       id="merchantInfoManagementEdit-dealerType"
                       v-model="form.dealerType"
-                      allowClear
-                      placeholder="请选择商户类型"></v-select>
+                      allowClear></dealertype>
                   </a-form-model-item>
                 </a-col>
                 <a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
@@ -413,13 +411,14 @@
 import { commonMixin } from '@/utils/mixin'
 import { getArea } from '@/api/data'
 import { VSelect } from '@/components'
+import dealerType from '@/views/common/dealerType.js'
 import { dealerSave, dealerFindUpdateInfoBySn } from '@/api/dealer'
 import chooseWarehouse from '@/views/common/chooseWarehouse'
 import moment from 'moment'
 export default {
   name: 'MerchantInfoManagementEdit',
   mixins: [commonMixin],
-  components: { VSelect, chooseWarehouse },
+  components: { VSelect, chooseWarehouse, dealerType },
   data () {
     return {
       spinning: false,

+ 3 - 2
src/views/dealerManagement/merchantInfoManagement/list.vue

@@ -17,7 +17,7 @@
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="商户类型">
-                <v-select code="DEALER_TYPE" id="merchantInfoManagementList-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+                <dealerType id="merchantInfoManagementList-dealerType" v-model="queryParam.dealerType" allowClear></dealertype>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -119,10 +119,11 @@ import subarea from '@/views/common/subarea.js'
 import merchantInfoManagementDetailModal from './detailModal.vue'
 import UpdateCooperate from './updateCooperate.vue'
 import UpdateDealerLeve from './updateDealerLevel.vue'
+import dealerType from '@/views/common/dealerType.js'
 export default {
   name: 'MerchantInfoManagementList',
   mixins: [commonMixin],
-  components: { STable, VSelect, merchantInfoManagementDetailModal, subarea, UpdateCooperate, UpdateDealerLeve },
+  components: { STable, VSelect, merchantInfoManagementDetailModal, subarea, UpdateCooperate, UpdateDealerLeve, dealerType },
   data () {
     return {
       spinning: false,

+ 3 - 2
src/views/dealerManagement/provincialWarehouseManagement/chooseDealer.vue

@@ -16,7 +16,7 @@
           </a-col>
           <a-col :md="8" :sm="24">
             <a-form-item label="商户类型">
-              <v-select code="DEALER_TYPE" id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+              <dealerType id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear></dealertype>
             </a-form-item>
           </a-col>
           <a-col :md="8" :sm="24">
@@ -69,11 +69,12 @@ import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
 import AreaList from '@/views/common/areaList.js'
 import subarea from '@/views/common/subarea.js'
+import dealerType from '@/views/common/dealerType.js'
 import { getDealerListInfo, dealerQueryList } from '@/api/dealer'
 export default {
   name: 'ChooseDealer',
   mixins: [commonMixin],
-  components: { STable, VSelect, subarea, AreaList },
+  components: { STable, VSelect, subarea, AreaList, dealerType },
   props: {
     pageType: {
       type: String,

+ 3 - 2
src/views/dealerManagement/provincialWarehouseManagement/relatedDealersList.vue

@@ -34,7 +34,7 @@
                   </a-col>
                   <a-col :md="4" :sm="24">
                     <a-form-item label="商户类型">
-                      <v-select code="DEALER_TYPE" id="relatedDealersList-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+                      <dealerType id="relatedDealersList-dealerType" v-model="queryParam.dealerType" allowClear></dealertype>
                     </a-form-item>
                   </a-col>
                   <a-col :md="4" :sm="24">
@@ -119,11 +119,12 @@ import chooseDealer from './chooseDealer.vue'
 import subarea from '@/views/common/subarea.js'
 import AreaList from '@/views/common/areaList.js'
 import { hdExportExcel } from '@/libs/exportExcel'
+import dealerType from '@/views/common/dealerType.js'
 import { queryServiceCenterDealerPage, serviceCenterBinding, serviceCenterUnbinding, serviceCenterExport } from '@/api/serviceCenter'
 export default {
   name: 'LookUpCustomers',
   mixins: [commonMixin],
-  components: { STable, VSelect, chooseDealer, subarea, AreaList },
+  components: { STable, VSelect, chooseDealer, subarea, AreaList, dealerType },
   data () {
     return {
       spinning: false,

+ 3 - 2
src/views/promotionRulesManagement/dealerPromotions/chooseDealer.vue

@@ -16,7 +16,7 @@
           </a-col>
           <a-col :md="8" :sm="24">
             <a-form-item label="商户类型">
-              <v-select code="DEALER_TYPE" id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+              <dealerType id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear></dealertype>
             </a-form-item>
           </a-col>
           <a-col :md="8" :sm="24">
@@ -69,10 +69,11 @@ import AreaList from '@/views/common/areaList.js'
 import subarea from '@/views/common/subarea.js'
 import { queryDealerPage } from '@/api/promotion'
 import { getDealerListInfo } from '@/api/dealer'
+import dealerType from '@/views/common/dealerType.js'
 export default {
   name: 'ChooseDealer',
   mixins: [commonMixin],
-  components: { STable, VSelect, subarea, AreaList },
+  components: { STable, VSelect, subarea, AreaList, dealerType },
   props: {
     parentData: {
       type: Object,

+ 3 - 2
src/views/promotionRulesManagement/promotionManagement/chooseDealer.vue

@@ -16,7 +16,7 @@
           </a-col>
           <a-col :md="8" :sm="24">
             <a-form-item label="商户类型">
-              <v-select code="DEALER_TYPE" id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择商户类型"></v-select>
+              <dealerType id="chooseDealer-dealerType" v-model="queryParam.dealerType" allowClear></dealertype>
             </a-form-item>
           </a-col>
           <a-col :md="8" :sm="24">
@@ -79,10 +79,11 @@ import { STable, VSelect } from '@/components'
 import AreaList from '@/views/common/areaList.js'
 import { dealerQueryList, getDealerListInfo } from '@/api/dealer'
 import subarea from '@/views/common/subarea.js'
+import dealerType from '@/views/common/dealerType.js'
 export default {
   name: 'ChooseDealer',
   mixins: [commonMixin],
-  components: { STable, VSelect, subarea, AreaList },
+  components: { STable, VSelect, subarea, AreaList, dealerType },
   props: {
     pageType: {
       type: String,

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

@@ -58,7 +58,7 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="客户类型">
-                  <v-select code="DEALER_TYPE" id="shortageStatisticsCList-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择客户类型"></v-select>
+                  <dealerType id="shortageStatisticsCList-dealerType" v-model="queryParam.dealerType" allowClear placeholder="请选择客户类型"></dealertype>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -159,11 +159,12 @@ import ProductType from '@/views/common/productType.js'
 import ProductBrand from '@/views/common/productBrand.js'
 import chooseWarehouse from '@/views/common/chooseWarehouse'
 import customerService from '@/views/common/customerService'
+import dealerType from '@/views/common/dealerType.js'
 import { oosBuyerList, oosBuyerDetailCount, oosBuyerDetailPageCount, oosDetailExport } from '@/api/oos'
 export default {
   name: 'ShortageStatisticsCList',
   mixins: [commonMixin],
-  components: { STable, VSelect, dealerSubareaScopeList, subarea, Area, rangeDate, ProductBrand, ProductType, chooseWarehouse, customerService },
+  components: { STable, VSelect, dealerSubareaScopeList, subarea, Area, rangeDate, ProductBrand, ProductType, chooseWarehouse, customerService, dealerType },
   data () {
     return {
       spinning: false,