index.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <template>
  2. <div class="team-wrap">
  3. <h1 class="title">认识团队</h1>
  4. <p class="desc">
  5. billd-live目前是个人开发,暂时没有贡献者,但以后可能会有,以下是目前部分团队成员的个人信息。
  6. </p>
  7. <div class="hr"></div>
  8. <div class="core-team">
  9. <div class="info">
  10. <h2 class="title">核心团队成员</h2>
  11. <div class="desc">
  12. 核心团队成员是那些积极参与维护一个或多个核心项目的人。他们对billd-live
  13. 的生态系统做出了重大贡献,并对项目及其用户的成功做出了长期的承诺。
  14. </div>
  15. </div>
  16. <div class="members">
  17. <div
  18. v-for="(item, index) in list"
  19. :key="index"
  20. class="item"
  21. >
  22. <img
  23. class="avatar"
  24. src="https://www.github.com/galaxy-s10.png"
  25. alt=""
  26. />
  27. <div class="data">
  28. <div class="name">{{ item.name }}</div>
  29. <div class="org">{{ item.org }}</div>
  30. <div class="profiles">
  31. <div class="desc skills">
  32. <n-icon size="18">
  33. <CodeOutline></CodeOutline>
  34. </n-icon>
  35. <div class="txt">
  36. <a
  37. v-for="(iten, indey) in item.skill"
  38. :key="'skill-' + indey"
  39. class="skill link"
  40. :href="iten.github"
  41. @click.prevent="openToTarget(iten.github)"
  42. >
  43. {{ iten.label }}
  44. </a>
  45. </div>
  46. </div>
  47. <div class="desc">
  48. <n-icon size="18">
  49. <LocationOutline></LocationOutline>
  50. </n-icon>
  51. <div class="txt">{{ item.country }}</div>
  52. </div>
  53. <div class="desc langues">
  54. <n-icon size="18">
  55. <GlobeOutline></GlobeOutline>
  56. </n-icon>
  57. <div class="txt">
  58. <span
  59. v-for="(iten, indey) in item.langues"
  60. :key="'lang-' + indey"
  61. class="langue"
  62. >
  63. {{ iten }}
  64. </span>
  65. </div>
  66. </div>
  67. <div class="desc">
  68. <n-icon size="18">
  69. <Link></Link>
  70. </n-icon>
  71. <a
  72. :href="item.website"
  73. class="txt link"
  74. @click.prevent="openToTarget(item.website)"
  75. >
  76. {{ item.website }}
  77. </a>
  78. </div>
  79. </div>
  80. <div class="social-list">
  81. <a
  82. v-for="(iten, indez) in item.social"
  83. :key="'social-' + indez"
  84. class="social link"
  85. :href="iten.github"
  86. @click.prevent="openToTarget(iten.github)"
  87. >
  88. <n-icon
  89. size="22"
  90. class="ico"
  91. >
  92. <LogoGithub></LogoGithub>
  93. </n-icon>
  94. </a>
  95. </div>
  96. </div>
  97. <div class="sponsor">
  98. <n-icon
  99. size="18"
  100. class="ico"
  101. >
  102. <HeartOutline></HeartOutline>
  103. </n-icon>
  104. 赞助
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. </template>
  111. <script lang="ts" setup>
  112. import {
  113. CodeOutline,
  114. GlobeOutline,
  115. HeartOutline,
  116. Link,
  117. LocationOutline,
  118. LogoGithub,
  119. } from '@vicons/ionicons5';
  120. import { openToTarget } from 'billd-utils';
  121. import { ref } from 'vue';
  122. import { domain } from '@/spec-config';
  123. const list = ref([
  124. {
  125. avatar: 'https://www.github.com/galaxy-s10.png',
  126. name: 'galaxy-s10',
  127. org: 'Creator @billd-live',
  128. country: 'Guangzho, China',
  129. langues: ['中文'],
  130. skill: [
  131. {
  132. label: 'billd-live',
  133. github: 'https://github.com/galaxy-s10/billd-live',
  134. },
  135. {
  136. label: 'billd-live-admin',
  137. github: 'https://github.com/galaxy-s10/billd-live-admin',
  138. },
  139. {
  140. label: 'billd-live-server',
  141. github: 'https://github.com/galaxy-s10/billd-live-server',
  142. },
  143. ],
  144. social: [{ github: 'https://www.github.com/galaxy-s10' }],
  145. website: `https://www.${domain}`,
  146. },
  147. ]);
  148. </script>
  149. <style lang="scss" scoped>
  150. .team-wrap {
  151. box-sizing: border-box;
  152. margin: 0 auto;
  153. padding-top: 50px;
  154. width: 960px;
  155. .link {
  156. color: $theme-color-gold;
  157. text-decoration: none;
  158. cursor: pointer;
  159. }
  160. .title {
  161. margin: 0;
  162. font-weight: 500;
  163. font-size: 40px;
  164. }
  165. .desc {
  166. margin: 0;
  167. color: #3c3c3cb3;
  168. font-size: 16px;
  169. line-height: 1.8;
  170. }
  171. .hr {
  172. margin: 60px 0 20px 0;
  173. width: 100%;
  174. height: 1px;
  175. background-color: #e7e7e7;
  176. }
  177. .core-team {
  178. display: flex;
  179. justify-content: space-between;
  180. padding-bottom: 30px;
  181. .info {
  182. .title {
  183. font-size: 20px;
  184. }
  185. .desc {
  186. box-sizing: border-box;
  187. margin-top: 3px;
  188. padding-right: 60px;
  189. width: 300px;
  190. font-size: 14px;
  191. line-height: 1.8;
  192. }
  193. }
  194. .members {
  195. flex-grow: 0.8;
  196. .item {
  197. position: relative;
  198. display: flex;
  199. padding: 30px 0;
  200. border-radius: 10px;
  201. background-color: #f9f9f9;
  202. .avatar {
  203. margin-left: 30px;
  204. width: 80px;
  205. height: 80px;
  206. border-radius: 50%;
  207. }
  208. .data {
  209. margin-left: 30px;
  210. .name {
  211. margin-bottom: 2px;
  212. font-size: 20px;
  213. }
  214. .org {
  215. margin-bottom: 10px;
  216. font-size: 14px;
  217. }
  218. .profiles {
  219. margin-bottom: 10px;
  220. .desc {
  221. display: flex;
  222. align-items: center;
  223. margin-bottom: 7px;
  224. .txt {
  225. margin-left: 10px;
  226. }
  227. &.langues,
  228. &.skills {
  229. .langue:not(:last-child),
  230. .skill:not(:last-child) {
  231. &:after {
  232. margin: 0 7px;
  233. color: #3c3c3c54;
  234. content: '•';
  235. font-size: 14px;
  236. }
  237. }
  238. }
  239. }
  240. }
  241. .social-list {
  242. padding-top: 2px;
  243. .social {
  244. color: #747474;
  245. cursor: pointer;
  246. }
  247. }
  248. }
  249. .sponsor {
  250. position: absolute;
  251. top: 20px;
  252. right: 20px;
  253. display: flex;
  254. align-items: center;
  255. padding: 4px 8px;
  256. border: 1px solid $theme-color-gold;
  257. border-radius: 4px;
  258. color: $theme-color-gold;
  259. cursor: pointer;
  260. transition: all 0.3s ease;
  261. &:hover {
  262. background-color: $theme-color-gold;
  263. color: white;
  264. }
  265. .ico {
  266. margin-right: 4px;
  267. }
  268. }
  269. }
  270. }
  271. }
  272. }
  273. </style>