add.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <template>
  2. <view class="page">
  3. <!-- 通知 -->
  4. <view class="tip">
  5. <text class="light">😛</text>
  6. <text class="light">评价即可</text>
  7. <text>抽奖</text>
  8. <text>, 15字+图片还有机会成为</text>
  9. <text class="light">「精选晒单」</text>
  10. </view>
  11. <!-- 表单 -->
  12. <view class="card">
  13. <!-- 商品 -->
  14. <view class="goods"><OrderGoodsCard :data="orderInfo" showBorderBottom></OrderGoodsCard></view>
  15. <!-- 评价 -->
  16. <view class="evaluate">
  17. <!-- 评分 -->
  18. <u-form-item label-width="140rpx" :border-bottom="false" label="商品评分">
  19. <u-rate size="38" slot="right" :count="5" v-model="form.star" :inactive-color="appThemeCardGrayColor" :active-color="appThemeColor"></u-rate>
  20. </u-form-item>
  21. <!-- 内容 -->
  22. <view class="form">
  23. <view class="content"><u-input height="200" type="textarea" placeholder="写下您的评价吧"></u-input></view>
  24. <view class="pics">
  25. <!-- 图片上传 -->
  26. <u-upload
  27. :deleteConfirmBtnColor="appThemeColor"
  28. width="180"
  29. height="180"
  30. max-count="9"
  31. :max-size="1024 * 1024 * 10"
  32. :action="uploadUrl"
  33. :auto-upload="true"
  34. @on-success="uploadPicSuccess"
  35. ></u-upload>
  36. </view>
  37. <u-form-item label-width="140rpx" :border-bottom="false" label="匿名评价">
  38. <u-switch size="40" slot="right" v-model="form.cryptonym" :active-color="appThemeColor"></u-switch>
  39. </u-form-item>
  40. </view>
  41. </view>
  42. </view>
  43. <!-- 按钮 -->
  44. <view class="btn">
  45. <u-button type="primary" shape="circle" @click="submit"><text>提交</text></u-button>
  46. </view>
  47. </view>
  48. </template>
  49. <script>
  50. import OrderGoodsCard from '@/pages-mall/components/order/order-goods-card.vue';
  51. export default {
  52. components: {
  53. OrderGoodsCard
  54. },
  55. data() {
  56. return {
  57. // 商品详情
  58. orderInfo: {},
  59. // 主题色
  60. appThemeColor: this.$appTheme.appThemeColor,
  61. appThemeCardGrayColor: this.$appTheme.appThemeCardGrayColor,
  62. // 表单
  63. form: {
  64. star: 5,
  65. cryptonym: false,
  66. pics: []
  67. },
  68. // 上传地址
  69. uploadUrl: ''
  70. };
  71. },
  72. onLoad() {
  73. this.orderInfo = uni.getStorageSync('orderInfo');
  74. },
  75. methods: {
  76. // 上传图片成功
  77. uploadPicSuccess(data, index, lists, name) {
  78. let obj = {
  79. src: data.data.src,
  80. name: name || '未命名图片.png',
  81. type: 0
  82. };
  83. this.form.pics.push(obj);
  84. }
  85. }
  86. };
  87. </script>
  88. <style lang="scss" scoped>
  89. .page {
  90. padding: 30rpx;
  91. padding-top: 110rpx;
  92. }
  93. .tip {
  94. position: absolute;
  95. top: 10vh;
  96. left: 0;
  97. width: 100%;
  98. padding: 0rpx 30rpx;
  99. height: 80rpx;
  100. line-height: 80rpx;
  101. background-color: rgba($app-theme-color, 0.1);
  102. z-index: $app-zIndex-absolute;
  103. text {
  104. color: $app-theme-card-gray-deep-color;
  105. }
  106. .light {
  107. color: $app-theme-color;
  108. font-size: 28rpx;
  109. }
  110. text:first-child {
  111. margin-right: 18rpx;
  112. }
  113. }
  114. .card {
  115. border-radius: 16rpx;
  116. box-shadow: $app-theme-shadow;
  117. padding: 30rpx;
  118. margin-bottom: 24rpx;
  119. background-color: $app-theme-bg-color;
  120. .rate {
  121. padding: 0 0 30rpx 0;
  122. // 视觉对齐
  123. margin-left: -8rpx;
  124. }
  125. .form {
  126. }
  127. .pics {
  128. padding-bottom: 30rpx;
  129. border-bottom: 1rpx solid $app-theme-border-color;
  130. // 视觉对齐
  131. margin-left: -12rpx;
  132. }
  133. }
  134. .btn {
  135. padding: 60rpx 0rpx;
  136. }
  137. </style>