index.vue 26 KB
Newer Older
1 2 3 4 5
<template>
  <div class="app-container">

    <!-- 搜索工作栏 -->
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
dcy's avatar
dcy committed
6
      <el-form-item :label="$t('客户编号')" prop="number">
Marcus's avatar
Marcus committed
7
        <el-input v-model="queryParams.number" :placeholder="$t('请输入客户编号')" clearable @keyup.enter.native="handleQuery"/>
8
      </el-form-item>
dcy's avatar
dcy committed
9
      <el-form-item :label="$t('客户名称')" prop="name">
Marcus's avatar
Marcus committed
10
        <el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery"/>
11
      </el-form-item>
dcy's avatar
dcy committed
12 13 14
      <el-form-item :label="$t('客户等级')" prop="level">
        <el-select clearable  v-model="queryParams.level" :placeholder="$t('请选择客户等级')" clearable size="small">
          <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
15
                     :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
16 17
        </el-select>
      </el-form-item>
dcy's avatar
dcy committed
18 19 20 21
      <el-form-item :label="$t('联系方式')">
        <el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input>
      </el-form-item>
      <el-form-item :label="$t('客户类别')" prop="level">
dcy's avatar
dcy committed
22
        <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE"   v-model="queryParams.type"></dict-selector>
dcy's avatar
dcy committed
23 24 25 26 27
      </el-form-item>
      <el-form-item :label="$t('客户经理')" prop="customerService">
        <el-select clearable  v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
          <el-option v-for="dict in customerServiceList"
                     :key="dict.id" :label="dict.nickname" :value="dict.id"/>
28 29
        </el-select>
      </el-form-item>
dcy's avatar
dcy committed
30 31 32
      <el-form-item :label="$t('客户来源')" prop="source">
        <el-select clearable  v-model="queryParams.source" :placeholder="$t('请选择客户来源')" clearable size="small">
          <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
33
                     :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
34 35
        </el-select>
      </el-form-item>
dcy's avatar
dcy committed
36 37 38
      <el-form-item :label="$t('国家')" prop="source">
        <el-select clearable  v-model="form.country" :placeholder="$t('请选择国家')">
          <el-option v-for="dict in countryList"
39
                     :key="dict.id" :label=" isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" />
40 41
        </el-select>
      </el-form-item>
dcy's avatar
dcy committed
42 43 44
      <el-form-item :label="$t('客户状态')" prop="status">
        <el-select clearable  v-model="queryParams.status" :placeholder="$t('请选择客户状态')" clearable size="small">
          <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
45
                     :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
dcy's avatar
dcy committed
46
        </el-select>
47
      </el-form-item>
dcy's avatar
dcy committed
48
      <el-form-item :label="$t('创建时间')">
49 50
        <el-date-picker clearable  v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
                        type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
dcy's avatar
dcy committed
51 52
      </el-form-item>
      <el-form-item :label="$t('信用等级')" prop="department">
dcy's avatar
dcy committed
53
        <el-select clearable  v-model="queryParams.creditLevel" >
54
          <el-option  v-for="(item,index) in creditList" :label=" isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
dcy's avatar
dcy committed
55
        </el-select>
56
      </el-form-item>
57 58 59
      <el-form-item  :label="$t('市场获客')" prop="department">
        <dict-selector clearable  :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector>
      </el-form-item>
60
      <el-form-item>
dcy's avatar
dcy committed
61 62
        <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
        <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
63 64 65 66 67
      </el-form-item>
    </el-form>

    <!-- 操作工具栏 -->
    <el-row :gutter="10" class="mb8">
68 69
      <el-col :span="1.5">
        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="$router.push({path:'/customer/add-edit/0',query:{isCustomerServiceConfirmed:true,}})"
邓春圆's avatar
邓春圆 committed
70
                   v-hasPermi="['ecw:customer: treat-create']">{{$t('新增')}}</el-button>
71
      </el-col>
72 73
      <el-col :span="1.5">
        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
邓春圆's avatar
邓春圆 committed
74
                   v-hasPermi="['ecw:customer:treat-export']">{{$t('导出')}}</el-button>
75
      </el-col>
76 77 78 79 80
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>

    <!-- 列表 -->
    <el-table v-loading="loading" :data="list">
