index.vue 28.8 KB
Newer Older
dcy's avatar
dcy committed
1 2
<template>
  <div class="app-container">
dcy's avatar
dcy committed
3 4 5 6
    <el-form  class="demo-ruleForm" label-position="left" label-width="110px" :rules="rules" :model="form" ref="form" >
      <el-card class="box-card" style="padding: 10px">
        <div slot="header" class="clearfix">
          <el-row>
dcy's avatar
dcy committed
7
            <el-col :span="8">
dcy's avatar
dcy committed
8
              <el-form-item :label="$t('客户名称')" prop="customerId">
dcy's avatar
dcy committed
9
              <div style="display: flex">
dcy's avatar
dcy committed
10
                <el-input readonly="readonly"   :placeholder="$t('请输入选择客户')" v-model="customerName"></el-input>
dcy's avatar
dcy committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
                <img style="width: 40px;height: 40px;margin-left: 40px;" src="@/assets/images/phonebook.png" class="phonebook" @click="customerNameShow= true" />
              </div>
<!--                <el-select-->
<!--                  v-model="customerForm.name"-->
<!--                  filterable-->
<!--                  placeholder="请输入关键词"-->
<!--                  @change="changefn">-->
<!--                  <el-option-->
<!--                    v-for="item in customeList"-->
<!--                    :key="item.id"-->
<!--                    :value="item.id.toString()"-->
<!--                    :label="item.name"-->
<!--                  >-->
<!--                    {{ item.number }}|{{ item.name }}|{{ item.defaultContactPhone }}-->
<!--                  </el-option>-->
<!--                </el-select>-->
dcy's avatar
dcy committed
27 28
              </el-form-item>
            </el-col>
dcy's avatar
dcy committed
29 30
          </el-row>
          <el-row>
dcy's avatar
dcy committed
31
            <el-col :span="5">
dcy's avatar
dcy committed
32
              <el-form-item :label="$t('运输方式')" prop="transportId">
dcy's avatar
dcy committed
33
                <div>
dcy's avatar
dcy committed
34
                  <custom-selectors-dictionary :all-show="true" v-model="form.transportId" :options="getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"></custom-selectors-dictionary>
dcy's avatar
dcy committed
35
                </div>
dcy's avatar
dcy committed
36 37 38
              </el-form-item>
            </el-col>
            <el-col :span="5">
dcy's avatar
dcy committed
39
              <el-form-item :label="$t('始发地')" prop="departureId">
dcy's avatar
dcy committed
40
                <div>
dcy's avatar
dcy committed
41
                  <custom-selectors-dictionary :all-show="true" label-key="titleZh" value-key="id" v-model="form.departureId"
dcy's avatar
dcy committed
42
                                               :options="exportCityList"></custom-selectors-dictionary>
dcy's avatar
dcy committed
43
                </div>
dcy's avatar
dcy committed
44 45 46
              </el-form-item>
            </el-col>
            <el-col :span="5">
dcy's avatar
dcy committed
47
              <el-form-item :label="$t('目的地')" prop="objectiveId">
dcy's avatar
dcy committed
48
                <div>
dcy's avatar
dcy committed
49
                  <custom-selectors-dictionary :all-show="true" label-key="titleZh" value-key="id" v-model="form.objectiveId"
dcy's avatar
dcy committed
50
                                               :options="importCityList"></custom-selectors-dictionary>
dcy's avatar
dcy committed
51
                </div>
dcy's avatar
dcy committed
52 53 54
              </el-form-item>
            </el-col>
            <el-col :span="5">
dcy's avatar
dcy committed
55
              <el-form-item :label="$t('报关方式')" prop="customsType">
dcy's avatar
dcy committed
56
                <div>
dcy's avatar
dcy committed
57
                  <custom-selectors-dictionary :all-show="true" v-model="form.customsType"
dcy's avatar
dcy committed
58
                                               :options="getDictDatas(DICT_TYPE.SHIPPING_DECLARATION_TYPE)"></custom-selectors-dictionary>
dcy's avatar
dcy committed
59
                </div>
dcy's avatar
dcy committed
60 61 62
              </el-form-item>
            </el-col>
            <el-col :span="5">
dcy's avatar
dcy committed
63
              <el-form-item :label="$t('备案')" prop="approval">
dcy's avatar
dcy committed
64
                <div>
dcy's avatar
dcy committed
65
                  <custom-selectors-dictionary :all-show="true" v-model="form.approval"
