| | |
| | | </div> |
| | | <div class="Followuserinfos"> |
| | | <div> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-form |
| | | ref="userform" |
| | | :model="form" |
| | | :rules="userrules" |
| | | label-width="120px" |
| | | > |
| | | <div class="headline"> |
| | | <div>人工处理</div> |
| | | <el-row :gutter="20"> |
| | |
| | | <el-input |
| | | placeholder="联系电话缺失" |
| | | v-model="userform.telcode" |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-phone" |
| | | @click="handleCall(userform.telcode, 'tel')" |
| | | :disabled="!isValidPhone(userform.telcode)" |
| | | ></el-button |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | |
| | | <el-input |
| | | placeholder="联系人电话缺失" |
| | | v-model="userform.relativetelcode" |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-phone" |
| | | @click="handleCall(userform.relativetelcode, 'relative')" |
| | | :disabled="!isValidPhone(userform.relativetelcode)" |
| | | ></el-button |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | |
| | | </div> |
| | | <div> |
| | | <h2>一键呼叫功能</h2> |
| | | <CallButton /> |
| | | <CallButton |
| | | ref="callButton" |
| | | :phoneNumber="currentPhoneNumber" |
| | | style="display: none" |
| | | /> |
| | | </div> |
| | | <div> |
| | | <el-tabs v-model="activeName" type="border-card"> |
| | |
| | | components: { |
| | | CallButton, |
| | | }, |
| | | |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | data() { |
| | | const validatePhone = (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(new Error("请输入联系电话")); |
| | | } |
| | | setTimeout(() => { |
| | | if (!/^1[3-9]\d{9}$/.test(value)) { |
| | | callback(new Error("请输入正确的11位手机号码")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, 300); |
| | | }; |
| | | return { |
| | | userid: "", |
| | | currentPhoneNumber: "", |
| | | callType: "", // 用于区分是哪个电话 |
| | | input: "今天身体还不错", |
| | | radio: "2", |
| | | taskname: "", |
| | |
| | | { required: true, message: "请选择随访方式", trigger: "change" }, |
| | | ], |
| | | date1: [{ required: true, message: "请选择随访时间", trigger: "blur" }], |
| | | }, |
| | | userrules: { |
| | | telcode: [{ validator: validatePhone, trigger: "blur" }], |
| | | relativetelcode: [{ validator: validatePhone, trigger: "blur" }], |
| | | }, |
| | | url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", |
| | | postData: { |
| | |
| | | // 根据选择的随访方式设置时间 |
| | | const now = new Date(); |
| | | if (value.includes("七天后")) { |
| | | this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 7); |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 7 |
| | | ); |
| | | } else if (value.includes("15天后")) { |
| | | this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 15); |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 15 |
| | | ); |
| | | } else if (value.includes("一个月后")) { |
| | | this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 30); |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 30 |
| | | ); |
| | | } else if (value.includes("三个月后")) { |
| | | this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 90); |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 90 |
| | | ); |
| | | } else if (value.includes("六个月后")) { |
| | | this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 180); |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 180 |
| | | ); |
| | | } else if (value.includes("一年后")) { |
| | | this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 365); |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 365 |
| | | ); |
| | | } |
| | | }, |
| | | |
| | |
| | | // 如果有任何一个异步操作失败,会进入这里 |
| | | console.error("发生错误:", error); |
| | | }); |
| | | }, |
| | | // 验证手机号格式 |
| | | isValidPhone(phone) { |
| | | return /^1[3-9]\d{9}$/.test(phone); |
| | | }, |
| | | // 呼叫处理 |
| | | handleCall(phone, type) { |
| | | if (this.isValidPhone(phone)) { |
| | | this.currentPhoneNumber = phone; |
| | | this.callType = type; |
| | | |
| | | // 等待下一个tick确保值已更新 |
| | | this.$nextTick(() => { |
| | | this.$refs.callButton.startCall(); |
| | | |
| | | // 可选:根据不同类型做不同处理 |
| | | if (type === "tel") { |
| | | console.log("正在呼叫患者本人:", phone); |
| | | } else { |
| | | console.log("正在呼叫联系人:", phone); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | yuyingetdetail() { |
| | | this.tableDatatop.forEach((item, index) => { |
| | |
| | | background-color: #f57676; |
| | | border-color: #f57676; |
| | | } |
| | | .el-icon-phone { |
| | | transition: all 0.3s; |
| | | } |
| | | .el-button[disabled] .el-icon-phone { |
| | | color: #c0c4cc; |
| | | } |
| | | .el-button:not([disabled]) .el-icon-phone { |
| | | color: #409eff; |
| | | } |
| | | .el-button:not([disabled]):hover .el-icon-phone { |
| | | color: #66b1ff; |
| | | transform: scale(1.1); |
| | | } |
| | | .mulsz { |
| | | font-size: 25px; |
| | | margin-top: 20px; |