diary.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <view>
  3. <view class="con">
  4. <view class="imgbox ddflex" @tap="uploadImgs">
  5. <view class="imgs" v-if="posterUrl">
  6. <image :src="posterUrl" class="img" mode="aspectFill"></image>
  7. <!-- <image src="../static/images/close.png" class="del" @tap="cleanimages(index)"></image> @tap="previewImg(zhiPicUrls, index)" -->
  8. </view>
  9. <view class="upload ddflex" v-else><image src="../static/images/upload.png"></image>请上传封面图</view>
  10. </view>
  11. <input v-model="title" placeholder="请输入话题标题" placeholder-class="placeholder" class="ipt" />
  12. <textarea v-model="desc" placeholder="请输入话题描述" placeholder-class="placeholder" class="textarea"></textarea>
  13. <!-- <editor id="editor" @input="descInput" class="ql-container" placeholder="请输入圈子描述" @ready="onEditorReady"></editor> -->
  14. </view>
  15. <view class="btn" @click="submit()">完成</view>
  16. </view>
  17. </template>
  18. <script>
  19. const app = getApp();
  20. const req = require('../../utils/request.js');
  21. export default {
  22. data() {
  23. return {
  24. title: '',
  25. picCount: 1,
  26. desc: '', //描述
  27. posterUrl: '',
  28. };
  29. },
  30. onLoad() {},
  31. methods: {
  32. onEditorReady() {},
  33. descInput(event) {
  34. this.desc = event.detail.html;
  35. // console.log('desc数据>>>>>>', this.desc);
  36. if (this.desc) {
  37. this.descLength = event.detail.text.length - 1;
  38. } else {
  39. this.descLength = 0;
  40. }
  41. },
  42. uploadImgs() {
  43. let that = this;
  44. uni.chooseImage({
  45. count: that.picCount,
  46. sizeType: ['original', 'compressed'],
  47. sourceType: ['album', 'camera'],
  48. success: function({ tempFilePaths }) {
  49. var promise = Promise.all(
  50. tempFilePaths.map(tempFilePath => {
  51. return new Promise(function(resolve, reject) {
  52. req.uploadFile('/api/nocheck/upload', tempFilePath, res => {
  53. that.posterUrl = res.src;
  54. });
  55. });
  56. })
  57. );
  58. promise
  59. .then(function(results) {
  60. console.log(results);
  61. })
  62. .catch(function(err) {
  63. console.log(err);
  64. });
  65. }
  66. });
  67. },
  68. //预览图片
  69. previewImg(picUrls, index) {
  70. //预览合同图片
  71. var src = picUrls[index];
  72. let imgs = picUrls;
  73. uni.previewImage({
  74. current: src, // 当前显示图片的http链接
  75. urls: imgs
  76. });
  77. },
  78. cleanimages(index) {
  79. // 删除图片
  80. let arr = this.zhiPicUrls;
  81. arr.splice(index, 1);
  82. this.zhiPicUrls = arr;
  83. },
  84. submit() {
  85. var dataPream = {};
  86. if (!this.title) {
  87. return req.msg('请输入话题标题');
  88. }
  89. dataPream.title = this.title;
  90. dataPream.subtitle = this.desc;
  91. dataPream.posterUrl = this.posterUrl;
  92. //图片
  93. req.postRequest('/api/v3/dialogue/save', dataPream, data => {
  94. req.msg('话题保存成功');
  95. setTimeout(() => {
  96. uni.redirectTo({
  97. url: '/topics/detail/detail?topicId=' + data.id
  98. });
  99. }, 1500);
  100. });
  101. }
  102. }
  103. };
  104. </script>
  105. <style>
  106. @import './diary.css';
  107. </style>