dcy's avatar
dcy committed
66
                                               :options="getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL)"></custom-selectors-dictionary>
dcy's avatar
dcy committed
67
                </div>
dcy's avatar
dcy committed
68 69 70 71 72 73
              </el-form-item>
            </el-col>
          </el-row>
        </div>
        <el-row>
          <el-col :span="24">
dcy's avatar
dcy committed
74
            <el-form-item label-width="150px" :label="$t('佣金类型(明佣、暗佣)')">
dcy's avatar
dcy committed
75 76 77 78 79 80 81 82 83 84
              <el-radio-group v-model="form.type">
                <el-radio v-for="(item,index) in getDictDatas(DICT_TYPE.COMMISSION_TYPE)" v-show="item.value != 0" :label="parseInt(item.value)"
                          :key="index">{{ item.label }}
                </el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
dcy's avatar
dcy committed
85
            <el-form-item :label="$t('返佣类型')" v-if="form.type == 2">
dcy's avatar
dcy committed
86 87 88 89 90 91 92 93 94 95 96
              <el-radio-group v-model="form.darkReturnType">
                <el-radio v-for="(item,index) in getDictDatas(DICT_TYPE.COMMISSION_DARK_TYPE)" :label="parseInt(item.value)"
                          :key="index">{{ item.label }}
                </el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <div class="ming-servant" v-if="form.type == 1">
dcy's avatar
dcy committed
97
              <div class="label">{{$t('佣金')}}</div>
dcy's avatar
dcy committed
98
              <div class="content">
dcy's avatar
dcy committed
99 100
                <div>
                  <el-input v-model="mingServantFrom[0].refund"></el-input>
dcy's avatar
dcy committed
101
                </div>
dcy's avatar
dcy committed
102 103
                <div>
                  <custom-selectors-dictionary v-model="mingServantFrom[0].refundCurrency"
dcy's avatar
dcy committed
104 105
                                               :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
                </div>
dcy's avatar
dcy committed
106 107 108
                <div>
                  <custom-selectors-dictionary v-model="mingServantFrom[0].refundUnit" label-key="titleZh" value-key="id"
                                               :options="weightList"></custom-selectors-dictionary>
dcy's avatar
dcy committed
109 110 111
                </div>
              </div>
            </div>
dcy's avatar
dcy committed
112
            <el-form v-if="form.type == 2 && form.darkReturnType == 1">
dcy's avatar
dcy committed
113
              <el-form-item :label="$t('商品类型')" v-for="(item,index) in darkServantAndProductForm" :key="index">
dcy's avatar
dcy committed
114 115
                <div class="shanping-type">
                  <div class="tool">
dcy's avatar
dcy committed
116
                    <custom-selectors-dictionary :all-show="true" v-model="item.productType" :options="productAttrList" label-key="titleZh"
dcy's avatar
dcy committed
117 118 119 120
                                                 value-key="id"></custom-selectors-dictionary>
                  </div>
                  <div class="box">
                    <div class="label">
dcy's avatar
dcy committed
121
                      {{$t('商品特性')}}
dcy's avatar
dcy committed
122 123
                    </div>
                    <div class="custom">
dcy's avatar
dcy committed
124
                      <custom-selectors-dictionary :all-show="true" v-model="item.productAttr" label-key="attrName" value-key="id"
dcy's avatar
dcy committed
125 126 127 128 129
                                                   :options="commodityType"></custom-selectors-dictionary>
                    </div>
                  </div>
                  <div class="box">
                    <div class="label">
dcy's avatar
dcy committed
130
                      {{$t('佣金')}}
dcy's avatar
dcy committed
131 132 133 134 135 136 137 138 139 140 141 142 143 144
                    </div>
                    <div class="custom">
                      <el-input v-model="item.darkCommission"></el-input>
                    </div>
                    <div class="custom">
                      <custom-selectors-dictionary v-model="item.darkCurrency"
                                                   :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
                    </div>
                    <div class="custom">
                      <custom-selectors-dictionary v-model="item.darkUnit" label-key="titleZh" value-key="id"
                                                   :options="weightList"></custom-selectors-dictionary>
                    </div>
                  </div>
                  <div>
dcy's avatar
dcy committed
145
                    <el-button type="primary" @click="addToFn(1)" v-if="darkServantAndProductForm.length - 1 === index">{{$t('添加')}}</el-button>
