evaluate_add.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div class="container add_edit">
  3. <el-form :model="form" ref="ruleForm" label-width="100px">
  4. <el-form-item label="用户名称"><el-input v-model="form.member_name" placeholder="请输入名称"></el-input></el-form-item>
  5. <el-form-item label="用户头像">
  6. <uni-file-picker v-model="imageValueUser" fileMediatype="image" returnType="object" :image-styles="imageStyle" @success="imgUpload" />
  7. </el-form-item>
  8. <el-form-item label="订单号"><el-input v-model="form.order_id" placeholder="请输入订单号"></el-input></el-form-item>
  9. <el-form-item label="评论星数">
  10. <el-rate v-model="form.review_cnt" :colors="colors" class="margin_t_10" show-text :texts="['差评', '中评', '中评', '好评', '好评']"></el-rate>
  11. </el-form-item>
  12. <el-form-item label="评价内容"><el-input type="textarea" :rows="3" v-model="form.review_content" placeholder="请输入内容"></el-input></el-form-item>
  13. <el-form-item label="晒图">
  14. <uni-file-picker v-model="imageValueEvaluate" fileMediatype="image" returnType="array" :image-styles="imageStyle" @delete="imgDelete" />
  15. </el-form-item>
  16. <el-form-item label="备注"><el-input v-model="form.remark" placeholder="请输入备注"></el-input></el-form-item>
  17. <el-form-item label="状态">
  18. <el-switch v-model="form.state" active-color="#ff6a6c" inactive-color="#bbb" active-value="1" inactive-value="0"></el-switch>
  19. </el-form-item>
  20. <el-form-item>
  21. <el-button class="confirm_btn" @click="submitForm('ruleForm')">确 定</el-button>
  22. <el-button @click="returnPage">返回列表</el-button>
  23. </el-form-item>
  24. </el-form>
  25. </div>
  26. </template>
  27. <script>
  28. import bus from '@/common/bus';
  29. const __name = 'usemall-goods-comment';
  30. export default {
  31. data() {
  32. return {
  33. form: {
  34. goods_id: '',
  35. member_name: '',
  36. member_headimg: '',
  37. order_id: '',
  38. review_cnt: 0,
  39. review_content: '',
  40. review_imgs: '',
  41. remark: '',
  42. state: '1'
  43. },
  44. imageStyle: {
  45. height: '150px',
  46. width: '150px'
  47. },
  48. imageValueUser: null,
  49. colors: ['#99A9BF', '#F7BA2A', '#FF9900'],
  50. imageValueEvaluate: [],
  51. now_date:'',
  52. };
  53. },
  54. methods: {
  55. submitForm(formName) {
  56. this.$refs[formName].validate(valid => {
  57. if (valid) {
  58. switch (this.form.review_cnt) {
  59. case 1:
  60. this.form.review_type = '差评';
  61. break;
  62. case 2:
  63. case 3:
  64. this.form.review_type = '中评';
  65. break;
  66. case 4:
  67. case 5:
  68. this.form.review_type = '好评';
  69. break;
  70. }
  71. if(this.form.review_type=='差评'){
  72. var type=1
  73. }else if(this.form.review_type=='中评'){
  74. var type=2
  75. }else if(this.form.review_type=='好评'){
  76. var type=3
  77. }
  78. this.form.review_imgs = this.imageValueEvaluate.map(x => x.url);
  79. this.form.goods_id = this.$route.query.id;
  80. if (!this.form.goods_id) {
  81. this.$message.error('评价商品ID不存在');
  82. return;
  83. }
  84. this.$axios.post("/goodsComment/user/save",
  85. {
  86. "orderId": this.form.order_id,
  87. "goodsId": this.form.goods_id,
  88. "reviewContent": this.form.review_content,
  89. "reviewType": type,//1差评 2中评 3好评
  90. "reviewCnt": this.form.review_cnt,//1-5
  91. "reviewImgs": this.form.review_imgs,
  92. "state": this.form.state,//0隐藏 1显示
  93. "createTime": this.now_date,
  94. },
  95. {
  96. headers:{
  97. "Mall-Token": uni.getStorageSync('token')
  98. }
  99. }).then(response => {
  100. let res = response
  101. if (res.success) {
  102. this.form.member_headimg =res.data
  103. } else {
  104. this.$message({
  105. message: '评价成功',
  106. type: 'success'
  107. });
  108. this.returnPage();
  109. }
  110. }).catch(res =>{
  111. });
  112. // this.$db[__name].add(this.form).then(res => {
  113. // if (res.code == 200) {
  114. // this.$message({
  115. // message: '评价成功',
  116. // type: 'success'
  117. // });
  118. // this.returnPage();
  119. // }
  120. // });
  121. }
  122. });
  123. },
  124. //获取当前时间
  125. getNowDate() {
  126. var _this = this;
  127. // this.timer = setInterval(function() {
  128. var aData = new Date();
  129. var month = aData.getMonth() < 9 ? "0" + (aData.getMonth() + 1) : aData.getMonth() + 1;
  130. var date = aData.getDate() <= 9 ? "0" + aData.getDate() : aData.getDate();
  131. var date2 = aData.getDate() <= 9 ? "0" + (aData.getDate()-1) : (aData.getDate()-1);
  132. var Hour = aData.getHours() <= 9 ? "0" + (aData.getHours()) : aData.getHours();
  133. var Miunte = aData.getMinutes() <= 9 ? "0" + (aData.getMinutes()) : aData.getMinutes();
  134. var Seconds = aData.getSeconds() <= 9 ? "0" + (aData.getSeconds()) : aData.getSeconds();
  135. // console.log(aData.getTime())
  136. _this.now_date = aData.getFullYear() + "-" + month + "-" + date + ' '+ Hour +":"+ Miunte +":"+ Seconds;
  137. // console.log(aData.getFullYear() + "-" + month + "-" + date2)昨天
  138. // }, 86400000);
  139. },
  140. imgUpload(e) {
  141. this.form.member_headimg = e.tempFiles[0].file;
  142. const file = this.form.member_headimg;
  143. const formData = new FormData();
  144. formData.append('file', file);
  145. // 文件上传
  146. this.$axios.post("/file/open/",formData,
  147. {
  148. headers:{
  149. 'Content-type' : 'multipart/form-data'
  150. }
  151. }).then(response => {
  152. let res = response
  153. if (res.success) {
  154. this.form.member_headimg =res.data
  155. } else {
  156. uni.showToast({
  157. icon:'error',
  158. title: '请重新上传!'
  159. });
  160. this.form.member_headimg =''
  161. }
  162. }).catch(res =>{
  163. uni.showToast({
  164. icon:'error',
  165. title: '请重新上传!'
  166. });
  167. this.form.member_headimg =''
  168. });
  169. },
  170. imgDelete(e) {
  171. this.imageValueEvaluate.splice(this.imageValueEvaluate.findIndex(x => x.url == e.url), 1);
  172. },
  173. returnPage() {
  174. bus.$emit('tab-close');
  175. this.$router.push('/pages/goods/list/goods_list');
  176. }
  177. }
  178. };
  179. </script>
  180. <style></style>