vue前端举报界面搭建
时间: 2023-09-08 12:10:18 浏览: 176
1. 首先,我们需要创建一个Vue项目,可以使用Vue CLI来创建。
2. 安装需要的依赖:axios和element-ui。
```
npm install axios element-ui --save
```
3. 在main.js中引入axios和element-ui,并挂载到Vue实例上。
```javascript
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.prototype.$http = axios
Vue.use(ElementUI)
Vue.config.productionTip = false
new Vue({
router,
render: h => h(App)
}).$mount('#app')
```
4. 创建一个举报表单组件,并在其中引入element-ui的表单组件和按钮组件。
```vue
<template>
<div class="report-form">
<el-form :model="reportForm" :rules="rules" ref="reportForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="举报类型" prop="type">
<el-select v-model="reportForm.type" placeholder="请选择举报类型" style="width:100%;">
<el-option label="色情低俗" value="1"></el-option>
<el-option label="虚假信息" value="2"></el-option>
<el-option label="诈骗信息" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="举报原因" prop="reason">
<el-input type="textarea" v-model="reportForm.reason" placeholder="请输入举报原因"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('reportForm')">提交</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
reportForm: {
type: '',
reason: ''
},
rules: {
type: [
{ required: true, message: '请选择举报类型', trigger: 'change' }
],
reason: [
{ required: true, message: '请输入举报原因', trigger: 'blur' }
]
}
}
},
methods: {
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
this.$http.post('/api/report', this.reportForm).then(res => {
if (res.data.code === 200) {
this.$message.success('举报成功')
this.$refs[formName].resetFields()
} else {
this.$message.error('举报失败')
}
})
} else {
return false
}
})
}
}
}
</script>
<style scoped>
.report-form {
width: 500px;
margin: 0 auto;
}
</style>
```
5. 在路由中配置该组件的路径。
```javascript
import Vue from 'vue'
import Router from 'vue-router'
import ReportForm from './views/ReportForm.vue'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'report-form',
component: ReportForm
}
]
})
```
6. 在后端创建一个举报接口,并在前端调用该接口来提交举报信息。
```javascript
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.post('/api/report', (req, res) => {
console.log(req.body)
res.json({
code: 200,
message: '举报成功'
})
})
app.listen(3000, () => {
console.log('服务器已启动')
})
```
至此,一个简单的举报界面的搭建就完成了。当用户填写完举报表单并提交后,数据会通过axios发送到后端,后端会接收到该数据并进行相应的处理,最后返回成功或失败的结果给前端。
阅读全文