index.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <template>
  2. <div class="flex-column-page-wrap pageWrap">
  3. Home
  4. <div class="common_title" style="background: #f00">多语言 使用 todo 选择 人员 选择角色</div>
  5. <div class="content">
  6. <el-button size="small" @click="switchLang">
  7. lang: 切换
  8. <LeIcon icon-class="le-frozen" />
  9. <LeIcon icon-class="le-warning" />
  10. {{ $i18n.locale }}
  11. </el-button>
  12. <div>local文字: {{ $t('route.dashboard') }}</div>
  13. <div>src/locale 文字(携带 le前缀做区分): {{ $t('le.btn.add') }}</div>
  14. </div>
  15. <SearchGroup2Popover v-if="false" />
  16. <LeSelectDemo v-if="true" />
  17. <InputNumberDemo v-if="true" />
  18. <LeDraggableNestDemo v-if="true" />
  19. <Watermark v-if="true" />
  20. <div class="common_title">le-iconfont && LeIcon</div>
  21. <div class="content">
  22. <!-- 单色样式类 -->
  23. <!--也可拼接 对应icon文件夹注入的icon 文件-->
  24. <SvgIcon icon-class="logo" />
  25. <LeIcon icon-class="icon-logo" />
  26. <span class="le-iconfont le-review"></span>
  27. <LeIcon icon-class="le-checkbox_checked"></LeIcon>
  28. <span class="le-iconfont le-checkbox_checked"></span>
  29. <LeIcon icon-class="le-checkbox"></LeIcon>
  30. <span class="le-iconfont le-checkbox"></span>
  31. <LeIcon icon-class="le-radio_checked"></LeIcon>
  32. <span class="le-iconfont le-radio_checked"></span>
  33. <LeIcon icon-class="le-radio"></LeIcon>
  34. <span class="le-iconfont le-radio"></span>
  35. <!-- svg -->
  36. <LeIcon icon-class="le-frozen" @click="testHandler"></LeIcon>
  37. <!--Table 操作 用: Icon按钮-->
  38. <el-tooltip placement="top" :content="$t('le.btn.search')">
  39. <el-button class="le-icon-button" @click="testHandler('row')">
  40. <LeIcon icon-class="le-view"></LeIcon>
  41. </el-button>
  42. </el-tooltip>
  43. </div>
  44. <!-- <div class="common_title">下拉Dropdown LeDropdown</div>
  45. <div class="content">
  46. <LeDropdown v-model="dropdownValue" :options="dropdownOptions" clearable modelValue>
  47. &lt;!&ndash; <template #btn="{ selectOption, showClear }">
  48. <span class="le-dropdown-link">
  49. {{$log(showClear, 'showClear')}}
  50. {{selectOption.label}}
  51. <i :class="['action el-icon-arrow-down']" />
  52. </span>
  53. </template>&ndash;&gt;
  54. </LeDropdown>
  55. <LeDropdown v-model="dropdownValue" :options="dropdownOptions" @command="$log($event, 'command 测试')">
  56. <template #btn="testHandler">
  57. <span class="le-dropdown-link">
  58. {{testHandler}}
  59. <i :class="['action el-icon-arrow-down']" />
  60. </span>
  61. </template>
  62. <template slot="options">
  63. <el-dropdown-item
  64. v-for="opt in dropdownOptions"
  65. :key="opt.value"
  66. :command="opt.value"
  67. :disabled="opt.disabled"
  68. >
  69. -&#45;&#45;{{ opt.label }}&#45;&#45;&#45;&#45; label
  70. </el-dropdown-item>
  71. </template>
  72. </LeDropdown>
  73. </div>-->
  74. <div class="common_title">暂无数据 LeNoData</div>
  75. <div class="content">
  76. <LeNoData :message="`<div style='background: var(--el-color-danger);'>test: lang: ${$i18n.locale}</div>`" @click="$log('test....')">
  77. <template #extraContent>no data</template>
  78. </LeNoData>
  79. </div>
  80. <!-- <div class="common_title">ElCard Style</div>
  81. <div class="content">...</div>
  82. <div class="common_title">iconfont && LeIcon</div>
  83. <div class="content">
  84. <el-card shadow="never" class="le-card-bg picking-list" header="Picking List">
  85. <template slot="header">
  86. Picking List&#45;&#45;&#45;&#45;
  87. <el-button type="text">Clear</el-button>
  88. </template>
  89. 123456
  90. </el-card>
  91. </div>-->
  92. </div>
  93. </template>
  94. <script setup name="home" lang="tsx">
  95. import { ref } from 'vue'
  96. import SearchGroup2Popover from './components/SearchGroup2Popover'
  97. import LeSelectDemo from './components/LeSelectDemo'
  98. import InputNumberDemo from './components/InputNumberDemo'
  99. import LeDraggableNestDemo from './components/LeDraggableNestDemo'
  100. import Watermark from './components/Watermark'
  101. import useStore from '@/store/index'
  102. import { useI18n } from 'vue-i18n'
  103. // import i18n from '@/lang'
  104. const dropdownValue = ref()
  105. const dropdownOptions = ref([
  106. {
  107. label: 'in',
  108. value: 0
  109. },
  110. {
  111. label: 'cm',
  112. value: 1
  113. }
  114. ])
  115. const testHandler = () => {
  116. console.error('testHandler...')
  117. }
  118. const { locale } = useI18n()
  119. const switchLang = () => {
  120. // let lang = this.$i18n.locale
  121. // let lang = i18n.global.locale.value
  122. let lang = locale.value
  123. if (lang === 'en') {
  124. lang = 'zh-cn'
  125. } else {
  126. lang = 'en'
  127. }
  128. // console.error(lang, 'lang')
  129. locale.value = lang
  130. const { app } = useStore()
  131. app.setLanguage(lang)
  132. // i18n.global.setLocaleMessage(lang)
  133. // this.$i18n.locale = lang
  134. // this.$i18n.fallbackLocale = lang
  135. }
  136. </script>
  137. <style lang="scss" scoped>
  138. .pageWrap {
  139. padding: 10px 12px;
  140. overflow: auto;
  141. }
  142. .le-iconfont {
  143. color: #0d84ff;
  144. }
  145. </style>