|
|
- <!-- 投诉建议 -->
- <template>
- <view class="complain">
- <mNavbar title="投诉建议" :leftClick="leftClick"></mNavbar>
-
- <view class="content">
- <view class="c-input">
- <textarea v-model="form.suggestion" :maxlength="maxNum" @input="GetNumber"
- placeholder="请输入投诉/建议的内容....."></textarea>
- <view class="input-num">{{ inputNum }} / {{ maxNum }}</view>
- </view>
-
- <view class="c-input">
- <input v-model="remark" type="text" placeholder="备注(选填)" />
- </view>
-
- <!-- 上传图片 -->
- <view class="upload">
- <view class="upload-title">上传图片/视频</view>
- <view class="image-list">
- <view @click="selectImg(item)" v-for="(item,index) in form.images" class="image-item">
- <image :src="item" mode=""></image>
- </view>
-
- <view @click="fileUploads" v-if="uploadNum < maxUploadNum" class="add-img-btn">
- <image src="/static/complain/img.png" mode="scaleToFill"></image>
- </view>
- </view>
- </view>
- </view>
-
- <view class="add-btn">
- <view @click="complain" class="btn">
- 提交审核
- </view>
- </view>
-
- <van-action-sheet v-model:show="show" :actions="actions" @select="selectionOperation" />
-
- </view>
- </template>
-
- <script>
- import mNavbar from '@/components/base/m-navbar.vue'
- import { showImagePreview } from 'vant';
-
- export default {
- components: {
- mNavbar
- },
- data() {
- return {
- maxNum: 600, //最大输入字数
- inputNum: 0, //已输入的字数
- form: {
- suggestion: '', //投诉建议,内容
- images : [],
- remark : ''
- },
- actions: [{
- index : 0,
- name: '查看图片'
- },
- {
- index : 1,
- name: '删除图片'
- }
- ],
- show : false,
- maxUploadNum : 5, //最大上传5张
- currentImg : null, //用户点击的图片
- uploadNum : 0, //已上传张数
- }
- },
- methods: {
- //返回个人中心
- leftClick() {
- uni.switchTab({
- url: '/pages/index/center'
- })
- },
-
- //获取输入字数
- GetNumber(e) {
- this.inputNum = e.detail.cursor;
- },
-
- //投诉
- complain() {
-
- },
-
- //用户选择查看图片或者删除图片
- selectionOperation(item){
- let { index } = item
- if(index){
- this.removeImg()
- }else{
- this.viewImg()
- }
- },
-
- //图片列表删除一张图片
- removeImg(){
- this.form.images = this.form.images.filter(item => {
- return item != this.currentImg
- })
- this.show = false
- this.uploadNum = this.form.images.length
- },
-
- //查看图片
- viewImg(){
- showImagePreview([this.currentImg]);
- },
-
- //选择图片
- selectImg(item){
- this.show = true;
- this.currentImg = item;
- },
-
- //图片上传
- fileUploads() {
- uni.chooseImage({
- count: 1, // 默认9,设置为1表示单选
- sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
- sourceType: ['album'], // 可以指定来源是相册还是相机,默认二者都有
-
- success: (res) => {
- let resultPromise = [];
-
- //上传单张图片逻辑
- this.uploadFileToOSS(res.tempFiles[0]).then(imgPath => {
- this.form.images.push(imgPath)
- this.uploadNum++
- })
- }
- });
- },
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .complain {
-
- .content {
- width: 96%;
- margin: 0rpx auto;
- padding-bottom: 80rpx;
-
- .c-input {
- background: #F6F6F6;
- border-radius: 20rpx;
- margin-top: 20rpx;
- box-sizing: border-box;
- padding: 40rpx;
-
- textarea {
- width: 100%;
- }
-
- .input-num {
- text-align: right;
- color: #BCB7B7;
- font-size: 22rpx;
- }
- }
-
- .upload {
-
- .upload-title {
- margin: 30rpx 0rpx;
- }
-
- .image-list {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
-
- .image-item,
- .add-img-btn {
- width: calc(375rpx - 10px);
- height: calc(375rpx - 10px);
- overflow: hidden;
- border-radius: 20rpx;
- box-sizing: border-box;
- border: 2px dashed #ccc;
- margin-bottom: 25rpx;
-
- image {
- width: calc(375rpx - 10px);
- height: calc(375rpx - 10px);
- }
- }
- }
- }
- }
-
- .add-btn {
- position: fixed;
- display: flex;
- justify-content: center;
- align-items: center;
- left: 0;
- bottom: 0;
- width: 750rpx;
- height: 100rpx;
- background: white;
-
- .btn {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 85%;
- height: 80rpx;
- border-radius: 40rpx;
- color: white;
- text-align: center;
- font-size: 28rpx;
- background: #EF8C94;
- }
- }
- }
- </style>
|