Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CRM
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
华国豪
CRM
Commits
c564e44d
Commit
c564e44d
authored
Feb 12, 2020
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增较多文件,模块,组件,页面
parent
2718bc8e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
3539 additions
and
744 deletions
+3539
-744
App.vue
src/App.vue
+1
-1
customerManage.css
src/assets/css/customerManage.css
+86
-0
init.css
src/assets/css/init.css
+27
-2
Activity.vue
src/components/assembly/Activity.vue
+601
-0
Agreement.vue
src/components/assembly/Agreement.vue
+28
-0
Business.vue
src/components/assembly/Business.vue
+28
-0
Contacts.vue
src/components/assembly/Contacts.vue
+110
-0
Details.vue
src/components/assembly/Details.vue
+203
-0
Enclosure.vue
src/components/assembly/Enclosure.vue
+28
-0
MoneyBack.vue
src/components/assembly/MoneyBack.vue
+28
-0
Record.vue
src/components/assembly/Record.vue
+29
-0
TeamMembers.vue
src/components/assembly/TeamMembers.vue
+28
-0
addContacts.vue
src/components/assembly/addContacts.vue
+236
-0
customerDialogBox.vue
src/components/assembly/customerDialogBox.vue
+743
-0
customerInfoBox.vue
src/components/assembly/customerInfoBox.vue
+238
-0
select.vue
src/components/assembly/select.vue
+0
-0
aa.vue
src/components/customerManage/aa.vue
+872
-0
customerManage.vue
src/components/customerManage/customerManage.vue
+253
-741
No files found.
src/App.vue
View file @
c564e44d
...
...
@@ -28,7 +28,7 @@ export default {
<
style
>
@import
'./assets/global/font.css'
;
@import
'//at.alicdn.com/t/font_1627123_
qxpux1x1ujg
.css'
;
@import
'//at.alicdn.com/t/font_1627123_
xkwify0v9p
.css'
;
/* @import './assets/css/common.css'; */
@import
'./assets/css/init.css'
;
@import
'./assets/css/tablevoerride.css'
;
...
...
src/assets/css/customerManage.css
0 → 100644
View file @
c564e44d
.customerManage
.tools
{
display
:
flex
;
justify-content
:
space-between
;
padding-bottom
:
20px
;
border-bottom
:
1px
solid
rgba
(
226
,
228
,
235
,
1
);
align-items
:
center
;
}
.customerManage
.tools
h1
{
font-weight
:
bold
;
font-size
:
18px
;
}
.customerManage
.tools
.rightmenu
{
display
:
flex
;
align-items
:
center
;
}
.customerManage
.tools
.gaoji
{
font-size
:
12px
;
font-weight
:
400
;
color
:
rgba
(
13
,
36
,
129
,
1
);
margin-right
:
35px
;
cursor
:
pointer
;
}
.customerManage
.tools
.gaoji
:hover
{
color
:
rgba
(
13
,
36
,
129
,
.8
);
}
.customerManage
.tools
.gaoji
.iconfont
{
font-size
:
12px
;
padding-left
:
5px
;
}
.customerManage
.query-box
{
padding
:
15px
10px
;
background-color
:
white
;
}
.customerManage
.table-btn
{
display
:
inline-block
;
width
:
24px
;
height
:
24px
;
line-height
:
24px
;
text-align
:
center
;
cursor
:
pointer
;
margin-right
:
10px
;
}
.customerManage
.table-btn.blue
{
color
:
rgba
(
13
,
36
,
129
,
1
);
background-color
:
rgba
(
13
,
36
,
129
,
.3
);
}
.customerManage
.table-btn.org
{
color
:
#FFA475
;
background-color
:
rgba
(
255
,
164
,
117
,
.3
);
}
.customerManage
.table-btn.green
{
color
:
rgba
(
148
,
184
,
119
,
1
);
background-color
:
rgba
(
148
,
184
,
119
,
.3
);
}
.customerManage
.table-btn.blue
:hover
{
background-color
:
rgba
(
13
,
36
,
129
,
.5
);
}
.customerManage
.table-btn.org
:hover
{
background-color
:
rgba
(
255
,
164
,
117
,
.5
);
}
.customerManage
.table-btn.green
:hover
{
background-color
:
rgba
(
148
,
184
,
119
,
.5
);
}
.customerManage
.add-box1
.el-dialog
{
min-width
:
760px
;
}
.customerManage
.add-box1
.el-tag.el-tag--info
{
background-color
:
rgba
(
0
,
0
,
0
,
0
);
border-color
:
rgba
(
0
,
0
,
0
,
0
);
display
:
inline-block
;
white-space
:
nowrap
;
width
:
60%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.customerManage
.add-box2
.el-tag.el-tag--info
{
background-color
:
rgba
(
0
,
0
,
0
,
0
);
border-color
:
rgba
(
0
,
0
,
0
,
0
);
display
:
inline-block
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.customerManage
.add-box2
.el-form-item__label
{
text-align
:
left
;
}
\ No newline at end of file
src/assets/css/init.css
View file @
c564e44d
...
...
@@ -24,8 +24,7 @@ table { border-collapse:collapse; border-spacing:0; }
}
.crm-btn.el-button
{
border-radius
:
0
;
padding
:
8px
0
;
width
:
90px
;
padding
:
8px
10px
;
text-align
:
center
;
margin-right
:
20px
;
}
...
...
@@ -133,6 +132,10 @@ table { border-collapse:collapse; border-spacing:0; }
background
:
rgba
(
13
,
36
,
129
,
1
);
border-radius
:
0
;
}
.MyEditForm
.MyEditForm-item
.form-check
.el-form-item__label
{
display
:
block
;
width
:
100%
;
}
.cp
{
cursor
:
pointer
;
}
...
...
@@ -150,6 +153,18 @@ table { border-collapse:collapse; border-spacing:0; }
.font-color-danger
{
color
:
#F56C6C
!important
;
}
.font-color-info
{
color
:
#909399
!important
;
}
textarea
{
resize
:
none
!important
;
}
.el-dialog__wrapper
{
background-color
:
rgb
(
245
,
246
,
249
);
}
.el-dialog
{
box-shadow
:
2px
1px
3px
0px
rgba
(
0
,
0
,
0
,
.3
)
}
/* 字体大小 */
.font-size-12
{
font-size
:
12px
;
...
...
@@ -160,4 +175,14 @@ table { border-collapse:collapse; border-spacing:0; }
.flex-center
{
display
:
flex
;
align-items
:
center
;
}
/* padding */
.pad-left-10
{
padding-left
:
10px
;
}
/* margin */
.margin-right0
{
margin-right
:
0
!important
;
}
\ No newline at end of file
src/components/assembly/Activity.vue
0 → 100644
View file @
c564e44d
This diff is collapsed.
Click to expand it.
src/components/assembly/Agreement.vue
0 → 100644
View file @
c564e44d
<
style
>
</
style
>
<
template
>
<div
class=
"Agreement"
>
Agreement
</div>
</
template
>
<
script
>
export
default
{
props
:{
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/Business.vue
0 → 100644
View file @
c564e44d
<
style
>
</
style
>
<
template
>
<div
class=
"Business"
>
Business
</div>
</
template
>
<
script
>
export
default
{
props
:{
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/Contacts.vue
0 → 100644
View file @
c564e44d
<
style
>
.Contacts
.add-contacts
{
text-align
:
right
;
padding
:
10px
0
;
}
.Contacts
td
{
font-size
:
12px
;
}
</
style
>
<
template
>
<div
class=
"Contacts"
>
<div
class=
"add-contacts"
>
<el-button
icon=
"el-icon-plus"
class=
"crm-btn query-btn margin-right0"
@
click=
"addContactsShow=true"
>
新建联系人
</el-button>
</div>
<el-table
v-loading=
"loading"
stripe
ref=
"multipleTable"
:data=
"ContactList"
tooltip-effect=
"dark"
style=
"width: 100%"
row-class-name=
"font-size-12"
>
<el-table-column
prop=
"ContactName"
label=
"姓名"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"ContactPhone"
label=
"手机"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"ContactDutyStr"
label=
"职务"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"IsFirstContact"
label=
"操作"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<p
v-if=
"scope.row.IsFirstContact === 1"
class=
"font-color-warning"
>
首要联系人
</p>
<p
v-else
class=
"font-color-link cp"
@
click=
"SetFirstContact(scope)"
>
设为首要联系人
</p>
</
template
>
</el-table-column>
</el-table>
<div
v-if=
"addContactsShow"
>
<addContacts
:ID=
"CustomerId"
@
addContactsOk=
"addContactsOk"
/>
</div>
</div>
</template>
<
script
>
import
addContacts
from
"./addContacts"
;
export
default
{
components
:
{
addContacts
},
props
:{
CustomerId
:
{
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
addContactsShow
:
false
,
ContactList
:
[],
};
},
watch
:{
CustomerId
:
{
handler
(
val
,
oldVal
){
this
.
GetContactByCustomerID
()
},
deep
:
true
}
},
mounted
()
{
let
$this
=
this
this
.
MsgBus
.
$on
(
'closeaddContacts'
,
function
(){
$this
.
addContactsShow
=
false
})
this
.
GetContactByCustomerID
()
},
methods
:
{
addContactsOk
(){
this
.
GetContactByCustomerID
()
},
SetFirstContact
(
scope
){
this
.
apipost
(
'/api/Customer/SetFirstContact'
,
{
CustomerId
:
this
.
CustomerId
,
ID
:
scope
.
row
.
ID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
'操作成功'
);
this
.
GetContactByCustomerID
();
}
})
},
GetContactByCustomerID
(){
if
(
this
.
CustomerId
===
0
)
return
this
.
loading
=
true
this
.
apipost
(
'/api/Customer/GetContactByCustomerID'
,
{
CustomerId
:
this
.
CustomerId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
loading
=
false
this
.
ContactList
=
res
.
data
.
data
}
})
},
}
}
</
script
>
\ No newline at end of file
src/components/assembly/Details.vue
0 → 100644
View file @
c564e44d
<
style
>
.Details
{
padding
:
17px
20px
;
margin-top
:
20px
;
background-color
:
white
;
height
:
calc
(
100%
-
54px
);
overflow-y
:
auto
;
font-size
:
12px
}
.Details
.Details_box
.tit
{
border
:
4px
solid
rgba
(
13
,
36
,
129
,
1
);
border-top
:
0
;
border-bottom
:
0
;
border-right
:
0
;
padding-left
:
10px
;
font-size
:
14px
;
color
:
#111
;
font-weight
:
bold
;
}
.Details_box_row
{
margin-top
:
30px
;
}
.Details_box_lable
{
color
:
#999999
}
</
style
>
<
template
>
<div
class=
"Details"
>
<div
class=
"Details_box"
>
<p
class=
"tit"
>
基本信息
</p>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
负责人:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
PersonChargeStr
}}
</el-col>
</el-row>
</el-col>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
客户来源:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
CustomerSourceTypeStr
}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
经营场所:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
PremisesStr
}}
</el-col>
</el-row>
</el-col>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
客户级别:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
CustomerIdLevelStr
}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
客户名称:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
CustomerName
}}
</el-col>
</el-row>
</el-col>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
手机:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
ContactNumber
}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
备注:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
Remark
}}
</el-col>
</el-row>
</el-col>
</el-row>
</div>
<div
class=
"Details_box"
>
<p
class=
"tit"
style=
"margin-top: 30px;"
>
系统信息
</p>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
获取客户时间:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
PersonChargeTime
}}
</el-col>
</el-row>
</el-col>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
更新时间:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
UpdateTime
?
detailsData
.
UpdateTime
.
replace
(
'T'
,
' '
)
:
detailsData
.
UpdateTime
}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
创建人:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
CreateByStr
}}
</el-col>
</el-row>
</el-col>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
创建时间:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
CreateTime
?
detailsData
.
CreateTime
.
replace
(
'T'
,
' '
)
:
detailsData
.
CreateTime
}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row
:gutter=
"40"
class=
"Details_box_row"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
最后跟进记录:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
LastFollowUpContent
}}
</el-col>
</el-row>
</el-col>
<el-col
:span=
"12"
>
<el-row>
<el-col
:span=
"6"
class=
"Details_box_lable"
>
最后跟进时间:
</el-col>
<el-col
:span=
"14"
>
{{
detailsData
.
LastFollowUpTime
}}
</el-col>
</el-row>
</el-col>
</el-row>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:{
detailsData
:
{
type
:
Object
,
default
:
{}
}
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/Enclosure.vue
0 → 100644
View file @
c564e44d
<
style
>
</
style
>
<
template
>
<div
class=
"Enclosure"
>
Enclosure
</div>
</
template
>
<
script
>
export
default
{
props
:{
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/MoneyBack.vue
0 → 100644
View file @
c564e44d
<
style
>
</
style
>
<
template
>
<div
class=
"MoneyBack"
>
MoneyBack
</div>
</
template
>
<
script
>
export
default
{
props
:{
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/Record.vue
0 → 100644
View file @
c564e44d
<
style
>
</
style
>
<
template
>
<div
class=
"Record"
>
Record
</div>
</
template
>
<
script
>
export
default
{
props
:{
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/TeamMembers.vue
0 → 100644
View file @
c564e44d
<
style
>
</
style
>
<
template
>
<div
class=
"TeamMembers"
>
TeamMembers
</div>
</
template
>
<
script
>
export
default
{
props
:{
},
data
()
{
return
{
};
},
watch
:{
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
\ No newline at end of file
src/components/assembly/addContacts.vue
0 → 100644
View file @
c564e44d
<
style
>
.addContacts
.add-tit
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
height
:
20px
;
}
.addContacts
.add-tit
p
{
display
:
flex
;
align-items
:
center
;
font-weight
:
bold
;
color
:
rgba
(
17
,
17
,
17
,
1
);
font-size
:
14px
;
}
.addContacts
.add-tit
p
span
{
display
:
inline-block
;
width
:
6px
;
height
:
6px
;
background
:
rgba
(
13
,
36
,
129
,
1
);
border-radius
:
50%
;
margin-right
:
10px
;
}
.addContacts
.el-dialog__header
{
padding
:
15px
20px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
}
.addContacts
.dialog-footer
{
text-align
:
center
;
background-color
:
rgba
(
248
,
250
,
251
,
1
);
padding-bottom
:
20px
;
}
.addContacts
.el-dialog__footer
{
padding
:
0
;
}
.addContacts
.el-dialog__body
{
background-color
:
rgba
(
248
,
250
,
251
,
1
);
padding-top
:
20px
;
max-height
:
500px
;
overflow
:
auto
;
}
.addContacts
.add-box-btn.el-button
{
border-radius
:
0
;
background-color
:
rgba
(
13
,
36
,
129
,
.8
);
border-color
:
rgba
(
13
,
36
,
129
,
.8
);
color
:
white
;
padding
:
12px
43px
;
}
.addContacts
.add-box-btn.el-button
:hover
{
background-color
:
rgba
(
13
,
36
,
129
,
1
);
border-color
:
rgba
(
13
,
36
,
129
,
1
);
color
:
white
;
}
.addContacts
.add-box-btn.el-button.add-box-cancel
{
color
:
rgba
(
13
,
36
,
129
,
.8
);
background-color
:
white
;
}
.addContacts
.add-box-btn.el-button.add-box-cancel
:hover
{
color
:
rgba
(
13
,
36
,
129
,
1
);
background-color
:
white
;
}
</
style
>
<
template
>
<el-dialog
@
closed=
"closedDialog"
:modal=
"false"
:visible
.
sync=
"dialogTableVisible"
:close-on-click-modal=
"false"
class=
"addContacts"
>
<div
class=
"add-tit"
slot=
"title"
>
<p><span></span>
新建联系人
</p>
<span
icon=
"el-icon-close"
></span>
</div>
<div
class=
"form-box"
>
<el-form
:model=
"form"
ref=
"form"
class=
"MyEditForm"
:rules=
"rules"
>
<el-row
:gutter=
"30"
>
<el-col
:span=
"8"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"联系人"
prop=
"ContactName"
>
<el-input
placeholder=
"请输入联系人姓名"
v-model=
"form.ContactName"
></el-input>
</el-form-item>
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"电话"
prop=
"ContactPhone"
>
<el-input
placeholder=
"请输入联系电话"
v-model=
"form.ContactPhone"
></el-input>
</el-form-item>
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"职务"
prop=
"ContactDuty"
>
<el-select
v-model=
"form.ContactDuty"
placeholder=
"请选择联系人职务"
>
<el-option
v-for=
'item in zwList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row
:gutter=
"30"
>
<el-col
:span=
"8"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"性别"
prop=
"ContactDuty"
>
<el-select
v-model=
"form.Sex"
placeholder=
"请选择联系人性别"
>
<el-option
label=
'保密'
:value=
'0'
:key=
'0'
>
</el-option>
<el-option
label=
'男'
:value=
'1'
:key=
'1'
>
</el-option>
<el-option
label=
'女'
:value=
'2'
:key=
'2'
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"是否决策人"
prop=
"IsMain"
>
<el-select
v-model=
"form.IsMain"
placeholder=
"请选择是否决策人"
>
<el-option
label=
'否'
:value=
'0'
:key=
'0'
>
</el-option>
<el-option
label=
'是'
:value=
'1'
:key=
'1'
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
<div
class=
"MyEditForm-item label-pad-left"
>
<el-form-item
label=
"备注"
>
<el-input
type=
"textarea"
placeholder=
"请输入备注"
v-model=
"form.Remark"
></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
class=
"add-box-btn"
@
click=
"submitForm('form')"
>
确 定
</el-button>
<el-button
class=
"add-box-btn add-box-cancel"
@
click=
"dialogTableVisible = false, resetForm('form')"
>
取 消
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:{
ID
:
{
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
dialogTableVisible
:
true
,
rules
:
{
IsMain
:
[
{
required
:
true
,
message
:
'请选择是否决策人'
,
trigger
:
'change'
}
],
Sex
:
[
{
required
:
true
,
message
:
'请选择联系人性别'
,
trigger
:
'change'
}
],
ContactDuty
:
[
{
required
:
true
,
message
:
'请选择联系人职务'
,
trigger
:
'change'
}
],
ContactName
:
[
{
required
:
true
,
message
:
'请输入联系人姓名'
,
trigger
:
'blur'
}
],
ContactPhone
:
[
{
required
:
true
,
message
:
'请输入联系电话'
,
trigger
:
'blur'
}
],
},
zwList
:
[],
form
:
{
CustomerId
:
0
,
ContactName
:
''
,
ContactPhone
:
''
,
ContactDuty
:
''
,
Sex
:
0
,
IsMain
:
0
,
Remark
:
''
,
ID
:
0
,
}
};
},
watch
:{
},
mounted
()
{
this
.
getZw
()
let
$this
=
this
setTimeout
(()
=>
{
$this
.
dialogTableVisible
=
true
},
50
)
},
methods
:
{
getZw
()
{
this
.
apipost2
(
'app_today_visit_GetCustomerDutyEnum'
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
zwList
=
res
.
data
.
data
}
},
err
=>
{})
},
closedDialog
(){
this
.
MsgBus
.
$emit
(
'closeaddContacts'
)
},
addData
(){
this
.
form
.
CustomerId
=
this
.
ID
this
.
apipost
(
'/api/Customer/CreateMyCustomerContact'
,
this
.
form
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
resetForm
(
"form"
);
this
.
dialogTableVisible
=
false
;
this
.
$emit
(
'addContactsOk'
)
}
})
},
submitForm
(
addMsg
)
{
//提交创建、修改表单
this
.
$refs
[
addMsg
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
addData
();
}
else
{
return
false
;
}
});
},
resetForm
(
formName
)
{
// 重置表单
this
.
form
=
{
CustomerId
:
0
,
ContactName
:
''
,
ContactPhone
:
''
,
ContactDuty
:
''
,
Sex
:
''
,
IsMain
:
''
,
Remark
:
''
,
ID
:
0
,
}
this
.
$refs
[
formName
].
resetFields
();
},
}
}
</
script
>
\ No newline at end of file
src/components/assembly/customerDialogBox.vue
0 → 100644
View file @
c564e44d
This diff is collapsed.
Click to expand it.
src/components/assembly/customerInfoBox.vue
0 → 100644
View file @
c564e44d
<
style
>
.drawer-box
{
height
:
100%
;
}
.drawer-header
{
height
:
83px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
0
30px
;
}
.drawer-header
.left
{
display
:
flex
;
align-items
:
center
;
}
.drawer-header
.left
img
{
display
:
inline-block
;
margin-right
:
10px
;
}
.drawer-body
{
height
:
calc
(
100%
-
83px
);
}
.drawer-body
.top-info
{
height
:
115px
;
padding
:
30px
;
box-sizing
:
border-box
;
font-size
:
12px
;
background-color
:
#F6F4FC
;
}
.drawer-body
.top-info
.info-lable
{
display
:
inline-block
;
width
:
80px
;
color
:
#999999
;
}
.margin-bottom-25
{
margin-bottom
:
25px
;
}
.drawer-box
.el-tabs__nav-wrap
::after
{
height
:
0
;
}
.drawer-body
.el-tabs__header
{
padding
:
0
25px
;
margin-bottom
:
0
;
}
.drawer-body
.content
{
height
:
calc
(
100%
-
115px
);
}
.drawer-body
.el-tabs
{
height
:
100%
;
}
.drawer-body
.el-tabs__content
{
background-color
:
#F6F4FC
;
padding
:
0
20px
20px
20px
;
height
:
calc
(
100%
-
40px
);
box-sizing
:
border-box
;
}
</
style
>
<
template
>
<div
class=
"drawer-box"
v-if=
"loading"
>
<div
class=
"drawer-header"
>
<div
class=
"left"
>
<img
src=
"../../assets/img/cust/kehu2.png"
alt=
""
>
<p>
{{
detailsData
.
CustomerName
}}
</p>
</div>
<div
class=
"right"
>
<el-button
class=
"crm-btn query-btn"
@
click=
"editCust"
>
编辑
</el-button>
<el-button
class=
"crm-btn easy-btn iconfont iconwancheng"
>
更改成交状态
</el-button>
<el-dropdown
@
command=
"handleCommand"
style=
"top: 1px;"
>
<el-button
class=
"crm-btn crm-btn-more easy-btn margin-right0"
>
<i
class=
"iconfont icongengduo"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"z"
><i
class=
"iconfont iconplus-transfer"
></i>
转移111
</el-dropdown-item>
<el-dropdown-item
command=
"g"
><i
class=
"iconfont icongonghaiguanli"
></i>
放入公海
</el-dropdown-item>
<el-dropdown-item
command=
"s"
><i
class=
"iconfont iconsuoguan"
></i>
锁定
</el-dropdown-item>
<el-dropdown-item
command=
"j"
><i
class=
"iconfont iconsuokai"
></i>
解锁
</el-dropdown-item>
<el-dropdown-item
command=
"d"
><i
class=
"iconfont icondelete"
></i>
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div
class=
"drawer-body"
>
<div
class=
"top-info"
>
<el-row
class=
"margin-bottom-25"
>
<el-col
:span=
"12"
>
<span
class=
"info-lable"
>
客户级别:
</span><span>
{{
detailsData
.
CustomerIdLevelStr
}}
</span>
</el-col>
<el-col
:span=
"12"
>
<span
class=
"info-lable"
>
成交状态:
</span><span
>
已成交
</span>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<span
class=
"info-lable"
>
负责人:
</span><span>
{{
detailsData
.
Contact
}}
</span>
</el-col>
<el-col
:span=
"12"
>
<span
class=
"info-lable"
>
更新时间:
</span><span>
{{
detailsData
.
UpdateTime
.
replace
(
'T'
,
' '
)
}}
</span>
</el-col>
</el-row>
</div>
<div
class=
"content"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"活动"
name=
"1"
>
<Activity
:CustomerId=
"CustomerId"
/>
</el-tab-pane>
<el-tab-pane
label=
"详细资料"
name=
"2"
>
<Details
:detailsData=
"detailsData"
/>
</el-tab-pane>
<el-tab-pane
label=
"联系人"
name=
"3"
>
<Contacts
:CustomerId=
"CustomerId"
/>
</el-tab-pane>
<el-tab-pane
label=
"团队成员"
name=
"4"
>
<TeamMembers
/>
</el-tab-pane>
<el-tab-pane
label=
"商机"
name=
"5"
>
<Business
/>
</el-tab-pane>
<el-tab-pane
label=
"合同"
name=
"6"
>
<Agreement
/>
</el-tab-pane>
<el-tab-pane
label=
"回款"
name=
"7"
>
<MoneyBack
/>
</el-tab-pane>
<el-tab-pane
label=
"附件"
name=
"8"
>
<Enclosure
/>
</el-tab-pane>
<el-tab-pane
label=
"操作记录"
name=
"9"
>
<Record
/>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</
template
>
<
script
>
import
Activity
from
"./Activity"
;
import
Details
from
"./Details"
;
import
Contacts
from
"./Contacts"
;
import
TeamMembers
from
"./TeamMembers"
;
import
Business
from
"./Business"
;
import
Agreement
from
"./Agreement"
;
import
MoneyBack
from
"./MoneyBack"
;
import
Enclosure
from
"./Enclosure"
;
import
Record
from
"./Record"
;
export
default
{
components
:
{
Activity
,
Details
,
Contacts
,
TeamMembers
,
Business
,
Agreement
,
MoneyBack
,
Enclosure
,
Record
},
props
:{
CustomerId
:
{
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
activeName
:
'1'
,
detailsData
:
{},
loading
:
false
,
};
},
watch
:{
CustomerId
:
{
handler
(
val
,
oldVal
){
this
.
init
()
},
deep
:
true
}
},
mounted
()
{
let
$this
=
this
$this
.
init
()
// 监听修改更新界面
this
.
MsgBus
.
$on
(
'RefreshInfoBox'
,
function
()
{
$this
.
init
()
})
},
methods
:
{
init
(){
this
.
apipost
(
'/api/Customer/GetAllCustmersModel'
,
{
CustomerId
:
this
.
CustomerId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
if
(
!
data
.
HousePhotos
){
data
.
HousePhotos
=
[]
}
if
(
!
data
.
BusinessCardPhotos
){
data
.
BusinessCardPhotos
=
[]
}
if
(
!
data
.
Images
){
data
.
Images
=
[]
}
if
(
!
data
.
CustomerSourceType
){
data
.
CustomerSourceType
=
''
}
if
(
!
data
.
CustomerSource
){
data
.
CustomerSource
=
''
}
if
(
!
data
.
Province
){
data
.
Province
=
''
}
if
(
!
data
.
Country
){
data
.
Country
=
''
}
if
(
!
data
.
City
){
data
.
City
=
''
}
if
(
!
data
.
District
){
data
.
District
=
''
}
this
.
detailsData
=
data
this
.
loading
=
true
}
})
},
handleCommand
(
command
){
if
(
command
===
'z'
)
{
this
.
$emit
(
'transferS'
,
3
);
}
else
if
(
command
===
'g'
)
{
this
.
$emit
(
'watersS'
,
1
)
}
},
handleClick
(
tab
,
event
)
{},
editCust
(){
this
.
$emit
(
'editCustS'
,
1
)
},
handleClose
(
done
)
{
done
();
}
}
}
</
script
>
\ No newline at end of file
src/components/
select
/select.vue
→
src/components/
assembly
/select.vue
View file @
c564e44d
File moved
src/components/customerManage/aa.vue
0 → 100644
View file @
c564e44d
This diff is collapsed.
Click to expand it.
src/components/customerManage/customerManage.vue
View file @
c564e44d
This diff is collapsed.
Click to expand it.
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