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
4c322233
Commit
4c322233
authored
Jun 17, 2022
by
dcy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
392f6865
35d212d3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
721 additions
and
79 deletions
+721
-79
node.js
src/api/ecw/node.js
+9
-0
index.js
src/router/index.js
+10
-0
edit.vue
src/views/ecw/customer/edit.vue
+496
-0
index.vue
src/views/ecw/customer/index.vue
+140
-70
view.vue
src/views/ecw/customer/view.vue
+34
-0
index.vue
src/views/ecw/productBrank/index.vue
+32
-9
No files found.
src/api/ecw/node.js
View file @
4c322233
...
...
@@ -34,6 +34,15 @@ export function getNode(id) {
})
}
// 获得服务网点分页
export
function
getNodeList
(
query
)
{
return
request
({
url
:
'
/ecw/node/list
'
,
method
:
'
get
'
,
params
:
query
})
}
// 获得服务网点分页
export
function
getNodePage
(
query
)
{
return
request
({
...
...
src/router/index.js
View file @
4c322233
...
...
@@ -91,6 +91,16 @@ export const constantRoutes = [
meta
:
{
title
:
'
字典数据
'
,
icon
:
''
,
activeMenu
:
'
/system/dict
'
}
}
]
},
{
path
:
'
/c
'
,
component
:
Layout
,
hidden
:
true
,
children
:
[{
path
:
'
ecw/customer/edit/:customerId(
\\
d+)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/ecw/customer/edit
'
],
resolve
),
name
:
'
Data
'
,
meta
:
{
title
:
'
字典数据
'
,
icon
:
''
,
activeMenu
:
'
/system/dict
'
}
}]
},
{
path
:
'
/job
'
,
component
:
Layout
,
...
...
src/views/ecw/customer/edit.vue
0 → 100644
View file @
4c322233
<
template
>
<div>
<el-row
type=
"flex"
style=
"margin-top: 15px;margin-bottom: 15px"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"16"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
<el-row
:gutter=
"10"
>
<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 getDictDatas(DICT_TYPE.COUNTRY)"
: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 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=
"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 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=
"agentId"
>
-->
<!--
<el-select
v-model=
"form.agentId"
placeholder=
"请选择所属代理"
>
-->
<!--
<el-option
v-for=
"dict in 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=
"pickupPoint"
>
<el-select
v-model=
"form.pickupPoint"
placeholder=
"请输入常用提货网点"
>
<el-option
v-for=
"node in nodeList"
:key=
"node.id"
:label=
"node.titleZh"
:value=
"node.id"
/>
</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-date-picker
v-model=
"form.birthday"
type=
"date"
value-format=
"timestamp"
placeholder=
"请输入客户生日"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"主营类别"
prop=
"productType"
>
<el-cascader
:options=
"productTypeList"
:props=
"
{label: 'titleZh', value: 'id', lazy: true, lazyLoad}">
</el-cascader>
<el-row
:gutter=
"10"
>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
placeholder=
"请选择产品类别"
>
<!--
<el-option
label=
"请选择字典生成"
value=
""
/>
-->
</el-select>
</el-col>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
placeholder=
"请选择主营类别"
>
<!--
<el-option
label=
"请选择字典生成"
value=
""
/>
-->
</el-select>
</el-col>
</el-row>
</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 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 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 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"
>
<upload
v-model=
"form.picture"
:limit=
"1"
></upload>
</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 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-date-picker
v-model=
"form.createTime"
type=
"datetime"
value-format=
"timestamp"
placeholder=
"选择创建时间"
>
</el-date-picker>
</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-col
:span=
"24"
>
<el-form-item
label=
"指定线路"
prop=
"line"
>
<el-switch
v-model=
"showLine"
></el-switch>
<el-table
v-show=
"showLine"
border
:data=
"form.customerLines"
style=
"width: 500px"
>
<el-table-column
prop=
"departureId"
label=
"始发地"
>
</el-table-column>
<el-table-column
prop=
"objectiveId"
label=
"目的地"
>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
联系人
</span>
<el-button
style=
"float: right;"
size=
"small"
type=
"primary"
@
click=
"form.customerContacts.push(
{department: undefined})">+
</el-button>
</div>
<el-table
:data=
"form.customerContacts"
style=
"width: 100%"
>
<el-table-column
prop=
"department"
label=
"部门"
width=
""
>
<template
v-slot=
"
{ row, column, $index }">
<el-input
v-model=
"row.department"
placeholder=
"请输入部门"
size=
"mini"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"position"
label=
"职位"
width=
""
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.position"
placeholder=
"请输入职位"
size=
"mini"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"联系人"
>
<
template
v-slot:header
>
联系人
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.name"
placeholder=
"请输入联系人"
size=
"mini"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"areaCode"
label=
"区号"
>
<
template
v-slot:header
>
区号
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
<
template
v-slot=
"{row}"
>
<el-select
v-model=
"row.areaCode"
placeholder=
"请选择区号"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.AREA_CODE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"phoneNew"
label=
"联系方式"
>
<
template
v-slot:header
>
联系方式
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.phoneNew"
placeholder=
"请输入联系方式"
size=
"mini"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
""
label=
"关联账号"
>
</el-table-column>
<el-table-column
prop=
"social"
label=
"社交软件"
>
<
template
v-slot=
"{row}"
>
<el-select
v-model=
"row.social"
placeholder=
"请选择社交软件"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.SOCIAL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"socialNumber"
label=
"社交软件号码"
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.socialNumber"
placeholder=
"请输入社交软件号码"
size=
"mini"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"email"
label=
"邮箱"
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.email"
placeholder=
"请输入邮箱"
size=
"mini"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"isDefault"
label=
"设为默认"
>
<
template
v-slot=
"{row}"
>
<el-select
v-model=
"row.isDefault"
placeholder=
"设为默认"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.IS_DEFAULT)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.isDefault)"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"操作"
>
<
template
v-slot=
"{ row, column, $index }"
>
<el-button
type=
"danger"
@
click=
"form.customerContacts.splice($index, 1)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
</el-card>
<el-row
:gutter=
"10"
style=
"margin-top: 15px"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"发票抬头"
prop=
"invoiceTitle"
>
<el-input
v-model=
"form.invoiceTitle"
placeholder=
"请输入发票抬头"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"纳税人识别号"
prop=
"licenseNumber"
>
<el-input
v-model=
"form.licenseNumber"
placeholder=
"请输入纳税人识别号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开户行"
prop=
"bank"
>
<el-input
v-model=
"form.bank"
placeholder=
"请输入开户行"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"账户"
prop=
"bankNumber"
>
<el-input
v-model=
"form.bankNumber"
placeholder=
"请输入账户"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目"
prop=
"project"
>
<el-input
v-model=
"form.project"
placeholder=
"请输入项目"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开票地址"
prop=
"billingAddress"
>
<el-input
v-model=
"form.billingAddress"
placeholder=
"请输入开票地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开票电话"
prop=
"billingTell"
>
<el-input
v-model=
"form.billingTell"
placeholder=
"请输入开票电话"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"税率"
prop=
"taxRate"
>
<el-input
v-model=
"form.taxRate"
placeholder=
"请输入税率"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
style=
"text-align: right"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-col>
</el-row>
</div>
</template>
<
script
>
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
upload
from
'
@/components/ImageUpload
'
import
{
createCustomer
,
getCustomer
,
updateCustomer
}
from
'
@/api/ecw/customer
'
import
{
getNodeList
}
from
"
@/api/ecw/node
"
import
{
getProductTypeList
}
from
'
@/api/ecw/productType
'
export
default
{
name
:
"
edit
"
,
components
:
{
upload
},
created
()
{
this
.
customerId
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
customerId
;
console
.
log
(
this
.
customerId
)
if
(
!!
this
.
customerId
)
this
.
getCustomer
(
this
.
customerId
)
getNodeList
().
then
(
r
=>
{
this
.
nodeList
=
r
.
data
})
getProductTypeList
().
then
(
r
=>
{
this
.
productTypeList
=
r
.
data
})
},
data
(){
return
{
customerId
:
undefined
,
getDictDatas
,
DICT_TYPE
,
// 表单参数
form
:
{},
// 表单校验
rules
:
{
name
:
[{
required
:
true
,
message
:
"
客户名称不能为空
"
,
trigger
:
"
blur
"
}],
country
:
[{
required
:
true
,
message
:
"
国家不能为空
"
,
trigger
:
"
blur
"
}],
level
:
[{
required
:
true
,
message
:
"
客户等级不能为空
"
,
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
"
客户类别不能为空
"
,
trigger
:
"
blur
"
}],
// createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source
:
[{
required
:
true
,
message
:
"
客户来源不能为空
"
,
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
"
跟进客服不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
客户状态不能为空
"
,
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
"
创建人不能为空
"
,
trigger
:
"
blur
"
}],
},
// 网点
nodeList
:
[],
productTypeList
:
[],
showLine
:
false
}
},
methods
:
{
lazyLoad
(
node
,
resolve
)
{
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 提交按钮 */
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
();
});
});
},
/** 表单重置 */
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
,
customerContacts
:
[],
customerLines
:
[],
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
"
);
},
getCustomer
(
id
)
{
this
.
reset
();
getCustomer
(
id
).
then
(
response
=>
{
this
.
form
=
{
...
this
.
form
,
...
response
.
data
};
this
.
open
=
true
;
this
.
title
=
"
修改客户
"
;
});
},
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/ecw/customer/index.vue
View file @
4c322233
...
...
@@ -70,7 +70,7 @@
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CO
MMON_STATUS
"
:value=
"scope.row.country"
/>
<dict-tag
:type=
"DICT_TYPE.CO
UNTRY
"
:value=
"scope.row.country"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"跟进客服"
align=
"center"
prop=
"customerService"
>
...
...
@@ -103,7 +103,7 @@
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"
1000px
"
append-to-body
:close-on-click-modal=
"false"
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"
90%
"
append-to-body
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"12"
>
...
...
@@ -127,14 +127,6 @@
</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 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=
"请输入联系地址"
/>
...
...
@@ -148,10 +140,19 @@
</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 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=
"pickupPoint"
>
<el-select
v-model=
"form.pickupPoint"
placeholder=
"请输入常用提货网点"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
<el-option
v-for=
"node in nodeList"
:key=
"node.value"
:label=
"node.label"
:value=
"node.value"
/>
</el-select>
</el-form-item>
</el-col>
...
...
@@ -164,21 +165,31 @@
<el-col
:span=
"12"
>
<el-form-item
label=
"客户生日"
prop=
"birthday"
>
<el-input
v-model=
"form.birthday"
placeholder=
"请输入客户生日"
/>
<el-date-picker
v-model=
"form.birthday"
type=
"date"
value-format=
"timestamp"
placeholder=
"请输入客户生日"
>
</el-date-picker>
</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
label=
"主营类别"
prop=
"productType"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
placeholder=
"请选择产品类别"
>
<!-- <el-option label="请选择字典生成" value="" />-->
</el-select>
</el-col>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
placeholder=
"请选择主营类别"
>
<!-- <el-option label="请选择字典生成" value="" />-->
</el-select>
</el-col>
</el-row>
</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 getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
...
...
@@ -187,7 +198,6 @@
</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 getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
...
...
@@ -196,7 +206,6 @@
</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 getDictDatas(DICT_TYPE.COMMON_STATUS)"
...
...
@@ -205,9 +214,8 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"图片"
prop=
"picture"
>
<
el-input
v-model=
"form.picture"
placeholder=
"请输入图片"
/
>
<
upload
v-model=
"form.picture"
:limit=
"1"
></upload
>
</el-form-item>
</el-col>
...
...
@@ -231,7 +239,12 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建时间"
prop=
"founder"
>
<el-input
v-model=
"form.founder"
placeholder=
"请输入创建人"
/>
<el-date-picker
v-model=
"form.createTime"
type=
"datetime"
value-format=
"timestamp"
placeholder=
"选择创建时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -249,16 +262,27 @@
<el-input
v-model=
"form.weightUnit"
placeholder=
"请输入重货标准(CBM)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"指定线路"
prop=
"line"
>
<el-switch
v-model=
"showLine"
></el-switch>
<el-table
v-show=
"showLine"
border
:data=
"form.customerLines"
style=
"width: 500px"
>
<el-table-column
prop=
"departureId"
label=
"始发地"
>
</el-table-column>
<el-table-column
prop=
"objectiveId"
label=
"目的地"
>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
<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-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
联系人
</span>
...
...
@@ -290,6 +314,9 @@
prop=
"name"
label=
"联系人"
>
<
template
v-slot:header
>
联系人
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.name"
placeholder=
"请输入联系人"
size=
"mini"
/>
</
template
>
...
...
@@ -298,6 +325,9 @@
prop=
"areaCode"
label=
"区号"
>
<
template
v-slot:header
>
区号
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
<
template
v-slot=
"{row}"
>
<el-select
v-model=
"row.areaCode"
placeholder=
"请选择区号"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.AREA_CODE)"
...
...
@@ -309,6 +339,9 @@
prop=
"phoneNew"
label=
"联系方式"
>
<
template
v-slot:header
>
联系方式
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
<
template
v-slot=
"{row}"
>
<el-input
v-model=
"row.phoneNew"
placeholder=
"请输入联系方式"
size=
"mini"
/>
</
template
>
...
...
@@ -367,30 +400,48 @@
</el-table>
</el-card>
<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-row
:gutter=
"10"
style=
"margin-top: 15px"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"发票抬头"
prop=
"invoiceTitle"
>
<el-input
v-model=
"form.invoiceTitle"
placeholder=
"请输入发票抬头"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"纳税人识别号"
prop=
"licenseNumber"
>
<el-input
v-model=
"form.licenseNumber"
placeholder=
"请输入纳税人识别号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开户行"
prop=
"bank"
>
<el-input
v-model=
"form.bank"
placeholder=
"请输入开户行"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"账户"
prop=
"bankNumber"
>
<el-input
v-model=
"form.bankNumber"
placeholder=
"请输入账户"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目"
prop=
"project"
>
<el-input
v-model=
"form.project"
placeholder=
"请输入项目"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开票地址"
prop=
"billingAddress"
>
<el-input
v-model=
"form.billingAddress"
placeholder=
"请输入开票地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开票电话"
prop=
"billingTell"
>
<el-input
v-model=
"form.billingTell"
placeholder=
"请输入开票电话"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"税率"
prop=
"taxRate"
>
<el-input
v-model=
"form.taxRate"
placeholder=
"请输入税率"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
...
...
@@ -407,10 +458,13 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
import
{
uploadFile
}
from
"
@/api/infra/file
"
;
import
upload
from
'
@/components/ImageUpload
'
import
{
getNodeList
}
from
"
@/api/ecw/node
"
export
default
{
name
:
"
Customer
"
,
components
:
{
upload
},
data
()
{
return
{
...
...
@@ -448,12 +502,25 @@ export default {
// 表单校验
rules
:
{
name
:
[{
required
:
true
,
message
:
"
客户名称不能为空
"
,
trigger
:
"
blur
"
}],
weightUnit
:
[{
required
:
true
,
message
:
"
重货标准(CBM)不能为空
"
,
trigger
:
"
blur
"
}],
}
country
:
[{
required
:
true
,
message
:
"
国家不能为空
"
,
trigger
:
"
blur
"
}],
level
:
[{
required
:
true
,
message
:
"
客户等级不能为空
"
,
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
"
客户类别不能为空
"
,
trigger
:
"
blur
"
}],
// createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source
:
[{
required
:
true
,
message
:
"
客户来源不能为空
"
,
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
"
跟进客服不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
客户状态不能为空
"
,
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
"
创建人不能为空
"
,
trigger
:
"
blur
"
}],
},
// 网点
nodeList
:
[],
showLine
:
false
};
},
created
()
{
this
.
getList
();
// getNodeList().then(r => {
// this.nodeList = r.data
// })
},
methods
:
{
/** 查询列表 */
...
...
@@ -496,6 +563,7 @@ export default {
picture
:
undefined
,
customerService
:
undefined
,
customerContacts
:
[],
customerLines
:
[],
promoter
:
undefined
,
status
:
undefined
,
founder
:
undefined
,
...
...
@@ -527,25 +595,27 @@ export default {
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加客户
"
;
this
.
$router
.
push
(
'
/customer/edit/0
'
)
// this.reset();
// this.open = true;
// this.title = "添加客户";
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getCustomer
(
id
).
then
(
response
=>
{
this
.
form
=
{
...
this
.
form
,
...
response
.
data
};
this
.
open
=
true
;
this
.
title
=
"
修改客户
"
;
});
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
// this.form = { ...this.form, ...response.data };
// this.open = true;
// this.title = "修改客户";
// });
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
//
return;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
...
...
src/views/ecw/customer/view.vue
0 → 100644
View file @
4c322233
<
template
>
<view>
<el-row
type=
"flex"
style=
"margin-top: 15px;margin-bottom: 15px"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"16"
>
<h2></h2>
<el-row
:gutter=
"10"
>
<el-col>
<h2>
查看
</h2>
</el-col>
<el-col>
<el-button
type=
"primary"
>
主要按钮
</el-button>
<el-button
type=
"primary"
>
主要按钮
</el-button>
<el-button
type=
"primary"
>
主要按钮
</el-button>
<el-button
type=
"primary"
>
主要按钮
</el-button>
<el-button
type=
"primary"
>
主要按钮
</el-button>
<el-button
type=
"danger"
>
危险按钮
</el-button>
</el-col>
</el-row>
</el-col>
</el-row>
</view>
</
template
>
<
script
>
export
default
{
name
:
'
view
'
}
</
script
>
<
style
scoped
>
</
style
>
src/views/ecw/productBrank/index.vue
View file @
4c322233
...
...
@@ -2,7 +2,7 @@
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"
68
px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"
120
px"
>
<el-form-item
label=
"品牌中文标题"
prop=
"titleZh"
>
<el-input
v-model=
"queryParams.titleZh"
placeholder=
"请输入品牌中文标题"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
...
...
@@ -20,7 +20,7 @@
<!--
</el-form-item>
-->
<el-form-item
label=
"是否备案"
prop=
"filing"
>
<el-select
v-model=
"queryParams.filing"
placeholder=
"请选择是否备案"
clearable
size=
"small"
>
<el-option
v-for=
"dict in
this.
getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
...
...
@@ -79,8 +79,8 @@
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"
8
0px"
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"
12
0px"
>
<el-form-item
label=
"品牌中文标题"
prop=
"titleZh"
>
<el-input
v-model=
"form.titleZh"
placeholder=
"请输入品牌中文标题"
/>
</el-form-item>
...
...
@@ -98,12 +98,32 @@
<!-- </el-form-item>-->
<el-form-item
label=
"是否备案"
prop=
"filing"
>
<el-select
v-model=
"form.filing"
placeholder=
"请选择是否备案"
>
<el-option
v-for=
"dict in this.
getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-select
v-model=
"form.filing"
placeholder=
"请选择是否备案"
>
<el-option
v-for=
"dict in
getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-form>
<h3>
包含商标列表
</h3>
<el-form
ref=
"form"
:model=
"brand"
label-width=
"80px"
v-for=
"(brand, index) in brands"
:key=
"index"
>
<el-form-item
label=
"商标"
>
<el-input
v-model=
"brand.name"
placeholder=
"商标"
></el-input>
</el-form-item>
<el-form-item
label=
"商标分类"
>
<el-select
v-model=
"brand.type"
placeholder=
"placeholder"
>
<el-option
v-for=
"item in []"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</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>
...
...
@@ -124,6 +144,8 @@ export default {
},
data
()
{
return
{
getDictDatas
,
DICT_TYPE
,
// 遮罩层
loading
:
true
,
// 导出遮罩层
...
...
@@ -154,6 +176,7 @@ export default {
rules
:
{
},
recordStatus
:
getDictDatas
(
DICT_TYPE
.
BRAND_REG_TYPE
),
brands
:
[{
name
:
''
,
type
:
''
}]
};
},
created
()
{
...
...
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