feat:增加反馈内容

This commit is contained in:
2025-12-18 19:20:57 +08:00
parent 6ddecd72af
commit cc2bf59a19
2 changed files with 118 additions and 1 deletions

View File

@ -0,0 +1,104 @@
<template>
<el-dialog v-model="dialogVisible" title="会商反馈" width="600px" :before-close="handleClose" destroy-on-close>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-form-item label="反馈内容" prop="fknr">
<el-input v-model="form.fknr" type="textarea" :rows="6" placeholder="请输入反馈内容" maxlength="500" show-word-limit />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" :loading="loading" @click="handleSave">
保存
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { ref, reactive, nextTick } from 'vue'
import { ElMessage } from 'element-plus'
import { wshsHsfk } from '@/api/huiShangyp/onlineConsultationRoom.js'
const emit = defineEmits(['success'])
const dialogVisible = ref(false)
const loading = ref(false)
const formRef = ref()
const currentHsid = ref('')
const form = reactive({
fknr: ''
})
const rules = {
fknr: [
{ required: true, message: '请输入反馈内容', trigger: 'blur' },
{ min: 2, message: '反馈内容至少2个字符', trigger: 'blur' }
]
}
// 打开弹框
const open = (hsid) => {
currentHsid.value = hsid
form.fknr = ''
dialogVisible.value = true
}
// 关闭弹框
const handleClose = () => {
dialogVisible.value = false
form.fknr = ''
currentHsid.value = ''
if (formRef.value) {
formRef.value.resetFields()
}
}
// 保存反馈
const handleSave = async () => {
if (!formRef.value) return
try {
const valid = await formRef.value.validate()
if (!valid) return
loading.value = true
const params = {
hsid: currentHsid.value,
fknr: form.fknr
}
await wshsHsfk(params)
ElMessage.success('反馈保存成功')
handleClose()
emit('success') // 通知父组件刷新列表
} catch (error) {
ElMessage.error('保存失败,请重试')
} finally {
loading.value = false
}
}
defineExpose({
open
})
</script>
<style scoped>
.dialog-footer {
display: flex;
justify-content: flex-end;
gap: 10px;
}
:deep(.el-textarea__inner) {
resize: vertical;
}
</style>