|
@@ -50,6 +50,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+import { getFeaturedArticles } from '@/utils/api.js'
|
|
|
var DIMENSION_MAP = {
|
|
var DIMENSION_MAP = {
|
|
|
body: { name: '身', color: '#FF8C42' },
|
|
body: { name: '身', color: '#FF8C42' },
|
|
|
mind: { name: '心', color: '#FF6B9D' },
|
|
mind: { name: '心', color: '#FF6B9D' },
|
|
@@ -68,24 +69,49 @@ var defaultGradientColors = [
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
props: {
|
|
props: {
|
|
|
- dimensionCode: { type: String, required: true },
|
|
|
|
|
articles: { type: Array, default: function() { return [] } },
|
|
articles: { type: Array, default: function() { return [] } },
|
|
|
isLoggedIn: { type: Boolean, default: false },
|
|
isLoggedIn: { type: Boolean, default: false },
|
|
|
colors: { type: Array, default: function() { return defaultGradientColors } }
|
|
colors: { type: Array, default: function() { return defaultGradientColors } }
|
|
|
},
|
|
},
|
|
|
|
|
+ data: function() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ selfArticles: [],
|
|
|
|
|
+ loading: false
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
computed: {
|
|
computed: {
|
|
|
defaultColors: function() {
|
|
defaultColors: function() {
|
|
|
return defaultGradientColors
|
|
return defaultGradientColors
|
|
|
},
|
|
},
|
|
|
displayArticles: function() {
|
|
displayArticles: function() {
|
|
|
var self = this
|
|
var self = this
|
|
|
- return (this.articles || []).map(function(item) {
|
|
|
|
|
|
|
+ var list = (this.articles && this.articles.length > 0 ? this.articles : self.selfArticles)
|
|
|
|
|
+ return (list || []).map(function(item) {
|
|
|
item._badges = self.parseWeights(item.dimensionWeights)
|
|
item._badges = self.parseWeights(item.dimensionWeights)
|
|
|
return item
|
|
return item
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ mounted: function() {
|
|
|
|
|
+ if (!this.articles || this.articles.length === 0) {
|
|
|
|
|
+ this.loadArticles()
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ loadArticles: function() {
|
|
|
|
|
+ var self = this
|
|
|
|
|
+ self.loading = true
|
|
|
|
|
+ getFeaturedArticles({ size: 3 }).then(function(res) {
|
|
|
|
|
+ self.loading = false
|
|
|
|
|
+ if (res && res.code === 200 && res.data) {
|
|
|
|
|
+ var list = Array.isArray(res.data) ? res.data : (res.data.records || [])
|
|
|
|
|
+ self.selfArticles = list.slice(0, 3)
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(function() {
|
|
|
|
|
+ self.loading = false
|
|
|
|
|
+ self.selfArticles = []
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
parseWeights: function(str) {
|
|
parseWeights: function(str) {
|
|
|
if (!str) return []
|
|
if (!str) return []
|
|
|
try {
|
|
try {
|