dcy's avatar
dcy committed
146
                  </div>
dcy's avatar
dcy committed
147
                </div>
dcy's avatar
dcy committed
148 149 150 151 152
              </el-form-item>
            </el-form>
            <div class="column" v-if="form.type == 2 && form.darkReturnType == 2">
              <div style="margin-bottom: 10px" v-for="(item,index) in darkServantAndRebateForm" :key="index">
                <div class="label">
dcy's avatar
dcy committed
153
                 {{$t(' 佣金:')}}
dcy's avatar
dcy committed
154
                </div>
dcy's avatar
dcy committed
155
                <div class="content">
dcy's avatar
dcy committed
156
                  <div class="item label">{{$t('')}}</div>
dcy's avatar
dcy committed
157 158 159 160 161 162 163 164 165 166 167
                  <div class="item">
                    <el-input v-model="item.amount"></el-input>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="item.amountCurrency"
                                                 :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="item.amountUnit"
                                                 label-key="titleZh" value-key="id" :options="weightList"></custom-selectors-dictionary>
                  </div>
dcy's avatar
dcy committed
168
                </div>
dcy's avatar
dcy committed
169
                <div class="content">
dcy's avatar
dcy committed
170
                  <div class="item label">{{$t('')}}</div>
dcy's avatar
dcy committed
171 172 173 174 175 176 177 178 179 180 181 182
                  <div class="item">
                    <el-input v-model="item.refund"></el-input>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="item.refundCurrency"
                                                 :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="item.refundUnit"
                                                 label-key="titleZh" value-key="id"     :options="weightList"></custom-selectors-dictionary>
                  </div>
                </div>
dcy's avatar
dcy committed
183
                <el-button type="primary" @click="addToFn(2)" v-show="darkServantAndRebateForm.length -1 === index">{{$t('添加')}}</el-button>
dcy's avatar
dcy committed
184 185
              </div>
            </div>
dcy's avatar
dcy committed
186 187
            <div class="mingServantAndDarkServant" v-if="form.type == 3">
              <div class="box">
dcy's avatar
dcy committed
188
                <div class="label">{{$t('暗佣佣金')}}</div>
dcy's avatar
dcy committed
189 190 191 192 193 194 195 196 197 198 199 200
                <div class="content">
                  <div class="item">
                    <el-input v-model="mingServantAnddarkServant[0].refund"></el-input>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].refundCurrency"
                                                 :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary label-key="titleZh" value-key="id" v-model="mingServantAnddarkServant[0].refundUnit"
                                                 :options="weightList"></custom-selectors-dictionary>
                  </div>
dcy's avatar
dcy committed
201
                </div>
dcy's avatar
dcy committed
202 203
              </div>
              <div class="title">
dcy's avatar
dcy committed
204
                <span class="label">{{$t('成本价 = 原价-暗佣佣金')}}</span>
dcy's avatar
dcy committed
205 206
              </div>
              <div class="box">
dcy's avatar
dcy committed
207
                <div class="label">{{$t('销售价上调')}}</div>
dcy's avatar
dcy committed
208 209 210 211 212 213 214 215 216 217 218 219
                <div class="content">
                  <div class="item">
                    <el-input v-model="mingServantAnddarkServant[0].darkAdjustCommission"></el-input>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].darkAdjustCurrency"
                                                 :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].darkAdjustUnit" label-key="titleZh" value-key="id"
                                                 :options="weightList"></custom-selectors-dictionary>
                  </div>
dcy's avatar
dcy committed
220 221
                </div>
              </div>
dcy's avatar
dcy committed
222
              <div class="title">
dcy's avatar
dcy committed
223
                <span class="label">{{$t(' 实际佣金返点 = 销售价-成本价')}}</span>
dcy's avatar
dcy committed
224
              </div>
dcy's avatar
dcy committed
225
            </div>
dcy's avatar
dcy committed
226 227 228 229
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12" style="margin-top: 20px">
dcy's avatar
dcy committed
230 231
            <el-button style="width:200px;margin: 0 40px" type="primary" @click="submitForm">{{$t('确定')}}</el-button>
            <el-button style="width:200px" @click="cancel">{{$t('取消')}}</el-button>
dcy's avatar
dcy committed
232 233 234
          </el-col>
        </el-row>
      </el-card>
dcy's avatar
dcy committed
235
    </el-form>
