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
8fbf42af
Commit
8fbf42af
authored
May 18, 2022
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
f94a3e4d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
685 deletions
+39
-685
clueManagement.vue
src/components/clueManagement/clueManagement.vue
+8
-682
index.js
src/plugins/index.js
+2
-1
dayStatistics.vue
src/views/workstatistics/dayStatistics.vue
+29
-2
No files found.
src/components/clueManagement/clueManagement.vue
View file @
8fbf42af
...
...
@@ -6,703 +6,29 @@
}
</
style
>
<
template
>
<div
class=
"customerManage"
>
<div
class=
"tools"
>
<div
class=
"tools-item"
>
<h1>
线索管理
</h1>
</div>
<div
style=
"width: 340px;"
>
<el-input
placeholder=
"请输入线索名称/手机"
v-model=
"CustomerTypeText"
class=
"input-with-select"
>
<el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"getList"
></el-button>
</el-input>
</div>
<div
class=
"rightmenu"
>
<el-dropdown
@
command=
"handleCommand"
>
<el-button
icon=
"el-icon-plus"
class=
"crm-btn org-btn"
>
新建线索
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"1"
><i
class=
"iconfont iconkehu"
></i>
客户线索
</el-dropdown-item>
<el-dropdown-item
command=
"2"
><i
class=
"iconfont icontongxunlu"
></i>
直客线索
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown
@
command=
"handleCommand"
>
<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=
"3"
><i
class=
"iconfont icondaoru"
></i>
导入客户线索
</el-dropdown-item>
<el-dropdown-item
command=
"4"
><i
class=
"iconfont icondaoru"
></i>
导入直客线索
</el-dropdown-item>
<!--
<el-dropdown-item><i
class=
"iconfont icondaochu"
></i>
导出
</el-dropdown-item>
-->
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div
class=
"query-box"
:style=
"
{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<el-row
v-if=
"!multipleSelection.length"
:gutter=
"30"
>
<el-col
:span=
"4"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
场景
</span>
<el-popover
placement=
"bottom"
width=
"180"
popper-class=
"popover-class"
v-model=
"visible"
trigger=
"click"
>
<div
data-v-16d669bb=
""
class=
"scene-container"
>
<div
class=
"scene-list"
>
<div
class=
"scene-list-item"
:class=
"
{'scene-list-item-select': sceneID === item.ID}"
v-for="(item, index) in SceneEmployeeList" :key="index" @click="changeWhere(item)">
{{
item
.
SceneName
}}
</div>
</div>
<div
class=
"handle-interval"
>
<div
class=
"vux-flexbox handle-button vux-flex-row"
@
click=
"MsgBus.$emit('sceneBoxShow', 4, 1)"
>
<i
class=
"el-icon-circle-plus-outline handle-button-icon"
></i>
<div
class=
"handle-button-name"
>
新建场景
</div>
</div>
<div
class=
"vux-flexbox handle-button vux-flex-row"
@
click=
"MsgBus.$emit('sceneEditBoxShow', 4, SceneEmployeeList)"
>
<i
class=
"el-icon-setting handle-button-icon"
></i>
<div
class=
"handle-button-name"
>
管理
</div>
</div>
</div>
</div>
<el-select
size=
"mini"
popper-class=
"select-no"
slot=
"reference"
v-model=
"msg.ID"
placeholder=
"请选择"
>
<el-option
v-for=
"item in SceneEmployeeList"
:key=
"item.ID"
:label=
"item.SceneName"
:value=
"item.ID"
>
</el-option>
</el-select>
</el-popover>
</el-col>
<el-col
:span=
"4"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
客户类型
</span>
<el-select
size=
"mini"
v-model=
"msg.CustomerType"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
key=
"0"
label=
"客户"
:value=
"0"
></el-option>
<el-option
key=
"1"
label=
"直客"
:value=
"1"
></el-option>
</el-select>
</el-col>
<el-col
:span=
"4"
>
<el-button
icon=
"iconfont iconshaixuan"
class=
"crm-btn query-btn crm-btn-mini margin-right0"
@
click=
"MsgBus.$emit('sceneBoxShow', 4)"
>
高级筛选
</el-button>
</el-col>
</el-row>
<div
v-else
class=
"flex-center"
>
<p
class=
"font-size-12"
>
已选
<span
class=
"font-color-link"
>
{{
multipleSelection
.
length
}}
</span>
项
</p>
<div
class=
"selection-box"
>
<el-button
v-for=
"(item, index) in selectionList"
:key=
"index"
@
click=
"item.myFun"
><i
:class=
"item.class"
></i>
{{
item
.
name
}}
</el-button>
</div>
</div>
<div
class=
"scene-wrapper"
v-if=
"sceneList.length > 0"
>
<ul
class=
"list"
>
<li
class=
"list-item"
v-for=
"(item, index) in sceneList"
:key=
"index"
>
<span
v-if=
"item.formType !== 'datetime'"
>
{{
item
.
str
}}
{{
item
.
regionStr
}}
“
{{
item
.
nameFC
?
item
.
nameFC
:
item
.
value
}}
”
</span>
<span
v-else
>
{{
item
.
str
}}
“
{{
item
.
start
}}
-
{{
item
.
end
}}
”
</span>
<i
class=
"el-icon-close icon"
@
click=
"deleteScene(index)"
></i>
</li>
</ul>
</div>
</div>
<div
class=
"page-content"
>
<el-table
v-if=
"loading"
v-loading=
"true"
:data=
"[]"
>
<el-table-column
v-for=
"(item, index) in queryType2"
:key=
"index"
:label=
"item.label"
>
</el-table-column>
</el-table>
<el-table
v-if=
"!loading"
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
:height=
"sceneList.length > 0 ? '600' : '660'"
border
row-class-name=
"font-size-12"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
fixed
type=
"selection"
width=
"40"
></el-table-column>
<el-table-column
prop=
"ClueState"
label=
"线索状态"
show-overflow-tooltip
width=
"80"
>
<template
slot-scope=
"scope"
>
<template
v-if=
"scope.row.ClueState==1"
>
正常
</
template
>
<
template
v-else-if=
"scope.row.ClueState==2"
>
无效
</
template
>
</template>
</el-table-column>
<el-table-column
prop=
"ClueName"
label=
"线索名称"
v-if=
"queryType[0].show"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
@
click=
"openDetails(scope)"
class=
"font-color-link cp"
>
{{
msg
.
CustomerType
===
1
?
scope
.
row
.
ClueName
:
scope
.
row
.
CustomerName
}}
</p>
</
template
>
</el-table-column>
<el-table-column
prop=
"CustomerSourceTypeStr"
label=
"线索来源"
v-if=
"queryType[1].show"
show-overflow-tooltip
width=
"80"
>
</el-table-column>
<!--CustomerSource其他的来源 -->
<el-table-column
prop=
"SourceAccountName"
label=
"来源细分"
v-if=
"queryType[2].show && msg.CustomerType === 1"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"ClueDemand"
label=
"需求"
v-if=
"queryType[3].show && msg.CustomerType === 1"
show-overflow-tooltip
width=
"260"
>
</el-table-column>
<el-table-column
prop=
"CustomerLevelStr"
label=
"客户级别"
sortable
width=
"100"
v-if=
"queryType[4].show && msg.CustomerType === 0"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"Contact"
label=
"联系人"
v-if=
"queryType[5].show&&msg.CustomerType!=1"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"CustomerName"
label=
"联系人"
v-if=
"queryType[5].show&&msg.CustomerType===1"
show-overflow-tooltip
width=
"100"
>
</el-table-column>
<el-table-column
prop=
"ContactNumber"
label=
"联系电话"
sortable
v-if=
"queryType[6].show"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"WeChatNo"
label=
"微信号"
sortable
v-if=
"queryType[7].show && msg.CustomerType === 1"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"PersonChargeStr"
label=
"负责人"
sortable
v-if=
"queryType[8].show && msg.CustomerType === 1"
show-overflow-tooltip
width=
"90"
>
</el-table-column>
<el-table-column
prop=
"CreateByStr"
label=
"创建人"
sortable
v-if=
"queryType[9].show"
show-overflow-tooltip
width=
"90"
>
</el-table-column>
<el-table-column
prop=
"UpdateTime"
label=
"上次更新时间"
sortable
v-if=
"queryType[10].show"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
UpdateTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"CreateTimestr"
label=
"创建时间"
sortable
v-if=
"queryType[11].show"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"IsCarefor"
fixed=
"right"
width=
"50"
label=
"关注"
>
<
template
slot-scope=
"scope"
>
<p>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"关注"
placement=
"top"
>
<i
v-if=
"scope.row.IsCarefor === 0"
@
click=
"CareforCustomer(scope)"
class=
"iconfont iconwujiaoxing cp"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"取消关注"
placement=
"top"
>
<i
v-if=
"scope.row.IsCarefor === 1"
@
click=
"CareforCustomer(scope)"
class=
"iconfont iconstar_full cp"
></i>
</el-tooltip>
</p>
</
template
>
</el-table-column>
<el-table-column
width=
"40"
fixed=
"right"
>
<
template
slot=
"header"
slot-scope=
"scope"
>
<el-popover
placement=
"bottom"
width=
"240"
>
<mySelect
:queryType=
"queryType"
@
listenTochildEvent=
"showMessageFromChild"
/>
<i
class=
"el-icon-s-operation cp"
slot=
"reference"
></i>
</el-popover>
</
template
>
</el-table-column>
</el-table>
</div>
<div>
<el-pagination
class=
"Mypagination"
background
@
current-change=
"handleCurrentChange"
:page-sizes=
"[30, 60, 90, 100]"
:page-size=
"msg.pageSize"
layout=
"total, sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
:total=
"total"
>
</el-pagination>
</div>
<el-drawer
:with-header=
"false"
size=
'70%'
:visible
.
sync=
"isShowCustomerInfo"
direction=
"rtl"
:before-close=
"handleClose"
>
<customerInfoBox
:CustomerId=
"CustomerId"
@
transferS=
"transfer"
@
deleteClue=
"deleteClue"
@
watersS=
"waters"
@
editCustS=
"editCust"
@
getList=
"getList"
/>
</el-drawer>
<el-drawer
:with-header=
"false"
size=
'70%'
:visible
.
sync=
"isShowGuestInfo"
direction=
"rtl"
:before-close=
"handleClose"
>
<guestInfoBox
:CustomerId=
"CustomerId"
@
transferS=
"transfer"
@
deleteClue=
"deleteClue"
@
watersS=
"waters"
@
editCustS=
"editCust"
@
getList=
"getList"
/>
</el-drawer>
<div
v-if=
"dialogTableVisible"
>
<customerDialogBox
@
getList=
"getList"
:name=
"dialogTableVisibleName"
:CustomerId=
"CustomerId"
/>
</div>
<div
v-if=
"guestDialogBoxShow"
>
<guestDialogBox
@
getList=
"getList"
:name=
"dialogTableVisibleName"
:CustomerId=
"CustomerId"
/>
</div>
<!--显示导入弹窗-->
<div
v-if=
"isShowImport"
>
<importDialogBox
@
getList=
"getList"
:importType=
"importType"
/>
</div>
<el-dialog
:visible
.
sync=
"transferVisible"
:close-on-click-modal=
"false"
width=
"450px"
custom-class=
"transfer-box add-box add-box2"
>
<div
class=
"add-tit"
slot=
"title"
>
<p><span></span>
线索转移
</p>
<span
icon=
"el-icon-close"
></span>
</div>
<el-form
:model=
"transferMsg"
ref=
"form"
class=
"MyEditForm"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"变更负责人为"
class=
"label-pad-left"
>
<el-select
filterable
v-model=
"transferMsg.EmpId"
placeholder=
"请选择"
>
<el-option
v-for=
"item in EmployeeList"
:label=
'item.EmName'
:value=
'item.EmployeeId'
:key=
'item.EmployeeId'
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
class=
"add-box-btn"
@
click=
"transfer(2)"
>
确 定
</el-button>
<el-button
class=
"add-box-btn add-box-cancel"
@
click=
"transferVisible = false"
>
取 消
</el-button>
</div>
</el-dialog>
<div>
<clueComponent
:isDrawer=
"isDrawer"
></clueComponent>
</div>
</
template
>
<
script
>
import
mySelect
from
"../dialogModel/select"
;
import
customerInfoBox
from
"./customerInfoBox"
;
import
customerDialogBox
from
"./customerDialogBox"
;
import
guestDialogBox
from
"./guestDialogBox"
;
import
guestInfoBox
from
"./guestInfoBox"
;
import
importDialogBox
from
"./importDialogBox"
;
import
clueComponent
from
"./clueComponent"
;
export
default
{
components
:
{
mySelect
,
customerInfoBox
,
customerDialogBox
,
guestDialogBox
,
guestInfoBox
,
importDialogBox
,
clueComponent
},
data
()
{
return
{
ruleList
:
[],
guestDialogBoxShow
:
false
,
isShowGuestInfo
:
false
,
//是否显示直客弹窗
activeMenu
:
1
,
queryType2
:
[{
label
:
'线索名称'
,
show
:
true
,
},
{
label
:
'线索来源'
,
show
:
true
,
},
{
label
:
'来源细分'
,
show
:
true
,
},
{
label
:
'需求'
,
show
:
true
,
},
{
label
:
'客户级别'
,
show
:
true
,
},
{
label
:
'联系人'
,
show
:
true
,
},
{
label
:
'联系电话'
,
show
:
true
,
},
{
label
:
'微信'
,
show
:
true
,
},
{
label
:
'负责人'
,
show
:
true
,
},
{
label
:
'创建人'
,
show
:
true
,
},
{
label
:
'上次更新时间'
,
show
:
true
,
},
{
label
:
'创建时间'
,
show
:
true
,
}],
queryType
:
[{
label
:
'线索名称'
,
show
:
true
,
},
{
label
:
'线索来源'
,
show
:
true
,
},
{
label
:
'来源细分'
,
show
:
true
,
},
{
label
:
'需求'
,
show
:
true
,
},
{
label
:
'客户级别'
,
show
:
true
,
},
{
label
:
'联系人'
,
show
:
true
,
},
{
label
:
'联系电话'
,
show
:
true
,
},
{
label
:
'微信'
,
show
:
true
,
},
{
label
:
'负责人'
,
show
:
true
,
},
{
label
:
'创建人'
,
show
:
true
,
},
{
label
:
'上次更新时间'
,
show
:
true
,
},
{
label
:
'创建时间'
,
show
:
true
,
}],
CustomerId
:
0
,
CustomerIdStr
:
''
,
transferVisible
:
false
,
mySelectCtrl
:
false
,
isShowCustomerInfo
:
false
,
//是否显示客户弹窗
loading
:
true
,
dialogTableVisible
:
false
,
dialogTableVisibleName
:
'新建线索'
,
tableData
:
[],
multipleSelection
:
[],
EmployeeList
:
[],
value
:
''
,
userInfo
:
{},
transferMsg
:
{
CustomerIds
:
[],
EmpId
:
''
,
},
CustomerTypeText
:
""
,
// 线索名称搜索
msg
:
{
KeyWord
:
''
,
CustomerName
:
''
,
Contact
:
''
,
pageIndex
:
1
,
pageSize
:
30
,
ContactNumber
:
''
,
WhereType
:
-
1
,
OrderBy
:
''
,
CustomerType
:
1
,
ID
:
33
,
},
total
:
0
,
selectionList
:
[{
name
:
'转移'
,
class
:
'iconfont iconplus-transfer'
,
myFun
:
this
.
transfer
},
{
name
:
'转化为客户'
,
class
:
'iconfont iconplus-transfer'
,
myFun
:
this
.
waters
},
{
name
:
'删除'
,
class
:
'iconfont icondelete'
,
myFun
:
this
.
deleteClue
}],
sceneList
:
[],
SceneEmployeeList
:
[],
sceneID
:
33
,
visible
:
false
,
isShowImport
:
false
,
//是否显示导入弹窗
importType
:
1
,
//导入文件类型(1-客户导入,2-直客导入)
isDrawer
:
true
};
},
mounted
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
getList
()
this
.
Employee
()
let
$this
=
this
this
.
MsgBus
.
$on
(
'closeCustomerDialogBox'
,
function
()
{
$this
.
dialogTableVisible
=
false
;
$this
.
guestDialogBoxShow
=
false
;
$this
.
isShowImport
=
false
;
})
this
.
GetSceneEmployeeList
()
this
.
MsgBus
.
$on
(
'sceneSave'
,
function
(
msg
)
{
$this
.
sceneList
=
[...
msg
]
$this
.
GetSceneEmployeeList
()
let
obj
=
{}
msg
.
forEach
(
element
=>
{
obj
[
element
.
name
]
=
element
});
$this
.
msg
.
Data
=
obj
$this
.
getList
()
})
this
.
MsgBus
.
$on
(
'editScene'
,
function
()
{
$this
.
GetSceneEmployeeList
()
})
},
beforeDestroy
()
{
this
.
MsgBus
.
$off
(
'sceneSave'
);
this
.
MsgBus
.
$off
(
'editScene'
);
},
methods
:
{
changeWhere
(
item
)
{
this
.
msg
.
ID
=
item
.
ID
this
.
sceneID
=
item
.
ID
this
.
msg
.
Data
=
item
.
WhereData
?
JSON
.
parse
(
item
.
WhereData
)
:
{}
this
.
msg
.
WhereType
=
item
.
WhereType
this
.
visible
=
false
this
.
getList
()
},
GetSceneEmployeeList
()
{
this
.
apipost
(
'/api/Scene/GetSceneEmployeeList'
,
{
LableType
:
4
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
SceneEmployeeList
=
res
.
data
.
data
}
})
},
deleteScene
(
index
)
{
this
.
sceneList
.
splice
(
index
,
1
)
let
obj
=
{}
this
.
sceneList
.
forEach
(
element
=>
{
obj
[
element
.
name
]
=
element
});
this
.
msg
.
Data
=
obj
this
.
getList
()
},
handleCommand
(
command
)
{
this
.
CustomerId
=
0
if
(
command
===
'1'
)
{
this
.
dialogTableVisibleName
=
'新建线索'
this
.
dialogTableVisible
=
true
}
else
if
(
command
===
'2'
)
{
this
.
guestDialogBoxShow
=
true
}
else
if
(
command
===
'3'
)
{
this
.
importType
=
1
;
this
.
isShowImport
=
true
;
}
else
if
(
command
===
'4'
)
{
this
.
importType
=
2
;
this
.
isShowImport
=
true
;
}
},
Employee
()
{
let
msg
=
{
RB_Group_id
:
this
.
userInfo
.
RB_Group_id
,
BranchId
:
-
1
,
DepartmentId
:
0
,
PostId
:
0
,
IsLeave
:
0
,
}
this
.
apipost2
(
"admin_get_EmployeeGetList"
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EmployeeList
=
res
.
data
.
data
;
}
else
{}
},
err
=>
{}
);
},
//删除
deleteClue
(
type
)
{
let
tips
=
'确定将这些线索删除?'
if
(
type
===
1
)
{
tips
=
'是否把线索“'
+
this
.
CustomerName
+
'”删除?'
this
.
multipleSelection
.
push
(
this
.
CustomerId
)
}
this
.
$confirm
(
tips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
let
str
=
''
this
.
multipleSelection
.
map
((
x
,
i
)
=>
{
str
=
str
+
x
+
','
})
this
.
apipost
(
'/api/Customer/DelCustomerClue'
,
{
CustomerIds
:
str
.
substring
(
0
,
str
.
length
-
1
)
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
type
===
1
)
{}
{
this
.
isShowCustomerInfo
=
false
this
.
isShowGuestInfo
=
false
}
this
.
multipleSelection
=
[]
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
()
}
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
},
//导出
export
()
{
},
//转换为客户
waters
(
type
)
{
let
tips
=
'确定将这些线索转换为客户吗?'
if
(
type
===
1
)
{
tips
=
'是否把线索“'
+
this
.
CustomerName
+
'”转换为客户吗?'
this
.
multipleSelection
.
push
(
this
.
CustomerId
)
}
this
.
$confirm
(
tips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
let
str
=
''
this
.
multipleSelection
.
map
((
x
,
i
)
=>
{
str
=
str
+
x
+
','
})
let
msg
=
{
CustomerIds
:
str
.
substring
(
0
,
str
.
length
-
1
),
CustomerType
:
this
.
msg
.
CustomerType
}
this
.
apipost
(
'/api/Customer/UpdateCustomerClue'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
type
===
1
)
{}
{
this
.
isShowCustomerInfo
=
false
this
.
isShowGuestInfo
=
false
}
this
.
multipleSelection
=
[]
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
()
}
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
},
// 关注
CareforCustomer
(
scope
)
{
this
.
apipost
(
'/api/Customer/CareforCustomer'
,
{
CustomerCreateId
:
scope
.
row
.
CustomerCreateId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
'操作成功'
);
this
.
getList
()
}
})
},
// 转移
transfer
(
type
)
{
if
(
type
!==
2
)
{
if
(
type
===
3
)
{
this
.
multipleSelection
.
push
(
this
.
CustomerId
)
}
if
(
this
.
ruleList
.
length
==
0
)
{
this
.
transferVisible
=
true
}
else
{
let
tips
=
'系统已开启自动分配,无法指定推送,是否继续推送?'
this
.
$confirm
(
tips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
let
ids
if
(
this
.
CustomerId
)
{
ids
=
this
.
CustomerId
}
else
{
ids
=
this
.
multipleSelection
.
join
(
','
)
}
this
.
apipost
(
'/api/Customer/AutoTransferCustomer'
,
{
IDs
:
ids
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
()
}
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
}
}
else
{
if
(
this
.
transferMsg
.
EmpId
===
''
)
{
return
this
.
$message
.
error
(
'请选择变更负责人!'
)
}
let
str
=
''
this
.
multipleSelection
.
map
((
x
,
i
)
=>
{
str
=
str
+
x
+
','
})
this
.
transferMsg
.
CustomerIds
=
str
.
substring
(
0
,
str
.
length
-
1
)
this
.
apipost
(
'/api/Customer/TransferCustomerClue'
,
this
.
transferMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
multipleSelection
=
[]
this
.
transferVisible
=
false
if
(
type
===
3
)
{}
{
this
.
isShowCustomerInfo
=
false
this
.
isShowGuestInfo
=
false
}
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
()
this
.
transferMsg
=
{
CustomerIds
:
[],
EmpId
:
''
,
}
}
})
}
},
showMessageFromChild
(
list
)
{
this
.
mySelectCtrl
=
!
this
.
mySelectCtrl
if
(
list
)
{
this
.
queryType
=
list
this
.
getList
()
}
},
editCust
(
type
)
{
this
.
dialogTableVisibleName
=
'修改线索'
if
(
type
===
1
)
{
this
.
dialogTableVisible
=
true
}
else
{
this
.
guestDialogBoxShow
=
true
}
},
openDetails
(
scope
)
{
this
.
CustomerId
=
scope
.
row
.
CustomerId
this
.
CustomerName
=
scope
.
row
.
CustomerName
if
(
this
.
msg
.
CustomerType
===
0
)
{
this
.
isShowCustomerInfo
=
true
}
else
{
this
.
isShowGuestInfo
=
true
}
},
// 获取是否开启规则
GetCustomerAllotRule
()
{
this
.
apipost
(
'/api/Customer/GetCustomerAllotRule'
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ruleList
=
res
.
data
.
data
.
EmpList
}
})
},
handleSizeChange
(
val
)
{
this
.
msg
.
pageSize
=
val
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
handleClose
(
done
)
{
done
();
},
getList
:
function
(
isclose
)
{
if
(
isclose
&&
isclose
==
1
)
{
this
.
isShowGuestInfo
=
false
;
}
if
(
this
.
msg
.
CustomerType
!=
1
){
this
.
msg
.
CustomerName
=
this
.
CustomerTypeText
this
.
msg
.
KeyWord
=
""
}
else
{
this
.
msg
.
KeyWord
=
this
.
CustomerTypeText
this
.
msg
.
CustomerName
=
""
}
this
.
tableData
=
[]
this
.
loading
=
true
this
.
apipost
(
'/api/Customer/GetCustomerCluePage'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
tableData
=
res
.
data
.
data
.
pageData
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
loading
=
false
;
}
})
if
(
this
.
msg
.
CustomerType
==
1
)
{
// 获取是否开启规则
this
.
GetCustomerAllotRule
()
}
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
.
map
(
x
=>
x
.
CustomerId
)
}
}
};
</
script
>
\ No newline at end of file
src/plugins/index.js
View file @
8fbf42af
...
...
@@ -13,7 +13,8 @@ export default {
Vue
.
prototype
.
domainManager
=
function
()
{
//CRM API
let
domainUrl
=
""
;
domainUrl
=
"http://192.168.10.36:8098"
;
domainUrl
=
"http://192.168.10.46:8500"
;
// domainUrl = "http://192.168.10.36:8098";
//domainUrl = "http://localhost:5003";
let
locationName
=
window
.
location
.
hostname
;
//旅游ERPApi
...
...
src/views/workstatistics/dayStatistics.vue
View file @
8fbf42af
...
...
@@ -28,7 +28,10 @@
</div>
<div
class=
"page-content"
style=
"padding-bottom:20px;"
>
<el-table
:data=
"tableData"
tooltip-effect=
"dark"
v-loading=
"loading"
style=
"width: 100%;height:100%;"
border
:cell-class-name=
"tableCellClassName"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"DateStr"
label=
""
>
<el-table-column>
<template
slot-scope=
"scope"
>
<span
class=
"pointer"
@
click=
"seeDetails(scope.row)"
>
{{
scope
.
row
.
DateStr
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"PushCount"
label=
"引流总数"
>
</el-table-column>
...
...
@@ -64,13 +67,23 @@
</el-table-column>
</el-table>
</div>
<el-drawer
:with-header=
"false"
size=
'70%'
:visible
.
sync=
"drawer"
direction=
"rtl"
:before-close=
"handleClose"
>
<clueComponent
:isDrawer=
"isDrawer"
:queryTime=
"queryTime"
></clueComponent>
</el-drawer>
</div>
</template>
<
script
>
import
clueComponent
from
"@/components/clueManagement/clueComponent"
;
export
default
{
components
:
{
clueComponent
},
data
()
{
return
{
queryTime
:
''
,
drawer
:
false
,
isDrawer
:
true
,
msg
:
{
month
:
""
,
YearStr
:
""
,
...
...
@@ -91,6 +104,14 @@ export default {
this
.
init
();
},
methods
:
{
handleClose
(
done
)
{
done
();
},
// 查看详情
seeDetails
(
row
){
this
.
drawer
=
true
this
.
queryTime
=
this
.
msg
.
YearStr
+
'-'
+
row
.
DateStr
},
init
()
{
if
(
this
.
loading
)
return
;
this
.
loading
=
true
;
...
...
@@ -122,7 +143,7 @@ export default {
},
tableCellClassName
({
row
,
column
})
{
if
(
row
[
column
.
property
].
toString
().
indexOf
(
"-"
)
!=
-
1
&&
row
[
column
.
property
]
&&
row
[
column
.
property
]
.
toString
().
indexOf
(
"-"
)
!=
-
1
&&
column
.
property
!=
"DateStr"
)
{
return
"warning-col"
;
...
...
@@ -181,4 +202,10 @@ export default {
.el-table
.warning-col
{
background
:
red
;
}
.pointer
{
cursor
:
pointer
;
}
.pointer
:hover
{
color
:
#00b0f0
;
}
</
style
>
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