advertising.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. define({
  2. name:"advertising",
  3. template:`
  4. <div id="advertising">
  5. <el-form>
  6. <div style="margin:0 auto;width:80%;">
  7. <el-form-item label="广告宣传语" label-width="155px" prop="is_open">
  8. <el-radio-group v-model="forms.is_open">
  9. <el-radio :label="1">开启</el-radio>
  10. <el-radio :label="0">关闭</el-radio>
  11. </el-radio-group>
  12. </el-form-item>
  13. <el-form-item label="文案" label-width="155px" prop="copywriting">
  14. <el-input
  15. type="textarea"
  16. :rows="2"
  17. v-model="forms.copywriting">
  18. </el-input>
  19. <div class="form-item_tips">商品详情显示</div>
  20. <div class="form-item_tips">最多可输入100个字</div>
  21. </el-form-item>
  22. <el-form-item label="文案字体大小" label-width="155px" prop="font_size">
  23. <el-input-number v-model="forms.font_size" controls-position="right" :min="0" :max="50">
  24. </el-input-number>
  25. <span class="pxSpan">px</span>
  26. <div class="form-item_tips">最大50px</div>
  27. </el-form-item>
  28. <el-form-item label="文案颜色" label-width="155px" prop="font_color">
  29. <div style="display:flex">
  30. <el-input placeholder="请选择颜色" style="width: 110px;" v-model="forms.font_color"></el-input>
  31. <el-color-picker v-model="forms.font_color"></el-color-picker>
  32. </div>
  33. </el-form-item>
  34. <el-form-item label="H5链接" label-width="155px" prop="link">
  35. <el-input v-model="forms.link" placeholder="请填写指向的链接 (请以https://开头)">
  36. <div style="cursor: pointer;" slot="append" @click="showLink('link','link_one')">选择链接</div>
  37. </el-input>
  38. </el-form-item>
  39. <el-form-item label="小程序链接" label-width="155px" prop="min_link">
  40. <el-input v-model="forms.min_link" placeholder="请填写指向的链接 ">
  41. <div style="cursor: pointer;" slot="append" @click="showLink('mini','min_link_one')">选择链接</div>
  42. </el-input>
  43. </el-form-item>
  44. </div>
  45. </el-form>
  46. <pop :show="show" @replace="changeLink" @add="parHref"></pop>
  47. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  48. </div>
  49. `,
  50. style:`
  51. .pxSpan {
  52. display: inline-block;
  53. height: 41px;
  54. background-color:#eee;
  55. width: 40px;
  56. text-align: center;
  57. border: 1px solid #DCDFE6;
  58. border-radius: 0 4px 4px 0;
  59. margin-left: -5px;
  60. }
  61. `,
  62. props: {
  63. form: {
  64. default() {
  65. return {}
  66. }
  67. }
  68. },
  69. data(){
  70. return{
  71. show:false,//是否开启公众号弹窗
  72. pro:false ,//是否开启小程序弹窗
  73. chooseLink:'',
  74. chooseMiniLink:'',
  75. forms:{
  76. "is_open": 0,
  77. "copywriting": "",
  78. "font_size": "",
  79. "font_color": "",
  80. "link": "",
  81. "min_link": ""
  82. }
  83. }
  84. },
  85. created() {
  86. if(this.form !== null){
  87. this.forms = this.form
  88. }
  89. },
  90. methods: {
  91. //弹窗显示与隐藏的控制
  92. changeLink(item){
  93. this.show=item;
  94. },
  95. //当前链接的增加
  96. parHref(child,confirm){
  97. this.show=confirm;
  98. this.forms.link = child
  99. console.log(child,confirm,'parHref');
  100. },
  101. changeprogram(item){
  102. this.pro=item;
  103. },
  104. parpro(child,confirm){
  105. this.pro=confirm;
  106. this.forms.min_link = child
  107. console.log(child,confirm,'parpro');
  108. },
  109. showLink(type,name) {
  110. if(type=="link") {
  111. this.chooseLink = name;
  112. this.show = true;
  113. }else {
  114. this.chooseMiniLink = name;
  115. this.pro = true;
  116. }
  117. console.log( this.chooseLink,this.chooseMiniLink,'123this.show');
  118. },
  119. validate(){
  120. return {
  121. copywriting:this.forms.copywriting,
  122. is_open:this.forms.is_open,
  123. font_size:this.forms.font_size,
  124. font_color:this.forms.font_color,
  125. link:this.forms.link,
  126. min_link:this.forms.min_link
  127. }
  128. },
  129. },
  130. })