index.vue 30.6 KB
Newer Older
dcy's avatar
dcy committed
1 2
<template>
  <div class="app-container">
dcy's avatar
dcy committed
3
    <el-form  :disabled="$route.params.dictId != 0" class="demo-ruleForm" label-position="left" label-width="110px" :rules="rules" :model="form" ref="form" >
dcy's avatar
dcy committed
4 5 6
      <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 :disabled="true"  :placeholder="$t('请输入选择客户')" v-model="customerName"></el-input>
dcy's avatar
dcy committed
11
                <img v-if="$route.params.dictId == 0" style="width: 40px;height: 40px;margin-left: 40px;" src="@/assets/images/phonebook.png" class="phonebook" @click="customerNameShow= true" />
dcy's avatar
dcy committed
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
              </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
                <div>
我在何方's avatar
我在何方 committed
103 104 105 106 107
                  <el-select v-model="mingServantFrom[0].refundCurrency">
                    <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
                  </el-select>
<!--                  <custom-selectors-dictionary v-model="mingServantFrom[0].refundCurrency"
                                               :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
108
                </div>
dcy's avatar
dcy committed
109
                <div>
dcy's avatar
dcy committed
110

dcy's avatar
dcy committed
111 112
                  <custom-selectors-dictionary v-model="mingServantFrom[0].refundUnit" label-key="titleZh" value-key="id"
                                               :options="weightList"></custom-selectors-dictionary>
dcy's avatar
dcy committed
113 114 115
                </div>
              </div>
            </div>
dcy's avatar
dcy committed
116
            <el-form v-if="form.type == 2 && form.darkReturnType == 1" :disabled="$route.params.dictId != 0">
dcy's avatar
dcy committed
117
              <el-form-item :label="$t('商品类型')" v-for="(item,index) in darkServantAndProductForm" :key="index">
dcy's avatar
dcy committed
118 119
                <div class="shanping-type">
                  <div class="tool">
dcy's avatar
dcy committed
120
                    <custom-selectors-dictionary :all-show="true" v-model="item.productType" :options="productAttrList" label-key="titleZh"
dcy's avatar
dcy committed
121 122 123 124
                                                 value-key="id"></custom-selectors-dictionary>
                  </div>
                  <div class="box">
                    <div class="label">
dcy's avatar
dcy committed
125
                      {{$t('商品特性')}}
dcy's avatar
dcy committed
126 127
                    </div>
                    <div class="custom">
dcy's avatar
dcy committed
128
                      <custom-selectors-dictionary :all-show="true" v-model="item.productAttr" label-key="attrName" value-key="id"
dcy's avatar
dcy committed
129 130 131 132 133
                                                   :options="commodityType"></custom-selectors-dictionary>
                    </div>
                  </div>
                  <div class="box">
                    <div class="label">
dcy's avatar
dcy committed
134
                      {{$t('佣金')}}
dcy's avatar
dcy committed
135 136 137 138 139
                    </div>
                    <div class="custom">
                      <el-input v-model="item.darkCommission"></el-input>
                    </div>
                    <div class="custom">
我在何方's avatar
我在何方 committed
140 141 142 143 144
                      <el-select v-model="item.darkCurrency">
                        <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
                      </el-select>
<!--                      <custom-selectors-dictionary v-model="item.darkCurrency"
                                                   :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
145 146 147 148 149 150 151
                    </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
152
                    <el-button type="primary" @click="addToFn(1)" v-if="darkServantAndProductForm.length - 1 === index">{{$t('添加')}}</el-button>
dcy's avatar
dcy committed
153
                  </div>
dcy's avatar
dcy committed
154
                </div>
dcy's avatar
dcy committed
155 156 157 158 159
              </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
160
                 {{$t(' 佣金:')}}
dcy's avatar
dcy committed
161
                </div>
dcy's avatar
dcy committed
162
                <div class="content">
dcy's avatar
dcy committed
163
                  <div class="item label">{{$t('')}}</div>
dcy's avatar
dcy committed
164 165 166 167
                  <div class="item">
                    <el-input v-model="item.amount"></el-input>
                  </div>
                  <div class="item">
