You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.1 KiB
138 lines
3.1 KiB
<template>
|
|
<div class="com-form-report">
|
|
<el-form
|
|
ref="report"
|
|
label-position="top"
|
|
label-width="80px"
|
|
:model="report"
|
|
>
|
|
<el-form-item label="文档">
|
|
<el-input v-model="report.document_title" :disabled="true"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="举报原因">
|
|
<el-radio-group v-model="report.reason" class="report-reason">
|
|
<el-row>
|
|
<el-col
|
|
:span="8"
|
|
v-for="item in reportOptions"
|
|
:key="'rs' + item.value"
|
|
>
|
|
<el-radio :label="item.value">{{ item.label }}</el-radio>
|
|
</el-col>
|
|
</el-row>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
<template v-if="isAdmin">
|
|
<el-form-item label="处理状态">
|
|
<el-switch
|
|
v-model="report.status"
|
|
active-text="已处理"
|
|
inactive-text="未处理"
|
|
>
|
|
</el-switch>
|
|
</el-form-item>
|
|
<el-form-item label="处理备注">
|
|
<el-input
|
|
v-model="report.remark"
|
|
placeholder="请输入文档处理相关备注"
|
|
type="textarea"
|
|
rows="3"
|
|
></el-input>
|
|
</el-form-item>
|
|
</template>
|
|
<el-form-item>
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-check"
|
|
class="btn-block"
|
|
@click="setReport"
|
|
>提交</el-button
|
|
>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { createReport, updateReport } from '~/api/report'
|
|
import { reportOptions } from '~/utils/enum'
|
|
export default {
|
|
name: 'FormReport',
|
|
props: {
|
|
isAdmin: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
initReport: {
|
|
type: Object,
|
|
default: () => {
|
|
return {
|
|
id: 0,
|
|
report_id: 0,
|
|
document_id: 0,
|
|
}
|
|
},
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
report: { id: 0, status: 0 },
|
|
reportOptions,
|
|
statusOptions: [
|
|
{ label: '未处理', value: 0 },
|
|
{ label: '已处理', value: 1 },
|
|
],
|
|
}
|
|
},
|
|
watch: {
|
|
initReport: {
|
|
handler(val) {
|
|
this.report = { status: 0, ...val }
|
|
},
|
|
immediate: true,
|
|
},
|
|
},
|
|
created() {
|
|
this.report = this.initReport
|
|
},
|
|
methods: {
|
|
async setReport() {
|
|
if (this.report.id > 0) {
|
|
const res = await updateReport(this.report)
|
|
if (res.status === 200) {
|
|
this.$message.success('更新成功')
|
|
this.$emit('success')
|
|
} else {
|
|
this.$message.error(res.data.message)
|
|
}
|
|
} else {
|
|
const res = await createReport(this.report)
|
|
if (res.status === 200) {
|
|
this.$message.success('提交成功')
|
|
this.$emit('success')
|
|
} else {
|
|
this.$message.error(res.data.message)
|
|
}
|
|
}
|
|
},
|
|
reset() {
|
|
this.report = { id: 0 }
|
|
this.$refs.report.resetFields()
|
|
this.$refs.report.clearValidate()
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
<style lang="scss">
|
|
.com-form-report {
|
|
.el-select {
|
|
width: 100%;
|
|
}
|
|
.report-reason {
|
|
width: 100%;
|
|
.el-radio {
|
|
margin-bottom: 10px;
|
|
}
|
|
}
|
|
}
|
|
</style>
|