dcy's avatar
dcy committed
236
    <choose-contact-dialog v-if="customerNameShow"  @choose="onContactChoose"   @close="customerNameShow = false" />
dcy's avatar
dcy committed
237 238 239 240
  </div>
</template>

<script>
241
import {
dcy's avatar
dcy committed
242
  itemTypeListApi,
dcy's avatar
dcy committed
243
  customerDropDownList, commodityList,createCommission,getCustomerCommission,commissionGetByCustomerId,updateCustomerCommissionInfo
dcy's avatar
dcy committed
244

245 246 247
} from "@/api/ecw/customerCommissionInfo";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import customSelectorsDictionary from "./customSelectorsDictionary"
dcy's avatar
dcy committed
248
import {getTradeCityList} from "@/api/ecw/region";
dcy's avatar
dcy committed
249
import RoutersSelector from "@/components/RoutersSelector"
dcy's avatar
dcy committed
250
import CustomersSelector from "@/components/CustomersSelector";
251
import {getUnitList} from "@/api/ecw/unit";
dcy's avatar
dcy committed
252 253
import ChooseContactDialog from '@/components/ChooseContactDialog'
import {getProductTypeList} from "@/api/ecw/productType";
dcy's avatar
dcy committed
254 255 256
export default {
  name: "CustomerCommissionInfo",
  components: {
dcy's avatar
dcy committed
257
    customSelectorsDictionary,
dcy's avatar
dcy committed
258
    RoutersSelector,
dcy's avatar
dcy committed
259 260
    CustomersSelector,
    ChooseContactDialog
dcy's avatar
dcy committed
261 262 263
  },
  data() {
    return {
dcy's avatar
dcy committed
264 265
      customerName:undefined,
      customerNameShow:false,
dcy's avatar
dcy committed
266
      value: '',
dcy's avatar
dcy committed
267
      isSubmit:false,
268 269
      getDictDatas,
      DICT_TYPE,
dcy's avatar
dcy committed
270 271
      commodityType: [],
      tradeCityList: [],
dcy's avatar
dcy committed
272
      // 表单参数
dcy's avatar
dcy committed
273
      form: {
dcy's avatar
dcy committed
274
        approval: 0,//	产品备案
dcy's avatar
dcy committed
275 276
        customerCommissionInfoBaseVOList: [],//	佣金详情
        customerId: undefined,//客户id
dcy's avatar
dcy committed
277
        customsType: 0,//报关类别:我司全代:1,自单代报:2,混合报关:3
dcy's avatar
dcy committed
278
        darkReturnType: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_DARK_TYPE)[0].value),//	暗佣类型 1产品2达标
dcy's avatar
dcy committed
279 280 281
        departureId: 0,//	始发地id
        objectiveId: 0 ,//目的地id
        transportId:0,//运输方式
dcy's avatar
dcy committed
282
        type: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_TYPE)[1].value),//	佣金类型
dcy's avatar
dcy committed
283
      },
dcy's avatar
dcy committed
284 285 286
      //明佣
      mingServantFrom: [
        {
287
          refund: '',
dcy's avatar
dcy committed
288
          refundCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),
289
          refundUnit:undefined,
dcy's avatar
dcy committed
290 291 292 293 294
        }
      ],
      //暗佣金+产品
      darkServantAndProductForm: [
        {
dcy's avatar
dcy committed
295 296
          productType:0,//商品类型
          productAttr: 0,//暗佣 产品属性
dcy's avatar
dcy committed
297
          darkCommission: '',//暗佣 佣金
dcy's avatar
dcy committed
298
          darkCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣 货币
299
          darkUnit:undefined,//	暗佣 单位
dcy's avatar
dcy committed
300 301
        }
      ],
dcy's avatar
dcy committed
302
      //暗佣+达标返佣