我在何方's avatar
我在何方 committed
168 169 170 171 172
                    <el-select v-model="item.amountCurrency">
                      <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="item.amountCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
173 174 175 176 177
                  </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
178
                </div>
dcy's avatar
dcy committed
179
                <div class="content">
dcy's avatar
dcy committed
180
                  <div class="item label">{{$t('')}}</div>
dcy's avatar
dcy committed
181 182 183 184
                  <div class="item">
                    <el-input v-model="item.refund"></el-input>
                  </div>
                  <div class="item">
我在何方's avatar
我在何方 committed
185 186 187 188 189
                    <el-select v-model="item.refundCurrency">
                      <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="item.refundCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
190 191 192 193 194 195
                  </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
196
                <el-button type="primary" @click="addToFn(2)" v-show="darkServantAndRebateForm.length -1 === index">{{$t('添加')}}</el-button>
dcy's avatar
dcy committed
197 198
              </div>
            </div>
dcy's avatar
dcy committed
199 200
            <div class="mingServantAndDarkServant" v-if="form.type == 3">
              <div class="box">
dcy's avatar
dcy committed
201
                <div class="label">{{$t('暗佣佣金')}}</div>
dcy's avatar
dcy committed
202 203 204 205 206
                <div class="content">
                  <div class="item">
                    <el-input v-model="mingServantAnddarkServant[0].refund"></el-input>
                  </div>
                  <div class="item">
我在何方's avatar
我在何方 committed
207 208 209 210 211
                    <el-select v-model="mingServantAnddarkServant[0].refundCurrency">
                      <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].refundCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
212 213 214 215 216
                  </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
217
                </div>
dcy's avatar
dcy committed
218 219
              </div>
              <div class="title">
dcy's avatar
dcy committed
220
                <span class="label">{{$t('成本价 = 原价-暗佣佣金')}}</span>
dcy's avatar
dcy committed
221 222
              </div>
              <div class="box">
dcy's avatar
dcy committed
223
                <div class="label">{{$t('销售价上调')}}</div>
dcy's avatar
dcy committed
224 225 226 227 228
                <div class="content">
                  <div class="item">
                    <el-input v-model="mingServantAnddarkServant[0].darkAdjustCommission"></el-input>
                  </div>
                  <div class="item">
我在何方's avatar
我在何方 committed
229 230 231 232 233
                    <el-select v-model="mingServantAnddarkServant[0].darkAdjustCurrency">
                      <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].darkAdjustCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
234 235 236 237 238
                  </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
239 240
                </div>
              </div>
dcy's avatar
dcy committed
241
              <div class="title">
dcy's avatar
dcy committed
242
                <span class="label">{{$t(' 实际佣金返点 = 销售价-成本价')}}</span>
dcy's avatar
dcy committed
243
              </div>
dcy's avatar
dcy committed
244
            </div>
dcy's avatar
dcy committed
245 246 247
          </el-col>
        </el-row>
        <el-row>
dcy's avatar
dcy committed
248
          <el-col :span="12" style="margin-top: 20px" v-if="$route.params.dictId == 0">
dcy's avatar
dcy committed
249
            <el-button style="width:200px;margin: 0 40px" type="primary" @click="submitForm">{{$t('确定')}}</el-button>
dcy's avatar
dcy committed
250
            <el-button  style="width:200px" @click="cancel">{{$t('取消')}}</el-button>
dcy's avatar
dcy committed
251 252 253
          </el-col>
        </el-row>
      </el-card>
dcy's avatar
dcy committed
254
    </el-form>
dcy's avatar
dcy committed
255 256 257 258 259
    <el-row>
      <el-col :span="12" style="margin-top: 20px" v-if="$route.params.dictId != 0">
        <el-button  style="width:200px" type="primary" @click="cancel">{{$t('取消')}}</el-button>
      </el-col>
    </el-row>
dcy's avatar
dcy committed
260
    <choose-contact-dialog v-if="customerNameShow"  @choose="onContactChoose"   @close="customerNameShow = false" />
dcy's avatar
dcy committed
261 262 263 264
  </div>
</template>

