Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
Y
ybf
Project
Project
Details
Activity
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
xulili
ybf
Commits
eb037330
Commit
eb037330
authored
Feb 03, 2020
by
xd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
通讯录管理--移动修改
parent
1a9b5b71
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
128 additions
and
149 deletions
+128
-149
counter.js
ybf_admin/src/api/in/counter.js
+3
-1
mail.js
ybf_admin/src/api/in/mail.js
+18
-0
move.vue
ybf_admin/src/pages/in/contact/components/move.vue
+92
-89
mail.vue
ybf_admin/src/pages/in/contact/mail.vue
+15
-59
No files found.
ybf_admin/src/api/in/counter.js
View file @
eb037330
...
...
@@ -12,4 +12,6 @@ export function getList() {
method
:
'get'
,
params
:
inData
})
}
\ No newline at end of file
}
\ No newline at end of file
ybf_admin/src/api/in/mail.js
View file @
eb037330
...
...
@@ -47,4 +47,22 @@ export function getHistoryList(data) {
method
:
'delete'
,
params
:
inData
})
}
// 获取移动分组
// /admin/auth/addressbook/synchronization
export
function
getGroup
()
{
return
request
({
url
:
'/admin/auth/addressbook/selectGroupPage'
,
method
:
'get'
,
})
}
// 修改门店名字
export
function
storeNameChange
(
data
)
{
return
request
({
url
:
'/admin/auth/stall/update'
,
method
:
'put'
,
data
})
}
\ No newline at end of file
ybf_admin/src/pages/in/contact/components/move.vue
View file @
eb037330
...
...
@@ -2,25 +2,32 @@
<div
class=
"ct"
>
<el-dialog
:visible
.
sync=
"moveDialog"
width=
"
55
%"
width=
"
30
%"
:show-close=
"false"
:close-on-click-modal=
"false"
>
<div
class=
"choose"
>
<!--
<div
class=
"choose"
>
<div
class=
"title"
>
<div
class=
"cg"
>
选择分组
</div>
<div
class=
"circle"
@
click=
"handleClose"
>
<d2-icon-svg
name=
"close"
class=
"icon"
/>
</div>
</div>
<tree-transfer
:title=
"title"
:from_data=
"fromData"
:to_data=
"toData"
:defaultProps=
"
{ label: 'label' }"
@addBtn="add"
@removeBtn="remove"
:mode="mode"
height="540px"
filter
openAll
>
</tree-transfer>
<!--
<div
class=
"title"
>
:title=
"title"
:button_text=
"['添加', '删除']"
:from_data=
"fromData"
:to_data=
"toData"
:defaultProps=
"
{ label: 'label' }"
@addBtn="add"
@removeBtn="remove"
:mode="mode"
height="540px"
:filter="false"
openAll
>
</tree-transfer>
<div
class=
"title"
>
<div
class=
"cg"
>
选择分组
</div>
<div
class=
"circle"
@
click=
"handleClose"
>
<d2-icon-svg
name=
"close"
class=
"icon"
/>
...
...
@@ -43,8 +50,21 @@
>
</el-transfer>
</div>
</div>
-->
</div>
</div>
</div>
-->
<el-tree
ref=
"tree"
class=
"tree"
show-checkbox
:check-strictly=
"true"
:data=
"treeData"
:props=
"orgData"
node-key=
"id"
@
node-click=
"handleNodeClick"
@
check-change=
"checkChange"
>
</el-tree>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCancel"
size=
"small"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleFinish"
size=
"small"
...
...
@@ -52,14 +72,14 @@
>
</span>
</el-dialog>
<div>
</div>
<div></div>
</div>
</
template
>
<
script
>
import
treeTransfer
from
"el-tree-transfer"
;
import
{
getGroup
}
from
"@/api/in/mail"
;
import
{
log
}
from
"util"
;
export
default
{
props
:
{
moveDialog
:
{
...
...
@@ -68,69 +88,18 @@ export default {
}
},
data
()
{
const
generateData
=
_
=>
{
const
data
=
[];
for
(
let
i
=
1
;
i
<=
15
;
i
++
)
{
data
.
push
({
key
:
i
,
label
:
`备选项
${
i
}
`
});
}
return
data
;
};
return
{
title
:
""
,
mode
:
"transfer"
,
// transfer addressList
fromData
:
[
{
id
:
"1"
,
pid
:
0
,
label
:
"一级 1"
,
children
:
[
{
id
:
"1-1"
,
pid
:
"1"
,
label
:
"二级 1-1"
,
disabled
:
true
,
children
:
[]
},
{
id
:
"1-2"
,
pid
:
"1"
,
label
:
"二级 1-2"
,
children
:
[
{
id
:
"1-2-1"
,
pid
:
"1-2"
,
children
:
[],
label
:
"二级 1-2-1"
},
{
id
:
"1-2-2"
,
pid
:
"1-2"
,
children
:
[],
label
:
"二级 1-2-2"
}
]
}
]
}
],
toData
:
[],
////////////
data
:
generateData
(),
value
:
[
1
],
value4
:
[
1
],
renderFunc
(
h
,
option
)
{
return
(
<
span
>
{
option
.
key
}
-
{
option
.
label
}
<
/span
>
);
}
orgData
:
{
label
:
"name"
,
children
:
"adminStallList"
,
id
:
"id"
},
treeData
:
[]
};
},
components
:{
treeTransfer
},
created
()
{
this
.
getList
();
},
methods
:
{
handleCancel
()
{
this
.
$emit
(
"handleCancel"
);
...
...
@@ -138,7 +107,7 @@ export default {
handleFinish
()
{
this
.
$emit
(
"handleFinish"
,
false
);
},
handleChange
()
{},
/*
handleChange() {},
handleClose() {
this.$emit("handleCancel");
},
...
...
@@ -156,18 +125,52 @@ export default {
console.log("toData:", toData);
console.log("obj:", obj);
},
remove
(
fromData
,
toData
,
obj
){
// 树形穿梭框模式transfer时,返回参数为左侧树移动后数据、右侧树移动后数据、移动的{keys,nodes,halfKeys,halfNodes}对象
// 通讯录模式addressList时,返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表
console
.
log
(
"fromData:"
,
fromData
);
console
.
log
(
"toData:"
,
toData
);
console
.
log
(
"obj:"
,
obj
);
remove(fromData, toData, obj) {
// 树形穿梭框模式transfer时,返回参数为左侧树移动后数据、右侧树移动后数据、移动的{keys,nodes,halfKeys,halfNodes}对象
// 通讯录模式addressList时,返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表
console.log("fromData:", fromData);
console.log("toData:", toData);
console.log("obj:", obj);
}, */
handleNodeClick
(
item
,
node
,
self
)
{
//自己定义的editCheckId,防止单选出现混乱
this
.
editCheckId
=
item
.
id
;
this
.
$refs
.
tree
.
setCheckedKeys
([
item
.
id
]);
},
checkChange
(
item
,
node
,
self
)
{
if
(
node
==
true
)
{
this
.
editCheckId
=
item
.
id
;
this
.
$refs
.
tree
.
setCheckedKeys
([
item
.
id
]);
}
else
{
if
(
this
.
editCheckId
==
item
.
id
)
{
this
.
$refs
.
tree
.
setCheckedKeys
([
item
.
id
]);
}
}
},
getList
()
{
getGroup
().
then
(
res
=>
{
console
.
log
(
res
,
"移动的数据获取"
);
let
obj
=
{
name
:
"未分组"
,
id
:
0
};
res
.
data
=
[
obj
,
...
res
.
data
];
this
.
treeData
=
res
.
data
;
});
}
}
};
</
script
>
<
style
scoped
>
.tree
>>>
.is-leaf
+
.el-checkbox
.el-checkbox__inner
{
display
:
inline-block
;
}
.tree
>>>
.el-checkbox
.el-checkbox__inner
{
display
:
none
;
}
.choose
{
padding
:
16px
;
font-size
:
16px
;
...
...
@@ -190,7 +193,7 @@ export default {
padding
:
0
!important
;
}
.ct
>>>
.el-dialog__body
{
padding
:
0
;
padding
:
40px
;
}
.ct
>>>
.el-transfer-panel
{
width
:
250px
;
...
...
ybf_admin/src/pages/in/contact/mail.vue
View file @
eb037330
...
...
@@ -4,7 +4,7 @@
<div>
<div
class=
"title"
>
组织架构
</div>
<div
class=
"bottom"
>
<div
class=
"ty"
@
click=
"getMailList"
>
<div
class=
"ty"
@
click=
"getMailList
(1)
"
>
<div>
<span>
全部
</span>
<span
class=
"number"
>
{{
allNumber
}}
</span>
...
...
@@ -26,32 +26,14 @@
>
<span
class=
"custom-tree-node"
slot-scope=
"
{ node, data }">
<span>
{{
node
.
label
}}
</span>
<span
style=
"margin-left:30px;"
class=
"btn"
>
<el-button
type=
"text"
size=
"mini"
@
click=
"() => edit(data)"
v-if=
"data.type"
>
<i
class=
"el-icon-edit"
></i>
</el-button>
<el-button
v-if=
"data.type"
type=
"text"
size=
"mini"
@
click=
"() => remove(node, data)"
>
<i
class=
"el-icon-delete"
></i>
</el-button>
</span>
</span>
</el-tree>
</div>
</div>
</div>
<div
class=
"end"
>
<!--
<div
class=
"end"
>
<span
class=
"add-r"
@
click=
"addStore"
>
添加门店/专柜
</span>
</div>
</div>
-->
</div>
<div
class=
"right"
>
<!--
<div
class=
"right-c"
>
-->
...
...
@@ -151,24 +133,22 @@
@
handleCancel=
"moveDialogShow = false"
@
handleFinish=
"removeFinish"
></move-dialog>
<add-store
ref=
"addStore"
></add-store>
<el-dialog
title=
"提示"
:visible
.
sync=
"nameDialog"
width=
"30%"
>
<!-- <el-dialog title="提示" v-if="nameDialog" :visible.sync="nameDialog" width="30%" >
<div class="changeName">
<span style="margin:0 10px;">门店名称:</span>
<el-input
v-model=
"store
N
ame"
placeholder=
"请输入名称"
></el-input>
<el-input v-model="store
.n
ame" placeholder="请输入名称"></el-input>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="nameDialog = false">取 消</el-button>
<el-button
type=
"primary"
@
click=
"
nameDialog = fals
e"
>
确 定
</el-button>
<el-button type="primary" @click="
handleNameChang
e">确 定</el-button>
</span>
</el-dialog>
</el-dialog>
-->
</div>
</template>
<
script
>
import
MoveDialog
from
"./components/move"
;
import
AddStore
from
"./components/addStore"
;
import
{
getOrgTree
,
getAllMemberList
,
getNoGroupMember
,
getMemberById
}
from
"@/api/in/mail"
;
import
{
getOrgTree
,
getAllMemberList
,
getNoGroupMember
,
getMemberById
,
storeNameChange
}
from
"@/api/in/mail"
;
export
default
{
data
()
{
const
data1
=
[
...
...
@@ -567,7 +547,6 @@ export default {
moveDialogShow
:
false
,
counterDialog
:
false
,
storeDialog
:
false
,
storeName
:
""
,
nameDialog
:
false
,
allNumber
:
""
,
wNumber
:
""
,
...
...
@@ -576,12 +555,15 @@ export default {
children
:
"adminStallList"
,
id
:
"id"
},
type
:
1
type
:
1
,
store
:
{
name
:
""
,
id
:
""
}
};
},
components
:
{
MoveDialog
,
AddStore
},
created
()
{
this
.
getOrgTree
();
...
...
@@ -626,32 +608,6 @@ export default {
this
.
page
.
total
=
Number
(
res
.
data
.
total
)
})
},
append
(
data
)
{
const
newChild
=
{
id
:
id
++
,
label
:
"testtest"
,
children
:
[]
};
if
(
!
data
.
children
)
{
this
.
$set
(
data
,
"children"
,
[]);
}
data
.
children
.
push
(
newChild
);
},
edit
(
data
)
{
console
.
log
(
data
,
"data"
);
this
.
nameDialog
=
true
;
},
remove
(
data
)
{
console
.
log
(
"删除"
);
this
.
$confirm
(
"门店下包含成员,删除后所有成员将被移动到“未分组”列表,是否确认继续删除?"
,
{}
)
.
then
(()
=>
{
this
.
$message
.
success
(
"删除成功"
);
})
.
catch
(()
=>
{
this
.
$message
.
info
(
"取消删除"
);
});
},
listPick
()
{},
testButtonClick
()
{},
pagesSizeChange
()
{},
...
...
@@ -673,10 +629,10 @@ export default {
/* addCounter() {
this.$refs.addCounter.counterDialog = true;
}, */
addStore
()
{
/*
addStore() {
this.$refs.addStore.addStoreDialog = true;
},
},
*/
getMailList
(
page
)
{
this
.
type
=
1
let
params
=
{
...
...
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