CameraContent-1-1-2.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. <template>
  2. <div class="camera-content-1-1">
  3. <button
  4. class="return"
  5. @click="emit('close')"
  6. />
  7. <div class="content-wrap">
  8. <h1>营都人员与机构</h1>
  9. <div class="tabbar">
  10. <span
  11. :class="{
  12. active: activeTabIdx === 1
  13. }"
  14. @click="activeTabIdx = 1"
  15. >
  16. 能工巧匠
  17. </span>
  18. <div class="splitter" />
  19. <span
  20. :class="{
  21. active: activeTabIdx === 2
  22. }"
  23. @click="activeTabIdx = 2"
  24. >
  25. 专门机构
  26. </span>
  27. </div>
  28. <div
  29. v-if="activeTabIdx === 1"
  30. class="tab-content tab-1-content"
  31. >
  32. <p
  33. v-if="tab1ContentPageNumber === 1"
  34. class="text-indent"
  35. >
  36. 今天为我们所知的宫城营建者,有元初重要的汉军世家保定张氏。元世祖至元三年(1266)十二月丁亥,“诏安肃公张柔、行工部尚书段天祐等同行工部事,修筑宫城”,张柔之子张弘略,也担任了“修筑宫城总管”。正是他们把理想的都城从蓝图变为现实,又在岁月更替中修缮、维护着元大都城。雄伟的元大都宫阙因此被人称颂,堪称杰作的通惠河因此被世人铭记。
  37. </p>
  38. <div
  39. v-if="tab1ContentPageNumber === 2"
  40. class="table"
  41. >
  42. <h3>大都城主要设计者和建设者</h3>
  43. <img
  44. class="table-img"
  45. src="@/assets/images/camera-content-1-1-2-tab-1-table.png"
  46. alt=""
  47. draggable="false"
  48. >
  49. </div>
  50. <button
  51. v-if="tab1ContentPageNumber === 1"
  52. class="change-page next-page"
  53. @click="tab1ContentPageNumber = 2"
  54. />
  55. <button
  56. v-if="tab1ContentPageNumber === 2"
  57. class="change-page previous-page"
  58. @click="tab1ContentPageNumber = 1"
  59. />
  60. </div>
  61. <div
  62. v-if="activeTabIdx === 2"
  63. class="tab-content tab-2-content"
  64. >
  65. <p class="text-indent">
  66. 元大都的营建过程中,设立了不少专门机构,以供建设工程的需要。例如曾设立大都等处采石提举司,还专门拨采石之夫两千余户,常任工役,供应大都营建需要的石材。此外还设立过蔚州采木提举司。蔚州因为盛产木材,地理位置又距大都较近,因此成为木料的理想来源地。至元四年(1267),为了营建大都城门,就有三千人在蔚州采木,可以想见营建工程规模的宏大。
  67. </p>
  68. <img
  69. class=""
  70. src="@/assets/images/camera-content-1-1-2-tab-2-img.jpg"
  71. alt=""
  72. draggable="false"
  73. >
  74. <div class="img-title img-legend">
  75. 建设中的元大都
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </template>
  81. <script setup>
  82. import { ref } from "vue"
  83. const {
  84. windowSizeInCssForRef,
  85. windowSizeWhenDesignForRef,
  86. } = useSizeAdapt(1920, 970)
  87. const emit = defineEmits(['close'])
  88. const activeTabIdx = ref(1)
  89. const tab1ContentPageNumber = ref(1)
  90. </script>
  91. <style lang="less" scoped>
  92. .camera-content-1-1{
  93. position: absolute;
  94. left: 0;
  95. top: 0;
  96. width: 100%;
  97. height: 100%;
  98. background: rgba(0,0,0,0.45);
  99. backdrop-filter: blur(60px);
  100. >button.return{
  101. position: absolute;
  102. width: 58px;
  103. height: 58px;
  104. left: 42px;
  105. top: 68px;
  106. background-image: url(@/assets/images/btn-return.png);
  107. background-size: contain;
  108. background-repeat: no-repeat;
  109. background-position: center center;
  110. }
  111. >.content-wrap{
  112. position: absolute;
  113. left: 50%;
  114. top: 54%;
  115. width: calc(1585 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  116. height: calc(819 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  117. transform: translate(-50%, -50%);
  118. background-image: url(@/assets/images/camera-content-1-1-2-bg.png);
  119. background-size: cover;
  120. background-repeat: no-repeat;
  121. background-position: center center;
  122. >h1{
  123. position: absolute;
  124. left: calc(163 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  125. top: calc(217 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  126. font-size: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  127. font-family: "SourceHanSerifCN-SemiBold";
  128. color: #FBF7DC;
  129. line-height: calc(47 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  130. writing-mode: vertical-lr;
  131. letter-spacing: 0.3em;
  132. }
  133. >.tabbar{
  134. position: absolute;
  135. display: flex;
  136. flex-direction: column;
  137. align-items: center;
  138. left: calc(373 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  139. top: calc(42 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  140. >span{
  141. width: 46px;
  142. height: 168px;
  143. writing-mode: vertical-lr;
  144. display: flex;
  145. justify-content: center;
  146. align-items: center;
  147. color: #FFF3C3;
  148. background: #AC997F;
  149. font-size: 18px;
  150. letter-spacing: 8px;
  151. font-family: "SourceHanSerifCN-SemiBold";
  152. box-shadow: 3px 4px 9px 0px rgba(0,0,0,0.25);
  153. cursor: pointer;
  154. }
  155. >span.active{
  156. color: #43310E;
  157. background: linear-gradient(322deg, #C69D49 0%, #F8E6A9 68%);
  158. }
  159. >.splitter{
  160. position: absolute;
  161. left: 50%;
  162. top: 50%;
  163. transform: translate(-50%, -50%);
  164. width: calc(34 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  165. height: 1px;
  166. background-color: #FFF3C3;
  167. }
  168. }
  169. >.tab-content{
  170. position: absolute;
  171. left: calc(450 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  172. top: calc(42 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  173. width: calc(950 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  174. height: calc(750 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  175. display: flex;
  176. justify-content: center;
  177. align-items: center;
  178. }
  179. >.tab-1-content{
  180. >p{
  181. width: calc(809 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  182. max-height: 80%;
  183. overflow: auto;
  184. font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  185. font-family: Source Han Sans SC, Source Han Sans SC;
  186. font-weight: 300;
  187. color: #000000;
  188. line-height: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  189. // letter-spacing: calc(4 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  190. padding-right: 0.5em;
  191. }
  192. >div.table{
  193. position: absolute;
  194. left: 0;
  195. top: 0;
  196. width: 100%;
  197. height: 100%;
  198. display: flex;
  199. flex-direction: column;
  200. justify-content: center;
  201. align-items: center;
  202. >h3{
  203. width: calc(528 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  204. height: calc(64 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  205. display: flex;
  206. justify-content: center;
  207. align-items: center;
  208. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-table-title.png);
  209. background-size: cover;
  210. background-repeat: no-repeat;
  211. background-position: center center;
  212. font-size: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  213. font-family: Source Han Serif CN;
  214. font-weight: 600;
  215. color: #6A3906;
  216. line-height: calc(33 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  217. letter-spacing: calc(5 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  218. margin-bottom: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  219. }
  220. >img.table-img{
  221. width: calc(931 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  222. height: calc(528 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  223. }
  224. }
  225. >button.change-page{
  226. position: absolute;
  227. width: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  228. height: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  229. right: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  230. bottom: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  231. background-size: cover;
  232. background-repeat: no-repeat;
  233. background-position: center center;
  234. }
  235. >button.next-page{
  236. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-next-page.png);
  237. }
  238. >button.previous-page{
  239. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-previous-page.png);
  240. }
  241. }
  242. >.tab-2-content{
  243. padding-top: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  244. padding-bottom: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  245. display: flex;
  246. flex-direction: column;
  247. justify-content: space-evenly;
  248. align-items: center;
  249. >p{
  250. width: calc(809 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  251. max-height: calc(300 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  252. overflow: auto;
  253. font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  254. font-family: Source Han Sans CN, Source Han Sans CN;
  255. font-weight: 300;
  256. color: #000000;
  257. line-height: 1.5;
  258. // letter-spacing: calc(8 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  259. }
  260. >img{
  261. width: calc(818 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  262. height: calc(216 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  263. // border: 1px solid #FFE88B;
  264. // padding: calc(22 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  265. background-color: rgba(145,129,117,0.25);
  266. object-fit: cover;
  267. }
  268. }
  269. }
  270. }
  271. </style>