问卷得分隐藏

This commit is contained in:
coderxqt 2025-12-23 14:38:18 +08:00
parent 716e2c4d1f
commit 645854a4f1
5 changed files with 2199 additions and 1888 deletions

View File

@ -5,10 +5,11 @@ VUE_APP_TITLE = 新医路院后患者管理平台
ENV = 'development' ENV = 'development'
# 新医路院后患者管理平台/开发环境 # 新医路院后患者管理平台/开发环境
VUE_APP_BASE_API = 'http://192.168.20.37:19090' # VUE_APP_BASE_API = 'http://192.168.20.37:19090'
# VUE_APP_BASE_API = 'http://8.131.93.145:54011' # VUE_APP_BASE_API = 'http://8.131.93.145:54011'
# VUE_APP_BASE_API = 'http://192.168.0.95:9090' # VUE_APP_BASE_API = 'http://192.168.0.95:9090'
# VUE_APP_BASE_API = 'https://1608.xinelu.cn' # VUE_APP_BASE_API = 'https://1608.xinelu.cn'
VUE_APP_BASE_API = 'http://192.168.124.7:19090'
# 路由懒加载 # 路由懒加载

View File

@ -5,8 +5,9 @@ VUE_APP_TITLE = 新医路院后患者管理平台
ENV = 'production' ENV = 'production'
# 新医路院后患者管理平台/生产环境 # 新医路院后患者管理平台/生产环境
VUE_APP_BASE_API = 'http://192.168.20.37:19090' # VUE_APP_BASE_API = 'http://192.168.20.37:19090'
# VUE_APP_BASE_API = 'http://8.131.93.145:54011' # VUE_APP_BASE_API = 'http://8.131.93.145:54011'
# VUE_APP_BASE_API = 'http://192.168.0.95:9090' # VUE_APP_BASE_API = 'http://192.168.0.95:9090'
# VUE_APP_BASE_API = 'https://1608.xinelu.cn' # VUE_APP_BASE_API = 'https://1608.xinelu.cn'
VUE_APP_BASE_API = 'http://192.168.124.7:19090'

View File

@ -7,7 +7,8 @@ NODE_ENV = production
ENV = 'staging' ENV = 'staging'
# 新医路院后患者管理平台/测试环境 # 新医路院后患者管理平台/测试环境
VUE_APP_BASE_API = 'http://192.168.20.37:19090' # VUE_APP_BASE_API = 'http://192.168.20.37:19090'
# VUE_APP_BASE_API = 'http://8.131.93.145:54011' # VUE_APP_BASE_API = 'http://8.131.93.145:54011'
# VUE_APP_BASE_API = 'http://192.168.0.95:9090' # VUE_APP_BASE_API = 'http://192.168.0.95:9090'
# VUE_APP_BASE_API = 'https://1608.xinelu.cn' # VUE_APP_BASE_API = 'https://1608.xinelu.cn'
VUE_APP_BASE_API = 'http://192.168.124.7:19090'

View File

