|
|
@ -13,33 +13,50 @@ |
|
|
|
<span title="展开">‹</span> |
|
|
|
<span title="展开">‹</span> |
|
|
|
<p title="隐藏">›</p> |
|
|
|
<p title="隐藏">›</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div class="operatePanel-form"> |
|
|
|
<AForm> |
|
|
|
<AForm :labelCol="{ style: { width: '80px' } }" |
|
|
|
<AFormItem> |
|
|
|
:wrapperCol="{ style: { width: '100%', 'margin-right': '10px' } }" |
|
|
|
<a-input/> |
|
|
|
:model="mapState.modelRef" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<AFormItem label="起点"> |
|
|
|
|
|
|
|
<ASelect v-model:value="mapState.modelRef.specimenMarkerId" :options="[]"/> |
|
|
|
|
|
|
|
</AFormItem> |
|
|
|
|
|
|
|
<AFormItem label="途径点"> |
|
|
|
|
|
|
|
<ASelect v-model:value="mapState.modelRef.smallHospitalId" |
|
|
|
|
|
|
|
:options="[ |
|
|
|
|
|
|
|
{ value: '001', label: '下级医院:第三医院'}, |
|
|
|
|
|
|
|
{ value: '002', label: '下级医院:神经病医院'}, |
|
|
|
|
|
|
|
{ value: '003', label: '下级医院:湘雅医院'} |
|
|
|
|
|
|
|
]" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</AFormItem> |
|
|
|
|
|
|
|
<AFormItem label="终点"> |
|
|
|
|
|
|
|
<ASelect v-model:value="mapState.modelRef.largeHospitalId" :options="[]"/> |
|
|
|
</AFormItem> |
|
|
|
</AFormItem> |
|
|
|
</AForm> |
|
|
|
</AForm> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="operatePanel-list"> |
|
|
|
|
|
|
|
<BasicTable @register="registerTable"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</PageWrapper> |
|
|
|
</PageWrapper> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<script lang="ts" setup> |
|
|
|
<script lang="ts" setup> |
|
|
|
import AMapLoader from '@amap/amap-jsapi-loader'; |
|
|
|
import AMapLoader from '@amap/amap-jsapi-loader'; |
|
|
|
import { reactive, getCurrentInstance, onBeforeMount, onUnmounted } from 'vue'; |
|
|
|
import { reactive, getCurrentInstance, onBeforeMount, onUnmounted } from 'vue'; |
|
|
|
import { largeHospitalMapList, smallHospitalMapList, specimenMapList } from './data'; |
|
|
|
import { largeHospitalMapList, smallHospitalMapList, specimenMapList, columns } from './data'; |
|
|
|
import hospital from '/@/assets/images/hospital.svg'; |
|
|
|
import hospital from '/@/assets/images/hospital.svg'; |
|
|
|
import medicalKit from '/@/assets/images/medical-kit.svg'; |
|
|
|
import medicalKit from '/@/assets/images/medical-kit.svg'; |
|
|
|
import hospitalTwinkle from '/@/assets/images/hospital-twinkle.gif'; |
|
|
|
import hospitalTwinkle from '/@/assets/images/hospital-twinkle.gif'; |
|
|
|
import redFlag from '/@/assets/images/redFlag.svg'; |
|
|
|
import redFlag from '/@/assets/images/redFlag.svg'; |
|
|
|
import { PageWrapper } from '/@/components/Page'; |
|
|
|
import { PageWrapper } from '/@/components/Page'; |
|
|
|
import { Form } from 'ant-design-vue'; |
|
|
|
import { Form, Select } from 'ant-design-vue'; |
|
|
|
|
|
|
|
import { BasicTable, useTable } from '/@/components/Table'; |
|
|
|
|
|
|
|
|
|
|
|
let map; |
|
|
|
let map; |
|
|
|
let largeHospitalMarkerCluster; |
|
|
|
let largeHospitalMarkerCluster; |
|
|
|
let smallHospitalMarkerCluster; |
|
|
|
let smallHospitalMarkerCluster; |
|
|
|
let specimenMarkerCluster; |
|
|
|
let specimenMarkerCluster; |
|
|
|
const AForm = Form; |
|
|
|
|
|
|
|
const AFormItem = Form.Item; |
|
|
|
|
|
|
|
const instance = getCurrentInstance(); |
|
|
|
const instance = getCurrentInstance(); |
|
|
|
const mapState = reactive({ |
|
|
|
const mapState = reactive({ |
|
|
|
loading: false, |
|
|
|
loading: false, |
|
|
@ -48,7 +65,32 @@ |
|
|
|
p: 'block', |
|
|
|
p: 'block', |
|
|
|
siderWidth: 371 |
|
|
|
siderWidth: 371 |
|
|
|
}, |
|
|
|
}, |
|
|
|
toggleStatus: true |
|
|
|
toggleStatus: true, |
|
|
|
|
|
|
|
modelRef: { |
|
|
|
|
|
|
|
largeHospitalId: '', |
|
|
|
|
|
|
|
smallHospitalId: '', |
|
|
|
|
|
|
|
specimenMarkerId: '' |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
const AForm = Form; |
|
|
|
|
|
|
|
const AFormItem = Form.Item; |
|
|
|
|
|
|
|
const ASelect = Select; |
|
|
|
|
|
|
|
const [registerTable, { reload }] = useTable({ |
|
|
|
|
|
|
|
title: '地图任务列表', |
|
|
|
|
|
|
|
rowKey: 'id', |
|
|
|
|
|
|
|
dataSource: [{ |
|
|
|
|
|
|
|
taskName: '测试任务1' |
|
|
|
|
|
|
|
},{ |
|
|
|
|
|
|
|
taskName: '测试任务2' |
|
|
|
|
|
|
|
}], |
|
|
|
|
|
|
|
columns, |
|
|
|
|
|
|
|
showTableSetting: true, |
|
|
|
|
|
|
|
tableSetting: { |
|
|
|
|
|
|
|
setting: false, |
|
|
|
|
|
|
|
fullScreen: true |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
bordered: true, |
|
|
|
|
|
|
|
showIndexColumn: true |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
onBeforeMount(() => { |
|
|
|
onBeforeMount(() => { |
|
|
@ -318,7 +360,7 @@ |
|
|
|
.operatePanel { |
|
|
|
.operatePanel { |
|
|
|
width: v-bind('mapState.toggleOperatePanelClass.siderWidth + "px"'); |
|
|
|
width: v-bind('mapState.toggleOperatePanelClass.siderWidth + "px"'); |
|
|
|
height: 100%; |
|
|
|
height: 100%; |
|
|
|
background: #fff; |
|
|
|
background: #ffffff; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
top: 0; |
|
|
|
top: 0; |
|
|
|
right: 0; |
|
|
|
right: 0; |
|
|
@ -328,7 +370,7 @@ |
|
|
|
width: 15px; |
|
|
|
width: 15px; |
|
|
|
height: 94px; |
|
|
|
height: 94px; |
|
|
|
margin: -48px 0 0 -15px; |
|
|
|
margin: -48px 0 0 -15px; |
|
|
|
background: #15a3fa; |
|
|
|
background: #0075ff; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
top: 50%; |
|
|
|
top: 50%; |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
@ -350,6 +392,14 @@ |
|
|
|
display: v-bind('mapState.toggleOperatePanelClass.p'); |
|
|
|
display: v-bind('mapState.toggleOperatePanelClass.p'); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.operatePanel-form { |
|
|
|
|
|
|
|
margin-top: 10px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.operatePanel-list { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
:deep(.amap-marker-label) { |
|
|
|
:deep(.amap-marker-label) { |
|
|
|