com-poster.php 35 KB

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