Commit 29b52897 authored by 周远喜's avatar 周远喜

人员选择控件开发完成

parent 230baa98
...@@ -60,6 +60,9 @@ div::-webkit-scrollbar{ ...@@ -60,6 +60,9 @@ div::-webkit-scrollbar{
.fg{ .fg{
flex-grow: 1; flex-grow: 1;
} }
.fs{
flex-shrink: 0;
}
.fg2{ .fg2{
flex-grow: 2; flex-grow: 2;
} }
......
...@@ -24,22 +24,22 @@ ...@@ -24,22 +24,22 @@
</dl> </dl>
</div> </div>
<div class="footer flex"> <div class="footer flex">
<div v-width="50" class="flex fa-m"> <div v-width="50" class="fa-m fs">
<span> 已选项</span> <span>已选项</span>
</div> </div>
<dl class="fg"> <div class="fg">
<dl>
<dd v-for="(li,i) in checkedItems"> <dd v-for="(li,i) in checkedItems">
<div class="flex"> <div class="flex">
<span class="fg"> <span class="fg">{{li.userName}}</span>
{{li.userName}} <a @click="removeItem(li)">
</span> <Icon type="md-close" size="16" />
<a>
X
</a> </a>
</div> </div>
</dd>
</dd>
</dl> </dl>
</div>
</div> </div>
</div> </div>
...@@ -113,7 +113,7 @@ export default { ...@@ -113,7 +113,7 @@ export default {
default: "" default: ""
} }
}, },
methods: { methods: {
change(event) { change(event) {
// console.log(event) // console.log(event)
this.$emit("on-change", event); this.$emit("on-change", event);
...@@ -131,18 +131,27 @@ export default { ...@@ -131,18 +131,27 @@ export default {
}) })
.then(r => { .then(r => {
this.data = r.result; this.data = r.result;
if(this.theme=="list"){
this.departmentGroup(); this.departmentGroup();
}
}); });
}, },
departmentGroup() { departmentGroup() {
var group = []; var group = [];
group = this.$u.group(this.data, u => { var users=this.$u.clone(this.data);
if(this.name&&this.name.length>0){
users.map(u=>{
u.checked=this.name.indexOf(u.id)>-1;
})
}
group = this.$u.group(users, u => {
return u.departmentId; return u.departmentId;
}); });
var deps = []; var deps = [];
group.map((u, i) => { group.map((u, i) => {
deps.push({ deps.push({
departmentTitle: u[0].departmentTitle, departmentTitle: u[0].departmentTitle,
departmentId: u[0].departmentId,
children: u, children: u,
opened: (i = 0), opened: (i = 0),
checked: false checked: false
...@@ -158,39 +167,75 @@ export default { ...@@ -158,39 +167,75 @@ export default {
item.checked = !item.checked; item.checked = !item.checked;
this.group[i][j] = item; this.group[i][j] = item;
this.$set(this.group, i, this.group[i]); this.$set(this.group, i, this.group[i]);
this.listSetValue();
},
removeItem(item) {
this.group.map((u, i) => {
if (u.departmentId == item.departmentId) {
u.children.map(p => {
if (p.id == item.id) {
p.checked = false;
}
});
this.$set(this.group, i, u);
}
});
this.listSetValue();
}, },
checkAll(item,i){ //list 时,设置值。
item.children.map(u=>{ listSetValue(){
u.checked=item.checked; var ids=[];
this.checkedItems.map(u=>{
ids.push(u.id)
}) })
this.$set(this.group,i,this.group[i]); this.$emit("on-change",ids);
},
checkAll(item, i) {
item.children.map(u => {
u.checked = item.checked;
});
this.$set(this.group, i, this.group[i]);
this.listSetValue();
}, },
//获取所有的选中项 //获取所有的选中项
getSelectItems() { getSelectItems() {
var items = []; var items = [];
if (!this.multiple) { if (this.theme == "list") {
//单选时返回信息 this.checkedItems.map(u => {
var item1 = this.dic.filter(u => u.value == this.value); items.push(u);
if (item1 && item1[0]) { });
items.push(item1[0]);
}
} else { } else {
//复选时返回 if (!this.multiple) {
this.value.forEach(v => { //单选时返回信息
var item = this.dic.filter(u => u.value == v); var item1 = this.dic.filter(u => u.value == this.value);
if (item && item[0]) { if (item1 && item1[0]) {
items.push(item[0]); items.push(item1[0]);
} }
}); } else {
//复选时返回
this.value.forEach(v => {
var item = this.dic.filter(u => u.value == v);
if (item && item[0]) {
items.push(item[0]);
}
});
}
} }
return items; return items;
}, },
//获取所有选中项的名称 //获取所有选中项的名称
getSelectNames() { getSelectNames() {
var names = []; var names = [];
this.getSelectItems().forEach(v => { if (this.theme == "list") {
names.push(v.label); this.checkedItems.map(u => {
}); items.push(u.userName);
});
} else {
this.getSelectItems().forEach(v => {
names.push(v.label);
});
}
return names; return names;
} }
}, },
...@@ -253,6 +298,7 @@ export default { ...@@ -253,6 +298,7 @@ export default {
font-size: 14px; font-size: 14px;
} }
dl { dl {
width: 100%;
margin-bottom: 2px; margin-bottom: 2px;
dt, dt,
dd { dd {
...@@ -302,6 +348,20 @@ export default { ...@@ -302,6 +348,20 @@ export default {
border: 2px solid transparent; border: 2px solid transparent;
color: #515a6e; color: #515a6e;
margin: 10px; margin: 10px;
a {
display: inline-flex;
width: 20px;
height: 20px;
border-radius: 4px;
border: 1px solid transparent;
justify-items: center;
align-items: center;
margin-top: 5px;
}
a:hover {
background: rgb(241, 14, 14);
color: white;
}
} }
dd:hover { dd:hover {
// background: rgba(38, 128, 235, 1); // background: rgba(38, 128, 235, 1);
...@@ -324,7 +384,7 @@ export default { ...@@ -324,7 +384,7 @@ export default {
opacity: 1; opacity: 1;
border-radius: 4px; border-radius: 4px;
min-height: 48px; min-height: 48px;
flex-wrap:wrap; flex-wrap: wrap;
} }
} }
} }
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
.bg1{ .bg1{
background:#fefefe ; background:#fefefe ;
} }
.fg { // &.fg {
overflow: auto; // // overflow: auto;
} // }
} }
.layout-copy { .layout-copy {
text-align: center; text-align: center;
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
<div style="padding:50px;"> <div style="padding:50px;">
<UserSelect v-model="user" :multiple="true" theme="list"/> <UserSelect v-model="user" :multiple="true" theme="list"/>
<!-- <DepartmentSelect v-model="dep" /> <!-- <DepartmentSelect v-model="dep" />
{{user}}
<Button @click="setUser">Set</Button>{{dep}} --> <Button @click="setUser">Set</Button>{{dep}} -->
{{user}}
</div> </div>
</template> </template>
<script> <script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment