ソースを参照

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Min 1 年間 前
コミット
4c6664c484
83 ファイル変更68770 行追加433 行削除
  1. 7 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/App.vue
  2. 48 3
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/404.vue
  3. 121 20
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/header/header.vue
  4. 7 3
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/home.vue
  5. 3 3
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/login.vue
  6. 4 95
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/index.vue
  7. 5 4
      fhKeeper/formulahousekeeper/customerBuler-crm/src/router/index.ts
  8. 1 1
      fhKeeper/formulahousekeeper/customerBuler-crm/vite.config.ts
  9. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  10. 80 29
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  11. 63 233
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  12. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  13. 58 37
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  14. 25 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/components/CodeEditor.vue.d.ts
  15. 22 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/components/ComponentGroup.vue.d.ts
  16. 680 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/config/index.d.ts
  17. 79 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/DesignForm.vue.d.ts
  18. 16 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/FormConfig.vue.d.ts
  19. 20 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/WidgetConfig.vue.d.ts
  20. 22 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/WidgetForm.vue.d.ts
  21. 25 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/WidgetFormItem.vue.d.ts
  22. 43 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateForm.vue.d.ts
  23. 26 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateFormItem.vue.d.ts
  24. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.css
  25. 4 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.d.ts
  26. 31402 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js
  27. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js.map
  28. 21 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/LICENSE
  29. 16 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/README.md
  30. 176 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/index.d.ts
  31. 40 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/package.json
  32. 21 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/LICENSE
  33. 123 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/README.md
  34. 6075 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.cjs
  35. 4305 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.d.ts
  36. 6164 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.iife.js
  37. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.iife.min.js
  38. 5920 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.mjs
  39. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/metadata.cjs
  40. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/metadata.d.ts
  41. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/metadata.mjs
  42. 16 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix
  43. 17 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix.cmd
  44. 28 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix.ps1
  45. 16 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch
  46. 17 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch.cmd
  47. 28 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch.ps1
  48. 21 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/LICENSE
  49. 1548 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.cjs
  50. 874 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.d.ts
  51. 1638 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.iife.js
  52. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.iife.min.js
  53. 1442 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.mjs
  54. 50 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/package.json
  55. 21 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/LICENSE
  56. 228 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/README.md
  57. 3 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-fix.js
  58. 3 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-switch.js
  59. 29 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.cjs
  60. 22 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.d.ts
  61. 119 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.iife.js
  62. 34 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs
  63. 60 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.cjs
  64. 38 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.d.ts
  65. 80 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.mjs
  66. 34 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.cjs
  67. 33 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.d.ts
  68. 49 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.mjs
  69. 29 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.cjs
  70. 22 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.d.ts
  71. 34 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.mjs
  72. 47 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/package.json
  73. 19 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/scripts/postinstall.js
  74. 18 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/scripts/switch-cli.js
  75. 62 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/scripts/utils.js
  76. 59 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/package.json
  77. 21 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/LICENSE
  78. 2107 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.cjs
  79. 75 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.d.ts
  80. 2059 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.json
  81. 2093 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.mjs
  82. 39 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/package.json
  83. 6 1
      fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

+ 7 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/App.vue

