sector.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  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)" @drag="drag('imgTitleSector',8,imgTitleSector)" @dragend="dragend('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)" @drag="drag('bannerSector',33,bannerSector)" @dragend="dragend('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)" @drag="drag('manyPictureSector',49,manyPictureSector)" @dragend="dragend('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)" @drag="drag('commentSector',44,commentSector)" @dragend="dragend('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)" @drag="drag('listSector',33,listSector)" @dragend="dragend('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)" @drag="drag('onlyImgSector',32,onlyImgSector)" @dragend="dragend('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)" @drag="drag('friendShipLinkSector',20,friendShipLinkSector)" @dragend="dragend('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:{
  83. ad_id:"",//广告位id
  84. text:"通栏广告", //广告位名称
  85. width:1200, //广告位宽度
  86. height:60, //广告位高度
  87. }//该组件不请求指定类型的数据,但是后端需要返回imgUrl
  88. }
  89. ]
  90. },
  91. //添加通栏广告模块 start---------------------------------------->
  92. //添加banner模块 start---------------------------------------->
  93. bannerSector:{
  94. sectorName:"bannerSector",//板块名称
  95. componentList:[
  96. {
  97. component_type:1,//组件类型 1=新闻(单个) 2=新闻(多个) 3=广告 4=友情链接 5=底部导航 6=静态html组件 7=文字 8=评论
  98. component_style:1,//该组件使用哪个展示样式
  99. component_name:"mainTitle",//组件名称
  100. sort:1,//组件排序
  101. componentData:{//该组件请求的数据
  102. category_id:[],//请求的导航id 如果上面的component_type是1,这里只会有1个[[1]],如果是2,这里就会有多个[[1,3],[1,4,8]]
  103. page:1,//请求第几页
  104. pageSize:1,//请求的条数
  105. listType:[//请求的数据应该包含哪些字段
  106. "title",//标题
  107. //"created_time",//创建时间
  108. //"author",//作者
  109. //"imgUrl",//缩略图片
  110. //"introduce",//描述
  111. ]
  112. }
  113. },
  114. {
  115. component_type:1,
  116. component_style:1,
  117. component_name:"banner",
  118. sort:2,
  119. componentData:{
  120. category_id:[],
  121. page:1,
  122. pageSize:3,
  123. listType:[
  124. "title",//标题
  125. "imgUrl"//缩略图片
  126. ]
  127. }
  128. },
  129. {
  130. component_type:1,
  131. component_style:1,
  132. component_name:"tabsNews",
  133. sort:3,
  134. componentData:{
  135. category_id:[],
  136. page:1,
  137. pageSize:5,
  138. listType:[
  139. "title",//标题
  140. "created_time",//创建时间
  141. "introduce",//描述
  142. ]
  143. }
  144. },
  145. ]
  146. },
  147. //添加banner模块 end---------------------------------------->
  148. //添加多图板块 start---------------------------------------->
  149. manyPictureSector:{
  150. sectorName:"manyPictureSector",//板块名称
  151. componentList:[
  152. {
  153. component_type:7, //纯文本
  154. component_style:1,
  155. component_name:"styleTitle",
  156. sort:1,
  157. componentData:{
  158. text:"板块标题"
  159. }
  160. },
  161. {
  162. component_type:6, //静态组件无需传递数据
  163. component_style:1,//该组件使用哪个展示样式
  164. component_name:"fivePicture",
  165. sort:2,
  166. componentData:{}
  167. },
  168. {
  169. component_type:1,
  170. component_style:1,//该组件使用哪个展示样式
  171. component_name:"tabsNews",
  172. sort:3,
  173. componentData:{
  174. category_id:[],
  175. page:1,
  176. pageSize:3,
  177. listType:[
  178. "title",//标题
  179. "created_time",//创建时间
  180. ]
  181. }
  182. },
  183. {
  184. component_type:1,
  185. component_style:1,//该组件使用哪个展示样式
  186. component_name:"tabsNews",
  187. sort:4,
  188. componentData:{
  189. category_id:[],
  190. page:1,
  191. pageSize:3,
  192. listType:[
  193. "title",//标题
  194. "created_time",//创建时间
  195. ]
  196. }
  197. },
  198. ]
  199. },
  200. //添加多图板块 end---------------------------------------->
  201. //文章列表带评论板块 end---------------------------------------->
  202. commentSector:{
  203. sectorName:"commentSector",//板块名称
  204. componentList:[
  205. {
  206. component_type:7, //纯文本
  207. component_style:1,//该组件使用哪个展示样式
  208. component_name:"styleTitle",
  209. sort:1,
  210. componentData:{
  211. text:"板块标题"
  212. }
  213. },
  214. {
  215. component_type:1,
  216. component_style:2,//该组件使用哪个展示样式
  217. component_name:"tabsCalendarNews",
  218. sort:2,
  219. componentData:{
  220. category_id:[],
  221. page:1,
  222. pageSize:6,
  223. listType:[
  224. "title",
  225. "created_time",
  226. "introduce"
  227. ]
  228. }
  229. },
  230. {
  231. component_type:8,
  232. component_style:1,//该组件使用哪个展示样式
  233. component_name:"calendar", //评论组件无需提交数据
  234. sort:3,
  235. componentData:{}
  236. },
  237. ]
  238. },
  239. //文章列表带评论板块 end---------------------------------------->
  240. //文章列表板块 start---------------------------------------->
  241. listSector:{
  242. sectorName:"listSector",//板块名称
  243. componentList:[
  244. {
  245. component_type:7,//纯文本
  246. component_style:1,//该组件使用哪个展示样式
  247. component_name:"styleTitle",
  248. sort:1,
  249. componentData:{
  250. text:"板块标题"
  251. }
  252. },
  253. {
  254. component_type:1,
  255. component_style:1,//该组件使用哪个展示样式
  256. component_name:"listNews",
  257. sort:2,
  258. componentData:{
  259. category_id:[],
  260. page:1,
  261. pageSize:5,
  262. listType:[
  263. "title",
  264. "created_time"
  265. ]
  266. }
  267. },
  268. {
  269. component_type:1,
  270. component_style:1,//该组件使用哪个展示样式
  271. component_name:"listNews",
  272. sort:3,
  273. componentData:{
  274. category_id:[],
  275. page:1,
  276. pageSize:5,
  277. listType:[
  278. "title",
  279. "created_time"
  280. ]
  281. }
  282. },
  283. ]
  284. },
  285. //文章列表板块 end---------------------------------------->
  286. //纯图片组合 start---------------------------------------->
  287. onlyImgSector:{
  288. sectorName:"onlyImgSector",//板块名称
  289. componentList:[
  290. {
  291. component_type:1,
  292. component_style:1,//该组件使用哪个展示样式
  293. component_name:"",
  294. sort:1,
  295. componentData:{
  296. category_id:[],
  297. page:1,
  298. pageSize:7,
  299. listType:[
  300. "title",
  301. "imgUrl"
  302. ]
  303. }
  304. }
  305. ]
  306. },
  307. //纯图片组合 end---------------------------------------->
  308. //友情链接板块 start---------------------------------------->
  309. friendShipLinkSector:{
  310. sectorName:"friendShipLinkSector",//友情链接无需提交数据
  311. componentList:[
  312. {
  313. component_type:7, //纯文本
  314. component_style:1,//该组件使用哪个展示样式
  315. component_name:"styleTitle",
  316. sort:1,
  317. componentData:{
  318. text:"板块标题"
  319. }
  320. },
  321. {
  322. component_type:4,
  323. component_style:1,//该组件使用哪个展示样式
  324. component_name:"",
  325. sort:1,
  326. componentData:{}
  327. }
  328. ]
  329. }
  330. //友情链接板块 end---------------------------------------->
  331. }
  332. },
  333. methods: {
  334. //添加模块
  335. addModule(type,h,jsonData){
  336. let data = {
  337. source:"click",//添加方式为点击
  338. type: type,
  339. h: h,
  340. jsonData: jsonData
  341. }
  342. console.log(data);
  343. this.$store.commit('template/addModule',data);
  344. },
  345. //拖拽开始
  346. drag(type,h,jsonData){
  347. let data = {
  348. type: type,
  349. h: h,
  350. jsonData: jsonData
  351. }
  352. this.$store.commit('template/drag',data);
  353. },
  354. //拖拽结束
  355. dragend(type,h,jsonData){
  356. let data = {
  357. type: type,
  358. h: h,
  359. jsonData: jsonData
  360. }
  361. this.$store.commit('template/dragend',data);
  362. }
  363. }
  364. }
  365. </script>
  366. <style scoped lang="less">
  367. .sectorBox {
  368. height: 100%;
  369. .sectorItemBox {
  370. box-sizing: border-box;
  371. padding: 0 20px 40px 20px;
  372. height: 130px;
  373. cursor: pointer;
  374. .sectorItem {
  375. border: 1px solid #333644;
  376. padding: 10px;
  377. border-radius: 8px;
  378. &:hover {
  379. background: #333644;
  380. transform: scale(1.1);
  381. transition: all 0.2s ease-in-out;
  382. }
  383. img {
  384. display: block;
  385. width: 100%;
  386. }
  387. }
  388. .sectorItemTitle {
  389. color: #fff;
  390. font-size: 14px;
  391. padding: 10px 0 0 0;
  392. text-align: center;
  393. }
  394. }
  395. }
  396. </style>