81 82 83 84 85 86 87
      <el-table-column :label="$t('客户编号')" align="center" prop="number" >
        <template v-slot="{row}">
          <router-link :to="'/customer/query/' + row.id">
            {{row.number}}
          </router-link>
        </template>
      </el-table-column>
88 89
      <el-table-column :label="$t('客户名称')" align="center" prop="name" >
        <template v-slot="{row}">
90
          <p style="display:inline-block;white-space: pre-wrap;">{{$l(row, 'name')}}</p>
91 92
        </template>
      </el-table-column>
dcy's avatar
dcy committed
93
      <el-table-column :label="$t('客户等级')" align="center" prop="vipLevelNameZh">
94 95 96 97
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
        </template>
      </el-table-column>
邓春圆's avatar
邓春圆 committed
98
      <el-table-column :label="$t('信用等级')" :prop="isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"></el-table-column>
dcy's avatar
dcy committed
99
      <el-table-column :label="$t('客户状态')" align="center" prop="status">
100 101 102 103
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" />
        </template>
      </el-table-column>
dcy's avatar
dcy committed
104
      <el-table-column :label="$t('主联系人')" prop="defaultContactName"></el-table-column>
dcy's avatar
dcy committed
105 106 107
      <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">
         <template v-slot="{row}">{{row.defaultContactPhone}}</template>
      </el-table-column>
dcy's avatar
dcy committed
108
      <el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
109 110 111 112
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.createTime) }}</span>
        </template>
      </el-table-column>
houjn@hikoon.cn's avatar
houjn@hikoon.cn committed
113 114 115 116 117
      <el-table-column :label="$t('分配时间')" align="center" prop="createTime" width="180">
        <template  v-slot = {row}>
          <span>{{ parseTime(row.customerServiceAssignedTime ) }}</span>
        </template>
      </el-table-column>
邓春圆's avatar
邓春圆 committed
118
      <el-table-column :label="$t('客户经理')" align="center" prop="customerServiceName">
dcy's avatar
dcy committed
119 120
      </el-table-column>
      <el-table-column :label="$t('国家')" align="center" prop="country" :formatter="countryFormatter"></el-table-column>
dcy's avatar
dcy committed
121
      <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
122
        <template slot-scope="scope">
dcy's avatar
dcy committed
123
          <el-button size="mini" type="text"  @click="handleConfirmService(scope.row)"
邓春圆's avatar
邓春圆 committed
124
                     v-hasPermi="['ecw:customer:treat-accept']">{{$t('确认接收')}}</el-button>
dcy's avatar
dcy committed
125
          <el-button size="mini" type="text"  @click="handOver(scope.row)"
邓春圆's avatar
邓春圆 committed
126
                     v-hasPermi="['ecw:customer:treat-transfer']">{{$t('移交')}}</el-button>
dcy's avatar
dcy committed
127
           <router-link style="margin: 0 10px;" to="/offer/create">
邓春圆's avatar
邓春圆 committed
128
             <el-button v-has-permi="['ecw:customer:treat-quoted-price']"  size="mini" type="text">
dcy's avatar
dcy committed
129 130 131
               {{$t('报价')}}
             </el-button>
           </router-link>
dcy's avatar
dcy committed
132
          <el-button size="mini" type="text"   @click="handleUpdate(scope.row)"
邓春圆's avatar
邓春圆 committed
133
                     v-hasPermi="['ecw:customer:treat-perfect']">{{$t('完善')}}</el-button>
134 135 136 137 138 139 140 141 142 143 144 145
        </template>
      </el-table-column>
    </el-table>
    <!-- 分页组件 -->
    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
                @pagination="getList"/>

    <!-- 对话框(添加 / 修改) -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">

        <el-col :span="12">
dcy's avatar
dcy committed
146 147
          <el-form-item :label="$t('客户名称')" prop="name">
            <el-input v-model="form.name" :placeholder="$t('请输入客户名称')" />
148 149 150
          </el-form-item>
        </el-col>
        <el-col :span="12">
Marcus's avatar
Marcus committed
151
          <el-form-item :label="$t('国家')" prop="country">
dcy's avatar
dcy committed
152
            <el-select v-model="form.country" :placeholder="$t('请选择国家')">
153 154 155 156 157 158
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
                         :key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
159 160
          <el-form-item :label="$t('客户等级')" prop="level">
            <el-select v-model="form.level" :placeholder="$t('请选择客户等级')">
