import { defineComponent, onMounted, ref, computed, PropType, watch, onUnmounted } from "vue"; import { Button, Tag, Form, Row, Col, Input, Select, Modal, Steps, Table, Radio, Checkbox, Divider, InputNumber, } from "ant-design-vue"; import { DownOutlined, PlusSquareOutlined } from "@ant-design/icons-vue"; import style from "@/assets/style/Report/report.module.less"; import useEnterpriseReportStore from "@/store/enterpriseReport"; import useGlobalState from "@/store/global"; import { useStore } from "@/hook/useStore"; import { IAreaOverlayDataOption, IImagePointOverlayDataOption, IODSegmentOverlayDataOption, IOverlayFilter, IPointOverlayDataOption, ISegmentOverlayDataOption, OverlayTypesDic, } from "@/modules/hpaas-core/visual/overlay.types"; import { ColorPicker } from "vue-color-kit"; import "vue-color-kit/dist/vue-color-kit.css"; import roadApi, { TableFieldDataType, TableFieldFunctionType, tableFieldServer, tableServer, } from "@/http/api_road_network"; import { addUserDefineLayer } from "@/http/api_graphql_layer"; const AddLayer = defineComponent({ setup() { const { Step } = Steps; const { addLayerModalVisible, mapConfig, mapConfigFilters } = useStore(useEnterpriseReportStore); const handleOk = () => {}; const handleCancel = () => { addLayerModalVisible.value = false; }; const currentStep = ref(0); const stepChange = (current: number) => { currentStep.value = current; }; return () => (
{/* */}
{currentStep.value == 0 && (
请选择图层类型: { mapConfig.value.type = e.target.value; }} > {Object.keys(OverlayTypesDic).map((k: string) => { return ( {OverlayTypesDic[k]} ); })}
)} {/* {currentStep.value == 1 && (
请配置图层属性:
)} */} {currentStep.value == 1 && (
请选择数据源
)} {currentStep.value == 2 && (
图层设置
{/*
显示设置
*/}
)}
); }, }); const LayerConfig = defineComponent({ setup() { const { mapConfigFilters, mapConfig, activeTableFieldList } = useStore(useEnterpriseReportStore); const colors: { [key: string]: string[] } = { "1": ["#ffaaa7", "#d5ecc2", "#98ddca"], "2": ["#5181FF", "#E75151", "#A36FF8", "#F9A629", "#73BFE7", "#5E6AB0", "#48BE0B"], }; const filters = mapConfigFilters; const colorPickerShow = ref(false); // const toggleColorPicker = () => { // colorPickerShow.value = !colorPickerShow; // }; document.body.addEventListener("click", () => { filters.value.forEach((f) => { f.showPicker = false; }); }); const tableFieldList = ref([]); const loadFieldList = async (tableUid: string) => { const result = await roadApi.table.loadFieldsByTableUid(tableUid); tableFieldList.value = result; }; onMounted(() => { mapConfig.value.tableUid && loadFieldList(mapConfig.value.tableUid); }); return () => (
{ mapConfig.value.name = e.target.value; mapConfig.value.key = e.target.value; }} /> { mapConfig.value.category = e.target.value; }} /> {mapConfig.value.type && ["area"].indexOf(mapConfig.value.type) != -1 ? ( { mapConfig.value.colors = colors[e.target.value]; }} > {Object.keys(colors).map((key: string) => { const cs = colors[key]; return (
{cs.map((c) => { return ( ); })}
); })}
) : null} { mapConfig.value.size = e; }} /> {mapConfig.value.type && ["point-cluster", "image-point", "point"].indexOf(mapConfig.value.type) != -1 ? ( ) : null} {mapConfig.value.type && ["segment-path", "segment-od"].indexOf(mapConfig.value.type) != -1 ? ( {mapConfig.value.type && ["segment-path"].indexOf(mapConfig.value.type) != -1 ? ( { mapConfig.value.segmentUidFlat = e.target.checked; }} style="width:200px;" > 数据是否折叠(逗号分隔) ) : null} ) : null} {mapConfig.value.type && ["area"].indexOf(mapConfig.value.type) != -1 ? ( ) : null}
设定可能的值
{filters.value.map((f, i) => { return (
{ f.name = e.target.value; }} > { f.value = e.target.value; }} > 默认是否选中
{ e.stopPropagation(); setTimeout(() => { f.showPicker = true; }, 100); }} > { f.color = e.target.value; }} >
{ f.imgUrl = e.target.value; }} > {f.showPicker ? ( { f.color = color.hex; }} onClick={(e: any) => { e.stopPropagation(); }} /> ) : null}
); })}
{ filters.value.push({ color: "", name: "", value: "", checked: true, totalCount: 0, showPicker: false, }); }} >
添加一个值
); }, }); const TableDIV = defineComponent({ setup() { const { allMetaTables, activeTableFieldList, mapConfig } = useStore(useEnterpriseReportStore); const fieldsColumns = ref([ { title: "字段名", dataIndex: "fieldAlias", key: "fieldAlias", }, { title: "原始字段名", dataIndex: "fieldName", key: "fieldName", }, { title: "字段功能类型", dataIndex: "functionType", key: "functionType", customRender: (e: any) => { return {TableFieldFunctionType[e.text] || ""} ; }, }, { title: "字段数据类型", dataIndex: "dataType", key: "dataType", customRender: (e: any) => { return {TableFieldDataType[e.text] || ""} ; }, }, { title: "字段最大长度", dataIndex: "maxLength", key: "maxLength", }, { title: "备注", dataIndex: "remark", key: "remark", }, ]); const loadTables = async () => { allMetaTables.value = await roadApi.table.queryByCondition(); }; const selectTable = async (tableUid: string) => { mapConfig.value.tableUid = tableUid; const result = await roadApi.table.loadFieldsByTableUid(tableUid); activeTableFieldList.value = []; result.forEach((r) => { activeTableFieldList.value.push(r); }); }; onMounted(() => { loadTables(); }); return () => (
{allMetaTables.value.map((t) => { return ( { selectTable(t.uid); }} color={mapConfig.value.tableUid == t.uid ? "#2db7f5" : ""} style="margin-bottom:5px;cursor:pointer;" > {t.tableAlias} ); })}
); }, }); export default AddLayer;