index.vue 31.1 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>
11
                <img v-if="$route.params.dictId == 0" style="width: 40px;height: 40px;margin-left: 40px;" src="@/assets/svg/contacts.svg" class="phonebook" @click="customerNameShow= true" />
dcy's avatar
dcy committed
12 13 14 15
              </div>
<!--                <el-select-->
<!--                  v-model="customerForm.name"-->
<!--                  filterable-->
Marcus's avatar
Marcus committed
16
<!--                  :placeholder="$t('请输入关键词')"-->
dcy's avatar
dcy committed
17 18 19 20 21 22 23 24 25 26
<!--                  @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>
邓春圆's avatar
邓春圆 committed
41
                  <custom-selectors-dictionary :all-show="true" :label-key="isChinese ? 'titleZh' : 'titleEn'" 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>
邓春圆's avatar
邓春圆 committed
49
                  <custom-selectors-dictionary :all-show="true" :label-key="isChinese ? 'titleZh' : 'titleEn'" 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
              <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)"
邓春圆's avatar
邓春圆 committed
77
                          :key="index">{{ isChinese ? item.label :item.labelEn }}
dcy's avatar
dcy committed
78 79 80 81 82 83 84
                </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
              <el-radio-group v-model="form.darkReturnType">
                <el-radio v-for="(item,index) in getDictDatas(DICT_TYPE.COMMISSION_DARK_TYPE)" :label="parseInt(item.value)"
邓春圆's avatar
邓春圆 committed
88
                          :key="index">{{ isChinese ? item.label :item.labelEn }}
dcy's avatar
dcy committed
89 90 91 92 93 94 95 96
                </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
                  <el-select v-model="mingServantFrom[0].refundCurrency">
邓春圆's avatar
邓春圆 committed
104
                    <el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" />
我在何方's avatar
我在何方 committed
105 106 107
                  </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

邓春圆's avatar
邓春圆 committed
111
                  <custom-selectors-dictionary v-model="mingServantFrom[0].refundUnit" :label-key="isChinese ? 'titleZh' : 'titleEn'" value-key="id"
dcy's avatar
dcy committed
112
                                               :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">
邓春圆's avatar
邓春圆 committed
120
                    <custom-selectors-dictionary :all-show="true" v-model="item.productType" :options="productAttrList" :label-key="isChinese ? 'titleZh' : 'titleEn'"
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
                      <el-select v-model="item.darkCurrency">
邓春圆's avatar
邓春圆 committed
141
                        <el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh:item.titleEn" :value="item.id" />
我在何方's avatar
我在何方 committed
142 143 144
                      </el-select>
<!--                      <custom-selectors-dictionary v-model="item.darkCurrency"
                                                   :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
145 146
                    </div>
                    <div class="custom">
邓春圆's avatar
邓春圆 committed
147
                      <custom-selectors-dictionary v-model="item.darkUnit" :label-key="isChinese ? 'titleZh' : 'titleEn'" value-key="id"
dcy's avatar
dcy committed
148 149 150 151
                                                   :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
                    <el-select v-model="item.amountCurrency">
邓春圆's avatar
邓春圆 committed
169
                      <el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" />
我在何方's avatar
我在何方 committed
170 171 172
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="item.amountCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
173 174 175
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="item.amountUnit"
邓春圆's avatar
邓春圆 committed
176
                                                 :label-key="isChinese ? 'titleZh' : 'titleEn'" value-key="id" :options="weightList"></custom-selectors-dictionary>
dcy's avatar
dcy committed
177
                  </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
                    <el-select v-model="item.refundCurrency">
邓春圆's avatar
邓春圆 committed
186
                      <el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" />
我在何方's avatar
我在何方 committed
187 188 189
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="item.refundCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
190 191 192
                  </div>
                  <div class="item">
                    <custom-selectors-dictionary v-model="item.refundUnit"
邓春圆's avatar
邓春圆 committed
193
                                                 :label-key="isChinese ? 'titleZh' : 'titleEn'" value-key="id"     :options="weightList"></custom-selectors-dictionary>