<script>
265
import {
dcy's avatar
dcy committed
266
  itemTypeListApi,
dcy's avatar
dcy committed
267
  customerDropDownList, commodityList,createCommission,getCustomerCommission,commissionGetByCustomerId,updateCustomerCommissionInfo
dcy's avatar
dcy committed
268

269 270 271
} from "@/api/ecw/customerCommissionInfo";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import customSelectorsDictionary from "./customSelectorsDictionary"
dcy's avatar
dcy committed
272
import {getTradeCityList} from "@/api/ecw/region";
dcy's avatar
dcy committed
273
import RoutersSelector from "@/components/RoutersSelector"
dcy's avatar
dcy committed
274
import CustomersSelector from "@/components/CustomersSelector";
275
import {getUnitList} from "@/api/ecw/unit";
dcy's avatar
dcy committed
276 277
import ChooseContactDialog from '@/components/ChooseContactDialog'
import {getProductTypeList} from "@/api/ecw/productType";
我在何方's avatar
我在何方 committed
278 279
import { getCurrencyPage } from "@/api/ecw/currency";

dcy's avatar
dcy committed
280 281 282
export default {
  name: "CustomerCommissionInfo",
  components: {
dcy's avatar
dcy committed
283
    customSelectorsDictionary,
dcy's avatar
dcy committed
284
    RoutersSelector,
dcy's avatar
dcy committed
285 286
    CustomersSelector,
    ChooseContactDialog
dcy's avatar
dcy committed
287
  },
288 289 290
  props:{
    id:[Number,String]//佣金编号id
  },
dcy's avatar
dcy committed
291 292
  data() {
    return {
dcy's avatar
dcy committed
293 294
      customerName:undefined,
      customerNameShow:false,
dcy's avatar
dcy committed
295
      value: '',
dcy's avatar
dcy committed
296
      isSubmit:false,
297 298
      getDictDatas,
      DICT_TYPE,
dcy's avatar
dcy committed
299 300
      commodityType: [],
      tradeCityList: [],
dcy's avatar
dcy committed
301
      // 表单参数
dcy's avatar
dcy committed
302
      form: {
dcy's avatar
dcy committed
303
        approval: -1,//	产品备案
dcy's avatar
dcy committed
304 305
        customerCommissionInfoBaseVOList: [],//	佣金详情
        customerId: undefined,//客户id
dcy's avatar
dcy committed
306 307 308 309 310 311
        customsType: -1,//报关类别:我司全代:1,自单代报:2,混合报关:3
        darkReturnType:undefined,//	暗佣类型 1产品2达标
        departureId: -1,//	始发地id
        objectiveId: -1 ,//目的地id
        transportId:-1,//运输方式
        type: undefined,//	佣金类型
dcy's avatar
dcy committed
312
      },
dcy's avatar
dcy committed
313 314 315
      //明佣
      mingServantFrom: [
        {
316
          refund: '',
我在何方's avatar
我在何方 committed
317
          refundCurrency:null,
318
          refundUnit:undefined,
dcy's avatar
dcy committed
319 320 321 322 323
        }
      ],
      //暗佣金+产品
      darkServantAndProductForm: [
        {
324 325
          productType:-1,//商品类型
          productAttr:-1,//暗佣 产品属性
dcy's avatar
dcy committed
326
          darkCommission: '',//暗佣 佣金
我在何方's avatar
我在何方 committed
327
          darkCurrency: null,//	暗佣 货币
328
          darkUnit:undefined,//	暗佣 单位
dcy's avatar
dcy committed
329 330
        }
      ],
dcy's avatar
dcy committed
331
      //暗佣+达标返佣
dcy's avatar
dcy committed
332 333
      darkServantAndRebateForm: [
        {
334
          amount: '',//	暗佣-满减金额
我在何方's avatar
我在何方 committed
335
          amountCurrency:null,//	暗佣-满减金额对应货币
336
          amountUnit:undefined,//	暗佣-满减金额对应单位,
337
          refund: '',//暗佣-满之后返还金额
我在何方's avatar
我在何方 committed
338
          refundCurrency:null,//暗佣-满之后返还金额的货币
339
          refundUnit:undefined,//暗佣-满之后返还金额的单位
dcy's avatar
dcy committed
340 341 342 343 344
        }
      ],
      //暗佣+明金
      mingServantAnddarkServant: [
        {
345
          refund: '',//	暗佣+明佣 上调金额
我在何方's avatar
我在何方 committed
346
          refundCurrency: null,//	暗佣+明佣 上调对应的货币
347
          refundUnit: undefined,//暗佣+明佣 上调对应的单位
348
          darkAdjustCommission: '',//暗佣+明佣 上调金额
我在何方's avatar
我在何方 committed
349
          darkAdjustCurrency: null,//暗佣+明佣 上调对应的货币
350
          darkAdjustUnit:undefined,//暗佣+明佣 上调对应的单位
dcy's avatar
dcy committed
351 352 353 354 355 356 357
        }
      ],
      customerForm: {
        defaultContactName: undefined,
        defaultContactPhone: undefined,
        name: undefined,
        number: undefined,
dcy's avatar
dcy committed
358
      },
dcy's avatar
dcy committed
359 360
      customeList: [],
      commodity: [],
dcy's avatar
dcy committed
361 362
      // 表单校验
      rules: {
dcy's avatar
dcy committed
363
        customerId: [{required: true, message: this.$t('客户名称不能为空'), trigger: "blur"}],
dcy's avatar
dcy committed
364
      },
dcy's avatar
dcy committed
365
      customerShow: true,
dcy's avatar
dcy committed
366
      weightList:[],
我在何方's avatar
我在何方 committed
367 368 369 370 371 372
      productAttrList:[],
      params: {
        page: 1,
        rows: 20,
      },
      currencyList:[]
dcy's avatar
dcy committed
373 374
    };
  },
dcy's avatar
dcy committed
375 376 377 378 379 380 381 382
  computed:{
    importCityList(){
      return this.tradeCityList.filter(item => item.type == 1)
    },
    exportCityList(){
      return this.tradeCityList.filter(item => item.type == 2)
    },
  },
dcy's avatar
dcy committed
383
  created() {
dcy's avatar
dcy committed
384 385
    this.form.darkReturnType = parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_DARK_TYPE)[0].value);
    this.form.type = parseInt(this.getDictDatas(this.DICT_TYPE.COMMISSION_TYPE)[1].value);