dcy's avatar
dcy committed
303 304
      darkServantAndRebateForm: [
        {
305
          amount: '',//	暗佣-满减金额
dcy's avatar
dcy committed
306
          amountCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣-满减金额对应货币
307
          amountUnit:undefined,//	暗佣-满减金额对应单位,
308
          refund: '',//暗佣-满之后返还金额
dcy's avatar
dcy committed
309
          refundCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//暗佣-满之后返还金额的货币
310
          refundUnit:undefined,//暗佣-满之后返还金额的单位
dcy's avatar
dcy committed
311 312 313 314 315
        }
      ],
      //暗佣+明金
      mingServantAnddarkServant: [
        {
316
          refund: '',//	暗佣+明佣 上调金额
dcy's avatar
dcy committed
317
          refundCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣+明佣 上调对应的货币
318
          refundUnit: undefined,//暗佣+明佣 上调对应的单位
319
          darkAdjustCommission: '',//暗佣+明佣 上调金额
dcy's avatar
dcy committed
320
          darkAdjustCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//暗佣+明佣 上调对应的货币
321
          darkAdjustUnit:undefined,//暗佣+明佣 上调对应的单位
dcy's avatar
dcy committed
322 323 324 325 326 327 328
        }
      ],
      customerForm: {
        defaultContactName: undefined,
        defaultContactPhone: undefined,
        name: undefined,
        number: undefined,
dcy's avatar
dcy committed
329
      },
dcy's avatar
dcy committed
330 331
      customeList: [],
      commodity: [],
dcy's avatar
dcy committed
332 333
      // 表单校验
      rules: {
dcy's avatar
dcy committed
334
        customerId: [{required: true, message: this.$t('客户名称不能为空'), trigger: "blur"}],
dcy's avatar
dcy committed
335
      },
dcy's avatar
dcy committed
336 337
      customerShow: true,
      id:undefined,//佣金id
dcy's avatar
dcy committed
338 339
      weightList:[],
      productAttrList:[]
dcy's avatar
dcy committed
340 341
    };
  },
dcy's avatar
dcy committed
342 343 344 345 346 347 348 349
  computed:{
    importCityList(){
      return this.tradeCityList.filter(item => item.type == 1)
    },
    exportCityList(){
      return this.tradeCityList.filter(item => item.type == 2)
    },
  },
dcy's avatar
dcy committed
350
  created() {
dcy's avatar
dcy committed
351 352 353 354
    getProductTypeList().then(response => {
      console.log(response.data,'response.data')
      this.productAttrList = response.data
    })
355 356 357 358 359
    //重量单位
    getUnitList().then(r =>{
      if(r.code === 0){
        this.weightList = r.data
        this.$set(this.mingServantFrom,0, {
360
            refund: '',
361 362 363 364
            refundCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),
            refundUnit: parseInt(this.weightList[0].id),})
        this.$set(this.darkServantAndProductForm, 0,
          {
dcy's avatar
dcy committed
365 366
            productType: 0,//商品类型
            productAttr: 0,//暗佣 产品属性
367
            darkCommission: '',//暗佣 佣金
368 369 370 371 372
            darkCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣 货币
            darkUnit: parseInt(this.weightList[0].id),//	暗佣 单位
          })
        this.$set(this.darkServantAndRebateForm, 0,
          {
373
            amount: '',//	暗佣-满减金额
374 375
            amountCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣-满减金额对应货币
            amountUnit:parseInt (this.weightList[0].id),//	暗佣-满减金额对应单位,
376
            refund: '',//暗佣-满之后返还金额
377 378 379 380 381
            refundCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//暗佣-满之后返还金额的货币
            refundUnit:parseInt(this.weightList[0].id),//暗佣-满之后返还金额的单位
          })
        this.$set(this.mingServantAnddarkServant, 0,
          {
382
            refund: '',//	暗佣+明佣 上调金额
383 384
            refundCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣+明佣 上调对应的货币
            refundUnit: parseInt(this.weightList[0].id),//暗佣+明佣 上调对应的单位
385
            darkAdjustCommission: '',//暗佣+明佣 上调金额
386 387 388 389 390 391
            darkAdjustCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//暗佣+明佣 上调对应的货币
            darkAdjustUnit:parseInt(this.weightList[0].id),//暗佣+明佣 上调对应的单位
          })
      }
    })

dcy's avatar
dcy committed
392
    this.getCustomeList();
dcy's avatar
dcy committed
393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
    if(this.$route.params.dictId != 0){
      commissionGetByCustomerId(this.$route.params.dictId).then(r => {
        if(r.code === 0){
          let f = this.form;
          let p = r.data;
          f.type =  p.type;
          f.approval = p.approval;
          f.customerId = p.customerId;
          f.customsType = p.customsType;
          f.darkReturnType = p.darkReturnType;
          f.departureId = p.departureId;
          f.objectiveId = p.objectiveId;
          f.transportId = p.transportId;
          this.form = f;
          this.customerForm.name = p.customerName;
          this.id = r.data.id;
        }
        getCustomerCommission(r.data.id).then(r =>{
          console.log(r,'客户佣金详情');
          if(r.code != 0 || r.data.length == 0) return
          if(this.form.type == 1){
               //明佣
               this.mingServantFrom = r.data
          }else if(this.form.type == 2){
            console.log('暗—-产')
             if(this.form.darkReturnType == 1){
             //  暗佣+产品
               console.log('1234')
             this.darkServantAndProductForm = r.data
             }else {
            //   暗佣+达标返佣
            this.darkServantAndRebateForm = r.data
             }
          }else {
            // 名佣+返佣
            this.mingServantAnddarkServant =r.data
          }
        })
      })
    }else {

    }
