Browse Source

修复根据地址获取医院失败问题

pull/1/head
kuaileWu 2 weeks ago
parent
commit
455cbde92a
  1. 2
      src/views/HomeView.vue
  2. 227
      src/views/HosInformation.vue

2
src/views/HomeView.vue

@ -397,7 +397,7 @@ export default {
addHospital(item) {
this.$router.push({
name: '医院信息',
query: { doctor_id: item.doctor_id }
query: { doctor_id: item.id }
})
},
editDoctor(item) {

227
src/views/HosInformation.vue

@ -21,23 +21,20 @@
</div>
</GuipFormItem>
<GuipFormItem column="column" class="mb24" label="出诊医院名称" :required="true" style="margin-bottom: 0px;">
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="form.h_realname" :disabled="true" v-if="depart_id && doctor_id"
prop="h_realname">
</GuipInput>
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="form.h_realname" :disabled="true" v-if="depart_id && doctor_id" prop="h_realname"></GuipInput>
</GuipFormItem>
<div class="mb24" style="margin-top:-24px;" v-if="!depart_id && !doctor_id">
<div class="mb24" style="margin-top:-24px;" v-if="!depart_id && doctor_id">
<el-autocomplete
v-model="hospitalSearchState"
style="width: 100%"
:fetch-suggestions="queryHospital"
placeholder="请输入医院名称或地址"
ref="hospitalAutocomplete"
:popper-class="((hospitalSearchFlag || hospitalRestaurants.length > 0) ? '' : ' el-autocomplete-noloading')"
@select="hospitalHandleSelect">
<template #append>
<el-button
icon="el-icon-search"
@click="handleSearch"
style="padding: 12px;"></el-button>
<el-button icon="el-icon-search" @click="handleSearch" style="padding: 12px;"></el-button>
</template>
</el-autocomplete>
</div>
@ -48,7 +45,7 @@
</GuipFormItem>
<GuipFormItem column="column" class="mb24" label="所在科室">
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="form.depart_name"
prop="depart_name" placeholder="请输入" />
prop="depart_name" :placeholder="(depart_id && doctor_id)?'无':'请输入'" :disabled="(depart_id && doctor_id)?true:false"/>
</GuipFormItem>
</div>
<div class="flex-line"></div>
@ -56,7 +53,7 @@
<GuipFormItem column="column" class="mb24" v-if="departIsFixed != -1">
<div slot="formLeft" class="form-top-icon">医保定点</div>
<div class="flex" slot="formDom" style="padding: 9px 0px;">
<GuipSwitch :model-value="departIsFixed" @change="onSwitchChange" activeText="医保定点" inactiveText="非医保定点" :active-value="true" :inactive-value="false">
<GuipSwitch :model-value="departIsFixed" @change="onSwitchChange" activeText="医保定点" inactiveText="非医保定点" :active-value="true" :inactive-value="false">
</GuipSwitch>
</div>
</GuipFormItem>
@ -103,11 +100,11 @@
<div class="flex-line"></div>
<div class="flex-right" v-if="form.worktimes">
<GuipFormItem column="column" label="每周出诊安排" :required="true">
<div class="flex weekPlan" slot="formDom">
<GuipSelect v-for="day in weekDays" :key="day.id" v-model="form.worktimes[day.id].plan"
:options="options_weekPlan" :label="day.name" placeholder="休息">
</GuipSelect>
<GuipSelect v-for="day in weekDays" :key="day.id" v-model="form.worktimes[day.id].plan" :options="options_weekPlan" :label="day.name" placeholder="休息"></GuipSelect>
</div>
</GuipFormItem>
</div>
</div>
@ -359,46 +356,13 @@ export default {
isIndeterminate1: false,
projectSearchId: 'all',
projectSearchName: '',
hospitalRestaurants: [],
hospitalSearchState: '',
hospitalSearchFlag: false,
hospitalSearchTimeout: false,
departIsFixed:-1,
projectList: [
{
name: '针灸',
price: '88',
group: '针灸1',
time: '2077 - 12 - 20',
status: true,
id: '1'
},
{
name: '拔罐',
price: '188',
group: '针灸2',
time: '2077 - 12 - 20',
status: true,
id: '2'
},
{
name: '火刺',
price: '55',
group: '针灸1',
time: '2077 - 12 - 20',
status: true,
id: '3'
},
],
projectTagData: [
{
name: '全部分类',
id: '0'
},
],
projectList: [],
projectTagData: [],
courseList: [],
selectAll: false,
selectAll1: false,
@ -491,7 +455,9 @@ export default {
time_unit:"0",
time_unit_num:"0",
treat_expire:"0",
visit_day:"0"
visit_day:"0",
search_province:"",
search_city:"",
},
siteFormrules: {
},
@ -503,15 +469,12 @@ export default {
isApprove: '',
phone: ''
},
siteFormrules1: {
domain_source: [
{ required: true, message: '请输入站点简称', trigger: 'blur' }
]
},
// hosipitalList:[]
hosipitalList: [
{ label: '选项1', value: '1' },
{ label: '选项2', value: '2' },
@ -526,15 +489,34 @@ export default {
},
async mounted() {
const { depart_id, doctor_id } = this.$route.query; // doctorId
if(doctor_id) this.doctor_id = doctor_id;
if (doctor_id && depart_id) {
//
this.depart_id = depart_id;
this.doctor_id = doctor_id;
await this.fetchDoctorData()
console.log(this.doctor_id)
await this.getAreaData()
this.fetchDoctorData()
this.fetchPackData()
this.fetchProjectData()
this.geHosAdress()
}else{
await this.getAreaData()
}
},
watch: {
'$route.query': {
immediate: true,
deep: true,
handler(newVal) {
this.doctor_id = newVal.doctor_id;
this.depart_id = newVal.depart_id;
this.getAreaData();
this.fetchDoctorData();
this.fetchPackData();
this.fetchProjectData();
this.geHosAdress();
}
}
},
computed: {
@ -547,21 +529,22 @@ export default {
handleSearch() {
if(this.hospitalSearchFlag) return
this.hospitalSearchFlag = true
this.$refs.hospitalAutocomplete.$refs.suggestions.loading = true
this.queryHospital(this.hospitalSearchState, (results) => {
console.log(results)
this.$refs.hospitalAutocomplete.$refs.suggestions.loading = false
this.$refs.hospitalAutocomplete.hideLoading = true
this.$refs.hospitalAutocomplete.$refs.suggestions.suggestions = results
console.log(this.hospitalSearchState)
this.$refs.hospitalAutocomplete.getData(this.hospitalSearchState)
})
if(!this.hospitalSearchState.trim()) {
this.$message.error('医院名称或地址不能为空');
this.hospitalSearchFlag = false
return
}
this.getInternetHospital(this.hospitalSearchState)
},
hospitalHandleSelect(item) {
console.log(item);
this.form.h_realname = item.value
this.form.search_province = item.province
this.form.search_city = item.city
this.form.address = item.address
this.form.h_pos = item.location.lat + ',' + item.location.lng
console.log(item)
},
queryHospital(queryString, cb) {
getInternetHospital(queryString) {
if(!this.hospitalSearchFlag) return;
this.hospitalSearchTimeout = setTimeout(function(){
this.hospitalSearchFlag = false
@ -575,22 +558,28 @@ export default {
this.hospitalSearchFlag = false
clearTimeout(this.hospitalSearchTimeout)
if(response.code !== 0) {
cb([]);
this.hospitalRestaurants = []
this.$refs.hospitalAutocomplete.getData(this.hospitalSearchState)
this.$message.error(response.msg);
return
}
this.hospitalRestaurants = Object.values(response.data)
var restaurants = this.hospitalRestaurants;
var results = queryString ? restaurants : [];
cb(results);
this.$refs.hospitalAutocomplete.activated = true
this.$refs.hospitalAutocomplete.getData(this.hospitalSearchState)
if(this.hospitalRestaurants.length <= 0) this.$message.error('未查询相关信息');
}).catch(error => {
this.hospitalSearchFlag = false
clearTimeout(this.hospitalSearchTimeout)
cb([]);
this.hospitalRestaurants = []
console.error(error, 'error')
})
},
queryHospital(queryString, cb) {
console.log(queryString)
cb(this.hospitalRestaurants);
},
random() {
var randomNumber = Math.random();
return randomNumber
@ -614,14 +603,14 @@ export default {
console.error(error, 'error')
})
},
fetchDoctorData() {
async fetchDoctorData() {
this.$http('POST', '/api/admin/get_depart_info', {
depart_id: this.depart_id,
doctor_id: this.doctor_id
}).then(response => {
this.form = { ...this.form, ...response.data,
'morning_worktime':response.data.morning_worktime.split('-'),
'afternoon_worktime':response.data.afternoon_worktime.split('-')
'morning_worktime':response.data.morning_worktime ? response.data.morning_worktime.split('-'):'',
'afternoon_worktime':response.data.afternoon_worktime ? response.data.afternoon_worktime.split('-'):''
}
this.departType = (response.data.type || response.data.type === 0 || response.data.type === "0") ? [Number(response.data.type)] : []
this.departIsFixed = response.data.is_fixed == "1" ? true : false
@ -661,13 +650,15 @@ export default {
if(response.code == 0){
this.loading = false
this.$nextTick(()=>{
this.projectTagData = response.data.classify;//
if(response.data.list) {
this.projectList = Object.values(response.data.list);//
}else{
this.projectList = []
if(response.data.classify) {
this.projectTagData = response.data.classify;//
if(response.data.list && response.data.list.length > 0) {
this.projectList = Object.values(response.data.list);//
}else{
this.projectList = []
}
this.tableKey = Date.now(); //
}
this.tableKey = Date.now(); //
// this.$set('projectList',Object.values(response.data.list))
// this.$set('projectTagData',response.data.classify)
})
@ -773,26 +764,31 @@ export default {
} else if (this.dialogVisible) {//
let data = JSON.parse(JSON.stringify(this.$refs.channelProject.form));
let str = data.project_contents;
data.project_contents = str.replace(/\n/g, ' ').trim();
if(!data.project_contents || (data.groupType == '1' && !data.classify_id) || (data.groupType == '2' && !data.classify_name)){
this.$Message.info('请填写完整信息!')
data.project_contents = str.trim();
if((data.groupType == '1' && !data.classify_id) || (data.groupType == '2' && !data.classify_name)){
this.$Message.info('分组不能为空')
return;
}
else{
this.$http('POST', '/api/admin/mitil_add_project', {
depart_id: this.depart_id,
doctor_id: this.doctor_id,
...data
}).then(response => {
if (response.code == 0) {
this.$Message.success('新增项目成功')
this.$refs.channelProject.formReset()
this.dialogVisible = false;
this.fetchProjectData();
}
}).catch(error => {
this.$Message.error(error || '错误!')
})
if(!data.project_contents) {
this.$Message.info('录入项目内容不能为空!')
return;
}
this.$http('POST', '/api/admin/mitil_add_project', {
depart_id: this.depart_id,
doctor_id: this.doctor_id,
...data
}).then(response => {
if (response.code == 0) {
this.$Message.success('新增项目成功')
this.$refs.channelProject.formReset()
this.dialogVisible = false;
this.fetchProjectData();
}
}).catch(error => {
this.$Message.error(error || '错误!')
})
}
},
//
@ -998,6 +994,8 @@ export default {
console.log(data, '---');
},
updateHosInfo(props, url){
if(this.doctor_id) props.doctor_id = this.doctor_id;
if(this.doctor_id && this.depart_id) {
props.doctor_id = this.doctor_id;
props.depart_id = this.depart_id;
@ -1009,6 +1007,15 @@ export default {
}).then(response => {
if(response.code == 0){
this.$Message.success('更新成功')
if(this.doctor_id && !this.depart_id) {
var that = this
setTimeout(()=>{
that.$router.push({
name: '医院信息',
query: { doctor_id: this.doctor_id, depart_id: response.data.depart_id }
})
},1000)
}
return;
}
this.$Message.error(response.msg)
@ -1038,8 +1045,15 @@ export default {
rqurl = "/api/admin/set_depart_worktime";
break;
case 'siteForm':
if(this.doctor_id && !this.depart_id) {
if(!this.form.search_province.trim() || !this.form.search_city.trim() || !this.form.address.trim() || !this.form.h_pos.trim()) {
this.$Message.info('请选择搜索结果下拉中的出诊医院')
return;
}
}
if(this.departType.length <= 0) {
this.$Message.info('请选择站点类型')
this.$Message.info('请选择使用功能')
return;
}
@ -1047,9 +1061,18 @@ export default {
is_fixed:this.form.is_fixed,
type:this.departType[0],
notice:this.form.notice,
h_shortname:this.form.h_shortname,
h_shortname:this.form.h_shortname
}
if(this.doctor_id && !this.depart_id) {
if(this.departType.length <= 0) {
this.$Message.info('请选择使用功能')
return;
}
props = this.form
props.type = this.departType[0]
}
rqurl = "/api/admin/set_hospital_depart";
break;
case 'numSettingForm':
@ -1060,7 +1083,6 @@ export default {
treat_expire:this.form.treat_expire,
}
rqurl = "/api/admin/set_visit_num";
break;
}
this.updateHosInfo(props, rqurl)
@ -1080,11 +1102,14 @@ export default {
}
</script>
<style lang="scss">
.el-autocomplete-noloading{
display: none !important;
}
.weekPlan {
display: grid;
grid-gap: 12px 44px;
grid-template-columns: repeat(2, 1fr);
}
#siteMessage4 ::v-deep .el-form-item {
margin-bottom: 0 !important;

Loading…
Cancel
Save