@@ -52,7 +52,7 @@ const notificationTiop = (options: NotificationParamsTyped) => {
 
 </script>
 
-<style>
+<style lang="scss">
 html,
 body,
 #app,
@@ -81,4 +81,10 @@ body,
 .ranimate-leave-active {
   animation: fadeIn 0s;
 }
+
+.drawerVisClass {
+  .el-drawer__body {
+    padding: 0 !important;
+  }
+}
 </style>

+ 48 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/404.vue

@@ -1,11 +1,56 @@
 <template>
   <div>
-    404
+    <div class="page-img">
+      <img src="../assets/404.png" />
+    </div>
+    <p class="page-container"><b>Error</b> 非常抱歉你访问的页面不存在!!!</p>
+    <div class="page-button">
+      <el-button type="primary" round @click="back" icon="el-icon-s-promotion">返回首页</el-button>
+    </div>
   </div>
 </template>
 
 <script lang="ts" setup>
-
+import { useRouter } from "vue-router";
+import { useStore } from "@/store/index"
+const router = useRouter();
+const { clearStore } = useStore()
+function back() {
+  clearStore();
+  router.replace('/login');
+}
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.page-img {
+  text-align: center;
+  display: flex;
+  justify-content: center;
+  padding: 100px 0 0 0;
+
+  img {
+    width: 600px;
+  }
+}
+
+.page-container {
+  font-size: 20px;
+  text-align: center;
+  color: rgb(192, 204, 218);
+
+  b {
+    margin-right: 30px;
+    font-size: 26px;
+  }
+}
+
+.page-button {
+  text-align: center;
+  margin-top: 40px;
+
+  .el-button.is-round {
+    width: 150px;
+    margin-right: 80px;
+  }
+}
+</style>

+ 121 - 20
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/header/header.vue

@@ -7,7 +7,8 @@
     <div v-for="(routerItem, routerItemIdex) in routerList"
       :class="`border-b-2 border-transparent hover:border-white p-2 mr-4 cursor-pointer multipleyHeader ${activeRouter?.path === routerItem.path ? 'border-white' : ''}`"
       :key="routerItem.path" ref="childDivs" v-show="visibleItems.includes(routerItemIdex)">
-      <div v-if="routerItem.children && routerItem.children.length <= 0 && routerItem?.isMenu" @click="setCurrentRouter(routerItem)" class="text-nowrap">
+      <div v-if="routerItem.children && routerItem.children.length <= 0 && routerItem?.isMenu"
+        @click="setCurrentRouter(routerItem)" class="text-nowrap">
         {{ routerItem.name }}
       </div>
       <div v-if="routerItem.children && routerItem.children.length > 0" class="flex justify-center items-center">
@@ -28,18 +29,54 @@
         </el-dropdown>
       </div>
     </div>
+    <div v-if="moreRoutes.length > 0" class="flex justify-center items-center">
+      <el-dropdown trigger="click">
+        <span class="text-white w-full h-full headerText">
+          <el-icon>
+            <MoreFilled />
+          </el-icon>
+        </span>
+        <template #dropdown>
+          <el-dropdown-menu>
+            <el-dropdown-item v-for="(child, childIndex) in moreRoutes" :key="child.path"
+              @click="moreSetCurrentRouter(child, childIndex)">
+              {{ child.name }}
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </template>
+      </el-dropdown>
+    </div>
   </div>
   <div class="flex flex-row justify-start items-center text-white header-right">
     <el-icon :size="26" class="ml-4 cursor-pointer">
       <Bell />
     </el-icon>
     <div>
-      <img class="w-8 h-8 rounded-full ml-4 cursor-pointer" :src="defaultCover" alt="" @click="logout()">
+      <img class="w- h-8 rounded-full ml-4 cursor-pointer" :src="defaultCover" alt="" @click="drawerVis = true">
     </div>
     <el-icon :size="26" class="ml-4 cursor-pointer">
       <Grid />
     </el-icon>
   </div>
+
+  <!-- 左侧 -->
+  <el-drawer v-model="drawerVis" modal-class="drawerVisClass" :with-header="false">
+    <div class="w-full h-full">
+      <div class="bg-[#075985]">
+        <div class="p-8">
+          <div class="w-[100px] h-[100px] p-2 border-[1px] border-[#999] rounded-full m-auto">
+            <img class="w-full h-full" :src="defaultCover">
+          </div>
+        </div>
+        <div class="text-center text-[20px] leading-none text-white pb-3">{{ userInfo.name }}</div>
+        <div class="text-center leading-none text-slate-50 pb-3">角色:{{ userInfo.roleName }}</div>
+        <div class="text-center leading-none text-slate-50 pb-3">公司:{{ userInfo.companyName }}</div>
+        <div class="w-full drawerVisBtn">
+          <div @click="logout()">退出</div>
+        </div>
+      </div>
+    </div>
+  </el-drawer>
 </template>
   
 <script lang="ts" setup>
@@ -48,7 +85,7 @@ import { RouteRecordRaw, useRouter, useRoute } from 'vue-router';
 import { useStore } from "../../store/index"
 import defaultCover from "../../assets/defaultCover.png";
 import loginLogin from '../../assets/login/login_logo.png'
-const { routers, clearStore } = useStore()
+const { routers, clearStore, userInfo } = useStore()
 const router = useRouter();
 const route = useRoute()
 // const routerList = ref<RouteRecordRaw[]>([]);
@@ -57,25 +94,28 @@ const activeRouter = ref<RouteRecordRaw>();
 
 const visibleItems = ref<number[]>([]);
 const parentDiv = ref<HTMLElement | null>(null);
+const itemLastIndex = ref(0)
+const moreRoutes = ref<any[]>([])
+const drawerVis = ref(false)
 
 const updateVisibleItems = () => {
-  const parentWidth = parentDiv.value?.offsetWidth || 10;
+  const parentWidth = (parentDiv.value?.offsetWidth && parentDiv.value?.offsetWidth - 150) || 10;
   const canvas = document.createElement('canvas');
   const context = canvas.getContext('2d');
 
   let textWidthList: any = [] // 所有文字的宽度
   let totalWidth = 0;
   let temporaryIndex: any = []
-  
-  if(context) {
+
+  if (context) {
     context.font = '16px 微软雅黑';
     textWidthList = routerList.value.map((item: any) => {
       const metrics = context.measureText(item.name);
       return Math.ceil(metrics.width) + 32; // 32是padding和margin的宽度
     })
   }
-  for(let i in textWidthList) {
-    if(totalWidth + textWidthList[i] > parentWidth) {
+  for (let i in textWidthList) {
+    if (totalWidth + textWidthList[i] > parentWidth) {
       break;
     }
     totalWidth += textWidthList[i];
@@ -83,13 +123,41 @@ const updateVisibleItems = () => {
   }
 
   // 替换最后一个元素
-  let lastIndex = textWidthList.length - 1;
-  temporaryIndex.splice(temporaryIndex.length -1, 1, lastIndex)
-
+  const lastIndex = routerList.value.findIndex(obj => obj.name === '系统设置');
+  itemLastIndex.value = lastIndex
+  temporaryIndex.splice(temporaryIndex.length - 1, 1, lastIndex)
   visibleItems.value = temporaryIndex;
-  //console.log(visibleItems.value)
+
+  // 过滤出隐藏的元素
+  let interceptIndex = Object.values(visibleItems.value).findIndex(v => +v == lastIndex)
+  let newVisibleItems = JSON.parse(JSON.stringify(temporaryIndex)).splice(0, interceptIndex + 1)
+  let missingIndex = findMissingNumbers(newVisibleItems)
+  let routerLists = []
+  for (var i in missingIndex) {
+    routerLists.push(routerList.value[missingIndex[i]])
+  }
+  moreRoutes.value = routerLists
+
+  // 判断当前的索引是否在隐藏元素中
+  let currentIndex = moreRoutes.value.findIndex(obj => obj.name === activeRouter.value?.name);
+  if (currentIndex >= 0) {
+    replaceData(activeRouter.value, currentIndex)
+  }
 };
 
+const findMissingNumbers = (arr: any) => {
+  let missingNumbers = [];
+  arr.sort((a: any, b: any) => a - b); // 对数组进行排序
+
+  for (let i = arr[0]; i < arr[arr.length - 1]; i++) {
+    if (!arr.includes(i)) { // 如果数组中不包含当前数字
+      missingNumbers.push(i); // 将缺失的数字添加到结果数组中
+    }
+  }
+
+  return missingNumbers;
+}
+
 const setCurrentRouter = (item: RouteRecordRaw) => {
   activeRouter.value = item;
   if (item.children && item.children.length > 0) {
@@ -98,6 +166,20 @@ const setCurrentRouter = (item: RouteRecordRaw) => {
   }
   router.push({ path: item.path });
 };
+
+const moreSetCurrentRouter = (item: RouteRecordRaw, index: any) => {
+  activeRouter.value = item;
+  router.push({ path: item.path });
+  replaceData(item, index)
+};
+
+const replaceData = (item: any, index: any) => {
+  let itemIndex = routerList.value.findIndex(v => v.name == item.name)
+  let lastItem = routerList.value[visibleItems.value[visibleItems.value.length - 2]]
+  visibleItems.value.splice(visibleItems.value.length - 2, 1, itemIndex),
+    moreRoutes.value.splice(index, 1, lastItem)
+}
+
 const logout = () => {
   clearStore();
   router.push({ path: '/login' });
@@ -112,13 +194,12 @@ onMounted(() => {
   }, 500);
 })
 watchEffect(() => {
-  updateVisibleItems();
-  watch(() => route.path, (newPath, _oldPath) => {  
-      activeRouter.value = routerList.value.find((item) => item.path === newPath);
-    }, { 
-      immediate: false 
-    }
-  );  
+  watch(() => route.path, (newPath, _oldPath) => {
+    activeRouter.value = routerList.value.find((item) => item.path === newPath);
+  }, {
+    immediate: false
+  }
+  );
 });
 </script>
   
@@ -126,6 +207,7 @@ watchEffect(() => {
 .trademark {
   font-size: 20px;
 }
+
 .multipleyHeader {
   height: 96%;
   display: flex;
@@ -136,16 +218,35 @@ watchEffect(() => {
     font-size: 16px;
   }
 }
+
 .parentBox {
   // max-width: 80%;
   // min-width: 300px;
   flex: 1;
   overflow: hidden;
 }
+
 .header-right {
   width: 135px;
 }
+
 .parentDiv {
-  width: 50%;
+  width: 10%;
+}
+
+.drawerVisClass {
+  .drawerVisBtn {
+    margin-top: 10px;
+    border-top: 1px solid #999;
+    div {
+      text-align: center;
+      line-height: 40px;
+      color: #fff;
+      cursor: pointer;
+      &:hover {
+        background: #086597;
+      }
+    }
+  }
 }
 </style>

+ 7 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/home.vue

@@ -1,11 +1,10 @@
 <template>
-  <div class="w-full h-full">
+  <div class="w-full h-full" v-loading="isLoading">
     <el-container class="flex flex-row h-full">
       <el-header class="bg-sky-800 leading-10 flex flex-row justify-between">
         <Header></Header>
       </el-header>
       <el-main>
-        <!-- <router-view /> -->
         <router-view v-slot="{ Component }">
           <transition name="router_animate">
             <component :is="Component" />
@@ -18,8 +17,13 @@
 
 <script lang="ts" setup>
 import Header from '@/pages/header/header.vue'
-import { onMounted, ref } from 'vue';
+import { nextTick, onMounted, ref } from 'vue';
+const isLoading = ref(true);
 
+onMounted(async () => {
+  await nextTick();
+  isLoading.value = false;
+});
 </script>
 
 <style scoped lang="scss">

+ 3 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/login.vue

@@ -54,8 +54,8 @@ const router = useRouter();
 const globalPopup = inject<GlobalPopup>('globalPopup')
 const ruleFormRef = ref<FormInstance>();
 const ruleForm = ref({
-  username: "",
-  password: "",
+  username: "18122222222",
+  password: "000000",
 });
 const loginLoading = ref(false);
 const rules = reactive<FormRules<typeof ruleForm>>({
@@ -88,7 +88,7 @@ const login = (formEl: FormInstance | undefined) => {
       setTimeout(() => {
         loginLoading.value = false;
         router.push(res.data?.moduleList[0].path);
-      }, 1000)
+      }, 100)
     }).catch(_err => {
       loginLoading.value = false;
     })

+ 4 - 95
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/index.vue

@@ -117,8 +117,8 @@
         </div>
       </div>
     </div>
-    <TaskModal :visible="taskModalVisible" :title="taskForm?'编辑任务':'新建任务'" :save-loading="taskLoading"
-      :edit-form="taskForm" @close="closeTaskModal" @submit="submitForm" :disabled-list="[]"/>
+    <TaskModal :visible="taskModalVisible" :title="taskForm ? '编辑任务' : '新建任务'" :save-loading="taskLoading"
+      :edit-form="taskForm" @close="closeTaskModal" @submit="submitForm" />
     <ImportModal :visible="importVisible" :save-loading="importLoading" @close="closeImportModal"
       @submit="importExcel" />
     <ExportModal :visible="exportVisible" :save-loading="exportLoading" @close="closeExportModal"
@@ -171,105 +171,14 @@ const searchForm = ref<any>();
 const tableRef = ref<InstanceType<typeof ElTable>>();
 const loading = ref<boolean>(false);
 const totalCount = ref<number>(0);
-const tableData = ref<any[]>([
-  {
-    taskName: '任务1111111111111111111111111',
-    contactsTel: "15100111111",
-    contactsName: "水水水水",
-    customerName: '李四',
-    status: 0,
-    priority: 0,
-    executorId: [1, 2], //执行人id
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-    repeat:1,
-    taskType: 1,
-    endType: 1,
-    taskDesc: "任务秒数",
-    repeatType:4,
-    repeatDesignDay: "1,4,3,4",
-    taskLogs: [
-      {
-        id: 3,
-        modTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
-        userName: '张三',
-        content: '删除任务'
-      },
-      {
-        id: 2,
-        modTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
-        operateType: '2',
-        userName: '张三',
-        content: '修改任务'
-      }, {
-        id: 1,
-        modTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
-        operateType: '1',
-        userName: '张三',
-        content: '创建任务'
-      }
-    ]
-  },
-  {
-    taskName: '任务222',
-    customerName: '张三',
-    status: '1',
-    priority: '1',
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-    taskType: '2'
-  },
-  {
-    taskName: '任务333',
-    customerName: '王五',
-    status: '2',
-    priority: '2',
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-    taskType: '0'
-  },
-  {
-    taskName: '任务444',
-    customerName: '赵六',
-    status: '3',
-    priority: '1',
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-    taskType: '3'
-  },
-  {
-    taskName: '任务555',
-    customerName: '马六',
-    status: '1',
-    priority: '2',
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-  },
-  {
-    taskName: '任务666',
-    customerName: '吴七',
-    status: '3',
-    priority: '0',
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-  },
-  {
-    taskName: '任务777',
-    customerName: '钱八',
-    status: '0',
-    priority: '1',
-    startDate: dayjs().format('YYYY-MM-DD'),
-    endDate: dayjs().format('YYYY-MM-DD'),
-  }
-])
+const tableData = ref<any[]>([])
 function search() {
-  return
   loading.value = true;
   post(PAGE_LIST, getFromValue(searchForm.value)).then(({ data }) => {
     loading.value = false;
     const { total, record } = data;
     totalCount.value = total;
-    // tableData.value = record;
+    tableData.value = record;
   }).catch(err => {
     console.log("err", err);
     loading.value = false;

+ 5 - 4
fhKeeper/formulahousekeeper/customerBuler-crm/src/router/index.ts

@@ -47,11 +47,9 @@ const router = createRouter({
 router.beforeEach((to, _from, next) => {
   const routerList = useStore().routers;
   const routers = router.getRoutes();
-  //console.log(routerList, routers);
   const { setAsyncRoutesMark, asyncRoutesMark, getToken } = useStore();
   const token = getToken;
   const skipPath = ["/login", "/register", "/test", "/testEcharts"];
-  //console.log(token, '<==== token')
   if (skipPath.includes(to.path)) {
     next();
   } else {
@@ -80,7 +78,6 @@ router.beforeEach((to, _from, next) => {
               });
             });
           } else {
-            console.log(`/src/pages/${filePath}/index.vue`)
             addNewRouter?.children.push({
               path: item.path,
               name: item.name,
@@ -90,6 +87,11 @@ router.beforeEach((to, _from, next) => {
           }
         });
         router.addRoute(addNewRouter);
+        router.addRoute({
+          path: '/:catchAll(.*)',
+          name: 'NotFound',
+          component: () => import("../pages/404.vue"),
+        })
         next({ ...to, replace: true });
       }
     } else {
@@ -97,6 +99,5 @@ router.beforeEach((to, _from, next) => {
       next(`/login`);
     }
   }
-  console.log(routerList);
 });
 export default router;

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/vite.config.ts

@@ -4,7 +4,7 @@ import vue from "@vitejs/plugin-vue";
 import { resolve } from "path";
 
 // const target = "http://192.168.2.8:10010";
-const target = "http://192.168.2.93:10010";
+const target = "http://192.168.2.178:10010";
 // const target = "http://47.101.180.183:10010";
 
 export default defineConfig({

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -92,12 +92,12 @@ public interface ReportMapper extends BaseMapper<Report> {
     List<Map<String, Object>> getReportNameByDateAndDept(@Param("date") String date,
                                                          @Param("deptIds") List<Integer> deptIds,
                                                          @Param("userId") String userId,
-                                                         @Param("companyId") Integer companyId, String leaderId, Integer pageStart, Integer pageSize);
+                                                         @Param("companyId") Integer companyId, String viewUserId, Integer pageStart, Integer pageSize);
 
     Integer getReportNameByDateAndDeptCount(@Param("date") String date,
                                                          @Param("deptIds") List<Integer> deptIds,
                                                          @Param("userId") String userId,
-                                                         @Param("companyId") Integer companyId, String leaderId);
+                                                         @Param("companyId") Integer companyId, String viewUserId);
     List<Map<String, Object>> getDetailByStateInMyProfession(@Param("state") Integer state,
                                                @Param("companyId") Integer companyId,
                                                @Param("leaderId") String leaderId);

+ 80 - 29
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.pagehelper.util.StringUtil;
 import com.management.platform.entity.*;
 import com.management.platform.entity.Task;
 import com.management.platform.entity.vo.*;
@@ -16,8 +15,6 @@ import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.*;
 import com.management.platform.webservice.po.*;
-import com.sun.star.bridge.oleautomation.Decimal;
-import javafx.stage.Stage;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpPost;
@@ -25,7 +22,6 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.util.EntityUtils;
-import org.apache.ibatis.annotations.Select;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
@@ -45,7 +41,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -55,21 +50,17 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.sql.Array;
 import java.sql.Timestamp;
 import java.text.*;
 import java.time.*;
 import java.time.chrono.ChronoLocalDate;
 import java.time.format.DateTimeFormatter;
-import java.time.temporal.TemporalAdjuster;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
-import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
-import java.util.function.Function;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 
 /**
@@ -247,6 +238,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     private StagesService stagesService;
     @Resource
     private SapProjectServiceService sapProjectServiceService;
+    @Resource
+    private HolidaySettingService holidaySettingService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -8114,6 +8107,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         Integer timeliness = timeType.getTimeliness();
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "全公司填报及时率");
         List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "负责部门填报及时率");
+        //获取到公司设置的特殊节假日设置
+        List<HolidaySetting> holidaySettingList = holidaySettingService.list(new LambdaQueryWrapper<HolidaySetting>().eq(HolidaySetting::getCompanyId, targetUser.getCompanyId()));
         List<Integer> deptIds=new ArrayList<>();
         List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",targetUser.getCompanyId()));
         List<Department> userDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", targetUser.getId()).eq("company_id",targetUser.getCompanyId()));
@@ -8161,8 +8156,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         List<Map<String,Object>> reportList=reportMapper.getUserReportTimelinessRate(targetUser.getCompanyId(),startDate,endDate,userId,deptIds);
         Map<Object, List<Map<String, Object>>> listMap = reportList.stream().filter(item->!StringUtils.isEmpty(item.get("userName"))).collect(Collectors.groupingBy(rp -> rp.get("userName")));
-        //获取请假数据
-        List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", targetUser.getCompanyId()));
+        //获取请假数据 todo:待优化 这里需要过滤日期(防止获取数据太慢)
+        List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new LambdaQueryWrapper<LeaveSheet>()
+                .eq(LeaveSheet::getCompanyId, targetUser.getCompanyId()).le(LeaveSheet::getStartDate,endDate).ge(LeaveSheet::getEndDate,startDate));
         List<TimelinessRateVO> resultList=new ArrayList<>();
         for (User user : userList){
             LocalDateTime sDate;
@@ -8176,13 +8172,39 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     sDate = inductionDate.atTime(LocalTime.MIN);
                 }
             }else  sDate = LocalDate.parse(startDate).atTime(LocalTime.MIN);
-            List<LocalDateTime> dateTimeList=getDays(sDate, eDate);
+            AtomicReference<List<LocalDateTime>> dateTimeList= new AtomicReference<>(getDays(sDate, eDate));
             //针对美莱德 去除2024-02-09
-            if(user.getCompanyId()==876){
-                dateTimeList=dateTimeList.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
+            //针对人员已经特殊节假日设置去除相对应的日期
+            List<HolidaySetting> allUsersSetting = holidaySettingList.stream().filter(h -> h.getRangeType() == 0).collect(Collectors.toList());
+            List<HolidaySetting> targetUserOrDeptSetting = holidaySettingList.stream().filter(h -> h.getRangeType() == 1).collect(Collectors.toList());
+            if(allUsersSetting.size()>0){
+                List<LocalDateTime> holidayDateList = allUsersSetting.stream().map(h->h.getHolidayDate().atTime(LocalTime.MIN)).collect(Collectors.toList());
+                dateTimeList.set(dateTimeList.get().stream().filter(d -> !holidayDateList.contains(d)).collect(Collectors.toList()));
+            }
+            if(targetUserOrDeptSetting.size()>0){
+                targetUserOrDeptSetting.forEach(t->{
+                    LocalDateTime holidayDate = t.getHolidayDate().atTime(LocalTime.MIN);
+                    if(!StringUtils.isEmpty(t.getTargetUsers())){
+                        String[] userSplit = t.getTargetUsers().split(",");
+                        List<String> userAsList = Arrays.asList(userSplit);
+                        if(userAsList.contains(user.getId())){
+                            dateTimeList.set(dateTimeList.get().stream().filter(d -> !d.isEqual(holidayDate)).collect(Collectors.toList()));
+                        }
+                    }
+                    if(!StringUtils.isEmpty(t.getTargetDepts())){
+                        String[] deptSplit = t.getTargetUsers().split(",");
+                        List<String> deptAsList = Arrays.asList(deptSplit);
+                        for (String deptId : deptAsList) {
+                            List<Integer> subDeptIds = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                            if(deptId.equals(user.getDepartmentId())||subDeptIds.contains(user.getDepartmentId())){
+                                dateTimeList.set(dateTimeList.get().stream().filter(d -> !d.isEqual(holidayDate)).collect(Collectors.toList()));
+                            }
+                        }
+                    }
+                });
             }
             List<Map<String,Object>> dataList=new ArrayList<>();
-            long days =dateTimeList.size();
+            long days = dateTimeList.get().size();
             List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(user.getId())
                     &&((ls.getStartDate().isBefore(ChronoLocalDate.from(eDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(eDate))))
                     &&((ls.getEndDate().isAfter(ChronoLocalDate.from(sDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(sDate))))).collect(Collectors.toList());
@@ -8204,7 +8226,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
             List<Map<String, Object>> mapList = listMap.get(user.getName());
             //去掉填非工作日
-            for (LocalDateTime localDateTime : dateTimeList) {
+            for (LocalDateTime localDateTime : dateTimeList.get()) {
                 if(mapList!=null){
                     //在非工作日下 填报了的情况下 及时填报了就算作及时率计算的基数
                     if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())&&!mapList.stream().anyMatch(ml->{
@@ -8226,22 +8248,51 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             long daysWithLeave =days;
             if(leaveSheets.size()>0){
                 for (LeaveSheet leaveSheet : leaveSheets) {
-                    List<LocalDateTime> leaveDateList = getDays(leaveSheet.getStartDate().atTime(LocalTime.MIN), leaveSheet.getEndDate().atTime(LocalTime.MIN));
-                    //针对美莱德 去除2024-02-09
-                    if(user.getCompanyId()==876){
-                        leaveDateList=leaveDateList.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
-                    }
-                    List<LocalDateTime> list = getDays(leaveSheet.getStartDate().atTime(LocalTime.now()), leaveSheet.getEndDate().atTime(LocalTime.now()));
-                    //针对美莱德 去除2024-02-09
-                    if(user.getCompanyId()==876){
-                        list=list.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
+                    AtomicReference<List<LocalDateTime>> leaveDateList = new AtomicReference<>(getDays(leaveSheet.getStartDate().atTime(LocalTime.MIN), leaveSheet.getEndDate().atTime(LocalTime.MIN)));
+//                    //针对美莱德 去除2024-02-09
+//                    if(user.getCompanyId()==876){
+//                        leaveDateList=leaveDateList.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
+//                    }
+                    AtomicReference<List<LocalDateTime>> list = new AtomicReference<>(getDays(leaveSheet.getStartDate().atTime(LocalTime.MIN), leaveSheet.getEndDate().atTime(LocalTime.MIN)));
+//                    //针对美莱德 去除2024-02-09
+//                    if(user.getCompanyId()==876){
+//                        list=list.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
+//                    }
+                    if(allUsersSetting.size()>0){
+                        List<LocalDateTime> holidayDateList = allUsersSetting.stream().map(h->h.getHolidayDate().atTime(LocalTime.MIN)).collect(Collectors.toList());
+                        leaveDateList.set(leaveDateList.get().stream().filter(d -> !holidayDateList.contains(d)).collect(Collectors.toList()));
+                        list.set(list.get().stream().filter(d -> !holidayDateList.contains(d)).collect(Collectors.toList()));
+                    }
+                    if(targetUserOrDeptSetting.size()>0){
+                        targetUserOrDeptSetting.forEach(t->{
+                            LocalDateTime holidayDate = t.getHolidayDate().atTime(LocalTime.MIN);
+                            if(!StringUtils.isEmpty(t.getTargetUsers())){
+                                String[] userSplit = t.getTargetUsers().split(",");
+                                List<String> userAsList = Arrays.asList(userSplit);
+                                if(userAsList.contains(user.getId())){
+                                    leaveDateList.set(leaveDateList.get().stream().filter(d -> !d.isEqual(holidayDate)).collect(Collectors.toList()));
+                                    list.set(list.get().stream().filter(d -> !d.isEqual(holidayDate)).collect(Collectors.toList()));
+                                }
+                            }
+                            if(!StringUtils.isEmpty(t.getTargetDepts())){
+                                String[] deptSplit = t.getTargetUsers().split(",");
+                                List<String> deptAsList = Arrays.asList(deptSplit);
+                                for (String deptId : deptAsList) {
+                                    List<Integer> subDeptIds = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                                    if(deptId.equals(user.getDepartmentId())||subDeptIds.contains(user.getDepartmentId())){
+                                        leaveDateList.set(leaveDateList.get().stream().filter(d -> !d.isEqual(holidayDate)).collect(Collectors.toList()));
+                                        list.set(list.get().stream().filter(d -> !d.isEqual(holidayDate)).collect(Collectors.toList()));
+                                    }
+                                }
+                            }
+                        });
                     }
-                    if(list.size()>1){
-                        days-=list.size();
+                    if(list.get().size()>1){
+                        days-= list.get().size();
                     }else {
                         days-=1;
                     }
-                    for (LocalDateTime localDateTime : leaveDateList) {
+                    for (LocalDateTime localDateTime : leaveDateList.get()) {
                         //todo: 请假区间当中有非工作日在之前被当作 不需填报 所以要加上 保证基数正确
                         if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
                             days+=1;

+ 63 - 233
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -237,209 +237,39 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             //首先根据日期获取当天所有提交过日志的人
             String userId = request.getHeader("Token");
             User user = userMapper.selectById(userId);
-            TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+            String viewUserId = user.getId();
+            Integer companyId = user.getCompanyId();
+            TimeType timeType = timeTypeMapper.selectById(companyId);
             List<Map<String, Object>> nameList = new ArrayList<>();
             List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
             Integer totalMembCount = 0;
             if (functionList.size() == 0) {
-                String leaderId = user.getId();
-                //不是项目经理,只看自己的报告
                 List<Map<String, Object>> list = new ArrayList<>();
-                //没有指定员工或者指定的就是自己
-                if (targetUid == null || targetUid.equals(user.getId())) {
-                    //查看自己的日报
-                    if (pageIndex != null && pageIndex == 0) {
-                        //仅第一页显示自己的
-                        Map<String, Object> map = new HashMap<>();
-                        map.put("id", user.getId());
-                        map.put("name", user.getName());
-                        List<String> uids = new ArrayList<>();
-                        uids.add(user.getId());
-                        list = reportMapper.getUserReportByDateOrId(date, uids, null);
-                        if (list.size() > 0) {
-                            //个人日报
-                            nameList.add(map);
-                            map.put("data", list);
-                            double reportTime = 0;
-                            BigDecimal total = new BigDecimal(0);
-                            int state = (int)list.get(0).get("state");
-                            boolean hasDeny = false;
-                            boolean hasWaiting = false;
-                            for (Map<String, Object> m : list) {
-                                double t = (double) m.get("time");
-                                reportTime += t;
-                                total = total.add((BigDecimal)m.get("cost"));
-                                int curState = (int)m.get("state");
-                                if (curState == 2) {
-                                    hasDeny = true;
-                                }
-                                if (curState == 0) {
-                                    hasWaiting = true;
-                                }
-                            }
-                            if(hasDeny) {
-                                state = 2;
-                            } else if (hasWaiting) {
-                                state = 0;
-                            }
-                            DecimalFormat df = new DecimalFormat("0.00");
-                            map.put("reportTime", df.format(reportTime));
-                            map.put("cost", total);
-                            map.put("state", state);
-                        }
-                    }
-                }
-
-                String reportLeaderId = null;
-                if(deptId==null&&targetUid==null){
-                    //没有指定部门和人员,按照自己所管辖范围来查看
-                    reportLeaderId = leaderId;
-                }
-                List<Integer> allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
-                //需要看可见部门(部门主要负责人和其他负责人以及查看本部门工时权限)所有人员的日报
-                if (nameList.size() > 0) {
-                    //自己填写的日报
-                    List<Map<String, Object>> deptNameList = reportMapper.getReportNameByDateAndDept(date,
-                            allVisibleDeptIdList.size() > 0?allVisibleDeptIdList:null, targetUid, null, reportLeaderId, pageStart, pageSize);
-                    totalMembCount = reportMapper.getReportNameByDateAndDeptCount(date, allVisibleDeptIdList.size() > 0?allVisibleDeptIdList:null, targetUid, null, reportLeaderId);
-                    for (Map<String, Object> deptNameItem : deptNameList) {
-                        if (!deptNameItem.get("id").equals(user.getId())) {
-                            nameList.add(deptNameItem);
-                        }
+                List<Integer> allVisibleDeptIdList = null;
+                if (deptId != null) {
+                    //指定了部门进行查看
+                    allVisibleDeptIdList = new ArrayList<>();
+                    allVisibleDeptIdList.add(deptId);
+                    //找到该部门的所有子部门
+                    List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                    Optional<Department> first = allDepts.stream().filter(d -> d.getDepartmentId().equals(deptId)).findFirst();
+                    if (first.isPresent()) {
+                        Department department = first.get();
+                        //递归获取全部子部门
+                        List<Department> deptList = getSubDepts(department, allDepts);
+                        deptList.add(department);
+                        List<Integer> ids = deptList.stream().map(Department::getDepartmentId).collect(Collectors.toList());
+                        allVisibleDeptIdList.addAll(ids);
                     }
                 } else {
-                    nameList = reportMapper.getReportNameByDateAndDept(date,
-                            allVisibleDeptIdList.size() > 0?allVisibleDeptIdList:null, targetUid, null, reportLeaderId, pageStart, pageSize);
-                    totalMembCount = reportMapper.getReportNameByDateAndDeptCount(date, allVisibleDeptIdList.size() > 0?allVisibleDeptIdList:null, targetUid, null, reportLeaderId);
+                    allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
                 }
-                if (nameList.size() > 0) {
-                    List<String> userIds = new ArrayList<>();
-                    nameList.forEach(n->{
-                        String id = (String) n.get("id");
-                        userIds.add(id);
-                    });
-                    List<Map<String, Object>> reportList = reportMapper.getUserReportByDateOrId(date, userIds, null);
-                    for (Map<String, Object> memb : nameList) {
-                        //再根据人分别获取当天的报告
-                        List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
-                        BigDecimal total = new BigDecimal(0);
-                        for (Map<String, Object> report : reportList) {
-                            if (((String)report.get("creatorId")).equals((String)memb.get("id"))) {
-                                rList.add(report);
-                                total = total.add((BigDecimal) report.get("cost"));
-                            }
-                        }
-                        memb.put("data", rList);
-                        memb.put("cost", total);
-                        double reportTime = 0;
-                        if (rList.size() > 0) {
-                            int state = 1;
-                            for (Map<String, Object> m : rList) {
-                                double t = (double) m.get("time");
-                                reportTime += t;
-
-                                //取最低的状态
-                                if (state == 2) {
-                                    continue;
-                                }
-                                if (state == 0) {
-                                    if ((int)m.get("state") == 2) {
-                                        state = 2;
-                                    } else {
-                                        continue;
-                                    }
-                                } else {
-                                    state = (int)m.get("state");
-                                }
-                            }
-                            memb.put("state", state);
-                        }
-                        DecimalFormat df = new DecimalFormat("0.00");
-                        memb.put("reportTime", df.format(reportTime));
-                    }
-                }
-//                if(deptId==null&&targetUid==null){
-//                    //担任项目经理或者日报审核人,查找相关的人员的日报
-//                    List<Map<String, Object>> puserNames = reportMapper.getReportNameByDate(date, user.getCompanyId(), leaderId);
-//                    List<Map<String, Object>> inchargeReportList= reportMapper.getInchargeReportByDate(date, leaderId, null);
-//
-//                    if ((timeType.getReportAuditType() == 5 || timeType.getReportAuditType() == 6)&& timeType.getReportCc() == 1) {
-//                        //存在抄送人的设置,需要把抄送人的项目相关日报也加上
-//                        List<Map<String, Object>> viewUserNames = reportMapper.getCcReportNameByDate(date, user.getCompanyId(),leaderId);
-//                        for (Map<String, Object> viewItem : viewUserNames) {
-//                            boolean exists = false;
-//                            for (Map<String, Object> u : puserNames) {
-//                                if (u.get("id").equals(viewItem.get("id"))) {
-//                                    exists = true;
-//                                    break;
-//                                }
-//                            }
-//                            if (!exists) {
-//                                puserNames.add(viewItem);
-//                            }
-//                        }
-//
-//                        List<Map<String, Object>> viewReportList = reportMapper.getCcReportByDate(date, leaderId, null);
-//                        for (Map<String, Object> viewItem : viewReportList) {
-//                            boolean exists = false;
-//                            for (Map<String, Object> u : inchargeReportList) {
-//                                if (u.get("id").equals(viewItem.get("id"))) {
-//                                    exists = true;
-//                                    break;
-//                                }
-//                            }
-//                            if (!exists) {
-//                                inchargeReportList.add(viewItem);
-//                            }
-//                        }
-//                    }
-//                    for (Map<String, Object> map2 : puserNames) {
-//
-//                        if (nameList.size() > 0) {
-//                            String myUserId = (String)nameList.get(0).get("id");
-//                            if (myUserId.equals(map2.get("id"))) {
-//                                //自己的报告,之前已经添加过了,排重
-//                                continue;
-//                            }
-//                        }
-//                        List<Object> collect = nameList.stream().map(nl -> nl.get("")).collect(Collectors.toList());
-//                        if(!collect.contains(map2.get("id"))){
-//                            nameList.add(map2);
-//                        }
-//                        //再根据人分别获取当天的报告
-//                        List<Map<String, Object>> list2 =
-//                                inchargeReportList.stream().filter(i->i.get("creatorId").equals(map2.get("id"))).collect(Collectors.toList());
-//                        map2.put("data", list2);
-//
-//                        double reportTime = 0;
-//                        BigDecimal total = new BigDecimal(0);
-//                        int state = 1;
-//                        for (Map<String, Object> m : list2) {
-//                            double t = (double) m.get("time");
-//                            reportTime += t;
-//                            total = total.add((BigDecimal)m.get("cost"));
-//                            //取最低的状态
-//                            if (state == 2) {
-//                                continue;
-//                            }
-//                            if (state == 0) {
-//                                if ((int)m.get("state") == 2) {
-//                                    state = 2;
-//                                } else {
-//                                    continue;
-//                                }
-//                            } else {
-//                                state = (int)m.get("state");
-//                            }
-//                        }
-//                        DecimalFormat df = new DecimalFormat("0.00");
-//                        map2.put("reportTime", df.format(reportTime));
-//                        map2.put("cost", total);
-//                        map2.put("state", state);
-//                    }
-//                }
+                //需要看可见部门(部门主要负责人和其他负责人以及查看本部门工时权限)所有人员的日报
+                nameList = reportMapper.getReportNameByDateAndDept(date,
+                        allVisibleDeptIdList.size() > 0?allVisibleDeptIdList:null, targetUid, companyId, (deptId == null?viewUserId:null), pageStart, pageSize);
+                totalMembCount = reportMapper.getReportNameByDateAndDeptCount(date, allVisibleDeptIdList.size() > 0?allVisibleDeptIdList:null, targetUid, companyId, (deptId == null?viewUserId:null));
             } else {
-                Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+                //查看全公司的数据
                 List<Integer> ids = null;
                 if (deptId != null) {
                     if (deptId == 0) {
@@ -462,51 +292,51 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 nameList = reportMapper.getReportNameByDateAndDept(date,
                         ids, targetUid, companyId, null, pageStart, pageSize);
                 totalMembCount = reportMapper.getReportNameByDateAndDeptCount(date, ids, targetUid, companyId, null);
-                if (nameList.size() > 0) {
-                    List<String> userIds = new ArrayList<>();
-                    nameList.forEach(n->{
-                        String id = (String) n.get("id");
-                        userIds.add(id);
-                    });
-                    List<Map<String, Object>> reportList = reportMapper.getUserReportByDateOrId(date, userIds, null);
-                    for (Map<String, Object> map : nameList) {
-                        //再根据人分别获取当天的报告
-                        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
-                        BigDecimal total = new BigDecimal(0);
-                        for (Map<String, Object> report : reportList) {
-                            if (((String)report.get("creatorId")).equals((String)map.get("id"))) {
-                                list.add(report);
-                                total = total.add((BigDecimal) report.get("cost"));
-                            }
-
+            }
+            if (nameList.size() > 0) {
+                List<String> userIds = new ArrayList<>();
+                nameList.forEach(n->{
+                    String id = (String) n.get("id");
+                    userIds.add(id);
+                });
+                List<Map<String, Object>> reportList = reportMapper.getUserReportByDateOrId(date, userIds, null);
+                for (Map<String, Object> memb : nameList) {
+                    //再根据人分别获取当天的报告
+                    List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
+                    BigDecimal total = new BigDecimal(0);
+                    for (Map<String, Object> report : reportList) {
+                        if (((String)report.get("creatorId")).equals((String)memb.get("id"))) {
+                            rList.add(report);
+                            total = total.add((BigDecimal) report.get("cost"));
                         }
-                        map.put("data", list);
-                        map.put("cost", total);
-                        double reportTime = 0;
-                        if (list.size() > 0) {
-                            int state = 1;
-                            for (Map<String, Object> m : list) {
-                                double t = (double) m.get("time");
-                                reportTime += t;
-                                //取最低的状态
-                                if (state == 2) {
-                                    continue;
-                                }
-                                if (state == 0) {
-                                    if ((int)m.get("state") == 2) {
-                                        state = 2;
-                                    } else {
-                                        continue;
-                                    }
+                    }
+                    memb.put("data", rList);
+                    memb.put("cost", total);
+                    double reportTime = 0;
+                    if (rList.size() > 0) {
+                        int state = 1;
+                        for (Map<String, Object> m : rList) {
+                            double t = (double) m.get("time");
+                            reportTime += t;
+
+                            //取最低的状态
+                            if (state == 2) {
+                                continue;
+                            }
+                            if (state == 0) {
+                                if ((int)m.get("state") == 2) {
+                                    state = 2;
                                 } else {
-                                    state = (int)m.get("state");
+                                    continue;
                                 }
+                            } else {
+                                state = (int)m.get("state");
                             }
-                            map.put("state", state);
                         }
-                        DecimalFormat df = new DecimalFormat("0.00");
-                        map.put("reportTime", df.format(reportTime));
+                        memb.put("state", state);
                     }
+                    DecimalFormat df = new DecimalFormat("0.00");
+                    memb.put("reportTime", df.format(reportTime));
                 }
             }
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -15,7 +15,7 @@ spring:
       location: C:/upload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.101.180.183:17089/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
+    url: jdbc:mysql://47.101.180.183:17089/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
     username: root
     password: P011430@Huoshi*
 

+ 58 - 37
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -677,30 +677,33 @@
             AND a.create_date=#{date}
         </if>
         <choose>
-            <when test="deptIds != null and leaderId == null">
-                AND b.department_id in
-                <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
-                    #{item, jdbcType=INTEGER}
-                </foreach>
+            <when test="userId != null">
+                AND b.id=#{userId}
             </when>
-            <!--项目负责人,日报审核人,抄送人 -->
-           <when test="deptIds != null and leaderId != null">
-               AND (b.department_id in
-               <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
-                   #{item, jdbcType=INTEGER}
-               </foreach>
-                    OR (a.project_auditor_id = #{leaderId} or project.incharger_id = #{leaderId}) or project_ccuser.`user_id` = #{leaderId})
-           </when>
-          <when test="deptIds == null and leaderId != null">
-              and (a.project_auditor_id = #{leaderId} or project.incharger_id = #{leaderId} or project_ccuser.`user_id` = #{leaderId})
-          </when>
+            <otherwise>
+                <!--自己,担任项目经理,日报审核人,抄送人,或者自己部门的人填的日报 -->
+                <if test="viewUserId != null">
+                    and (a.creator_id = #{viewUserId} or a.project_auditor_id = #{viewUserId} or project.incharger_id = #{viewUserId}
+                    or project_ccuser.`user_id` = #{viewUserId}
+                    <if test="deptIds != null">
+                        or b.department_id in
+                        <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
+                            #{item, jdbcType=INTEGER}
+                        </foreach>
+                    </if>
+                    )
+                </if>
+                <if test="viewUserId == null">
+                    <if test="deptIds != null">
+                        and b.department_id in
+                        <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
+                            #{item, jdbcType=INTEGER}
+                        </foreach>
+                    </if>
+                </if>
+            </otherwise>
         </choose>
-        <if test="companyId != null">
-            AND b.company_id = #{companyId}
-        </if>
-        <if test="userId != null">
-            AND b.id=#{userId}
-        </if>
+        AND b.company_id = #{companyId}
         <if test="pageStart != null">
             limit #{pageStart}, #{pageSize}
         </if>
@@ -710,22 +713,40 @@
         SELECT count(DISTINCT b.id) as count
         FROM report AS a
         JOIN user AS b ON a.creator_id=b.id
+        left join project on project.id = a.project_id
+        LEFT JOIN project_ccuser ON a.project_id = project_ccuser.project_id
         WHERE 1=1
         <if test="date != null and date != ''">
             AND a.create_date=#{date}
         </if>
-        <if test="deptIds != null">
-            AND b.department_id in
-            <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
-                #{item, jdbcType=INTEGER}
-            </foreach>
-        </if>
-        <if test="companyId != null">
-            AND b.company_id = #{companyId}
-        </if>
-        <if test="userId != null">
-            AND b.id=#{userId}
-        </if>
+        <choose>
+            <when test="userId != null">
+                AND b.id=#{userId}
+            </when>
+            <otherwise>
+                <!--自己,担任项目经理,日报审核人,抄送人,或者自己部门的人填的日报 -->
+                <if test="viewUserId != null">
+                    and (a.creator_id = #{viewUserId} or a.project_auditor_id = #{viewUserId} or project.incharger_id = #{viewUserId}
+                    or project_ccuser.`user_id` = #{viewUserId}
+                    <if test="deptIds != null">
+                        or b.department_id in
+                        <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
+                            #{item, jdbcType=INTEGER}
+                        </foreach>
+                    </if>
+                    )
+                </if>
+                <if test="viewUserId == null">
+                    <if test="deptIds != null">
+                        and b.department_id in
+                        <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">
+                            #{item, jdbcType=INTEGER}
+                        </foreach>
+                    </if>
+                </if>
+            </otherwise>
+        </choose>
+        AND b.company_id = #{companyId}
     </select>
 
     <!--专业待审核的报告列表-->
@@ -1205,7 +1226,7 @@
         WHERE b.state = 1
         AND b.company_id =#{companyId}
         <if test="startDate!=null and endDate!=null">
-        AND b.create_date BETWEEN #{startDate} AND #{endDate}
+            AND b.create_date BETWEEN #{startDate} AND #{endDate}
         </if>
         GROUP BY b.project_id,b.`create_date`
         HAVING IFNULL(SUM(b.custom_data),0) > 0
@@ -1215,8 +1236,8 @@
         SELECT p.id as projectId, SUM(IFNULL(r.working_time, 0)) AS total_working_time
         FROM report r LEFT JOIN project p ON r.project_id = p.id
         WHERE p.company_id = #{companyId}
-              AND p.status in(1,2)
-              AND (p.finish_date IS NULL OR p.finish_date >= '2023-11-08')
+        AND p.status in(1,2)
+        AND (p.finish_date IS NULL OR p.finish_date >= '2023-11-08')
         <if test="projectId!=null">
             and p.id=#{projectId}
         </if>

+ 25 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/components/CodeEditor.vue.d.ts

@@ -0,0 +1,25 @@
+import 'vue-prism-editor/dist/prismeditor.min.css';
+import 'prismjs/components/prism-clike';
+import 'prismjs/components/prism-json';
+import 'prismjs/themes/prism-tomorrow.css';
+declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
+    modelValue: string;
+    language?: string | undefined;
+    readonly?: boolean | undefined;
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    modelValue: string;
+    language?: string | undefined;
+    readonly?: boolean | undefined;
+}>>> & {
+    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
+}, {}>;
+export default _default;
+declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
+declare type __VLS_TypePropsToRuntimeProps<T> = {
+    [K in keyof T]-?: {} extends Pick<T, K> ? {
+        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
+    } : {
+        type: import('vue').PropType<T[K]>;
+        required: true;
+    };
+};

+ 22 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/components/ComponentGroup.vue.d.ts

@@ -0,0 +1,22 @@
+export declare function cloneWidget(params: any): any;
+declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
+    fields: any[];
+    title: string;
+    list: any[];
+    allList: any;
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    fields: any[];
+    title: string;
+    list: any[];
+    allList: any;
+}>>>, {}>;
+export default _default;
+declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
+declare type __VLS_TypePropsToRuntimeProps<T> = {
+    [K in keyof T]-?: {} extends Pick<T, K> ? {
+        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
+    } : {
+        type: import('vue').PropType<T[K]>;
+        required: true;
+    };
+};

+ 680 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/config/index.d.ts

@@ -0,0 +1,680 @@
+export interface Rules {
+    trigger: string;
+    enum: string;
+    len?: number;
+    max?: number;
+    message: string;
+    min?: number;
+    pattern: string;
+    required: boolean;
+    type: string;
+}
+export interface WidgetForm {
+    list: any[];
+    config: {
+        size: '' | 'default' | 'small' | 'large';
+        hideRequiredAsterisk: boolean;
+        labelWidth: number;
+        labelPosition: string;
+    };
+}
+export declare const getWidgetForm: () => WidgetForm;
+export declare const basicComponents: ({
+    label: string;
+    type: "input";
+    options: {
+        width: string;
+        defaultValue: string;
+        placeholder: string;
+        maxlength: null;
+        prefix: string;
+        suffix: string;
+        prepend: string;
+        append: string;
+        disabled: boolean;
+        clearable: boolean;
+        readonly: boolean;
+        rules: Rules;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "password";
+    options: {
+        width: string;
+        defaultValue: string;
+        placeholder: string;
+        maxlength: null;
+        prefix: string;
+        suffix: string;
+        prepend: string;
+        append: string;
+        showPassword: boolean;
+        disabled: boolean;
+        clearable: boolean;
+        readonly: boolean;
+        rules: Rules;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "textarea";
+    options: {
+        width: string;
+        defaultValue: string;
+        placeholder: string;
+        maxlength: null;
+        rows: number;
+        autosize: boolean;
+        showWordLimit: boolean;
+        disabled: boolean;
+        clearable: boolean;
+        readonly: boolean;
+        rules: Rules;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        showPassword?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "number";
+    options: {
+        width: string;
+        defaultValue: number;
+        min: number;
+        max: number;
+        step: number;
+        disabled: boolean;
+        rules: Rules;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "radio";
+    options: {
+        defaultValue: string;
+        width: string;
+        inline: boolean;
+        remote: boolean;
+        showLabel: boolean;
+        remoteFunc: string;
+        options: {
+            value: string;
+            label: string;
+        }[];
+        remoteOptions: never[];
+        props: {
+            value: string;
+            label: string;
+        };
+        disabled: boolean;
+        rules: Rules;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "checkbox";
+    options: {
+        defaultValue: never[];
+        width: string;
+        inline: boolean;
+        remote: boolean;
+        showLabel: boolean;
+        remoteFunc: string;
+        options: {
+            label: string;
+            value: string;
+        }[];
+        remoteOptions: never[];
+        props: {
+            value: string;
+            label: string;
+        };
+        disabled: boolean;
+        rules: Rules;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "time";
+    options: {
+        defaultValue: string;
+        width: string;
+        placeholder: string;
+        format: string;
+        valueFormat: string;
+        readonly: boolean;
+        editable: boolean;
+        clearable: boolean;
+        disabled: boolean;
+        rules: Rules;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "date";
+    options: {
+        defaultValue: string;
+        width: string;
+        placeholder: string;
+        format: string;
+        readonly: boolean;
+        editable: boolean;
+        clearable: boolean;
+        disabled: boolean;
+        rules: Rules;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        valueFormat?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "rate";
+    options: {
+        defaultValue: number;
+        max: number;
+        allowHalf: boolean;
+        disabled: boolean;
+        rules: Rules;
+        width?: undefined;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "select";
+    options: {
+        defaultValue: string;
+        width: string;
+        multiple: boolean;
+        placeholder: string;
+        remote: boolean;
+        showLabel: boolean;
+        filterable: boolean;
+        clearable: boolean;
+        disabled: boolean;
+        props: {
+            label: string;
+            value: string;
+        };
+        options: {
+            label: string;
+            value: string;
+        }[];
+        remoteOptions: never[];
+        remoteFunc: string;
+        rules: Rules;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "switch";
+    options: {
+        defaultValue: boolean;
+        disabled: boolean;
+        activeText: string;
+        inactiveText: string;
+        rules: Rules;
+        width?: undefined;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        range?: undefined;
+    };
+} | {
+    label: string;
+    type: "slider";
+    options: {
+        defaultValue: number;
+        width: string;
+        min: number;
+        max: number;
+        step: number;
+        disabled: boolean;
+        range: boolean;
+        rules: Rules;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+    };
+} | {
+    label: string;
+    type: "text";
+    options: {
+        defaultValue: string;
+        width?: undefined;
+        placeholder?: undefined;
+        maxlength?: undefined;
+        prefix?: undefined;
+        suffix?: undefined;
+        prepend?: undefined;
+        append?: undefined;
+        disabled?: undefined;
+        clearable?: undefined;
+        readonly?: undefined;
+        rules?: undefined;
+        showPassword?: undefined;
+        rows?: undefined;
+        autosize?: undefined;
+        showWordLimit?: undefined;
+        min?: undefined;
+        max?: undefined;
+        step?: undefined;
+        inline?: undefined;
+        remote?: undefined;
+        showLabel?: undefined;
+        remoteFunc?: undefined;
+        options?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        format?: undefined;
+        valueFormat?: undefined;
+        editable?: undefined;
+        allowHalf?: undefined;
+        multiple?: undefined;
+        filterable?: undefined;
+        activeText?: undefined;
+        inactiveText?: undefined;
+        range?: undefined;
+    };
+})[];
+export declare const basicFields: ("number" | "input" | "select" | "textarea" | "time" | "switch" | "text" | "password" | "radio" | "checkbox" | "date" | "rate" | "slider")[];
+export declare const advanceComponents: ({
+    label: string;
+    type: "img-upload";
+    options: {
+        defaultValue: never[];
+        name: string;
+        action: string;
+        method: string;
+        listType: string;
+        accept: string;
+        limit: number;
+        multiple: boolean;
+        disabled: boolean;
+        rules: Rules;
+        width?: undefined;
+        placeholder?: undefined;
+        clearable?: undefined;
+        filterable?: undefined;
+        remote?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        remoteFunc?: undefined;
+    };
+    labelWidth?: undefined;
+} | {
+    label: string;
+    type: "download";
+    labelWidth: string;
+    options: {
+        defaultValue: string;
+        name: string;
+        action?: undefined;
+        method?: undefined;
+        listType?: undefined;
+        accept?: undefined;
+        limit?: undefined;
+        multiple?: undefined;
+        disabled?: undefined;
+        rules?: undefined;
+        width?: undefined;
+        placeholder?: undefined;
+        clearable?: undefined;
+        filterable?: undefined;
+        remote?: undefined;
+        remoteOptions?: undefined;
+        props?: undefined;
+        remoteFunc?: undefined;
+    };
+} | {
+    label: string;
+    type: "cascader";
+    options: {
+        defaultValue: never[];
+        width: string;
+        placeholder: string;
+        disabled: boolean;
+        clearable: boolean;
+        filterable: boolean;
+        remote: boolean;
+        remoteOptions: never[];
+        props: {
+            label: string;
+            value: string;
+            children: string;
+        };
+        remoteFunc: string;
+        rules: Rules;
+        name?: undefined;
+        action?: undefined;
+        method?: undefined;
+        listType?: undefined;
+        accept?: undefined;
+        limit?: undefined;
+        multiple?: undefined;
+    };
+    labelWidth?: undefined;
+})[];
+export declare const advanceFields: ("img-upload" | "download" | "cascader")[];
+export declare const layoutComponents: ({
+    label: string;
+    type: string;
+    columns: {
+        span: number;
+        list: never[];
+    }[];
+    options: {
+        gutter: number;
+        align: string;
+        defaultValue?: undefined;
+        disabled?: undefined;
+        size?: undefined;
+    };
+} | {
+    label: string;
+    type: string;
+    columns: {
+        label: string;
+        prop: string;
+    }[];
+    options: {
+        defaultValue: never[];
+        disabled: boolean;
+        size: string;
+        align: string;
+        gutter?: undefined;
+    };
+} | {
+    label: string;
+    type: string;
+    options: {
+        gutter?: undefined;
+        align?: undefined;
+        defaultValue?: undefined;
+        disabled?: undefined;
+        size?: undefined;
+    };
+    columns?: undefined;
+})[];
+export declare const layoutFields: string[];

+ 79 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/DesignForm.vue.d.ts

@@ -0,0 +1,79 @@
+import type { PropType } from 'vue';
+import type { WidgetForm } from '@/config';
+declare const _default: import("vue").DefineComponent<{
+    preview: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    generateJson: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    clearable: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    basicFieldsList: {
+        type: PropType<("number" | "input" | "select" | "textarea" | "time" | "switch" | "text" | "password" | "radio" | "checkbox" | "date" | "rate" | "slider")[]>;
+        default: () => ("number" | "input" | "select" | "textarea" | "time" | "switch" | "text" | "password" | "radio" | "checkbox" | "date" | "rate" | "slider")[];
+    };
+    advanceFieldsList: {
+        type: PropType<("img-upload" | "download" | "cascader")[]>;
+        default: () => ("img-upload" | "download" | "cascader")[];
+    };
+    layoutFieldsList: {
+        type: PropType<string[]>;
+        default: () => string[];
+    };
+    request: {
+        type: FunctionConstructor;
+    };
+}, {
+    getJson: () => {
+        list: any[];
+        config: {
+            size: "" | "small" | "default" | "large";
+            hideRequiredAsterisk: boolean;
+            labelWidth: number;
+            labelPosition: string;
+        };
+    };
+    setJson: (json: WidgetForm) => void;
+    clear: () => void;
+}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
+    preview: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    generateJson: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    clearable: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    basicFieldsList: {
+        type: PropType<("number" | "input" | "select" | "textarea" | "time" | "switch" | "text" | "password" | "radio" | "checkbox" | "date" | "rate" | "slider")[]>;
+        default: () => ("number" | "input" | "select" | "textarea" | "time" | "switch" | "text" | "password" | "radio" | "checkbox" | "date" | "rate" | "slider")[];
+    };
+    advanceFieldsList: {
+        type: PropType<("img-upload" | "download" | "cascader")[]>;
+        default: () => ("img-upload" | "download" | "cascader")[];
+    };
+    layoutFieldsList: {
+        type: PropType<string[]>;
+        default: () => string[];
+    };
+    request: {
+        type: FunctionConstructor;
+    };
+}>>, {
+    preview: boolean;
+    generateJson: boolean;
+    clearable: boolean;
+    basicFieldsList: ("number" | "input" | "select" | "textarea" | "time" | "switch" | "text" | "password" | "radio" | "checkbox" | "date" | "rate" | "slider")[];
+    advanceFieldsList: ("img-upload" | "download" | "cascader")[];
+    layoutFieldsList: string[];
+}>;
+export default _default;

+ 16 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/FormConfig.vue.d.ts

@@ -0,0 +1,16 @@
+import type { WidgetForm } from '@/config';
+declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
+    config: WidgetForm['config'];
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    config: WidgetForm['config'];
+}>>>, {}>;
+export default _default;
+declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
+declare type __VLS_TypePropsToRuntimeProps<T> = {
+    [K in keyof T]-?: {} extends Pick<T, K> ? {
+        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
+    } : {
+        type: import('vue').PropType<T[K]>;
+        required: true;
+    };
+};

+ 20 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/WidgetConfig.vue.d.ts

@@ -0,0 +1,20 @@
+declare const _default: import("vue").DefineComponent<{
+    select: {
+        type: ObjectConstructor;
+    };
+}, {
+    data: any;
+    hasKey: (key: string) => boolean;
+    handleInsertColumn: () => void;
+    handleInsertOption: () => void;
+    handleOptionsRemove: (index: number) => void;
+    handleSliderModeChange: (checked: string | number | boolean) => void;
+    handleSelectModeChange: (val: string | number | boolean) => void;
+}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:select"[], "update:select", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
+    select: {
+        type: ObjectConstructor;
+    };
+}>> & {
+    "onUpdate:select"?: ((...args: any[]) => any) | undefined;
+}, {}>;
+export default _default;

+ 22 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/WidgetForm.vue.d.ts

@@ -0,0 +1,22 @@
+import type { WidgetForm } from '@/config';
+declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
+    list: any;
+    config: WidgetForm['config'];
+    selectWidget: any;
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:selectWidget"[], "update:selectWidget", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    list: any;
+    config: WidgetForm['config'];
+    selectWidget: any;
+}>>> & {
+    "onUpdate:selectWidget"?: ((...args: any[]) => any) | undefined;
+}, {}>;
+export default _default;
+declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
+declare type __VLS_TypePropsToRuntimeProps<T> = {
+    [K in keyof T]-?: {} extends Pick<T, K> ? {
+        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
+    } : {
+        type: import('vue').PropType<T[K]>;
+        required: true;
+    };
+};

+ 25 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/design/WidgetFormItem.vue.d.ts

@@ -0,0 +1,25 @@
+declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
+    list: any;
+    element: any;
+    index: number;
+    selectWidget: any;
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("itemClick" | "delete" | "update:selectWidget")[], "itemClick" | "delete" | "update:selectWidget", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    list: any;
+    element: any;
+    index: number;
+    selectWidget: any;
+}>>> & {
+    onItemClick?: ((...args: any[]) => any) | undefined;
+    onDelete?: ((...args: any[]) => any) | undefined;
+    "onUpdate:selectWidget"?: ((...args: any[]) => any) | undefined;
+}, {}>;
+export default _default;
+declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
+declare type __VLS_TypePropsToRuntimeProps<T> = {
+    [K in keyof T]-?: {} extends Pick<T, K> ? {
+        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
+    } : {
+        type: import('vue').PropType<T[K]>;
+        required: true;
+    };
+};

+ 43 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateForm.vue.d.ts

@@ -0,0 +1,43 @@
+declare const _default: import("vue").DefineComponent<{
+    data: {
+        type: ObjectConstructor;
+        default: import("@/config").WidgetForm;
+    };
+    value: {
+        type: ObjectConstructor;
+    };
+    disabled: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    request: {
+        type: FunctionConstructor;
+    };
+}, {
+    getData: () => Promise<unknown>;
+    reset: () => void;
+    generateForm: import("vue").Ref<any>;
+    model: import("vue").Ref<any>;
+    updatedModel: import("vue").Ref<any>;
+    rules: import("vue").Ref<any>;
+    widgetForm: import("vue").Ref<any>;
+}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
+    data: {
+        type: ObjectConstructor;
+        default: import("@/config").WidgetForm;
+    };
+    value: {
+        type: ObjectConstructor;
+    };
+    disabled: {
+        type: BooleanConstructor;
+        default: boolean;
+    };
+    request: {
+        type: FunctionConstructor;
+    };
+}>>, {
+    data: Record<string, any>;
+    disabled: boolean;
+}>;
+export default _default;

+ 26 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateFormItem.vue.d.ts

@@ -0,0 +1,26 @@
+import type { WidgetForm } from '@/config';
+declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
+    config: WidgetForm['config'];
+    element: any;
+    model: any;
+    updatedModel: any;
+    disabled: boolean;
+    request?: Function | undefined;
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    config: WidgetForm['config'];
+    element: any;
+    model: any;
+    updatedModel: any;
+    disabled: boolean;
+    request?: Function | undefined;
+}>>>, {}>;
+export default _default;
+declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
+declare type __VLS_TypePropsToRuntimeProps<T> = {
+    [K in keyof T]-?: {} extends Pick<T, K> ? {
+        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
+    } : {
+        type: import('vue').PropType<T[K]>;
+        required: true;
+    };
+};

ファイルの差分が大きいため隠しています
+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.css


+ 4 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.d.ts

@@ -0,0 +1,4 @@
+import 'element-plus/theme-chalk/el-message.css';
+export { basicFields, advanceFields, layoutFields } from './config';
+export { default as DesignForm } from './design/DesignForm.vue';
+export { default as GenerateForm } from './generate/GenerateForm.vue';

ファイルの差分が大きいため隠しています
+ 31402 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js


ファイルの差分が大きいため隠しています
+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js.map


+ 21 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/LICENSE

@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE

+ 16 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/README.md

@@ -0,0 +1,16 @@
+# Installation
+> `npm install --save @types/web-bluetooth`
+
+# Summary
+This package contains type definitions for Web Bluetooth (https://webbluetoothcg.github.io/web-bluetooth/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/web-bluetooth.
+
+### Additional Details
+ * Last updated: Mon, 21 Mar 2022 19:31:50 GMT
+ * Dependencies: none
+ * Global values: none
+
+# Credits
+These definitions were written by [Uri Shaked](https://github.com/urish), [Xavier Lozinguez](https://github.com/xlozinguez), [Rob Moran](https://github.com/thegecko), and [David Bjerremose](https://github.com/DaBs).

+ 176 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/index.d.ts

@@ -0,0 +1,176 @@
+// Type definitions for Web Bluetooth
+// Project: https://webbluetoothcg.github.io/web-bluetooth/
+// Definitions by: Uri Shaked <https://github.com/urish>
+//                    Xavier Lozinguez <https://github.com/xlozinguez>
+//                    Rob Moran <https://github.com/thegecko>
+//                    David Bjerremose <https://github.com/DaBs>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+type BluetoothServiceUUID = number | string;
+type BluetoothCharacteristicUUID = number | string;
+type BluetoothDescriptorUUID = number | string;
+
+type BluetoothManufacturerData = Map<number, DataView>;
+type BluetoothServiceData = Map<BluetoothServiceUUID, DataView>;
+
+interface BluetoothDataFilter {
+    readonly dataPrefix?: BufferSource | undefined;
+    readonly mask?: BufferSource | undefined;
+}
+
+interface BluetoothManufacturerDataFilter extends BluetoothDataFilter {
+    companyIdentifier: number;
+}
+
+interface BluetoothServiceDataFilter extends BluetoothDataFilter {
+    service: BluetoothServiceUUID;
+}
+
+interface BluetoothLEScanFilter {
+    readonly name?: string | undefined;
+    readonly namePrefix?: string | undefined;
+    readonly services?: BluetoothServiceUUID[] | undefined;
+    readonly manufacturerData?: BluetoothManufacturerDataFilter[] | undefined;
+    readonly serviceData?: BluetoothServiceDataFilter[] | undefined;
+}
+
+interface BluetoothLEScanOptions {
+    readonly filters?: BluetoothLEScanFilter[] | undefined;
+    readonly keepRepeatedDevices?: boolean | undefined;
+    readonly acceptAllAdvertisements?: boolean | undefined;
+}
+
+interface BluetoothLEScan extends BluetoothLEScanOptions {
+    active: boolean;
+    stop: () => void;
+}
+
+type RequestDeviceOptions = {
+    filters: BluetoothLEScanFilter[];
+    optionalServices?: BluetoothServiceUUID[] | undefined;
+    optionalManufacturerData?: number[] | undefined;
+} | {
+    acceptAllDevices: boolean;
+    optionalServices?: BluetoothServiceUUID[] | undefined;
+    optionalManufacturerData?: number[] | undefined;
+};
+
+interface BluetoothAdvertisingEvent extends Event {
+    readonly device: BluetoothDevice;
+    readonly uuids: BluetoothServiceUUID[];
+    readonly manufacturerData: BluetoothManufacturerData;
+    readonly serviceData: BluetoothServiceData;
+    readonly name?: string | undefined;
+    readonly appearance?: number | undefined;
+    readonly rssi?: number | undefined;
+    readonly txPower?: number | undefined;
+}
+
+interface BluetoothRemoteGATTDescriptor {
+    readonly characteristic: BluetoothRemoteGATTCharacteristic;
+    readonly uuid: string;
+    readonly value?: DataView | undefined;
+    readValue(): Promise<DataView>;
+    writeValue(value: BufferSource): Promise<void>;
+}
+
+interface BluetoothCharacteristicProperties {
+    readonly broadcast: boolean;
+    readonly read: boolean;
+    readonly writeWithoutResponse: boolean;
+    readonly write: boolean;
+    readonly notify: boolean;
+    readonly indicate: boolean;
+    readonly authenticatedSignedWrites: boolean;
+    readonly reliableWrite: boolean;
+    readonly writableAuxiliaries: boolean;
+}
+
+interface CharacteristicEventHandlers {
+    oncharacteristicvaluechanged: (this: this, ev: Event) => any;
+}
+
+interface BluetoothRemoteGATTCharacteristic extends EventTarget, CharacteristicEventHandlers {
+    readonly service: BluetoothRemoteGATTService;
+    readonly uuid: string;
+    readonly properties: BluetoothCharacteristicProperties;
+    readonly value?: DataView | undefined;
+    getDescriptor(descriptor: BluetoothDescriptorUUID): Promise<BluetoothRemoteGATTDescriptor>;
+    getDescriptors(descriptor?: BluetoothDescriptorUUID): Promise<BluetoothRemoteGATTDescriptor[]>;
+    readValue(): Promise<DataView>;
+    writeValue(value: BufferSource): Promise<void>;
+    writeValueWithResponse(value: BufferSource): Promise<void>;
+    writeValueWithoutResponse(value: BufferSource): Promise<void>;
+    startNotifications(): Promise<BluetoothRemoteGATTCharacteristic>;
+    stopNotifications(): Promise<BluetoothRemoteGATTCharacteristic>;
+    addEventListener(type: "characteristicvaluechanged", listener: (this: this, ev: Event) => any, useCapture?: boolean): void;
+    addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+}
+
+interface ServiceEventHandlers {
+    onserviceadded: (this: this, ev: Event) => any;
+    onservicechanged: (this: this, ev: Event) => any;
+    onserviceremoved: (this: this, ev: Event) => any;
+}
+
+interface BluetoothRemoteGATTService extends EventTarget, CharacteristicEventHandlers, ServiceEventHandlers {
+    readonly device: BluetoothDevice;
+    readonly uuid: string;
+    readonly isPrimary: boolean;
+    getCharacteristic(characteristic: BluetoothCharacteristicUUID): Promise<BluetoothRemoteGATTCharacteristic>;
+    getCharacteristics(characteristic?: BluetoothCharacteristicUUID): Promise<BluetoothRemoteGATTCharacteristic[]>;
+    getIncludedService(service: BluetoothServiceUUID): Promise<BluetoothRemoteGATTService>;
+    getIncludedServices(service?: BluetoothServiceUUID): Promise<BluetoothRemoteGATTService[]>;
+    addEventListener(type: "serviceadded", listener: (this: this, ev: Event) => any, useCapture?: boolean): void;
+    addEventListener(type: "servicechanged", listener: (this: this, ev: Event) => any, useCapture?: boolean): void;
+    addEventListener(type: "serviceremoved", listener: (this: this, ev: Event) => any, useCapture?: boolean): void;
+    addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+}
+
+interface BluetoothRemoteGATTServer {
+    readonly device: BluetoothDevice;
+    readonly connected: boolean;
+    connect(): Promise<BluetoothRemoteGATTServer>;
+    disconnect(): void;
+    getPrimaryService(service: BluetoothServiceUUID): Promise<BluetoothRemoteGATTService>;
+    getPrimaryServices(service?: BluetoothServiceUUID): Promise<BluetoothRemoteGATTService[]>;
+}
+
+interface BluetoothDeviceEventHandlers {
+    onadvertisementreceived: (this: this, ev: BluetoothAdvertisingEvent) => any;
+    ongattserverdisconnected: (this: this, ev: Event) => any;
+}
+
+interface WatchAdvertisementsOptions {
+    signal?: AbortSignal;
+}
+
+interface BluetoothDevice extends EventTarget, BluetoothDeviceEventHandlers, CharacteristicEventHandlers, ServiceEventHandlers {
+    readonly id: string;
+    readonly name?: string | undefined;
+    readonly gatt?: BluetoothRemoteGATTServer | undefined;
+    readonly uuids?: string[] | undefined;
+    forget(): Promise<void>;
+    watchAdvertisements(options?: WatchAdvertisementsOptions): Promise<void>;
+    unwatchAdvertisements(): void;
+    readonly watchingAdvertisements: boolean;
+    addEventListener(type: "gattserverdisconnected", listener: (this: this, ev: Event) => any, useCapture?: boolean): void;
+    addEventListener(type: "advertisementreceived", listener: (this: this, ev: BluetoothAdvertisingEvent) => any, useCapture?: boolean): void;
+    addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+}
+
+interface Bluetooth extends EventTarget, BluetoothDeviceEventHandlers, CharacteristicEventHandlers, ServiceEventHandlers {
+    getDevices(): Promise<BluetoothDevice[]>;
+    getAvailability(): Promise<boolean>;
+    onavailabilitychanged: (this: this, ev: Event) => any;
+    readonly referringDevice?: BluetoothDevice | undefined;
+    requestDevice(options?: RequestDeviceOptions): Promise<BluetoothDevice>;
+    requestLEScan(options?: BluetoothLEScanOptions): Promise<BluetoothLEScan>;
+    addEventListener(type: "availabilitychanged", listener: (this: this, ev: Event) => any, useCapture?: boolean): void;
+    addEventListener(type: "advertisementreceived", listener: (this: this, ev: BluetoothAdvertisingEvent) => any, useCapture?: boolean): void;
+    addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+}
+
+interface Navigator {
+    bluetooth: Bluetooth;
+}

+ 40 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@types/web-bluetooth/package.json

@@ -0,0 +1,40 @@
+{
+    "name": "@types/web-bluetooth",
+    "version": "0.0.14",
+    "description": "TypeScript definitions for Web Bluetooth",
+    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/web-bluetooth",
+    "license": "MIT",
+    "contributors": [
+        {
+            "name": "Uri Shaked",
+            "url": "https://github.com/urish",
+            "githubUsername": "urish"
+        },
+        {
+            "name": "Xavier Lozinguez",
+            "url": "https://github.com/xlozinguez",
+            "githubUsername": "xlozinguez"
+        },
+        {
+            "name": "Rob Moran",
+            "url": "https://github.com/thegecko",
+            "githubUsername": "thegecko"
+        },
+        {
+            "name": "David Bjerremose",
+            "url": "https://github.com/DaBs",
+            "githubUsername": "DaBs"
+        }
+    ],
+    "main": "",
+    "types": "index.d.ts",
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+        "directory": "types/web-bluetooth"
+    },
+    "scripts": {},
+    "dependencies": {},
+    "typesPublisherContentHash": "d892e9ae9d24a1f67aeaec0b21dff39deea3612836f422c06a0997bcbc3d1e6f",
+    "typeScriptVersion": "3.9"
+}

+ 21 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019-PRESENT Anthony Fu<https://github.com/antfu>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 123 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/README.md

@@ -0,0 +1,123 @@
+<p align="center">
+<a href="https://github.com/vueuse/vueuse#gh-light-mode-only">
+  <img src="https://raw.githubusercontent.com/vueuse/vueuse/main/packages/public/logo-vertical.png#gh-light-mode-only" alt="VueUse - Collection of essential Vue Composition Utilities" width="300">
+</a>
+<a href="https://github.com/vueuse/vueuse#gh-dark-mode-only">
+  <img src="https://raw.githubusercontent.com/vueuse/vueuse/main/packages/public/logo-vertical-dark.png#gh-dark-mode-only" alt="VueUse - Collection of essential Vue Composition Utilities" width="300">
+</a>
+<br>
+Collection of essential Vue Composition Utilities
+</p>
+
+<p align="center">
+<a href="https://www.npmjs.com/package/@vueuse/core" target="__blank"><img src="https://img.shields.io/npm/v/@vueuse/core?color=a1b858&label=" alt="NPM version"></a>
+<a href="https://www.npmjs.com/package/@vueuse/core" target="__blank"><img alt="NPM Downloads" src="https://img.shields.io/npm/dm/@vueuse/core?color=50a36f&label="></a>
+<a href="https://vueuse.org" target="__blank"><img src="https://img.shields.io/static/v1?label=&message=docs%20%26%20demos&color=1e8a7a" alt="Docs & Demos"></a>
+<img alt="Function Count" src="https://vueuse.org/badge-function-count.svg">
+<br>
+<a href="https://github.com/vueuse/vueuse" target="__blank"><img alt="GitHub stars" src="https://img.shields.io/github/stars/vueuse/vueuse?style=social"></a>
+</p>
+
+<p align="center">
+  <a href="https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg">
+    <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg'>
+  </a>
+</p>
+
+## 🚀 Features
+
+- 🎪 [**Interactive docs & demos**](https://vueuse.org)
+- 🕶 **Seamless migration**: Works for **both** Vue 3 and 2
+- ⚡ **Fully tree shakeable**: Only take what you want, [bundle size](https://vueuse.org/export-size)
+- 🦾 **Type Strong**: Written in [TypeScript](https://www.typescriptlang.org/), with [TS Docs](https://github.com/microsoft/tsdoc)
+- 🔋 **SSR Friendly**
+- 🌎 **No bundler required**: Usable via CDN
+- 🔩 **Flexible**: Configurable event filters and targets
+- 🔌 **Optional [Add-ons](https://vueuse.org/add-ons)**: Router, Firebase, RxJS, etc.
+
+## 🦄 Usage
+
+```ts
+import { useLocalStorage, useMouse, usePreferredDark } from '@vueuse/core'
+
+export default {
+  setup() {
+    // tracks mouse position
+    const { x, y } = useMouse()
+
+    // is user prefers dark theme
+    const isDark = usePreferredDark()
+
+    // persist state in localStorage
+    const store = useLocalStorage(
+      'my-storage',
+      {
+        name: 'Apple',
+        color: 'red',
+      },
+    )
+
+    return { x, y, isDark, store }
+  },
+}
+```
+
+Refer to [functions list](https://vueuse.org/functions) or [documentations](https://vueuse.org/) for more details.
+
+## 📦 Install
+
+> 🎩 From v4.0, it works for Vue 2 & 3 **within a single package** by the power of [vue-demi](https://github.com/vueuse/vue-demi)!
+
+```bash
+npm i @vueuse/core
+```
+
+[Add ons](https://vueuse.org/add-ons.html) | [Nuxt Module](https://vueuse.org/guide/index.html#nuxt)
+
+> From v6.0, VueUse requires `vue` >= v3.2 or `@vue/composition-api` >= v1.1
+
+###### Demos
+
+- [Vite + Vue 3](https://github.com/vueuse/vueuse-vite-starter)
+- [Nuxt 3 + Vue 3](https://github.com/antfu/vitesse-nuxt3)
+- [Webpack + Vue 3](https://github.com/vueuse/vueuse-vue3-example)
+- [Nuxt 2 + Vue 2](https://github.com/antfu/vitesse-nuxt-bridge)
+- [Vue CLI + Vue 2](https://github.com/vueuse/vueuse-vue2-example)
+
+### CDN
+
+```html
+<script src="https://unpkg.com/@vueuse/shared"></script>
+<script src="https://unpkg.com/@vueuse/core"></script>
+```
+
+It will be exposed to global as `window.VueUse`
+
+## 🪴 Project Activity
+
+![Alt](https://repobeats.axiom.co/api/embed/a406ba7461a6a087dbdb14d4395046c948d44c51.svg "Repobeats analytics image")
+
+## 🧱 Contribute
+
+See the [**Contributing Guide**](https://vueuse.org/contributing)
+
+## 🌸 Thanks
+
+This project is heavily inspired by the following awesome projects.
+
+- [streamich/react-use](https://github.com/streamich/react-use)
+- [u3u/vue-hooks](https://github.com/u3u/vue-hooks)
+- [logaretm/vue-use-web](https://github.com/logaretm/vue-use-web)
+- [kripod/react-hooks](https://github.com/kripod/react-hooks)
+
+And thanks to [all the contributors on GitHub](https://github.com/vueuse/vueuse/graphs/contributors)!
+
+## 👨‍🚀 Contributors
+
+### Financial Contributors on Open Collective
+
+<a href="https://opencollective.com/vueuse"><img src="https://opencollective.com/vueuse/individuals.svg?width=890"></a>
+
+## 📄 License
+
+[MIT License](https://github.com/vueuse/vueuse/blob/main/LICENSE) © 2019-PRESENT [Anthony Fu](https://github.com/antfu)

ファイルの差分が大きいため隠しています
+ 6075 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.cjs


ファイルの差分が大きいため隠しています
+ 4305 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.d.ts


ファイルの差分が大きいため隠しています
+ 6164 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.iife.js


ファイルの差分が大きいため隠しています
+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.iife.min.js


ファイルの差分が大きいため隠しています
+ 5920 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/index.mjs


+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/metadata.cjs

@@ -0,0 +1 @@
+module.exports = require('@vueuse/metadata')

+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/metadata.d.ts

@@ -0,0 +1 @@
+export * from '@vueuse/metadata'

+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/metadata.mjs

@@ -0,0 +1 @@
+export * from '@vueuse/metadata'

+ 16 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix

@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*)
+        if command -v cygpath > /dev/null 2>&1; then
+            basedir=`cygpath -w "$basedir"`
+        fi
+    ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../vue-demi/bin/vue-demi-fix.js" "$@"
+else 
+  exec node  "$basedir/../vue-demi/bin/vue-demi-fix.js" "$@"
+fi

+ 17 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\vue-demi\bin\vue-demi-fix.js" %*

+ 28 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix.ps1

@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "$basedir/node$exe"  "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
+  } else {
+    & "$basedir/node$exe"  "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
+  }
+  $ret=$LASTEXITCODE
+} else {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "node$exe"  "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
+  } else {
+    & "node$exe"  "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
+  }
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 16 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch

@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*)
+        if command -v cygpath > /dev/null 2>&1; then
+            basedir=`cygpath -w "$basedir"`
+        fi
+    ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../vue-demi/bin/vue-demi-switch.js" "$@"
+else 
+  exec node  "$basedir/../vue-demi/bin/vue-demi-switch.js" "$@"
+fi

+ 17 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\vue-demi\bin\vue-demi-switch.js" %*

+ 28 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch.ps1

@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "$basedir/node$exe"  "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
+  } else {
+    & "$basedir/node$exe"  "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
+  }
+  $ret=$LASTEXITCODE
+} else {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "node$exe"  "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
+  } else {
+    & "node$exe"  "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
+  }
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 21 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019-PRESENT Anthony Fu<https://github.com/antfu>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

ファイルの差分が大きいため隠しています
+ 1548 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.cjs


ファイルの差分が大きいため隠しています
+ 874 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.d.ts


ファイルの差分が大きいため隠しています
+ 1638 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.iife.js


ファイルの差分が大きいため隠しています
+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.iife.min.js


ファイルの差分が大きいため隠しています
+ 1442 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/index.mjs


+ 50 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/@vueuse/shared/package.json

@@ -0,0 +1,50 @@
+{
+  "name": "@vueuse/shared",
+  "version": "8.9.4",
+  "author": "Anthony Fu <https://github.com/antfu>",
+  "license": "MIT",
+  "funding": "https://github.com/sponsors/antfu",
+  "homepage": "https://github.com/vueuse/vueuse/tree/main/packages/shared#readme",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/vueuse/vueuse.git",
+    "directory": "packages/shared"
+  },
+  "bugs": {
+    "url": "https://github.com/vueuse/vueuse/issues"
+  },
+  "keywords": [
+    "vue",
+    "vue-use",
+    "utils"
+  ],
+  "sideEffects": false,
+  "exports": {
+    ".": {
+      "types": "./index.d.ts",
+      "require": "./index.cjs",
+      "import": "./index.mjs"
+    },
+    "./*": "./*"
+  },
+  "main": "./index.cjs",
+  "module": "./index.mjs",
+  "unpkg": "./index.iife.min.js",
+  "jsdelivr": "./index.iife.min.js",
+  "types": "./index.d.ts",
+  "peerDependencies": {
+    "@vue/composition-api": "^1.1.0",
+    "vue": "^2.6.0 || ^3.2.0"
+  },
+  "peerDependenciesMeta": {
+    "vue": {
+      "optional": true
+    },
+    "@vue/composition-api": {
+      "optional": true
+    }
+  },
+  "dependencies": {
+    "vue-demi": "*"
+  }
+}

+ 21 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020-present, Anthony Fu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 228 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/README.md

@@ -0,0 +1,228 @@
+<p align="center">
+<img src="https://github.com/vueuse/vue-demi/blob/main/assets/banner.png?raw=true" width="600"/>
+<br>
+<a href='https://www.npmjs.com/package/vue-demi'><img src='https://img.shields.io/npm/v/vue-demi?color=42b883' alt='npm'></a>
+</p>
+
+<p align="center">
+<b>Vue Demi</b> (<i>half</i> in French) is a developing utility<br> allows you to write <b>Universal Vue Libraries</b> for Vue 2 & 3<br>
+<i>See more details in <a href='https://antfu.me/posts/make-libraries-working-with-vue-2-and-3'>this blog post</a></i>
+</p>
+
+<br>
+
+<br>
+
+## Strategies
+
+- `<=2.6`: exports from `vue` + `@vue/composition-api` with plugin auto installing.
+- `2.7`: exports from `vue` (Composition API is built-in in Vue 2.7).
+- `>=3.0`: exports from `vue`, with polyfill of Vue 2's `set` and `del` API.
+
+## Usage
+
+Install this as your plugin's dependency:
+
+```bash
+npm i vue-demi
+# or
+yarn add vue-demi
+# or 
+pnpm i vue-demi
+```
+
+Add `vue` and `@vue/composition-api` to your plugin's peer dependencies to specify what versions you support.
+
+```jsonc
+{
+  "dependencies": {
+    "vue-demi": "latest"
+  },
+  "peerDependencies": {
+    "@vue/composition-api": "^1.0.0-rc.1",
+    "vue": "^2.0.0 || >=3.0.0"
+  },
+  "peerDependenciesMeta": {
+    "@vue/composition-api": {
+      "optional": true
+    }
+  },
+  "devDependencies": {
+    "vue": "^3.0.0" // or "^2.6.0" base on your preferred working environment
+  },
+}
+```
+
+Import everything related to Vue from it, it will redirect to `vue@2` + `@vue/composition-api` or `vue@3` based on users' environments.
+
+```ts
+import { ref, reactive, defineComponent } from 'vue-demi'
+```
+
+Publish your plugin and all is done!
+
+> When using with [Vite](https://vitejs.dev), you will need to opt-out the pre-bundling to get `vue-demi` work properly by
+> ```js
+> // vite.config.js
+> export default defineConfig({
+>   optimizeDeps: {
+>     exclude: ['vue-demi']
+>  }
+> })
+> ```
+
+### Extra APIs
+
+`Vue Demi` provides extra APIs to help distinguish users' environments and to do some version-specific logic.
+
+### `isVue2` `isVue3`
+
+```ts
+import { isVue2, isVue3 } from 'vue-demi'
+
+if (isVue2) {
+  // Vue 2 only
+} else {
+  // Vue 3 only
+}
+```
+
+### `Vue2`
+
+To avoid bringing in all the tree-shakable modules, we provide a `Vue2` export to support access to Vue 2's global API. (See [#41](https://github.com/vueuse/vue-demi/issues/41).)
+
+```ts
+import { Vue2 } from 'vue-demi'
+
+if (Vue2) {
+  Vue2.config.ignoredElements.push('x-foo')
+}
+```
+
+### `install()`
+
+Composition API in Vue 2 is provided as a plugin and needs to be installed on the Vue instance before using. Normally, `vue-demi` will try to install it automatically. For some usages where you might need to ensure the plugin gets installed correctly, the `install()` API is exposed to as a safe version of `Vue.use(CompositionAPI)`. `install()` in the Vue 3 environment will be an empty function (no-op).
+
+```ts
+import { install } from 'vue-demi'
+
+install()
+```
+
+## CLI
+
+### Manually Switch Versions
+
+To explicitly switch the redirecting version, you can use these commands in your project's root.
+
+```bash
+npx vue-demi-switch 2
+# or
+npx vue-demi-switch 3
+```
+
+### Package Aliasing
+
+If you would like to import `vue` under an alias, you can use the following command 
+
+```bash
+npx vue-demi-switch 2 vue2
+# or
+npx vue-demi-switch 3 vue3
+```
+
+Then `vue-demi` will redirect APIs from the alias name you specified, for example:
+
+```ts
+import * as Vue from 'vue3'
+
+var isVue2 = false
+var isVue3 = true
+var Vue2 = undefined
+
+export * from 'vue3'
+export {
+  Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+}
+```
+
+### Auto Fix
+
+If the `postinstall` hook doesn't get triggered or you have updated the Vue version, try to run the following command to resolve the redirecting.
+
+```bash
+npx vue-demi-fix
+```
+
+### Isomorphic Testings
+
+You can support testing for both versions by adding npm alias in your dev dependencies. For example:
+
+```json
+{
+  "scripts": {
+    "test:2": "vue-demi-switch 2 vue2 && jest",
+    "test:3": "vue-demi-switch 3 && jest",
+  },
+  "devDependencies": {
+    "vue": "^3.0.0",
+    "vue2": "npm:vue@2"
+  },
+}
+```
+
+or
+
+```json
+{
+  "scripts": {
+    "test:2": "vue-demi-switch 2 && jest",
+    "test:3": "vue-demi-switch 3 vue3 && jest",
+  },
+  "devDependencies": {
+    "vue": "^2.6.0",
+    "vue3": "npm:vue@3"
+  },
+}
+```
+
+## Examples
+
+See [examples](./examples).
+
+## Who is using this?
+
+- [VueUse](https://github.com/vueuse/vueuse) - Collection of Composition API utils
+- [@vue/apollo-composable](https://github.com/vuejs/vue-apollo/tree/v4/packages/vue-apollo-composable) - Apollo GraphQL functions for Vue Composition API
+- [vuelidate](https://github.com/vuelidate/vuelidate) - Simple, lightweight model-based validation
+- [vue-composition-test-utils](https://github.com/ariesjia/vue-composition-test-utils) - Simple vue composition api unit test utilities
+- [vue-use-stripe](https://github.com/frandiox/vue-use-stripe) - Stripe Elements wrapper for Vue.js
+- [@opd/g2plot-vue](https://github.com/open-data-plan/g2plot-vue) - G2plot for vue
+- [vue-echarts](https://github.com/ecomfe/vue-echarts) - Vue.js component for Apache ECharts.
+- [fluent-vue](https://github.com/Demivan/fluent-vue) - Vue.js integration for [Fluent.js](https://github.com/projectfluent/fluent.js) - JavaScript implementation of [Project Fluent](https://projectfluent.org)  
+- [vue-datatable-url-sync](https://github.com/socotecio/vue-datatable-url-sync) - Synchronize datatable options and filters with the url to keep user preference even after refresh or navigation
+- [vue-insta-stories](https://github.com/UnevenSoftware/vue-insta-stories) - Instagram stories in your vue projects.
+- [vue-tiny-validate](https://github.com/FrontLabsOfficial/vue-tiny-validate) - Tiny Vue Validate Composition
+- [v-perfect-signature](https://github.com/wobsoriano/v-perfect-signature) - Pressure-sensitive signature drawing for Vue 2 and 3
+- [vue-winbox](https://github.com/wobsoriano/vue-winbox) - A wrapper component for WinBox.js that adds the ability to mount Vue components.
+- [vue-word-highlighter](https://github.com/kawamataryo/vue-word-highlighter) - The word highlighter library for Vue 2 and Vue 3
+- [vue-chart-3](https://github.com/victorgarciaesgi/vue-chart-3) - Vue.js component for Chart.js
+- [json-editor-vue](https://github.com/cloydlau/json-editor-vue) - JSON editor & viewer for Vue 2 and 3.
+- [kidar-echarts](https://github.com/kidarjs/kidar-echarts) - A simpler echarts component for Vue 2 and 3.
+- [vue3-sketch-ruler](https://github.com/kakajun/vue3-sketch-ruler) - The zoom operation used for page presentation for Vue 2 and 3( Replace render function with template )
+- [vue-rough-notation](https://github.com/Leecason/vue-rough-notation) - RoughNotation wrapper component for Vue 2 and 3.
+- [vue-request](https://github.com/AttoJS/vue-request) - Vue composition API for data fetching, supports SWR, polling, error retry, cache request, pagination, etc.
+- [vue3-lazyload](https://github.com/murongg/vue3-lazyload) - A vue3.x image lazyload plugin.
+- [vue-codemirror6](https://github.com/logue/vue-codemirror6) - CodeMirror6 component for Vue2 and 3.
+> open a PR to add your library ;)
+
+## Underhood
+
+See [the blog post](https://antfu.me/posts/make-libraries-working-with-vue-2-and-3/#-introducing-vue-demi).
+
+## License
+
+MIT License © 2020 [Anthony Fu](https://github.com/antfu)

+ 3 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-fix.js

@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+'use strict'
+require('../scripts/postinstall')

+ 3 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-switch.js

@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+'use strict'
+require('../scripts/switch-cli')

+ 29 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.cjs

@@ -0,0 +1,29 @@
+var Vue = require('vue')
+
+Object.keys(Vue).forEach(function(key) {
+  exports[key] = Vue[key]
+})
+
+exports.set = function(target, key, val) {
+  if (Array.isArray(target)) {
+    target.length = Math.max(target.length, key)
+    target.splice(key, 1, val)
+    return val
+  }
+  target[key] = val
+  return val
+}
+
+exports.del = function(target, key) {
+  if (Array.isArray(target)) {
+    target.splice(key, 1)
+    return
+  }
+  delete target[key]
+}
+
+exports.Vue = Vue
+exports.Vue2 = undefined
+exports.isVue2 = false
+exports.isVue3 = true
+exports.install = function(){}

+ 22 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.d.ts

@@ -0,0 +1,22 @@
+import * as Vue from 'vue'
+declare const isVue2: boolean
+declare const isVue3: boolean
+declare const Vue2: any
+declare const install: (vue?: any) => void
+/** 
+ * @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
+ * Refer to https://github.com/vueuse/vue-demi/issues/41
+ */
+declare const V: typeof Vue
+
+export function set<T>(target: any, key: any, val: T): T
+export function del(target: any, key: any): void
+
+export * from 'vue'
+export {
+  V as Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  install,
+}

+ 119 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.iife.js

@@ -0,0 +1,119 @@
+var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
+  if (VueDemi.install) {
+    return VueDemi
+  }
+  if (!Vue) {
+    console.error('[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.')
+    return VueDemi
+  }
+
+  // Vue 2.7
+  if (Vue.version.slice(0, 4) === '2.7.') {
+    for (var key in Vue) {
+      VueDemi[key] = Vue[key]
+    }
+    VueDemi.isVue2 = true
+    VueDemi.isVue3 = false
+    VueDemi.install = function () {}
+    VueDemi.Vue = Vue
+    VueDemi.Vue2 = Vue
+    VueDemi.version = Vue.version
+    VueDemi.warn = Vue.util.warn
+    VueDemi.hasInjectionContext = function() {
+      return !!VueDemi.getCurrentInstance()
+    }
+    function createApp(rootComponent, rootProps) {
+      var vm
+      var provide = {}
+      var app = {
+        config: Vue.config,
+        use: Vue.use.bind(Vue),
+        mixin: Vue.mixin.bind(Vue),
+        component: Vue.component.bind(Vue),
+        provide: function (key, value) {
+          provide[key] = value
+          return this
+        },
+        directive: function (name, dir) {
+          if (dir) {
+            Vue.directive(name, dir)
+            return app
+          } else {
+            return Vue.directive(name)
+          }
+        },
+        mount: function (el, hydrating) {
+          if (!vm) {
+            vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))
+            vm.$mount(el, hydrating)
+            return vm
+          } else {
+            return vm
+          }
+        },
+        unmount: function () {
+          if (vm) {
+            vm.$destroy()
+            vm = undefined
+          }
+        },
+      }
+      return app
+    }
+    VueDemi.createApp = createApp
+  }
+  // Vue 2.6.x
+  else if (Vue.version.slice(0, 2) === '2.') {
+    if (VueCompositionAPI) {
+      for (var key in VueCompositionAPI) {
+        VueDemi[key] = VueCompositionAPI[key]
+      }
+      VueDemi.isVue2 = true
+      VueDemi.isVue3 = false
+      VueDemi.install = function () {}
+      VueDemi.Vue = Vue
+      VueDemi.Vue2 = Vue
+      VueDemi.version = Vue.version
+      VueDemi.hasInjectionContext = function() {
+        return !!VueDemi.getCurrentInstance()
+      }
+    } else {
+      console.error('[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.')
+    }
+  }
+  // Vue 3
+  else if (Vue.version.slice(0, 2) === '3.') {
+    for (var key in Vue) {
+      VueDemi[key] = Vue[key]
+    }
+    VueDemi.isVue2 = false
+    VueDemi.isVue3 = true
+    VueDemi.install = function () {}
+    VueDemi.Vue = Vue
+    VueDemi.Vue2 = undefined
+    VueDemi.version = Vue.version
+    VueDemi.set = function (target, key, val) {
+      if (Array.isArray(target)) {
+        target.length = Math.max(target.length, key)
+        target.splice(key, 1, val)
+        return val
+      }
+      target[key] = val
+      return val
+    }
+    VueDemi.del = function (target, key) {
+      if (Array.isArray(target)) {
+        target.splice(key, 1)
+        return
+      }
+      delete target[key]
+    }
+  } else {
+    console.error('[vue-demi] Vue version ' + Vue.version + ' is unsupported.')
+  }
+  return VueDemi
+})(
+  (this.VueDemi = this.VueDemi || (typeof VueDemi !== 'undefined' ? VueDemi : {})),
+  this.Vue || (typeof Vue !== 'undefined' ? Vue : undefined),
+  this.VueCompositionAPI || (typeof VueCompositionAPI !== 'undefined' ? VueCompositionAPI : undefined)
+);

+ 34 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs

@@ -0,0 +1,34 @@
+import * as Vue from 'vue'
+
+var isVue2 = false
+var isVue3 = true
+var Vue2 = undefined
+
+function install() {}
+
+export function set(target, key, val) {
+  if (Array.isArray(target)) {
+    target.length = Math.max(target.length, key)
+    target.splice(key, 1, val)
+    return val
+  }
+  target[key] = val
+  return val
+}
+
+export function del(target, key) {
+  if (Array.isArray(target)) {
+    target.splice(key, 1)
+    return
+  }
+  delete target[key]
+}
+
+export * from 'vue'
+export {
+  Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  install,
+}

+ 60 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.cjs

@@ -0,0 +1,60 @@
+var VueModule = require('vue')
+
+// get the real Vue https://github.com/vueuse/vue-demi/issues/192
+var Vue = VueModule.default || VueModule
+
+exports.Vue = Vue
+exports.Vue2 = Vue
+exports.isVue2 = true
+exports.isVue3 = false
+exports.install = function () {}
+exports.warn = Vue.util.warn
+
+// createApp polyfill
+exports.createApp = function (rootComponent, rootProps) {
+  var vm
+  var provide = {}
+  var app = {
+    config: Vue.config,
+    use: Vue.use.bind(Vue),
+    mixin: Vue.mixin.bind(Vue),
+    component: Vue.component.bind(Vue),
+    provide: function (key, value) {
+      provide[key] = value
+      return this
+    },
+    directive: function (name, dir) {
+      if (dir) {
+        Vue.directive(name, dir)
+        return app
+      } else {
+        return Vue.directive(name)
+      }
+    },
+    mount: function (el, hydrating) {
+      if (!vm) {
+        vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))
+        vm.$mount(el, hydrating)
+        return vm
+      } else {
+        return vm
+      }
+    },
+    unmount: function () {
+      if (vm) {
+        vm.$destroy()
+        vm = undefined
+      }
+    },
+  }
+  return app
+}
+
+Object.keys(VueModule).forEach(function (key) {
+  exports[key] = VueModule[key]
+})
+
+// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()
+exports.hasInjectionContext = function() {
+  return !!VueModule.getCurrentInstance()
+}

+ 38 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.d.ts

@@ -0,0 +1,38 @@
+import Vue from 'vue'
+import type { PluginFunction, PluginObject, VueConstructor, Directive, InjectionKey, Component } from 'vue'
+
+declare const isVue2: boolean
+declare const isVue3: boolean
+declare const Vue2: typeof Vue | undefined
+declare const version: string
+declare const install: (vue?: typeof Vue) => void
+export declare function warn(msg: string, vm?: Component | null): void
+/**
+ * @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
+ * Refer to https://github.com/vueuse/vue-demi/issues/41
+ */
+declare const V: typeof Vue
+
+// accept no generic because Vue 3 doesn't accept any
+// https://github.com/vuejs/vue-next/pull/2758/
+export declare type Plugin = PluginObject<any> | PluginFunction<any>
+export type { VNode } from 'vue'
+export * from 'vue'
+export { V as Vue, Vue2, isVue2, isVue3, version, install }
+
+// #region createApp polyfill
+export interface App<T = any> {
+  config: VueConstructor['config']
+  use: VueConstructor['use']
+  mixin: VueConstructor['mixin']
+  component: VueConstructor['component']
+  directive(name: string): Directive | undefined
+  directive(name: string, directive: Directive): this
+  provide<T>(key: InjectionKey<T> | string, value: T): this
+  mount: Vue['$mount']
+  unmount: Vue['$destroy']
+}
+export declare function createApp(rootComponent: any, rootProps?: any): App
+// #endregion
+
+export declare function hasInjectionContext(): boolean

+ 80 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.mjs

@@ -0,0 +1,80 @@
+import Vue from 'vue'
+import { getCurrentInstance } from 'vue'
+
+var isVue2 = true
+var isVue3 = false
+var Vue2 = Vue
+var warn = Vue.util.warn
+
+function install() {}
+
+// createApp polyfill
+export function createApp(rootComponent, rootProps) {
+  var vm
+  var provide = {}
+  var app = {
+    config: Vue.config,
+    use: Vue.use.bind(Vue),
+    mixin: Vue.mixin.bind(Vue),
+    component: Vue.component.bind(Vue),
+    provide: function (key, value) {
+      provide[key] = value
+      return this
+    },
+    directive: function (name, dir) {
+      if (dir) {
+        Vue.directive(name, dir)
+        return app
+      } else {
+        return Vue.directive(name)
+      }
+    },
+    mount: function (el, hydrating) {
+      if (!vm) {
+        vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))
+        vm.$mount(el, hydrating)
+        return vm
+      } else {
+        return vm
+      }
+    },
+    unmount: function () {
+      if (vm) {
+        vm.$destroy()
+        vm = undefined
+      }
+    },
+  }
+  return app
+}
+
+export {
+  Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  install,
+  warn
+}
+
+// Vue 3 components mock
+function createMockComponent(name) {
+  return {
+    setup() {
+      throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\'s provided to avoid compiler errors.')
+    }
+  }
+}
+export var Fragment = /*#__PURE__*/ createMockComponent('Fragment')
+export var Transition = /*#__PURE__*/ createMockComponent('Transition')
+export var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')
+export var Teleport = /*#__PURE__*/ createMockComponent('Teleport')
+export var Suspense = /*#__PURE__*/ createMockComponent('Suspense')
+export var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')
+
+export * from 'vue'
+
+// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()
+export function hasInjectionContext() {
+  return !!getCurrentInstance()
+}

+ 34 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.cjs

@@ -0,0 +1,34 @@
+var Vue = require('vue')
+var VueCompositionAPI = require('@vue/composition-api')
+
+function install(_vue) {
+  var vueLib = _vue || Vue
+  if (vueLib && 'default' in vueLib) {
+    vueLib = vueLib.default
+  }
+
+  if (vueLib && !vueLib['__composition_api_installed__']) {
+    if (VueCompositionAPI && 'default' in VueCompositionAPI)
+      vueLib.use(VueCompositionAPI.default)
+    else if (VueCompositionAPI)
+      vueLib.use(VueCompositionAPI)
+  }
+}
+
+install(Vue)
+
+Object.keys(VueCompositionAPI).forEach(function(key) {
+  exports[key] = VueCompositionAPI[key]
+})
+
+exports.Vue = Vue
+exports.Vue2 = Vue
+exports.isVue2 = true
+exports.isVue3 = false
+exports.install = install
+exports.version = Vue.version
+
+// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()
+exports.hasInjectionContext = function () {
+  return !!VueCompositionAPI.getCurrentInstance()
+}

+ 33 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.d.ts

@@ -0,0 +1,33 @@
+import Vue from 'vue'
+import type { PluginFunction, PluginObject } from 'vue'
+declare const isVue2: boolean
+declare const isVue3: boolean
+declare const Vue2: typeof Vue | undefined
+declare const version: string
+declare const install: (vue?: typeof Vue) => void
+/**
+ * @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
+ * Refer to https://github.com/vueuse/vue-demi/issues/41
+ */
+declare const V: typeof Vue
+
+/**
+ * DebuggerEvent is a Vue 3 development only feature. This type cannot exist in Vue 2.
+ */
+export declare type DebuggerEvent = never
+
+// accept no generic because Vue 3 doesn't accept any
+// https://github.com/vuejs/vue-next/pull/2758/
+export declare type Plugin = PluginObject<any> | PluginFunction<any>
+export type { VNode } from 'vue'
+export * from '@vue/composition-api'
+export {
+  V as Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  version,
+  install,
+}
+
+export declare function hasInjectionContext(): boolean

+ 49 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.mjs

@@ -0,0 +1,49 @@
+import Vue from 'vue'
+import VueCompositionAPI, { getCurrentInstance } from '@vue/composition-api/dist/vue-composition-api.mjs'
+
+function install(_vue) {
+  _vue = _vue || Vue
+  if (_vue && !_vue['__composition_api_installed__'])
+    _vue.use(VueCompositionAPI)
+}
+
+install(Vue)
+
+var isVue2 = true
+var isVue3 = false
+var Vue2 = Vue
+var version = Vue.version
+
+/**VCA-EXPORTS**/
+export * from '@vue/composition-api/dist/vue-composition-api.mjs'
+/**VCA-EXPORTS**/
+
+export {
+  Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  version,
+  install,
+}
+
+
+// Vue 3 components mock
+function createMockComponent(name) {
+  return {
+    setup() {
+      throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\'s provided to avoid compiler errors.')
+    }
+  }
+}
+export var Fragment = /*#__PURE__*/ createMockComponent('Fragment')
+export var Transition = /*#__PURE__*/ createMockComponent('Transition')
+export var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')
+export var Teleport = /*#__PURE__*/ createMockComponent('Teleport')
+export var Suspense = /*#__PURE__*/ createMockComponent('Suspense')
+export var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')
+
+// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()
+export function hasInjectionContext() {
+  return !!getCurrentInstance()
+}

+ 29 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.cjs

@@ -0,0 +1,29 @@
+var Vue = require('vue')
+
+Object.keys(Vue).forEach(function(key) {
+  exports[key] = Vue[key]
+})
+
+exports.set = function(target, key, val) {
+  if (Array.isArray(target)) {
+    target.length = Math.max(target.length, key)
+    target.splice(key, 1, val)
+    return val
+  }
+  target[key] = val
+  return val
+}
+
+exports.del = function(target, key) {
+  if (Array.isArray(target)) {
+    target.splice(key, 1)
+    return
+  }
+  delete target[key]
+}
+
+exports.Vue = Vue
+exports.Vue2 = undefined
+exports.isVue2 = false
+exports.isVue3 = true
+exports.install = function(){}

+ 22 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.d.ts

@@ -0,0 +1,22 @@
+import * as Vue from 'vue'
+declare const isVue2: boolean
+declare const isVue3: boolean
+declare const Vue2: any
+declare const install: (vue?: any) => void
+/** 
+ * @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
+ * Refer to https://github.com/vueuse/vue-demi/issues/41
+ */
+declare const V: typeof Vue
+
+export function set<T>(target: any, key: any, val: T): T
+export function del(target: any, key: any): void
+
+export * from 'vue'
+export {
+  V as Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  install,
+}

+ 34 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.mjs

@@ -0,0 +1,34 @@
+import * as Vue from 'vue'
+
+var isVue2 = false
+var isVue3 = true
+var Vue2 = undefined
+
+function install() {}
+
+export function set(target, key, val) {
+  if (Array.isArray(target)) {
+    target.length = Math.max(target.length, key)
+    target.splice(key, 1, val)
+    return val
+  }
+  target[key] = val
+  return val
+}
+
+export function del(target, key) {
+  if (Array.isArray(target)) {
+    target.splice(key, 1)
+    return
+  }
+  delete target[key]
+}
+
+export * from 'vue'
+export {
+  Vue,
+  Vue2,
+  isVue2,
+  isVue3,
+  install,
+}

+ 47 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/package.json

@@ -0,0 +1,47 @@
+{
+  "name": "vue-demi",
+  "version": "0.14.7",
+  "engines": {
+    "node": ">=12"
+  },
+  "repository": "https://github.com/antfu/vue-demi.git",
+  "funding": "https://github.com/sponsors/antfu",
+  "license": "MIT",
+  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
+  "main": "lib/index.cjs",
+  "jsdelivr": "lib/index.iife.js",
+  "unpkg": "lib/index.iife.js",
+  "module": "lib/index.mjs",
+  "types": "lib/index.d.ts",
+  "exports": {
+    ".": {
+      "types": "./lib/index.d.ts",
+      "require": "./lib/index.cjs",
+      "import": "./lib/index.mjs",
+      "browser": "./lib/index.mjs"
+    },
+    "./*": "./*"
+  },
+  "bin": {
+    "vue-demi-fix": "bin/vue-demi-fix.js",
+    "vue-demi-switch": "bin/vue-demi-switch.js"
+  },
+  "files": [
+    "lib",
+    "bin",
+    "scripts"
+  ],
+  "scripts": {
+    "postinstall": "node -e \"try{require('./scripts/postinstall.js')}catch(e){}\"",
+    "release": "npx bumpp --tag --commit --push && npm publish"
+  },
+  "peerDependencies": {
+    "@vue/composition-api": "^1.0.0-rc.1",
+    "vue": "^3.0.0-0 || ^2.6.0"
+  },
+  "peerDependenciesMeta": {
+    "@vue/composition-api": {
+      "optional": true
+    }
+  }
+}

+ 19 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/scripts/postinstall.js

@@ -0,0 +1,19 @@
+const { switchVersion, loadModule } = require('./utils')
+
+const Vue = loadModule('vue')
+
+if (!Vue || typeof Vue.version !== 'string') {
+  console.warn('[vue-demi] Vue is not found. Please run "npm install vue" to install.')
+}
+else if (Vue.version.startsWith('2.7.')) {
+  switchVersion(2.7)
+}
+else if (Vue.version.startsWith('2.')) {
+  switchVersion(2)
+}
+else if (Vue.version.startsWith('3.')) {
+  switchVersion(3)
+}
+else {
+  console.warn(`[vue-demi] Vue version v${Vue.version} is not suppported.`)
+}

+ 18 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/scripts/switch-cli.js

@@ -0,0 +1,18 @@
+const { switchVersion } = require('./utils')
+
+const version = process.argv[2]
+const vueEntry = process.argv[3] || 'vue'
+
+if (version === '2.7') {
+  switchVersion(2.7, vueEntry)
+  console.log(`[vue-demi] Switched for Vue 2.7 (entry: "${vueEntry}")`)
+} else if (version === '2') {
+  switchVersion(2, vueEntry)
+  console.log(`[vue-demi] Switched for Vue 2 (entry: "${vueEntry}")`)
+} else if (version === '3') {
+  switchVersion(3, vueEntry)
+  console.log(`[vue-demi] Switched for Vue 3 (entry: "${vueEntry}")`)
+} else {
+  console.warn(`[vue-demi] expecting version "2" or "2.7" or "3" but got "${version}"`)
+  process.exit(1)
+}

+ 62 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/node_modules/vue-demi/scripts/utils.js

@@ -0,0 +1,62 @@
+const fs = require('fs')
+const path = require('path')
+
+const dir = path.resolve(__dirname, '..', 'lib')
+
+function loadModule(name) {
+  try {
+    return require(name)
+  } catch (e) {
+    return undefined
+  }
+}
+
+function copy(name, version, vue) {
+  vue = vue || 'vue'
+  const src = path.join(dir, `v${version}`, name)
+  const dest = path.join(dir, name)
+  let content = fs.readFileSync(src, 'utf-8')
+  content = content.replace(/'vue'/g, `'${vue}'`)
+  // unlink for pnpm, #92
+  try {
+    fs.unlinkSync(dest)
+  } catch (error) { }
+  fs.writeFileSync(dest, content, 'utf-8')
+}
+
+function updateVue2API() {
+  const ignoreList = ['version', 'default']
+  const VCA = loadModule('@vue/composition-api')
+  if (!VCA) {
+    console.warn('[vue-demi] Composition API plugin is not found. Please run "npm install @vue/composition-api" to install.')
+    return
+  }
+
+  const exports = Object.keys(VCA).filter(i => !ignoreList.includes(i))
+
+  const esmPath = path.join(dir, 'index.mjs')
+  let content = fs.readFileSync(esmPath, 'utf-8')
+
+  content = content.replace(
+    /\/\*\*VCA-EXPORTS\*\*\/[\s\S]+\/\*\*VCA-EXPORTS\*\*\//m,
+`/**VCA-EXPORTS**/
+export { ${exports.join(', ')} } from '@vue/composition-api/dist/vue-composition-api.mjs'
+/**VCA-EXPORTS**/`
+    )
+
+  fs.writeFileSync(esmPath, content, 'utf-8')
+  
+}
+
+function switchVersion(version, vue) {
+  copy('index.cjs', version, vue)
+  copy('index.mjs', version, vue)
+  copy('index.d.ts', version, vue)
+
+  if (version === 2)
+    updateVue2API()
+}
+
+
+module.exports.loadModule = loadModule
+module.exports.switchVersion = switchVersion

+ 59 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/core/package.json

@@ -0,0 +1,59 @@
+{
+  "name": "@vueuse/core",
+  "version": "8.9.4",
+  "description": "Collection of essential Vue Composition Utilities",
+  "author": "Anthony Fu <https://github.com/antfu>",
+  "license": "MIT",
+  "funding": "https://github.com/sponsors/antfu",
+  "homepage": "https://github.com/vueuse/vueuse#readme",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/vueuse/vueuse.git",
+    "directory": "packages/core"
+  },
+  "bugs": {
+    "url": "https://github.com/vueuse/vueuse/issues"
+  },
+  "keywords": [
+    "vue",
+    "vue-use",
+    "utils"
+  ],
+  "sideEffects": false,
+  "exports": {
+    ".": {
+      "types": "./index.d.ts",
+      "require": "./index.cjs",
+      "import": "./index.mjs"
+    },
+    "./*": "./*",
+    "./metadata": {
+      "types": "./metadata.d.ts",
+      "require": "./metadata.cjs",
+      "import": "./metadata.mjs"
+    }
+  },
+  "main": "./index.cjs",
+  "module": "./index.mjs",
+  "unpkg": "./index.iife.min.js",
+  "jsdelivr": "./index.iife.min.js",
+  "types": "./index.d.ts",
+  "peerDependencies": {
+    "@vue/composition-api": "^1.1.0",
+    "vue": "^2.6.0 || ^3.2.0"
+  },
+  "peerDependenciesMeta": {
+    "vue": {
+      "optional": true
+    },
+    "@vue/composition-api": {
+      "optional": true
+    }
+  },
+  "dependencies": {
+    "@types/web-bluetooth": "^0.0.14",
+    "@vueuse/metadata": "8.9.4",
+    "@vueuse/shared": "8.9.4",
+    "vue-demi": "*"
+  }
+}

+ 21 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019-PRESENT Anthony Fu<https://github.com/antfu>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

ファイルの差分が大きいため隠しています
+ 2107 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.cjs


+ 75 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.d.ts

@@ -0,0 +1,75 @@
+interface PackageManifest {
+    name: string;
+    display: string;
+    addon?: boolean;
+    author?: string;
+    description?: string;
+    external?: string[];
+    globals?: Record<string, string>;
+    manualImport?: boolean;
+    deprecated?: boolean;
+    submodules?: boolean;
+    build?: boolean;
+    iife?: boolean;
+    cjs?: boolean;
+    mjs?: boolean;
+    dts?: boolean;
+    target?: string;
+    utils?: boolean;
+    copy?: string[];
+}
+interface VueUseFunction {
+    name: string;
+    package: string;
+    lastUpdated?: number;
+    category?: string;
+    description?: string;
+    docs?: string;
+    deprecated?: boolean;
+    internal?: boolean;
+    component?: boolean;
+    directive?: boolean;
+    external?: string;
+    alias?: string[];
+    related?: string[];
+}
+interface VueUsePackage extends PackageManifest {
+    dir: string;
+    docs?: string;
+}
+interface PackageIndexes {
+    packages: Record<string, VueUsePackage>;
+    categories: string[];
+    functions: VueUseFunction[];
+}
+interface CommitInfo {
+    functions: string[];
+    version?: string;
+    hash: string;
+    date: string;
+    message: string;
+    refs?: string;
+    body?: string;
+    author_name: string;
+    author_email: string;
+}
+interface ContributorInfo {
+    name: string;
+    count: number;
+    hash: string;
+}
+
+declare const metadata: PackageIndexes;
+declare const functions: VueUseFunction[];
+declare const packages: Record<string, VueUsePackage>;
+declare const categories: string[];
+declare const functionNames: string[];
+declare const categoryNames: string[];
+declare const coreCategoryNames: string[];
+declare const addonCategoryNames: string[];
+declare const getFunction: (name: string) => VueUseFunction | undefined;
+
+declare function getCategories(functions: VueUseFunction[]): string[];
+declare function uniq<T extends any[]>(a: T): any[];
+
+export { CommitInfo, ContributorInfo, PackageIndexes, PackageManifest, VueUseFunction, VueUsePackage, addonCategoryNames, categories, categoryNames, coreCategoryNames, functionNames, functions, getCategories, getFunction, metadata, packages, uniq };

ファイルの差分が大きいため隠しています
+ 2059 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.json


ファイルの差分が大きいため隠しています
+ 2093 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/index.mjs


+ 39 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/node_modules/@vueuse/metadata/package.json

@@ -0,0 +1,39 @@
+{
+  "name": "@vueuse/metadata",
+  "version": "8.9.4",
+  "description": "Metadata for VueUse functions",
+  "author": "Anthony Fu <https://github.com/antfu>",
+  "license": "MIT",
+  "funding": "https://github.com/sponsors/antfu",
+  "homepage": "https://github.com/vueuse/vueuse/tree/main/packages/metadata#readme",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/vueuse/vueuse.git",
+    "directory": "packages/metadata"
+  },
+  "bugs": {
+    "url": "https://github.com/vueuse/vueuse/issues"
+  },
+  "keywords": [
+    "vue",
+    "vue-use"
+  ],
+  "sideEffects": false,
+  "exports": {
+    ".": {
+      "types": "./index.d.ts",
+      "require": "./index.cjs",
+      "import": "./index.mjs"
+    },
+    "./*": "./*"
+  },
+  "main": "./index.cjs",
+  "module": "./index.mjs",
+  "types": "./index.d.ts",
+  "files": [
+    "index.*"
+  ],
+  "scripts": {
+    "update": "esno scripts/update.ts"
+  }
+}

+ 6 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -882,7 +882,12 @@
         },
         watch: {
             filterText(val) {
-                this.$refs.whiteListTree.filter(val);
+                
+                if(this.specialHolidays != 0) {
+                    this.$refs.specialHolidaysTree.filter(val);
+                } else {
+                    this.$refs.whiteListTree.filter(val);
+                }
             }
         },
         created() {