dcy's avatar
dcy committed
435
    this.getItemType();
dcy's avatar
dcy committed
436 437
    this.productAttrFn();

dcy's avatar
dcy committed
438 439
    getTradeCityList().then(res => {
      this.tradeCityList = res.data
dcy's avatar
dcy committed
440
    })
dcy's avatar
dcy committed
441 442
  },
  methods: {
dcy's avatar
dcy committed
443 444
    // /** 查询列表客户*/
    getCustomeList() {
dcy's avatar
dcy committed
445
      customerDropDownList(this.customerForm).then(res => {
dcy's avatar
dcy committed
446
        console.log(res);
dcy's avatar
dcy committed
447 448
        if (res.code === 0) {
          this.customeList = res.data
dcy's avatar
dcy committed
449 450 451
        }
      })
    },
dcy's avatar
dcy committed
452
    remoteMethod(val) {
dcy's avatar
dcy committed
453
      this.customerForm.name = val;
dcy's avatar
dcy committed
454
    },
dcy's avatar
dcy committed
455 456 457 458
    changefn(val){
      console.log(val,'val')
      this.form.customerId = val;
    },
dcy's avatar
dcy committed
459 460
    /** 取消按钮 */
    cancel() {
dcy's avatar
dcy committed
461
      this.$router.go(-1);
dcy's avatar
dcy committed
462 463 464 465
    },
    /** 表单重置 */
    reset() {
      this.form = {
dcy's avatar
dcy committed
466 467 468
        approval: undefined,
        customerCommissionInfoBaseVOList: [],
        customerId: undefined,//客户id
dcy's avatar
dcy committed
469
        customsType: '',//报关类别:我司全代:1,自单代报:2,混合报关:3
dcy's avatar
dcy committed
470
        darkReturnType: this.getDictDatas(this.DICT_TYPE.COMMISSION_DARK_TYPE)[0].value,//	暗佣类型 1产品2达标
dcy's avatar
dcy committed
471 472
        departureId: '',//	始发地id
        objectiveId: '',//	运输方式
dcy's avatar
dcy committed
473
        type: this.getDictDatas(this.DICT_TYPE.COMMISSION_TYPE)[1].value,//	佣金类型
dcy's avatar
dcy committed
474 475 476
      };
      this.resetForm("form");
    },
dcy's avatar
dcy committed
477 478 479
    //添加多条
    addToFn(val){
      if(val === 1){
dcy's avatar
dcy committed
480
         this.darkServantAndProductForm.push({
dcy's avatar
dcy committed
481 482
           productType:0,//商品类型
           productAttr:0,//暗佣 产品属性
483
           darkCommission: '',//暗佣 佣金
dcy's avatar
dcy committed
484 485
           darkCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣 货币
           darkUnit:this.darkServantAndProductForm[0].darkUnit,//	暗佣 单位
dcy's avatar
dcy committed
486 487 488
         })
      }else {
        this.darkServantAndRebateForm.push( {
489
          amount: '',//	暗佣-满减金额
dcy's avatar
dcy committed
490
          amountCurrency:parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//	暗佣-满减金额对应货币
491
          amountUnit: parseInt(this.weightList[0].id),//	暗佣-满减金额对应单位,
492
          refund: '',//暗佣-满之后返还金额
493
          refundCurrency: parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_CURRENCY_TYPE)[0].value),//暗佣-满之后返还金额的货币
dcy's avatar
dcy committed
494
          refundUnit: this.darkServantAndRebateForm[0].refundUnit,//暗佣-满之后返还金额的单位
dcy's avatar
dcy committed
495 496
        })
      }