161
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
162
                         :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
163 164 165 166
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
167 168
          <el-form-item :label="$t('所属代理')" prop="agentId">
            <el-select v-model="form.agentId" :placeholder="$t('请选择所属代理')">
169
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
170
                         :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
171 172 173 174
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
175 176
          <el-form-item :label="$t('联系地址')" prop="address">
            <el-input v-model="form.address" :placeholder="$t('请输入联系地址')" />
177 178 179
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
180 181
          <el-form-item :label="$t('客户类别')" prop="type">
            <el-select v-model="form.type" :placeholder="$t('请选择客户类别')">
182
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
183
                         :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />
184 185 186 187
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
188 189 190
          <el-form-item :label="$t('常用提货网点')" prop="pickupPoint">
            <el-select v-model="form.pickupPoint" :placeholder="$t('请输入常用提货网点')">
              <el-option :label="$t('请选择字典生成')" value="" />
191 192 193 194 195
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">

dcy's avatar
dcy committed
196 197
          <el-form-item :label="$t('公司名称')" prop="company">
            <el-input v-model="form.company" :placeholder="$t('请输入公司名称')" />
198 199 200 201
          </el-form-item>
        </el-col>
        <el-col :span="12">

dcy's avatar
dcy committed
202 203
          <el-form-item :label="$t('客户生日')" prop="birthday">
            <el-input v-model="form.birthday" :placeholder="$t('请输入客户生日')" />
204 205 206
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
207 208 209
          <el-form-item :label="$t('产品类型')" prop="productType">
            <el-select v-model="form.productType" :placeholder="$t('请选择产品类型')">
              <el-option :label="$t('请选择字典生成')" value="" />
210 211
            </el-select>
          </el-form-item>
dcy's avatar
dcy committed
212 213
          <el-form-item :label="$t('产品id')" prop="productId">
            <el-input v-model="form.productId" :placeholder="$t('请输入产品id')" />
214 215 216 217
          </el-form-item>
        </el-col>
        <el-col :span="12">

dcy's avatar
dcy committed
218 219
          <el-form-item :label="$t('客户来源')" prop="source">
            <el-select v-model="form.source" :placeholder="$t('请选择客户来源')">
220
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
221
                         :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
222 223 224 225 226
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">

dcy's avatar
dcy committed
227 228
          <el-form-item :label="$t('结算方式')" prop="balance">
            <el-select v-model="form.balance" :placeholder="$t('请选择结算方式')">
229
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
230
                         :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
231 232 233 234 235
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">

dcy's avatar
dcy committed
236 237
          <el-form-item :label="$t('客户经理')" prop="customerService">
            <el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')">
238 239
              <el-option v-for="dict in serviceStaffOptions"
                         :key="dict.id" :label="dict.nickname" :value="dict.id" />
240 241 242 243 244
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">

dcy's avatar
dcy committed
245 246
          <el-form-item :label="$t('图片')" prop="picture">
            <el-input v-model="form.picture" :placeholder="$t('请输入图片')" />
247 248 249 250
          </el-form-item>

        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
251 252
          <el-form-item :label="$t('客户状态')" prop="status">
            <el-select v-model="form.status" :placeholder="$t('请选择客户状态')">
253
              <el-option v-for="dict in this.getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
254
                         :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
255 256 257 258
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
259 260
          <el-form-item :label="$t('推介人')" prop="promoter">
            <el-input v-model="form.promoter" :placeholder="$t('请输入推介人')" />
261 262 263
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
264 265
          <el-form-item :label="$t('创建人')" prop="founder">
            <el-input v-model="form.founder" :placeholder="$t('请输入创建人')" />
266 267 268
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
269 270
          <el-form-item :label="$t('创建时间')" prop="founder">
            <el-input v-model="form.founder" :placeholder="$t('请输入创建人')" />
271 272 273
          </el-form-item>
        </el-col>
        <el-col :span="12">
dcy's avatar
dcy committed
274 275
          <el-form-item :label="$t('备注')" prop="remarks">
            <el-input v-model="form.remarks" :placeholder="$t('请输入备注')" />
276 277 278
          </el-form-item>
        </el-col>
        <el-col :span="24">
dcy's avatar
dcy committed
279
          <el-form-item :label="$t('到仓确认')" prop="arrivalConfirm">
