Procházet zdrojové kódy

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

chenrui před 1 rokem
rodič
revize
b51f1a434f

+ 11 - 0
src/api/dealer.js

@@ -11,6 +11,17 @@ export const dealerDetailBySn = (params) => {
     }
   })
 }
+// 查询商户类型
+export const dealerTypeTreeList = (params) => {
+  return axios({
+    url: `/dealerType/queryTree`,
+    data: params,
+    method: 'post',
+    headers:{
+      'module': encodeURIComponent('查询商户类型')
+    }
+  })
+}
 // 根据sn查找修改过后的经销商信息
 export const dealerFindUpdateInfoBySn = (params) => {
   return axios({

+ 20 - 8
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="dealerType" @change="getDealerType" 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,
@@ -107,9 +108,11 @@ export default {
   data () {
     return {
       spinning: false,
+      dealerType: [],
       queryParam: { //  查询条件
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         auditState: undefined,
         provinceSn: undefined,
@@ -134,6 +137,9 @@ export default {
             const no = 0
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
+              if (data.list[i].dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealerTypeName1 + '>' + data.list[i].dealerTypeName2
+              }
             }
           }
           this.spinning = false
@@ -149,16 +155,16 @@ export default {
       const arr = [
         { title: '经销商名称', dataIndex: 'dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '商户别名', dataIndex: 'dealerAlias', align: 'left', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } }
       ]
       if (_this.pageType == 'viewDealers') {
         arr.splice(4, 0, { title: '审核状态', dataIndex: 'auditStateDictValue', width: '20%', align: 'center', customRender: function (text) { return text || '--' } })
-        arr.splice(5, 0, { title: '当前所属区域', scopedSlots: { customRender: 'areas' }, width: '30%', align: 'center' })
+        arr.splice(5, 0, { title: '当前所属区域', scopedSlots: { customRender: 'areas' }, width: '20%', align: 'center' })
         arr.splice(6, 0, { title: '操作', scopedSlots: { customRender: 'action' }, width: '20%', align: 'center' })
       } else {
-        arr.splice(4, 0, { title: '所在区域', dataIndex: 'subareaArea.subareaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } })
-        arr.splice(5, 0, { title: '所在分区', dataIndex: 'subareaArea.subareaAreaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } })
+        arr.splice(4, 0, { title: '所在区域', dataIndex: 'subareaArea.subareaName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } })
+        arr.splice(5, 0, { title: '所在分区', dataIndex: 'subareaArea.subareaAreaName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } })
       }
       return arr
     },
@@ -171,6 +177,10 @@ export default {
     rowSelectionFun (obj) {
       this.rowSelectionInfo = obj || null
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     areaChange (val) {
       this.queryParam.provinceSn = val[0] ? val[0] : ''
       this.queryParam.citySn = val[1] ? val[1] : ''
@@ -187,9 +197,11 @@ export default {
     },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         auditState: undefined,
         provinceSn: undefined,

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

@@ -0,0 +1,98 @@
+import { dealerTypeTreeList } from '@/api/dealer.js'
+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: 'code', children: 'childrenList' }"/>
+    `,
+  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.getTree()
+  },
+  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);
+    },
+    //  价格类型
+    getTree () {
+      dealerTypeTreeList({}).then(res => {
+        console.log(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.childrenList){
+            delete item.childrenList
+          }
+        })
+      }
+      return data
+    }
+  },
+};
+
+export default AllocateType

+ 17 - 5
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="dealerType" @change="getDealerType" 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,
@@ -107,10 +108,12 @@ export default {
   data () {
     return {
       spinning: false,
+      dealerType: [],
       queryParam: { //  查询条件
         dealer: {
           nameLike: '',
-          dealerType: null,
+          dealerType1: undefined, //  商户类型
+          dealerType2: undefined, //  商户类型
           dealerLevel: null
         },
         auditState: undefined,
@@ -140,6 +143,9 @@ export default {
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
               data.list[i].dealerSn = data.list[i].dealer.dealerSn
+              if (data.list[i].dealer.dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealer.dealerTypeName1 + '>' + data.list[i].dealer.dealerTypeName2
+              }
               if (!_this.pageType && _this.chooseInfo && _this.chooseInfo.length > 0) {
                 // 回显选中数据
                 const flag = _this.chooseInfo.includes(data.list[i].dealer.dealerSn)
@@ -166,7 +172,7 @@ export default {
       const arr = [
         { title: '经销商名称', dataIndex: 'dealer.dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '商户别名', dataIndex: 'dealer.dealerAlias', align: 'left', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealer.dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealer.dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } }
       ]
       if (_this.pageType == 'viewDealers') {
@@ -188,6 +194,10 @@ export default {
     rowSelectionFun (obj) {
       this.rowSelectionInfo = obj || null
     },
+    getDealerType (v, o) {
+      this.queryParam.dealer.dealerType1 = v[0]
+      this.queryParam.dealer.dealerType2 = v[1]
+    },
     areaChange (val) {
       this.queryParam.provinceSn = val[0] ? val[0] : ''
       this.queryParam.citySn = val[1] ? val[1] : ''
@@ -203,10 +213,12 @@ export default {
     },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         dealer: {
           nameLike: '',
-          dealerType: null,
+          dealerType1: undefined, //  商户类型
+          dealerType2: undefined, //  商户类型
           dealerLevel: null
         },
         auditState: undefined,

+ 21 - 9
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="dealerType" @change="getDealerType" 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,
@@ -150,10 +151,12 @@ export default {
       visible: this.showModal,
       openAddDealer: false,
       flag: true,
+      dealerType: [],
       queryParam: { //  查询条件
         dealer: {
           nameLike: '',
-          dealerType: null,
+          dealerType1: undefined, //  商户类型
+          dealerType2: undefined, //  商户类型
           dealerLevel: null,
           auditState: undefined,
           provinceSn: undefined,
@@ -167,9 +170,9 @@ export default {
       disabled: false,
       tableHeight: 0,
       columns: [
-        { title: '经销商名称', dataIndex: 'dealer.dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户别名', dataIndex: 'dealer.dealerAlias', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户类型', dataIndex: 'dealer.dealerTypeDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '经销商名称', dataIndex: 'dealer.dealerName', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户别名', dataIndex: 'dealer.dealerAlias', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealer.dealerLevelDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '审核状态', dataIndex: 'dealer.auditStateDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
@@ -182,8 +185,11 @@ export default {
           if (res.status == 200) {
             data = res.data
             const no = 0
-            for (var i = 0; i < data.length; i++) {
-              data[i].no = no + i + 1
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+              if (data.list[i].dealer.dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealer.dealerTypeName1 + '>' + data.list[i].dealer.dealerTypeName2
+              }
             }
           }
           this.disabled = false
@@ -195,6 +201,10 @@ export default {
     }
   },
   methods: {
+    getDealerType (v, o) {
+      this.queryParam.dealer.dealerType1 = v[0]
+      this.queryParam.dealer.dealerType2 = v[1]
+    },
     // 绑定
     hanldAdd (row) {
       console.log(row)
@@ -243,10 +253,12 @@ export default {
       }
     },
     resetData () {
+      this.dealerType = []
       this.queryParam = {
         dealer: {
           nameLike: '',
-          dealerType: null,
+          dealerType1: undefined, //  商户类型
+          dealerType2: undefined, //  商户类型
           dealerLevel: null,
           auditState: undefined,
           provinceSn: undefined,

+ 19 - 10
src/views/dealerManagement/merchantInfoManagement/edit.vue

@@ -30,13 +30,12 @@
                   </a-form-model-item>
                 </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"
+                  <a-form-model-item label="商户类型" prop="dealerType1">
+                    <dealerType
                       id="merchantInfoManagementEdit-dealerType"
-                      v-model="form.dealerType"
-                      allowClear
-                      placeholder="请选择商户类型"></v-select>
+                      v-model="dealerType"
+                      @change="getDealerType"
+                      allowClear></dealertype>
                   </a-form-model-item>
                 </a-col>
                 <a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
@@ -413,13 +412,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,
@@ -431,10 +431,12 @@ export default {
           span: 16
         }
       },
+      dealerType: [],
       form: {
         dealerName: '',
         dealerAlias: '',
-        dealerType: undefined,
+        dealerType1: undefined,
+        dealerType2: undefined,
         contact: '',
         contactMobile: '',
         provinceSn: undefined,
@@ -481,7 +483,7 @@ export default {
         dealerAlias: [
           { required: true, message: '请输入经销商别名', trigger: 'change' }
         ],
-        dealerType: [
+        dealerType1: [
           { required: true, message: '请选择商户类型', trigger: 'change' }
         ],
         contact: [
@@ -544,13 +546,16 @@ export default {
   methods: {
     bankAccountChange (e) {
       const { value } = e.target
-      console.log(value, value.replace(/\s*/g, ''))
       this.form.tradeBankAccount = value.replace(/\s*/g, '')
     },
     // 不可选日期
     disabledDate (date, dateStrings) {
       return date && date.valueOf() > Date.now()
     },
+    getDealerType (v, o) {
+      this.form.dealerType1 = v[0]
+      this.form.dealerType2 = v[1]
+    },
     // 详情编辑
     getDetail () {
       this.spinning = true
@@ -558,7 +563,11 @@ export default {
         if (res.status == 200) {
           this.detailData = res.data
           this.form = Object.assign(this.form, res.data)
+          delete this.form.dealerType
           this.form.isShowSpecialPrice = Number(this.form.isShowSpecialPrice)
+          if (this.form.dealerType1) {
+            this.dealerType = [this.form.dealerType1, this.form.dealerType2]
+          }
           if (this.form.provinceSn) {
             this.getArea('city', this.form.provinceSn, 0)
           }

+ 19 - 7
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="dealerType" @change="getDealerType" allowClear></dealertype>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -85,9 +85,9 @@
           <template slot="action" slot-scope="text, record">
             <a-button size="small" type="link" class="button-warning" v-if="record.auditState == 'WAIT' && $hasPermissions('B_merchantInfo_audit')" @click="handleAudit(record)" >审核</a-button>
             <a-button size="small" type="link" class="button-info" v-if="$hasPermissions('B_merchantInfo_cooperation')" @click="handleCooperation(record)" >合作设置</a-button>
-            <a-button size="small" type="link" class="button-primary" v-if="$hasPermissions('B_merchantInfo_level')" @click="handleLevel(record)">级别设置</a-button>
-            <br>
+            <!-- <a-button size="small" type="link" class="button-primary" v-if="$hasPermissions('B_merchantInfo_level')" @click="handleLevel(record)">级别设置</a-button> -->
             <a-button size="small" type="link" class="button-info" v-if="$hasPermissions('B_merchantInfo_edit')" @click="handleEdit(record)">编辑</a-button>
+            <br>
             <a-button size="small" type="link" class="button-error" v-if="record.auditState != 'WAIT'" @click="handlePriceSpread(record)">差价</a-button>
             <a-button size="small" type="link" class="button-error" v-if="record.auditState != 'WAIT' && $hasPermissions('B_merchantInfo_distribution')" @click="handleDistribution(record)">经销权</a-button>
             <span v-if="!(record.auditState == 'WAIT' && $hasPermissions('B_merchantInfo_audit')) && !$hasPermissions('B_merchantInfo_cooperation') && !(record.auditState != 'WAIT' && $hasPermissions('B_merchantInfo_distribution')) && !$hasPermissions('B_merchantInfo_level') && !$hasPermissions('B_merchantInfo_edit')">--</span>
@@ -119,18 +119,21 @@ 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,
       advanced: true, // 高级搜索 展开/关闭
       tableHeight: 0,
+      dealerType: [],
       queryParam: { //  查询条件
         nameLike: '', //  商户名称、别名
-        dealerType: undefined, //  商户类型
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: undefined, // 商户级别
         subareaArea: {
           subareaSn: undefined, //  区域
@@ -150,7 +153,7 @@ export default {
         { title: '分区', dataIndex: 'subareaArea.subareaAreaName', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户名称', scopedSlots: { customRender: 'dealerName' }, width: '12%', align: 'left', ellipsis: true },
         { title: '商户别名', dataIndex: 'dealerAlias', width: '12%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '联系人', dataIndex: 'contact', width: '6%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '联系电话', dataIndex: 'dealerTelephone', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
@@ -173,6 +176,9 @@ export default {
             this.total = data.count || 0
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
+              if (data.list[i].dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealerTypeName1 + '>' + data.list[i].dealerTypeName2
+              }
             }
             this.disabled = false
           }
@@ -192,11 +198,17 @@ export default {
       this.queryParam.subareaArea.subareaSn = val[0] ? val[0] : undefined
       this.queryParam.subareaArea.subareaAreaSn = val[1] ? val[1] : undefined
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     //  重置列表
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         nameLike: '', //  商户名称、别名
-        dealerType: undefined, //  商户类型
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: undefined, // 商户级别
         subareaArea: {
           subareaSn: undefined,

+ 18 - 6
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="dealerType" @change="getDealerType" 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,
@@ -88,9 +89,11 @@ export default {
     return {
       tableHeight: 0,
       spinning: false,
+      dealerType: [],
       queryParam: { //  查询条件
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         subareaArea: {
           subareaSn: undefined, //  区域
@@ -107,7 +110,7 @@ export default {
       columns: [
         { title: '经销商名称', dataIndex: 'dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '商户别名', dataIndex: 'dealerAlias', align: 'left', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '地区', scopedSlots: { customRender: 'addressInfo' }, width: '30%', align: 'center', ellipsis: true },
         { title: '所在区域', dataIndex: 'subareaArea.subareaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
@@ -126,6 +129,9 @@ export default {
             const no = (data.pageNo - 1) * data.pageSize
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
+              if (data.list[i].dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealerTypeName1 + '>' + data.list[i].dealerTypeName2
+              }
             }
             this.disabled = false
           }
@@ -145,6 +151,10 @@ export default {
     rowSelectionFun (obj) {
       this.rowSelectionInfo = obj || null
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     areaChange (val) {
       this.queryParam.provinceSn = val[0] ? val[0] : ''
       this.queryParam.citySn = val[1] ? val[1] : ''
@@ -159,9 +169,11 @@ export default {
     },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         subareaArea: {
           subareaSn: undefined, //  区域
@@ -190,7 +202,7 @@ export default {
     },
     pageInit (data) {
       this.setTableH()
-      this.$refs.table.refresh()
+      this.resetSearchForm()
     },
     setTableH () {
       const headHeight = this.$refs.tableSearch.offsetHeight

+ 17 - 5
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="dealerType" @change="getDealerType" allowClear></dealertype>
                     </a-form-item>
                   </a-col>
                   <a-col :md="4" :sm="24">
@@ -119,17 +119,19 @@ 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,
       isShow: this.openModal, //  是否打开弹框
       disabled: false,
       exportLoading: false,
+      dealerType: [],
       queryParam: {
         subareaSn: undefined,
         subareaAreaSn: undefined,
@@ -138,7 +140,8 @@ export default {
         districtSn: undefined,
         nameLike: '',
         relationType: 'purchase',
-        dealerType: undefined,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: undefined
       },
       tableHeight: 0,
@@ -155,6 +158,9 @@ export default {
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
               data.list[i].loginFlag = Number(data.list[i].loginFlag)
+              if (data.list[i].dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealerTypeName1 + '>' + data.list[i].dealerTypeName2
+              }
             }
             this.disabled = false
           }
@@ -168,7 +174,7 @@ export default {
         { title: '地区', scopedSlots: { customRender: 'address' }, width: '20%', align: 'center', ellipsis: true },
         { title: '区域', dataIndex: 'subareaArea.subareaName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '分区', dataIndex: 'subareaArea.subareaAreaName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '添加时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '12%', align: 'center' }
@@ -189,6 +195,10 @@ export default {
       this.openDealerModal = false
       this.$refs.dealerChoose.clearSelect()
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     // 关联经销商
     handleAddDealer (list) {
       const newList = list.map(item => {
@@ -249,6 +259,7 @@ export default {
     },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         subareaSn: undefined,
         subareaAreaSn: undefined,
@@ -258,7 +269,8 @@ export default {
         nameLike: '',
         serviceCenterSn: this.$route.params.sn,
         relationType: 'purchase',
-        dealerType: undefined,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: undefined
       }
       this.$refs.areaList.clearData()

+ 23 - 11
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="dealerType" @change="getDealerType" allowClear></dealertype>
             </a-form-item>
           </a-col>
           <a-col :md="8" :sm="24">
@@ -44,8 +44,8 @@
       </div>
     </div>
     <a-table
-      style="height: 320px;"
-      :scroll="{ y: 230 }"
+      style="height: 420px;"
+      :scroll="{ y: 330 }"
       :bordered="true"
       :pagination="pagination"
       :row-key="record => record.dealerSn"
@@ -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,
@@ -88,9 +89,11 @@ export default {
   data () {
     return {
       spinning: false,
+      dealerType: [],
       queryParam: { //  查询条件
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         subareaArea: {
           subareaSn: undefined, //  区域
@@ -114,13 +117,13 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       loading: false, // 批量添加loading,
       columns: [
-        { title: '地区', scopedSlots: { customRender: 'addressInfo' }, width: '30%', align: 'center', ellipsis: true },
-        { title: '经销商名称', dataIndex: 'dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '地区', scopedSlots: { customRender: 'addressInfo' }, width: '30%', align: 'left', ellipsis: true },
+        { title: '经销商名称', dataIndex: 'dealerName', width: '30%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '商户别名', dataIndex: 'dealerAlias', align: 'left', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '29%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '所在区域', dataIndex: 'subareaArea.subareaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '所在分区', dataIndex: 'subareaArea.subareaAreaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '所在区域', dataIndex: 'subareaArea.subareaName', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '所在分区', dataIndex: 'subareaArea.subareaAreaName', width: '13%', align: 'center', customRender: function (text) { return text || '--' } }
       ]
     }
   },
@@ -154,6 +157,9 @@ export default {
           const no = 0
           for (var i = 0; i < data.list.length; i++) {
             data.list[i].no = no + i + 1
+            if (data.list[i].dealerTypeName1) {
+              data.list[i].dealerTypeName = data.list[i].dealerTypeName1 + '>' + data.list[i].dealerTypeName2
+            }
           }
           this.dealerList = data.list
           this.pagination = pagination
@@ -169,6 +175,10 @@ export default {
     rowSelectionFun (obj) {
       this.rowSelectionInfo = obj || null
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     areaChange (val) {
       this.queryParam.provinceSn = val[0] ? val[0] : ''
       this.queryParam.citySn = val[1] ? val[1] : ''
@@ -184,9 +194,11 @@ export default {
     },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         subareaArea: {
           subareaSn: undefined, //  区域

+ 19 - 7
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="dealerType" @change="getDealerType" 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,
@@ -102,9 +103,11 @@ export default {
   data () {
     return {
       spinning: false,
+      dealerType: [],
       queryParam: { //  查询条件
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         subareaArea: {
           subareaSn: undefined, //  区域
@@ -135,9 +138,9 @@ export default {
     },
     columns () {
       const arr = [
-        { title: '经销商名称', dataIndex: 'dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户别名', dataIndex: 'dealerAlias', align: 'left', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '经销商名称', dataIndex: 'dealerName', width: '25%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '商户别名', dataIndex: 'dealerAlias', align: 'left', width: '25%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '商户类型', dataIndex: 'dealerTypeName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '所在区域', dataIndex: 'subareaArea.subareaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '所在分区', dataIndex: 'subareaArea.subareaAreaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } }
@@ -173,6 +176,9 @@ export default {
           const no = 0
           for (var i = 0; i < data.list.length; i++) {
             data.list[i].no = no + i + 1
+            if (data.list[i].dealerTypeName1) {
+              data.list[i].dealerTypeName = data.list[i].dealerTypeName1 + '>' + data.list[i].dealerTypeName2
+            }
           }
           this.dealerList = data.list
           this.pagination = pagination
@@ -201,11 +207,17 @@ export default {
       this.queryParam.subareaArea.subareaSn = val[0] ? val[0] : undefined
       this.queryParam.subareaArea.subareaAreaSn = val[1] ? val[1] : undefined
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.queryParam = {
         nameLike: '',
-        dealerType: null,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         dealerLevel: null,
         subareaArea: {
           subareaSn: undefined, //  区域

+ 17 - 5
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="dealerType" @change="getDealerType" allowClear placeholder="请选择客户类型"></dealertype>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -159,16 +159,18 @@ 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,
       advanced: true, // 高级搜索 展开/关闭
       tableHeight: 0, // 表格高度
+      dealerType: [],
       queryParam: { //  查询条件
         beginDate: getDate.getCurrMonthDays().starttime,
         endDate: getDate.getCurrMonthDays().endtime,
@@ -184,7 +186,8 @@ export default {
         productTypeSn3: '', //  产品三级分类
         salesBillNo: '',
         provinceSn: undefined,
-        dealerType: undefined,
+        dealerType1: undefined, //  商户类型
+        dealerType2: undefined, //  商户类型
         brandType: undefined,
         productBrandSn: undefined,
         state: undefined,
@@ -210,6 +213,9 @@ export default {
             const no = (data.pageNo - 1) * data.pageSize
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
+              if (data.list[i].dealerEntity.dealerTypeName1) {
+                data.list[i].dealerTypeName = data.list[i].dealerEntity.dealerTypeName1 + '>' + data.list[i].dealerEntity.dealerTypeName2
+              }
             }
             this.disabled = false
             this.getCount(params)
@@ -233,7 +239,7 @@ export default {
         { title: '省份', dataIndex: 'dealerEntity.provinceName', width: 80, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户名称', dataIndex: 'dealerEntity.dealerName', width: 140, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '仓库', dataIndex: 'warehouseName', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户类型', dataIndex: 'dealerEntity.dealerTypeDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户类型', dataIndex: 'dealerTypeName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '创建时间', dataIndex: 'createDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌', dataIndex: 'productEntity.productBrandName', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '二级分类', dataIndex: 'productEntity.productTypeName2', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
@@ -293,8 +299,13 @@ export default {
       this.queryParam.subareaArea.subareaSn = val[0] ? val[0] : undefined
       this.queryParam.subareaArea.subareaAreaSn = val[1] ? val[1] : undefined
     },
+    getDealerType (v, o) {
+      this.queryParam.dealerType1 = v[0]
+      this.queryParam.dealerType2 = v[1]
+    },
     //  重置
     resetSearchForm () {
+      this.dealerType = []
       this.$refs.rangeDate.resetDate(this.time)
       this.queryParam.beginDate = getDate.getCurrMonthDays().starttime
       this.queryParam.endDate = getDate.getCurrMonthDays().endtime
@@ -312,7 +323,8 @@ export default {
       this.queryParam.productTypeSn3 = ''
       this.queryParam.salesBillNo = ''
       this.queryParam.provinceSn = undefined
-      this.queryParam.dealerType = undefined
+      this.queryParam.dealerType1 = undefined
+      this.queryParam.dealerType2 = undefined
       this.queryParam.brandType = undefined
       this.queryParam.productBrandSn = undefined
       this.queryParam.state = undefined

+ 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.111/ocs-admin',
+        target: 'http://192.168.2.117/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: {