dcy's avatar
dcy committed
386
    getProductTypeList().then(response => {
dcy's avatar
dcy committed
387
      // console.log(response.data,'response.data')
dcy's avatar
dcy committed
388 389
      this.productAttrList = response.data
    })
我在何方's avatar
我在何方 committed
390 391 392 393 394 395 396 397 398 399
    getCurrencyPage(this.params).then(res => {
      this.currencyList = res.data.list
      var id = this.currencyList[0].id
      this.mingServantFrom[0].refundCurrency = id
      this.darkServantAndProductForm[0].darkCurrency = id
      this.darkServantAndRebateForm[0].amountCurrency = id
      this.darkServantAndRebateForm[0].darkAdjustCurrency = id

      this.mingServantAnddarkServant[0].refundCurrency = id
      this.mingServantAnddarkServant[0].darkAdjustCurrency = id
dcy's avatar
dcy committed
400 401 402 403 404
      //重量单位
      getUnitList().then(r =>{
        if(r.code === 0){
          this.weightList = r.data
          this.$set(this.mingServantFrom, 0, {
405
            refund: '',
我在何方's avatar
我在何方 committed
406
            refundCurrency:parseInt(this.currencyList[0].id),
dcy's avatar
dcy committed
407 408 409
            refundUnit: parseInt(r.data[0].id)})
          this.$set(this.darkServantAndProductForm, 0,
            {
410 411
              productType: -1,//商品类型
              productAttr: -1,//暗佣 产品属性
dcy's avatar
dcy committed
412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450
              darkCommission: '',//暗佣 佣金
              darkCurrency: parseInt(this.currencyList[0].id),//	暗佣 货币
              darkUnit: parseInt(this.weightList[0].id),//	暗佣 单位
            })
          this.$set(this.darkServantAndRebateForm, 0,
            {
              amount: '',//	暗佣-满减金额
              amountCurrency:parseInt(this.currencyList[0].id),//	暗佣-满减金额对应货币
              amountUnit:parseInt (this.weightList[0].id),//	暗佣-满减金额对应单位,
              refund: '',//暗佣-满之后返还金额
              refundCurrency:parseInt(this.currencyList[0].id),//暗佣-满之后返还金额的货币
              refundUnit:parseInt(this.weightList[0].id),//暗佣-满之后返还金额的单位
            })
          this.$set(this.mingServantAnddarkServant, 0,
            {
              refund: '',//	暗佣+明佣 上调金额
              refundCurrency: parseInt(this.currencyList[0].id),//	暗佣+明佣 上调对应的货币
              refundUnit: parseInt(this.weightList[0].id),//暗佣+明佣 上调对应的单位
              darkAdjustCommission: '',//暗佣+明佣 上调金额
              darkAdjustCurrency: parseInt(this.currencyList[0].id),//暗佣+明佣 上调对应的货币
              darkAdjustUnit:parseInt(this.weightList[0].id),//暗佣+明佣 上调对应的单位
            })
          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.customerName = p.customerName
              }
451 452
              getCustomerCommission(this.id).then(r =>{
                // console.log(r,'客户佣金详情',);
dcy's avatar
dcy committed
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472
                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
                }
              })
            })
dcy's avatar
dcy committed
473
          }