280 281 282 283
            <el-switch v-model="form.arrivalConfirm" :active-value="0" :inactive-value="1" />
          </el-form-item>
        </el-col>
        <el-col :span="24">
dcy's avatar
dcy committed
284 285
          <el-form-item :label="$t('重货标准(CBM)')" prop="weightUnit">
            <el-input v-model="form.weightUnit" :placeholder="$t('请输入重货标准(CBM)')" />
286 287 288 289 290 291
          </el-form-item>
        </el-col>




dcy's avatar
dcy committed
292 293
        <el-form-item :label="$t('关联会员账号')" prop="memberId">
          <el-input v-model="form.memberId" :placeholder="$t('请输入关联会员账号')" />
294 295
        </el-form-item>

dcy's avatar
dcy committed
296 297
        <el-form-item :label="$t('部门')" prop="department">
          <el-input v-model="form.department" :placeholder="$t('请输入部门')" />
298
        </el-form-item>
dcy's avatar
dcy committed
299 300
        <el-form-item :label="$t('发票抬头')" prop="invoiceTitle">
          <el-input v-model="form.invoiceTitle" :placeholder="$t('请输入发票抬头')" />
301
        </el-form-item>
dcy's avatar
dcy committed
302 303
        <el-form-item :label="$t('纳税人识别号')" prop="licenseNumber">
          <el-input v-model="form.licenseNumber" :placeholder="$t('请输入纳税人识别号')" />
304
        </el-form-item>
dcy's avatar
dcy committed
305 306
        <el-form-item :label="$t('开户行')" prop="bank">
          <el-input v-model="form.bank" :placeholder="$t('请输入开户行')" />
307
        </el-form-item>
dcy's avatar
dcy committed
308 309
        <el-form-item :label="$t('账户')" prop="bankNumber">
          <el-input v-model="form.bankNumber" :placeholder="$t('请输入账户')" />
310
        </el-form-item>
dcy's avatar
dcy committed
311 312
        <el-form-item :label="$t('项目')" prop="project">
          <el-input v-model="form.project" :placeholder="$t('请输入项目')" />
313
        </el-form-item>
dcy's avatar
dcy committed
314 315
        <el-form-item :label="$t('开票地址')" prop="billingAddress">
          <el-input v-model="form.billingAddress" :placeholder="$t('请输入开票地址')" />
316
        </el-form-item>
dcy's avatar
dcy committed
317 318
        <el-form-item :label="$t('开票电话')" prop="billingTell">
          <el-input v-model="form.billingTell" :placeholder="$t('请输入开票电话')" />
319
        </el-form-item>
dcy's avatar
dcy committed
320 321
        <el-form-item :label="$t('税率')" prop="taxRate">
          <el-input v-model="form.taxRate" :placeholder="$t('请输入税率')" />
322 323 324
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
dcy's avatar
dcy committed
325 326
        <el-button type="primary" @click="submitForm">{{$t('确 定')}}</el-button>
        <el-button @click="cancel">{{$t('取 消')}}</el-button>
327 328 329 330 331 332 333
      </div>
    </el-dialog>

    <!-- 移交 -->
    <!-- 对话框(添加 / 修改) -->
    <el-dialog :title="title" :visible.sync="openHandOver" width="500px" append-to-body>
      <el-form ref="handOverForm" :model="handOverForm" :rules="rules" label-width="80px">
dcy's avatar
dcy committed
334 335
        <el-form-item :label="$t('客户经理')" prop="customerServiceId">
          <el-select v-model="handOverForm.customerServiceId" :placeholder="$t('请选择客户经理')" clearable filterable>
336 337 338 339 340 341 342
            <el-option v-for="user in serviceStaffOptions"
                       :key="user.id" :value="user.id"
                       :label="user.nickname" />
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
dcy's avatar
dcy committed
343 344
        <el-button type="primary" @click="submitHandOverForm">{{$t('确 定')}}</el-button>
        <el-button @click="cancelHandOver">{{$t('取 消')}}</el-button>
345 346
      </div>
    </el-dialog>
邓春圆's avatar
邓春圆 committed
347
    <transfer-customer :show.sync="openHandOver" :customer-ids.sync="handOverForm.customerIdList"></transfer-customer>
348 349 350 351
  </div>
</template>

