publish.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <template>
  2. <view>
  3. <my-bar title="发布活动" :transparent="transparent">
  4. <view slot="content" class="publish" @click="chooseImage">
  5. <block v-if="!form.image">
  6. <u-icon name="photo" size="100" color="#cecece"></u-icon>
  7. <text>上传活动封面</text>
  8. </block>
  9. <image :src="form.image" style="height: 380rpx;" v-else mode="heightFix"></image>
  10. </view>
  11. </my-bar>
  12. <view class="clock">
  13. <view class="cu-btn round sm" style="background-color: #dcdcdc;">
  14. <u-icon name="clock"></u-icon>
  15. <text class="margin-left-10">设置响应倒计时</text>
  16. </view>
  17. <view class="tips">
  18. <text>*</text>
  19. <text>如未在限定时间内响应,系统默认自动推送给旗下商户。</text>
  20. </view>
  21. </view>
  22. <view class="form">
  23. <u-form :model="form" ref="uForm" label-width="140">
  24. <u-form-item label="标题" left-icon="bookmark">
  25. <u-input v-model="form.name" placeholder="请输入标题"/>
  26. </u-form-item>
  27. <u-form-item label="地址" left-icon="map">
  28. <u-input v-model="form.intro" placeholder="请输入地址"/>
  29. </u-form-item>
  30. <u-form-item label-width="200" label="建议供应价" left-icon="rmb-circle">
  31. <view class="flex justify-between">
  32. <u-input v-model="form.intro" placeholder="请输入建议供应价"/>
  33. <text style="color: #737373;">(%)</text>
  34. </view>
  35. </u-form-item>
  36. <u-form-item @click="showCheckBox" label-width="200" label="行业类目" left-icon="grid" >
  37. <view @click="checkboxShow=true" class="flex justify-between " >
  38. <view @click.stop="" style="display: flex;flex-direction: column;justify-content: center;">
  39. <u-checkbox-group>
  40. <u-checkbox v-model="item.checked" v-if="index<=1" v-for="(item, index) in checkboxList" :key="index"
  41. :name="item.name">
  42. {{ item.name }}
  43. </u-checkbox>
  44. </u-checkbox-group>
  45. </view>
  46. <view >
  47. <u-icon name="arrow-right" color="#737373"></u-icon>
  48. </view>
  49. </view>
  50. </u-form-item>
  51. <u-form-item label="时间" left-icon="clock">
  52. <view class="flex ">
  53. <u-input type="select" @click="timeShow=true;timeType=1" v-model="form.startTime" placeholder="开始时间"/>
  54. <text style="margin: 0 40rpx;">至</text>
  55. <u-input type="select" @click="timeShow=true;timeType=2" v-model="form.endTime" placeholder="结束时间"/>
  56. </view>
  57. </u-form-item>
  58. <u-form-item label-width="200" label="活动补贴" left-icon="coupon">
  59. <view class="flex justify-between">
  60. <u-input v-model="form.intro" placeholder="请输入折扣"/>
  61. <text style="color: #737373;">(%)</text>
  62. </view>
  63. </u-form-item>
  64. <u-form-item label-width="200" label="积分通兑" left-icon="coupon">
  65. <u-input v-model="form.intro" placeholder="100 积分 = 10 元"/>
  66. </u-form-item>
  67. </u-form>
  68. </view>
  69. <view class="form">
  70. <u-form label-position="top" :model="form" ref="uForm" label-width="160">
  71. <u-form-item label-width="200" label="活动详情" left-icon="coupon">
  72. <u-input type="area" height="150" v-model="form.intro" placeholder="不少于100字"/>
  73. </u-form-item>
  74. </u-form>
  75. </view>
  76. <view class="center" style="margin: 50rpx 0;">
  77. <view class="flex flex-direction" style="width: 94%;">
  78. <view class="radius cu-btn btn-bg-color" style="height: 90rpx;">
  79. 提交审核
  80. </view>
  81. <view class="text-center margin-top-20">
  82. <text>提交即表示同意</text>
  83. <text class="btn-color">《商家活动工具活动发布规则》</text>
  84. </view>
  85. </view>
  86. </view>
  87. <u-popup v-model="checkboxShow" mode="bottom" height="50%" border-radius="12">
  88. <view class="padding-30">
  89. <u-checkbox-group>
  90. <u-checkbox v-model="item.checked" v-for="(item, index) in checkboxList" :key="index"
  91. :name="item.name">
  92. {{ item.name }}
  93. </u-checkbox>
  94. </u-checkbox-group>
  95. </view>
  96. </u-popup>
  97. <u-picker v-model="timeShow" mode="time" @confirm="timeConfirm"></u-picker>
  98. </view>
  99. </template>
  100. <script>
  101. import myBar from "@/components/my-bar.vue"
  102. export default {
  103. components: {
  104. myBar
  105. },
  106. data() {
  107. return {
  108. transparent:0,
  109. form: {
  110. image:''
  111. },
  112. checkboxShow:false,
  113. timeShow:false,
  114. timeType:1,
  115. checkboxList: [{
  116. name: '餐饮业',
  117. checked: false,
  118. },
  119. {
  120. name: '服饰业',
  121. checked: false,
  122. },
  123. {
  124. name: '美妆业',
  125. checked: false,
  126. },
  127. {
  128. name: '机械业',
  129. checked: false,
  130. },
  131. {
  132. name: '日用业',
  133. checked: false,
  134. }
  135. ],
  136. }
  137. },
  138. onPageScroll(obj){
  139. this.transparent = obj.scrollTop*0.006;
  140. },
  141. methods: {
  142. showCheckBox(){
  143. console.log("1111");
  144. this.checkboxShow=true
  145. },
  146. timeConfirm(e){
  147. let date=e.year +'-'+ e.month +'-'+e.day
  148. if (this.timeType==1) {
  149. this.form.startTime=date
  150. }else{
  151. this.form.endTime=date
  152. }
  153. },
  154. async chooseImage(){
  155. let res=await this.$mpi.chooseImage()
  156. this.form.image=res[0]
  157. console.log(this.form.image);
  158. }
  159. }
  160. }
  161. </script>
  162. <style lang="scss" scoped>
  163. .publish {
  164. overflow: hidden;
  165. border-radius: 10rpx;
  166. height: 380rpx;
  167. background-color: #f2f2f2;
  168. position: absolute;
  169. bottom: 20rpx;
  170. left: 0;
  171. right: 0;
  172. width: 92%;
  173. margin: 0 auto -120rpx;
  174. display: flex;
  175. justify-content: center;
  176. align-items: center;
  177. flex-direction: column;
  178. text {
  179. font-size: 26rpx;
  180. color: #797979;
  181. }
  182. }
  183. .clock {
  184. background-color: #FFFFFF;
  185. height: 230rpx;
  186. padding-bottom: 20rpx;
  187. display: flex;
  188. flex-direction: column;
  189. justify-content: flex-end;
  190. align-items: center;
  191. .tips {
  192. margin-top: 10rpx;
  193. font-size: 24rpx;
  194. color: #FF9447;
  195. }
  196. }
  197. .form {
  198. margin-top: 15rpx;
  199. background-color: #FFFFFF;
  200. padding: 30rpx;
  201. border-radius: 10rpx;
  202. }
  203. </style>