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
7cea1560
Commit
7cea1560
authored
May 18, 2023
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
7467ba7c
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
2043 additions
and
2137 deletions
+2043
-2137
clueComponent.vue
src/components/clueManagement/clueComponent.vue
+799
-824
payroll.vue
src/components/dev/payroll.vue
+118
-87
allList.vue
src/components/myOrdersAllType/components/allList.vue
+555
-592
apipost.js
src/plugins/apipost.js
+47
-50
domainManager.js
src/plugins/domainManager.js
+1
-1
index.js
src/plugins/index.js
+0
-1
CustomerOperation.vue
src/views/customerSet/components/CustomerOperation.vue
+2
-6
addfield.vue
src/views/customerSet/components/addfield.vue
+129
-103
businessModel.vue
src/views/customerSet/components/businessModel.vue
+4
-8
clueRule.vue
src/views/customerSet/components/clueRule.vue
+0
-3
customerField.vue
src/views/customerSet/components/customerField.vue
+0
-2
customerPhase.vue
src/views/customerSet/components/customerPhase.vue
+131
-180
laqundistribution.vue
src/views/customerSet/components/laqundistribution.vue
+0
-4
DrainageRankingStatistics.vue
src/views/workstatistics/DrainageRankingStatistics.vue
+257
-276
No files found.
src/components/clueManagement/clueComponent.vue
View file @
7cea1560
<
style
>
@import
"../../assets/css/customerManage.css"
;
@import
"../../assets/css/customerManage.css"
;
.el-table__fixed-body-wrapper
table
{
.el-table__fixed-body-wrapper
table
{
padding-bottom
:
8px
!important
;
}
}
.clueTitle
{
.clueTitle
{
padding
:
20px
20px
0
20px
;
}
}
</
style
>
<
template
>
<div
class=
"customerManage"
style=
"display:flex;flex-direction:column;height:100%;"
>
...
...
@@ -47,8 +47,7 @@
<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"
>
<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}"
...
...
@@ -56,8 +55,7 @@
{{item.SceneName}}
</div>
</div>
<div
class=
"handle-interval"
>
<div
class=
"vux-flexbox handle-button vux-flex-row"
@
click=
"MsgBus.$emit('sceneBoxShow', 4, 1)"
>
<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>
...
...
@@ -69,10 +67,8 @@
</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-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>
...
...
@@ -92,8 +88,7 @@
<div
v-else
class=
"flex-center"
>
<p
class=
"font-size-12"
>
已选
<span
class=
"font-color-link"
>
{{multipleSelection.length}}
</span>
项
</p>
<div
class=
"selection-box"
>
<div
v-for=
"(item, index) in selectionList"
:key=
"index"
>
<div
v-for=
"(item, index) in selectionList"
:key=
"index"
>
<
template
v-if=
"item.show"
>
<el-button
@
click=
"item.myFun"
>
<i
:class=
"item.class"
></i>
{{
item
.
name
}}
...
...
@@ -120,8 +115,7 @@
</el-table-column>
</el-table>
<el-table
v-if=
"!loading"
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
height=
"100%"
border
row-class-name=
"font-size-12"
@
selection-change=
"handleSelectionChange"
>
height=
"100%"
border
row-class-name=
"font-size-12"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
v-if=
"!isDrawer"
fixed
type=
"selection"
width=
"40"
></el-table-column>
<el-table-column
prop=
"ClueState"
label=
"线索状态"
show-overflow-tooltip
width=
"80"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -139,12 +133,12 @@
{{
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
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
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"
>
...
...
@@ -152,33 +146,29 @@
<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
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
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
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
>
<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
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"
>
...
...
@@ -212,12 +202,12 @@
</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"
<customerInfoBox
:CustomerId=
"CustomerId"
@
transferS=
"transferClue
"
@
deleteClue=
"deleteClue"
@
watersS=
"waters"
@
editCustS=
"editCust"
@
getList=
"getList"
:activeNameNum=
"activeNameNum"
:receiptType=
"receiptType"
/>
</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"
<guestInfoBox
:CustomerId=
"CustomerId"
@
transferS=
"transferClue
"
@
deleteClue=
"deleteClue"
@
watersS=
"waters"
@
editCustS=
"editCust"
@
getList=
"getList"
/>
</el-drawer>
<div
v-if=
"dialogTableVisible"
>
...
...
@@ -248,20 +238,20 @@
</div>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
class=
"add-box-btn"
@
click=
"transfer
(2)"
>
确 定
</el-button>
<el-button
type=
"primary"
class=
"add-box-btn"
@
click=
"transferClue
(2)"
>
确 定
</el-button>
<el-button
class=
"add-box-btn add-box-cancel"
@
click=
"transferVisible = false"
>
取 消
</el-button>
</div>
</el-dialog>
</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"
;
export
default
{
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"
;
export
default
{
props
:
{
isDrawer
:
{
type
:
Boolean
,
...
...
@@ -305,8 +295,7 @@ export default {
guestDialogBoxShow
:
false
,
isShowGuestInfo
:
false
,
//是否显示直客弹窗
activeMenu
:
1
,
queryType2
:
[
{
queryType2
:
[{
label
:
"线索名称"
,
show
:
true
,
},
...
...
@@ -355,8 +344,7 @@ export default {
show
:
true
,
},
],
queryType
:
[
{
queryType
:
[{
label
:
"线索名称"
,
show
:
true
,
},
...
...
@@ -421,6 +409,7 @@ export default {
transferMsg
:
{
CustomerIds
:
[],
EmpId
:
""
,
CustomerType
:
0
,
//0-客户,1-直客
},
CustomerTypeText
:
""
,
// 线索名称搜索
msg
:
{
...
...
@@ -437,11 +426,10 @@ export default {
IsSelectAdmin
:
0
,
},
total
:
0
,
selectionList
:
[
{
selectionList
:
[{
name
:
"转移"
,
class
:
"iconfont iconplus-transfer"
,
myFun
:
this
.
transfer
,
myFun
:
this
.
transferClue
,
show
:
true
,
},
{
...
...
@@ -464,11 +452,11 @@ export default {
isShowImport
:
false
,
//是否显示导入弹窗
importType
:
1
,
//导入文件类型(1-客户导入,2-直客导入)
IsSelectAdminList
:
[],
//是否是线索管理员
erpOrderObj
:
{}
erpOrderObj
:
{}
};
},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
erpOrderObj
)
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
erpOrderObj
)
{
this
.
erpOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
erpOrderObj
)
let
data
=
{
condition
:
"is"
,
...
...
@@ -486,12 +474,12 @@ export default {
this
.
userInfo
=
this
.
getLocalStorage
();
let
$this
=
this
;
this
.
MsgBus
.
$on
(
"closeCustomerDialogBox"
,
function
()
{
this
.
MsgBus
.
$on
(
"closeCustomerDialogBox"
,
function
()
{
$this
.
dialogTableVisible
=
false
;
$this
.
guestDialogBoxShow
=
false
;
$this
.
isShowImport
=
false
;
});
this
.
MsgBus
.
$on
(
"sceneSave"
,
function
(
msg
)
{
this
.
MsgBus
.
$on
(
"sceneSave"
,
function
(
msg
)
{
$this
.
sceneList
=
[...
msg
];
$this
.
GetSceneEmployeeList
();
let
obj
=
{};
...
...
@@ -501,7 +489,7 @@ export default {
$this
.
msg
.
Data
=
obj
;
$this
.
getList
();
});
this
.
MsgBus
.
$on
(
"editScene"
,
function
()
{
this
.
MsgBus
.
$on
(
"editScene"
,
function
()
{
$this
.
GetSceneEmployeeList
();
});
this
.
GetConfigCuleAdmin
();
...
...
@@ -557,8 +545,7 @@ export default {
},
GetSceneEmployeeList
()
{
this
.
apipost
(
"/api/Scene/GetSceneEmployeeList"
,
{
"/api/Scene/GetSceneEmployeeList"
,
{
LableType
:
4
,
},
(
res
)
=>
{
...
...
@@ -606,8 +593,7 @@ export default {
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EmployeeList
=
res
.
data
.
data
;
}
else
{
}
}
else
{}
},
(
err
)
=>
{}
);
...
...
@@ -630,16 +616,13 @@ export default {
str
=
str
+
x
+
","
;
});
this
.
apipost
(
"/api/Customer/DelCustomerClue"
,
{
"/api/Customer/DelCustomerClue"
,
{
CustomerIds
:
str
.
substring
(
0
,
str
.
length
-
1
),
CustomerType
:
this
.
msg
.
CustomerType
,
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
type
===
1
)
{
}
{
if
(
type
===
1
)
{}
{
this
.
isShowCustomerInfo
=
false
;
this
.
isShowGuestInfo
=
false
;
}
...
...
@@ -658,7 +641,7 @@ export default {
});
},
//导出
export
()
{},
export
()
{},
//转换为客户
waters
(
type
)
{
let
tips
=
"确定将这些线索转换为客户吗?"
;
...
...
@@ -682,9 +665,7 @@ export default {
};
this
.
apipost
(
"/api/Customer/UpdateCustomerClue"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
type
===
1
)
{
}
{
if
(
type
===
1
)
{}
{
this
.
isShowCustomerInfo
=
false
;
this
.
isShowGuestInfo
=
false
;
}
...
...
@@ -704,8 +685,7 @@ export default {
// 关注
CareforCustomer
(
scope
)
{
this
.
apipost
(
"/api/Customer/CareforCustomer"
,
{
"/api/Customer/CareforCustomer"
,
{
CustomerCreateId
:
scope
.
row
.
CustomerCreateId
,
},
(
res
)
=>
{
...
...
@@ -717,7 +697,7 @@ export default {
);
},
// 转移
transfer
(
type
)
{
transferClue
(
type
)
{
if
(
type
!==
2
)
{
if
(
type
===
3
)
{
this
.
multipleSelection
.
push
(
this
.
CustomerId
);
...
...
@@ -739,8 +719,7 @@ export default {
ids
=
this
.
multipleSelection
.
join
(
","
);
}
this
.
apipost
(
"/api/Customer/AutoTransferCustomer"
,
{
"/api/Customer/AutoTransferCustomer"
,
{
IDs
:
ids
,
},
(
res
)
=>
{
...
...
@@ -766,6 +745,7 @@ export default {
this
.
multipleSelection
.
map
((
x
,
i
)
=>
{
str
=
str
+
x
+
","
;
});
this
.
transferMsg
.
CustomerType
=
this
.
msg
.
CustomerType
;
this
.
transferMsg
.
CustomerIds
=
str
.
substring
(
0
,
str
.
length
-
1
);
this
.
apipost
(
"/api/Customer/TransferCustomerClue"
,
...
...
@@ -774,18 +754,15 @@ export default {
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
multipleSelection
=
[];
this
.
transferVisible
=
false
;
if
(
type
===
3
)
{
}
{
if
(
type
===
3
)
{}
{
this
.
isShowCustomerInfo
=
false
;
this
.
isShowGuestInfo
=
false
;
}
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
();
this
.
transferMsg
=
{
CustomerIds
:
[],
EmpId
:
""
,
};
this
.
transferMsg
.
CustomerIds
=
[];
this
.
transferMsg
.
EmpId
=
""
;
this
.
transferMsg
.
CustomerType
=
0
;
}
}
);
...
...
@@ -838,7 +815,7 @@ export default {
handleClose
(
done
)
{
done
();
},
getList
:
function
(
isclose
)
{
getList
:
function
(
isclose
)
{
if
(
isclose
&&
isclose
==
1
)
{
this
.
isShowGuestInfo
=
false
;
}
...
...
@@ -855,8 +832,6 @@ export default {
if
(
!
this
.
isDrawer
)
{
url
=
"/api/Customer/GetCustomerCluePage"
;
}
else
{
// this.msg.StartTime = this.queryTime && this.queryTime.StartTime;
// this.msg.EndTime = this.queryTime && this.queryTime.EndTime;
delete
this
.
msg
.
ClueState
;
delete
this
.
msg
.
CustomerSourceType
;
delete
this
.
msg
.
OrderType
;
...
...
@@ -879,5 +854,5 @@ export default {
this
.
multipleSelection
=
val
.
map
((
x
)
=>
x
.
CustomerId
);
},
},
};
};
</
script
>
\ No newline at end of file
src/components/dev/payroll.vue
View file @
7cea1560
...
...
@@ -10,37 +10,40 @@
<el-row
:gutter=
"20"
style=
"position: relative;"
>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
期数:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.PeriodsId"
placeholder=
"请选择"
@
change=
"getList"
>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.PeriodsId"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
label=
"不限"
:value=
"-1"
></el-option>
<el-option
v-for=
"item in PeroidsList"
:key=
"item.Id"
:label=
"item.Periods"
:value=
"item.Id"
>
</el-option>
<el-option
v-for=
"item in PeroidsList"
:key=
"item.Id"
:label=
"item.Periods"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"13"
:sm=
"14"
:md=
"15"
:lg=
"16"
:xl=
"17"
v-if=
"PredictData.State==1"
>
<div
style=
"text-align: right;position: absolute;right: 20px;top: 0;font-size: 14px;"
>
{{
PredictData
.
EmpType
==
1
?
'当月预期利润'
:
'当月预期引流数量'
}}
<template
v-if=
"PredictData.EmpType==1"
>
<span
style=
"font-size: 16px;"
:style=
"
{'color':PredictData.OrderProfit>PredictData.LimitMoney?'red':'green'}">
{{
PredictData
.
OrderProfit
}}
</span>
<span
style=
"font-size: 16px;"
:style=
"
{'color':PredictData.OrderProfit>PredictData.LimitMoney?'red':'green'}">
{{
PredictData
.
OrderProfit
}}
</span>
<template
v-if=
"PredictData.LimitMoney>0"
>
<span
style=
"font-size: 16px;"
>
/
</span>
<span
style=
"font-size: 16px;"
>
{{
PredictData
.
LimitMoney
}}
</span>
</
template
>
<span
style=
"color: red;margin-left: 5px;"
v-if=
"PredictData.LimitMoney>0&&PredictData.LimitMoney>PredictData.OrderProfit"
>
<span
style=
"color: red;margin-left: 5px;"
v-if=
"PredictData.LimitMoney>0&&PredictData.LimitMoney>PredictData.OrderProfit"
>
目标未达成仍需努力
</span>
</template>
<
template
v-else
>
<span
style=
"font-size: 16px;"
:style=
"
{'color':PredictData.LureNum>PredictData.LimitNum?'red':'green'}">
{{
PredictData
.
LureNum
}}
</span>
<span
style=
"font-size: 16px;"
:style=
"
{'color':PredictData.LureNum>PredictData.LimitNum?'red':'green'}">
{{
PredictData
.
LureNum
}}
</span>
<template
v-if=
"PredictData.LimitNum>0"
>
<span
style=
"font-size: 16px;"
>
/
</span>
<span
style=
"font-size: 16px;"
>
{{
PredictData
.
LimitNum
}}
</span>
</
template
>
<span
style=
"color: red;margin-left: 5px;font-size: 14px;"
v-if=
"PredictData.LimitNum>0&&PredictData.LimitNum>PredictData.LureNum"
>
<span
style=
"color: red;margin-left: 5px;font-size: 14px;"
v-if=
"PredictData.LimitNum>0&&PredictData.LimitNum>PredictData.LureNum"
>
目标未达成仍需努力
</span>
</template>
...
...
@@ -78,7 +81,8 @@
</el-table-column>
<el-table-column
label=
"工资规则"
>
<
template
slot-scope=
"scope"
>
<span
:class=
"scope.row.WageReId?'cursor-p':''"
@
click=
"GenerateScale(scope.row)"
>
{{
scope
.
row
.
WageType
!=
1
?
'上季度定档'
:
'新员工比例'
}}
</span>
<span
:class=
"scope.row.WageReId?'cursor-p':''"
@
click=
"GenerateScale(scope.row)"
>
{{
scope
.
row
.
WageType
!=
1
?
'上季度定档'
:
'新员工比例'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"追加工资"
>
...
...
@@ -122,8 +126,8 @@
</div>
<div
v-if=
"total>0"
>
<el-pagination
class=
"Mypagination"
background
@
current-change=
"handleCurrentChange"
:page-sizes=
"[10, 20, 30, 60, 90, 100]"
:page-size=
"msg.pageSize"
layout=
"total, sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
:total=
"total"
>
:page-sizes=
"[10, 20, 30, 60, 90, 100]"
:page-size=
"msg.pageSize"
layout=
"total, sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
:total=
"total"
>
</el-pagination>
</div>
<!-- 查看生成比例 -->
...
...
@@ -143,29 +147,37 @@
import
commissionPopUp
from
"../dialogModel/commissionPopUp"
import
inAccordanceWith
from
"../dialogModel/inAccordanceWithDialog"
export
default
{
components
:{
components
:
{
commissionPopUp
,
inAccordanceWith
},
data
()
{
return
{
commissionPopUpVisible
:
false
,
parameters
:{},
outerVisible
:
false
,
objNew
:{},
commissionratioList
:[],
EmName
:
''
,
EmpType
:
''
,
outerVisible
:
false
,
loading
:
false
,
commissionPopUpVisible
:
false
,
parameters
:
{},
outerVisible
:
false
,
objNew
:
{},
commissionratioList
:
[],
EmName
:
''
,
EmpType
:
''
,
outerVisible
:
false
,
loading
:
false
,
PeroidsList
:
[],
titleList
:[
{
name
:
'不限'
,
id
:
'-1'
},
{
name
:
'引流规则'
,
id
:
'2'
},
{
name
:
'销售规则'
,
id
:
'1'
}
titleList
:
[{
name
:
'不限'
,
id
:
'-1'
},
{
name
:
'引流规则'
,
id
:
'2'
},
{
name
:
'销售规则'
,
id
:
'1'
}
],
dataList
:[],
total
:
0
,
dataList
:
[],
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
20
,
...
...
@@ -209,33 +221,32 @@
'rgba(196,60,141,1)'
,
'rgba(195,90,141,1)'
,
],
PredictData
:{}
PredictData
:
{}
}
},
mounted
()
{
let
$this
=
this
this
.
getList
()
this
.
GetCommissionPeroidsList
()
this
.
MsgBus
.
$on
(
"closeaddContacts"
,
function
()
{
this
.
MsgBus
.
$on
(
"closeaddContacts"
,
function
()
{
$this
.
commissionPopUpVisible
=
false
;
});
this
.
getMyCommissionMonthPredict
()
},
methods
:
{
getMyCommissionMonthPredict
(){
getMyCommissionMonthPredict
()
{
this
.
apipost
(
"/api/commission/GetMyCommissionMonthPredict"
,
{
},
"/api/commission/GetMyCommissionMonthPredict"
,
{
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
PredictData
=
res
.
data
.
data
console
.
log
(
this
.
PredictData
,
'---'
)
}
},
(
err
)
=>
{}
);
},
// 提成详情
commissionDetails
(
item
){
commissionDetails
(
item
)
{
this
.
parameters
=
item
this
.
commissionPopUpVisible
=
true
},
...
...
@@ -247,9 +258,10 @@
},
// 设置进度
setItemProgress
(
data
)
{
if
(
this
.
commissionratioList
.
AvgLureNum
>=
data
.
StartValue
&&
this
.
commissionratioList
.
AvfOrderNum
>=
data
.
EndValue
){
if
(
this
.
commissionratioList
.
AvgLureNum
>=
data
.
StartValue
&&
this
.
commissionratioList
.
AvfOrderNum
>=
data
.
EndValue
)
{
return
100
}
else
{
}
else
{
return
100
}
},
...
...
@@ -262,11 +274,12 @@
},
// 设置当前进度条状态,显示不同颜色
setItemStatus
(
data
)
{
if
(
this
.
commissionratioList
.
AvgLureNum
>=
data
.
StartValue
&&
this
.
commissionratioList
.
AvfOrderNum
>=
data
.
EndValue
){
if
(
this
.
commissionratioList
.
AvgLureNum
>=
data
.
StartValue
&&
this
.
commissionratioList
.
AvfOrderNum
>=
data
.
EndValue
)
{
return
'exception'
}
},
formatProgress
(
data
){
formatProgress
(
data
)
{
if
(
data
.
StartValue
>
0
)
{
const
s
=
data
.
StartValue
.
toString
().
slice
(
0
,
-
4
)
?
data
.
StartValue
.
toString
().
slice
(
0
,
-
4
)
:
'0'
const
e
=
data
.
StartValue
.
toString
().
slice
(
-
4
,
-
3
)
...
...
@@ -288,8 +301,8 @@
},
// 获取员工生成比例
GenerateScale
(
item
){
if
(
!
item
.
WageReId
)
{
GenerateScale
(
item
)
{
if
(
!
item
.
WageReId
)
{
return
}
this
.
objNew
=
item
...
...
@@ -297,7 +310,7 @@
},
GetCommissionPeroidsList
()
{
//期数下拉
this
.
apipost
(
"/api/Commission/GetCommissionPeroidsList"
,
{},
res
=>
{
"/api/Commission/GetCommissionPeroidsList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
PeroidsList
=
res
.
data
.
data
;
}
else
{
...
...
@@ -317,7 +330,7 @@
this
.
loading
=
false
this
.
dataList
=
res
.
data
.
data
.
pageData
this
.
total
=
res
.
data
.
data
.
count
;
}
else
{
}
else
{
this
.
loading
=
false
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
@@ -336,61 +349,79 @@
</
script
>
<
style
scoped
>
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
6
)
{
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
6
)
{
background
:
#FFE082
!important
;
}
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
7
)
{
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
7
)
{
background
:
#FFE082
!important
;
}
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
8
)
{
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
8
)
{
background
:
#FFE082
!important
;
}
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
9
)
{
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
9
)
{
background
:
#E1BEE7
!important
;
}
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
10
)
{
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
10
)
{
background
:
#E1BEE7
!important
;
}
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
11
)
{
/
deep
/
.el-table
tr
:first-child
th
:nth-child
(
11
)
{
background
:
#E1BEE7
!important
;
}
/
deep
/
.el-table
tr
td
:nth-child
(
6
)
{
/
deep
/
.el-table
tr
td
:nth-child
(
6
)
{
background
:
#FFE082
;
}
/
deep
/
.el-table
tr
td
:nth-child
(
7
)
{
/
deep
/
.el-table
tr
td
:nth-child
(
7
)
{
background
:
#FFE082
;
}
/
deep
/
.el-table
tr
td
:nth-child
(
8
)
{
/
deep
/
.el-table
tr
td
:nth-child
(
8
)
{
background
:
#FFE082
;
}
/
deep
/
.el-table
tr
td
:nth-child
(
9
)
{
/
deep
/
.el-table
tr
td
:nth-child
(
9
)
{
background
:
#E1BEE7
;
}
/
deep
/
.el-table
tr
td
:nth-child
(
10
)
{
/
deep
/
.el-table
tr
td
:nth-child
(
10
)
{
background
:
#E1BEE7
;
}
/
deep
/
.el-table
tr
td
:nth-child
(
11
)
{
/
deep
/
.el-table
tr
td
:nth-child
(
11
)
{
background
:
#E1BEE7
;
}
.cursor-p
{
.cursor-p
{
cursor
:
pointer
;
}
.cursor-p
:hover
{
.cursor-p
:hover
{
color
:
#409EFF
;
}
.red
{
.red
{
color
:
red
;
}
.black
{
.black
{
color
:
black
;
cursor
:
pointer
;
padding
:
5px
10px
5px
0
;
}
.green
{
.green
{
color
:
green
;
cursor
:
pointer
;
}
.black
:hover
,
.green
:hover
{
.black
:hover
,
.green
:hover
{
color
:
#409EFF
;
}
</
style
>
\ No newline at end of file
src/components/myOrdersAllType/components/allList.vue
View file @
7cea1560
<
style
scoped
>
@import
"../../../assets/css/customerManage.css"
;
*
{
font-family
:
"perfectFont"
;
}
.query-box
.el-row
.el-col
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
15px
;
}
.query-box
.el-row
.el-col
span
{
flex-shrink
:
0
;
}
.orderAllList
{
background-color
:
#ffffff
;
display
:
flex
;
flex-wrap
:
wrap
;
}
.orderAllList-box
{
flex
:
1
;
max-width
:
600px
;
...
...
@@ -28,30 +33,36 @@
flex-direction
:
column
;
border-radius
:
5px
;
}
.orderAllList-top
{
}
.orderAllList-top
div
{
.orderAllList-top
{}
.orderAllList-top
div
{
width
:
25%
;
float
:
left
;
}
.orderAllList-top
span
{
.orderAllList-top
span
{
font-size
:
14px
;
}
.orderAllList-top
span
:last-child
{
.orderAllList-top
span
:last-child
{
margin-left
:
10px
;
}
.red
{
color
:
#f72e52
;
}
.blue
{
color
:
#3a7cf7
;
}
.status-box
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-end
;
}
.status-text
{
display
:
flex
;
flex-direction
:
row
;
...
...
@@ -59,13 +70,14 @@
margin-left
:
15px
;
font-size
:
13px
;
}
.tis-k
{
width
:
10px
;
height
:
10px
;
margin-right
:
10px
;
}
</
style
>
<
template
>
</
style
>
<
template
>
<div
class=
"customerManage"
>
<div
class=
"tools"
>
<h1>
{{
pagesTitle
==
'销售'
?
'订单管理'
:
'订单统计管理'
}}
</h1>
...
...
@@ -81,30 +93,16 @@
@
change=
"handleCurrentChange(1)"
@
keyup
.
enter
.
native=
"handleCurrentChange(1)"
></el-input>
</el-col>
<el-col
v-if=
"pagesTitle!='销售'"
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
业务员
</span
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
业务员
</span>
<el-select
size=
"mini"
v-model=
"msg.EnterId"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item, index) in EmployeeList"
:key=
"index"
:label=
"item.EmName"
:value=
"item.EmployeeId"
>
<el-option
v-for=
"(item, index) in EmployeeList"
:key=
"index"
:label=
"item.EmName"
:value=
"item.EmployeeId"
>
</el-option>
</el-select>
</el-col>
<el-col
v-if=
"pagesTitle!='销售'"
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
引流人
</span
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
引流人
</span>
<el-select
size=
"mini"
v-model=
"msg.LureEmpId"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item, index) in EmployeeList"
:key=
"index"
:label=
"item.EmName"
:value=
"item.EmployeeId"
>
<el-option
v-for=
"(item, index) in EmployeeList"
:key=
"index"
:label=
"item.EmName"
:value=
"item.EmployeeId"
>
</el-option>
</el-select>
</el-col>
...
...
@@ -124,96 +122,52 @@
@
change=
"handleCurrentChange(1)"
@
keyup
.
enter
.
native=
"handleCurrentChange(1)"
></el-input>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
订单类型
</span
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
订单类型
</span>
<el-select
size=
"mini"
v-model=
"msg.OrderType"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item, index) in OrderTypeList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
<el-option
v-for=
"(item, index) in OrderTypeList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
订单状态
</span>
<el-select
size=
"mini"
v-model=
"msg.OrderState"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item,index) in OrderStatusList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
<el-option
v-for=
"(item,index) in OrderStatusList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
收款状态
</span>
<el-select
size=
"mini"
v-model=
"msg.Q_IsCollect"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item,index) in QIsCollectList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
<el-option
v-for=
"(item,index) in QIsCollectList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
报名开始
</span>
<el-date-picker
v-model=
"msg.StartTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%;"
format=
"yyyy-MM-dd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"开始日期"
>
<el-date-picker
v-model=
"msg.StartTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%;"
format=
"yyyy-MM-dd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"开始日期"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
报名结束
</span>
<el-date-picker
v-model=
"msg.EndTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%;"
format=
"yyyy-MM-dd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"结束日期"
>
<el-date-picker
v-model=
"msg.EndTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%;"
format=
"yyyy-MM-dd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"结束日期"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
出发开始
</span
>
<el-date-picker
v-model=
"msg.DepartSTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"出发开始"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
出发开始
</span>
<el-date-picker
v-model=
"msg.DepartSTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"出发开始"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
出发结束
</span
>
<el-date-picker
v-model=
"msg.DepartETime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"出发结束"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
出发结束
</span>
<el-date-picker
v-model=
"msg.DepartETime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"出发结束"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<el-button
icon=
"iconfont iconshaixuan"
class=
"crm-btn query-btn crm-btn-mini margin-right0"
<el-button
icon=
"iconfont iconshaixuan"
class=
"crm-btn query-btn crm-btn-mini margin-right0"
@
click=
"sceneShow= true"
>
高级筛选
</el-button>
</el-col>
</el-row>
...
...
@@ -295,47 +249,27 @@
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
线路
</span>
<el-select
size=
"mini"
v-model=
"msg.LineId"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item,index) in LineList"
:key=
"index"
:label=
"item.LineName"
:value=
"item.LineID"
>
</el-option>
<el-option
v-for=
"(item,index) in LineList"
:key=
"index"
:label=
"item.LineName"
:value=
"item.LineID"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
团队类型
</span>
<el-select
size=
"mini"
v-model=
"msg.TravelType"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item,index) in TravelTypeList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
<el-option
v-for=
"(item,index) in TravelTypeList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
完结开始
</span
>
<el-date-picker
v-model=
"msg.FinishSTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"机票完结开始"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
完结开始
</span>
<el-date-picker
v-model=
"msg.FinishSTime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"机票完结开始"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
完结结束
</span
>
<el-date-picker
v-model=
"msg.FinishETime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"机票完结结束"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
完结结束
</span>
<el-date-picker
v-model=
"msg.FinishETime"
@
change=
"handleCurrentChange(1)"
size=
"mini"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"机票完结结束"
>
</el-date-picker>
</el-col>
...
...
@@ -344,23 +278,31 @@
</el-dialog>
</div>
</template>
<
script
>
</template>
<
script
>
import
orderList
from
"./orderList"
;
export
default
{
components
:
{
orderList
},
props
:
[
'pagesTitle'
],
props
:
[
'pagesTitle'
],
data
()
{
return
{
SummaryList
:
[],
sceneShow
:
false
,
title
:
''
,
//op 销售
VisaList
:
[
{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"未出签"
,
Id
:
"1"
},
{
Name
:
"已出签"
,
Id
:
"2"
},
title
:
''
,
//op 销售
VisaList
:
[{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"未出签"
,
Id
:
"1"
},
{
Name
:
"已出签"
,
Id
:
"2"
},
],
MultipleChoiceList
:
[
//多选项目
...
...
@@ -403,37 +345,62 @@
EnterId
:
'0'
,
//业务员id
OrderState
:
1
,
//订单状态
Q_IsCollect
:
"0"
,
//收款状态
StartTime
:
""
,
//报名开始日期
EndTime
:
""
,
//报名结束日期
FinishSTime
:
""
,
//完结开始时间
FinishETime
:
""
,
//完结结束时间
DepartSTime
:
""
,
//出发开始
DepartETime
:
""
,
//出发结束
TCNUM
:
""
,
//团号
ProductName
:
""
,
//商品名称
CustomerName
:
""
,
//客户名称
LureEmpId
:
"0"
,
//引流人员
LineId
:
"0"
,
//线路
TravelType
:
0
,
//跟团类型 1跟团 2当地游
OrderType
:
"0"
,
//订单类型
IsSelectCRM
:
1
,
//1来源crm
IsMyOrder
:
1
,
//1我的订单
StartTime
:
""
,
//报名开始日期
EndTime
:
""
,
//报名结束日期
FinishSTime
:
""
,
//完结开始时间
FinishETime
:
""
,
//完结结束时间
DepartSTime
:
""
,
//出发开始
DepartETime
:
""
,
//出发结束
TCNUM
:
""
,
//团号
ProductName
:
""
,
//商品名称
CustomerName
:
""
,
//客户名称
LureEmpId
:
"0"
,
//引流人员
LineId
:
"0"
,
//线路
TravelType
:
0
,
//跟团类型 1跟团 2当地游
OrderType
:
"0"
,
//订单类型
IsSelectCRM
:
1
,
//1来源crm
IsMyOrder
:
1
,
//1我的订单
},
ticketingStatusList
:
[],
// 出票状态
OrderStatusList
:
[
{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'正常'
,
Id
:
1
},
{
Name
:
'取消'
,
Id
:
2
}],
OrderStatusList
:
[{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'正常'
,
Id
:
1
},
{
Name
:
'取消'
,
Id
:
2
}
],
OrderTypeList
:
[],
TravelTypeList
:
[
{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'跟团'
,
Id
:
1
},
{
Name
:
'当地游'
,
Id
:
2
}
TravelTypeList
:
[{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'跟团'
,
Id
:
1
},
{
Name
:
'当地游'
,
Id
:
2
}
],
QIsCollectList
:
[
{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"已收齐"
,
Id
:
"1"
},
{
Name
:
"未收齐"
,
Id
:
"2"
},
QIsCollectList
:
[{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"已收齐"
,
Id
:
"1"
},
{
Name
:
"未收齐"
,
Id
:
"2"
},
],
EmployeeList
:
[],
// 业务员数据
userInfo
:
{},
...
...
@@ -444,9 +411,9 @@
pagesTitle
:
{
handler
(
val
,
oldVal
)
{
this
.
title
=
val
if
(
this
.
title
!=
'OP'
)
{
if
(
this
.
title
!=
'OP'
)
{
this
.
msg
.
IsMyOrder
=
1
}
else
{
}
else
{
this
.
msg
.
IsMyOrder
=
0
}
},
...
...
@@ -456,9 +423,9 @@
mounted
()
{
this
.
msg
.
StartTime
=
this
.
getBeforeDate
(
31
,
new
Date
())
this
.
msg
.
EndTime
=
this
.
formatDate
(
new
Date
(),
"YYYY-MM-dd"
,
0
)
if
(
this
.
title
!=
'OP'
)
{
if
(
this
.
title
!=
'OP'
)
{
this
.
msg
.
IsMyOrder
=
1
}
else
{
}
else
{
this
.
msg
.
IsMyOrder
=
0
}
this
.
userInfo
=
this
.
getLocalStorage
();
...
...
@@ -468,15 +435,15 @@
let
data
=
JSON
.
parse
(
this
.
$route
.
query
.
erpOrderObj
);
this
.
msg
.
OrderId
=
data
.
OrderId
;
}
this
.
getLineList
();
//线路
this
.
getLineList
();
//线路
this
.
Employee
();
//业务员
this
.
GetOrderTypeEnumList
();
//订单状态枚举
let
$this
=
this
;
this
.
MsgBus
.
$on
(
"closeGetList"
,
function
()
{
this
.
MsgBus
.
$on
(
"closeGetList"
,
function
()
{
$this
.
getList
();
});
$this
.
MsgBus
.
$on
(
"closeBillMaking"
,
function
()
{
$this
.
MsgBus
.
$on
(
"closeBillMaking"
,
function
()
{
for
(
let
i
=
0
;
i
<
$this
.
dataList
.
length
;
i
++
)
{
$this
.
dataList
[
i
].
checkList
=
[];
$this
.
dataList
[
i
].
selectedType
=
""
;
...
...
@@ -534,8 +501,7 @@
EmployeeId
:
"0"
,
};
this
.
EmployeeList
.
unshift
(
data
);
}
else
{
}
}
else
{}
},
(
err
)
=>
{}
);
...
...
@@ -594,7 +560,6 @@
let
data
=
res
.
data
.
data
.
pageData
;
this
.
dataList
=
data
;
this
.
total
=
res
.
data
.
data
.
count
;
// this.StatModel = res.data.data.StatModel;
this
.
loading
=
false
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
...
...
@@ -602,7 +567,7 @@
}
);
},
getSummaryData
()
{
getSummaryData
()
{
this
.
apipost2
(
"CarSingle_post_GetGuestOrderStatistics"
,
this
.
msg
,
...
...
@@ -610,7 +575,6 @@
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
this
.
SummaryList
=
data
// console.log(data)
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
@@ -627,5 +591,4 @@
},
},
};
</
script
>
\ No newline at end of file
</
script
>
\ No newline at end of file
src/plugins/apipost.js
View file @
7cea1560
import
axios
from
'axios'
import
domainManager
from
'./domainManager'
const
getLocalStorage
=
function
()
{
...
...
@@ -8,10 +7,9 @@ const getLocalStorage = function () {
}
else
{
return
null
;
}
}
//CRM接口
export
default
function
(
cmd
,
content
,
msg
,
successCall
,
faildCall
)
{
console
.
log
(
'CRM接口'
,
content
)
}
//CRM接口
export
default
function
(
cmd
,
content
,
msg
,
successCall
,
faildCall
)
{
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
}
...
...
@@ -51,5 +49,4 @@ const getLocalStorage = function () {
successCall
(
res
)
}
},
faildCall
)
}
\ No newline at end of file
}
\ No newline at end of file
src/plugins/domainManager.js
View file @
7cea1560
...
...
@@ -5,7 +5,7 @@ export default function() {
//CRM API
let
domainUrl
=
""
;
// domainUrl = "http://192.168.10.46:8500";
domainUrl
=
"http://192.168.10.
226
:5003"
;
domainUrl
=
"http://192.168.10.
128
:5003"
;
// domainUrl = "http://crm.oytour.com"
//domainUrl = "http://localhost:5003";
let
locationName
=
window
.
location
.
hostname
;
...
...
src/plugins/index.js
View file @
7cea1560
...
...
@@ -135,7 +135,6 @@ export default {
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
}
console
.
log
(
'CRM接口'
,
this
)
var
apiurl
=
this
.
domainManager
().
PostUrl
+
cmd
;
var
timestamp
=
(
new
Date
()).
valueOf
();
var
token
=
""
;
...
...
src/views/customerSet/components/CustomerOperation.vue
View file @
7cea1560
...
...
@@ -246,7 +246,6 @@
//获取客户操作配置
const
getConfig
=
()
=>
{
customerSetService
.
getCustomerConfig
({}).
then
(
res
=>
{
console
.
log
(
'客户操作配置'
,
res
.
data
.
Data
)
data
.
data
=
res
.
data
.
Data
if
(
data
.
data
.
PublicGetDept
==
-
1
)
{
data
.
PublicGetDeptState
=
false
...
...
@@ -312,7 +311,6 @@
data
.
data
.
AbandonDept
=
ids
data
.
data
.
AbandonDeptList
=
dept
}
console
.
log
(
'dpt'
,
dept
)
}
//以下部门允许领取公海客户
const
ChangePublicGetDeptState
=
val
=>
{
...
...
@@ -324,7 +322,7 @@
watch
(
()
=>
data
.
data
,
val
=>
{
console
.
log
(
'watch'
,
val
)
},
{
deep
:
true
}
...
...
@@ -347,7 +345,6 @@
}
}
})
</
script
>
<
style
lang=
"scss"
scoped
>
.CustomerOperation
{
...
...
@@ -409,5 +406,4 @@
padding
:
0
14px
;
margin
:
6px
;
}
</
style
>
\ No newline at end of file
src/views/customerSet/components/addfield.vue
View file @
7cea1560
...
...
@@ -13,20 +13,20 @@
<div
style=
"height: 100%; width: 100%;padding: 16px"
>
<div
class=
"rightrow"
style=
"margin-top: 0px;"
>
<div
class=
"leftwidth"
>
字段名称:
</div>
<el-input
clearable
outlined
v-model=
"addMsg.Name"
counter
maxlength=
"8"
placeholder=
"请输入字段名称"
:rules=
"[val => !!val || '请输入字段名称']"
dense
style=
"width: 400px;"
/>
<el-input
clearable
outlined
v-model=
"addMsg.Name"
counter
maxlength=
"8"
placeholder=
"请输入字段名称"
:rules=
"[val => !!val || '请输入字段名称']"
dense
style=
"width: 400px;"
/>
</div>
<div
class=
"rightrow"
style=
"margin-top: 0px;"
>
<div
class=
"leftwidth"
>
部门选择:
</div>
<div>
<el-radio
v-model=
"departmentType"
val=
"1"
label=
"公司字段"
@
input=
'addMsg.DeptId=0'
/>
<el-radio
v-model=
"departmentType"
val=
"2"
label=
"部门字段"
@
input=
'addMsg.DeptId=0'
/>
<el-radio
v-model=
"departmentType"
val=
"1"
label=
"公司字段"
@
input=
'addMsg.DeptId=0'
/>
<el-radio
v-model=
"departmentType"
val=
"2"
label=
"部门字段"
@
input=
'addMsg.DeptId=0'
/>
<div
v-if=
"departmentType==2"
>
<el-tree
:treeData=
'deptl'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
style=
"width: 300px;"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
classStr=
"col-6 q-pb-lg"
>
<el-tree
:treeData=
'deptl'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
style=
"width: 300px;"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
classStr=
"col-6 q-pb-lg"
>
</el-tree>
</div>
</div>
...
...
@@ -36,8 +36,8 @@
<div
class=
"rightrow"
v-if=
'tab==1'
>
<div
class=
"leftwidth"
>
字数限制:
</div>
<el-input
v-model
.
number=
"addMsg.WordNum"
outlined
dense
type=
"number"
:max=
'50'
placeholder=
"请输入"
:min=
'0'
maxlength=
"8"
style=
"width: 400px"
/>
<el-input
v-model
.
number=
"addMsg.WordNum"
outlined
dense
type=
"number"
:max=
'50'
placeholder=
"请输入"
:min=
'0'
maxlength=
"8"
style=
"width: 400px"
/>
</div>
<div
class=
"rightrow"
v-if=
'tab==1'
>
<div
class=
"leftwidth"
>
输入类型:
</div>
...
...
@@ -46,8 +46,8 @@
</div>
<div
class=
"rightrow"
v-if=
'tab==2'
>
<div
class=
"leftwidth"
>
文字字数:
</div>
<el-input
v-model
.
number=
"addMsg.WordNum"
outlined
dense
type=
"number"
:max=
'2000'
placeholder=
"请输入"
:min=
'0'
maxlength=
"2000"
style=
"width: 400px"
/>
<el-input
v-model
.
number=
"addMsg.WordNum"
outlined
dense
type=
"number"
:max=
'2000'
placeholder=
"请输入"
:min=
'0'
maxlength=
"2000"
style=
"width: 400px"
/>
</div>
<div
class=
"rightrow"
v-if=
'tab==3|| tab==4'
>
<div
class=
"leftwidth"
>
列表选项:
</div>
...
...
@@ -56,8 +56,8 @@
<div
style=
"display: flex;margin-bottom: 10px;"
>
<i
class=
"iconfont icon-drag"
style=
"font-size: 26px;color: #777;margin-right: 10px;"
></i>
<el-input
v-model
.
number=
"element.Name"
outlined
dense
clearable
placeholder=
"请输入"
style=
"width: 250px"
/>
<el-input
v-model
.
number=
"element.Name"
outlined
dense
clearable
placeholder=
"请输入"
style=
"width: 250px"
/>
<div
style=
"display: flex;align-items: center;margin-top: 8px;margin-left: 10px;height: 26px;"
>
<div
style=
"width: 26px;height: 26px;margin-right: 10px;"
...
...
@@ -78,15 +78,14 @@
</div>
<div
class=
"rightrow"
v-if=
'tab==7'
>
<div
class=
"leftwidth"
>
小数位数:
</div>
<el-select
filled
stack-label
option-value=
"Id"
option-label=
"Id"
style=
"width: 300px;"
v-model=
"addMsg.Digits"
ref=
"Id"
:options=
"decimalslist"
dense
map-options
/>
<el-select
filled
stack-label
option-value=
"Id"
option-label=
"Id"
style=
"width: 300px;"
v-model=
"addMsg.Digits"
ref=
"Id"
:options=
"decimalslist"
dense
map-options
/>
</div>
<div
class=
"rightrow"
>
<div
class=
"leftwidth"
>
属性设置:
</div>
<div
class=
"q-gutter-sm"
>
<el-switch
v-model=
"addMsg.Required"
:true-value=
"1"
:false-value=
"2"
></el-switch>
必填项
<el-switch
v-model=
"addMsg.Required"
:true-value=
"1"
:false-value=
"2"
></el-switch>
必填项
<el-switch
v-model=
"addMsg.Enable"
:true-value=
"1"
:false-value=
"2"
></el-switch>
启用
</div>
</div>
...
...
@@ -117,11 +116,15 @@
<
script
>
import
draggable
from
"vuedraggable"
;
export
default
{
components
:
{
draggable
},
components
:
{
draggable
},
props
:
{
passobj
:
{
type
:
Object
,
default
:
()
=>
{
return
{}
},
default
:
()
=>
{
return
{}
},
},
passdeptl
:
{
type
:
Array
,
...
...
@@ -145,7 +148,31 @@
let
loading
=
ref
(
false
)
let
tabsList
=
ref
(
props
.
passtabsList
)
let
checkboxList
=
ref
(
props
.
passcheckboxList
)
let
decimalslist
=
ref
([{
Id
:
0
},
{
Id
:
1
},
{
Id
:
2
},
{
Id
:
3
},
{
Id
:
4
},
{
Id
:
5
},
{
Id
:
6
},
{
Id
:
7
},
{
Id
:
8
},
{
Id
:
9
},
{
Id
:
10
},
{
Id
:
11
},])
let
decimalslist
=
ref
([{
Id
:
0
},
{
Id
:
1
},
{
Id
:
2
},
{
Id
:
3
},
{
Id
:
4
},
{
Id
:
5
},
{
Id
:
6
},
{
Id
:
7
},
{
Id
:
8
},
{
Id
:
9
},
{
Id
:
10
},
{
Id
:
11
},
])
let
returnString
=
ref
([])
if
(
addMsg
.
value
.
Id
>
0
)
{
tab
.
value
=
addMsg
.
value
.
Type
...
...
@@ -172,7 +199,7 @@
const
getcancel
=
()
=>
{
ctx
.
emit
(
'getcancel'
,
1
)
}
const
savewb
=
()
=>
{
//数据保存
const
savewb
=
()
=>
{
//数据保存
let
submitobj
=
JSON
.
parse
(
JSON
.
stringify
(
addMsg
.
value
))
submitobj
.
Type
=
tab
.
value
//先类型赋值
if
(
submitobj
.
Name
==
''
)
{
...
...
@@ -202,7 +229,7 @@
if
(
submitobj
.
Type
==
3
||
submitobj
.
Type
==
4
)
{
for
(
let
i
=
0
;
i
<
submitobj
.
OptionsList
.
length
;
i
++
)
{
let
x
=
submitobj
.
OptionsList
[
i
]
if
(
x
.
Name
==
''
||
x
.
Name
==
null
)
{
if
(
x
.
Name
==
''
||
x
.
Name
==
null
)
{
this
.
$message
.
error
({
type
:
'negative'
,
message
:
`请填写列表选项值`
,
...
...
@@ -231,7 +258,6 @@
loading
.
value
=
true
Vue
.
prototype
.
apipost
.
setCustomerFiledInfo
(
submitobj
).
then
((
res
)
=>
{
if
(
res
.
data
.
Code
==
1
)
{
console
.
log
(
res
)
this
.
$message
.
error
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
...
...
@@ -241,7 +267,7 @@
})
loading
.
value
=
false
ctx
.
emit
(
'getcancel'
,
2
)
}
else
{
//如果移动失败 重新获取列表
}
else
{
//如果移动失败 重新获取列表
loading
.
value
=
false
}
})
...
...
@@ -253,7 +279,7 @@
}
addMsg
.
value
.
DeptId
=
tempStr
}
const
getdefault
=
()
=>
{
//切换模式的时候 初始化
const
getdefault
=
()
=>
{
//切换模式的时候 初始化
addMsg
.
value
=
{
Id
:
0
,
Type
:
1
,
...
...
@@ -271,8 +297,8 @@
};
}
return
{
getcancel
,
//关闭弹窗
savewb
,
//保存数据
getcancel
,
//关闭弹窗
savewb
,
//保存数据
Isadd
:
ref
(
true
),
addMsg
,
deptl
,
...
...
src/views/customerSet/components/businessModel.vue
View file @
7cea1560
...
...
@@ -11,7 +11,7 @@
</div>
</div>
<div
class=
"box-businessModel"
:class=
"
{ 'checked-border': msg.type == 2 }" @click="chooseChange(2)">
<div
>
<div>
<i
class=
"iconfont icon-customer"
style=
"font-size:38px"
></i>
<span
class=
"q-mx-md"
style=
"font-size:28px"
>
+
</span>
<i
class=
"iconfont icon-qiye"
style=
"font-size:38px"
></i>
...
...
@@ -32,14 +32,12 @@
}
from
'vue'
export
default
defineComponent
({
setup
()
{
const
msg
=
reactive
({
type
:
1
})
const
chooseChange
=
(
n
)
=>
{
msg
.
type
=
n
;
console
.
log
(
msg
)
}
return
{
msg
,
...
...
@@ -47,7 +45,6 @@
}
}
})
</
script
>
<
style
lang=
"scss"
scoped
>
.businessModel
{
...
...
@@ -106,5 +103,4 @@
border
:
2px
solid
#3470ff
!
important
;
color
:
#3470ff
;
}
</
style
>
\ No newline at end of file
src/views/customerSet/components/clueRule.vue
View file @
7cea1560
...
...
@@ -227,7 +227,6 @@
cancel
:
'取消'
,
ok
:
"确认"
}).
onOk
(()
=>
{
console
.
log
(
'>>>> OK'
,
id
)
let
msg
=
{
RuleId
:
id
,
Type
:
2
,
...
...
@@ -237,10 +236,8 @@
}
const
configChange
=
()
=>
{
customerSetService
.
setCustomerClueRuleConfig
(
configMsg
).
then
(
res
=>
{
console
.
log
(
228
,
res
.
data
)
})
}
const
setState
=
(
msg
)
=>
{
customerSetService
.
setCustomerClueRuleState
(
msg
).
then
(
res
=>
{
message
.
successMsg
(
res
.
data
.
Message
)
...
...
src/views/customerSet/components/customerField.vue
View file @
7cea1560
...
...
@@ -113,7 +113,6 @@
});
},
datadragEnd(e) {
// console.log('拖动结束',e)
let olddragId = 0
if (e.newIndex > 0) {
olddragId = data[e.newIndex - 1].Id
...
...
@@ -127,7 +126,6 @@
}
this.apipost('/api/Scene/SetCustomerFiledState',msg,(res) => {
if (res.data.Code == 1) {
console.log(res)
} else {//如果移动失败 重新获取列表
this.changePage()
}
...
...
src/views/customerSet/components/customerPhase.vue
View file @
7cea1560
...
...
@@ -2,28 +2,12 @@
<div
class=
"customerPhase page-body"
>
<div
style=
"display: flex;align-items: center;justify-content: space-between;"
>
<div
style=
"display: flex;align-items: center;"
>
<q-btn
v-if=
"state.data.length
<
20
"
color=
"accent"
style=
"margin-bottom: 10px;"
class=
"q-mr-md"
label=
"创建阶段流程"
@
click=
"jumpPage('/editor/createStageRange')"
size=
"sm"
></q-btn>
<span
style=
"margin-left: 20px;color: rgb(133, 133, 152);"
>
已添加:
{{
state
.
data
.
length
}}
/20
</span>
<q-btn
v-if=
"state.data.length
<
20
"
color=
"accent"
style=
"margin-bottom: 10px;"
class=
"q-mr-md"
label=
"创建阶段流程"
@
click=
"jumpPage('/editor/createStageRange')"
size=
"sm"
></q-btn>
<span
style=
"margin-left: 20px;color: rgb(133, 133, 152);"
>
已添加:
{{
state
.
data
.
length
}}
/20
</span>
</div>
<q-btn
color=
"white"
text-color=
"black"
style=
"margin-bottom: 10px;"
class=
"q-mr-md"
label=
"阶段管理"
size=
"sm"
@
click=
"jumpPage('/editor/manageStageRange')"
></q-btn>
<q-btn
color=
"white"
text-color=
"black"
style=
"margin-bottom: 10px;"
class=
"q-mr-md"
label=
"阶段管理"
size=
"sm"
@
click=
"jumpPage('/editor/manageStageRange')"
></q-btn>
</div>
<table
class=
"payTable"
>
<thead>
...
...
@@ -46,95 +30,64 @@
<td>
<div
v-if=
"item.DeptEmpList && item.DeptEmpList.length > 0"
>
<span
v-for=
"(x,y) in item.DeptEmpList"
:key=
"y"
>
<q-chip
color=
"blue-1"
text-color=
"blue"
icon=
"folder"
size=
"sm"
v-if=
"x.Type == 1"
>
{{
x
.
Name
}}
</q-chip>
<q-chip
color=
"green-1"
text-color=
"green"
icon=
"person"
size=
"sm"
v-if=
"x.Type == 2"
>
{{
x
.
Name
}}
</q-chip>
<q-chip
color=
"blue-1"
text-color=
"blue"
icon=
"folder"
size=
"sm"
v-if=
"x.Type == 1"
>
{{
x
.
Name
}}
</q-chip>
<q-chip
color=
"green-1"
text-color=
"green"
icon=
"person"
size=
"sm"
v-if=
"x.Type == 2"
>
{{
x
.
Name
}}
</q-chip>
</span>
</div>
<span
v-else
>
未适配其他规则的阶段
</span>
</td>
<td>
<q-toggle
v-if=
"item.IsDefault == 1"
v-model=
"item.Enable"
:true-value=
"1"
:false-value=
"2"
icon=
"lock"
disable
/>
<q-toggle
v-else
v-model=
"item.Enable"
:true-value=
"1"
:false-value=
"2"
@
update:model-value=
"setFiledState(item.Id, 1)"
/>
<q-toggle
v-if=
"item.IsDefault == 1"
v-model=
"item.Enable"
:true-value=
"1"
:false-value=
"2"
icon=
"lock"
disable
/>
<q-toggle
v-else
v-model=
"item.Enable"
:true-value=
"1"
:false-value=
"2"
@
update:model-value=
"setFiledState(item.Id, 1)"
/>
</td>
<td>
<span
v-for=
"(x,y) in item.StageList"
:key=
"y"
>
{{
x
}}{{
item
.
StageList
.
length
!=
y
+
1
?
'->'
:
''
}}
</span>
<span
v-for=
"(x,y) in item.StageList"
:key=
"y"
>
{{
x
}}{{
item
.
StageList
.
length
!=
y
+
1
?
'->'
:
''
}}
</span>
</td>
<td>
<div>
{{
item
.
UpdateByName
}}
</div>
<div>
{{
item
.
UpdateTime
}}
</div>
</td>
<td>
<q-btn
v-if=
"item.IsDefault != 1"
flat
size=
"xs"
icon=
"edit"
style=
"font-weight:400;color: #3FC4FF"
class=
"q-mr-xs"
label=
"编辑"
@
click=
"goedit(item.Id)"
/>
<q-btn
v-if=
"item.IsDefault != 1"
flat
size=
"xs"
icon=
"delete"
color=
"negative"
class=
"q-mr-xs"
label=
"删除"
@
click=
"godelete(item.Id)"
/>
<q-btn
v-if=
"item.IsDefault != 1"
flat
size=
"xs"
icon=
"edit"
style=
"font-weight:400;color: #3FC4FF"
class=
"q-mr-xs"
label=
"编辑"
@
click=
"goedit(item.Id)"
/>
<q-btn
v-if=
"item.IsDefault != 1"
flat
size=
"xs"
icon=
"delete"
color=
"negative"
class=
"q-mr-xs"
label=
"删除"
@
click=
"godelete(item.Id)"
/>
</td>
</tr>
</table>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
onMounted
,
reactive
}
from
'vue'
import
customerSetService
from
'@/api/customerSet'
import
{
useQuasar
}
from
'quasar'
import
router
from
'@/router/index'
import
{
defineComponent
,
onMounted
,
reactive
}
from
'vue'
import
customerSetService
from
'@/api/customerSet'
import
{
useQuasar
}
from
'quasar'
import
router
from
'@/router/index'
export
default
defineComponent
({
export
default
defineComponent
({
setup
()
{
const
$q
=
useQuasar
()
const
state
=
reactive
({
data
:
[],
})
const
getList
=
()
=>
{
customerSetService
.
getCustomerStageFlowList
({
Enable
:
0
}).
then
((
res
)
=>
{
customerSetService
.
getCustomerStageFlowList
({
Enable
:
0
}).
then
((
res
)
=>
{
if
(
res
.
data
.
Code
==
1
)
{
state
.
data
=
res
.
data
.
Data
}
else
{
//如果移动失败 重新获取列表
}
else
{
//如果移动失败 重新获取列表
}
})
...
...
@@ -156,7 +109,6 @@ export default defineComponent({
});
}
const
setFiledState
=
(
Id
:
number
,
Type
:
number
)
=>
{
console
.
log
(
Id
,
Type
)
let
msg
=
{
Type
:
Type
,
FlowId
:
Id
,
...
...
@@ -171,7 +123,7 @@ export default defineComponent({
position
:
'top'
})
getList
()
}
else
{
//如果移动失败 重新获取列表
}
else
{
//如果移动失败 重新获取列表
}
})
...
...
@@ -188,7 +140,7 @@ export default defineComponent({
router
.
push
({
path
:
'/editor/createStageRange'
,
query
:
{
FlowId
:
Id
FlowId
:
Id
}
})
}
...
...
@@ -205,35 +157,34 @@ export default defineComponent({
goedit
}
}
})
})
</
script
>
<
style
>
.customerPhase
.payTable
{
.customerPhase
.payTable
{
width
:
100%
;
border-collapse
:
collapse
;
}
.customerPhase
.payTable
tr
th
{
}
.customerPhase
.payTable
tr
th
{
background
:
#fff
;
height
:
40px
;
font-size
:
12px
;
font-weight
:
bold
;
color
:
#2d2d2d
;
background
:
#f5f5fa
;
}
}
.customerPhase
.payTable
tr
{
.customerPhase
.payTable
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
}
.customerPhase
.payTable
tr
td
{
.customerPhase
.payTable
tr
td
{
font-size
:
13px
;
text-align
:
center
;
color
:
#2d2d2d
;
padding
:
10px
0
;
font-weight
:
bold
;
border-bottom
:
1px
solid
#e5e5e5
;
}
}
</
style
>
\ No newline at end of file
src/views/customerSet/components/laqundistribution.vue
View file @
7cea1560
...
...
@@ -101,7 +101,6 @@ export default defineComponent({
{
Name
:
' 根据设置自动指定负责人 '
},
])
const
Addallocation
=
(
url
:
string
)
=>
{
//新增分配规则
console
.
log
(
'新增匹配规则'
)
router
.
push
({
path
:
url
,
query
:
{
...
...
@@ -109,9 +108,6 @@ export default defineComponent({
}
})
}
// onMounted(() => {
// })
return
{
Addallocation
,
icon
:
ref
(
false
),
...
...
src/views/workstatistics/DrainageRankingStatistics.vue
View file @
7cea1560
...
...
@@ -12,29 +12,16 @@
<el-row
:gutter=
"20"
>
<el-col
:xs=
"14"
:sm=
"12"
:md=
"10"
:lg=
"8"
:xl=
"6"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
日期:
</span>
<el-date-picker
v-model=
"times"
size=
"small"
clearable
type=
"daterange"
value-format=
"yyyy-MM-dd"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"getTime"
>
<el-date-picker
v-model=
"times"
size=
"small"
clearable
type=
"daterange"
value-format=
"yyyy-MM-dd"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"getTime"
>
</el-date-picker>
</el-col>
</el-row>
</div>
<div
style=
"padding: 0 0 30px 0;background: #ffffff;"
>
<!-- :style="
{'height':screenHeight}" -->
<el-table
v-loading=
"loading"
:data=
"dataList"
style=
"width: 100%;"
:height=
"screenHeight+'px'"
border
:span-method=
"objectSpanMethod"
:default-sort =
"
{prop: 'date', order: 'descending'}">
<el-table
v-loading=
"loading"
:data=
"dataList"
style=
"width: 100%;"
:height=
"screenHeight+'px'"
border
:span-method=
"objectSpanMethod"
:default-sort=
"
{prop: 'date', order: 'descending'}">
<el-table-column
fixed
prop=
"EmpName"
label=
"姓名"
></el-table-column>
<el-table-column
prop=
"RankName"
label=
"排名"
>
<template
slot-scope=
"scope"
>
...
...
@@ -44,10 +31,7 @@
</
template
>
</el-table-column>
<el-table-column
:label=
"i.Name"
align=
"center"
v-for=
"i in PlatformTypeList"
>
<el-table-column
width=
"50"
v-for=
"(item,index) in ModuleTypeList"
:key=
"index"
prop=
"province"
<el-table-column
width=
"50"
v-for=
"(item,index) in ModuleTypeList"
:key=
"index"
prop=
"province"
:label=
"item.Name"
>
<
template
slot-scope=
"scope"
>
<template
v-if=
"i.Name=='小红书'"
>
...
...
@@ -91,7 +75,8 @@
</el-table>
</div>
<el-dialog
@
closed=
"closedDialog"
:modal=
"true"
:visible
.
sync=
"dialogTableVisible"
width=
"900px"
:close-on-click-modal=
"false"
class=
"addCustomer"
>
<el-dialog
@
closed=
"closedDialog"
:modal=
"true"
:visible
.
sync=
"dialogTableVisible"
width=
"900px"
:close-on-click-modal=
"false"
class=
"addCustomer"
>
<div
class=
"add-tit"
slot=
"title"
>
<p><span></span>
{{title}}排名详情
</p>
<span
icon=
"el-icon-close"
></span>
...
...
@@ -124,146 +109,148 @@
</div>
</el-dialog>
</div>
</template>
</template>
<
script
>
<
script
>
export
default
{
data
()
{
return
{
title
:
''
,
detailsObj
:
null
,
title
:
''
,
detailsObj
:
null
,
dialogTableVisible
:
false
,
formEdit
:{
Id
:
''
,
// :'',//明细ID(以小红书为蓝本) 是 [string] 查看
FansNum
:
''
,
// 粉丝数量 是 [string] 查看
AddFansNum
:
''
,
// 添加分数数量 是 [string] 查看
CollectNum
:
''
,
// 收藏数量 是 [string] 查看
VisitorNum
:
''
,
// 访客数量 是 [string] 查看
LookNum
:
''
,
// 观看数量 是 [string] 查看
InteractionNum
:
''
,
// 互动数量 是 [string] 查看
DiscussNum
:
''
,
// 评论数量 是 [string] 查看
SecondsNum
:
''
,
// 观看总时长 是 [string] 查看
NoteNum
:
''
,
// 笔记数量
formEdit
:
{
Id
:
''
,
// :'',//明细ID(以小红书为蓝本) 是 [string] 查看
FansNum
:
''
,
// 粉丝数量 是 [string] 查看
AddFansNum
:
''
,
// 添加分数数量 是 [string] 查看
CollectNum
:
''
,
// 收藏数量 是 [string] 查看
VisitorNum
:
''
,
// 访客数量 是 [string] 查看
LookNum
:
''
,
// 观看数量 是 [string] 查看
InteractionNum
:
''
,
// 互动数量 是 [string] 查看
DiscussNum
:
''
,
// 评论数量 是 [string] 查看
SecondsNum
:
''
,
// 观看总时长 是 [string] 查看
NoteNum
:
''
,
// 笔记数量
},
errText
:
''
,
rankingTitle3
:[
errText
:
''
,
rankingTitle3
:
[
'排名项目'
,
'第一名'
,
'第二名'
,
],
rankingTitle
:[
rankingTitle
:
[
'第一名'
,
'第二名'
,
'第三名'
,
],
activeList
:[
{
Name
:
'小红书'
,
Id
:
1
},
{
Name
:
'微博'
,
Id
:
2
},
{
Name
:
'抖音'
,
Id
:
3
},
],
ModuleTypeList
:[],
PlatformTypeList
:[],
dataList
:
[
activeList
:
[{
Name
:
'小红书'
,
Id
:
1
},
{
name
:
'李四'
,
ranking
:
'第一名'
,
小红书
:{
list
:[
Name
:
'微博'
,
Id
:
2
},
{
name
:
'机票'
,
num
:
'1次'
,
numList
:[
//次数详情
Name
:
'抖音'
,
Id
:
3
},
],
ModuleTypeList
:
[],
PlatformTypeList
:
[],
dataList
:
[{
name
:
'李四'
,
ranking
:
'第一名'
,
小红书
:
{
list
:
[{
name
:
'机票'
,
num
:
'1次'
,
numList
:
[
//次数详情
]
},
{
name
:
'日语'
,
num
:
'2次'
,
numList
:[
//次数详情
name
:
'日语'
,
num
:
'2次'
,
numList
:
[
//次数详情
]
}
]
},
微博
:{
list
:[
{
name
:
'机票'
,
num
:
'1次'
,
numList
:[
//次数详情
微博
:
{
list
:
[{
name
:
'机票'
,
num
:
'1次'
,
numList
:
[
//次数详情
]
},
{
name
:
'日语'
,
num
:
'2次'
,
numList
:[
//次数详情
name
:
'日语'
,
num
:
'2次'
,
numList
:
[
//次数详情
]
}
]
},
抖音
:{
list
:[
{
name
:
'机票'
,
num
:
'1次'
,
numList
:[
//次数详情
抖音
:
{
list
:
[{
name
:
'机票'
,
num
:
'1次'
,
numList
:
[
//次数详情
]
},
{
name
:
'日语'
,
num
:
'2次'
,
numList
:[
//次数详情
name
:
'日语'
,
num
:
'2次'
,
numList
:
[
//次数详情
]
}
]
},
合计
:
3
},
],
},
],
loading
:
false
,
msg
:
{
StartTime
:
''
,
EndTime
:
''
StartTime
:
''
,
EndTime
:
''
},
times
:[],
screenHeight
:
''
,
//获取显示器高度
times
:
[],
screenHeight
:
''
,
//获取显示器高度
};
},
mounted
()
{
const
that
=
this
;
that
.
screenHeight
=
(
window
.
innerHeight
-
300
)
// console.log(window.innerHeight);
that
.
screenHeight
=
(
window
.
innerHeight
-
300
)
this
.
getEnumerate
()
this
.
init
();
},
methods
:
{
details
(
row
,
EmpName
)
{
details
(
row
,
EmpName
)
{
this
.
dialogTableVisible
=
true
this
.
title
=
EmpName
this
.
detailsObj
=
row
},
closedDialog
()
{
closedDialog
()
{
this
.
dialogTableVisible
=
false
},
getTime
()
{
if
(
this
.
times
)
{
getTime
()
{
if
(
this
.
times
)
{
this
.
msg
.
StartTime
=
this
.
times
[
0
]
this
.
msg
.
EndTime
=
this
.
times
[
1
]
}
else
{
}
else
{
this
.
msg
.
StartTime
=
''
this
.
msg
.
EndTime
=
''
}
this
.
init
()
},
getEnumerate
()
{
getEnumerate
()
{
// 平台枚举
this
.
apipost
(
"/api/IntroduceFlowStat/GetPlatformTypeEnumList"
,
{},
"/api/IntroduceFlowStat/GetPlatformTypeEnumList"
,
{},
(
res
)
=>
{
this
.
PlatformTypeList
=
res
.
data
.
data
},
...
...
@@ -273,7 +260,7 @@
);
// 板块枚举
this
.
apipost
(
"/api/IntroduceFlowStat/GetModuleTypeEnumList"
,
{},
"/api/IntroduceFlowStat/GetModuleTypeEnumList"
,
{},
(
res
)
=>
{
this
.
ModuleTypeList
=
res
.
data
.
data
},
...
...
@@ -290,25 +277,7 @@
this
.
msg
,
(
res
)
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
data
){
// let List = JSON.parse(JSON.stringify(res.data.data))
// for(let j=0;j
<
List
.
length
;
j
++
){
// List[j].oneArr = []
// List[j].twoArr = []
// List[j].threeArr = []
// for(let i = 0;i
<
List
[
j
].
NumList
.
length
;
i
++
){
// if(i
<
5
){
// List[j].oneArr.push(List[j].NumList[i])
// }
// if(i>4&&i
<
10
){
// List[j].twoArr.push(List[j].NumList[i])
// }
// if(i>9&&i
<
15
){
// List[j].threeArr.push(List[j].NumList[i])
// }
// }
// }
// this.dataList = List
if
(
res
.
data
.
data
)
{
this
.
dataList
=
res
.
data
.
data
}
},
...
...
@@ -334,7 +303,12 @@
});
},
objectSpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
objectSpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
columnIndex
===
0
)
{
if
(
rowIndex
%
3
===
0
)
{
return
{
...
...
@@ -351,9 +325,10 @@
}
},
};
</
script
>
<
style
>
</
script
>
<
style
>
@import
"../../assets/css/customerManage.css"
;
/* .activeThree{
color: #B97234;
}
...
...
@@ -363,20 +338,24 @@
.activeOne{
color: #F9AE0E;
} */
.activeNumB
{
.activeNumB
{
color
:
red
;
}
.activeNum
{
.activeNum
{
color
:
#409EFF
;
font-size
:
16px
;
cursor
:
pointer
;
}
.customerManage.border
.el-table--border
td
{
.customerManage.border
.el-table--border
td
{
border-right
:
1px
solid
#EBEEF5
!important
;
}
.el-table__fixed-body-wrapper
table
{
padding-bottom
:
8px
!important
;
}
.el-table
.xiaoji-row
{
background
:
#ffff00
;
}
...
...
@@ -384,12 +363,15 @@
.el-table
.sum-row
{
background
:
#00b0f0
;
}
.el-table
.warning-col
{
background
:
red
;
}
.diy-eltabs
.el-tabs__content
{
height
:
calc
(
100%
-
40px
);
}
.diy-eltabs
.data-box-item
{
position
:
absolute
;
top
:
0
;
...
...
@@ -397,5 +379,4 @@
left
:
0
;
right
:
0
;
}
</
style
>
\ No newline at end of file
</
style
>
\ No newline at end of file
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