<script>
352 353 354 355 356 357 358 359
import {
  updateCustomer,
  getCustomer,
  exportCustomerExcel,
  getWaitForConfirmList,
  confirm,
  waiteConfirmExportExcel
} from "@/api/ecw/customer";
360 361 362 363
import { listServiceUser } from "@/api/system/user"
import { getDictDatas, DICT_TYPE } from '@/utils/dict'
import {CommonStatusEnum} from '@/utils/constants'
import {handOverCustomer} from "../../../api/ecw/customer";
dcy's avatar
dcy committed
364 365
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
邓春圆's avatar
邓春圆 committed
366
import transferCustomer from "@/views/ecw/customer/transferCustomer.vue";
367 368 369 370



export default {
371 372 373 374
  name: "EcwCustomerconfirmIndex",
  activated() {
    this.getList();
  },
邓春圆's avatar
邓春圆 committed
375
  computed:{
376 377 378
    DICT_TYPE() {
      return DICT_TYPE
    },
邓春圆's avatar
邓春圆 committed
379 380 381 382
    isChinese(){
      return this.$i18n.locale === 'zh_CN'
    },
  },
383
  components: {
邓春圆's avatar
邓春圆 committed
384
    transferCustomer
385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
  },
  data() {
    return {
      // 遮罩层
      loading: true,
      // 导出遮罩层
      exportLoading: false,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 客户列表
      list: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      openHandOver: false,
      dateRangeCreateTime: [],
      // 查询参数
      queryParams: {
        pageNo: 1,
        pageSize: 10,
        number: null,
        name: null,
        level: null,
        source: null,
        customerService: null,
        status: null,
        department: null,
dcy's avatar
dcy committed
415 416
        creditLevel:null,
        country:null,
417
        marketType:null,
418 419 420 421 422 423
      },
      // 表单参数
      form: {},
      handOverForm: {},
      // 表单校验
      rules: {
dcy's avatar
dcy committed
424 425
        name: [{ required: true, message: this.$t('客户名称不能为空'), trigger: "blur" }],
        weightUnit: [{ required: true, message: this.$t('重货标准(CBM)不能为空'), trigger: "blur" }],
426 427
      },

dcy's avatar
dcy committed
428 429 430 431
      serviceStaffOptions: [],
      customerServiceList:[],
      countryList:[],
      creditList:[]
432 433 434 435
    };
  },
  created() {
    this.getList();
dcy's avatar
dcy committed
436 437 438
    getCreditPage({page:1,rows:999}).then(r => {
      this.creditList = r.data.list
    })
439 440 441 442
    // 获得客服人员列表
    listServiceUser().then(response => {
      this.serviceStaffOptions = response.data;
    })
dcy's avatar
dcy committed
443 444 445 446 447 448
    listServiceUser().then(r=>{
      this.customerServiceList = r.data;
    })
    getCountryListAll().then(r => {
      this.countryList = r.data
    })
449 450
  },
  methods: {
451
    getDictDatas,
dcy's avatar
dcy committed
452 453
    countryFormatter(row, column, cellValue) {
      const country = this.countryList.find((e) => e.id === cellValue)
邓春圆's avatar
邓春圆 committed
454
      return this.isChinese ? country?.nameZh : country?.nameEn
dcy's avatar
dcy committed
455
    },
456 457 458 459 460
    /** 查询列表 */
    getList() {
      this.loading = true;
      // 处理查询参数
      let params = {...this.queryParams};
461
      this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
      // 执行查询
      getWaitForConfirmList(params).then(response => {
        this.list = response.data.list;
        this.total = response.data.total;
        this.loading = false;
      });
    },
    /** 取消按钮 */
    cancel() {
      this.open = false;
      this.reset();
    },
    /** 表单重置 */
    reset() {
      this.form = {
        id: undefined,
        number: undefined,
        name: undefined,
        level: undefined,
        country: undefined,
        type: undefined,
        agentId: undefined,
        company: undefined,
        address: undefined,
        productType: undefined,
        productId: undefined,
        pickupPoint: undefined,
        memberId: undefined,
        birthday: undefined,
        balance: undefined,
        source: undefined,
        picture: undefined,
        customerService: undefined,
        promoter: undefined,
        status: undefined,
        founder: undefined,
        department: undefined,
        invoiceTitle: undefined,
        licenseNumber: undefined,
        bank: undefined,
        bankNumber: undefined,
        project: undefined,
        billingAddress: undefined,
        billingTell: undefined,
        taxRate: undefined,
        remarks: undefined,
        arrivalConfirm: undefined,
        weightUnit: undefined,
      };
      this.resetForm("form");
    },
    /** 表单重置 */
    resetHandOverForm() {
      this.form = {
516
        customerIdList: undefined,
517 518 519 520 521 522 523 524 525 526 527 528 529
        customerServiceId: undefined
      };
      this.resetForm("handOverForm");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNo = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRangeCreateTime = [];
      this.resetForm("queryForm");
dcy's avatar
dcy committed
530 531 532 533 534 535 536 537 538 539 540 541 542
      this.queryParams = {
        pageNo: 1,
        pageSize: 10,
        number: null,
        name: null,
        level: null,
        source: null,
        customerService: null,
        status: null,
        department: null,
        creditLevel:null,
        country:null,
      }
543 544 545 546 547 548
      this.handleQuery();
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.open = true;
dcy's avatar
dcy committed
549
      this.title = this.$t('添加客户');
550 551 552 553 554
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const id = row.id;
555
      this.$router.push({path:'/customer/perfect/'+id,query:{isCustomerServiceConfirmed:true,}});
556 557 558
      // getCustomer(id).then(response => {
      //   this.form = response.data;
      //   this.open = true;
Marcus's avatar
Marcus committed
559
      //   this.title = this.$t("完善客户");
560
      // });
561 562 563 564
    },
    /** 修改按钮操作 */
    handleConfirmService(row) {
      const id = row.id;
dcy's avatar
dcy committed
565
      this.$modal.confirm(this.$t('是否确认接收客户')+'["' + row.name + '"]?').then(function() {
566 567 568
        return confirm({"customerId": id});
      }).then(() => {
        this.getList();
dcy's avatar
dcy committed
569
        this.$modal.msgSuccess(this.$t('接收成功'));
570 571 572 573 574
      }).catch(() => {});

    },
    /** 修改按钮操作 */
    handOver(row) {
邓春圆's avatar
邓春圆 committed
575
      // this.resetHandOverForm();
576
      this.openHandOver = true;
邓春圆's avatar
邓春圆 committed
577

578
      this.handOverForm.customerIdList   = [row.id];
579 580 581 582 583 584 585 586 587 588 589
    },

    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (!valid) {
          return;
        }
        // 修改的提交
        if (this.form.id != null) {
          updateCustomer(this.form).then(response => {
dcy's avatar
dcy committed
590
            this.$modal.msgSuccess(this.$t('修改成功'));
591 592 593 594 595 596 597 598 599 600
            this.open = false;
            this.getList();
          });
          return;
        }
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const id = row.id;
dcy's avatar
dcy committed
601
      this.$modal.confirm(this.$t('是否确认删除客户编号为"') + id + this.$t('"的数据项?')).then(function() {
602 603 604
          return deleteCustomer(id);
        }).then(() => {
          this.getList();
dcy's avatar
dcy committed
605
          this.$modal.msgSuccess(this.$t('删除成功'));
606 607 608 609 610 611 612 613 614 615
        }).catch(() => {});
    },
    /** 导出按钮操作 */
    handleExport() {
      // 处理查询参数
      let params = {...this.queryParams};
      params.pageNo = undefined;
      params.pageSize = undefined;
      this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
      // 执行导出
616
      this.$modal.confirm(this.$t('是否确认导出我的待接受客户数据项?')).then(() => {
617
          this.exportLoading = true;
618
          return waiteConfirmExportExcel(params);
619
        }).then(response => {
620
          this.$download.excel(response, `${this.$t('我的待接收客户')}.xls`);
621 622 623 624 625 626 627 628 629 630
          this.exportLoading = false;
        }).catch(() => {});
    },



    /** 提交按钮 */
    submitHandOverForm() {
      // 移交的提交
      handOverCustomer(this.handOverForm).then(response => {
dcy's avatar
dcy committed
631
        this.$modal.msgSuccess(this.$t('移交成功'));
632 633 634 635 636 637 638 639 640 641
        this.openHandOver = false;
        this.getList();
      });
    },

    /** 取消按钮 */
    cancelHandOver() {
      this.openHandOver = false;
      this.handOverForm = {
        customerId: undefined,
642
        customerIdList : undefined
643 644 645 646 647 648
      };
    },

  }
};
</script>