postdischarge-ui/src/views/system/datialdata/index.vue

1131 lines
32 KiB
Vue
Raw Normal View History

2024-12-20 17:32:46 +08:00
<template>
2024-12-23 17:56:27 +08:00
<div class="app-container" ref="layout">
<div ref="topform" class="form">
<SearchFilter
labelWidth="100px"
:labelWidths="310"
size="small"
@search="handleQuery"
@reset="resetQuery"
@minShowCtrol="getMaxTableHeight"
:query="queryParams"
v-show="showSearch"
>
<el-form-item label="患者姓名" prop="patientName">
<el-input
v-model="queryParams.patientName"
placeholder="请输入患者姓名"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="患者电话" prop="patientPhone">
<el-input
v-model="queryParams.patientPhone"
placeholder="请输入患者电话"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="外呼时间" prop="startTime">
<el-date-picker
v-model="dischargeTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
style="width: 220px"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
@change="changeTime"
>
</el-date-picker>
</el-form-item>
<el-form-item label="问卷名称" prop="questionnaireName">
<el-select
v-model="queryParams.questionInfoId"
placeholder="请选择问卷名称"
clearable
style="width: 220px"
>
<el-option
v-for="item in questionnaireList"
:key="item.id"
:label="item.questionnaireName"
:value="item.id"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务节点类型" prop="taskNodeType">
<el-select
v-model="queryParams.taskNodeType"
placeholder="请选择任务节点类型"
clearable
style="width: 220px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId">
<el-select
v-model="queryParams.hospitalAgencyId"
filterable
placeholder="请选择医院"
style="width: 220px"
clearable
@clear="clearhospitalAgency"
@change="changehospitalAgency"
>
<el-option
v-for="item in hospitalAgencylist"
:key="item.id"
:label="item.agencyName"
:value="item.id"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="科室" prop="departmentId">
<el-select
v-model="queryParams.departmentId"
filterable
placeholder="请选择科室"
style="width: 220px"
clearable
@clear="cleardepartment"
@change="changedepartment"
>
<el-option
v-for="item in departmentlist"
:key="item.id"
:label="item.departmentName"
:value="item.id"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务执行状态" prop="nodeExecuteStatus">
<el-select
v-model="queryParams.nodeExecuteStatus"
placeholder="请选择任务执行状态"
clearable
style="width: 220px"
>
<el-option
v-for="item in nodeExecutList"
:key="item.value"
:label="item.label"
:value="item.value"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务执行类型" prop="taskExcuteType">
<el-select
v-model="queryParams.taskExcuteType"
placeholder="请选择任务执行类型"
clearable
style="width: 220px"
>
<el-option
v-for="item in taskExcuteTypelist"
:key="item.value"
:label="item.label"
:value="item.value"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="调查结果" prop="contentedFlag">
<el-select
v-model="queryParams.contentedFlag"
placeholder="请选择调查结果"
clearable
style="width: 220px"
>
<el-option
v-for="item in contentedFlaglist"
:key="item.value"
:label="item.label"
:value="item.value"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="批次" prop="sn">
<span>
<sn
@on-template="messageontemplateword"
:templateId="queryParams.sn"
></sn>
</span>
</el-form-item>
<el-form-item label="通话状态" prop="phoneNodeExecuteResultStatus">
<el-select
v-model="queryParams.phoneNodeExecuteResultStatus"
placeholder="请选择通话状态"
clearable
style="width: 220px"
>
<el-option
v-for="item in SUCCESSlist"
:key="item.value"
:label="item.label"
:value="item.value"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-option>
</el-select>
</el-form-item>
</SearchFilter>
</div>
<div ref="table">
<el-table
:max-height="maxTableHeight"
v-loading="loading"
:data="patientInfoList"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" /> -->
<el-table-column label="序号" type="index" width="48" align="center" />
<el-table-column
label="患者姓名"
align="center"
prop="patientName"
width="110"
/>
<el-table-column
label="患者电话"
align="center"
prop="patientPhone"
width="110"
/>
<el-table-column
label="路径名称"
align="center"
prop="manageRouteName"
width="110"
/>
<el-table-column
label="问卷模板名称"
align="center"
prop="questionnaireName"
width="120"
/>
<el-table-column
label="话术名称"
align="center"
prop="scriptTemplateName"
width="110"
/>
<el-table-column
label="医院"
align="center"
prop="hospitalAgencyName"
width="110"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
width="110"
/>
<el-table-column
label="执行状态"
align="center"
prop="nodeExecuteStatus"
width="150"
>
<template slot-scope="scope">
<span style="color: #67c23a">
{{
scope.row.nodeExecuteStatus == "EXECUTED" ? "已执行" : ""
}}</span
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
<span style="color: #f56c6c">
{{
scope.row.nodeExecuteStatus == "UNEXECUTED" ? "未执行" : ""
}}</span
>
</template>
</el-table-column>
<el-table-column
label="通话状态"
align="center"
prop="phoneNodeExecuteResultStatus"
width="150"
2024-12-20 17:32:46 +08:00
>
<template slot-scope="scope">
2024-12-23 17:56:27 +08:00
{{
scope.row.phoneNodeExecuteResultStatus == "SUCCESS"
? "已接通"
: "未接通"
}}
</template>
</el-table-column>
<el-table-column
label="反馈意见"
align="center"
prop="fillBlanksAnswer"
width="150"
/>
<el-table-column
label="就诊时间"
align="center"
prop="visitDate"
width="150"
/>
<el-table-column
label="执行时间"
align="center"
prop="nodePlanTime"
width="150"
/>
<el-table-column label="调查结果" align="center" prop="contentedFlag" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="150"
>
<template slot-scope="scope">
<el-button
v-if="
((scope.row.phoneDialMethod == 'AI' &&
scope.row.nodeExecuteStatus == 'EXECUTED') ||
(scope.row.phoneDialMethod == 'COMMON' &&
scope.row.nodeExecuteStatus == 'EXECUTED')) &&
scope.row.phoneNodeExecuteResultStatus == 'SUCCESS'
"
size="mini"
type="text"
@click="playback(scope.row)"
icon="el-icon-headset"
>回放</el-button
>
<el-button
v-if="
scope.row.nodeExecuteStatus == 'EXECUTED' &&
scope.row.taskNodeType == 'QUESTIONNAIRE_SCALE'
"
size="mini"
type="text"
icon="el-icon-notebook-2"
@click="questionlook(scope.row)"
>问卷查看</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
<myPagination
v-show="total > 0"
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
<el-dialog title="问卷查看" :visible.sync="questionshow" width="40%">
<div class="bottomheaderdata">
<div class="right">
<div
class="title"
v-if="questiondata.totalScore || questiondata.totalScore == 0"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
总分{{ questiondata.totalScore }}
</div>
<div
class="words"
v-for="(item, index) in questiondata.subjectResultList"
:key="index"
>
{{ index + 1 }}.{{ item.questionName }}
<span v-if="item.questionType == 'MULTIPLE_CHOICE'"
>单选题</span
>
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'"
>多选题</span
>
<span v-if="item.questionType == 'SCORING_QUESTIONS'"
>打分题</span
>
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'"
>组合单选题</span
>
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"
>组合多选题</span
>
<span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
>组合填空题</span
>
<span v-if="item.questionType == 'FILL_IN_THE_BLANKS'"
>填空题</span
>
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'"
>组合打分题</span
>
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
>日期填空题</span
>
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
>时间填空题</span
>
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'"
>反馈填空题</span
>
<el-radio-group
v-if="
item.questionType == 'MULTIPLE_CHOICE' ||
item.questionType == 'COMBINATION_RADIO_SUBJECT' ||
item.questionType == 'SCORING_QUESTIONS' ||
item.questionType == 'COMBINATION_SCORING_SUBJECT'
"
v-model="item.checked"
class="custom-radio-group"
@change="radioGroupChange($event, item)"
>
<el-radio
disabled
class="custom"
v-for="(aitem, aindex) in item.optionResults"
:key="aindex"
:label="aitem.id"
@change="radioChange($event, aitem, index)"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
{{ aitem.optionName }}
</el-radio>
</el-radio-group>
<el-checkbox-group
v-model="checkeddata"
@change="radioGroupChange($event, item, 'checkbox')"
v-if="
item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' ||
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'
"
>
<el-checkbox
disabled
v-for="(aitem, aindex) in item.optionResults"
:key="aindex"
:label="aitem.id"
@change="radioChangecheck($event, aitem, index, aindex)"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
{{ aitem.optionName }}
</el-checkbox>
</el-checkbox-group>
2024-12-20 17:32:46 +08:00
<div
2024-12-23 17:56:27 +08:00
v-if="
item.questionType == 'FILL_IN_THE_BLANKS' ||
item.questionType == 'COMBINATION_BLANKS_SUBJECT' ||
item.questionType == 'FEEDBACK_BLANKS_SUBJECT'
"
class="tk"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
<el-input
disabled
v-model="item.fillBlanksAnswer"
placeholder="请输入答案"
type="textarea"
/>
</div>
<div
v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
style="margin: 20px 0 10px 30px"
>
<el-date-picker
disabled
@change="timepicker($event, index)"
clearable
v-model="item.fillBlanksAnswer"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-date-picker>
</div>
<div
style="margin: 20px 0 10px 30px"
v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
>
<el-time-select
disabled
@change="timepickerselect($event, index)"
clearable
v-model="item.fillBlanksAnswer"
:picker-options="{
start: '08:30',
step: '00:30',
end: '23:30',
}"
placeholder="选择时间"
2024-12-20 17:32:46 +08:00
>
2024-12-23 17:56:27 +08:00
</el-time-select>
2024-12-20 17:32:46 +08:00
</div>
</div>
</div>
2024-12-23 17:56:27 +08:00
</div>
</el-dialog>
<el-dialog
title="回放"
:visible.sync="audioshow"
width="800px"
:before-close="audiohandleClose"
>
<div class="audio">
<div style="display: flex">
<span class="name">姓名:{{ patientName }}</span>
<audio ref="audioPlayer" :src="audiourl" controls></audio>
</div>
<div v-for="(item, index) in formlist" :key="index">
<div class="imagelist" v-if="item.role == 'speech'">
<img src="@/assets/manage/chat.png" alt="" />
<div class="question">
<span class="questionname">问题</span>
<span class="content">{{ item.contextText }}</span>
2024-12-20 17:32:46 +08:00
</div>
2024-12-23 17:56:27 +08:00
</div>
<div class="imagelistright" v-if="item.role == 'voice'">
<div class="question">
<span class="questionname">{{ item.contextText }}</span>
2024-12-20 17:32:46 +08:00
</div>
2024-12-23 17:56:27 +08:00
<img src="@/assets/manage/solution.png" alt="" />
2024-12-20 17:32:46 +08:00
</div>
</div>
2024-12-23 17:56:27 +08:00
</div>
</el-dialog>
</div>
</template>
2024-12-20 17:32:46 +08:00
<script>
2024-12-23 17:56:27 +08:00
import { questionnaireTaskOptionList, selectQuestionInfoList } from "@/api/manage/Satisfactionsurvey"
import SearchFilter from "../../components/SearchForm.vue";
import { getAgencyList, selectAgencyList, } from "@/api/manage/selectAgencyList";
import { selectPatientQuestionSubmit } from "@/api/system/taskExecuteRecord";
import {
getPhoneDialVideo,
} from "@/api/system/followup";
import sn from "@/views/manage/components/sn";
2024-12-20 17:32:46 +08:00
2024-12-23 17:56:27 +08:00
export default {
name: "visitout",
components: { SearchFilter, sn },
data() {
return {
maxTableHeight: undefined,
// 通话状态
SUCCESSlist: [
2024-12-20 17:32:46 +08:00
{
2024-12-23 17:56:27 +08:00
value: "SUCCESS",
label: "已接通",
2024-12-20 17:32:46 +08:00
},
2024-12-23 17:56:27 +08:00
{
value: "FAILURE",
label: "未接通",
2024-12-20 17:32:46 +08:00
},
2024-12-23 17:56:27 +08:00
],
// 节点任务执行状态
nodeExecutList: [
{
value: "EXECUTED",
label: "已执行",
},
{
value: "UNEXECUTED",
label: "未执行",
},
],
// 任务类型
taskExcuteTypelist: [
{
value: "BATCH_TASK",
label: "批量任务",
},
{
value: "ACTUAL_TIME_TASK",
label: "单通电话",
},
],
// 调查结果
contentedFlaglist: [
{
value: "CONTENTED",
label: "满意",
},
{
value: "DISCONTENTED",
label: "不满意",
},
],
//播放回放
audiourl: undefined,
audioshow: false,
whshow: null,
AItrue: null,
COMMONtrue: null,
foldshow: null,
totalScoredata: 0,
questiondata: {
totalScore: 0, //总分
routeHandlePerson: null,
routeHandleId: null,
},
// 问卷弹框
questionshow: false,
checkeddata: [],
formlist: [],
patientName: null,
// 问卷名称
questionnaireList: [],
//医院list
hospitalAgencylist: [],
// 院区list
campusAgencylist: [],
//科室list
departmentlist: [],
//病区list
wardlist: [],
//导入
fileList: [],
// 遮罩层
loading: true,
// 选中数组
ids: [],
patientVisitRecordId: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 表格数据
patientInfoList: [],
// 弹出层标题
// 是否显示弹出层
uploadopen: false,
// 查询参数
dischargeTime: [],// 初始化为默认日期范围
queryParams: {
pageNum: 1,
pageSize: 10,
startTime: null,
endTime: null,
questionnaireName: null,
taskNodeType: null,
patientName: null,
patientPhone: null,
hospitalAgencyId: null,
departmentId: null,
nodeExecuteStatus: '',
taskExcuteType: null,
contentedFlag: null,
phoneNodeExecuteResultStatus: null,
sn: null,
questionInfoId: null,
questionSubjectOptionId: null,
optionChooseSign: null,
},
show: false,
options: [{
value: 'PHONE_OUTBOUND',
label: '电话外呼'
}, {
value: 'QUESTIONNAIRE_SCALE',
label: '问卷量表'
}],
// 表单参数
form: {},
// 表单校验
rules: {},
};
},
created() {
this.queryParams.questionInfoId = this.$route.query.questionInfoId
this.queryParams.questionSubjectOptionId = this.$route.query.questionSubjectOptionId
this.queryParams.optionChooseSign = this.$route.query.optionChooseSign
this.selectAgencyinfo();
this.getDefaultDateRange()
this.getQuestion();
this.getList();
},
mounted() {
this.getMaxTableHeight();
this.screenChange();
},
methods: {
updateCPage(index, size) {
this.queryParams.pageNum = index;
this.queryParams.pageSize = size;
2024-12-20 17:32:46 +08:00
this.getList();
},
2024-12-23 17:56:27 +08:00
// 回放关闭
audiohandleClose() {
this.$refs.audioPlayer.pause();
this.audioshow = false;
this.audiourl = null;
2024-12-20 17:32:46 +08:00
},
2024-12-23 17:56:27 +08:00
// 回放点击事件
async playback(row) {
console.log(row, 'row')
this.patientName = row.patientName
// await this.$confirm("是否确认回放?", "提示", {
// confirmButtonText: "确认",
// cancelButtonText: "取消",
// type: "warning",
// }).then(() => {
getPhoneDialVideo(row.manageRouteNodeId).then((res) => {
console.log(res, "res");
this.audioshow = true;
this.audiourl = process.env.VUE_APP_BASE_API + res.data.phoneDialRecordVideo;
this.formlist = res.data.record;
setTimeout(() => {
this.$refs.audioPlayer.load(); // 重新加载音频,以确保每次播放都是新的音频文件
// this.$refs.audioPlayer.play();
// }, 1000);
2024-12-20 17:32:46 +08:00
});
2024-12-23 17:56:27 +08:00
});
},
// 问卷查看
async questionlook(row) {
// this.totalScoredata=0,
await selectPatientQuestionSubmit(row.taskExecuteRecordId).then((res) => {
this.questiondata = res.data;
console.log(this.questiondata, ' this.questiondata')
this.questiondata.subjectResultList.forEach((e) => {
// if(e.whetherScore==1){
// e.optionResults.forEach((el) => {
// if(el.optionChooseSign=="0"){
// this.totalScoredata += el.optionScore
// }
// })
2024-12-20 17:32:46 +08:00
// }
2024-12-23 17:56:27 +08:00
e.optionResults.forEach((el) => {
if (
(el.optionChooseSign == "0" &&
e.questionType == "MULTIPLE_CHOICE") ||
e.questionType == "COMBINATION_RADIO_SUBJECT"
) {
e.checked = el.id;
} else if (
el.optionChooseSign == "0" &&
e.questionType == "MULTIPLE_CHOICE_QUESTIONS"
) {
this.checkeddata.push(el.id);
} else if (
el.optionChooseSign == "0" &&
e.questionType == "SCORING_QUESTIONS"
) {
e.checked = el.id;
} else if (
e.questionType == "COMBINATION_MULTIPLE_SUBJECT" &&
el.optionChooseSign == "0"
) {
this.checkeddata.push(el.id);
}
});
2024-12-20 17:32:46 +08:00
});
2024-12-23 17:56:27 +08:00
this.questionshow = true;
});
},
changeTime(e) {
this.show = false;
},
getDefaultDateRange() {
this.show = true;
const endDate = new Date(); // 今天的日期
const startDate = new Date();
startDate.setDate(endDate.getDate() - 6); // 往前倒退七天
console.log(startDate, endDate);
this.dischargeTime[0] = startDate;
this.dischargeTime[1] = endDate;
this.queryParams.startTime = this.formatDate(this.dischargeTime[0]);
this.queryParams.endTime = this.formatDate(this.dischargeTime[1]);
},
formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始需要加1
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
getQuestion() {
selectQuestionInfoList().then(response => {
this.questionnaireList = response
})
},
/** 查询患者信息列表 */
getList() {
this.loading = true;
questionnaireTaskOptionList(this.queryParams).then((response) => {
this.patientInfoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
if (this.dischargeTime?.length > 0) {
if (this.show == true) {
this.queryParams.startTime = this.formatDate(this.dischargeTime[0]);
this.queryParams.endTime = this.formatDate(this.dischargeTime[1]);
} else if (this.show == false) {
this.queryParams.startTime = this.dischargeTime[0];
this.queryParams.endTime = this.dischargeTime[1];
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
}
else {
this.queryParams.startTime = null;
this.queryParams.endTime = null;
}
this.queryParams.pageNum = 1;
this.query = this.queryParams
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
questionInfoId: this.$route.query.questionInfoId,
questionSubjectOptionId: this.$route.query.questionSubjectOptionId,
optionChooseSign: this.$route.query.optionChooseSign,
};
this.dischargeTime = [];
this.queryParams.startTime = "";
this.queryParams.endTime = "";
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.patientVisitRecordIds = selection.map(
(item) => item.patientVisitRecordId
);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
//清空科室
cleardepartment() {
this.queryParams.wardId = null;
if (this.queryParams.departmentId) {
this.getAgencyListinfo("DEPARTMENT", this.queryParams.departmentId);
} else if (this.queryParams.campusAgencyId) {
this.getAgencyListinfo("CAMPUS", this.queryParams.campusAgencyId);
} else if (this.queryParams.hospitalAgencyId) {
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
}
},
//选中科室获取病区
changedepartment(id) {
this.getAgencyListinfo("DEPARTMENT", id);
// let query = {
// nodeType: 'WARD',
// parentDepartmentId: id,
// }
// getDepartmentList(query).then(res => {
// this.wardlist = res.data
this.queryParams.wardId = null;
// })
},
//选中医院获取院区
changehospitalAgency(id) {
this.getAgencyListinfo("HOSPITAL", id);
this.queryParams.departmentId = null;
// })
},
//清空医院
clearhospitalAgency() {
this.queryParams.departmentId = null;
setTimeout(() => {
this.attendingPhysicianlist = [];
}, 1000);
},
//获取下级单位
getAgencyListinfo(nodeType, id) {
let query = {
nodeType: nodeType,
};
if (nodeType == "HOSPITAL") {
query.hospitalId = id;
} else if (nodeType == "CAMPUS") {
query.campusId = id;
} else if (nodeType == "DEPARTMENT") {
query.departmentId = id;
}
getAgencyList(query).then((res) => {
2024-12-20 17:32:46 +08:00
if (nodeType == "HOSPITAL") {
2024-12-23 17:56:27 +08:00
this.campusAgencylist = res.data.campusList;
this.departmentlist = res.data.departmentList;
2024-12-20 17:32:46 +08:00
} else if (nodeType == "CAMPUS") {
2024-12-23 17:56:27 +08:00
this.departmentlist = res.data.departmentList;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
this.wardlist = res.data.wardList;
});
},
selectAgencyinfo() {
let query = {
agencyStatus: "ON",
nodeType: "HOSPITAL",
};
selectAgencyList(query).then((res) => {
this.hospitalAgencylist = res.data;
if (this.hospitalAgencylist.length == 1) {
this.queryParams.hospitalAgencyId = this.hospitalAgencylist[0].id
this.getAgencyListinfo("HOSPITAL", this.hospitalAgencylist[0].id);
}
});
},
//批次
messageontemplateword(item) {
console.log(item, 'sn');
this.queryParams.sn = item.sn;
},
// 详情
handdatile(row) {
},
// 获取表格最高高度
getMaxTableHeight() {
const windowInnerHeight = window.innerHeight; // 屏幕可视高度
const layoutDiv = this.$refs.layout;
const formDiv = this.$refs.topform;
const mb8Div = this.$refs.mb8;
this.maxTableHeight =
windowInnerHeight -
134 -
this.getBoxPadding(layoutDiv) -
this.getBoxHeight(mb8Div) -
this.getBoxHeight(formDiv);
},
// 屏幕resize监听
screenChange() {
// 屏幕resize监听事件一旦屏幕宽高发生变化就会执行resize
window.addEventListener("resize", this.getMaxTableHeight, true);
// 将屏幕监听事件移除
// 这步是必须的。离开页面时不移除,再返回,或者进入到别的有相同元素的页面会报错
// 或者将这里的方法直接写在beforeDestroy函数中也可以
this.$once("hook:beforeDestroy", () => {
window.removeEventListener("resize", this.getMaxTableHeight, true);
});
2024-12-20 17:32:46 +08:00
},
2024-12-23 17:56:27 +08:00
},
};
2024-12-20 17:32:46 +08:00
</script>
<style lang="scss" scoped>
2024-12-23 17:56:27 +08:00
::v-deep .el-input.is-disabled .el-input__inner {
background-color: #fff !important;
color: black !important;
}
::v-deep .el-textarea.is-disabled .el-textarea__inner {
background-color: #fff !important;
color: black !important;
}
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
border: 1px solid #dcdfe6 !important;
border-color: #1890ff !important;
}
::v-deep .el-checkbox__input.is-disabled + span.el-checkbox__label {
color: black !important;
}
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
border-color: #1890ff !important;
}
::v-deep .el-checkbox__input.is-disabled .el-checkbox__inner {
background-color: #fff !important;
}
::v-deep .el-radio__input.is-disabled .el-radio__inner {
border: 1px solid #dcdfe6 !important;
background-color: #fff !important;
}
::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner {
border-color: #1890ff !important;
}
::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner::after {
color: #1890ff !important;
background-color: #1890ff !important;
}
::v-deep .el-radio__input.is-disabled + span.el-radio__label {
color: black !important;
}
.titlenew {
font-size: 16px;
font-weight: 600;
height: 60px;
margin-left: 20px;
}
::v-deep .el-table__fixed-right::before {
height: 0px !important;
}
.bottomheaderdata {
width: 99%;
background-color: #fff;
margin: 0 auto;
.title {
line-height: 40px;
font-size: 20px;
margin: 0 10px;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
.words {
font-size: 15px;
padding: 10px 50px 10px 10px;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
}
.audio {
margin: 10px 0px 10px 0;
.name {
display: inline-block;
margin: 20px;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
.imagelist {
padding-top: 10px;
display: flex;
img {
width: 40px;
height: 40px;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
.question {
// width: 1000px;
// height: 30px;
padding-left: 10px;
padding-right: 10px;
background: #fafbff;
box-shadow: 5px 5px 10px #dbe5f4;
border-radius: 5px;
line-height: 30px;
margin-top: 5px;
margin-left: 5px;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
.questionname {
color: #559ca6;
padding-left: 10px;
font-weight: 600;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
.content {
color: #939394;
2024-12-20 17:32:46 +08:00
}
}
2024-12-23 17:56:27 +08:00
.imagelistright {
padding-top: 10px;
2024-12-20 17:32:46 +08:00
display: flex;
2024-12-23 17:56:27 +08:00
// float: right;
justify-content: flex-end;
align-items: center;
img {
width: 40px;
height: 40px;
margin-left: 5px;
}
.question {
// width: 200px;
// height: 30px;
padding-left: 10px;
padding-right: 10px;
background: #51b9ff;
box-shadow: 5px 5px 10px #dbe5f4;
border-radius: 5px;
line-height: 30px;
margin-top: 5px;
margin-left: 5px;
color: #fff;
text-align: center;
}
// .questionname {
// color: #5da0aa;
// padding-left: 10px;
// }
.content {
color: #dcdfe6;
}
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
}
audio {
width: 350px;
}
.tk {
::v-deep .el-textarea__inner {
margin: 20px 0 10px 30px;
2024-12-20 17:32:46 +08:00
}
2024-12-23 17:56:27 +08:00
}
::v-deep .el-radio {
padding: 10px;
}
::v-deep .el-checkbox-group {
display: flex;
flex-direction: column;
padding: 10px 0px 10px 24px;
}
::v-deep .el-checkbox {
padding: 10px 0 10px 0px;
// padding: 10px;
}
.custom-radio-group {
display: flex;
flex-direction: column;
padding: 10px 0 10px 10px;
.custom {
2024-12-20 17:32:46 +08:00
padding: 10px 0 10px 10px;
}
2024-12-23 17:56:27 +08:00
}
.custom-radio-group {
display: flex;
flex-direction: column;
padding: 10px 0 10px 10px;
.custom {
2024-12-20 17:32:46 +08:00
padding: 10px 0 10px 10px;
}
2024-12-23 17:56:27 +08:00
}
</style>
2024-12-20 17:32:46 +08:00