浏览代码

feat: update

Hu Cheng 2 年之前
父节点
当前提交
91a2039618

+ 9 - 0
src/api/modules/scheme.js

@@ -18,3 +18,12 @@ export const getTaskDataClassData = (data) => {
     data,
     data,
   });
   });
 };
 };
+
+// 模板标签数据添加或更新
+export const putTemplateMapDataData = (data) => {
+  return service.request({
+    method: "POST",
+    url: "/VerifyTemplateMapData/Pu",
+    data,
+  });
+};

+ 1 - 2
src/router/index.js

@@ -22,8 +22,7 @@ const router = createRouter({
           component: () => import("@/views/project/certificate/index.vue"),
           component: () => import("@/views/project/certificate/index.vue"),
         },
         },
         {
         {
-          path: "/scheme/:taskId",
-          props: true,
+          path: "/scheme",
           component: () => import("@/views/project/scheme/index.vue"),
           component: () => import("@/views/project/scheme/index.vue"),
         },
         },
         {
         {

+ 14 - 12
src/utils/axios.js

@@ -12,7 +12,7 @@ const showMessage = (res) => {
 
 
 const service = axios.create({
 const service = axios.create({
   baseURL: import.meta.env.VITE_API_BASE_URL,
   baseURL: import.meta.env.VITE_API_BASE_URL,
-  timeout: 8000,
+  timeout: 60000 * 15,
 });
 });
 
 
 // 添加请求拦截器
 // 添加请求拦截器
@@ -20,18 +20,20 @@ service.interceptors.request.use(
   function (config) {
   function (config) {
     // 在发送请求之前做些什么
     // 在发送请求之前做些什么
     loadingBar.start();
     loadingBar.start();
-    const formData = new FormData();
-    if (
-      config.url !== "/Login_Admin_verification" &&
-      config.url !== "/Login_verification"
-    ) {
-      const token = getToken();
-      formData.append(TOKEN, token);
+    if (config.url !== "/VerifyTemplateMapData/Pu") {
+      const formData = new FormData();
+      if (
+        config.url !== "/Login_Admin_verification" &&
+        config.url !== "/Login_verification"
+      ) {
+        const token = getToken();
+        formData.append(TOKEN, token);
+      }
+      Object.entries(config.data).forEach(([key, value]) => {
+        formData.append(key, value);
+      });
+      config.data = formData;
     }
     }
-    Object.entries(config.data).forEach(([key, value]) => {
-      formData.append(key, value);
-    });
-    config.data = formData;
     return config;
     return config;
   },
   },
   function (error) {
   function (error) {

+ 84 - 56
src/views/project/data/source/index.vue

@@ -1,47 +1,54 @@
 <template>
 <template>
-  <n-space vertical>
-    <n-breadcrumb>
-      <n-breadcrumb-item>任务管理</n-breadcrumb-item>
-      <n-breadcrumb-item>数据来源</n-breadcrumb-item>
-    </n-breadcrumb>
-    <n-space>
-      <n-form-item label="SN" label-placement="left">
-        <n-input v-model:value="queryData.T_sn" />
-      </n-form-item>
-      <n-form-item label="ID" label-placement="left">
-        <n-input v-model:value="queryData.T_id" />
-      </n-form-item>
-      <n-form-item label="开始时间" label-placement="left">
-        <n-date-picker
-          v-model:formatted-value="queryData.Time_start"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetime"
-          clearable
-        />
-      </n-form-item>
-      <n-form-item label="结束时间" label-placement="left">
-        <n-date-picker
-          v-model:formatted-value="queryData.Time_end"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetime"
-          clearable
-        />
-      </n-form-item>
-      <n-button type="primary">搜索</n-button>
-      <n-popconfirm @positive-click="getTaskList">
-        <template #trigger>
-          <n-button type="primary">重置数据</n-button>
-        </template>
-        是否确定重置数据?
-      </n-popconfirm>
+  <n-spin size="large" :show="pinShow">
+    <template #description>
+      {{ pinText }}
+    </template>
+    <n-space vertical>
+      <n-breadcrumb>
+        <n-breadcrumb-item>任务管理</n-breadcrumb-item>
+        <n-breadcrumb-item>数据来源</n-breadcrumb-item>
+      </n-breadcrumb>
+      <n-space>
+        <n-form-item label="SN" label-placement="left">
+          <n-input v-model:value="queryData.T_sn" />
+        </n-form-item>
+        <n-form-item label="ID" label-placement="left">
+          <n-input v-model:value="queryData.T_id" />
+        </n-form-item>
+        <n-form-item label="开始时间" label-placement="left">
+          <n-date-picker
+            v-model:formatted-value="queryData.Time_start"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            clearable
+          />
+        </n-form-item>
+        <n-form-item label="结束时间" label-placement="left">
+          <n-date-picker
+            v-model:formatted-value="queryData.Time_end"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            clearable
+          />
+        </n-form-item>
+        <n-button type="primary" @click="getTaskList">搜索</n-button>
+        <n-popconfirm @positive-click="extractTaskData">
+          <template #trigger>
+            <n-button type="primary">重置数据</n-button>
+          </template>
+          是否确定重置数据?
+        </n-popconfirm>
+      </n-space>
+      <n-data-table
+        remote
+        :columns="columns"
+        :data="taskList"
+        :pagination="pagination"
+        :bordered="false"
+        :max-height="500"
+      />
     </n-space>
     </n-space>
-    <n-data-table
-      :columns="columns"
-      :data="taskList"
-      :pagination="pagination"
-      :bordered="false"
-    />
-  </n-space>
+  </n-spin>
   <n-modal v-model:show="modal.showModal" :mask-closable="false">
   <n-modal v-model:show="modal.showModal" :mask-closable="false">
     <n-card
     <n-card
       title="自定义时间"
       title="自定义时间"
@@ -71,14 +78,7 @@
           />
           />
         </n-form-item>
         </n-form-item>
         <n-form-item>
         <n-form-item>
-          <n-button
-            type="primary"
-            @click="handleSearch"
-            block
-            :disabled="!(queryData.Time_start && queryData.Time_end)"
-          >
-            搜索
-          </n-button>
+          <n-button block type="primary" @click="handleSearch"> 搜索 </n-button>
         </n-form-item>
         </n-form-item>
       </n-form>
       </n-form>
     </n-card>
     </n-card>
@@ -93,10 +93,15 @@ import {
   importTaskDataData,
   importTaskDataData,
 } from "@/api";
 } from "@/api";
 
 
+const notification = useNotification();
+
 const task = window.sessionStorage.getItem("task")
 const task = window.sessionStorage.getItem("task")
   ? JSON.parse(window.sessionStorage.getItem("task"))
   ? JSON.parse(window.sessionStorage.getItem("task"))
   : {};
   : {};
 
 
+const pinShow = ref(false);
+const pinText = ref("");
+
 // 查询数据
 // 查询数据
 const queryData = reactive({
 const queryData = reactive({
   T_task_id: task.T_task_id,
   T_task_id: task.T_task_id,
@@ -133,9 +138,10 @@ const columns = [
 
 
 // 分页数据源
 // 分页数据源
 const pagination = reactive({
 const pagination = reactive({
+  simple: true,
   page: queryData.page,
   page: queryData.page,
   pageSize: queryData.page_z,
   pageSize: queryData.page_z,
-  itemCount: 0,
+  itemCount: 10,
   onChange: (page) => {
   onChange: (page) => {
     pagination.page = page;
     pagination.page = page;
     queryData.page = page;
     queryData.page = page;
@@ -143,33 +149,52 @@ const pagination = reactive({
   },
   },
 });
 });
 
 
+// modal数据源
 const modal = reactive({
 const modal = reactive({
-  showModal: true,
+  showModal: false,
 });
 });
 
 
 const handleSearch = () => {
 const handleSearch = () => {
   modal.showModal = false;
   modal.showModal = false;
   extractTaskData();
   extractTaskData();
-  importTaskData();
-  getTaskList();
 };
 };
 
 
 // 获取列表
 // 获取列表
 const importTaskData = async () => {
 const importTaskData = async () => {
+  pinShow.value = true;
+  pinText.value = "正在打包数据";
   const { data: res } = await importTaskDataData({
   const { data: res } = await importTaskDataData({
     T_task_id: queryData.T_task_id,
     T_task_id: queryData.T_task_id,
   });
   });
-  console.log(res);
+  if (res.Code === 200) {
+    pinShow.value = false;
+    notification.success({
+      content: "打包数据成功",
+      duration: 2500,
+      keepAliveOnHover: true,
+    });
+    getTaskList();
+  }
 };
 };
 
 
 // 获取列表
 // 获取列表
 const extractTaskData = async () => {
 const extractTaskData = async () => {
+  pinShow.value = true;
+  pinText.value = "正在汇总数据";
   const { data: res } = await extractTaskDataData({
   const { data: res } = await extractTaskDataData({
     T_task_id: queryData.T_task_id,
     T_task_id: queryData.T_task_id,
     Time_start: queryData.Time_start,
     Time_start: queryData.Time_start,
     Time_end: queryData.Time_end,
     Time_end: queryData.Time_end,
   });
   });
-  console.log(res);
+  if (res.Code === 200) {
+    pinShow.value = false;
+    notification.success({
+      content: "汇总数据成功",
+      duration: 2500,
+      keepAliveOnHover: true,
+    });
+    importTaskData();
+  }
 };
 };
 
 
 // 获取列表
 // 获取列表
@@ -177,7 +202,10 @@ const getTaskList = async () => {
   const { data: res } = await getTaskDataData(queryData);
   const { data: res } = await getTaskDataData(queryData);
   pagination.itemCount = res.Data.Num;
   pagination.itemCount = res.Data.Num;
   taskList.value = res.Data.List ? res.Data.List : [];
   taskList.value = res.Data.List ? res.Data.List : [];
+  modal.showModal = taskList.value.length <= 0;
 };
 };
+
+getTaskList();
 </script>
 </script>
 
 
 <style scoped></style>
 <style scoped></style>

+ 1 - 0
src/views/project/equipment/index.vue

@@ -19,6 +19,7 @@
       <n-button type="primary" @click="showAddModal">批量导入</n-button>
       <n-button type="primary" @click="showAddModal">批量导入</n-button>
     </n-space>
     </n-space>
     <n-data-table
     <n-data-table
+      remote
       :key="(row) => row.Id"
       :key="(row) => row.Id"
       :columns="columns"
       :columns="columns"
       :data="data"
       :data="data"

+ 1 - 1
src/views/project/index.vue

@@ -214,7 +214,7 @@ const columns = [
                             JSON.stringify(row)
                             JSON.stringify(row)
                           );
                           );
                           if (item === "实施方案") {
                           if (item === "实施方案") {
-                            router.push(`/scheme/${row.T_task_id}`);
+                            router.push("/scheme");
                           } else if (item === "校准证书") {
                           } else if (item === "校准证书") {
                             router.push(`/certificate/${row.T_task_id}`);
                             router.push(`/certificate/${row.T_task_id}`);
                           } else if (item === "设备管理") {
                           } else if (item === "设备管理") {

+ 156 - 83
src/views/project/scheme/index.vue

@@ -5,12 +5,10 @@
         <n-breadcrumb-item>任务管理</n-breadcrumb-item>
         <n-breadcrumb-item>任务管理</n-breadcrumb-item>
         <n-breadcrumb-item>实施方案</n-breadcrumb-item>
         <n-breadcrumb-item>实施方案</n-breadcrumb-item>
       </n-breadcrumb>
       </n-breadcrumb>
-      <n-button type="primary" @click="handleClick">生成报告</n-button>
+      <n-button type="primary" @click="showPutModal">生成方案</n-button>
     </n-space>
     </n-space>
     <n-scrollbar style="max-height: 700px">
     <n-scrollbar style="max-height: 700px">
       <n-form
       <n-form
-        ref="formRef"
-        :rules="rules"
         label-placement="left"
         label-placement="left"
         label-width="auto"
         label-width="auto"
         style="width: 40%; margin: 0 auto"
         style="width: 40%; margin: 0 auto"
@@ -20,6 +18,7 @@
           :key="item.T_VerifyTemplateMap_id"
           :key="item.T_VerifyTemplateMap_id"
         >
         >
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-if="item.T_label === 1"
             v-if="item.T_label === 1"
@@ -35,6 +34,7 @@
             </n-popover>
             </n-popover>
           </n-form-item>
           </n-form-item>
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 2"
             v-else-if="item.T_label === 2"
@@ -54,27 +54,35 @@
             </n-popover>
             </n-popover>
           </n-form-item>
           </n-form-item>
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 3"
             v-else-if="item.T_label === 3"
           >
           >
-            <div class="w-full">
-              <n-popselect
-                multiple
-                :options="options"
-                :render-label="renderLabel"
-                v-model:value="item.T_value"
-                class="w-full"
-              >
-                <n-button block>
-                  {{
-                    Array.isArray(item.T_value) && item.T_value.length
-                      ? item.T_value.join(" | ")
-                      : "选择"
-                  }}
-                </n-button>
-              </n-popselect>
-            </div>
+            <!--            <div class="w-full">-->
+            <!--              <n-popselect-->
+            <!--                multiple-->
+            <!--                :options="options"-->
+            <!--                :render-label="renderLabel"-->
+            <!--                v-model:value="item.T_value"-->
+            <!--                class="w-full"-->
+            <!--              >-->
+            <!--                <n-button block>-->
+            <!--                  {{-->
+            <!--                    Array.isArray(item.T_value) && item.T_value.length-->
+            <!--                      ? item.T_value.join(" | ")-->
+            <!--                      : "选择"-->
+            <!--                  }}-->
+            <!--                </n-button>-->
+            <!--              </n-popselect>-->
+            <!--            </div>-->
+            <n-select
+              v-model:value="item.T_value"
+              multiple
+              label-field="T_sn"
+              value-field="T_id"
+              :options="taskDataClassList"
+            />
             <n-popover trigger="hover">
             <n-popover trigger="hover">
               <template #trigger>
               <template #trigger>
                 <n-icon size="20" class="ml-3">
                 <n-icon size="20" class="ml-3">
@@ -85,11 +93,17 @@
             </n-popover>
             </n-popover>
           </n-form-item>
           </n-form-item>
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 4"
             v-else-if="item.T_label === 4"
           >
           >
-            <n-select :options="options" />
+            <n-select
+              v-model:value="item.T_value"
+              :options="taskDataClassList"
+              label-field="T_sn"
+              value-field="T_id"
+            />
             <n-popover trigger="hover">
             <n-popover trigger="hover">
               <template #trigger>
               <template #trigger>
                 <n-icon size="20" class="ml-3">
                 <n-icon size="20" class="ml-3">
@@ -101,11 +115,13 @@
           </n-form-item>
           </n-form-item>
           <n-divider v-else-if="item.T_label === 5" />
           <n-divider v-else-if="item.T_label === 5" />
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 7"
             v-else-if="item.T_label === 7"
           >
           >
             <n-date-picker
             <n-date-picker
+              v-model:formatted-value="item.T_value"
               value-format="yyyy-MM-dd HH:mm:ss"
               value-format="yyyy-MM-dd HH:mm:ss"
               type="datetime"
               type="datetime"
               clearable
               clearable
@@ -121,11 +137,13 @@
             </n-popover>
             </n-popover>
           </n-form-item>
           </n-form-item>
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 9"
             v-else-if="item.T_label === 9"
           >
           >
             <n-date-picker
             <n-date-picker
+              v-model:formatted-value="item.T_value"
               value-format="yyyy-MM-dd HH:mm:ss"
               value-format="yyyy-MM-dd HH:mm:ss"
               type="datetimerange"
               type="datetimerange"
               clearable
               clearable
@@ -141,11 +159,17 @@
             </n-popover>
             </n-popover>
           </n-form-item>
           </n-form-item>
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 10"
             v-else-if="item.T_label === 10"
           >
           >
-            <n-upload :default-upload="false" list-type="image-card" :max="1">
+            <n-upload
+              :default-upload="false"
+              v-model:file-list="item.T_value"
+              list-type="image-card"
+              :max="1"
+            >
               点击上传
               点击上传
             </n-upload>
             </n-upload>
             <n-popover trigger="hover">
             <n-popover trigger="hover">
@@ -158,11 +182,17 @@
             </n-popover>
             </n-popover>
           </n-form-item>
           </n-form-item>
           <n-form-item
           <n-form-item
+            required
             :label="item.T_name"
             :label="item.T_name"
             :path="item.T_field"
             :path="item.T_field"
             v-else-if="item.T_label === 11"
             v-else-if="item.T_label === 11"
           >
           >
-            <n-upload :default-upload="false" list-type="image-card" :max="1">
+            <n-upload
+              :default-upload="false"
+              v-model:file-list="item.T_value"
+              list-type="image-card"
+              :max="1"
+            >
               点击上传
               点击上传
             </n-upload>
             </n-upload>
             <n-popover trigger="hover">
             <n-popover trigger="hover">
@@ -179,61 +209,56 @@
     </n-scrollbar>
     </n-scrollbar>
   </n-space>
   </n-space>
   <n-modal
   <n-modal
-    :show-icon="false"
     v-model:show="modal.showModal"
     v-model:show="modal.showModal"
     preset="dialog"
     preset="dialog"
-    :title="modal.title"
-    positive-text="提交"
+    title="生成方案"
+    content="确定生成报告?"
+    positive-text="确认"
     negative-text="取消"
     negative-text="取消"
-    @positive-click="submitCallback"
-  >
-    123
-  </n-modal>
+    @positive-click="putTemplateMapData"
+  />
 </template>
 </template>
 
 
 <script setup>
 <script setup>
-import { h } from "vue";
-import { getTaskDataClassData, getVerifyTemplateMapData } from "@/api";
+import {
+  getTaskDataClassData,
+  getVerifyTemplateMapData,
+  getUpFileTokenData,
+  putTemplateMapDataData,
+} from "@/api";
 import { QuestionCircleOutlined } from "@vicons/antd";
 import { QuestionCircleOutlined } from "@vicons/antd";
-import { NThing } from "naive-ui";
+import * as qiniu from "qiniu-js";
 
 
-const renderLabel = () => {
-  return h(
-    NThing,
-    {},
-    {
-      avatar: () => "avatar",
-      header: () => "title",
-      description: () => "description",
-    }
-  );
-};
+const message = useMessage();
+
+const task = window.sessionStorage.getItem("task")
+  ? JSON.parse(window.sessionStorage.getItem("task"))
+  : {};
 
 
-const props = defineProps({
-  taskId: String,
+// 查询数据
+const queryData = reactive({
+  T_source: 1,
+  T_task_id: task.T_task_id,
+  T_VerifyTemplate_id: task.T_VerifyTemplate_id,
 });
 });
 
 
+// const renderLabel = () => {
+//   return h(
+//     NThing,
+//     {},
+//     {
+//       avatar: () => "avatar",
+//       header: () => "title",
+//       description: () => "description",
+//     }
+//   );
+// };
+
 // 模板标签数据列表
 // 模板标签数据列表
 const templateDataList = ref([]);
 const templateDataList = ref([]);
 
 
 // 设备列表
 // 设备列表
-const TaskDataClassList = ref([]);
-
-// 	配置选项内容
-const options = [
-  {
-    label: "Everybody's Got Something to Hide Except Me and My Monkey",
-    value: "song0",
-  },
-  {
-    label: "Drive My Car",
-    value: "song1",
-  },
-  {
-    label: "Norwegian Wood",
-    value: "song2",
-  },
-];
+const taskDataClassList = ref([]);
 
 
 // 模态框数据源
 // 模态框数据源
 const modal = reactive({
 const modal = reactive({
@@ -241,42 +266,90 @@ const modal = reactive({
   showModal: false,
   showModal: false,
 });
 });
 
 
-// 验证表项的规则
-const rules = {
-  T_name: { required: true, message: "不能为空", trigger: "blur" },
-  time: { required: true, message: "不能为空", trigger: ["blur", "change"] },
-  extent: { required: true, message: "不能为空", trigger: ["blur", "change"] },
+// 获取七牛云上传文件token
+const getUpFileToken = async (T_suffix) => {
+  const { data: res } = await getUpFileTokenData({
+    T_suffix,
+  });
+  return res.Data;
 };
 };
 
 
-const handleClick = () => {
-  console.log(templateDataList.value);
+// 模板标签数据添加或更新
+const putTemplateMapData = async () => {
+  const arr = templateDataList.value.filter((item) => item.T_label !== 5);
+  const VerifyTemplateMapData = arr.map((item) => {
+    if (item.T_label === 3 || item.T_label === 9) {
+      return {
+        T_VerifyTemplateMap_id: item.T_VerifyTemplateMap_id,
+        T_value: item.T_value.join("|"),
+      };
+    } else {
+      return {
+        T_VerifyTemplateMap_id: item.T_VerifyTemplateMap_id,
+        T_value: item.T_value,
+      };
+    }
+  });
+  const { data: res } = await putTemplateMapDataData({
+    T_source: queryData.T_source,
+    T_task_id: queryData.T_task_id,
+    T_VerifyTemplate_id: queryData.T_VerifyTemplate_id,
+    VerifyTemplateMapData,
+  });
+  console.log(res);
 };
 };
 
 
-// 执行 positive 时执行的回调函数
-const submitCallback = () => {
-  if (modal.title === "添加") {
-    console.log("add");
-  } else {
-    console.log("edit");
+const showPutModal = async () => {
+  modal.showModal = true;
+  const arr = templateDataList.value;
+  for (const item of arr) {
+    const index = arr.indexOf(item);
+    if (item.T_label === 10 || item.T_label === 11) {
+      const token = await getUpFileToken(item.T_value[0].type.split("/")[1]);
+      const observable = qiniu.upload(
+        item.T_value[0].file,
+        item.T_value[0].name,
+        token,
+        {},
+        {
+          useCdnDomain: true,
+        }
+      );
+      observable.subscribe({
+        next: (result) => {
+          // 主要用来展示进度
+          console.warn(result);
+        },
+        error: () => {
+          message.error("上传图片失败");
+        },
+        complete: (res) => {
+          arr[index].T_value = res.key;
+        },
+      });
+    }
   }
   }
 };
 };
 
 
 // 模板标签数据(列表)
 // 模板标签数据(列表)
 const getVerifyTemplateMapDataList = async () => {
 const getVerifyTemplateMapDataList = async () => {
-  const { data: res } = await getVerifyTemplateMapData({
-    T_source: 1,
-    T_task_id: props.taskId,
-    T_VerifyTemplate_id: "rtxF",
-  });
+  const { data: res } = await getVerifyTemplateMapData(queryData);
   templateDataList.value = res.Data;
   templateDataList.value = res.Data;
+  templateDataList.value.forEach((item) => {
+    if (item.T_label === 10 || item.T_label === 11 || item.T_label === 3) {
+      item.T_value = [];
+    } else if (item.T_label === 7 || item.T_label === 9) {
+      item.T_value = null;
+    }
+  });
 };
 };
 
 
 // 获取设备列表
 // 获取设备列表
 const getTaskDataClassList = async () => {
 const getTaskDataClassList = async () => {
   const { data: res } = await getTaskDataClassData({
   const { data: res } = await getTaskDataClassData({
-    T_task_id: props.taskId,
+    T_task_id: queryData.T_task_id,
   });
   });
-  TaskDataClassList.value = res.Data ? res.Data : [];
+  taskDataClassList.value = res.Data ? res.Data : [];
 };
 };
 
 
 getTaskDataClassList();
 getTaskDataClassList();