uni-agreements.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <view class="root">
  3. <checkbox-group @change="setAgree" class="checkbox-group">
  4. <checkbox :checked="isAgree" style="transform: scale(0.7);" />
  5. <text>{{$t('base.common.agree')}}</text>
  6. </checkbox-group>
  7. <view class="item" v-for="(agreement,index) in agreements" :key="index">
  8. <text class="agreement" @click="navigateTo(agreement)">{{agreement.title}}</text>
  9. <text class="hint" v-if="hasAnd(agreements,index)">&</text>
  10. </view>
  11. </view>
  12. </template>
  13. <script>
  14. export default {
  15. name:"uni-agreements",
  16. computed:{
  17. agreements(){
  18. return getApp().globalData.config.about.agreements||[]
  19. }
  20. },
  21. methods:{
  22. navigateTo({url,title}){
  23. uni.navigateTo({
  24. url: '/subpages/common/webview/webview?url='+url+'&title='+title,
  25. success: res => {},
  26. fail: () => {},
  27. complete: () => {}
  28. });
  29. },
  30. hasAnd(agreements,index){
  31. return agreements.length-1>index
  32. },
  33. setAgree(e){
  34. this.isAgree = !this.isAgree
  35. this.$emit('setAgree',this.isAgree)
  36. }
  37. },
  38. created() {
  39. uni.$on('setAgreementsAgree',state=>{
  40. console.log('setAgreementsAgree',state);
  41. this.isAgree = state
  42. this.$emit('setAgree',state)
  43. })
  44. },
  45. data() {
  46. return {
  47. isAgree:false
  48. };
  49. }
  50. }
  51. </script>
  52. <style lang="scss" scoped>
  53. /* #ifndef APP-NVUE */
  54. view{
  55. display: flex;
  56. box-sizing: border-box;
  57. flex-direction: column;
  58. }
  59. /* #endif */
  60. .root{
  61. flex-direction: row;
  62. align-items: center;
  63. font-size: 28rpx;
  64. color: #8a8f8b;
  65. }
  66. .checkbox-group{
  67. align-items: center;
  68. display: flex;
  69. flex-direction: row;
  70. }
  71. .item{
  72. flex-direction: row;
  73. }
  74. .agreement{
  75. color:#04498c;
  76. }
  77. </style>