You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
3.0 KiB
146 lines
3.0 KiB
<template>
|
|
<div class="department">
|
|
<div class="container">
|
|
<div class="title">
|
|
<div class="title__text">所有部门</div>
|
|
<el-input placeholder="搜索部门" v-model="input" class="title__input">
|
|
<template #append>
|
|
<el-button class="title__input--btn" icon="el-icon-search" @click="getDepts"></el-button>
|
|
</template>
|
|
</el-input>
|
|
</div>
|
|
|
|
<el-skeleton :loading="loading" animated>
|
|
<template #template>
|
|
<div>
|
|
<div class="list">
|
|
<el-skeleton-item variant="rect" class="list__item" v-for="i in 8">
|
|
</el-skeleton-item>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<template>
|
|
<div>
|
|
<div class="list">
|
|
<div class="list__item" v-for="i in departments">
|
|
{{ i.name }}
|
|
<el-image class="list__item--icon" mode="coutain" :src="require('@/assets/reception/department-list-item-bkg.png')"></el-image>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</el-skeleton>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { departments } from '@/api/reception'
|
|
export default {
|
|
data() {
|
|
return {
|
|
loading: false,
|
|
departments: [],
|
|
input: ''
|
|
}
|
|
},
|
|
methods: {
|
|
async getDepts () {
|
|
this.loading = true
|
|
const res = await departments({
|
|
keyword: this.input,
|
|
table_name: 'departments'
|
|
})
|
|
this.departments = res.department
|
|
this.loading = false
|
|
}
|
|
},
|
|
computed: {},
|
|
mounted() {
|
|
this.getDepts()
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.department {
|
|
background: #f8f8f8;
|
|
|
|
padding: 31px 18.75%;
|
|
}
|
|
|
|
.container {
|
|
background: #fff;
|
|
border-radius: 2px;
|
|
box-shadow: 0 0 15px 0 rgba(130,127,126,0.1);
|
|
|
|
padding: 24px 23px 44px 22px;
|
|
.title {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
|
|
&__text {
|
|
|
|
padding-left: 5px;
|
|
}
|
|
&__input {
|
|
width: 207px;
|
|
|
|
& ::v-deep .el-input__inner {
|
|
height: 35px;
|
|
}
|
|
|
|
&--btn {
|
|
width: 48px;
|
|
height: 35px;
|
|
background: #3788D6;
|
|
color: #fff;
|
|
border: none;
|
|
border-top-left-radius: 0;
|
|
border-bottom-left-radius: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.list {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
grid-gap: 17px;
|
|
|
|
margin-top: 21px;
|
|
|
|
&__item {
|
|
color: #247EC3;
|
|
font-weight: 500;
|
|
font-size: 16px;
|
|
text-align: center;
|
|
background: linear-gradient(to bottom,#fff 25%, #f0f7fc);
|
|
border: 1px solid #F8F8F8;
|
|
cursor: pointer;
|
|
transition: all .2s;
|
|
|
|
padding: 34px 41px;
|
|
margin-bottom: 16px;
|
|
position: relative;
|
|
|
|
&:hover {
|
|
color: #fff;
|
|
background: #3c7ac0;
|
|
}
|
|
&--icon {
|
|
width: 44px;
|
|
height: 50px;
|
|
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
}
|
|
}
|
|
}
|
|
</style>
|