123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <template>
- <div>
- <a-card :bordered="false" class="ant-pro-components-tag-select">
- <a-form :form="form" layout="inline">
- <standard-form-row title="所属类目" block style="padding-bottom: 11px;">
- <a-form-item>
- <tag-select>
- <tag-select-option value="Category1">类目一</tag-select-option>
- <tag-select-option value="Category2">类目二</tag-select-option>
- <tag-select-option value="Category3">类目三</tag-select-option>
- <tag-select-option value="Category4">类目四</tag-select-option>
- <tag-select-option value="Category5">类目五</tag-select-option>
- <tag-select-option value="Category6">类目六</tag-select-option>
- <tag-select-option value="Category7">类目七</tag-select-option>
- <tag-select-option value="Category8">类目八</tag-select-option>
- <tag-select-option value="Category9">类目九</tag-select-option>
- <tag-select-option value="Category10">类目十</tag-select-option>
- </tag-select>
- </a-form-item>
- </standard-form-row>
- <standard-form-row title="其它选项" grid last>
- <a-row>
- <a-col :lg="8" :md="10" :sm="10" :xs="24">
- <a-form-item :wrapper-col="{ sm: { span: 16 }, xs: { span: 24 } }" label="作者">
- <a-select
- style="max-width: 200px; width: 100%;"
- mode="multiple"
- placeholder="不限"
- v-decorator="['author']"
- @change="handleChange"
- >
- <a-select-option value="lisa">王昭君</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :lg="8" :md="10" :sm="10" :xs="24">
- <a-form-item :wrapper-col="{ sm: { span: 16 }, xs: { span: 24 } }" label="好评度">
- <a-select
- style="max-width: 200px; width: 100%;"
- placeholder="不限"
- v-decorator="['rate']"
- >
- <a-select-option value="good">优秀</a-select-option>
- <a-select-option value="normal">普通</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- </a-row>
- </standard-form-row>
- </a-form>
- </a-card>
- <div class="ant-pro-pages-list-projects-cardList">
- <a-list :loading="loading" :data-source="data" :grid="{ gutter: 24, xl: 4, lg: 3, md: 3, sm: 2, xs: 1 }">
- <a-list-item slot="renderItem" slot-scope="item">
- <a-card class="ant-pro-pages-list-projects-card" hoverable>
- <img slot="cover" :src="item.cover" :alt="item.title" />
- <a-card-meta :title="item.title">
- <template slot="description">
- <ellipsis :length="50">{{ item.description }}</ellipsis>
- </template>
- </a-card-meta>
- <div class="cardItemContent">
- <span>{{ item.updatedAt | fromNow }}</span>
- <div class="avatarList">
- <avatar-list size="small" :max-length="2">
- <avatar-list-item
- v-for="(member, i) in item.members"
- :key="`${item.id}-avatar-${i}`"
- :src="member.avatar"
- :tips="member.name"
- />
- </avatar-list>
- </div>
- </div>
- </a-card>
- </a-list-item>
- </a-list>
- </div>
- </div>
- </template>
- <script>
- import moment from 'moment'
- import { TagSelect, StandardFormRow, Ellipsis, AvatarList } from '@/components'
- const TagSelectOption = TagSelect.Option
- const AvatarListItem = AvatarList.Item
- export default {
- components: {
- AvatarList,
- AvatarListItem,
- Ellipsis,
- TagSelect,
- TagSelectOption,
- StandardFormRow
- },
- data () {
- return {
- data: [],
- form: this.$form.createForm(this),
- loading: true
- }
- },
- filters: {
- fromNow (date) {
- return moment(date).fromNow()
- }
- },
- mounted () {
- this.getList()
- },
- methods: {
- handleChange (value) {
- console.log(`selected ${value}`)
- },
- getList () {
- this.$http.get('/list/article', { params: { count: 8 } }).then(res => {
- console.log('res', res)
- this.data = res.result
- this.loading = false
- })
- }
- }
- }
- </script>
- <style lang="less" scoped>
- .ant-pro-components-tag-select {
- :deep(.ant-pro-tag-select .ant-tag) {
- margin-right: 24px;
- padding: 0 8px;
- font-size: 14px;
- }
- }
- .ant-pro-pages-list-projects-cardList {
- margin-top: 24px;
- :deep(.ant-card-meta-title) {
- margin-bottom: 4px;
- }
- :deep(.ant-card-meta-description) {
- height: 44px;
- overflow: hidden;
- line-height: 22px;
- }
- .cardItemContent {
- display: flex;
- height: 20px;
- margin-top: 16px;
- margin-bottom: -4px;
- line-height: 20px;
- > span {
- flex: 1 1;
- color: rgba(0,0,0,.45);
- font-size: 12px;
- }
- :deep(.ant-pro-avatar-list) {
- flex: 0 1 auto;
- }
- }
- }
- </style>
|