dcy's avatar
dcy committed
497 498 499
    },
    /** 提交按钮 */
    submitForm() {
dcy's avatar
dcy committed
500
      this.$refs.form.validate ((valid)=>{
dcy's avatar
dcy committed
501
        this.isSubmit = true;
dcy's avatar
dcy committed
502 503
        if(!valid)return
        if (this.form.type == 1) {
dcy's avatar
dcy committed
504
           if(Number(this.mingServantFrom[0].refund) <= 0 || isNaN(Number(this.mingServantFrom[0].refund))) return this.$message.warning('请输入大于0的金额')
dcy's avatar
dcy committed
505 506 507
          this.form.customerCommissionInfoBaseVOList = this.mingServantFrom
        } else if (this.form.type == 2) {
          if (this.form.darkReturnType == 1) {
dcy's avatar
dcy committed
508
            if(this.darkServantAndProductForm.some(i => i.darkCommission <= 0 || isNaN(i.darkCommission))) return this.$message.warning('请输入大于0的金额')
dcy's avatar
dcy committed
509 510
            this.form.customerCommissionInfoBaseVOList = this.darkServantAndProductForm
          } else {
511
            if(this.darkServantAndRebateForm.some(i => i.amount <= 0 ||isNaN(Number(i.amount)) || i.refund <=0 ||isNaN(Number(i.refund)))) return this.$message.warning('请输入大于0的金额')
dcy's avatar
dcy committed
512 513 514
            this.form.customerCommissionInfoBaseVOList = this.darkServantAndRebateForm
          }
        } else if (this.form.type == 3) {
515
          if(this.mingServantAnddarkServant[0].darkAdjustCommission <= 0 || isNaN(Number(this.mingServantAnddarkServant[0].darkAdjustCommission)) || this.mingServantAnddarkServant[0].refund <= 0 || isNaN(Number(this.mingServantAnddarkServant[0].refund))) return this.$message.warning('请输入大于0的金额')
dcy's avatar
dcy committed
516
          this.form.customerCommissionInfoBaseVOList = this.mingServantAnddarkServant
dcy's avatar
dcy committed
517
        }
dcy's avatar
dcy committed
518 519 520 521
        if(this.$route.params.dictId == 0){
          createCommission(this.form).then(r =>{
            console.log('添加',r)
            if(r.code == 0){
dcy's avatar
dcy committed
522
              this.$message.success(this.$t('添加成功!'));
523
              this.$tab.closeOpenPage({path:'/customer/customerCommission'});
dcy's avatar
dcy committed
524 525 526 527 528 529 530 531 532 533 534
            }
          })
        }else {
          let p = {
            id :this.id,
            customerCommissionInfoBaseVOList:this.form.customerCommissionInfoBaseVOList
          }
          p.customerCommissionInfoBaseVOList.forEach(item => {item.commissionId = this.$route.params.dictId})
          updateCustomerCommissionInfo(p).then(r=>{
            if(r.code == 0){
              this.$router.go(-1)
dcy's avatar
dcy committed
535
              this.$message.success(this.$t('修改成功!'));
dcy's avatar
dcy committed
536 537 538 539
            }
          })
        }

dcy's avatar
dcy committed
540
      })
dcy's avatar
dcy committed
541
    },
dcy's avatar
dcy committed
542 543 544 545
    // 商品类型
    getItemType() {
      itemTypeListApi().then(res => {
        if (res.code === 0) {
dcy's avatar
dcy committed
546
          this.commodityType = res.data;
dcy's avatar
dcy committed
547
          if(this.$route.params.dictId == 0 || (this.form.type == 2 && this.form.darkReturnType != 1)){
dcy's avatar
dcy committed
548
            this.darkServantAndProductForm.forEach(item =>{item.productAttr = 0})
dcy's avatar
dcy committed
549
          }
dcy's avatar
dcy committed
550 551
        }
      })
552
    },