dcy's avatar
dcy committed
474
        }
dcy's avatar
dcy committed
475
      })
dcy's avatar
dcy committed
476
    })
dcy's avatar
dcy committed
477

dcy's avatar
dcy committed
478
    this.getCustomeList();
dcy's avatar
dcy committed
479
    this.getItemType();
dcy's avatar
dcy committed
480 481
    this.productAttrFn();

dcy's avatar
dcy committed
482 483
    getTradeCityList().then(res => {
      this.tradeCityList = res.data
dcy's avatar
dcy committed
484
    })
dcy's avatar
dcy committed
485 486
  },
  methods: {
dcy's avatar
dcy committed
487 488
    // /** 查询列表客户*/
    getCustomeList() {
dcy's avatar
dcy committed
489 490 491
      customerDropDownList(this.customerForm).then(res => {
        if (res.code === 0) {
          this.customeList = res.data
dcy's avatar
dcy committed
492 493 494
        }
      })
    },
dcy's avatar
dcy committed
495
    remoteMethod(val) {
dcy's avatar
dcy committed
496
      this.customerForm.name = val;
dcy's avatar
dcy committed
497
    },
498 499 500
    // changefn(val){
    //   this.form.customerId = val;
    // },
dcy's avatar
dcy committed
501 502
    /** 取消按钮 */
    cancel() {
dcy's avatar
dcy committed
503
      this.$tab.closeOpenPage({path:'/customer/customerCommission'});
dcy's avatar
dcy committed
504 505 506 507
    },
    /** 表单重置 */
    reset() {
      this.form = {
dcy's avatar
dcy committed
508 509 510
        approval: undefined,
        customerCommissionInfoBaseVOList: [],
        customerId: undefined,//客户id
dcy's avatar
dcy committed
511
        customsType: '',//报关类别:我司全代:1,自单代报:2,混合报关:3
dcy's avatar
dcy committed
512
        darkReturnType: this.getDictDatas(this.DICT_TYPE.COMMISSION_DARK_TYPE)[0].value,//	暗佣类型 1产品2达标
dcy's avatar
dcy committed
513 514
        departureId: '',//	始发地id
        objectiveId: '',//	运输方式
dcy's avatar
dcy committed
515
        type: this.getDictDatas(this.DICT_TYPE.COMMISSION_TYPE)[1].value,//	佣金类型
dcy's avatar
dcy committed
516 517 518
      };
      this.resetForm("form");
    },
dcy's avatar
dcy committed
519 520 521
    //添加多条
    addToFn(val){
      if(val === 1){
dcy's avatar
dcy committed
522
         this.darkServantAndProductForm.push({
523 524
           productType:-1,//商品类型
           productAttr:-1,//暗佣 产品属性
525
           darkCommission: '',//暗佣 佣金
我在何方's avatar
我在何方 committed
526
           darkCurrency: parseInt(this.currencyList[0].id),//	暗佣 货币
dcy's avatar
dcy committed
527
           darkUnit:this.darkServantAndProductForm[0].darkUnit,//	暗佣 单位
dcy's avatar
dcy committed
528 529 530
         })
      }else {
        this.darkServantAndRebateForm.push( {
531
          amount: '',//	暗佣-满减金额
我在何方's avatar
我在何方 committed
532
          amountCurrency:parseInt(this.currencyList[0].id),//	暗佣-满减金额对应货币
533
          amountUnit: parseInt(this.weightList[0].id),//	暗佣-满减金额对应单位,
534
          refund: '',//暗佣-满之后返还金额
我在何方's avatar
我在何方 committed
535
          refundCurrency: parseInt(this.currencyList[0].id),//暗佣-满之后返还金额的货币
dcy's avatar
dcy committed
536
          refundUnit: this.darkServantAndRebateForm[0].refundUnit,//暗佣-满之后返还金额的单位
dcy's avatar
dcy committed
537 538
        })
      }
dcy's avatar
dcy committed
539 540 541
    },
    /** 提交按钮 */
    submitForm() {
dcy's avatar
dcy committed
542
      this.$refs.form.validate ((valid)=>{
dcy's avatar
dcy committed
543
        this.isSubmit = true;
dcy's avatar
dcy committed
544 545
        if(!valid)return
        if (this.form.type == 1) {
dcy's avatar
dcy committed
546
           if(Number(this.mingServantFrom[0].refund) <= 0 || isNaN(Number(this.mingServantFrom[0].refund))) return this.$message.warning('请输入大于0的金额')
dcy's avatar
dcy committed
547 548 549
          this.form.customerCommissionInfoBaseVOList = this.mingServantFrom
        } else if (this.form.type == 2) {
          if (this.form.darkReturnType == 1) {
dcy's avatar
dcy committed
550
            if(this.darkServantAndProductForm.some(i => i.darkCommission <= 0 || isNaN(i.darkCommission))) return this.$message.warning('请输入大于0的金额')
dcy's avatar
dcy committed
551 552
            this.form.customerCommissionInfoBaseVOList = this.darkServantAndProductForm
          } else {
553
            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
554 555 556
            this.form.customerCommissionInfoBaseVOList = this.darkServantAndRebateForm
          }
        } else if (this.form.type == 3) {
557
          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
558
          this.form.customerCommissionInfoBaseVOList = this.mingServantAnddarkServant
dcy's avatar
dcy committed
559
        }
dcy's avatar
dcy committed
560 561
        if(this.$route.params.dictId == 0){
          createCommission(this.form).then(r =>{
562
            // console.log('添加',r)
dcy's avatar
dcy committed
563
            if(r.code == 0){
dcy's avatar
dcy committed
564
              this.$message.success(this.$t('添加成功!'));
565
              this.$tab.closeOpenPage({path:'/customer/customerCommission'});
dcy's avatar
dcy committed
566 567 568 569 570 571 572 573 574 575
            }
          })
        }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){
dcy's avatar
dcy committed
576
              this.$tab.closeOpenPage({path:'/customer/customerCommission'});
dcy's avatar
dcy committed
577
              this.$message.success(this.$t('修改成功!'));
dcy's avatar
dcy committed
578 579 580 581
            }
          })
        }

