poster.php 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756
  1. <?php
  2. /**
  3. * @link:http://www.gdqijianshi.com/
  4. * copyright: Copyright (c) 2020 广东七件事集团
  5. * author: zal
  6. */
  7. ?>
  8. <style>
  9. .mobile-box {
  10. width: 400px;
  11. height: 740px;
  12. padding: 35px 11px;
  13. background-color: #fff;
  14. border-radius: 30px;
  15. margin-right: 20px;
  16. }
  17. .bg-box {
  18. position: relative;
  19. border: 1px solid #e2e3e3;
  20. width: 750px;
  21. height: 1334px;
  22. zoom: 0.5;
  23. }
  24. .bg-pic {
  25. width: 100%;
  26. height: 100%;
  27. background-size: 100% 100%;
  28. background-position: center;
  29. }
  30. .title {
  31. padding: 15px 0;
  32. background-color: #f7f7f7;
  33. margin-bottom: 10px;
  34. }
  35. .component-item {
  36. width: 100px;
  37. height: 100px;
  38. cursor: pointer;
  39. position: relative;
  40. padding: 10px 0;
  41. border: 1px solid #e2e2e2;
  42. margin-right: 15px;
  43. margin-top: 15px;
  44. border-radius: 5px;
  45. }
  46. .component-item.active {
  47. border: 1px solid #7BBDFC;
  48. }
  49. .component-item-remove {
  50. position: absolute;
  51. top: 0;
  52. right: 0;
  53. cursor: pointer;
  54. width: 28px;
  55. height: 28px;
  56. }
  57. .component-attributes-box {
  58. color: #ff4544;
  59. }
  60. .box-card {
  61. margin-top: 35px;
  62. }
  63. .el-tabs__header {
  64. padding: 0 20px;
  65. height: 56px;
  66. line-height: 56px;
  67. background-color: #fff;
  68. }
  69. .form-body {
  70. padding: 20px 35% 20px 20px;
  71. background-color: #fff;
  72. margin-bottom: 20px;
  73. width: 100%;
  74. height: 100%;
  75. position: relative;
  76. min-width: 640px;
  77. }
  78. .button-item {
  79. padding: 9px 25px;
  80. position: absolute !important;
  81. bottom: -52px;
  82. left: 0;
  83. }
  84. .el-card, .el-tabs__content {
  85. overflow: visible;
  86. }
  87. </style>
  88. <div id="app" v-cloak>
  89. <el-card shadow="never" style="border:0" shadow="never" body-style="background-color: #f3f3f3;padding: 0 0;"
  90. v-loading="cardLoading">
  91. <el-form v-if="ruleForm" :model="ruleForm" :rules="rules" size="small" ref="ruleForm" label-width="20%">
  92. <el-tabs v-model="activeName" @tab-click="handleClick">
  93. <el-tab-pane label="商品海报" name="second">
  94. <div style="display: flex;">
  95. <div class="mobile-box" flex="dir:top">
  96. <div class="bg-box">
  97. <div class="bg-pic" :style="{'background-image':'url('+ruleForm.goods.bg_pic.url+')'}">
  98. </div>
  99. <com-image
  100. v-if="ruleForm.goods.pic.is_show == 1"
  101. mode="aspectFill" width='375px' height="375px"
  102. :style="{
  103. position: 'absolute',
  104. width: ruleForm.goods.pic.width + 'px',
  105. height: ruleForm.goods.pic.height + 'px',
  106. top: ruleForm.goods.pic.top + 'px',
  107. left: ruleForm.goods.pic.left + 'px'}"
  108. src="resources/img/mall/poster/default_goods.jpg">
  109. </com-image>
  110. <com-image v-if="ruleForm.goods.qr_code.is_show == 1"
  111. mode="aspectFill"
  112. :radius="ruleForm.goods.qr_code.type == 1 ? '50%' : '0%'"
  113. :style="{
  114. position: 'absolute',
  115. top: ruleForm.goods.qr_code.top + 'px',
  116. left: ruleForm.goods.qr_code.left + 'px'}"
  117. :width='ruleForm.goods.qr_code.size + ""'
  118. :height='ruleForm.goods.qr_code.size + ""'
  119. src="resources/img/mall/poster/default_qr_code.png">
  120. </com-image>
  121. <com-image v-if="ruleForm.goods.head.is_show == 1"
  122. mode="aspectFill"
  123. radius="50%"
  124. :style="{
  125. position: 'absolute',
  126. top: ruleForm.goods.head.top + 'px',
  127. left: ruleForm.goods.head.left + 'px'}"
  128. :width='ruleForm.goods.head.size + ""'
  129. :height='ruleForm.goods.head.size + ""'
  130. src="resources/img/mall/poster/default_head.png">
  131. </com-image>
  132. <span v-if="ruleForm.goods.nickname.is_show == 1"
  133. :style="{
  134. position: 'absolute',
  135. top: ruleForm.goods.nickname.top + 'px',
  136. left: ruleForm.goods.nickname.left + 'px',
  137. fontSize: ruleForm.goods.nickname.font * 2 + 'px',
  138. color: ruleForm.goods.nickname.color}">
  139. 用户昵称
  140. </span>
  141. <span v-if="ruleForm.goods.name.is_show == 1"
  142. :style="{
  143. position: 'absolute',
  144. top: ruleForm.goods.name.top + 'px',
  145. left: ruleForm.goods.name.left + 'px',
  146. fontSize: ruleForm.goods.name.font * 2 + 'px',
  147. color: ruleForm.goods.name.color}">
  148. 商品名称|商品名称
  149. </span>
  150. <span v-if="ruleForm.goods.price.is_show == 1"
  151. :style="{
  152. position: 'absolute',
  153. top: ruleForm.goods.price.top + 'px',
  154. left: ruleForm.goods.price.left + 'px',
  155. fontSize: ruleForm.goods.price.font * 2 + 'px',
  156. color: ruleForm.goods.price.color}">
  157. ¥99.00
  158. </span>
  159. <span v-if="ruleForm.goods.desc.is_show == 1"
  160. :style="{
  161. width: ruleForm.goods.desc.width + 'px',
  162. wordWrap: 'break-word',
  163. wordBreak: 'normal',
  164. position: 'absolute',
  165. top: ruleForm.goods.desc.top + 'px',
  166. left: ruleForm.goods.desc.left + 'px',
  167. fontSize: ruleForm.goods.desc.font * 2 + 'px',
  168. color: ruleForm.goods.desc.color}">
  169. {{ruleForm.goods.desc.text}}
  170. </span>
  171. </div>
  172. </div>
  173. <div class="form-body" flex="dir:top">
  174. <div flex="dir:left" style="margin-bottom: 15px">
  175. <com-attachment :multiple="false" :max="1"
  176. v-model="ruleForm.goods.bg_pic.url">
  177. <el-tooltip class="item"
  178. effect="dark"
  179. content="建议尺寸:750 * 1334"
  180. placement="top">
  181. <el-button size="mini">
  182. {{ruleForm.goods.bg_pic.url ? '更换背景图' : '添加背景图'}}
  183. </el-button>
  184. </el-tooltip>
  185. </com-attachment>
  186. <el-button v-if="ruleForm.goods.bg_pic.url" @click="removeBgPic()"
  187. style="margin-left: 10px;"
  188. type="danger"
  189. size="mini">
  190. 删除背景
  191. </el-button>
  192. </div>
  193. <div flex="wrap:wrap">
  194. <div v-for="(item,index) in goodsComponent"
  195. @click="componentItemClick(index)"
  196. class="component-item"
  197. :class="goodsComponentKey == item.key ? 'active' : ''"
  198. flex="dir:top cross:center main:center">
  199. <img :src="item.icon_url">
  200. <div>{{item.title}}</div>
  201. <img v-if="test2(index)"
  202. @click.stop="componentItemRemove(index)"
  203. class="component-item-remove"
  204. src="resources/img/mall/poster/icon_delete.png">
  205. </div>
  206. </div>
  207. <el-card shadow="never" class="box-card" style="width: 100%;">
  208. <div slot="header">
  209. <span v-if="goodsComponentKey == 'head'">头像</span>
  210. <span v-if="goodsComponentKey == 'nickname'">昵称</span>
  211. <span v-if="goodsComponentKey == 'pic'">商品图片设置</span>
  212. <span v-if="goodsComponentKey == 'name'">商品名称设置</span>
  213. <span v-if="goodsComponentKey == 'price'">商品价格设置</span>
  214. <span v-if="goodsComponentKey == 'desc'">海报描述设置</span>
  215. <span v-if="goodsComponentKey == 'qr_code'">二维码设置</span>
  216. </div>
  217. <div>
  218. <template v-if="goodsComponentKey == 'head'">
  219. <el-form-item label="大小">
  220. <el-slider
  221. :min=40
  222. :max=300
  223. v-model="ruleForm.goods.head.size"
  224. show-input>
  225. </el-slider>
  226. </el-form-item>
  227. <el-form-item label="上间距">
  228. <el-slider
  229. :min=0
  230. :max=1334-(ruleForm.goods.head.size)
  231. v-model="ruleForm.goods.head.top"
  232. show-input>
  233. </el-slider>
  234. </el-form-item>
  235. <el-form-item label="左间距">
  236. <el-slider
  237. :min=0
  238. :max=750-(ruleForm.goods.head.size)
  239. v-model="ruleForm.goods.head.left"
  240. show-input>
  241. </el-slider>
  242. </el-form-item>
  243. </template>
  244. <template v-else-if="goodsComponentKey == 'nickname'">
  245. <el-form-item label="大小">
  246. <el-slider
  247. :min=12
  248. :max=40
  249. v-model="ruleForm.goods.nickname.font"
  250. show-input>
  251. </el-slider>
  252. </el-form-item>
  253. <el-form-item label="上间距">
  254. <el-slider
  255. :min=0
  256. :max=1334-(ruleForm.goods.nickname.font)
  257. v-model="ruleForm.goods.nickname.top"
  258. show-input>
  259. </el-slider>
  260. </el-form-item>
  261. <el-form-item label="左间距">
  262. <el-slider
  263. :min=0
  264. :max=750-(ruleForm.goods.nickname.font)
  265. v-model="ruleForm.goods.nickname.left"
  266. show-input>
  267. </el-slider>
  268. </el-form-item>
  269. <el-form-item label="颜色">
  270. <el-color-picker
  271. style="margin-left: 20px;"
  272. color-format="rgb"
  273. v-model="ruleForm.goods.nickname.color"
  274. :predefine="predefineColors">
  275. </el-color-picker>
  276. </el-form-item>
  277. </template>
  278. <template v-else-if="goodsComponentKey == 'name'">
  279. <el-form-item label="大小">
  280. <el-slider
  281. :min=12
  282. :max=30
  283. v-model="ruleForm.goods.name.font"
  284. show-input>
  285. </el-slider>
  286. </el-form-item>
  287. <el-form-item label="上间距">
  288. <el-slider
  289. :min=0
  290. :max=1334-(ruleForm.goods.name.font)
  291. v-model="ruleForm.goods.name.top"
  292. show-input>
  293. </el-slider>
  294. </el-form-item>
  295. <el-form-item label="左间距">
  296. <el-slider
  297. :min=0
  298. :max=750-(ruleForm.goods.name.font)
  299. v-model="ruleForm.goods.name.left"
  300. show-input>
  301. </el-slider>
  302. </el-form-item>
  303. <el-form-item label="颜色">
  304. <el-color-picker
  305. style="margin-left: 20px;"
  306. color-format="rgb"
  307. v-model="ruleForm.goods.name.color"
  308. :predefine="predefineColors">
  309. </el-color-picker>
  310. </el-form-item>
  311. </template>
  312. <template v-else-if="goodsComponentKey == 'price'">
  313. <el-form-item label="大小">
  314. <el-slider
  315. :min=12
  316. :max=30
  317. v-model="ruleForm.goods.price.font"
  318. show-input>
  319. </el-slider>
  320. </el-form-item>
  321. <el-form-item label="上间距">
  322. <el-slider
  323. :min=0
  324. :max=1334-(ruleForm.goods.price.font)
  325. v-model="ruleForm.goods.price.top"
  326. show-input>
  327. </el-slider>
  328. </el-form-item>
  329. <el-form-item label="左间距">
  330. <el-slider
  331. :min=0
  332. :max=750-(ruleForm.goods.price.font)
  333. v-model="ruleForm.goods.price.left"
  334. show-input>
  335. </el-slider>
  336. </el-form-item>
  337. <el-form-item label="颜色">
  338. <el-color-picker
  339. style="margin-left: 20px;"
  340. color-format="rgb"
  341. v-model="ruleForm.goods.price.color"
  342. :predefine="predefineColors">
  343. </el-color-picker>
  344. </el-form-item>
  345. </template>
  346. <template v-else-if="goodsComponentKey == 'qr_code'">
  347. <el-form-item label="样式">
  348. <el-radio v-model="ruleForm.goods.qr_code.type" :label="1">圆形</el-radio>
  349. <el-radio v-model="ruleForm.goods.qr_code.type" :label="2">方形</el-radio>
  350. </el-form-item>
  351. <el-form-item label="大小">
  352. <el-slider
  353. :min=35
  354. :max=300
  355. v-model="ruleForm.goods.qr_code.size"
  356. show-input>
  357. </el-slider>
  358. </el-form-item>
  359. <el-form-item label="上间距">
  360. <el-slider
  361. :min=0
  362. :max=1334-(ruleForm.goods.qr_code.size)
  363. v-model="ruleForm.goods.qr_code.top"
  364. show-input>
  365. </el-slider>
  366. </el-form-item>
  367. <el-form-item label="左间距">
  368. <el-slider
  369. :min=0
  370. :max=750-(ruleForm.goods.qr_code.size)
  371. v-model="ruleForm.goods.qr_code.left"
  372. show-input>
  373. </el-slider>
  374. </el-form-item>
  375. </template>
  376. <template v-else-if="goodsComponentKey == 'desc'">
  377. <el-form-item label="文本内容">
  378. <el-input v-model="ruleForm.goods.desc.text"></el-input>
  379. </el-form-item>
  380. <el-form-item label="大小">
  381. <el-slider
  382. :min=12
  383. :max=30
  384. v-model="ruleForm.goods.desc.font"
  385. show-input>
  386. </el-slider>
  387. </el-form-item>
  388. <el-form-item label="上间距">
  389. <el-slider
  390. :min=0
  391. :max=1334-(ruleForm.goods.desc.font)
  392. v-model="ruleForm.goods.desc.top"
  393. show-input>
  394. </el-slider>
  395. </el-form-item>
  396. <el-form-item label="左间距">
  397. <el-slider
  398. :min=0
  399. :max=750-(ruleForm.goods.desc.font)
  400. v-model="ruleForm.goods.desc.left"
  401. show-input>
  402. </el-slider>
  403. </el-form-item>
  404. <el-form-item label="文本宽度">
  405. <el-slider
  406. :min=1
  407. :max=750
  408. v-model="ruleForm.goods.desc.width"
  409. show-input>
  410. </el-slider>
  411. </el-form-item>
  412. <el-form-item label="颜色">
  413. <el-color-picker
  414. style="margin-left: 20px;"
  415. color-format="rgb"
  416. v-model="ruleForm.goods.desc.color"
  417. :predefine="predefineColors">
  418. </el-color-picker>
  419. </el-form-item>
  420. </template>
  421. <template v-else-if="goodsComponentKey == 'pic'">
  422. <el-form-item label="宽度">
  423. <el-slider
  424. :min=0
  425. :max=750
  426. v-model="ruleForm.goods.pic.width"
  427. show-input>
  428. </el-slider>
  429. </el-form-item>
  430. <el-form-item label="高度">
  431. <el-slider
  432. :min=0
  433. :max=1334
  434. v-model="ruleForm.goods.pic.height"
  435. show-input>
  436. </el-slider>
  437. </el-form-item>
  438. <el-form-item label="上间距">
  439. <el-slider
  440. :min=0
  441. :max=1334-(ruleForm.goods.pic.height)
  442. v-model="ruleForm.goods.pic.top"
  443. show-input>
  444. </el-slider>
  445. </el-form-item>
  446. <el-form-item label="左间距">
  447. <el-slider
  448. :min=0
  449. :max=750-(ruleForm.goods.pic.width)
  450. v-model="ruleForm.goods.pic.left"
  451. show-input>
  452. </el-slider>
  453. </el-form-item>
  454. </template>
  455. </div>
  456. </el-card>
  457. <el-button class="button-item" :loading="btnLoading" type="primary"
  458. @click="store('ruleForm')" size="small">保存
  459. </el-button>
  460. </div>
  461. </div>
  462. </el-tab-pane>
  463. </el-tabs>
  464. </el-form>
  465. </el-card>
  466. </div>
  467. <script>
  468. const app = new Vue({
  469. el: '#app',
  470. data() {
  471. return {
  472. ruleForm: null,
  473. shareComponent: [
  474. {
  475. key: 'head',
  476. icon_url: 'resources/img/mall/poster/icon_head.png',
  477. title: '头像',
  478. is_active: true
  479. },
  480. {
  481. key: 'name',
  482. icon_url: 'resources/img/mall/poster/icon_name.png',
  483. title: '昵称',
  484. is_active: true
  485. },
  486. {
  487. key: 'qr_code',
  488. icon_url: 'resources/img/mall/poster/icon_qr_code.png',
  489. title: '二维码',
  490. is_active: true
  491. },
  492. ],
  493. shareComponentKey: 'head',
  494. goodsComponent: [
  495. {
  496. key: 'head',
  497. icon_url: 'resources/img/mall/poster/icon_head.png',
  498. title: '头像',
  499. is_active: true
  500. },
  501. {
  502. key: 'nickname',
  503. icon_url: 'resources/img/mall/poster/icon_name.png',
  504. title: '昵称',
  505. is_active: true
  506. },
  507. {
  508. key: 'pic',
  509. icon_url: 'resources/img/mall/poster/icon_pic.png',
  510. title: '商品图片',
  511. is_active: true
  512. },
  513. {
  514. key: 'name',
  515. icon_url: 'resources/img/mall/poster/icon_name.png',
  516. title: '商品名称',
  517. is_active: true
  518. },
  519. {
  520. key: 'price',
  521. icon_url: 'resources/img/mall/poster/icon_price.png',
  522. title: '商品价格',
  523. is_active: true
  524. },
  525. {
  526. key: 'desc',
  527. icon_url: 'resources/img/mall/poster/icon_desc.png',
  528. title: '海报描述',
  529. is_active: true
  530. },
  531. {
  532. key: 'qr_code',
  533. icon_url: 'resources/img/mall/poster/icon_qr_code.png',
  534. title: '二维码',
  535. is_active: true
  536. },
  537. ],
  538. goodsComponentKey: 'pic',
  539. topicComponent: [
  540. {
  541. key: 'title',
  542. icon_url: 'resources/img/mall/poster/icon_name.png',
  543. title: '专题标题',
  544. is_active: true
  545. },
  546. {
  547. key: 'pic',
  548. icon_url: 'resources/img/mall/poster/icon_pic.png',
  549. title: '专题图片',
  550. is_active: true
  551. },
  552. {
  553. key: 'look',
  554. icon_url: 'resources/img/mall/poster/icon_look.png',
  555. title: '阅读量',
  556. is_active: true
  557. },
  558. {
  559. key: 'content',
  560. icon_url: 'resources/img/mall/poster/icon_content.png',
  561. title: '专题内容',
  562. is_active: true
  563. },
  564. {
  565. key: 'open_desc',
  566. icon_url: 'resources/img/mall/poster/icon_point.png',
  567. title: '文章提示',
  568. is_active: true
  569. },
  570. {
  571. key: 'line',
  572. icon_url: 'resources/img/mall/poster/icon_line.png',
  573. title: '分割线',
  574. is_active: true
  575. },
  576. {
  577. key: 'desc',
  578. icon_url: 'resources/img/mall/poster/icon_desc.png',
  579. title: '海报描述',
  580. is_active: true
  581. },
  582. {
  583. key: 'qr_code',
  584. icon_url: 'resources/img/mall/poster/icon_qr_code.png',
  585. title: '二维码',
  586. is_active: true
  587. },
  588. ],
  589. topicComponentKey: 'title',
  590. rules: {},
  591. predefineColors: [
  592. '#000',
  593. '#fff',
  594. '#888',
  595. '#ff4544'
  596. ],
  597. btnLoading: false,
  598. cardLoading: false,
  599. activeName: 'second',
  600. };
  601. },
  602. computed: {
  603. // 控制显示的内容
  604. test() {
  605. return function (index) {
  606. var isShow = this.ruleForm.share[this.shareComponent[index].key].is_show;
  607. return isShow == 1 ? true : false;
  608. }
  609. },
  610. test2() {
  611. return function (index) {
  612. var isShow = this.ruleForm.goods[this.goodsComponent[index].key].is_show;
  613. return isShow == 1 ? true : false;
  614. }
  615. },
  616. test3() {
  617. return function (index) {
  618. var isShow = this.ruleForm.topic[this.topicComponent[index].key].is_show;
  619. return isShow == 1 ? true : false;
  620. }
  621. },
  622. },
  623. methods: {
  624. store(formName) {
  625. this.$refs[formName].validate((valid) => {
  626. let self = this;
  627. if (valid) {
  628. self.btnLoading = true;
  629. request({
  630. params: {
  631. r: 'mall/decorate/poster'
  632. },
  633. method: 'post',
  634. data: {
  635. form: self.ruleForm,
  636. }
  637. }).then(e => {
  638. self.btnLoading = false;
  639. if (e.data.code == 0) {
  640. self.$message.success(e.data.msg);
  641. } else {
  642. self.$message.error(e.data.msg);
  643. }
  644. }).catch(e => {
  645. self.$message.error(e.data.msg);
  646. self.btnLoading = false;
  647. });
  648. } else {
  649. console.log('error submit!!');
  650. return false;
  651. }
  652. });
  653. },
  654. getDetail() {
  655. let self = this;
  656. self.cardLoading = true;
  657. request({
  658. params: {
  659. r: 'mall/decorate/poster',
  660. },
  661. method: 'get',
  662. }).then(e => {
  663. self.cardLoading = false;
  664. if (e.data.code == 0) {
  665. if (!isEmpty(e.data.data)){
  666. self.ruleForm = e.data.data;
  667. }
  668. } else {
  669. self.$message.error(e.data.msg);
  670. }
  671. }).catch(e => {
  672. console.log(e);
  673. });
  674. },
  675. transformData() {
  676. },
  677. handleClick(tab, event) {
  678. console.log(tab, event);
  679. },
  680. // 移除背景图片
  681. removeBgPic() {
  682. if (this.activeName == 'second') {
  683. this.ruleForm.goods.bg_pic.url = '';
  684. }
  685. if (this.activeName == 'third') {
  686. this.ruleForm.topic.bg_pic.url = '';
  687. }
  688. },
  689. // 添加组件
  690. componentItemClick(index) {
  691. if (this.activeName == 'first') {
  692. this.shareComponent[index].is_active = true;
  693. this.ruleForm.share[this.shareComponent[index].key].is_show = '1';
  694. this.shareComponentKey = this.shareComponent[index].key;
  695. }
  696. if (this.activeName == 'second') {
  697. this.goodsComponent[index].is_active = true;
  698. this.ruleForm.goods[this.goodsComponent[index].key].is_show = '1';
  699. this.goodsComponentKey = this.goodsComponent[index].key;
  700. }
  701. if (this.activeName == 'third') {
  702. this.topicComponent[index].is_active = true;
  703. this.ruleForm.topic[this.topicComponent[index].key].is_show = '1';
  704. this.topicComponentKey = this.topicComponent[index].key;
  705. }
  706. },
  707. // 移除组件
  708. componentItemRemove(index) {
  709. if (this.activeName == 'first') {
  710. this.shareComponent[index].is_active = false;
  711. this.ruleForm.share[this.shareComponent[index].key].is_show = '0';
  712. this.shareComponentKey = '';
  713. }
  714. if (this.activeName == 'second') {
  715. this.goodsComponent[index].is_active = false;
  716. this.ruleForm.goods[this.goodsComponent[index].key].is_show = '0';
  717. this.goodsComponentKey = '';
  718. }
  719. if (this.activeName == 'third') {
  720. this.topicComponent[index].is_active = false;
  721. this.ruleForm.topic[this.topicComponent[index].key].is_show = '0';
  722. this.topicComponentKey = '';
  723. }
  724. }
  725. },
  726. mounted: function () {
  727. this.getDetail();
  728. }
  729. });
  730. </script>