初始化my文件
This commit is contained in:
217
pages/feedback/report.vue
Normal file
217
pages/feedback/report.vue
Normal file
@@ -0,0 +1,217 @@
|
||||
<template>
|
||||
<view class="view-page">
|
||||
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}"
|
||||
:navTitle="'举报'" bgColor="#fff" :emitBack="true" @backEvent="back">
|
||||
</navBar>
|
||||
<view class="content">
|
||||
<uni-forms ref="baseForm" :modelValue="formData" label-position="top">
|
||||
<uni-forms-item label="举报类型" required>
|
||||
<view class="view-picker">
|
||||
<view class="uni-list-cell">
|
||||
<view class="uni-list-cell-db">
|
||||
<picker @change="bindPickerChange" :value="typeIndex" :range="array">
|
||||
<view class="uni-input">{{array[typeIndex]}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="举报原因" required>
|
||||
<view class="">
|
||||
<uni-easyinput type="textarea" autoHeight v-model="formData.content"
|
||||
placeholder="请输入举报原因"></uni-easyinput>
|
||||
</view>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
<view class="view-picker">
|
||||
<uploadImage ref="uploadImage" @changeImageList="successUpload"></uploadImage>
|
||||
<!-- <uni-file-picker limit="9" title="最多选择9张图片"></uni-file-picker> -->
|
||||
</view>
|
||||
<view class="flex-line w-fill mt-24 color-3" style="justify-content: center;">
|
||||
<view class="comfirmButton flex-line" @click="comfirm">
|
||||
确认举报
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<uni-popup ref="message" type="message">
|
||||
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import headerHeight from '@/component/headerHeight.vue';
|
||||
import navBar from '@/component/nav.vue';
|
||||
import http from '@/until/http.js';
|
||||
import logout from '@/static/image/union/logout.png'
|
||||
import logo from '@/static/image/logo.png';
|
||||
import uploadImage from '@/component/uploadImage.vue'
|
||||
export default {
|
||||
components: {
|
||||
headerHeight,
|
||||
uploadImage,
|
||||
navBar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
content: ""
|
||||
},
|
||||
optionsProps: {
|
||||
|
||||
},
|
||||
array: [],
|
||||
typeList: [],
|
||||
statusBarHeight: 0,
|
||||
typeIndex: 0,
|
||||
messageText: "",
|
||||
msgType: "success"
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
typeIndex(val) {
|
||||
console.log(val)
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
// fromType 1-用户,2房间,3动态 fromId对应的id
|
||||
const {
|
||||
id,
|
||||
fromType,
|
||||
fromId,
|
||||
h
|
||||
} = options
|
||||
this.optionsProps = {
|
||||
id,
|
||||
fromType,
|
||||
fromId
|
||||
}
|
||||
uni.setStorageSync('token', id)
|
||||
this.statusBarHeight = h
|
||||
uni.setStorageSync('BarHeight', h)
|
||||
if (uni.getStorageSync('token')) {
|
||||
this.getTypeList()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
this.closeWeb()
|
||||
},
|
||||
closeWeb() {
|
||||
// 关闭页面
|
||||
const platform = uni.getSystemInfoSync().platform;
|
||||
if (platform === 'ios') {
|
||||
window.webkit.messageHandlers.nativeHandler.postMessage({
|
||||
'action': 'closeWeb'
|
||||
});
|
||||
} else if (platform === 'android') {
|
||||
window.Android.closeWeb();
|
||||
|
||||
}
|
||||
},
|
||||
async getTypeList() {
|
||||
http.get('/api/Report/report_type_list', {
|
||||
token: uni.getStorageSync('token') || ''
|
||||
}).then(response => {
|
||||
const {
|
||||
code,
|
||||
data
|
||||
} = response
|
||||
this.typeList = data
|
||||
this.array = data.map(ele => {
|
||||
return ele.type
|
||||
})
|
||||
this.typeIndex = 0
|
||||
})
|
||||
},
|
||||
bindPickerChange({
|
||||
detail
|
||||
}) {
|
||||
// console.log()
|
||||
this.typeIndex = detail.value
|
||||
},
|
||||
comfirm() {
|
||||
const formData = {
|
||||
type_id: this.typeList[this.typeIndex].id,
|
||||
report_type: this.optionsProps.fromType || 1,
|
||||
content: this.formData.content || '',
|
||||
image: this.formData.image,
|
||||
from_id: this.optionsProps.fromId || ""
|
||||
}
|
||||
http.post('/api/Report/report', {
|
||||
...formData,
|
||||
token: uni.getStorageSync('token') || ''
|
||||
}).then(response => {
|
||||
const {
|
||||
data,
|
||||
code,
|
||||
msg
|
||||
} = response
|
||||
if (code) {
|
||||
this.messageText = `提交成功`
|
||||
this.$refs.message.open()
|
||||
this.msgType = 'success'
|
||||
this.formData = {
|
||||
content: "",
|
||||
image: "",
|
||||
}
|
||||
this.$refs.uploadImage.clearImage()
|
||||
} else {
|
||||
this.messageText = msg
|
||||
this.msgType = 'error'
|
||||
this.$refs.message.open()
|
||||
}
|
||||
})
|
||||
},
|
||||
successUpload(list) {
|
||||
const imageList = list.map(ele => {
|
||||
return ele.tempFilePath
|
||||
})
|
||||
if (imageList && imageList.length) {
|
||||
this.formData.image = imageList.join(',')
|
||||
} else {
|
||||
this.formData.image = ""
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .is-input-border {
|
||||
border: 0;
|
||||
border-radius: 22rpx;
|
||||
}
|
||||
|
||||
.view-page {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #f8f8f8;
|
||||
// background-image: url('@/static/image/help/bg.png');
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
min-height: 100vh;
|
||||
|
||||
.content {
|
||||
padding: 0 24rpx;
|
||||
margin-top: 24rpx;
|
||||
|
||||
.view-picker {
|
||||
background-color: #fff;
|
||||
padding: 21rpx;
|
||||
border-radius: 14rpx;
|
||||
}
|
||||
|
||||
.comfirmButton {
|
||||
width: 600rpx;
|
||||
height: 84rpx;
|
||||
background: var(--primary-color);
|
||||
font-size: var(--font-button-size);
|
||||
color: var(--font-button-color);
|
||||
border-radius: 106rpx;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user