立即外呼

This commit is contained in:
2025-03-19 17:18:14 +08:00
parent 38d231e79e
commit d95de278b8
2 changed files with 125 additions and 23 deletions

View File

@ -8,19 +8,37 @@ export function patientInfoImportBatchlist(query) {
params: query params: query
}) })
} }
// 删除导入 // 删除导入
export function updateSn(sn) { export function updateSn(sn) {
return request({ return request({
url: `/manage/patientInfoimportmain/updateSn?sn=${sn}` , url: `/manage/patientInfoimportmain/updateSn?sn=${sn}`,
method: 'POST' method: 'POST'
}) })
} }
//删除导入明细
//删除导入明细
export function updatePatientInfoImport(data) { export function updatePatientInfoImport(data) {
return request({ return request({
url: `/manage/patientInfoimportmain/updatePatientInfoImport` , url: `/manage/patientInfoimportmain/updatePatientInfoImport`,
method: 'POST', method: 'POST',
data data
}) })
} }
// 查询最后一条信息
export function outboundConfirmation() {
return request({
url: '/manage/signroute/outboundConfirmation',
method: 'get',
})
}
// 确认按钮
export function directOutbound(data) {
return request({
url: `/manage/signroute/directOutbound`,
method: 'post',
data
})
}

View File

@ -37,12 +37,12 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:blacklist:remove']">删除</el-button> v-hasPermi="['manage:blacklist:remove']">删除</el-button>
</el-col> --> </el-col>
<!-- <el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['manage:blacklist:export']">导出</el-button> v-hasPermi="['manage:blacklist:export']">导出</el-button>
</el-col> --> </el-col>
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> --> </div> -->
<div ref="table"> <div ref="table">
@ -83,22 +83,69 @@
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize" <myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination> :indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
<el-dialog title="立即外呼" :visible.sync="open" width="500px" append-to-body> <el-dialog title="立即外呼" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="姓名" prop="patientName"> <el-form-item label="任务名称" prop="routeName">
<el-input v-model="form.patientName" placeholder="请输入姓名" /> <el-input v-model="form.routeName" placeholder="请输入任务名称" />
</el-form-item> </el-form-item>
<el-form-item label="身份证" prop="cardNo"> <el-descriptions title="上次外呼数据简介" />
<el-input v-model="form.cardNo" placeholder="请输入身份证" /> <el-form-item label="流水号" prop="sn">
<div class="formdiv">
{{ form.sn }}
</div>
</el-form-item> </el-form-item>
<el-form-item label="电话" prop="patientPhone"> <el-form-item label="任务节点类型" prop="taskNodeType">
<el-input v-model="form.patientPhone" placeholder="请输入电话" /> <div class="formdiv">
{{ form.taskNodeType == 'PHONE_OUTBOUND' ? '电话外呼' : '' }}
{{ form.taskNodeType == 'QUESTIONNAIRE_SCALE' ? '问卷量表' : '' }}
{{ form.taskNodeType == 'PROPAGANDA_ARTICLE' ? '宣教文案' : '' }}
{{ form.taskNodeType == 'TEXT_REMIND' ? '文字提醒' : '' }}
</div>
</el-form-item> </el-form-item>
<el-form-item label="功能限制" prop="functionLimitation"> <span v-if="form.taskNodeType == 'PHONE_OUTBOUND'">
<el-input v-model="form.functionLimitation" placeholder="终止所有服务" /> <el-form-item label="话术模板" prop="phoneTemplateName">
<div class="formdiv">
{{ form.phoneTemplateName }}
</div>
</el-form-item>
<el-form-item label="推送方式" prop="phoneDialMethod">
<div class="formdiv">
{{ form.phoneDialMethod == 'COMMON' ? '人工电话' : '' }}
{{ form.phoneDialMethod == 'AI' ? '自动外呼' : '' }}
</div>
</el-form-item>
<el-form-item label="重播次数" prop="phoneRedialTimes">
<div class="formdiv">
{{ returnphoneRedialTime(form.phoneRedialTimes) }}
</div>
</el-form-item>
<el-form-item label="时间间隔(分)" prop="phoneTimeInterval">
<div class="formdiv">
{{ form.phoneTimeInterval }}
</div>
</el-form-item>
</span>
<span v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE'">
<el-form-item label="问卷模板" prop="taskNodeType">
<div class="formdiv">
{{ form.questionnaireName }}
</div>
</el-form-item>
<el-form-item label="推送方式" prop="phoneDialMethod">
<div class="formdiv">
{{ form.phoneDialMethod == '' ? '小程序问卷' : '' }}
{{ form.phoneDialMethod == 'AI' ? 'AI自动外呼' : '' }}
{{ form.phoneDialMethod == 'COMMON' ? '人工随访' : '' }}
</div>
</el-form-item>
</span>
<el-form-item v-if="form.taskNodeType == 'PROPAGANDA_ARTICLE'" label="宣教模板" prop="taskNodeType">
<div class="formdiv">
{{ form.propagandaTitle }}
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="Calloutimmediately"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -106,9 +153,10 @@
</template> </template>
<script> <script>
import { patientInfoImportBatchlist, updateSn } from "@/api/manage/patientInfoImport"; import { patientInfoImportBatchlist, updateSn, outboundConfirmation, directOutbound } from "@/api/manage/patientInfoImport";
import { selectAgencyList, getDepartmentList, getAgencyList } from "@/api/manage/selectAgencyList"; import { selectAgencyList, getDepartmentList, getAgencyList } from "@/api/manage/selectAgencyList";
import SearchFilter from '../../components/SearchForm.vue' import SearchFilter from '../../components/SearchForm.vue'
import { getAgencytype } from "@/api/system/agency";
export default { export default {
name: "Importlist", name: "Importlist",
components: { SearchFilter }, components: { SearchFilter },
@ -149,6 +197,8 @@ export default {
}, },
// //
form: {}, form: {},
//
optionslisttime: [],
// //
rules: { rules: {
patientName: [ patientName: [
@ -191,14 +241,37 @@ export default {
}, },
}); });
}, },
returnphoneRedialTime(text) {
let arr = this.optionslisttime;
for (let i = 0; i < arr.length; i++) {
if (arr[i].dictValue == text) {
return arr[i].dictLabel;
}
}
},
// //
ljhandOutbound() { ljhandOutbound(row) {
this.open = true; var dictType = "redial_times";
getAgencytype(dictType).then((res) => {
this.optionslisttime = res.data;
outboundConfirmation().then(res => {
this.form = res.data;
this.$set(this.form, 'sn', row.sn + '')
this.open = true;
})
});
},
Calloutimmediately() {
directOutbound(this.form).then(res => {
this.$modal.msgSuccess("操作成功");
this.open = false;
this.getList();
})
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
// const ids = row.id || this.ids; // const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除?').then(function () { this.$modal.confirm('是否确认删除?').then(() => {
return updateSn(row.sn); return updateSn(row.sn);
}).then(() => { }).then(() => {
this.getList(); this.getList();
@ -369,3 +442,14 @@ export default {
} }
}; };
</script> </script>
<style>
.formdiv {
width: 340px;
border: 1px solid #DCDFE6;
height: 36px;
line-height: 36px;
font-size: 14px;
padding: 0 15px;
border-radius: 4px;
}
</style>