@ -1,95 +1,255 @@
<template> <template>
<div class="app-container" ref="layout"> <div class="app-container" ref="layout">
<div ref="topform" class="form"> <div ref="topform" class="form">
<SearchFilter labelWidth="100px" :labelWidths="310" size="small" @search="handleQuery" @reset="resetQuery" <SearchFilter
@minShowCtrol="getMaxTableHeight" :query="queryParams" v-show="showSearch"> labelWidth="100px"
:labelWidths="310"
size="small"
@search="handleQuery"
@reset="resetQuery"
@minShowCtrol="getMaxTableHeight"
:query="queryParams"
v-show="showSearch"
>
<el-form-item label="批次" prop="sn"> <el-form-item label="批次" prop="sn">
<span> <span>
<sn @on-template="messageontemplateword" :templateId="queryParams.sn"></sn> <sn
@on-template="messageontemplateword"
:templateId="queryParams.sn"
></sn>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="外呼时间" prop="startTime"> <el-form-item label="外呼时间" prop="startTime">
<el-date-picker v-model="dischargeTime" type="daterange" range-separator="" start-placeholder="开始日期" <el-date-picker
style="width: 220px" value-format="yyyy-MM-dd" end-placeholder="结束日期" @change="changeTime"> 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-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="患者电话" prop="patientPhone"> <el-form-item label="患者电话" prop="patientPhone">
<el-input v-model="queryParams.patientPhone" placeholder="请输入患者电话" clearable @keyup.enter.native="handleQuery" <el-input
style="width: 220px" /> v-model="queryParams.patientPhone"
placeholder="请输入患者电话"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item> </el-form-item>
<el-form-item label="患者姓名" prop="patientName"> <el-form-item label="患者姓名" prop="patientName">
<el-input v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable @keyup.enter.native="handleQuery" <el-input
style="width: 220px" /> v-model="queryParams.patientName"
placeholder="请输入患者姓名"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item> </el-form-item>
<el-form-item label="问卷名称" prop="questionnaireName"> <el-form-item label="问卷名称" prop="questionnaireName">
<el-select v-model="queryParams.questionInfoId" placeholder="请选择问卷名称" clearable style="width: 220px"> <el-select
<el-option v-for="item in questionnaireList" :key="item.id" :label="item.questionnaireName" v-model="queryParams.questionInfoId"
:value="item.id"> placeholder="请选择问卷名称"
clearable
style="width: 220px"
>
<el-option
v-for="item in questionnaireList"
:key="item.id"
:label="item.questionnaireName"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务节点类型" prop="taskNodeType"> <el-form-item label="任务节点类型" prop="taskNodeType">
<el-select v-model="queryParams.taskNodeType" placeholder="请选择任务节点类型" clearable style="width: 220px"> <el-select
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> 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"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId"> <el-form-item label="医院" prop="hospitalAgencyId">
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width: 220px" <el-select
clearable @clear="clearhospitalAgency" @change="changehospitalAgency"> v-model="queryParams.hospitalAgencyId"
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id"> 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"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="科室" prop="departmentId"> <el-form-item label="科室" prop="departmentId">
<el-select v-model="queryParams.departmentId" filterable placeholder="请选择科室" style="width: 220px" clearable <el-select
@clear="cleardepartment" @change="changedepartment"> v-model="queryParams.departmentId"
<el-option v-for="item in departmentlist" :key="item.id" :label="item.departmentName" :value="item.id"> 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"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务执行状态" prop="nodeExecuteStatus"> <el-form-item label="任务执行状态" prop="nodeExecuteStatus">
<el-select v-model="queryParams.nodeExecuteStatus" placeholder="请选择任务执行状态" clearable style="width: 220px"> <el-select
<el-option v-for="item in nodeExecutList" :key="item.value" :label="item.label" :value="item.value"> 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"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务执行类型" prop="taskExcuteType"> <el-form-item label="任务执行类型" prop="taskExcuteType">
<el-select v-model="queryParams.taskExcuteType" placeholder="请选择任务执行类型" clearable style="width: 220px"> <el-select
<el-option v-for="item in taskExcuteTypelist" :key="item.value" :label="item.label" :value="item.value"> 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"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="调查结果" prop="contentedFlag"> <el-form-item label="调查结果" prop="contentedFlag">
<el-select v-model="queryParams.contentedFlag" placeholder="请选择调查结果" clearable style="width: 220px"> <el-select
<el-option v-for="item in contentedFlaglist" :key="item.value" :label="item.label" :value="item.value"> 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"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="通话状态" prop="phoneNodeExecuteResultStatus"> <el-form-item label="通话状态" prop="phoneNodeExecuteResultStatus">
<el-select v-model="queryParams.phoneNodeExecuteResultStatus" placeholder="请选择通话状态" clearable <el-select
style="width: 220px"> v-model="queryParams.phoneNodeExecuteResultStatus"
<el-option v-for="item in SUCCESSlist" :key="item.value" :label="item.label" :value="item.value"> placeholder="请选择通话状态"
clearable
style="width: 220px"
>
<el-option
v-for="item in SUCCESSlist"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</SearchFilter> </SearchFilter>
</div> </div>
<div ref="table"> <div ref="table">
<el-table :max-height="maxTableHeight" v-loading="loading" :data="patientInfoList" <el-table
@selection-change="handleSelectionChange"> :max-height="maxTableHeight"
v-loading="loading"
:data="patientInfoList"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" /> --> <!-- <el-table-column type="selection" width="55" /> -->
<el-table-column label="序号" type="index" width="48" align="center" /> <el-table-column label="序号" type="index" width="48" align="center" />
<el-table-column label="流水号" align="center" prop="sn" width="150" /> <el-table-column label="流水号" align="center" prop="sn" width="150" />
<el-table-column label="患者姓名" align="center" prop="patientName" width="120" /> <el-table-column
<el-table-column label="患者电话" align="center" prop="patientPhone" width="120" /> label="患者姓名"
<el-table-column label="执行时间" align="center" prop="nodePlanTime" width="120" /> align="center"
<el-table-column label="路径名称" align="center" prop="manageRouteName" width="120" /> prop="patientName"
<el-table-column label="问卷模板名称" align="center" prop="questionnaireName" width="120" /> width="120"
<el-table-column label="话术名称" align="center" prop="scriptTemplateName" width="120" /> />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width="120" /> <el-table-column
<el-table-column label="科室名称" align="center" prop="departmentName" width="120" /> label="患者电话"
<el-table-column label="执行状态" align="center" prop="nodeExecuteStatus" width="120"> align="center"
prop="patientPhone"
width="120"
/>
<el-table-column
label="执行时间"
align="center"
prop="nodePlanTime"
width="120"
/>
<el-table-column
label="路径名称"
align="center"
prop="manageRouteName"
width="120"
/>
<el-table-column
label="问卷模板名称"
align="center"
prop="questionnaireName"
width="120"
/>
<el-table-column
label="话术名称"
align="center"
prop="scriptTemplateName"
width="120"
/>
<el-table-column
label="医院"
align="center"
prop="hospitalAgencyName"
width="120"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
width="120"
/>
<el-table-column
label="执行状态"
align="center"
prop="nodeExecuteStatus"
width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color: #67c23a"> <span style="color: #67c23a">
{{ scope.row.nodeExecuteStatus == "EXECUTED" ? "已执行" : "" }} {{ scope.row.nodeExecuteStatus == "EXECUTED" ? "已执行" : "" }}
@ -99,101 +259,221 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="通话状态" align="center" prop="phoneNodeExecuteResultStatus" width="120"> <el-table-column
label="通话状态"
align="center"
prop="phoneNodeExecuteResultStatus"
width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color: #67c23a" v-if="scope.row.phoneNodeExecuteResultStatus == 'SUCCESS'"> <span
style="color: #67c23a"
v-if="scope.row.phoneNodeExecuteResultStatus == 'SUCCESS'"
>
已接通 已接通
</span> </span>
<span style="color: #f56c6c" v-else> <span style="color: #f56c6c" v-else> 未接通 </span>
未接通
</span>
<!-- {{scope.row.phoneNodeExecuteResultStatus == "SUCCESS" ? "已接通" : "未接通"}} --> <!-- {{scope.row.phoneNodeExecuteResultStatus == "SUCCESS" ? "已接通" : "未接通"}} -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="反馈意见" align="center" prop="fillBlanksAnswer" width="150" <el-table-column
:show-overflow-tooltip="true" /> label="反馈意见"
align="center"
prop="fillBlanksAnswer"
width="150"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="就诊时间" align="center" prop="visitDate" width="150" /> --> <!-- <el-table-column label="就诊时间" align="center" prop="visitDate" width="150" /> -->
<el-table-column label="调查结果" align="center" prop="contentedFlag" /> <el-table-column label="调查结果" align="center" prop="contentedFlag" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-if=" v-if="
((scope.row.phoneDialMethod == 'AI' && scope.row.nodeExecuteStatus == 'EXECUTED') || (scope.row.phoneDialMethod == 'COMMON' && scope.row.nodeExecuteStatus == 'EXECUTED')) && scope.row.phoneNodeExecuteResultStatus == 'SUCCESS'" ((scope.row.phoneDialMethod == 'AI' &&
size="mini" type="text" @click="playback(scope.row)" icon="el-icon-headset">回放</el-button> 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 <el-button
v-if="scope.row.nodeExecuteStatus == 'EXECUTED' && scope.row.taskNodeType == 'QUESTIONNAIRE_SCALE'" v-if="
size="mini" type="text" icon="el-icon-notebook-2" @click="questionlook(scope.row)">问卷查看</el-button> 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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" /> --> :limit.sync="queryParams.pageSize" @pagination="getList" /> -->
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize" <myPagination
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination> v-show="total > 0"
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
<el-dialog title="问卷查看" :visible.sync="questionshow" width="40%"> <el-dialog title="问卷查看" :visible.sync="questionshow" width="40%">
<div class="bottomheaderdata"> <div class="bottomheaderdata">
<div class="right"> <div class="right">
<div class="title" v-if="questiondata.totalScore || questiondata.totalScore == 0"> <!-- <div class="title" v-if="questiondata.totalScore || questiondata.totalScore == 0">
总分{{ questiondata.totalScore }} 总分{{ questiondata.totalScore }}
</div> </div> -->
<div class="words" v-for="(item, index) in questiondata.subjectResultList" :key="index"> <div
class="words"
v-for="(item, index) in questiondata.subjectResultList"
:key="index"
>
{{ index + 1 }}.{{ item.questionName }} {{ index + 1 }}.{{ item.questionName }}
<span v-if="item.questionType == 'MULTIPLE_CHOICE'">单选题</span> <span v-if="item.questionType == 'MULTIPLE_CHOICE'"
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'">多选题</span> >单选题</span
<span v-if="item.questionType == 'SCORING_QUESTIONS'">打分题</span> >
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'">组合单选题</span> <span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'"
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'">组合多选题</span> >多选题</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 == 'SCORING_QUESTIONS'"
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'">组合打分题</span> >打分题</span
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'">日期填空题</span> >
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">时间填空题</span> <span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'"
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'">反馈填空题</span> >组合单选题</span
<el-radio-group v-if=" >
item.questionType == 'MULTIPLE_CHOICE' || <span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"
item.questionType == 'COMBINATION_RADIO_SUBJECT' || >组合多选题</span
item.questionType == 'SCORING_QUESTIONS' || >
item.questionType == 'COMBINATION_SCORING_SUBJECT'" v-model="item.checked" class="custom-radio-group" <span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
@change="radioGroupChange($event, item)"> >组合填空题</span
<el-radio disabled class="custom" v-for="(aitem, aindex) in item.optionResults" :key="aindex" >
:label="aitem.id" @change="radioChange($event, aitem, index)"> <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)"
>
{{ aitem.optionName }} {{ aitem.optionName }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
<el-checkbox-group v-model="checkeddata" @change="radioGroupChange($event, item, 'checkbox')" v-if=" <el-checkbox-group
item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || v-model="checkeddata"
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"> @change="radioGroupChange($event, item, 'checkbox')"
<el-checkbox disabled v-for="(aitem, aindex) in item.optionResults" :key="aindex" :label="aitem.id" v-if="
@change="radioChangecheck($event, aitem, index, aindex)"> 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)"
>
{{ aitem.optionName }} {{ aitem.optionName }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
<div v-if=" <div
item.questionType == 'FILL_IN_THE_BLANKS' || v-if="
item.questionType == 'COMBINATION_BLANKS_SUBJECT' || item.questionType == 'FILL_IN_THE_BLANKS' ||
item.questionType == 'FEEDBACK_BLANKS_SUBJECT'" class="tk"> item.questionType == 'COMBINATION_BLANKS_SUBJECT' ||
<el-input disabled v-model="item.fillBlanksAnswer" placeholder="请输入答案" type="textarea" /> item.questionType == 'FEEDBACK_BLANKS_SUBJECT'
"
class="tk"
>
<el-input
disabled
v-model="item.fillBlanksAnswer"
placeholder="请输入答案"
type="textarea"
/>
</div> </div>
<div v-if="item.questionType == 'DATE_BLANKS_SUBJECT'" style="margin: 20px 0 10px 30px"> <div
<el-date-picker disabled @change="timepicker($event, index)" clearable v-model="item.fillBlanksAnswer" v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> 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="选择日期"
>
</el-date-picker> </el-date-picker>
</div> </div>
<div style="margin: 20px 0 10px 30px" v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"> <div
<el-time-select disabled @change="timepickerselect($event, index)" clearable style="margin: 20px 0 10px 30px"
v-model="item.fillBlanksAnswer" :picker-options="{ 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', start: '08:30',
step: '00:30', step: '00:30',
end: '23:30', end: '23:30',
}" placeholder="选择时间"> }"
placeholder="选择时间"
>
</el-time-select> </el-time-select>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="回放" :visible.sync="audioshow" width="800px" :before-close="audiohandleClose"> <el-dialog
title="回放"
:visible.sync="audioshow"
width="800px"
:before-close="audiohandleClose"
>
<div class="audio"> <div class="audio">
<div style="display: flex"> <div style="display: flex">
<span class="name">姓名:{{ patientName }}</span> <span class="name">姓名:{{ patientName }}</span>
@ -220,13 +500,14 @@
</template> </template>
<script> <script>
import { uploadRobotPublishRecord, 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 { import {
getPhoneDialVideo, uploadRobotPublishRecord,
} from "@/api/system/followup"; 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 "../components/sn"; import sn from "../components/sn";
export default { export default {
name: "visitout", name: "visitout",
@ -244,7 +525,6 @@ export default {
value: "FAILURE", value: "FAILURE",
label: "未接通", label: "未接通",
}, },
], ],
// //
nodeExecutList: [ nodeExecutList: [
@ -267,7 +547,6 @@ export default {
value: "ACTUAL_TIME_TASK", value: "ACTUAL_TIME_TASK",
label: "单通电话", label: "单通电话",
}, },
], ],
// //
contentedFlaglist: [ contentedFlaglist: [
@ -279,7 +558,6 @@ export default {
value: "DISCONTENTED", value: "DISCONTENTED",
label: "不满意", label: "不满意",
}, },
], ],
// //
audiourl: undefined, audiourl: undefined,
@ -300,7 +578,6 @@ export default {
formlist: [], formlist: [],
patientName: null, patientName: null,
// //
questionnaireList: [], questionnaireList: [],
//list //list
@ -333,7 +610,7 @@ export default {
// //
uploadopen: false, uploadopen: false,
// //
dischargeTime: [],// dischargeTime: [], //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@ -346,7 +623,7 @@ export default {
hospitalAgencyId: null, hospitalAgencyId: null,
departmentId: null, departmentId: null,
questionInfoId: null, questionInfoId: null,
nodeExecuteStatus: '', nodeExecuteStatus: "",
taskExcuteType: null, taskExcuteType: null,
contentedFlag: null, contentedFlag: null,
phoneNodeExecuteResultStatus: null, phoneNodeExecuteResultStatus: null,
@ -354,13 +631,16 @@ export default {
}, },
show: false, show: false,
options: [{ options: [
value: 'PHONE_OUTBOUND', {
label: '电话外呼' value: "PHONE_OUTBOUND",
}, { label: "电话外呼",
value: 'QUESTIONNAIRE_SCALE', },
label: '问卷量表' {
}], value: "QUESTIONNAIRE_SCALE",
label: "问卷量表",
},
],
// //
form: {}, form: {},
// //
@ -369,12 +649,10 @@ export default {
}, },
created() { created() {
this.selectAgencyinfo(); this.selectAgencyinfo();
this.getDefaultDateRange() this.getDefaultDateRange();
this.getList(); this.getList();
this.getQuestion(); this.getQuestion();
console.log(this.queryParams, 'queryParams11111111') console.log(this.queryParams, "queryParams11111111");
}, },
mounted() { mounted() {
this.getMaxTableHeight(); this.getMaxTableHeight();
@ -394,8 +672,8 @@ export default {
}, },
// //
async playback(row) { async playback(row) {
console.log(row, 'row') console.log(row, "row");
this.patientName = row.patientName this.patientName = row.patientName;
// await this.$confirm("?", "", { // await this.$confirm("?", "", {
// confirmButtonText: "", // confirmButtonText: "",
// cancelButtonText: "", // cancelButtonText: "",
@ -404,7 +682,8 @@ export default {
getPhoneDialVideo(row.manageRouteNodeId).then((res) => { getPhoneDialVideo(row.manageRouteNodeId).then((res) => {
console.log(res, "res"); console.log(res, "res");
this.audioshow = true; this.audioshow = true;
this.audiourl = process.env.VUE_APP_BASE_API + res.data.phoneDialRecordVideo; this.audiourl =
process.env.VUE_APP_BASE_API + res.data.phoneDialRecordVideo;
this.formlist = res.data.record; this.formlist = res.data.record;
setTimeout(() => { setTimeout(() => {
this.$refs.audioPlayer.load(); // this.$refs.audioPlayer.load(); //
@ -421,8 +700,8 @@ export default {
// e.optionResults.reverse() // e.optionResults.reverse()
// }); // });
this.questiondata = res.data this.questiondata = res.data;
console.log(this.questiondata, ' this.questiondata') console.log(this.questiondata, " this.questiondata");
this.questiondata.subjectResultList.forEach((e) => { this.questiondata.subjectResultList.forEach((e) => {
// if(e.whetherScore==1){ // if(e.whetherScore==1){
// e.optionResults.forEach((el) => { // e.optionResults.forEach((el) => {
@ -475,14 +754,14 @@ export default {
}, },
formatDate(date) { formatDate(date) {
const year = date.getFullYear(); const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 01 const month = String(date.getMonth() + 1).padStart(2, "0"); // 01
const day = String(date.getDate()).padStart(2, '0'); const day = String(date.getDate()).padStart(2, "0");
return `${year}-${month}-${day}`; return `${year}-${month}-${day}`;
}, },
getQuestion() { getQuestion() {
selectQuestionInfoList().then(response => { selectQuestionInfoList().then((response) => {
this.questionnaireList = response this.questionnaireList = response;
}) });
}, },
/** 查询患者信息列表 */ /** 查询患者信息列表 */
getList() { getList() {
@ -507,7 +786,6 @@ export default {
// } // }
// }) // })
this.patientInfoList = response.rows; this.patientInfoList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -519,20 +797,16 @@ export default {
if (this.show == true) { if (this.show == true) {
this.queryParams.startTime = this.formatDate(this.dischargeTime[0]); this.queryParams.startTime = this.formatDate(this.dischargeTime[0]);
this.queryParams.endTime = this.formatDate(this.dischargeTime[1]); this.queryParams.endTime = this.formatDate(this.dischargeTime[1]);
} else if (this.show == false) { } else if (this.show == false) {
this.queryParams.startTime = this.dischargeTime[0]; this.queryParams.startTime = this.dischargeTime[0];
this.queryParams.endTime = this.dischargeTime[1]; this.queryParams.endTime = this.dischargeTime[1];
} }
} else {
}
else {
this.queryParams.startTime = null; this.queryParams.startTime = null;
this.queryParams.endTime = null; this.queryParams.endTime = null;
} }
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.query = this.queryParams this.query = this.queryParams;
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
@ -584,7 +858,6 @@ export default {
this.getAgencyListinfo("HOSPITAL", id); this.getAgencyListinfo("HOSPITAL", id);
this.queryParams.departmentId = null; this.queryParams.departmentId = null;
// }) // })
}, },
// //
clearhospitalAgency() { clearhospitalAgency() {
@ -623,7 +896,7 @@ export default {
selectAgencyList(query).then((res) => { selectAgencyList(query).then((res) => {
this.hospitalAgencylist = res.data; this.hospitalAgencylist = res.data;
if (this.hospitalAgencylist.length == 1) { if (this.hospitalAgencylist.length == 1) {
this.queryParams.hospitalAgencyId = this.hospitalAgencylist[0].id this.queryParams.hospitalAgencyId = this.hospitalAgencylist[0].id;
this.getAgencyListinfo("HOSPITAL", this.hospitalAgencylist[0].id); this.getAgencyListinfo("HOSPITAL", this.hospitalAgencylist[0].id);
} }
}); });
@ -631,15 +904,12 @@ export default {
// //
messageontemplateword(item) { messageontemplateword(item) {
console.log(item, 'sn'); console.log(item, "sn");
this.queryParams.sn = item.sn; this.queryParams.sn = item.sn;
}, },
// //
handdatile(row) { handdatile(row) {},
},
// //
getMaxTableHeight() { getMaxTableHeight() {
const windowInnerHeight = window.innerHeight; // const windowInnerHeight = window.innerHeight; //
@ -683,7 +953,7 @@ export default {
border-color: #1890ff !important; border-color: #1890ff !important;
} }
::v-deep .el-checkbox__input.is-disabled+span.el-checkbox__label { ::v-deep .el-checkbox__input.is-disabled + span.el-checkbox__label {
color: black !important; color: black !important;
} }
@ -709,7 +979,7 @@ export default {
background-color: #1890ff !important; background-color: #1890ff !important;
} }
::v-deep .el-radio__input.is-disabled+span.el-radio__label { ::v-deep .el-radio__input.is-disabled + span.el-radio__label {
color: black !important; color: black !important;
} }
@ -746,7 +1016,7 @@ export default {
.name { .name {
display: inline-block; display: inline-block;
margin: 20px margin: 20px;
} }
.imagelist { .imagelist {
@ -856,7 +1126,6 @@ audio {
} }
} }
.custom-radio-group { .custom-radio-group {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

File diff suppressed because it is too large Load Diff