Browse Source

开发地图设计器配置

master
wangxiang 3 years ago
parent
commit
0103d34c21
  1. 4
      src/components/AMap/index.ts
  2. 13
      src/components/AMap/src/AMapDesigner/index.vue
  3. 0
      src/components/AMap/src/amap.data.ts
  4. 6
      src/components/AMap/src/components/HandoverPresetModal.vue
  5. 8
      src/components/AMap/src/components/MapPointModal.vue
  6. 21
      src/components/AMap/src/components/TaskModal.vue
  7. 4
      src/components/AMapDesigner/index.ts
  8. 6
      src/views/common/mapLogistic/MapLogisticModal.vue

4
src/components/AMap/index.ts

@ -0,0 +1,4 @@
import { withInstall } from '/@/utils';
import aMapDesigner from './src/AMapDesigner/index.vue';
export const AMapDesigner = withInstall(aMapDesigner);

13
src/components/AMapDesigner/src/Amap.vue → src/components/AMap/src/AMapDesigner/index.vue

@ -74,15 +74,15 @@
<script lang="ts" setup> <script lang="ts" setup>
import AMapLoader from '@amap/amap-jsapi-loader'; import AMapLoader from '@amap/amap-jsapi-loader';
import { reactive, watchEffect, getCurrentInstance, onBeforeMount, onUnmounted } from 'vue'; import { reactive, watchEffect, getCurrentInstance, onBeforeMount, onUnmounted } from 'vue';
import { smallHospitalMapList, specimenMapList, columns } from './map.data'; import { smallHospitalMapList, specimenMapList, columns } from '../amap.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 { Form, Select, Button, Tooltip } from 'ant-design-vue'; import { Form, Select, Tooltip } from 'ant-design-vue';
import { BasicTable, useTable } from '/@/components/Table'; import { BasicTable, useTable } from '/@/components/Table';
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
import TaskModal from './TaskModal.vue'; import TaskModal from '../components/TaskModal.vue';
import { propTypes } from '/@/utils/propTypes'; import { propTypes } from '/@/utils/propTypes';
import { listHospital } from '/@/api/platform/common/controller/hospital'; import { listHospital } from '/@/api/platform/common/controller/hospital';
import { listUser } from '/@/api/platform/system/controller/user'; import { listUser } from '/@/api/platform/system/controller/user';
@ -132,10 +132,9 @@
const AForm = Form; const AForm = Form;
const AFormItem = Form.Item; const AFormItem = Form.Item;
const ASelect = Select; const ASelect = Select;
const AButtonGroup = Button.Group;
const ATooltip = Tooltip; const ATooltip = Tooltip;
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
title: '地图任务列表', title: '任务列表',
rowKey: 'id', rowKey: 'id',
dataSource: [{ dataSource: [{
id: '001', id: '001',
@ -551,7 +550,7 @@
} }
.operatePanel-form { .operatePanel-form {
margin-top: 10px; margin-top: 20px;
} }
.operatePanel-list { .operatePanel-list {
@ -576,8 +575,6 @@
.ant-btn { .ant-btn {
font-size: 13px; font-size: 13px;
margin-right: 1px; margin-right: 1px;
} }
} }
} }

0
src/components/AMapDesigner/src/map.data.ts → src/components/AMap/src/amap.data.ts

6
src/components/AMapDesigner/src/MutualTaskModal.vue → src/components/AMap/src/components/HandoverPresetModal.vue