dcy's avatar
dcy committed
194 195
                  </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
                    <el-select v-model="mingServantAnddarkServant[0].refundCurrency">
邓春圆's avatar
邓春圆 committed
208
                      <el-option v-for="item in currencyList" :key="item.id"  :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" />
我在何方's avatar
我在何方 committed
209 210 211
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].refundCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
212 213
                  </div>
                  <div class="item">
邓春圆's avatar
邓春圆 committed
214
                    <custom-selectors-dictionary :label-key="isChinese ? 'titleZh' : 'titleEn'" value-key="id" v-model="mingServantAnddarkServant[0].refundUnit"
dcy's avatar
dcy committed
215 216
                                                 :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
                    <el-select v-model="mingServantAnddarkServant[0].darkAdjustCurrency">
邓春圆's avatar
邓春圆 committed
230
                      <el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" />
我在何方's avatar
我在何方 committed
231 232 233
                    </el-select>
<!--                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].darkAdjustCurrency"
                                                 :options="currencyList"></custom-selectors-dictionary> -->
dcy's avatar
dcy committed
234 235
                  </div>
                  <div class="item">
邓春圆's avatar
邓春圆 committed
236
                    <custom-selectors-dictionary v-model="mingServantAnddarkServant[0].darkAdjustUnit" :label-key="isChinese ? 'titleZh' : 'titleEn'" value-key="id"
dcy's avatar
dcy committed
237 238
                                                 :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
  computed:{
邓春圆's avatar
邓春圆 committed
376 377 378
    isChinese(){
      return this.$i18n.locale === 'zh_CN'
    },
dcy's avatar
dcy committed
379 380 381 382 383 384 385
    importCityList(){
      return this.tradeCityList.filter(item => item.type == 1)
    },
    exportCityList(){
      return this.tradeCityList.filter(item => item.type == 2)
    },
  },
dcy's avatar
dcy committed
386
  created() {
dcy's avatar
dcy committed
387 388
    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
389
    getProductTypeList().then(response => {
dcy's avatar
dcy committed
390
      // console.log(response.data,'response.data')
dcy's avatar
dcy committed
391 392
      this.productAttrList = response.data
    })
我在何方's avatar
我在何方 committed
393 394 395 396 397 398 399 400 401 402
    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
403 404 405 406 407
      //重量单位
      getUnitList().then(r =>{
        if(r.code === 0){
          this.weightList = r.data
          this.$set(this.mingServantFrom, 0, {
408
            refund: '',
我在何方's avatar
我在何方 committed
409
            refundCurrency:parseInt(this.currencyList[0].id),
dcy's avatar
dcy committed
410 411 412
            refundUnit: parseInt(r.data[0].id)})
          this.$set(this.darkServantAndProductForm, 0,
            {
413 414
              productType: -1,//商品类型
              productAttr: -1,//暗佣 产品属性
dcy's avatar
dcy committed
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 451 452 453
              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
              }
454
              getCustomerCommission(this.id).then(r =>{
Marcus's avatar
Marcus committed
455
                // console.log(r,this.$t('客户佣金详情'),);
dcy's avatar
dcy committed
456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
                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
476
          }
dcy's avatar
dcy committed
477
        }
dcy's avatar
dcy committed
478
      })
dcy's avatar
dcy committed
479
    })
dcy's avatar
dcy committed
480

dcy's avatar
dcy committed
481
    this.getCustomeList();
dcy's avatar
dcy committed
482
    this.getItemType();
dcy's avatar
dcy committed
483 484
    this.productAttrFn();

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

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

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

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

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

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

  .title {
dcy's avatar
dcy committed
687
    margin: 25px 0;
dcy's avatar
dcy committed
688
    text-align: left;
dcy's avatar
dcy committed
689 690
    .label {
      vertical-align: middle;
dcy's avatar
dcy committed
691
      font-size: 16px;
dcy's avatar
dcy committed
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 734 735 736
      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
737
      text-align: left;
dcy's avatar
dcy committed
738 739 740 741 742 743 744 745 746 747 748 749 750 751 752
    }

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

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

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

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

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

    .label {
      width: 50px;
    }
  }

}
780
</style>