Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-app-operator-master
Commits
527f8dd6
Commit
527f8dd6
authored
May 31, 2022
by
yanghao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feature: 添加客户和联系人
parent
e68b7c5e
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
884 additions
and
0 deletions
+884
-0
customer.js
src/api/ecw/customer.js
+54
-0
customerContacts.js
src/api/ecw/customerContacts.js
+54
-0
dict.js
src/utils/dict.js
+8
-0
index.vue
src/views/ecw/customer/index.vue
+485
-0
index.vue
src/views/ecw/customerContacts/index.vue
+283
-0
No files found.
src/api/ecw/customer.js
0 → 100644
View file @
527f8dd6
import
request
from
'
@/utils/request
'
// 创建客户
export
function
createCustomer
(
data
)
{
return
request
({
url
:
'
/ecw/customer/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新客户
export
function
updateCustomer
(
data
)
{
return
request
({
url
:
'
/ecw/customer/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除客户
export
function
deleteCustomer
(
id
)
{
return
request
({
url
:
'
/ecw/customer/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得客户
export
function
getCustomer
(
id
)
{
return
request
({
url
:
'
/ecw/customer/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得客户分页
export
function
getCustomerPage
(
query
)
{
return
request
({
url
:
'
/ecw/customer/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出客户 Excel
export
function
exportCustomerExcel
(
query
)
{
return
request
({
url
:
'
/ecw/customer/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/api/ecw/customerContacts.js
0 → 100644
View file @
527f8dd6
import
request
from
'
@/utils/request
'
// 创建客户联系人
export
function
createCustomerContacts
(
data
)
{
return
request
({
url
:
'
/ecw/customer-contacts/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新客户联系人
export
function
updateCustomerContacts
(
data
)
{
return
request
({
url
:
'
/ecw/customer-contacts/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除客户联系人
export
function
deleteCustomerContacts
(
id
)
{
return
request
({
url
:
'
/ecw/customer-contacts/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得客户联系人
export
function
getCustomerContacts
(
id
)
{
return
request
({
url
:
'
/ecw/customer-contacts/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得客户联系人分页
export
function
getCustomerContactsPage
(
query
)
{
return
request
({
url
:
'
/ecw/customer-contacts/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出客户联系人 Excel
export
function
exportCustomerContactsExcel
(
query
)
{
return
request
({
url
:
'
/ecw/customer-contacts/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/utils/dict.js
View file @
527f8dd6
...
...
@@ -64,6 +64,14 @@ export const DICT_TYPE = {
ECW_TRANSPORT_TYPE
:
'
transport_type
'
,
//货运方式
ECW_CHARGE_TYPE
:
'
warehouse_charge_type
'
,
//仓储收费方式
ECW_SHELF_TYPE
:
'
shelf_type
'
,
//货架类型
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
CUSTOMER_BALANCE
:
'
customer_balance
'
,
CUSTOMER_TYPE
:
'
customer_type
'
,
CUSTOMER_LEVEL
:
'
customer_level
'
}
/**
...
...
src/views/ecw/customer/index.vue
0 → 100644
View file @
527f8dd6
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"客户编号"
prop=
"number"
>
<el-input
v-model=
"queryParams.number"
placeholder=
"请输入客户编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"客户名称"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入客户名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-select
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<el-select
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"跟进客服"
prop=
"customerService"
>
<el-select
v-model=
"queryParams.customerService"
placeholder=
"请选择跟进客服"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"department"
>
<el-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:customer:create']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"客户编号"
align=
"center"
prop=
"number"
/>
<el-table-column
label=
"客户名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"客户等级"
align=
"center"
prop=
"level"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.country"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"跟进客服"
align=
"center"
prop=
"customerService"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.customerService"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"部门"
align=
"center"
prop=
"department"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:customer:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:customer:delete']"
>
删除
</el-button>
</
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"
>
<el-form-item
label=
"客户名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入客户名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"国家"
prop=
"country"
>
<el-select
v-model=
"form.country"
placeholder=
"请选择国家"
>
<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"
>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-select
v-model=
"form.level"
placeholder=
"请选择客户等级"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"所属代理"
prop=
"agentId"
>
<el-select
v-model=
"form.agentId"
placeholder=
"请选择所属代理"
>
<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"
>
<el-form-item
label=
"联系地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
placeholder=
"请输入联系地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户类别"
prop=
"type"
>
<el-select
v-model=
"form.type"
placeholder=
"请选择客户类别"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"常用提货网点"
prop=
"pickupPoint"
>
<el-select
v-model=
"form.pickupPoint"
placeholder=
"请输入常用提货网点"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"公司名称"
prop=
"company"
>
<el-input
v-model=
"form.company"
placeholder=
"请输入公司名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户生日"
prop=
"birthday"
>
<el-input
v-model=
"form.birthday"
placeholder=
"请输入客户生日"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品类型"
prop=
"productType"
>
<el-select
v-model=
"form.productType"
placeholder=
"请选择产品类型"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
<el-form-item
label=
"产品id"
prop=
"productId"
>
<el-input
v-model=
"form.productId"
placeholder=
"请输入产品id"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<el-select
v-model=
"form.source"
placeholder=
"请选择客户来源"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"结算方式"
prop=
"balance"
>
<el-select
v-model=
"form.balance"
placeholder=
"请选择结算方式"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"跟进客服"
prop=
"customerService"
>
<el-select
v-model=
"form.customerService"
placeholder=
"请选择跟进客服"
>
<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"
>
<el-form-item
label=
"图片"
prop=
"picture"
>
<el-input
v-model=
"form.picture"
placeholder=
"请输入图片"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"form.status"
placeholder=
"请选择客户状态"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"推介人"
prop=
"promoter"
>
<el-input
v-model=
"form.promoter"
placeholder=
"请输入推介人"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建人"
prop=
"founder"
>
<el-input
v-model=
"form.founder"
placeholder=
"请输入创建人"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建时间"
prop=
"founder"
>
<el-input
v-model=
"form.founder"
placeholder=
"请输入创建人"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"备注"
prop=
"remarks"
>
<el-input
v-model=
"form.remarks"
placeholder=
"请输入备注"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"到仓确认"
prop=
"arrivalConfirm"
>
<el-switch
v-model=
"form.arrivalConfirm"
:active-value=
"0"
:inactive-value=
"1"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"重货标准(CBM)"
prop=
"weightUnit"
>
<el-input
v-model=
"form.weightUnit"
placeholder=
"请输入重货标准(CBM)"
/>
</el-form-item>
</el-col>
<el-form-item
label=
"关联会员账号"
prop=
"memberId"
>
<el-input
v-model=
"form.memberId"
placeholder=
"请输入关联会员账号"
/>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"department"
>
<el-input
v-model=
"form.department"
placeholder=
"请输入部门"
/>
</el-form-item>
<el-form-item
label=
"发票抬头"
prop=
"invoiceTitle"
>
<el-input
v-model=
"form.invoiceTitle"
placeholder=
"请输入发票抬头"
/>
</el-form-item>
<el-form-item
label=
"纳税人识别号"
prop=
"licenseNumber"
>
<el-input
v-model=
"form.licenseNumber"
placeholder=
"请输入纳税人识别号"
/>
</el-form-item>
<el-form-item
label=
"开户行"
prop=
"bank"
>
<el-input
v-model=
"form.bank"
placeholder=
"请输入开户行"
/>
</el-form-item>
<el-form-item
label=
"账户"
prop=
"bankNumber"
>
<el-input
v-model=
"form.bankNumber"
placeholder=
"请输入账户"
/>
</el-form-item>
<el-form-item
label=
"项目"
prop=
"project"
>
<el-input
v-model=
"form.project"
placeholder=
"请输入项目"
/>
</el-form-item>
<el-form-item
label=
"开票地址"
prop=
"billingAddress"
>
<el-input
v-model=
"form.billingAddress"
placeholder=
"请输入开票地址"
/>
</el-form-item>
<el-form-item
label=
"开票电话"
prop=
"billingTell"
>
<el-input
v-model=
"form.billingTell"
placeholder=
"请输入开票电话"
/>
</el-form-item>
<el-form-item
label=
"税率"
prop=
"taxRate"
>
<el-input
v-model=
"form.taxRate"
placeholder=
"请输入税率"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
createCustomer
,
updateCustomer
,
deleteCustomer
,
getCustomer
,
getCustomerPage
,
exportCustomerExcel
}
from
"
@/api/ecw/customer
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
import
{
uploadFile
}
from
"
@/api/infra/file
"
;
export
default
{
name
:
"
Customer
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 客户列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
name
:
null
,
level
:
null
,
source
:
null
,
customerService
:
null
,
status
:
null
,
department
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
name
:
[{
required
:
true
,
message
:
"
客户名称不能为空
"
,
trigger
:
"
blur
"
}],
weightUnit
:
[{
required
:
true
,
message
:
"
重货标准(CBM)不能为空
"
,
trigger
:
"
blur
"
}],
}
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getCustomerPage
(
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
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加客户
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getCustomer
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改客户
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateCustomer
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createCustomer
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除客户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteCustomer
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有客户数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportCustomerExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
}
};
</
script
>
src/views/ecw/customerContacts/index.vue
0 → 100644
View file @
527f8dd6
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"关联账户名"
prop=
"username"
>
<el-input
v-model=
"queryParams.username"
placeholder=
"请输入关联账户名"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"区号"
prop=
"areaCode"
>
<el-input
v-model=
"queryParams.areaCode"
placeholder=
"请输入区号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"手机号码(不带任何区号)"
prop=
"phoneNew"
>
<el-input
v-model=
"queryParams.phoneNew"
placeholder=
"请输入手机号码(不带任何区号)"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:customer-contacts:create']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer-contacts:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"客户id"
align=
"center"
prop=
"customerId"
/>
<el-table-column
label=
"部门"
align=
"center"
prop=
"department"
/>
<el-table-column
label=
"职位"
align=
"center"
prop=
"position"
/>
<el-table-column
label=
"联系人"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"联系方式"
align=
"center"
prop=
"phone"
/>
<el-table-column
label=
"社交方式"
align=
"center"
prop=
"social"
/>
<el-table-column
label=
"社交软件号码"
align=
"center"
prop=
"socialNumber"
/>
<el-table-column
label=
"电子邮箱"
align=
"center"
prop=
"email"
/>
<el-table-column
label=
"默认联系人:1为默认"
align=
"center"
prop=
"default"
/>
<el-table-column
label=
"关联账户id"
align=
"center"
prop=
"userid"
/>
<el-table-column
label=
"关联账户名"
align=
"center"
prop=
"username"
/>
<el-table-column
label=
"区号"
align=
"center"
prop=
"areaCode"
/>
<el-table-column
label=
"手机号码(不带任何区号)"
align=
"center"
prop=
"phoneNew"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:customer-contacts:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:customer-contacts:delete']"
>
删除
</el-button>
</
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-form-item
label=
"客户id"
prop=
"customerId"
>
<el-input
v-model=
"form.customerId"
placeholder=
"请输入客户id"
/>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"department"
>
<el-input
v-model=
"form.department"
placeholder=
"请输入部门"
/>
</el-form-item>
<el-form-item
label=
"职位"
prop=
"position"
>
<el-input
v-model=
"form.position"
placeholder=
"请输入职位"
/>
</el-form-item>
<el-form-item
label=
"联系人"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入联系人"
/>
</el-form-item>
<el-form-item
label=
"联系方式"
prop=
"phone"
>
<el-input
v-model=
"form.phone"
placeholder=
"请输入联系方式"
/>
</el-form-item>
<el-form-item
label=
"社交方式"
prop=
"social"
>
<el-input
v-model=
"form.social"
placeholder=
"请输入社交方式"
/>
</el-form-item>
<el-form-item
label=
"社交软件号码"
prop=
"socialNumber"
>
<el-input
v-model=
"form.socialNumber"
placeholder=
"请输入社交软件号码"
/>
</el-form-item>
<el-form-item
label=
"电子邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
placeholder=
"请输入电子邮箱"
/>
</el-form-item>
<el-form-item
label=
"默认联系人:1为默认"
prop=
"default"
>
<el-input
v-model=
"form.default"
placeholder=
"请输入默认联系人:1为默认"
/>
</el-form-item>
<el-form-item
label=
"关联账户id"
prop=
"userid"
>
<el-input
v-model=
"form.userid"
placeholder=
"请输入关联账户id"
/>
</el-form-item>
<el-form-item
label=
"关联账户名"
prop=
"username"
>
<el-input
v-model=
"form.username"
placeholder=
"请输入关联账户名"
/>
</el-form-item>
<el-form-item
label=
"区号"
prop=
"areaCode"
>
<el-input
v-model=
"form.areaCode"
placeholder=
"请输入区号"
/>
</el-form-item>
<el-form-item
label=
"手机号码(不带任何区号)"
prop=
"phoneNew"
>
<el-input
v-model=
"form.phoneNew"
placeholder=
"请输入手机号码(不带任何区号)"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
createCustomerContacts
,
updateCustomerContacts
,
deleteCustomerContacts
,
getCustomerContacts
,
getCustomerContactsPage
,
exportCustomerContactsExcel
}
from
"
@/api/ecw/customerContacts
"
;
export
default
{
name
:
"
CustomerContacts
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 客户联系人列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
username
:
null
,
areaCode
:
null
,
phoneNew
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
areaCode
:
[{
required
:
true
,
message
:
"
区号不能为空
"
,
trigger
:
"
blur
"
}],
phoneNew
:
[{
required
:
true
,
message
:
"
手机号码(不带任何区号)不能为空
"
,
trigger
:
"
blur
"
}],
}
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getCustomerContactsPage
(
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
,
customerId
:
undefined
,
department
:
undefined
,
position
:
undefined
,
name
:
undefined
,
phone
:
undefined
,
social
:
undefined
,
socialNumber
:
undefined
,
email
:
undefined
,
default
:
undefined
,
userid
:
undefined
,
username
:
undefined
,
areaCode
:
undefined
,
phoneNew
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加客户联系人
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getCustomerContacts
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改客户联系人
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateCustomerContacts
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createCustomerContacts
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除客户联系人编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteCustomerContacts
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有客户联系人数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportCustomerContactsExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
}
};
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment