tangning 1 день назад
Родитель
Сommit
9b8946f778
5 измененных файлов с 265 добавлено и 90 удалено
  1. 3 1
      src/locales/lang/json/ja.json
  2. 2 0
      src/locales/lang/json/zh-CN.json
  3. 134 0
      src/views/staff/exportModal.vue
  4. 40 8
      src/views/staff/list.vue
  5. 86 81
      yarn.lock

+ 3 - 1
src/locales/lang/json/ja.json

@@ -32,6 +32,7 @@
     "errCode5027": "カメラの機種が異なるため、移動に失敗しました",
     "errCode5028": "計算中です。お待ちください。",
     "errCode5031": "このシーンには位置情報がなく、地図に表示できません!",
+    "errCode5038": "現在、ユーザーは無効にされています。プラットフォーム管理者にご連絡ください。",
     "errCode5039": "フォルダ名を同じにすることはできません"
   },
   "common": {
@@ -679,9 +680,10 @@
       "webSite": "物件リンク"
     },
     "staff": {
+      "accounting": "げつどせいさん",
       "createTime": "作成日時",
       "deptName": "関係会社",
-      "export": "エクスポートしました",
+      "export": "エクスポート又は出力",
       "mobile": "携帯電話",
       "nickName": "担当者",
       "roleType": {

+ 2 - 0
src/locales/lang/json/zh-CN.json

@@ -32,6 +32,7 @@
     "errCode5027": "相机类型不同,不能迁移",
     "errCode5028": "正在计算中,请耐心等待",
     "errCode5031": "此场景无位置信息,无法在地图显示!",
+    "errCode5038": "当前用户已禁用,请联系平台管理员",
     "errCode5039": "文件夹不能同名"
   },
   "common": {
@@ -678,6 +679,7 @@
       "webSite": "场景链接"
     },
     "staff": {
+      "accounting": "核算月份",
       "createTime": "创建时间",
       "deptName": "所属公司",
       "export": "导出",

+ 134 - 0
src/views/staff/exportModal.vue

@@ -0,0 +1,134 @@
+<template>
+  <BasicModal
+    v-bind="$attrs"
+    @register="register"
+    :title="t('routes.staff.export')"
+    :okText="t('routes.staff.export')"
+    width="700px"
+    :minHeight="400"
+    @ok="handleSubmit"
+  >
+    <div class="pt-20px">
+      <BasicForm @register="registerForm">
+        <template #label="{ model, field }">
+          {{ model[field] }}
+        </template>
+      </BasicForm>
+    </div>
+    <template #centerFooter> </template>
+  </BasicModal>
+</template>
+<script lang="ts">
+  import { defineComponent, ref } from 'vue';
+  import { BasicModal, useModalInner } from '/@/components/Modal';
+  import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
+  import { downTemplate } from '/@/api/staff/list';
+  // import { BasicTable, useTable, BasicColumn, FormSchema } from '/@/components/Table';
+  // import { useMessage } from '/@/hooks/web/useMessage';
+  // import { checkUserAddAble } from '/@/api/corporation/modal';
+  import { useI18n } from '/@/hooks/web/useI18n';
+  import locale from 'ant-design-vue/es/date-picker/locale/ja_JP';
+  import { listAll, givePlatformAuth } from '/@/api/archive/list';
+  // import { bindAnchorListParam } from '/@/api/scene/model';
+  // import { Time } from '/@/components/Time';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  // import { useUserStore } from '/@/store/modules/user';
+
+  export default defineComponent({
+    components: { BasicModal, BasicForm },
+    props: {
+      userData: { type: Object },
+    },
+    emits: ['register', 'success'],
+    setup(_, { emit }) {
+      // const { createMessage } = useMessage();
+        const { t } = useI18n();
+        const { createMessage } = useMessage();
+        const schemas: FormSchema[] = [
+          {
+            field: 'userId',
+            component: 'Input',
+            label: 'id',
+            show: false,
+          },
+          {
+            field: 'timeList',
+            label: t('routes.staff.accounting'),
+            labelWidth: 130,
+            component: 'RangePicker',
+            required: true,
+            componentProps: {
+              showTime: false,
+              valueFormat: 'YYYY-MM-DD',
+              picker: "month",
+              locale: locale,
+              format: 'YYYY-MM-DD',
+            },
+          },
+        ];
+      const sceneNum = ref('');
+      const options = ref([]);
+      listAll({ page: 1, limit: 1000 }).then((res) => {
+        console.log('listAll', res);
+        options.value = res.map((ele) => {
+          return {
+            label: ele.platformName,
+            value: ele.id,
+          };
+        });
+      });
+      const [registerForm, { setFieldsValue, validate, updateSchema }] = useForm({
+        schemas: schemas,
+        labelWidth: 160,
+        showActionButtonGroup: false,
+
+        actionColOptions: {
+          span: 24,
+        },
+        // submitFunc: handleSubmit,
+      });
+
+      const [register, { closeModal }] = useModalInner((data) => {
+        data && onDataReceive(data);
+        updateSchema({
+          field: 'platformIds',
+          componentProps: {
+            options: options.value,
+          },
+        });
+      });
+
+      function onDataReceive(data) {
+        console.log('Data Received', data, data.num);
+
+        setFieldsValue({
+          ...data,
+          userId: data.id,
+        });
+
+        sceneNum.value = data.num;
+      }
+      const handleSubmit = async () => {
+        let params = await validate();
+          await downTemplate({
+            fileName: t('routes.staff.staffList'),
+            ...params,
+          });
+        createMessage.success(t('common.optSuccess'));
+        closeModal();
+        emit('reload');
+        console.log(params);
+      };
+
+      return {
+        t,
+        register,
+        schemas,
+        handleSubmit,
+        closeModal,
+        registerForm,
+        locale,
+      };
+    },
+  });
+</script>

+ 40 - 8
src/views/staff/list.vue

@@ -1,8 +1,9 @@
 <template>
   <div class="p-4">
+    {{ localeja }}
     <BasicTable @register="registerTable">
       <template #toolbar>
-        <a-button type="primary" @click="exportExcel"> {{ t("routes.staff.export") }}</a-button>
+        <a-button type="primary" @click="openexportModal(true, {})"> {{ t("routes.staff.export") }}</a-button>
       </template>
       <template #role="{ record }">
         {{ renderRoleType(record.role) }}
@@ -44,6 +45,7 @@
     </BasicTable>
     <SetpaswordModal @register="register" />
     <addpowerModal @register="registerpower" @reload="reload" />
+    <exportModal @register="registerExport" @reload="reload" />
   </div>
 </template>
 <script lang="ts">
@@ -57,6 +59,7 @@
   // import { h } from 'vue';
   import SetpaswordModal from './setpaswordModal.vue';
   import addpowerModal from './addpowerModal.vue';
+  import exportModal from './exportModal.vue';
   import { ListApi, deleteById, enableUser, downTemplate } from '/@/api/staff/list';
   import { useI18n } from '/@/hooks/web/useI18n';
   // import { useCopyToClipboard } from '/@/hooks/web/useCopyToClipboard';
@@ -65,14 +68,17 @@
   import { useUserStore } from '/@/store/modules/user';
   import { useLocaleStore } from '/@/store/modules/locale';
   const localeStore = useLocaleStore();
+  import dayjs from 'dayjs';
   import { Switch } from 'ant-design-vue';
-
-  const isJA = computed(() => localeStore.getLocale === 'ja');
-
+  import localezh from "ant-design-vue/es/date-picker/locale/zh_CN";
+  import localeja from "ant-design-vue/es/date-picker/locale/ja_JP";
+    const isJA = computed(() => localeStore.getLocale === 'ja');
+  dayjs.locale('ja');
   export default defineComponent({
-    components: { BasicTable, TableAction, SetpaswordModal, addpowerModal },
+    components: { BasicTable, TableAction, SetpaswordModal, addpowerModal, exportModal },
     setup() {
       const [register, { openModal }] = useModal();
+      const [registerExport, { openModal: openexportModal }] = useModal();
       const [registerpower, { openModal: openpowerModal }] = useModal();
       const { createConfirm, createMessage } = useMessage();
       const go = useGo();
@@ -171,15 +177,39 @@
       ];
 
       const searchForm: Partial<FormProps> = {
-        labelWidth: 100,
+        labelWidth: 80,
         schemas: [
           {
             field: 'phoneNum',
             label: t('routes.staff.userName'),
             component: 'Input',
             colProps: {
-              xl: 5,
-              xxl: 5,
+              span: 6,
+            },
+          },
+          {
+            field: 'companyName',
+            label: t('routes.staff.deptName'),
+            component: 'Input',
+            colProps: {
+              span: 6,
+            },
+          },
+          {
+            field: 'timeList',
+            label: t('routes.staff.createTime'),
+            labelWidth: 80,
+            component: 'RangePicker',
+            componentProps: {
+              showTime: false,
+              locale: isJA.value ? localeja : localezh,
+              valueFormat: 'YYYY-MM',
+              picker: "month",
+              mode: ['month', 'month'],
+              format: 'YYYY-MM',
+            },
+            colProps: {
+              span:6
             },
           },
         ],
@@ -259,6 +289,7 @@
         registerTable,
         createMessage,
         exportExcel,
+        registerExport,
         t,
         go,
         reload,
@@ -271,6 +302,7 @@
         handlepowerModal,
         isPatchAuth,
         handleDelete,
+        openexportModal,
       };
     },
   });

+ 86 - 81
yarn.lock

@@ -2481,14 +2481,14 @@
     estree-walker "^2.0.2"
     source-map "^0.6.1"
 
-"@vue/compiler-core@3.5.25", "@vue/compiler-core@^3.2.27":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.25.tgz#7ffb658d7919348baad8c491eb5b948ee8e44108"
-  integrity sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==
+"@vue/compiler-core@3.5.26", "@vue/compiler-core@^3.2.27":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.26.tgz#1a91ea90980528bedff7b1c292690bfb30612485"
+  integrity sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==
   dependencies:
     "@babel/parser" "^7.28.5"
-    "@vue/shared" "3.5.25"
-    entities "^4.5.0"
+    "@vue/shared" "3.5.26"
+    entities "^7.0.0"
     estree-walker "^2.0.2"
     source-map-js "^1.2.1"
 
@@ -2500,13 +2500,13 @@
     "@vue/compiler-core" "3.2.26"
     "@vue/shared" "3.2.26"
 
-"@vue/compiler-dom@3.5.25", "@vue/compiler-dom@^3.2.27":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz#dd799ac2474cda54303039310b8994f0cfb40957"
-  integrity sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==
+"@vue/compiler-dom@3.5.26", "@vue/compiler-dom@^3.2.27":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz#66c36b6ed8bdf43236d7188ea332bc9d078eb286"
+  integrity sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==
   dependencies:
-    "@vue/compiler-core" "3.5.25"
-    "@vue/shared" "3.5.25"
+    "@vue/compiler-core" "3.5.26"
+    "@vue/shared" "3.5.26"
 
 "@vue/compiler-sfc@3.2.26":
   version "3.2.26"
@@ -2524,16 +2524,16 @@
     postcss "^8.1.10"
     source-map "^0.6.1"
 
-"@vue/compiler-sfc@3.5.25", "@vue/compiler-sfc@^3.2.26", "@vue/compiler-sfc@^3.5.18":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.25.tgz#30377920c3869c3bb32111aa4aefad53921831ad"
-  integrity sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==
+"@vue/compiler-sfc@3.5.26", "@vue/compiler-sfc@^3.2.26", "@vue/compiler-sfc@^3.5.18":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz#fb1c6c4bf9a9e22bb169e039e19437cb6995917a"
+  integrity sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==
   dependencies:
     "@babel/parser" "^7.28.5"
-    "@vue/compiler-core" "3.5.25"
-    "@vue/compiler-dom" "3.5.25"
-    "@vue/compiler-ssr" "3.5.25"
-    "@vue/shared" "3.5.25"
+    "@vue/compiler-core" "3.5.26"
+    "@vue/compiler-dom" "3.5.26"
+    "@vue/compiler-ssr" "3.5.26"
+    "@vue/shared" "3.5.26"
     estree-walker "^2.0.2"
     magic-string "^0.30.21"
     postcss "^8.5.6"
@@ -2547,13 +2547,13 @@
     "@vue/compiler-dom" "3.2.26"
     "@vue/shared" "3.2.26"
 
-"@vue/compiler-ssr@3.5.25":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.25.tgz#51dd89b88a1e044d1beab158c91a29963d28eb96"
-  integrity sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==
+"@vue/compiler-ssr@3.5.26":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz#f6e94bccbb5339180779036ddfb614f998a197ea"
+  integrity sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==
   dependencies:
-    "@vue/compiler-dom" "3.5.25"
-    "@vue/shared" "3.5.25"
+    "@vue/compiler-dom" "3.5.26"
+    "@vue/shared" "3.5.26"
 
 "@vue/devtools-api@^6.0.0-beta.18", "@vue/devtools-api@^6.0.0-beta.21", "@vue/devtools-api@^6.5.0":
   version "6.6.4"
@@ -2571,48 +2571,48 @@
     estree-walker "^2.0.2"
     magic-string "^0.25.7"
 
-"@vue/reactivity@3.5.25", "@vue/reactivity@^3.2.27":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.25.tgz#2420fa02022dab3373033c955802b9cdab5435ad"
-  integrity sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==
+"@vue/reactivity@3.5.26", "@vue/reactivity@^3.2.27":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.26.tgz#59a1edf566dc80133c1c26c93711c877e8602c48"
+  integrity sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==
   dependencies:
-    "@vue/shared" "3.5.25"
+    "@vue/shared" "3.5.26"
 
-"@vue/runtime-core@3.5.25", "@vue/runtime-core@^3.2.26":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.25.tgz#5e524db201b419db6f091db440452fe4e49efdee"
-  integrity sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==
+"@vue/runtime-core@3.5.26", "@vue/runtime-core@^3.2.26":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.26.tgz#3f2c040bcf8018c03a1ab5adb0d788c13c986f0e"
+  integrity sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==
   dependencies:
-    "@vue/reactivity" "3.5.25"
-    "@vue/shared" "3.5.25"
+    "@vue/reactivity" "3.5.26"
+    "@vue/shared" "3.5.26"
 
-"@vue/runtime-dom@3.5.25":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.25.tgz#ebd9815f39ee70fe32698c615cc09bda604e4e06"
-  integrity sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==
+"@vue/runtime-dom@3.5.26":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz#5954848614883948ecc1f631a67b32cc32f81936"
+  integrity sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==
   dependencies:
-    "@vue/reactivity" "3.5.25"
-    "@vue/runtime-core" "3.5.25"
-    "@vue/shared" "3.5.25"
-    csstype "^3.1.3"
+    "@vue/reactivity" "3.5.26"
+    "@vue/runtime-core" "3.5.26"
+    "@vue/shared" "3.5.26"
+    csstype "^3.2.3"
 
-"@vue/server-renderer@3.5.25":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.25.tgz#ca67ac93cb84dd3c3bc2f89c046a18ab04f7cc96"
-  integrity sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==
+"@vue/server-renderer@3.5.26":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.26.tgz#269055497fcc75b3984063f866f17c748b565ef4"
+  integrity sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==
   dependencies:
-    "@vue/compiler-ssr" "3.5.25"
-    "@vue/shared" "3.5.25"
+    "@vue/compiler-ssr" "3.5.26"
+    "@vue/shared" "3.5.26"
 
 "@vue/shared@3.2.26":
   version "3.2.26"
   resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.26.tgz#7acd1621783571b9a82eca1f041b4a0a983481d9"
   integrity sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==
 
-"@vue/shared@3.5.25", "@vue/shared@^3.2.26", "@vue/shared@^3.2.27", "@vue/shared@^3.5.18":
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.25.tgz#21edcff133a5a04f72c4e4c6142260963fe5afbe"
-  integrity sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==
+"@vue/shared@3.5.26", "@vue/shared@^3.2.26", "@vue/shared@^3.2.27", "@vue/shared@^3.5.18":
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.26.tgz#1e02ef2d64aced818cd31d81ce5175711dc90a9f"
+  integrity sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==
 
 "@vue/test-utils@^2.0.0-rc.18":
   version "2.4.6"
@@ -3173,9 +3173,9 @@ base@^0.11.1:
     pascalcase "^0.1.1"
 
 baseline-browser-mapping@^2.9.0:
-  version "2.9.8"
-  resolved "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.8.tgz#04fb5c10ff9c7a1b04ac08cfdfc3b10942a8ac72"
-  integrity sha512-Y1fOuNDowLfgKOypdc9SPABfoWXuZHBOyCS4cD52IeZBhr4Md6CLLs6atcxVrzRmQ06E7hSlm5bHHApPKR/byA==
+  version "2.9.11"
+  resolved "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz#53724708c8db5f97206517ecfe362dbe5181deea"
+  integrity sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==
 
 big.js@^5.2.2:
   version "5.2.2"
@@ -3489,9 +3489,9 @@ camelcase@^6.2.0:
   integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
 
 caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001760:
-  version "1.0.30001760"
-  resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz#bdd1960fafedf8d5f04ff16e81460506ff9b798f"
-  integrity sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==
+  version "1.0.30001761"
+  resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz#4ca4c6e3792b24e8e2214baa568fc0e43de28191"
+  integrity sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==
 
 capital-case@^1.0.4:
   version "1.0.4"
@@ -4289,7 +4289,7 @@ cssstyle@^2.3.0:
   dependencies:
     cssom "~0.3.6"
 
-csstype@^3.1.3:
+csstype@^3.2.3:
   version "3.2.3"
   resolved "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a"
   integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==
@@ -4883,11 +4883,16 @@ entities@^3.0.1:
   resolved "https://registry.npmmirror.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4"
   integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
 
-entities@^4.2.0, entities@^4.4.0, entities@^4.5.0:
+entities@^4.2.0, entities@^4.4.0:
   version "4.5.0"
   resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
   integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
 
+entities@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmmirror.com/entities/-/entities-7.0.0.tgz#2ae4e443f3f17d152d3f5b0f79b932c1e59deb7a"
+  integrity sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==
+
 env-paths@^2.2.1:
   version "2.2.1"
   resolved "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
@@ -5630,9 +5635,9 @@ fastest-levenshtein@^1.0.16:
   integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
 
 fastq@^1.6.0:
-  version "1.19.1"
-  resolved "https://registry.npmmirror.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5"
-  integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
+  version "1.20.1"
+  resolved "https://registry.npmmirror.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675"
+  integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==
   dependencies:
     reusify "^1.0.4"
 
@@ -5941,9 +5946,9 @@ fs-extra@^10.0.0:
     universalify "^2.0.0"
 
 fs-extra@^11.2.0:
-  version "11.3.2"
-  resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.2.tgz#c838aeddc6f4a8c74dd15f85e11fe5511bfe02a4"
-  integrity sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==
+  version "11.3.3"
+  resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.3.tgz#a27da23b72524e81ac6c3815cc0179b8c74c59ee"
+  integrity sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==
   dependencies:
     graceful-fs "^4.2.0"
     jsonfile "^6.0.1"
@@ -9569,9 +9574,9 @@ posthtml@^0.9.2:
     posthtml-render "^1.0.5"
 
 preact@^10.4.8:
-  version "10.28.0"
-  resolved "https://registry.npmmirror.com/preact/-/preact-10.28.0.tgz#a851300df42842797046545e4172a4128d158755"
-  integrity sha512-rytDAoiXr3+t6OIP3WGlDd0ouCUG1iCWzkcY3++Nreuoi17y6T5i/zRhe6uYfoVcxq6YU+sBtJouuRDsq8vvqA==
+  version "10.28.1"
+  resolved "https://registry.npmmirror.com/preact/-/preact-10.28.1.tgz#83325f0141bc8c97977c64d532429d667a26b411"
+  integrity sha512-u1/ixq/lVQI0CakKNvLDEcW5zfCjUQfZdK9qqWuIJtsezuyG6pk9TWj75GMuI/EzRSZB/VAE43sNWWZfiy8psw==
 
 prelude-ls@^1.2.1:
   version "1.2.1"
@@ -12172,15 +12177,15 @@ vue3-google-map@^0.21.0:
     fast-deep-equal "^3.1.3"
 
 vue@^3.2.26:
-  version "3.5.25"
-  resolved "https://registry.npmmirror.com/vue/-/vue-3.5.25.tgz#b68b5092b617c57a0a36e8e640fd2c09aa2a374d"
-  integrity sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==
-  dependencies:
-    "@vue/compiler-dom" "3.5.25"
-    "@vue/compiler-sfc" "3.5.25"
-    "@vue/runtime-dom" "3.5.25"
-    "@vue/server-renderer" "3.5.25"
-    "@vue/shared" "3.5.25"
+  version "3.5.26"
+  resolved "https://registry.npmmirror.com/vue/-/vue-3.5.26.tgz#03a0b17311e0e593d34b9358fa249b85e3a6d9fb"
+  integrity sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==
+  dependencies:
+    "@vue/compiler-dom" "3.5.26"
+    "@vue/compiler-sfc" "3.5.26"
+    "@vue/runtime-dom" "3.5.26"
+    "@vue/server-renderer" "3.5.26"
+    "@vue/shared" "3.5.26"
 
 w3c-hr-time@^1.0.2:
   version "1.0.2"