dcy's avatar
dcy committed
582
      })
dcy's avatar
dcy committed
583
    },
dcy's avatar
dcy committed
584 585 586 587
    // 商品类型
    getItemType() {
      itemTypeListApi().then(res => {
        if (res.code === 0) {
dcy's avatar
dcy committed
588
          this.commodityType = res.data;
dcy's avatar
dcy committed
589
          if(this.$route.params.dictId == 0 || (this.form.type == 2 && this.form.darkReturnType != 1)){
dcy's avatar
dcy committed
590
            this.darkServantAndProductForm.forEach(item =>{item.productAttr = 0})
dcy's avatar
dcy committed
591
          }
dcy's avatar
dcy committed
592 593
        }
      })
594
    },
dcy's avatar
dcy committed
595 596 597 598 599
    //商品属性
    productAttrFn(){
      commodityList().then(res => {
        this.commodity = res.data
        if(this.$route.params.dictId == 0 || (this.form.type == 2 && this.form.darkReturnType != 1)){
600
          this.darkServantAndProductForm.forEach(item=>{item.productType = -1})
dcy's avatar
dcy committed
601 602
        }
      })
dcy's avatar
dcy committed
603 604 605 606 607 608
    },
    onContactChoose(val){
      this.customerNameShow = false;
      this.customerName = val.customerName;
      this.form.customerId = val.customerId;

dcy's avatar
dcy committed
609 610 611 612 613 614 615 616 617 618 619 620
    }
  },
  watch:{
    form:{
      handler(val){
      if(this.isSubmit){
        this.$refs.form.validate()
      }
      },
      deep:true,
    },
    'form.transportId':function (val){
621
            // console.log('1234567',val,'val');
dcy's avatar
dcy committed
622
            if(this.weightList.length === 0 || !val) return
dcy's avatar
dcy committed
623
            if((val == 1 || val == 2)){
624
           let index =  this.weightList.findIndex(item => item.id == 7);
dcy's avatar
dcy committed
625
              this.mingServantFrom.forEach(item =>{
dcy's avatar
dcy committed
626
                item.refundUnit = parseInt(this.weightList[index].  id);
dcy's avatar
dcy committed
627 628
              })
              this.mingServantAnddarkServant.forEach(item =>{
629 630
                item.refundUnit =parseInt(this.weightList[index].id);
                item.darkAdjustUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
631 632
              })
              this.darkServantAndRebateForm.forEach(item =>{
633
                item.refundUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
634 635
              })
              this.darkServantAndProductForm.forEach(item =>{
636
                item.darkUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
637 638
              })
            }else {
639
              let index =  this.weightList.findIndex(item => item.id == 6);
dcy's avatar
dcy committed
640
              this.mingServantFrom.forEach(item =>{
641
                item.refundUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
642 643
              })
              this.mingServantAnddarkServant.forEach(item =>{
644 645
                item.refundUnit = parseInt( this.weightList[index].id);
                item.darkAdjustUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
646 647
              })
              this.darkServantAndRebateForm.forEach(item =>{
648
                item.refundUnit =parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
649 650
              })
              this.darkServantAndProductForm.forEach(item =>{
651
                item.darkUnit = parseInt(this.weightList[index].id);
dcy's avatar
dcy committed
652 653 654 655
              })
            }

}
dcy's avatar
dcy committed
656 657 658
  }
};
</script>
659
<style lang="scss" scoped>
dcy's avatar
dcy committed
660 661 662 663 664 665 666 667 668 669
.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
670
      width: 100px;
