feat:增加反馈内容
This commit is contained in:
@ -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>
|
||||
Reference in New Issue
Block a user