jszjdy-prevention-app/pages/my/feedback/feedback.vue

291 lines
7.6 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view>
<view class="tips_text">
严禁在本互联网非涉密平台处理传输国家秘密和工作秘密请确认扫描传输的文件资料不涉及国家秘密和工作秘密
</view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">问题反馈</block>
</cu-custom>
<view class="">
<view class="cu-form-group">
<input @input="backTitleInput" placeholder="请输入标题..." name="input"></input>
</view>
<view class="cu-form-group align-start margin-top">
<textarea maxlength="-1" :disabled="modalName!=null" @input="backContentInput" placeholder="请补充详细问题和意见..."></textarea>
</view>
<radio-group class="block" @change="RadioChange">
<view class="cu-form-group margin-top pp">
<view class="title">反馈类型</view>
<view class="cbox">
<view class="cbox-item">
<radio class='blue radio' :class="radio=='1'?'checked':''" :checked="radio=='1'?true:false" value="1"></radio>
<text class="">系统错误</text>
</view>
<view class="cbox-item">
<radio class='blue radio' :class="radio=='2'?'checked':''" :checked="radio=='2'?true:false" value="2"></radio>
<text class="">界面优化</text>
</view>
<view class="cbox-item">
<radio class='blue radio' :class="radio=='3'?'checked':''" :checked="radio=='3'?true:false" value="3"></radio>
<text class="">设计缺陷</text>
</view>
<view class="cbox-item">
<radio class='blue radio' :class="radio=='4'?'checked':''" :checked="radio=='4'?true:false" value="4"></radio>
<text class="">性能问题</text>
</view>
<view class="cbox-item">
<radio class='blue radio' :class="radio=='9'?'checked':''" :checked="radio=='9'?true:false" value="9"></radio>
<text class="">其他</text>
</view>
</view>
</view>
</radio-group>
<view class="cu-bar bg-white margin-top">
<view class="action">
请提供相关问题的截图或照片
</view>
<view class="action">
{{imgList.length}}/4
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage" :data-url="imgList[index]">
<image :src="imgList[index]" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="ChooseImage" v-if="imgList.length<4">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
</view>
<view class="padding flex flex-direction mt20">
<button :loading="buttonloading" class="cu-btn bg-blue lg round" @click="$noMultipleClicks(goSubmit)"></button>
</view>
</view>
</template>
<script>
import { decryptAes } from "@/common/aesUtil";
import {
basePath,corpinfoId,corpUserId,loginSession,loginUserId,loginUser
} from '@/common/tool.js';
export default {
data() {
return {
noClick:true,
radio: null,
buttonloading: false,
imgList: [],
imgPaths:'',
modalName: null,
textareaBValue: '',
id:'',
backTitle:'',
backWay:'',
backContent:'',
backType:'',
}
},
onLoad(){
loginSession();
},
methods: {
goSubmit(){
var _this = this;
if (!_this.backTitle) {
uni.showToast({
icon: 'none',
title: '请输入标题',
duration: 1500
});
return;
}
if (!_this.backContent) {
uni.showToast({
icon: 'none',
title: '请填反馈内容',
duration: 1500
});
return;
}
if (!_this.backType) {
uni.showToast({
icon: 'none',
title: '请选择反馈类型',
duration: 1500
});
return;
}
if (_this.imgList.length <= 0) {
uni.showToast({
icon: 'none',
title: '请上传隐患图片',
duration: 1500
});
return;
}
var i = 0;
_this.uploadImg(_this.imgList, i);
},
uploadImg(tempFilePaths,i){
var _this = this;
uni.showLoading({
title: '提交中'
})
this.buttonloading =true
uni.uploadFile({
url: basePath + '/app/feedback/upload',
filePath: tempFilePaths[i],
name: 'FFILE',
formData: {
corpUserId:corpUserId,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
res.data = decryptAes(res.data);
this.buttonloading = false
var map = eval("("+res.data+")");
if(map.result =='success'){
var imgpath = map.imgPath;
_this.imgPaths = _this.imgPaths +";" +imgpath;
}
i++;
if (tempFilePaths.length > i) {
_this.uploadImg(tempFilePaths, i);
} else {
_this.submit();
}
},
fail: (err) => {
uni.hideLoading();
console.log('uploadImage fail', err);
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
},
submit(){
var _this = this;
this.buttonloading = true
uni.request({
url: basePath+"/app/feedback/add", //提交接口
method: 'POST',
dataType:'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
FEEDBACK_TITLE:_this.backTitle,
FEEDBACK_CONTENT:_this.backContent,
FEEDBACK_TYPE:_this.backType,
FEEDBACK_IMG :_this.imgPaths,
loginUserId:loginUserId,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
res.data = decryptAes(res.data);
this.buttonloading = false
if('success' == res.data.result){
uni.showToast({
icon: 'none',
title: '提交成功',
duration: 1500
});
setTimeout(function(){
var pages = getCurrentPages(); // 获取当前页面栈
var prePage = pages[pages.length - 2]; // 上一个页面
prePage.$vm.initflag = true; // A 页面 init方法 为true
uni.navigateBack({});
uni.hideLoading();
},1500);
}else{
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
backTitleInput(e){
this.backTitle = e.detail.value
},
backContentInput(e) {
this.backContent = e.detail.value
},
RadioChange(e) {
this.backType = e.detail.value
},
ChooseImage() {
uni.chooseImage({
count: 4, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera','album'], //从相册选择
success: (res) => {
if (this.imgList.length != 0) {
this.imgList = this.imgList.concat(res.tempFilePaths)
} else {
this.imgList = res.tempFilePaths
}
}
});
},
ViewImage(e) {
uni.previewImage({
urls: this.imgList,
current: e.currentTarget.dataset.url
});
},
DelImg(e) {
uni.showModal({
title: '双控平台',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
this.imgList.splice(e.currentTarget.dataset.index, 1)
}
}
})
},
}
}
</script>
<style>
.cu-form-group{
min-height: 100upx;
}
.pp{
padding-top: 20upx;
padding-bottom: 20upx;
}
.cbox{
display: flex;
flex-wrap: wrap;
flex: 1;
}
.cbox-item{
width: 180upx;
margin: 8upx 0;
}
.cbox-item .radio {
transform: scale(0.6);
margin-right: 10upx;
}
</style>