dcy's avatar
dcy committed
671 672 673 674 675 676 677 678 679 680 681 682 683
    }

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

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

  .title {
dcy's avatar
dcy committed
684
    margin: 25px 0;
dcy's avatar
dcy committed
685
    text-align: left;
dcy's avatar
dcy committed
686 687
    .label {
      vertical-align: middle;
dcy's avatar
dcy committed
688
      font-size: 16px;
dcy's avatar
dcy committed
689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733
      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
734
      text-align: left;
dcy's avatar
dcy committed
735 736 737 738 739 740 741 742 743 744 745 746 747 748 749
    }

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

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

    .label {
dcy's avatar
dcy committed
750
      width: 26px;
dcy's avatar
dcy committed
751 752 753 754 755
      white-space: nowrap;
      vertical-align: middle;
      font-size: 14px;
      color: #606266;
      font-weight: 700;
dcy's avatar
dcy committed
756
      width: 100px;
dcy's avatar
dcy committed
757 758 759 760 761 762 763 764 765 766
    }
  }

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

    .item {
      text-align: right;
dcy's avatar
dcy committed
767
      width: 130px;
dcy's avatar
dcy committed
768 769 770 771 772 773 774 775 776
      margin: 0 5px;
    }

    .label {
      width: 50px;
    }
  }

}
777
</style>