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