@ -26,7 +26,7 @@
import { reactive } from 'vue'; import { reactive } from 'vue';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal'; import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table'; import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table';
import { formTaskColumns, formMutualTaskColumns, largeHospitalMapList, smallHospitalMapList, formMutualTaskSettingColumns } from './map.data'; import { formTaskColumns, formMutualTaskColumns, largeHospitalMapList, smallHospitalMapList, formMutualTaskSettingColumns } from '../amap.data';
import { Form, Select } from 'ant-design-vue'; import { Form, Select } from 'ant-design-vue';
const AForm = Form; const AForm = Form;
@ -51,12 +51,12 @@
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const [registerModal, { setModalProps, closeModal }] = useModalInner(async data => { const [registerModal, { setModalProps, closeModal }] = useModalInner(async data => {
const props: Partial<ModalProps> = { confirmLoading: false }; const props: Partial<ModalProps> = { confirmLoading: false };
props.title = '交接任务弹出框'; props.title = '转办任务配置';
// : // :
setModalProps(props); setModalProps(props);
}); });
const [registerTable, { reload, getDataSource }] = useTable({ const [registerTable, { reload, getDataSource }] = useTable({
title: '交接任务表格', title: '转办任务',
columns: formMutualTaskSettingColumns, columns: formMutualTaskSettingColumns,
pagination: { pagination: {
pageSize: 3, pageSize: 3,

8
src/components/AMapDesigner/src/MapDataSettingsModal.vue → src/components/AMap/src/components/MapPointModal.vue

@ -2,8 +2,8 @@
import { reactive, nextTick, ref, h } from 'vue'; import { reactive, nextTick, ref, h } from 'vue';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal'; import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
import { Form, Select, Row, Col } from 'ant-design-vue'; import { Form, Select, Row, Col } from 'ant-design-vue';
import { AMap } from '/@/components/AMapDesigner'; import { AMapDesigner } from '/@/components/AMap';
import { formMapDataSettingsColumns } from '/@/components/AMapDesigner/src/map.data'; import { formMapDataSettingsColumns } from '/@/components/AMap/src/amap.data';
import Sortable from 'sortablejs'; import Sortable from 'sortablejs';
import { VxeGridProps } from 'vxe-table'; import { VxeGridProps } from 'vxe-table';
@ -65,7 +65,7 @@
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const [registerModal, { setModalProps, closeModal }] = useModalInner(data => { const [registerModal, { setModalProps, closeModal }] = useModalInner(data => {
const props: Partial<ModalProps> = { confirmLoading: false }; const props: Partial<ModalProps> = { confirmLoading: false };
props.title = '地图标记点数据设置弹出框'; props.title = '标记点配置';
nextTick(() => { nextTick(() => {
mapSettingsState.sortable = Sortable.create(VxeGridEl.value!.$el.querySelector('.body--wrapper>.vxe-table--body tbody'), { mapSettingsState.sortable = Sortable.create(VxeGridEl.value!.$el.querySelector('.body--wrapper>.vxe-table--body tbody'), {
@ -95,7 +95,7 @@
> >
<ARow> <ARow>
<ACol :span="12"> <ACol :span="12">
<AMap :sidebarControl="false"/> <AMapDesigner :sidebarControl="false"/>
</ACol> </ACol>
<ACol :span="12"> <ACol :span="12">
<vxe-grid ref="VxeGridEl" v-bind="gridOptions"/> <vxe-grid ref="VxeGridEl" v-bind="gridOptions"/>

21
src/components/AMapDesigner/src/TaskModal.vue → src/components/AMap/src/components/TaskModal.vue

@ -8,10 +8,10 @@
<template #toolbar> <template #toolbar>
<a-button type="primary" <a-button type="primary"
@click="handleMapDataSettings()" @click="handleMapDataSettings()"
>调整地图标记点数据</a-button> >标记点</a-button>
<a-button type="primary" <a-button type="primary"
@click="handleTaskAdd()" @click="handleTaskAdd()"
>新增任务</a-button> >新增</a-button>
</template> </template>
<template #action="{ record, column }"> <template #action="{ record, column }">
<TableAction :actions="createActions(record, column)"/> <TableAction :actions="createActions(record, column)"/>
@ -21,12 +21,12 @@
<template #toolbar> <template #toolbar>
<a-button type="primary" <a-button type="primary"
@click="handleMutualTaskAdd()" @click="handleMutualTaskAdd()"
>新增任务</a-button> >新增</a-button>
</template> </template>
<template #action="{ record, column }"> <template #action="{ record, column }">
<TableAction :actions="[ <TableAction :actions="[
{ {
label: '设置为交接任务', label: '转办',
icon: 'fa6-regular:pen-to-square', icon: 'fa6-regular:pen-to-square',
onClick: handleMutualTask.bind(null, record) onClick: handleMutualTask.bind(null, record)
}]" }]"
@ -42,11 +42,10 @@
import { reactive } from 'vue'; import { reactive } from 'vue';
import {BasicModal, ModalProps, useModal, useModalInner} from '/@/components/Modal'; import {BasicModal, ModalProps, useModal, useModalInner} from '/@/components/Modal';
import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table'; import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table';
import { formTaskColumns, formMutualTaskColumns, largeHospitalMapList, smallHospitalMapList, } from './map.data'; import { formTaskColumns, formMutualTaskColumns, largeHospitalMapList, smallHospitalMapList, } from '../amap.data';
import { buildUUID } from '/@/utils/uuid'; import { buildUUID } from '/@/utils/uuid';
import { add, divide } from 'lodash-es'; import MutualTaskModal from './HandoverPresetModal.vue';
import MutualTaskModal from './MutualTaskModal.vue'; import MapDataSettingsModal from './MapPointModal.vue';
import MapDataSettingsModal from './MapDataSettingsModal.vue';
/** 类型规范统一声明定义区域 */ /** 类型规范统一声明定义区域 */
interface WindowState { interface WindowState {
@ -70,14 +69,14 @@
driving = data.driving; driving = data.driving;
state.formData = data.formData; state.formData = data.formData;
const props: Partial<ModalProps> = { confirmLoading: false }; const props: Partial<ModalProps> = { confirmLoading: false };
props.title = '添加收样员任务'; props.title = '任务配置';
// : // :
setModalProps(props); setModalProps(props);
}); });
const [mutualRegisterModal, { openModal }] = useModal(); const [mutualRegisterModal, { openModal }] = useModal();
const [mapDataRegisterModal, { openModal: mapDataOpenModal }] = useModal(); const [mapDataRegisterModal, { openModal: mapDataOpenModal }] = useModal();
const [registerTable, { reload, getDataSource }] = useTable({ const [registerTable, { reload, getDataSource }] = useTable({
title: '任务设置', title: '普通任务',
columns: formTaskColumns, columns: formTaskColumns,
pagination: { pagination: {
pageSize: 3, pageSize: 3,
@ -97,7 +96,7 @@
} }
}); });
const [schemeRegisterTable, { reload: schemeReload, getDataSource: getMutualDataSource, setProps }] = useTable({ const [schemeRegisterTable, { reload: schemeReload, getDataSource: getMutualDataSource, setProps }] = useTable({
title: '交接任务设置', title: '交接任务',
columns: formMutualTaskColumns, columns: formMutualTaskColumns,
pagination: { pagination: {
pageSize: 3, pageSize: 3,

4
src/components/AMapDesigner/index.ts

@ -1,4 +0,0 @@
import { withInstall } from '/@/utils';
import Amap from './src/Amap.vue';
export const AMap = withInstall(Amap);

6
src/views/common/mapLogistic/MapLogisticModal.vue

@ -5,7 +5,7 @@
:showCancelBtn="false" :showCancelBtn="false"
@register="registerModal" @register="registerModal"
> >
<AMap/> <AMapDesigner/>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -17,7 +17,7 @@
*/ */
import { ref, unref } from 'vue'; import { ref, unref } from 'vue';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal'; import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
import { AMap } from '/@/components/AMapDesigner'; import { AMapDesigner } from '/@/components/AMap';
/** 通用变量统一声明区域 */ /** 通用变量统一声明区域 */
const tag = ref<Nullable<string>>(''); const tag = ref<Nullable<string>>('');
@ -30,7 +30,7 @@
// //
tag.value = data._tag; tag.value = data._tag;
const deptId = data.record?.deptId; const deptId = data.record?.deptId;
const props: Partial<ModalProps> = { confirmLoading: false, title: '地图设计' }; const props: Partial<ModalProps> = { confirmLoading: false, title: '地图设计' };
// tag // tag
switch (unref(tag)) { switch (unref(tag)) {
case 'add': case 'add':

Loading…
Cancel
Save