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>
|
||||
@ -32,7 +32,7 @@
|
||||
</div>
|
||||
<div class="right">
|
||||
<el-button type="primary" size="small" @click="joinMeeting(item, '会议')">加入会议</el-button>
|
||||
<el-button type="primary" size="small">反馈情况</el-button>
|
||||
<el-button type="primary" size="small" @click="feedBack(item)">反馈情况</el-button>
|
||||
<el-button type="primary" size="small">处置下发</el-button>
|
||||
</div>
|
||||
</div>
|
||||
@ -76,6 +76,9 @@
|
||||
<!-- 音视频会议窗口 -->
|
||||
<MeetingView ref="refMeetingView" :update="updateItem"></MeetingView>
|
||||
|
||||
<!-- 反馈弹窗 -->
|
||||
<FeedbackForm ref="feedbackFormRef" @success="getList" />
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -87,8 +90,10 @@ import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import DetailForm from "./components/detailForm.vue";
|
||||
import RoomDetail from "./components/roomDetail.vue";
|
||||
import FeedbackForm from "./components/FeedbackForm.vue";
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||
|
||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
import ConferenceRoom from "./components/Communications/conferenceRoom.vue";
|
||||
const router = useRouter();
|
||||
@ -98,6 +103,7 @@ const detailDiloag = ref();
|
||||
const searchBox = ref(); //搜索框
|
||||
const openMeeting = ref(false); // 打开会议窗口
|
||||
const refMeetingView = ref()
|
||||
const feedbackFormRef = ref() // 反馈弹窗引用
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
label: "会议主题",
|
||||
@ -123,6 +129,9 @@ const pageData = reactive({
|
||||
},
|
||||
});
|
||||
const jsonData = ref('')
|
||||
/** 当前行数据 */
|
||||
const currRow = ref({})
|
||||
|
||||
onMounted(() => {
|
||||
jsonData.value = require('@/components/Consultation/components/zh_CN.json');
|
||||
getList();
|
||||
@ -191,6 +200,10 @@ const joinMeeting = (item, type) => {
|
||||
item.number = item.hybh;
|
||||
refMeetingView.value.openInit(item, type)
|
||||
};
|
||||
// 反馈情况
|
||||
const feedBack = (item) => {
|
||||
feedbackFormRef.value.open(item.id);
|
||||
};
|
||||
|
||||
// 删除
|
||||
const delDictItem = (id) => {
|
||||
|
||||
Reference in New Issue
Block a user