From 97b2e606968fbe7a55df1173f52edc7e11ccfd12 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期一, 24 八月 2026 10:32:09 +0800
Subject: [PATCH] fix 修改页面
---
/dev/null | 102 ---------------------------------------------------
vite.config.ts | 2
src/plugins/form-create/index.ts | 2 -
3 files changed, 1 insertions(+), 105 deletions(-)
diff --git a/src/assets/imgs/diy/app-nav-bar-mp.png b/src/assets/imgs/diy/app-nav-bar-mp.png
deleted file mode 100644
index c982804..0000000
--- a/src/assets/imgs/diy/app-nav-bar-mp.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/imgs/diy/statusBar.png b/src/assets/imgs/diy/statusBar.png
deleted file mode 100644
index b85562e..0000000
--- a/src/assets/imgs/diy/statusBar.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/imgs/iot/device.png b/src/assets/imgs/iot/device.png
deleted file mode 100644
index 79339cd..0000000
--- a/src/assets/imgs/iot/device.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/imgs/wechat.png b/src/assets/imgs/wechat.png
deleted file mode 100644
index 6afc5e4..0000000
--- a/src/assets/imgs/wechat.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/svgs/iot/cube.svg b/src/assets/svgs/iot/cube.svg
deleted file mode 100644
index 200ac1b..0000000
--- a/src/assets/svgs/iot/cube.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none" viewBox="0 0 12 12"><g clip-path="url(#a)"><path fill="url(#b)" fill-rule="evenodd" d="M6.958.42C6.444.216 5.61.216 5.098.42L1.15 1.975c-.77.304-.77.797 0 1.1l3.947 1.558c.514.202 1.347.202 1.86 0l3.948-1.557c.77-.304.77-.797 0-1.1L6.958.418ZM4.715 11.788a.857.857 0 0 0 .3.056c.383 0 .671-.295.671-.7V6.404c0-.49-.364-1.007-.817-1.177L1.09 3.805a.808.808 0 0 0-.284-.056c-.353 0-.581.275-.581.7V9.19c0 .508.33 1.014.763 1.177l3.726 1.422Zm2.229-.024h-.02l.073.003c.074.004.154.009.227-.019L11 10.367c.45-.168.83-.686.83-1.177V4.45c0-.413-.29-.7-.673-.7a.965.965 0 0 0-.317.055l-3.72 1.422c-.44.165-.75.67-.75 1.177v4.74c0 .42.218.621.575.621Z" clip-rule="evenodd"/></g><defs><linearGradient id="b" x1=".226" x2="11.803" y1=".267" y2="11.871" gradientUnits="userSpaceOnUse"><stop stop-color="#1B3149"/><stop offset="1" stop-color="#717D8A"/></linearGradient><clipPath id="a"><path fill="#fff" d="M0 0h12v12H0z"/></clipPath></defs></svg>
\ No newline at end of file
diff --git a/src/components/map/index.ts b/src/components/map/index.ts
deleted file mode 100644
index c8b84da..0000000
--- a/src/components/map/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as MapDialog } from './src/map-dialog.vue';
-
-export { loadBaiduMapSdk } from './src/utils';
diff --git a/src/components/map/src/map-dialog.vue b/src/components/map/src/map-dialog.vue
deleted file mode 100644
index 805d607..0000000
--- a/src/components/map/src/map-dialog.vue
+++ /dev/null
@@ -1,291 +0,0 @@
-<!-- 鍦板浘閫夋嫨寮圭獥缁勪欢锛氬熀浜庣櫨搴﹀湴鍥� GL 瀹炵幇 -->
-<script setup lang="ts">
-import { nextTick, reactive, ref } from 'vue';
-
-import { useVbenModal } from '@vben/common-ui';
-
-import { Button, Form, Input, Select, Space } from 'ant-design-vue';
-
-import { loadBaiduMapSdk } from './utils';
-
-const emit = defineEmits<{
- confirm: [
- data: {
- address: string;
- latitude: string;
- longitude: string;
- },
- ];
-}>();
-
-const mapContainerRef = ref<HTMLElement>();
-const state = reactive({
- lonLat: '', // 缁忕含搴﹀瓧绗︿覆锛屾牸寮忎负 "缁忓害,绾害"
- address: '', // 鍦板潃淇℃伅
- loading: false, // 鍦板潃鎼滅储鍔犺浇鐘舵��
- latitude: '', // 绾害
- longitude: '', // 缁忓害
- map: null as any, // 鐧惧害鍦板浘瀹炰緥
- mapAddressOptions: [] as any[], // 鍦板潃鎼滅储閫夐」
- mapMarker: null as any, // 鍦板浘鏍囪鐐�
- geocoder: null as any, // 鍦扮悊缂栫爜鍣ㄥ疄渚�
- mapContainerReady: false, // 鍦板浘瀹瑰櫒鏄惁鍑嗗濂�
-});
-
-// 鍒濆缁忕含搴︼紙鎵撳紑寮圭獥鏃朵紶鍏ワ級
-const initLongitude = ref<number | undefined>();
-const initLatitude = ref<number | undefined>();
-
-/** 寮圭獥鎵撳紑鍔ㄧ敾瀹屾垚鍚庡垵濮嬪寲鍦板浘 */
-async function handleDialogOpened() {
- // 鍏堟樉绀哄湴鍥惧鍣�
- state.mapContainerReady = true;
-
- // 绛夊緟涓嬩竴涓� DOM 鏇存柊鍛ㄦ湡锛岀‘淇濆湴鍥惧鍣ㄥ凡娓叉煋
- await nextTick();
- // 鍔犺浇鐧惧害鍦板浘 SDK
- await loadBaiduMapSdk();
- initMapInstance();
-}
-
-/** 寮圭獥鍏抽棴鍚庢竻鐞嗗湴鍥� */
-function handleDialogClosed() {
- // 閿�姣佸湴鍥惧疄渚�
- if (state.map) {
- state.map.destroy?.();
- state.map = null;
- }
- state.mapMarker = null;
- state.geocoder = null;
- state.mapContainerReady = false;
-}
-
-/** 鍒濆鍖栧湴鍥惧疄渚� */
-function initMapInstance() {
- if (!mapContainerRef.value) {
- return;
- }
-
- // 鍒濆鍖栧湴鍥惧拰鍦扮悊缂栫爜鍣�
- initMap();
- initGeocoder();
-
- // 鐩戝惉鍦板浘鐐瑰嚮浜嬩欢
- state.map.addEventListener('click', (e: any) => {
- const point = e.latlng;
- state.lonLat = `${point.lng},${point.lat}`;
- regeoCode(state.lonLat);
- });
-
- // 濡傛灉鏈夊垵濮嬬粡绾害锛屽姞杞芥爣璁扮偣
- if (initLongitude.value && initLatitude.value) {
- const lonLat = `${initLongitude.value},${initLatitude.value}`;
- regeoCode(lonLat);
- }
-}
-
-/** 鍒濆鍖栧湴鍥� */
-function initMap() {
- state.map = new window.BMapGL.Map(mapContainerRef.value);
- state.map.centerAndZoom(new window.BMapGL.Point(116.404, 39.915), 11);
- state.map.enableScrollWheelZoom();
- state.map.disableDoubleClickZoom();
-
- state.map.addControl(new window.BMapGL.NavigationControl());
- state.map.addControl(new window.BMapGL.ScaleControl());
- state.map.addControl(new window.BMapGL.ZoomControl());
-}
-
-/** 鍒濆鍖栧湴鐞嗙紪鐮佸櫒 */
-function initGeocoder() {
- state.geocoder = new window.BMapGL.Geocoder();
-}
-
-/** 鎼滅储鍦板潃 */
-function autoSearch(queryValue: string) {
- if (!queryValue) {
- state.mapAddressOptions = [];
- return;
- }
-
- state.loading = true;
-
- // noinspection JSUnusedGlobalSymbols
- const localSearch = new window.BMapGL.LocalSearch(state.map, {
- onSearchComplete: (results: any) => {
- state.loading = false;
- const temp: any[] = [];
-
- if (results && results._pois) {
- results._pois.forEach((p: any) => {
- const point = p.point;
- if (point && point.lng && point.lat) {
- temp.push({
- name: p.title,
- value: `${point.lng},${point.lat}`,
- });
- }
- });
- }
-
- state.mapAddressOptions = temp;
- },
- });
-
- localSearch.search(queryValue);
-}
-
-/** 澶勭悊鍦板潃閫夋嫨 */
-function handleAddressSelect(value: unknown) {
- const selectedValue =
- typeof value === 'object' && value !== null && 'value' in value
- ? (value as { value?: number | string }).value
- : value;
- if (selectedValue !== undefined && selectedValue !== null) {
- regeoCode(String(selectedValue));
- }
-}
-
-/** 娣诲姞鏍囪鐐� */
-function setMarker(lnglat: string[]) {
- if (!lnglat) {
- return;
- }
-
- if (state.mapMarker !== null) {
- state.map.removeOverlay(state.mapMarker);
- }
-
- const point = new window.BMapGL.Point(lnglat[0], lnglat[1]);
- state.mapMarker = new window.BMapGL.Marker(point);
-
- state.map.addOverlay(state.mapMarker);
- state.map.centerAndZoom(point, 16);
-}
-
-/** 缁忕含搴﹁浆鍦板潃銆佹坊鍔犳爣璁扮偣 */
-function regeoCode(lonLat: string) {
- if (!lonLat) {
- return;
- }
- const lnglat = lonLat.split(',');
- if (lnglat.length !== 2) {
- return;
- }
-
- state.longitude = lnglat[0]!;
- state.latitude = lnglat[1]!;
- const point = new window.BMapGL.Point(lnglat[0], lnglat[1]);
- state.map.centerAndZoom(point, 16);
-
- setMarker(lnglat);
- getAddress(lnglat);
-}
-
-/** 鏍规嵁缁忕含搴﹁幏鍙栧湴鍧�淇℃伅 */
-function getAddress(lnglat: string[]) {
- const point = new window.BMapGL.Point(lnglat[0], lnglat[1]);
- state.geocoder.getLocation(point, (result: any) => {
- if (result && result.address) {
- state.address = result.address;
- }
- });
-}
-
-/** 纭閫夋嫨 */
-function handleConfirm() {
- if (state.longitude && state.latitude) {
- emit('confirm', {
- longitude: state.longitude,
- latitude: state.latitude,
- address: state.address,
- });
- }
- modalApi.close();
-}
-
-const [Modal, modalApi] = useVbenModal({
- onOpenChange(isOpen: boolean) {
- if (isOpen) {
- handleDialogOpened();
- } else {
- handleDialogClosed();
- }
- },
-});
-
-/** 鎵撳紑寮圭獥 */
-function open(longitude?: number, latitude?: number) {
- initLongitude.value = longitude;
- initLatitude.value = latitude;
- state.longitude = longitude ? String(longitude) : '';
- state.latitude = latitude ? String(latitude) : '';
- state.address = '';
- state.mapAddressOptions = [];
- modalApi.open();
-}
-
-defineExpose({ open });
-</script>
-
-<template>
- <Modal :footer="false" class="w-[700px]" title="鐧惧害鍦板浘">
- <div class="w-full">
- <!-- 绗竴琛岋細浣嶇疆鎼滅储 -->
- <Form :label-col="{ span: 4 }">
- <Form.Item label="瀹氫綅浣嶇疆">
- <Select
- v-model:value="state.address"
- :filter-option="false"
- :loading="state.loading"
- :options="
- state.mapAddressOptions.map((item) => ({
- label: item.name,
- value: item.value,
- }))
- "
- allow-clear
- class="w-full"
- placeholder="鍙緭鍏ュ湴鍧�鏌ヨ缁忕含搴�"
- show-search
- @search="autoSearch"
- @select="handleAddressSelect"
- />
- </Form.Item>
- <!-- 绗簩琛岋細鍧愭爣鏄剧ず -->
- <Form.Item label="褰撳墠鍧愭爣">
- <Space>
- <Input
- :value="state.longitude"
- addon-before="缁忓害"
- disabled
- style="width: 180px"
- />
- <Input
- :value="state.latitude"
- addon-before="绾害"
- disabled
- style="width: 180px"
- />
- </Space>
- </Form.Item>
- </Form>
- <!-- 绗笁琛岋細鍦板浘 -->
- <div
- v-if="state.mapContainerReady"
- ref="mapContainerRef"
- class="mt-[10px] h-[400px] w-full"
- ></div>
- <div
- v-else
- class="mt-[10px] flex h-[400px] w-full items-center justify-center"
- >
- <span class="text-gray-400">鍦板浘鍔犺浇涓�...</span>
- </div>
- </div>
- <div class="mt-4 flex justify-end gap-2">
- <Button type="primary" @click="handleConfirm">纭� 瀹�</Button>
- <Button @click="modalApi.close()">鍙� 娑�</Button>
- </div>
- </Modal>
-</template>
diff --git a/src/components/map/src/utils.ts b/src/components/map/src/utils.ts
deleted file mode 100644
index c5ff378..0000000
--- a/src/components/map/src/utils.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-/* eslint-disable @typescript-eslint/no-dynamic-delete */
-/**
- * 鐧惧害鍦板浘 SDK 鍔犺浇宸ュ叿
- */
-
-// 鎵╁睍 Window 鎺ュ彛浠ュ寘鍚櫨搴﹀湴鍥� GL API
-declare global {
- interface Window {
- BMapGL: any;
- }
-}
-
-// 鍏ㄥ眬鍥炶皟鍚嶇О
-const CALLBACK_NAME = '__BAIDU_MAP_LOAD_CALLBACK__';
-
-// SDK 鍔犺浇鐘舵��
-let loadPromise: null | Promise<void> = null;
-
-/**
- * 鍔犺浇鐧惧害鍦板浘 GL SDK
- * @param timeout 瓒呮椂鏃堕棿锛堟绉掞級锛岄粯璁� 10000
- * @returns Promise<void>
- */
-export const loadBaiduMapSdk = (timeout = 10_000): Promise<void> => {
- // 宸插姞杞藉畬鎴�
- if (window.BMapGL) {
- return Promise.resolve();
- }
-
- // 姝e湪鍔犺浇涓紝杩斿洖鍚屼竴涓� Promise
- if (loadPromise) {
- return loadPromise;
- }
-
- loadPromise = new Promise((resolve, reject) => {
- const timeoutId = setTimeout(() => {
- loadPromise = null;
- reject(new Error('鐧惧害鍦板浘 SDK 鍔犺浇瓒呮椂'));
- }, timeout);
-
- // 鍏ㄥ眬鍥炶皟
- (window as any)[CALLBACK_NAME] = () => {
- clearTimeout(timeoutId);
- delete (window as any)[CALLBACK_NAME];
- resolve();
- };
-
- // 鍒涘缓 script 鏍囩
- const script = document.createElement('script');
- script.src = `https://api.map.baidu.com/api?v=1.0&type=webgl&ak=${
- import.meta.env.VITE_BAIDU_MAP_KEY
- }&callback=${CALLBACK_NAME}`;
- script.addEventListener('onerror', () => {
- clearTimeout(timeoutId);
- loadPromise = null;
- delete (window as any)[CALLBACK_NAME];
- reject(new Error('鐧惧害鍦板浘 SDK 鍔犺浇澶辫触'));
- });
- document.body.append(script);
- });
-
- return loadPromise;
-};
diff --git a/src/components/shortcut-date-range-picker/index.ts b/src/components/shortcut-date-range-picker/index.ts
deleted file mode 100644
index a3ee515..0000000
--- a/src/components/shortcut-date-range-picker/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { default as ShortcutDateRangePicker } from './shortcut-date-range-picker.vue';
diff --git a/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue b/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue
deleted file mode 100644
index 3dc3f15..0000000
--- a/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<script lang="ts" setup>
-import type { Dayjs } from 'dayjs';
-
-import { onMounted, ref } from 'vue';
-
-import { DatePicker, Radio, RadioGroup } from 'ant-design-vue';
-import dayjs from 'dayjs';
-
-import { getRangePickerDefaultProps } from '#/utils/rangePickerProps';
-
-/** 蹇嵎鏃ユ湡鑼冨洿閫夋嫨缁勪欢 */
-defineOptions({ name: 'ShortcutDateRangePicker' });
-
-const emits = defineEmits<{
- change: [times: [Dayjs, Dayjs]];
-}>();
-
-const times = ref<[Dayjs, Dayjs]>(); // 鏃ユ湡鑼冨洿
-
-const rangePickerProps = getRangePickerDefaultProps();
-const timeRangeOptions = [
- rangePickerProps.presets[3]!, // 鏄ㄥぉ
- {
- label: rangePickerProps.presets[1]!.label,
- value: [
- dayjs().subtract(7, 'day').startOf('day'),
- dayjs().subtract(1, 'day').endOf('day'),
- ],
- },
- {
- label: rangePickerProps.presets[2]!.label,
- value: [
- dayjs().subtract(30, 'day').startOf('day'),
- dayjs().subtract(1, 'day').endOf('day'),
- ],
- },
-];
-const timeRangeType = ref(timeRangeOptions[1]!.label); // 榛樿閫変腑绗竴涓�夐」
-
-/** 璁剧疆鏃堕棿鑼冨洿 */
-function setTimes() {
- // 鏍规嵁閫変腑鐨勯�夐」璁剧疆鏃堕棿鑼冨洿
- const selectedOption = timeRangeOptions.find(
- (option) => option.label === timeRangeType.value,
- );
- if (selectedOption) {
- times.value = selectedOption.value as [Dayjs, Dayjs];
- }
-}
-
-/** 蹇嵎鏃ユ湡鍗曢�夋寜閽�変腑 */
-async function handleShortcutDaysChange() {
- // 璁剧疆鏃堕棿鑼冨洿
- setTimes();
- // 瑙﹀彂鏃堕棿鑼冨洿閫変腑浜嬩欢
- emitDateRangePicker();
-}
-
-/** 鏃ユ湡鑼冨洿鏀瑰彉 */
-function handleDateRangeChange() {
- emitDateRangePicker();
-}
-
-/** 瑙﹀彂鏃堕棿鑼冨洿閫変腑浜嬩欢 */
-function emitDateRangePicker() {
- if (times.value && times.value.length === 2) {
- emits('change', times.value);
- }
-}
-
-/** 鍒濆鍖� */
-onMounted(() => {
- handleShortcutDaysChange();
-});
-</script>
-
-<template>
- <div class="flex items-center gap-2">
- <RadioGroup
- v-model:value="timeRangeType"
- @change="handleShortcutDaysChange"
- >
- <Radio
- v-for="option in timeRangeOptions"
- :key="option.label"
- :value="option.label"
- >
- {{ option.label }}
- </Radio>
- </RadioGroup>
- <DatePicker.RangePicker
- v-model:value="times"
- :format="rangePickerProps.format"
- :value-format="rangePickerProps.valueFormat"
- :placeholder="rangePickerProps.placeholder"
- :presets="rangePickerProps.presets"
- class="!w-full !max-w-96"
- @change="handleDateRangeChange"
- />
- <slot></slot>
- </div>
-</template>
diff --git a/src/plugins/form-create/index.ts b/src/plugins/form-create/index.ts
index e93252a..7057eee 100644
--- a/src/plugins/form-create/index.ts
+++ b/src/plugins/form-create/index.ts
@@ -2,7 +2,6 @@
import formCreate from '@form-create/ant-design-vue';
import install from '@form-create/ant-design-vue/auto-import';
-import FcDesigner from '@form-create/antd-designer';
// 馃憞浣跨敤 form-create 闇�棰濆鍏ㄥ眬寮曞叆 ant-design-vue 缁勪欢
import {
Alert,
@@ -98,5 +97,4 @@
app.component('AMessage', message);
formCreate.use(install);
app.use(formCreate);
- app.use(FcDesigner);
}
diff --git a/vite.config.ts b/vite.config.ts
index 0d6b580..58d7189 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -40,7 +40,7 @@
enable: false,
},
optimizeDeps: {
- include: ["vue", "vue-router", "pinia", "ant-design-vue", "dayjs", "@vueuse/core", "axios", "@vue-office/pdf", "@vue-office/docx", "@vue-office/excel", "@vue-office/pptx"],
+ include: ["vue", "vue-router", "pinia", "ant-design-vue", "dayjs", "@vueuse/core", "axios"],
exclude: ["dhtmlx-gantt", "tinymce", "bpmn-js", "bpmn-js-properties-panel", "video.js"],
},
build: {
--
Gitblit v1.9.3