|
|
@@ -1,6 +1,10 @@
|
|
|
<template>
|
|
|
<div class="white-box">
|
|
|
<div class="filter-box">
|
|
|
+ <!-- 功能搜索 -->
|
|
|
+ <div class="filter-box">
|
|
|
+ <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
|
|
|
+ </div>
|
|
|
<el-table
|
|
|
:key="tableKey"
|
|
|
v-loading="listLoading"
|
|
|
@@ -11,34 +15,41 @@
|
|
|
style="width: 100%;"
|
|
|
@selection-change="handleSelectionChange"
|
|
|
>
|
|
|
- <el-table-column type="selection" width="55" />
|
|
|
- <el-table-column :label="$t('ad.adTitle')" prop="id" align="center" :class-name="getSortClass('id')">
|
|
|
+<!-- <el-table-column type="selection" width="55" />-->
|
|
|
+ <el-table-column :label="$t('ad.country')" prop="id" align="center" :class-name="getSortClass('id')">
|
|
|
<template slot-scope="{row}">
|
|
|
- <span>{{ row.TITLE }}</span>
|
|
|
+ <span>{{ row.COUNTRY_NAME }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column :label="$t('ad.adLocation')" prop="id" align="center" :class-name="getSortClass('id')">
|
|
|
- <template :value="{allLocation}">
|
|
|
- <span>{{ allLocation.LOCATION_NAME }}</span>
|
|
|
+ <el-table-column :label="$t('ad.adTitle')" prop="id" align="center" :class-name="getSortClass('id')">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ <span>{{ row.TITLE.value }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+<!-- <el-table-column :label="$t('ad.adLocation')" prop="id" align="center" :class-name="getSortClass('id')">-->
|
|
|
+<!-- <template :value="{allLocation}">-->
|
|
|
+<!-- <span>{{ allLocation.LOCATION_NAME }}</span>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
<el-table-column :label="$t('ad.type')" align="center"> <!-- 类型 -->
|
|
|
<template slot-scope="{row}">
|
|
|
- <template v-if="row.TYPE === '1'">
|
|
|
- <el-tag type="success">External Links</el-tag> <!-- 外链 -->
|
|
|
- </template>
|
|
|
- <template v-else-if="row.TYPE === '2'">
|
|
|
- <el-tag>Article</el-tag> <!-- 文章 -->
|
|
|
+ <template>
|
|
|
+ <div v-if="row.TYPE === '1'">
|
|
|
+ {{ $t('ad.externalLinks') }}
|
|
|
+ </div><!-- 链接 -->
|
|
|
+ <div v-else-if="row.TYPE === '2'">
|
|
|
+ {{ $t('ad.article') }}
|
|
|
+ </div><!-- 文章 -->
|
|
|
</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column :label="$t('ad.content')" prop="id" align="center" :class-name="getSortClass('id')">
|
|
|
<template slot-scope="{row}">
|
|
|
<div v-if="row.TYPE === '1'">
|
|
|
- <el-link type="primary" target="_blank" :href="getHref(row.CONTENT)">{{ row.CONTENT }}</el-link>
|
|
|
+ <el-link type="primary" target="_blank" :href="getHref(row.CONTENT.value)">{{ row.CONTENT.value }}</el-link>
|
|
|
</div><!-- 链接 -->
|
|
|
<div v-else-if="row.TYPE === '2'">
|
|
|
- <router-link :to="`/article/detail/${row.CONTENT}`" target="_blank" style="cursor: pointer;">{{ getContent(row.CONTENT) }}</router-link>
|
|
|
+ <router-link :to="`/article/detail/${row.CONTENT.value}`" target="_blank" style="cursor: pointer;">{{ getContent(row.CONTENT.value) }}</router-link>
|
|
|
</div><!-- 文章 -->
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -53,39 +64,35 @@
|
|
|
/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column :label="$t('ad.creator')" prop="id" align="center" :class-name="getSortClass('id')">
|
|
|
- <template slot-scope="{row}">
|
|
|
- <span>{{ row.CREATE_ADMIN_NAME }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column :label="$t('ad.createTime')" align="center">
|
|
|
- <template slot-scope="{row}">
|
|
|
- <span>{{ row.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column :label="$t('ad.modifiedBy')" prop="id" align="center" width="80" :class-name="getSortClass('id')">
|
|
|
- <template slot-scope="{row}">
|
|
|
- <span>{{ row.UPDATE_ADMIN_NAME }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column :label="$t('ad.modifiedTime')" align="center">
|
|
|
- <template slot-scope="{row}">
|
|
|
- <span>{{ tool.formatDate(row.UPDATED_AT) }}</span>
|
|
|
+<!-- <el-table-column :label="$t('ad.creator')" prop="id" align="center" :class-name="getSortClass('id')">-->
|
|
|
+<!-- <template slot-scope="{row}">-->
|
|
|
+<!-- <span>{{ row.CREATE_ADMIN_NAME }}</span>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
+<!-- <el-table-column :label="$t('ad.createTime')" align="center">-->
|
|
|
+<!-- <template slot-scope="{row}">-->
|
|
|
+<!-- <span>{{ row.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
+<!-- <el-table-column :label="$t('ad.modifiedBy')" prop="id" align="center" width="80" :class-name="getSortClass('id')">-->
|
|
|
+<!-- <template slot-scope="{row}">-->
|
|
|
+<!-- <span>{{ row.UPDATE_ADMIN_NAME }}</span>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
+<!-- <el-table-column :label="$t('ad.modifiedTime')" align="center">-->
|
|
|
+<!-- <template slot-scope="{row}">-->
|
|
|
+<!-- <span>{{ tool.formatDate(row.UPDATED_AT) }}</span>-->
|
|
|
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column :label="$t('ad.status')" align="center"> <!-- 类型 -->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
+ <el-table-column :label="$t('article.status')" align="center">
|
|
|
<template slot-scope="{row}">
|
|
|
- <template v-if="row.STATUS === '1'">
|
|
|
- <el-tag type="success">show</el-tag> <!-- 外链 -->
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-tag>hide</el-tag> <!-- 文章 -->
|
|
|
- </template>
|
|
|
+ <div v-if="row.STATUS.value === '1'">{{$t('article.show')}}</div>
|
|
|
+ <div v-else>{{$t('article.hide')}}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column :label="$t('ad.action')" align="center">
|
|
|
|
|
|
+ <el-table-column :label="$t('ad.action')" align="center">
|
|
|
<template slot-scope="{row}">
|
|
|
<el-dropdown v-if="permission.hasPermission(`ad/ad-delete`) || permission.hasPermission(`ad/edit`)" size="small" trigger="click">
|
|
|
<el-button type="primary" size="small" @click.stop="">
|
|
|
@@ -102,18 +109,18 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div class="white-box-footer">
|
|
|
- <el-dropdown v-if="permission.hasPermission(`ad/ad-delete`)" size="small">
|
|
|
- <el-button type="primary" size="small">
|
|
|
- {{ $t('ad.selectData') }}<i class="el-icon-arrow-down el-icon--right" />
|
|
|
- </el-button>
|
|
|
- <el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item command="delete" @click.native="handleMuliDel()">{{ $t('table.delete') }}</el-dropdown-item>
|
|
|
- <el-dropdown-item command="hide" @click.native="handleMultiHide()">{{ $t('ad.hide') }}</el-dropdown-item>
|
|
|
- <el-dropdown-item command="un-hide" @click.native="handleMultiUnHide()">{{ $t('ad.unhide') }}</el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </el-dropdown>
|
|
|
+<!-- <el-dropdown v-if="permission.hasPermission(`ad/ad-delete`)" size="small">-->
|
|
|
+<!-- <el-button type="primary" size="small">-->
|
|
|
+<!-- {{ $t('ad.selectData') }}<i class="el-icon-arrow-down el-icon--right" />-->
|
|
|
+<!-- </el-button>-->
|
|
|
+<!-- <el-dropdown-menu slot="dropdown">-->
|
|
|
+<!-- <el-dropdown-item command="delete" @click.native="handleMuliDel()">{{ $t('table.delete') }}</el-dropdown-item>-->
|
|
|
+<!-- <el-dropdown-item command="hide" @click.native="handleMultiHide()">{{ $t('ad.hide') }}</el-dropdown-item>-->
|
|
|
+<!-- <el-dropdown-item command="un-hide" @click.native="handleMultiUnHide()">{{ $t('ad.unhide') }}</el-dropdown-item>-->
|
|
|
+<!-- </el-dropdown-menu>-->
|
|
|
+<!-- </el-dropdown>-->
|
|
|
<el-button v-if="permission.hasPermission(`ad/ad-delete`)" type="primary" size="small" icon="el-icon-plus" @click="handleAdd">{{ $t('ad.add') }}</el-button>
|
|
|
- <pagination v-show="total>0" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
|
|
|
+ <pagination v-show="total>0" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getData" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -127,6 +134,8 @@ import tool from '@/utils/tool'
|
|
|
import permission from '@/utils/permission'
|
|
|
import Pagination from '@/components/Pagination' // secondary package based on el-pagination
|
|
|
import ElementUI from 'element-ui'
|
|
|
+import FilterUser from "@/components/FilterUser.vue";
|
|
|
+import filterHelper from "@/utils/filterHelper";
|
|
|
|
|
|
const calendarTypeOptions = [
|
|
|
{ key: 'CN', display_name: 'China' },
|
|
|
@@ -141,7 +150,7 @@ const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => {
|
|
|
|
|
|
export default {
|
|
|
name: 'ComplexTable',
|
|
|
- components: { Pagination },
|
|
|
+ components: {FilterUser, Pagination },
|
|
|
directives: { waves },
|
|
|
filters: {
|
|
|
statusFilter(status) {
|
|
|
@@ -208,34 +217,44 @@ export default {
|
|
|
allArticle: [],
|
|
|
allLocation: {
|
|
|
LOCATION_NAME: null
|
|
|
- }
|
|
|
+ },
|
|
|
+ filterTypes: null,
|
|
|
+ filterModel: {},
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
- this.getList()
|
|
|
+ this.getData()
|
|
|
},
|
|
|
methods: {
|
|
|
handleSelectionChange(val) {
|
|
|
this.multipleSelection = val
|
|
|
},
|
|
|
handleSizeChange (pageSize) {
|
|
|
- this.getList(this.currentPage, pageSize)
|
|
|
+ this.getData(this.currentPage, pageSize)
|
|
|
},
|
|
|
handleCurrentChange (page) {
|
|
|
- this.getList(page, this.pageSize)
|
|
|
+ this.getData(page, this.pageSize)
|
|
|
},
|
|
|
- getList(page, pageSize) {
|
|
|
+ getData(page, pageSize) {
|
|
|
this.listLoading = true
|
|
|
this.listQuery.adId = this.$route.params
|
|
|
this.listQuery.page = (page === null || page == undefined) ? 1 : page
|
|
|
this.listQuery.pageSize = (pageSize === null || pageSize == undefined) ? this.pageSize : pageSize
|
|
|
- fetchAdList(this.listQuery).then(response => {
|
|
|
+ const paramsData = Object.assign({
|
|
|
+ adId: this.$route.params,
|
|
|
+ page: (page === null || page == undefined) ? 1 : page,
|
|
|
+ pageSize: (pageSize === null || pageSize == undefined) ? this.pageSize : pageSize
|
|
|
+ }, this.filterModel)
|
|
|
+ // const paramsData = Object.assign(this.listQuery, this.filterModel)
|
|
|
+ fetchAdList(paramsData).then(response => {
|
|
|
this.list = response.data.list
|
|
|
this.total = response.data.totalCount
|
|
|
this.allArticle = response.data.allArticle
|
|
|
const ad_id = this.listQuery.adId.ID
|
|
|
this.allLocation = response.data.allLocation[ad_id]
|
|
|
this.pageSize = pageSize
|
|
|
+ this.filterTypes = response.data.filterTypes
|
|
|
+
|
|
|
// Just to simulate the time of the request
|
|
|
setTimeout(() => {
|
|
|
this.listLoading = false
|
|
|
@@ -244,7 +263,7 @@ export default {
|
|
|
},
|
|
|
handleFilter() {
|
|
|
this.listQuery.page = 1
|
|
|
- this.getList()
|
|
|
+ this.getData()
|
|
|
},
|
|
|
resetTemp() {
|
|
|
this.temp = {
|
|
|
@@ -330,7 +349,7 @@ export default {
|
|
|
message: response.data,
|
|
|
type: 'success'
|
|
|
})
|
|
|
- obj.getList(obj.currentPage, obj.pageSize)
|
|
|
+ obj.getData(obj.currentPage, obj.pageSize)
|
|
|
}).catch((error) => {
|
|
|
ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
|
|
|
})
|
|
|
@@ -356,7 +375,7 @@ export default {
|
|
|
message: response.data,
|
|
|
type: 'success'
|
|
|
})
|
|
|
- obj.getList(obj.currentPage, obj.pageSize)
|
|
|
+ obj.getData(obj.currentPage, obj.pageSize)
|
|
|
}).catch((error) => {
|
|
|
ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
|
|
|
})
|
|
|
@@ -385,12 +404,16 @@ export default {
|
|
|
message: response.data,
|
|
|
type: 'success'
|
|
|
})
|
|
|
- obj.getList(obj.currentPage, obj.pageSize)
|
|
|
+ obj.getData(obj.currentPage, obj.pageSize)
|
|
|
}).catch((error) => {
|
|
|
ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
|
|
|
})
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+ handleFilterUser(filterData) {
|
|
|
+ console.log(filterData)
|
|
|
+ filterHelper.handleFilterUser(this, filterData)
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|