sector.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. <template>
  2. <div class="sectorBox">
  3. <!-- <div class="sectorItemBox" @click="addModule('headSector',19)">
  4. <div class="sectorItem">
  5. <img src="@/assets/template/sector/headSector.png" />
  6. </div>
  7. <div class="sectorItemTitle">页头</div>
  8. </div>
  9. <div class="sectorItemBox" @click="addModule('menuSector',2)">
  10. <div class="sectorItem">
  11. <img src="@/assets/template/sector/menuSector.png" />
  12. </div>
  13. <div class="sectorItemTitle">网站导航</div>
  14. </div> -->
  15. <div class="sectorItemBox" @click="addModule('imgTitleSector',8,imgTitleSector)">
  16. <div class="sectorItem">
  17. <img src="@/assets/template/sector/imgTitleSector.png"/>
  18. </div>
  19. <div class="sectorItemTitle">通栏广告</div>
  20. </div>
  21. <div class="sectorItemBox" @click="addModule('bannerSector',33,bannerSector)">
  22. <div class="sectorItem">
  23. <img src="@/assets/template/sector/bannerSector.png"/>
  24. </div>
  25. <div class="sectorItemTitle">焦点图</div>
  26. </div>
  27. <div class="sectorItemBox" @click="addModule('manyPictureSector',49,manyPictureSector)">
  28. <div class="sectorItem">
  29. <img src="@/assets/template/sector/moreServicesSector.png"/>
  30. </div>
  31. <div class="sectorItemTitle">多图菜单</div>
  32. </div>
  33. <div class="sectorItemBox" @click="addModule('commentSector',44,commentSector)">
  34. <div class="sectorItem">
  35. <img src="@/assets/template/sector/commentSector.png"/>
  36. </div>
  37. <div class="sectorItemTitle">文章列表带评论</div>
  38. </div>
  39. <div class="sectorItemBox" @click="addModule('listSector',33,listSector)">
  40. <div class="sectorItem">
  41. <img src="@/assets/template/sector/newsSector.png"/>
  42. </div>
  43. <div class="sectorItemTitle">文章列表</div>
  44. </div>
  45. <div class="sectorItemBox" @click="addModule('onlyImgSector',32,onlyImgSector)">
  46. <div class="sectorItem">
  47. <img src="@/assets/template/sector/imgSector.png"/>
  48. </div>
  49. <div class="sectorItemTitle">纯图片组合</div>
  50. </div>
  51. <div class="sectorItemBox" @click="addModule('friendShipLinkSector',20,friendShipLinkSector)">
  52. <div class="sectorItem">
  53. <img src="@/assets/template/sector/linkSector.png"/>
  54. </div>
  55. <div class="sectorItemTitle">友情链接</div>
  56. </div>
  57. <!-- <div class="sectorItemBox">
  58. <div class="sectorItem">
  59. <img src="@/assets/template/sector/footerSector.png" @click="addModule('footerSector',38)"/>
  60. </div>
  61. <div class="sectorItemTitle">页尾板块</div>
  62. </div> -->
  63. </div>
  64. </template>
  65. <script>
  66. export default {
  67. props: {
  68. type: {
  69. },
  70. },
  71. data() {
  72. return {
  73. //添加通栏广告模块 start---------------------------------------->
  74. imgTitleSector:{
  75. sectorName:"imgTitleSector",//板块名称
  76. componentList:[
  77. {
  78. component_type:3,//组件类型 1=新闻(单个) 2=新闻(多个) 3=广告 4=友情链接 5=底部导航 6=静态html组件 7=文字 8=评论
  79. component_style:1,//该组件使用哪个展示样式
  80. component_name:"",
  81. sort:1,
  82. componentData:[]//该组件不请求指定类型的数据,但是后端需要返回imgUrl
  83. }
  84. ]
  85. },
  86. //添加通栏广告模块 start---------------------------------------->
  87. //添加banner模块 start---------------------------------------->
  88. bannerSector:{
  89. sectorName:"bannerSector",//板块名称
  90. componentList:[
  91. {
  92. component_type:1,//组件类型 1=新闻(单个) 2=新闻(多个) 3=广告 4=友情链接 5=底部导航 6=静态html组件 7=文字 8=评论
  93. component_style:1,//该组件使用哪个展示样式
  94. component_name:"mainTitle",//组件名称
  95. sort:1,//组件排序
  96. componentData:{//该组件请求的数据
  97. category_id:[],//请求的导航id 如果上面的component_type是1,这里只会有1个[[1]],如果是2,这里就会有多个[[1,3],[1,4,8]]
  98. page:1,//请求第几页
  99. pageSize:1,//请求的条数
  100. listType:[//请求的数据应该包含哪些字段
  101. "title",//标题
  102. //"created_time",//创建时间
  103. //"author",//作者
  104. //"imgUrl",//缩略图片
  105. //"introduce",//描述
  106. ]
  107. }
  108. },
  109. {
  110. component_type:1,
  111. component_style:1,
  112. component_name:"banner",
  113. sort:2,
  114. componentData:{
  115. category_id:[],
  116. page:1,
  117. pageSize:3,
  118. listType:[
  119. "imgUrl"
  120. ]
  121. }
  122. },
  123. {
  124. component_type:1,
  125. component_style:1,
  126. component_name:"tabsNews",
  127. sort:3,
  128. componentData:{
  129. category_id:[],
  130. page:1,
  131. pageSize:5,
  132. listType:[
  133. "imgUrl",
  134. "created_time",
  135. ]
  136. }
  137. },
  138. ]
  139. },
  140. //添加banner模块 end---------------------------------------->
  141. //添加多图板块 start---------------------------------------->
  142. manyPictureSector:{
  143. sectorName:"manyPictureSector",//板块名称
  144. componentList:[
  145. {
  146. component_type:7, //纯文本
  147. component_style:1,
  148. component_name:"styleTitle",
  149. sort:1,
  150. componentData:{
  151. text:"板块标题"
  152. }
  153. },
  154. {
  155. component_type:6, //静态组件无需传递数据
  156. component_style:1,//该组件使用哪个展示样式
  157. component_name:"fivePicture",
  158. sort:2,
  159. componentData:{}
  160. },
  161. {
  162. component_type:1,
  163. component_style:1,//该组件使用哪个展示样式
  164. component_name:"tabsNews",
  165. sort:3,
  166. componentData:{
  167. category_id:[],
  168. page:1,
  169. pageSize:3,
  170. listType:[
  171. "title",//标题
  172. "created_time",//创建时间
  173. ]
  174. }
  175. },
  176. {
  177. component_type:1,
  178. component_style:1,//该组件使用哪个展示样式
  179. component_name:"tabsNews",
  180. sort:4,
  181. componentData:{
  182. category_id:[],
  183. page:1,
  184. pageSize:3,
  185. listType:[
  186. "title",//标题
  187. "created_time",//创建时间
  188. ]
  189. }
  190. },
  191. ]
  192. },
  193. //添加多图板块 end---------------------------------------->
  194. //文章列表带评论板块 end---------------------------------------->
  195. commentSector:{
  196. sectorName:"commentSector",//板块名称
  197. componentList:[
  198. {
  199. component_type:7, //纯文本
  200. component_style:1,//该组件使用哪个展示样式
  201. component_name:"styleTitle",
  202. sort:1,
  203. componentData:{
  204. text:"板块标题"
  205. }
  206. },
  207. {
  208. component_type:1,
  209. component_style:2,//该组件使用哪个展示样式
  210. component_name:"tabsCalendarNews",
  211. sort:2,
  212. componentData:{
  213. category_id:[],
  214. page:1,
  215. pageSize:6,
  216. listType:[
  217. "title",
  218. "created_time",
  219. "introduce"
  220. ]
  221. }
  222. },
  223. {
  224. component_type:8,
  225. component_style:1,//该组件使用哪个展示样式
  226. component_name:"calendar", //评论组件无需提交数据
  227. sort:3,
  228. componentData:{}
  229. },
  230. ]
  231. },
  232. //文章列表带评论板块 end---------------------------------------->
  233. //文章列表板块 start---------------------------------------->
  234. listSector:{
  235. sectorName:"listSector",//板块名称
  236. componentList:[
  237. {
  238. component_type:7, //纯文本
  239. component_style:1,//该组件使用哪个展示样式
  240. component_name:"styleTitle",
  241. sort:1,
  242. componentData:{
  243. text:"板块标题"
  244. }
  245. },
  246. {
  247. component_type:1,
  248. component_style:1,//该组件使用哪个展示样式
  249. component_name:"listNews",
  250. sort:2,
  251. componentData:{
  252. category_id:[],
  253. page:1,
  254. pageSize:5,
  255. listType:[
  256. "title",
  257. "created_time"
  258. ]
  259. }
  260. },
  261. {
  262. component_type:1,
  263. component_style:1,//该组件使用哪个展示样式
  264. component_name:"listNews",
  265. sort:3,
  266. componentData:{
  267. category_id:[],
  268. page:1,
  269. pageSize:5,
  270. listType:[
  271. "title",
  272. "created_time"
  273. ]
  274. }
  275. },
  276. ]
  277. },
  278. //文章列表板块 end---------------------------------------->
  279. //纯图片组合 start---------------------------------------->
  280. onlyImgSector:{
  281. sectorName:"onlyImgSector",//板块名称
  282. componentList:[
  283. {
  284. component_type:1,
  285. component_style:1,//该组件使用哪个展示样式
  286. component_name:"",
  287. sort:1,
  288. componentData:{
  289. category_id:[],
  290. page:1,
  291. pageSize:7,
  292. listType:[
  293. "title",
  294. "imgUrl"
  295. ]
  296. }
  297. }
  298. ]
  299. },
  300. //纯图片组合 end---------------------------------------->
  301. //友情链接板块 start---------------------------------------->
  302. friendShipLinkSector:{
  303. sectorName:"friendShipLinkSector",//友情链接无需提交数据
  304. componentList:[
  305. {
  306. component_type:7, //纯文本
  307. component_style:1,//该组件使用哪个展示样式
  308. component_name:"styleTitle",
  309. sort:1,
  310. componentData:{
  311. text:"板块标题"
  312. }
  313. },
  314. {
  315. component_type:4,
  316. component_style:1,//该组件使用哪个展示样式
  317. component_name:"",
  318. sort:1,
  319. componentData:{}
  320. }
  321. ]
  322. }
  323. //友情链接板块 end---------------------------------------->
  324. }
  325. },
  326. methods: {
  327. addModule(type,h,jsonData){
  328. let data = {
  329. type: type,
  330. h: h,
  331. jsonData: jsonData
  332. }
  333. console.log(data);
  334. this.$store.commit('template/addModule',data);
  335. }
  336. }
  337. }
  338. </script>
  339. <style scoped lang="less">
  340. .sectorBox {
  341. height: 100%;
  342. .sectorItemBox {
  343. box-sizing: border-box;
  344. padding: 0 20px 40px 20px;
  345. height: 130px;
  346. cursor: pointer;
  347. .sectorItem {
  348. border: 1px solid #333644;
  349. padding: 10px;
  350. border-radius: 8px;
  351. &:hover {
  352. background: #333644;
  353. transform: scale(1.1);
  354. transition: all 0.2s ease-in-out;
  355. }
  356. img {
  357. display: block;
  358. width: 100%;
  359. }
  360. }
  361. .sectorItemTitle {
  362. color: #fff;
  363. font-size: 14px;
  364. padding: 10px 0 0 0;
  365. text-align: center;
  366. }
  367. }
  368. }
  369. </style>