Browse Source

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

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

2
src/views/HomeView.vue

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

193
src/views/HosInformation.vue

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

Loading…
Cancel
Save