dcy's avatar
dcy committed
553 554 555 556 557
    //商品属性
    productAttrFn(){
      commodityList().then(res => {
        this.commodity = res.data
        if(this.$route.params.dictId == 0 || (this.form.type == 2 && this.form.darkReturnType != 1)){
dcy's avatar
dcy committed
558
          this.darkServantAndProductForm.forEach(item=>{item.productType = 0})
dcy's avatar
dcy committed
559 560
        }
      })
dcy's avatar
dcy committed
561 562 563 564 565 566
    },
    onContactChoose(val){
      this.customerNameShow = false;
      this.customerName = val.customerName;
      this.form.customerId = val.customerId;

dcy's avatar
dcy committed
567 568 569 570 571 572 573 574 575 576 577 578
    }
  },
  watch:{
    form:{
      handler(val){
      if(this.isSubmit){
        this.$refs.form.validate()
      }
      },
      deep:true,
    },
    'form.transportId':function (val){
dcy's avatar
dcy committed
579
            if(this.weightList.length === 0 || !val) return
dcy's avatar
dcy committed
580
            if((val == 1 || val == 2)){
581
           let index =  this.weightList.findIndex(item => item.id == 7);
dcy's avatar
dcy committed
582
              this.mingServantFrom.forEach(item =>{
583
                item.refundUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
584 585
              })
              this.mingServantAnddarkServant.forEach(item =>{
586 587
                item.refundUnit =parseInt(this.weightList[index].id);
                item.darkAdjustUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
588 589
              })
              this.darkServantAndRebateForm.forEach(item =>{
590
                item.refundUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
591 592
              })
              this.darkServantAndProductForm.forEach(item =>{
593
                item.darkUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
594 595
              })
            }else {
596
              let index =  this.weightList.findIndex(item => item.id == 6);
dcy's avatar
dcy committed
597
              this.mingServantFrom.forEach(item =>{
598
                item.refundUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
599 600
              })
              this.mingServantAnddarkServant.forEach(item =>{
601 602
                item.refundUnit = parseInt( this.weightList[index].id);
                item.darkAdjustUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
603 604
              })
              this.darkServantAndRebateForm.forEach(item =>{
605
                item.refundUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
606 607
              })
              this.darkServantAndProductForm.forEach(item =>{
608
                item.darkUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
609 610 611 612
              })
            }

}
dcy's avatar
dcy committed
613 614 615
  }
};
</script>
616
<style lang="scss" scoped>
dcy's avatar
dcy committed
617 618 619 620 621 622 623 624 625 626
.mingServantAndDarkServant {
  margin-top: 10px;
  .box {
    display: flex;
    align-items: center;
    .label {
      vertical-align: middle;
      font-size: 14px;
      color: #606266;
      font-weight: 700;
dcy's avatar
dcy committed
627
      width: 100px;
dcy's avatar
dcy committed
628 629 630 631 632 633 634 635 636 637 638 639 640
    }

    .content {
      display: flex;
      align-items: center;

      .item {
        margin-right: 20px;
      }
    }
  }

  .title {
dcy's avatar
dcy committed
641
    margin: 25px 0;
dcy's avatar
dcy committed
642
    text-align: left;
dcy's avatar
dcy committed
643 644
    .label {
      vertical-align: middle;
dcy's avatar
dcy committed
645
      font-size: 16px;
dcy's avatar
dcy committed
646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690
      color: #606266;
      font-weight: 700;
    }
  }
}
.ming-servant {
  display: flex;
  align-items: center;

  .label {
    width: 50px;
    white-space: nowrap;
    vertical-align: middle;
    font-size: 14px;
    color: #606266;
    font-weight: 700;
  }

  .content {
    display: flex;

    div {
      margin-right: 10px;
    }

  }
}

.shanping-type {
  display: flex;

  .tool {
    width: 150px;
  }

  .box {
    margin-left: 20px;
    display: flex;

    .label {
      width: 80px;
      vertical-align: middle;
      font-size: 14px;
      color: #606266;
      font-weight: 700;
dcy's avatar
dcy committed
691
      text-align: left;
dcy's avatar
dcy committed
692 693 694 695 696 697 698 699 700 701 702 703 704 705 706
    }

    .custom {
      width: 150px;
      margin-right: 10px;
    }
  }
}

.column {
  div {
    display: flex;
    align-items: center;

    .label {
dcy's avatar
dcy committed
707
      width: 26px;
dcy's avatar
dcy committed
708 709 710 711 712
      white-space: nowrap;
      vertical-align: middle;
      font-size: 14px;
      color: #606266;
      font-weight: 700;
dcy's avatar
dcy committed
713
      width: 100px;
dcy's avatar
dcy committed
714 715 716 717 718 719 720 721 722 723
    }
  }

  .content {
    display: flex;
    align-items: center;
    margin-right: 10px;

    .item {
      text-align: right;
dcy's avatar
dcy committed
724
      width: 130px;
dcy's avatar
dcy committed
725 726 727 728 729 730 731 732 733
      margin: 0 5px;
    }

    .label {
      width: 50px;
    }
  }

}
734
</style>