加油站付款小程序,打印小票
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.
 
 
 
 

97 lines
1.8 KiB

<template>
<!-- 协议配置弹出层组件 -->
<view>
<uv-parse
v-if="tiled"
:content="content">
</uv-parse>
<uv-popup
v-else
:customStyle="{height: '75vh'}"
ref="popup">
<view id="config">
<uv-parse :content="content"></uv-parse>
</view>
</uv-popup>
</view>
</template>
<script>
import { mapState } from 'vuex'
export default {
name:"configPopup",
props : {
findValue : {//查找对应的值
type : String,
},
findKey : {//查找的键
type : String,
default : 'keyValue'
},
contentKey : {//展示内容的键
type : String,
default : 'content'
},
languageContentKey : {//国际化展示内容的键
type : Object,
},
index : {//索引查找,优先级高于查找
type : Number,
},
tiled : {
default : false,
type : Boolean,
}
},
data() {
return {
};
},
computed : {
...mapState(['configList']),
locale(){
return this.$t('components.config.configPopup')
},
obj(){
if(typeof this.index == 'number'){
return this.configList[this.index]
}
for(let i = 0; i < this.configList.length; i++){
if(this.configList[i][this.findKey] == this.findValue){
return this.configList[i]
}
}
},
objKey(){
if(this.languageContentKey
&& this.languageContentKey[this.$i18n.locale]){
return this.languageContentKey[this.$i18n.locale]
}
return this.contentKey
},
content(){
if(!this.obj){
return `<h3>${this.locale.noData}</h3>`
}
return this.obj[this.objKey]
}
},
methods : {
open(type = 'bottom'){
if(this.tiled){
return
}
this.$refs.popup.open(type);
},
},
}
</script>
<style scoped lang="scss">
#config{
padding: 20rpx;
line-height: 50rpx;
}
</style>