提交 9dedbaaa 编写于 作者: vino's avatar vino

问诊优化

上级 a32c929f
......@@ -14,9 +14,9 @@
style="width: 100%;">
<el-form-item label="问诊方式" prop="audioCommissionType" class="required-label">
<el-form-item v-if="bizType == 12" label="问诊方式" prop="audioCommissionType">
<el-col :span="16">
<el-radio-group v-model="model.audioCommissionType" size="small" style="line-height: 45px;">
<el-radio-group v-model="model.diagnoseChannel" size="small" style="line-height: 45px;">
<el-radio :label="1" >APP问诊(系统发起问诊)</el-radio>
<el-radio :label="2" >线下问诊(APP不会自动发起问诊)</el-radio>
</el-radio-group>
......@@ -46,10 +46,23 @@
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props:[
'appointmentTimeVisible'
],
props: {
appointmentTimeVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
},
data() {
return {
show: false,
......@@ -58,14 +71,12 @@ export default {
cancleTxt: '',
_promise: null,
model:{
userName:"",
title:""
diagnoseChannel:'',
appointBeginTime:"",
appointEndTime:""
},
rangeTime:'',
addRules:{
userName: [
{required: true, message: "请输入稍后跟进原因", trigger: 'blur'}
]
},
pickerOptions1: {
disabledDate: time => {
......@@ -76,38 +87,44 @@ export default {
},
}
},
created() {},
created() {
vm = this;
},
methods: {
reset() {
this.title = ''
this.confirmTxt = '确定'
this.cancleTxt = ''
this._promise = null
},
init(obj={}) {
Object.assign(this,obj)
this.show = true
return new Promise((resolve,reject) => {
this._promise = {
resolve,
reject
};
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = null;
if(this.bizType == 11){
req = {
id:this.diagnoseLogId,
bizType:this.bizType,
appointBeginTime:this.rangeTime[0],
appointEndTime:this.rangeTime[1]
}
}
else if(this.bizType == 12){
req = {
id:this.diagnoseLogId,
bizType:this.bizType,
diagnoseChannel: this.model.diagnoseChannel,
appointBeginTime:this.rangeTime[0],
appointEndTime:this.rangeTime[1]
}
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
async cancle() {
this.show = false
await this._promise.reject && this._promise.reject()
this.reset()
},
async confirm() {
this.show = false
await this._promise.resolve && this._promise.resolve()
this.reset()
},
hide() {
this.show = false
this.reset()
},
cancel(){
this.$emit('update:appointmentTimeVisible', false);
}
......
......@@ -30,10 +30,23 @@
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props:[
'coordinatingVisible'
],
props: {
coordinatingVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
},
data() {
return {
show: false,
......@@ -44,7 +57,6 @@ export default {
model:{
coordinatedRemark:""
},
commissionTypeList:[],
addRules:{
// coordinatedRemark: [
// {required: true, message: "(选填)请输入备注信息", trigger: 'blur'}
......@@ -52,37 +64,39 @@ export default {
}
}
},
created() {},
created() {
vm = this;
},
mounted() {
if(this.bizType == 8){
this.title = "设置待协调医生";
}
else if(this.bizType == 10){
this.title = "重新匹配医生";
}
},
methods: {
reset() {
this.title = ''
this.confirmTxt = '确定'
this.cancleTxt = ''
this._promise = null
},
init(obj={}) {
Object.assign(this,obj)
this.show = true
return new Promise((resolve,reject) => {
this._promise = {
resolve,
reject
};
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id:this.diagnoseLogId,
bizType:this.bizType,
coordinatedRemark:this.model.coordinatedRemark
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
async cancle() {
this.show = false
await this._promise.reject && this._promise.reject()
this.reset()
},
async confirm() {
this.show = false
await this._promise.resolve && this._promise.resolve()
this.reset()
},
hide() {
this.show = false
this.reset()
},
cancel(){
this.$emit('update:coordinatingVisible', false);
......
......@@ -6,91 +6,45 @@
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
:model="formData"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="接诊医生">
<el-select
v-model="model.commissionType"
id="statusSelector"
placeholder="请选择接诊医生"
clearable
style="width:56%;height: 32px;line-height: 32px;"
>
<el-option
v-for="item in commissionTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<el-form-item label="接诊医生" prop="receptionName">
<!-- <el-input v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" disabled></el-input>-->
<el-select @change="doctorChanged($event)" filterable v-model="formData.receptionName" placeholder="请选择接诊医生" class="set-width">
<el-option v-for="item of doctorList" :key="item.doctorId" :label="item.doctorName" :value="item.doctorId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="接诊医生职称">
<el-select
v-model="model.commissionType"
id="statusSelector"
placeholder="请选择医生职称"
clearable
style="width:56%;height: 32px;line-height: 32px;"
>
<el-option
v-for="item in commissionTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="接诊医生所在机构">
<el-select
v-model="model.commissionType"
id="statusSelector"
placeholder="请选择医生所在机构"
clearable
style="width:56%;height: 32px;line-height: 32px;"
>
<el-option
v-for="item in commissionTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<el-form-item label="接诊医生职称" >
<el-input v-model="formData.doctorTitle" placeholder="请选择职称" class="set-width" disabled></el-input>
<!-- <el-select v-model="formData.doctorTitle" placeholder="请选择职称" disabled class="set-width">
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> -->
</el-form-item>
<el-form-item label="接诊医生所在科室">
<el-select
v-model="model.commissionType"
id="statusSelector"
placeholder="请选择医生所在科室"
clearable
style="width:56%;height: 32px;line-height: 32px;"
>
<el-option
v-for="item in commissionTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<el-form-item label="接诊医生所在机构" >
<el-input v-model="formData.doctorHospital" placeholder="请选择机构" class="set-width" disabled></el-input>
<!-- <el-select v-model="formData.doctorHospital" placeholder="请选择机构" disabled class="set-width">
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> -->
</el-form-item>
<el-form-item label="接诊电话" class="required-label" prop="userName">
<el-col :span="15">
<el-input type="text" v-model="model.userName" style="width: 90%;" size="small" minlength="2" maxlength="500" placeholder="请输入电话"></el-input>
</el-col>
<el-form-item label="接诊医生所在科室" >
<el-input v-model="formData.doctorDepartment" placeholder="请选择机构" class="set-width" disabled></el-input>
<!-- <el-select v-model="formData.doctorDepartment" placeholder="请选择科室" disabled class="set-width">
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> -->
</el-form-item>
<el-form-item label="外部医生姓名" class="required-label" prop="userName">
<el-col :span="15">
<el-input type="text" v-model="model.userName" style="width: 90%;" size="small" minlength="2" maxlength="500" placeholder="请输入电话"></el-input>
</el-col>
<el-form-item label="接诊医生电话">
<el-input v-model="formData.doctorMobile" placeholder="请输入接诊医生手机号" disabled class="set-width"></el-input>
</el-form-item>
<!-- <el-form-item label="接诊医生来源" >-->
<!-- <el-select v-model="formData.doctorSource" placeholder="请选择医生来源" class="set-width" disabled>-->
<!-- <el-option v-for="item of doctorSourceList" :key="item.value" :label="item.label" :value="item.value" ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="接诊意向时间">
<el-date-picker
v-model="rangeTime"
......@@ -114,10 +68,23 @@
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props:[
'diagnosisDoctorVisible'
],
props: {
diagnosisDoctorVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
diagnoseType: {
type: Number,
default: 0
},
},
data() {
return {
show: false,
......@@ -125,15 +92,22 @@ export default {
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
userName:"",
title:""
formData:{
receptionId:"",
receptionName:"",
doctorTitle:"",
doctorHospital:"",
doctorDepartment:"",
doctorMobile:"",
outsideDoctor:"",
receptionBeginTime:"",
receptionEndTime:'',
},
commissionTypeList:[],
doctorList:[],
rangeTime:'',
addRules:{
userName: [
{required: true, message: "请输入稍后跟进原因", trigger: 'blur'}
receptionName: [
{required: true, message: "请选择接诊医生", trigger: 'blur'}
]
},
pickerOptions1: {
......@@ -145,46 +119,73 @@ export default {
},
}
},
created() {},
created() {
vm = this;
this.getDoctorList()
},
methods: {
reset() {
this.title = ''
this.confirmTxt = '确定'
this.cancleTxt = ''
this._promise = null
},
init(obj={}) {
Object.assign(this,obj)
this.show = true
return new Promise((resolve,reject) => {
this._promise = {
resolve,
reject
};
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id:this.diagnoseLogId,
bizType:9,
receptionId:this.formData.receptionId,
receptionName:this.formData.receptionName,
receptionBeginTime:this.rangeTime[0],
receptionEndTime:this.rangeTime[1],
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
async cancle() {
this.show = false
await this._promise.reject && this._promise.reject()
this.reset()
cancel(){
this.$emit('update:diagnosisDoctorVisible', false);
},
async confirm() {
this.show = false
await this._promise.resolve && this._promise.resolve()
this.reset()
doctorChanged(value) {
let selected = this.doctorList.find(item => item.doctorId === value);
if (selected) {
this.formData.receptionId = value
this.formData.receptionName = selected.doctorName
this.formData.doctorTitle = selected.doctorTitle
this.formData.doctorHospital = selected.doctorHospital
this.formData.doctorDepartment = selected.doctorDepartment
this.formData.doctorMobile = selected.doctorMobile
this.formData.serviceFee = this.priceFilter(selected.serviceFee)
}
},
hide() {
this.show = false
this.reset()
getDoctorList() {
this.loading = true
let url = `/diagnose/doctorService/doctorList?diagnoseType=${this.diagnoseType}`
this.GET(url).then(res => {
this.loading = false
if (res.code == '000000') {
this.doctorList = res.data
} else {
this.$message.info('请稍后重试')
}
}).catch(() => {
this.loading = false
this.$message.info('请稍后重试')
});
},
cancel(){
this.$emit('update:diagnosisDoctorVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
.set-width {
width: 300px;
}
</style>
......@@ -53,7 +53,11 @@ export default {
diagnoseLogId: {
type: Number,
default: 0
}
},
bizType: {
type: Number,
default: 0
},
},
data() {
return {
......@@ -84,33 +88,12 @@ export default {
vm = this;
},
methods: {
reset() {
this.title = ''
this.confirmTxt = '确定'
this.cancleTxt = ''
this._promise = null
},
init(obj = {}) {
Object.assign(this, obj)
this.show = true
return new Promise((resolve, reject) => {
this._promise = {
resolve,
reject
};
})
},
async cancle() {
this.show = false
await this._promise.reject && this._promise.reject()
this.reset()
},
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id:this.diagnoseLogId,
bizType:5,
bizType:this.bizType,
assistantBeginTime:this.rangeTime[0],
assistantEndTime:this.rangeTime[1],
assistantRemark:this.model.assistantRemark
......@@ -128,10 +111,6 @@ export default {
}
})
},
hide() {
this.show = false
this.reset()
},
cancel() {
this.$emit('update:diagnosisTimeVisible', false);
}
......
......@@ -64,27 +64,7 @@ export default {
vm = this;
},
methods: {
reset() {
this.title = ''
this.confirmTxt = '确定'
this.cancleTxt = ''
this._promise = null
},
init(obj={}) {
Object.assign(this,obj)
this.show = true
return new Promise((resolve,reject) => {
this._promise = {
resolve,
reject
};
})
},
async cancle() {
this.show = false
await this._promise.reject && this._promise.reject()
this.reset()
},
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
......
......@@ -112,7 +112,8 @@ export default {
},
methods: {
showBtn(row,...arr) {
return arr.includes(row.status)
// return arr.includes(row.status)
return true;
},
// 选择
handleSelectionChange(val) {
......
......@@ -225,15 +225,17 @@
<refund-component @search="search" :refundVisible.sync="refundVisible" :diagnoseLogId="diagnoseLogId"></refund-component>
<followup-component @search="search" :followupVisible.sync="followupVisible" :diagnoseLogId="diagnoseLogId"></followup-component>
<matching-doctor @search="search" :doctorVisible.sync="doctorVisible" :diagnoseLogId="diagnoseLogId"></matching-doctor>
<diagnosis-component :diagnosisVisible.sync="diagnosisVisible"></diagnosis-component>
<coordinating-doctor :coordinatingVisible.sync="coordinatingVisible"></coordinating-doctor>
<diagnosis-doctor :diagnosisDoctorVisible.sync="diagnosisDoctorVisible"></diagnosis-doctor>
<appointment-time :appointmentTimeVisible.sync="appointmentTimeVisible"></appointment-time>
<diagnosis-time :diagnosisTimeVisible.sync="diagnosisTimeVisible" :diagnoseLogId="diagnoseLogId"></diagnosis-time>
<diagnosis-component :diagnosisVisible.sync="diagnosisVisible" :diagnoseLogId="diagnoseLogId"></diagnosis-component>
<coordinating-doctor :coordinatingVisible.sync="coordinatingVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType" ></coordinating-doctor>
<diagnosis-doctor :diagnosisDoctorVisible.sync="diagnosisDoctorVisible" :diagnoseLogId="diagnoseLogId" :diagnoseType="diagnoseType"></diagnosis-doctor>
<appointment-time :appointmentTimeVisible.sync="appointmentTimeVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType"></appointment-time>
<diagnosis-time :diagnosisTimeVisible.sync="diagnosisTimeVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType"></diagnosis-time>
</div>
</div>
</template>
<script>
import {updateDiagnosis} from "../../../utils/diagnosis";
let vm = null;
const DOWN_URL= '/diagnose/admin/diagnose/export';
const LIST_URL= '/diagnose/admin/diagnose/list';
const DEP_URL= '/hospital/departments/0'
......@@ -320,6 +322,8 @@ export default {
diagnosisTimeVisible:false,
multipleSelection:[],
batchFlag:false,
bizType:0,
diagnoseType:0,
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() > new Date().getTime(); //减去一天的时间代表可以选择同一天;
......@@ -332,6 +336,7 @@ export default {
this.search();
},
created() {
vm = this;
this.fromType = +(this.$route.query.fromType || 1);
this.setTable();
this.getDep()
......@@ -455,7 +460,11 @@ export default {
})
},
//设为待问诊
witeDiagnose(row) {},
witeDiagnose(row) {
this.appointmentTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 11;
},
//更换运营
changeRun(row) {
this.matchVisible = true;
......@@ -483,27 +492,112 @@ export default {
waitMatchDot(row) {
this.diagnosisTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 5;
},
//发送消息
sendMessage(row) {},
sendMessage(row) {
this.$router.push({path: '/diagnosis-im', query: {tid: row.imTeamId}})
},
//加入问诊
joinDiagnose(row) {},
joinDiagnose(row) {
this.$confirm('确定加入问诊吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.clearSession()
this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
})
},
//匹配运营
matchRun(row) {},
matchRun(row) {
this.$confirm('确定匹配并跟进该预约单?', '确定匹配?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let req = {
id: row.diagnoseLogId,
bizType: 3
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
// vm.cancel();
vm.search();
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(error);
});
})
},
//设为待分诊
waitDiagnose(row) {},
waitDiagnose(row) {
this.diagnosisTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 6;
},
//设为待协调医生
waitHzeDot(row) {},
waitHzeDot(row) {
this.coordinatingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 8;
},
//设为待确认时间
waitMatchTime(row) {},
waitMatchTime(row) {
this.diagnosisDoctorVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.diagnoseType = row.diagnoseType;
},
//重新匹配医生
reMatchDot(row) {},
reMatchDot(row) {
this.coordinatingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 10;
},
//修改时间
changeTime(row) {},
changeTime(row) {
this.appointmentTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 12;
},
//发起问诊
call(row) {},
call(row) {
this.$confirm('确定发起问诊吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.clearSession()
this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
})
},
//设为已完成
doneHandle(row) {},
doneHandle(row) {
this.$confirm('请先确定问诊已结束?再将问诊设为已完成,确定继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let req = {
id: row.diagnoseLogId,
bizType: 13
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
// vm.cancel();
vm.search();
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(error);
});
})
},
handleSizeChange(value) {
this.searchParam.pageSize = value;
this.search();
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册