YangJian0701 7 месяцев назад
Родитель
Сommit
ce537dcbcf
63 измененных файлов с 584 добавлено и 73 удалено
  1. 7 13
      .env.development
  2. 3 2
      .env.production
  3. 9 1
      src/api/modules/Certificate.js
  4. 22 0
      src/api/modules/Task.js
  5. 12 1
      src/api/modules/TaskData.js
  6. 26 0
      src/api/modules/VerifyTemplateMapData.js
  7. 62 25
      src/components/FormList.vue
  8. 1 1
      src/login/index.vue
  9. 2 2
      src/views/data/edit/AddVue.vue
  10. 45 9
      src/views/project/index.vue
  11. 8 3
      src/views/report/create/index.vue
  12. 145 0
      src/views/report/create/submitlog.vue
  13. 11 4
      src/views/scheme/index.vue
  14. 145 0
      src/views/scheme/submitlog.vue
  15. BIN
      冷链2.0线下.rar
  16. 1 1
      冷链2.0线下/assets/Add-f2559956.js
  17. 4 4
      冷链2.0线下/assets/Certificate-813c5f89.js
  18. 0 0
      冷链2.0线下/assets/DataTable-41a24bfd.js
  19. 0 0
      冷链2.0线下/assets/DatePicker-02d3d64b.js
  20. 1 1
      冷链2.0线下/assets/DeviceClassList-c188dd4c.js
  21. 0 0
      冷链2.0线下/assets/FormList-130de498.js
  22. 1 0
      冷链2.0线下/assets/FormList-638639bd.css
  23. 0 0
      冷链2.0线下/assets/FormList-eb0fbdb5.js
  24. 1 1
      冷链2.0线下/assets/PageHeader-74caddbf.js
  25. 0 0
      冷链2.0线下/assets/Popconfirm-7119bd46.js
  26. 0 0
      冷链2.0线下/assets/RadioGroup-1ab2d39f.js
  27. 0 0
      冷链2.0线下/assets/RadioGroup-6edab0a1.js
  28. 1 1
      冷链2.0线下/assets/Scrollbar-cb9be281.js
  29. 0 0
      冷链2.0线下/assets/Space-84278c21.js
  30. 0 0
      冷链2.0线下/assets/Tabs-3c1baf8d.js
  31. 1 0
      冷链2.0线下/assets/Task-28f1f3c2.js
  32. 0 1
      冷链2.0线下/assets/Task-82b35f13.js
  33. 1 0
      冷链2.0线下/assets/TaskData-11f744cb.js
  34. 0 1
      冷链2.0线下/assets/TaskData-9daaac93.js
  35. 0 0
      冷链2.0线下/assets/Tooltip-f5d13d70.js
  36. 0 0
      冷链2.0线下/assets/Upload-e16a41ce.js
  37. 0 0
      冷链2.0线下/assets/VerifyTemplateMapData-390e39cc.js
  38. 0 0
      冷链2.0线下/assets/VerifyTemplateMapData-c79050aa.js
  39. 0 0
      冷链2.0线下/assets/index-0aaa87c2.js
  40. 0 0
      冷链2.0线下/assets/index-0b817cc7.js
  41. 0 0
      冷链2.0线下/assets/index-0f8122cd.js
  42. 0 0
      冷链2.0线下/assets/index-10f631dd.js
  43. 0 0
      冷链2.0线下/assets/index-135f9ab8.js
  44. 1 0
      冷链2.0线下/assets/index-1d842d3b.js
  45. 0 0
      冷链2.0线下/assets/index-30bea123.js
  46. 0 0
      冷链2.0线下/assets/index-30c8a192.js
  47. 0 0
      冷链2.0线下/assets/index-46c26e12.js
  48. 0 0
      冷链2.0线下/assets/index-50d7dec3.js
  49. 0 0
      冷链2.0线下/assets/index-60bc9da8.js
  50. 0 0
      冷链2.0线下/assets/index-637abe16.js
  51. 0 0
      冷链2.0线下/assets/index-69825ccb.js
  52. 0 1
      冷链2.0线下/assets/index-7acde4b8.js
  53. 0 0
      冷链2.0线下/assets/index-cceaeb3e.js
  54. 0 0
      冷链2.0线下/assets/index-d2fcbb1e.js
  55. 0 0
      冷链2.0线下/assets/index-e497b666.js
  56. 0 0
      冷链2.0线下/assets/index-e97eb066.js
  57. 73 0
      冷链2.0线下/assets/index-f2c1e765.js
  58. 0 0
      冷链2.0线下/assets/index-ff2c7ece.js
  59. 0 0
      冷链2.0线下/assets/vue.runtime.esm-bundler-179ff6e5.js
  60. 0 0
      冷链2.0线下/assets/vue.runtime.esm-bundler-8d6a0dde.js
  61. 0 0
      冷链2.0线下/assets/vue3-pdf-embed-3a5703cb.js
  62. 0 0
      冷链2.0线下/assets/xlsx-97c7c9c5.js
  63. 1 1
      冷链2.0线下/index.html

+ 7 - 13
.env.development

@@ -1,20 +1,14 @@
-# VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/api"
-# VITE_API_BASE_URL2="http://coldverifylocal.coldbaozhida.com"
-VITE_API_BASE_URL2="https://coldverify.coldbaozhida.com/local"
-VITE_API_BASE_URL3="https://cold.coldbaozhida.com/api"
-
-# VITE_API_BASE_URL4="http://192.168.11.23:6400"  #内网地址
-VITE_API_BASE_URL4="https://coldverifylocal.coldbaozhida.com/api"  #内网地址
-
+# 测试
+# VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/testapi"
+VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/api"
 
-VITE_API_BASE_URL5="https://coldverify.coldbaozhida.com/local/api"  #外网
 
+VITE_API_BASE_URL2="https://coldverifylocal.coldbaozhida.com"
+VITE_API_BASE_URL3="https://cold.coldbaozhida.com/api"
 
+VITE_API_BASE_URL4="https://coldverifylocal.coldbaozhida.com/api"  #内网地址
 
-# 测试
-# VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/testapi"
-VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/api"
 
-# VITE_API_BASE_URL4="http://192.168.11.23:6401"  #本地
+VITE_API_BASE_URL5="https://coldverifylocal.coldbaozhida.com/api"  #外网
 
 

+ 3 - 2
.env.production

@@ -7,10 +7,11 @@
 VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/api"
 
 # VITE_API_BASE_URL1="https://coldverify.coldbaozhida.com/api"
-VITE_API_BASE_URL2="https://coldverify.coldbaozhida.com/local"
+VITE_API_BASE_URL2="https://coldverifylocal.coldbaozhida.com"
+
+
 VITE_API_BASE_URL3="https://cold.coldbaozhida.com/api"
 
-# VITE_API_BASE_URL4="http://192.168.11.23:6400"  #内网地址
 VITE_API_BASE_URL4="https://coldverifylocal.coldbaozhida.com/api"  #内网地址
 
 VITE_API_BASE_URL5="https://coldverify.coldbaozhida.com/local/api"  #外网

+ 9 - 1
src/api/modules/Certificate.js

@@ -10,7 +10,15 @@ export const getCertificate = (data) => {
     baseURL: baseURL1,
   });
 };
-//
+export const AddCertificateList = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/Certificate/ListWithoutDeviceList',
+      data,
+      baseURL: baseURL1,
+    });
+};
+
 export const getCertificateList = (data) => {
   return service.request({
     method: 'POST',

+ 22 - 0
src/api/modules/Task.js

@@ -30,6 +30,28 @@ export const getTaskList = (data) => {
 };
 
 /**
+ * 任务(列表)
+ * @param data
+ * @returns {Promise<axios.AxiosResponse<any>>}
+ */
+export const getTaskUpDeliveryState = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/Task/UpDeliveryState',
+      data,
+      baseURL: baseURL1,
+    });
+  };
+
+  export const getUpCollectionState = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/Task/UpCollectionState',
+      data,
+      baseURL: baseURL1,
+    });
+  };
+/**
  * 任务(编辑)
  * @param data
  * @returns {Promise<axios.AxiosResponse<any>>}

+ 12 - 1
src/api/modules/TaskData.js

@@ -3,8 +3,19 @@ import { baseURL4,baseURL5 } from '@/constant';
 import { baseURL1 } from '../../constant';
 
 // 任务数据 设备列表
+export const getTaskClearvalue = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/VerifyTemplateMapData/Clear_Value',
+      data,
+      baseURL:baseURL1,
+    });
+  };
+
+
+
+// 任务数据 设备列表
 export const getTaskDataClassList = (data) => {
-  console.log('任务数据接口1',baseURL4,baseURL5)
   return service.request({
     method: 'POST',
     url: '/DeviceClassList/List',

+ 26 - 0
src/api/modules/VerifyTemplateMapData.js

@@ -1,6 +1,32 @@
 import service from '@/utils/axios';
 import { baseURL1 } from '../../constant';
 
+export const HistoryRecover = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/VerifyTemplateMapData/History_Recover',
+      data,
+      baseURL: baseURL1,
+    });
+  };
+export const HistoryDataList = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/VerifyTemplateMapData/History_Data_List',
+      data,
+      baseURL: baseURL1,
+    });
+  };
+export const HistoryList = (data) => {
+    return service.request({
+      method: 'POST',
+      url: '/VerifyTemplateMapData/History_List',
+      data,
+      baseURL: baseURL1,
+    });
+  };
+
+ 
 /**
  * 验证模板-模板标签数据(列表)
  * @param data

+ 62 - 25
src/components/FormList.vue

@@ -1,22 +1,31 @@
 <template>
   <n-form label-width="auto">
     <n-grid :cols="12" :x-gap="12" style="background: #f1f1f1;padding: 20px 20px 0 20px;margin-bottom: 20px;">
-        <n-form-item-gi :span="4" label="验证设备数据时间范围">
+        <n-form-item-gi :span="3" label="验证设备数据时间范围">
             <n-date-picker v-model:formatted-value="person.picker1"
             :blur = "blurFun('1')"
             type="datetimerange" format="yyyy-MM-dd HH:mm:ss" learable
             class="w-full"/>
         </n-form-item-gi>
-        <n-form-item-gi :span="4" label="绑定设备数据时间范围">
+        <n-form-item-gi :span="3" label="绑定设备数据时间范围">
             <n-date-picker v-model:formatted-value="person.picker2" 
             :blur = "blurFun('2')"
             type="datetimerange" format="yyyy-MM-dd HH:mm:ss" learable
             class="w-full"/>
         </n-form-item-gi>
+        <n-form-item-gi :span="3" label="sn">
+            <n-input v-model:value="person.T_sn" type="text" placeholder="请输入sn" />
+        </n-form-item-gi>
+        <n-form-item-gi :span="3" label="校准到期时间">
+            <n-date-picker
+                v-model:formatted-value="person.T_CalibrationExpirationTime"
+                value-format="yyyy-MM-dd"
+                type="date"
+                clearable/>
+        </n-form-item-gi>
     </n-grid>
-    <n-grid :cols="12" :x-gap="12">
-      <n-form-item-gi v-for="(item, index) of formList" :key="item.T_VerifyTemplateMap_id" :span="4"
-        :label="item.T_name">
+    <n-grid :cols="12" :x-gap="60" :y-gap="40">
+      <n-form-item-gi v-for="(item, index) of formList" :key="item.T_VerifyTemplateMap_id" :span="4" :label="item.T_name">
         <!-- 多选id -->
         <n-select v-model:value="item.T_value" multiple label-field="T_id" value-field="T_sn" max-tag-count="responsive"
           :options="classList" v-if="item.T_label === 3">
@@ -60,7 +69,6 @@
                 </template>
                 请选择CAD新版/旧版
               </n-popconfirm>
-              
               <n-button @click="() => handleRefresh(index)">刷新</n-button>
             </n-space>
           </div>
@@ -91,28 +99,45 @@
         <n-image width="100" :src="item.T_text" v-if="item.T_label === 10 || item.T_label === 11"
           style="margin-right: 36px;" />
         <n-popover trigger="hover" v-else>
-          <template #trigger>
-            <n-icon size="24" class="ml-3">
-              <InformationCircleOutline />
-            </n-icon>
-          </template>
-          {{ item.T_text }}
+            <template #trigger>
+                <n-icon size="24" class="ml-3">
+                        <InformationCircleOutline />
+                    </n-icon>
+            </template>
+            {{ item.T_text }}
         </n-popover>
+        <n-icon size="24" class="ml-3 hoverIcon">
+            <CloseCircleOutline  @click="onclickclear(item)"/>
+        </n-icon>
       </n-form-item-gi>
     </n-grid>
   </n-form>
 </template>
 
 <script setup>
-import { onMounted } from "vue";
-import { getTaskDataClassList } from '@/api';
+import { nextTick, onMounted } from "vue";
+import { getTaskDataClassList,getTaskClearvalue } from '@/api';
 import * as qiniu from 'qiniu-js';
 import { getFileToken } from '@/common';
-import { InformationCircleOutline } from '@vicons/ionicons5';
+import { InformationCircleOutline,CloseCircleOutline } from '@vicons/ionicons5';
 import { NButton } from 'naive-ui';
 const T_value = ref('')
 const message = useMessage();
 
+const emit = defineEmits(['updatas']);
+const onclickclear = async (value)=>{
+    let init = {
+        T_task_id:task.T_task_id,
+        T_VerifyTemplate_id:task.T_VerifyTemplate_id,
+        T_VerifyTemplateMap_id:value.T_VerifyTemplateMap_id
+    }
+    const {data:result} = await getTaskClearvalue(init)
+    if(result.Code==200){
+        message.success('清除成功')
+        emit("updatas",true)
+    }
+    console.log('清空',result)
+}
 const task = window.sessionStorage.getItem('task')
   ? JSON.parse(window.sessionStorage.getItem('task'))
   : {};
@@ -130,13 +155,14 @@ const formValue = reactive({
   pdf: '',
 });
 const ifTime = ()=>{
-    let {T_VerifyDeviceDataTime:pick1,T_BindDeviceDataTime:pick2} = task
-    
+    let {T_VerifyDeviceDataTime:pick1,T_BindDeviceDataTime:pick2,T_sn,T_CalibrationExpirationTime} = task
     let str1 = pick1.every(item => item === "");
     let str2 = pick2.every(item => item === "");
-
     str1?person.picker1 = null: person.picker1 = pick1
     str2?person.picker2 = null: person.picker2 = pick2
+    person.T_sn = T_sn
+    person.T_CalibrationExpirationTime = T_CalibrationExpirationTime?T_CalibrationExpirationTime.slice(0,10):null
+
 }
 onMounted(()=>ifTime())
 
@@ -154,7 +180,9 @@ const person = reactive({
     T_VerifyDeviceDataStartTime: '',
     T_VerifyDeviceDataEndTime: '',
     T_BindDeviceDataStartTime: '',
-    T_BindDeviceDataEndTime: ''
+    T_BindDeviceDataEndTime: '',
+    T_sn:'',
+    T_CalibrationExpirationTime:null
 });
 const blurFun = async (data)=>{
     person.T_VerifyDeviceDataStartTime = person.picker1!=null?person.picker1[0]:''
@@ -176,11 +204,15 @@ const classList = ref([]);
 const handleRefresh = (index) => {
   console.log('cad', formValue.formList)
   formValue.formList[index].T_value = ''
-
-  formValue.formList[
+  nextTick(()=>{
+    formValue.formList[
     index
-  ].T_value = `http://coldverifylocal.coldbaozhida.com/CAD/download?type=upload&filename=${queryData.T_task_id}_${queryData.T_VerifyTemplate_id}_${formValue.formList[index].T_id}.png&xxx=${Math.random()}`;
-
+  ].T_value = 
+   `https://coldverifylocal.coldbaozhida.com/CAD2/download/image/${queryData.T_task_id}_${queryData.T_VerifyTemplate_id}_${formValue.formList[index].T_id}.png`
+  })
+console.log(formValue.formList[
+    index
+  ].T_value)
 };
 
 const handlePositiveClick = (row) => {//新版
@@ -263,8 +295,13 @@ getClassList();
 defineExpose({
     classList,person
 })
-
+ 
 
 </script>
 
-<style scoped></style>
+<style scoped>
+.hoverIcon:hover{
+    color:red;
+    cursor: pointer;
+}
+</style>

+ 1 - 1
src/login/index.vue

@@ -26,7 +26,7 @@
               v-model:value="formValue.password"
               type="password"
               show-password-on="click"
-              :maxlength="8"
+              :maxlength="20"
             >
               <template #prefix>
                 <n-icon :component="LockOutlined" />

+ 2 - 2
src/views/data/edit/AddVue.vue

@@ -63,7 +63,7 @@
 </template>
 
 <script setup>
-import { addTaskData, getCertificateList } from '@/api';
+import { addTaskData, AddCertificateList } from '@/api';
 import { TimeData } from '@/plugin/timeFun';
 
 const emit = defineEmits(["addFuns"]);
@@ -90,7 +90,7 @@ const syncBarPosition = (e) => {
   defVal.value = e
 }
 const CarteApi = () => {
-  getCertificateList({
+    AddCertificateList({
     page: 1,
     page_z: 999,
     T_task_id: props.task.T_task_id

+ 45 - 9
src/views/project/index.vue

@@ -1,7 +1,8 @@
 <template>
    <div style="display: flex;align-items: center;margin-bottom: 10px;">
-    <n-input v-model:value="queryData.T_name" type="text" placeholder="请输入报告名称" style="width: 30%;" clearable  />
-    <n-button type="primary" @click="searchFun" style="margin-left: 10px;">搜索</n-button>
+    <n-input v-model:value="queryData.T_name" type="text" placeholder="请输入报告名称" style="width: 15%;" clearable  />
+    <n-input v-model:value="queryData.T_company" type="text" placeholder="请输入公司名称" style="width: 15%;margin: 0 10px;" clearable  />
+    <n-button type="primary" @click="searchFun" style="">搜索</n-button>
   </div>
   <n-data-table
         remote
@@ -14,11 +15,12 @@
 
 <script setup>
 import { h ,onUnmounted} from 'vue';
-import { NButton, NSpace, NCard, NTag, NIcon, NPopover } from 'naive-ui';
-import { getTaskList } from '@/api';
+import { NButton, NSpace, NCard, NTag, NIcon, NPopover,useDialog, useMessage } from 'naive-ui';
+import { getTaskList,getTaskUpDeliveryState,getUpCollectionState } from '@/api';
 import { ArrowRightOutlined as ArrowRightIcon } from '@vicons/antd';
 import { useRouter } from "vue-router";
-
+const dialog = useDialog()
+const message = useMessage()
 const router = useRouter();
 
 
@@ -28,6 +30,7 @@ const queryData = reactive({
   T_name: '',
   page: 1,
   page_z: 8,
+  T_company:''
 });
 
 // 任务列表
@@ -56,14 +59,18 @@ const columns = [
     width: 180,
   },
   {
+    title: '任务Id ',
+    key: 'T_task_id',
+    width: 180,
+  },
+  {
     title: '截止时间',
     key: 'T_deadline',
     width: 180,
   },
   {
     title() {
-      return renderPopover(
-        '流程(?)',
+      return renderPopover('流程(?)',
         [0, 1, 2, 3, 4].map((item) =>
           h(
             NTag,
@@ -119,7 +126,7 @@ const columns = [
                 contentStyle: {
                   textAlign: 'center',
                   padding: 0,
-                },
+                }
               },
               {
                 default: () => row.T_scheme_name,
@@ -133,7 +140,7 @@ const columns = [
                     },
                     {
                       default: () => '实施方案',
-                    }
+                    },
                   ),
               }
             ),
@@ -149,6 +156,7 @@ const columns = [
                   textAlign: 'center',
                   padding: 0,
                 },
+                onClick: () => handleSchemeClick(row,'数据采集','T_collection_state'), 
               },
               {
                 default: () => row.T_collection_name,
@@ -216,6 +224,7 @@ const columns = [
                   textAlign: 'center',
                   padding: 0,
                 },
+                onClick: () => handleSchemeClick(row,'交付审核','T_delivery_state'), 
               },
               {
                 default: () => row.T_delivery_name,
@@ -292,6 +301,33 @@ const columns = [
     },
   },
 ];
+
+
+const handleSchemeClick = async (row,tit,key)=>{
+    let {T_task_id} = row
+    let obj = {
+        T_task_id,
+        [key]:0
+    }
+    if(row[key]!=0){
+        dialog.warning({
+            title: '警告',
+            content: `【${tit}】修改为未完成状态,是否修改?`,
+            positiveText: '确定',
+            negativeText: '取消',
+            onPositiveClick: async() => {
+                const { data: res } = tit=='交付审核'?await getTaskUpDeliveryState(obj) :await getUpCollectionState(obj)
+                if(res.Code==200){
+                    message.success('修改成功')
+                }else{
+                    message.error('修改失败')
+                }
+                getDataList();
+            },
+            onNegativeClick: () => {}
+        })
+    }
+}
 //搜索按钮
 const searchFun = ()=>{
   queryData.page = 1

+ 8 - 3
src/views/report/create/index.vue

@@ -4,6 +4,7 @@
       <template #title> 报告生成 </template>
       <template #extra>
         <n-space>
+            <submitlog @submitlogFun="getTemplateList()"/>
           <n-popconfirm @positive-click="putTemplateData('数据自检')">
             <template #trigger>
               <n-button type="primary">数据自检</n-button>
@@ -23,7 +24,7 @@
       </template>
     </n-page-header> 
     <n-scrollbar :style="{ maxHeight: `${height - 150}px` }" trigger="none">
-      <FormList ref="FormListRef" :form-list="formValue.formList" />
+      <FormList ref="FormListRef" :form-list="formValue.formList"  @updatas="getTemplateList()" />
       <!-- <n-button @click="handleClick">button</n-button> -->
     </n-scrollbar>
   </div>
@@ -89,6 +90,7 @@ import { useWindowSize } from '@vueuse/core';
 import { NButton } from 'naive-ui';
 import { nextTick, onBeforeUnmount, onUpdated, reactive, ref, watch } from 'vue';
 import FormList from '@/components/FormList.vue';
+import submitlog from './submitlog.vue';
 import { useStore } from 'vuex';
 const { height } = useWindowSize();
 const message = useMessage();
@@ -315,6 +317,7 @@ const handleDownload = () => {
 // 提交生成报告
 const putTemplateData = async (titles) => {
     let {picker1,picker2,...objs} = FormListRef.value.person
+    console.log('提交',FormListRef.value)
     await editTask(objs);//提交验证设备数据时间范围,绑定设备数据时间范围
   try {
     const arr = toRaw(formValue.formList);
@@ -431,7 +434,6 @@ const putTemplateData = async (titles) => {
     const obj = {};
     if (res.Code == 200) {
       for (let i of arr) {
-        // console.log('打印arr',i)   
         if (i.T_label === 3 || i.T_label === 9) {
           obj[i.T_name] = i.T_value != null ? i.T_value.join('|') : '';
         } else if (i.T_label === 12) {
@@ -545,7 +547,7 @@ const getTemplateList = async () => {
 
 const filterFun = (arrs)=>{
     for (const key of arrs) {
-        // console.log('循环33',key,FormListRef.value.classList)
+        // console.log('循环33',key,queryData)
         if(key.T_label==3){
             // console.log('循环3',[...key.T_value])
             key.T_value =  key.T_value.filter(item => FormListRef.value.classList.some(obj => obj.T_sn === item))
@@ -555,6 +557,9 @@ const filterFun = (arrs)=>{
             let found = FormListRef.value.classList.some(item => item.T_sn === key.T_value);  
             if(!found) key.T_value = ''
         }
+        if(key.T_label==11){
+            key.T_value = `https://coldverifylocal.coldbaozhida.com/CAD2/download/image/${queryData.T_task_id}_${queryData.T_VerifyTemplate_id}_${key.T_id}.png`
+        }
     }
     return arrs
 }

+ 145 - 0
src/views/report/create/submitlog.vue

@@ -0,0 +1,145 @@
+<template>
+    <div class="">
+        <n-button type="primary" @click="activate">历史提交记录</n-button>
+        <n-drawer v-model:show="active" default-width="98%" placement="right" resizable>
+            <n-drawer-content title="历史提交记录" :closable="true">
+                <div style="display: flex;height: 100%;overflow: hidden;">
+                    <div style="height: 100%;overflow-y: auto;">
+                        <n-data-table :columns="columns" :data="dataTable" :bordered="true" :single-line="false"/>
+                    </div>
+                    <div v-if="HistoryListData.length!=0" style="flex: 1;padding:0 20px;overflow-y: auto;">
+                        <n-descriptions label-placement="top" size="large" bordered>
+                            <n-descriptions-item v-for="item,j in HistoryListData" :key="j">
+                                <template #label>
+                                    {{item.T_name}}
+                                </template>
+                                <div v-if="item.T_label==10 || item.T_label==11">
+                                    <n-image v-if="item.T_value" width="20" :src="item.T_value" />
+                                    <span v-else style="color: red;">*</span>
+                                </div>
+                                <div v-else>
+                                    <span v-if="item.T_value">{{item.T_value}}</span>
+                                    <span v-else style="color: red;">*</span>
+                                </div>
+                            </n-descriptions-item>
+                        </n-descriptions>
+                    </div>
+                    <div v-else style="flex: 1;
+                    display: flex;justify-content: center;align-items: center;color: #ccc;
+                    border: 1px solid rgb(239 239 245);height: 200px;margin-left: 20px;">
+                        暂无数据
+                    </div>
+                </div>
+            </n-drawer-content>
+        </n-drawer>
+    </div>
+</template>
+
+<script setup lang='ts'>
+import {
+    HistoryList,
+    HistoryRecover,
+    HistoryDataList
+} from '@/api';
+import { h, ref } from 'vue'
+import { NButton,NSpace, useMessage } from 'naive-ui'
+import type { DataTableColumns } from 'naive-ui'
+const active = ref(false)
+const HistoryListData:any = ref([])
+const activate = async() => {
+    HistoryListData.value = []
+    dataTable.value = [] 
+    let sessionStorageData:any = window.sessionStorage.getItem('task')
+    let task:any = JSON.parse(sessionStorageData)
+    let init = {
+        T_task_id:task.T_task_id,
+        T_source:2
+    }
+    const {data:result} = await HistoryList(init)
+    if(result.Code==200){
+        dataTable.value = result.Data || []
+    }
+    active.value = true
+    console.log('列表',result,)
+}
+const message = useMessage()
+const dataTable = ref([])
+function createColumns({play,play1}: {
+    play: (row) => void
+    play1: (row) => void
+
+}): DataTableColumns {
+    return [
+        {
+            title: '提交人',
+            key: 'T_uuid_name'
+        },
+        {
+            title: '提交时间',
+            key: 'T_time'
+        },
+        {
+            title: '操作',
+            key: 'actions',
+            render(row) {
+                return h(NSpace,{
+                        strong: true,
+                        tertiary: true,
+                        size: 'small',
+                    },
+                    { 
+                        default: () => 
+                        ['查看', '恢复'].map((item) => {
+                            if (item === '查看') {
+                                return h(NButton,{
+                                    type: 'primary',
+                                    size: 'small',
+                                    onClick: () => play(row)
+                                },{ default: () => item });
+                            }else{
+                                return h(NButton,{
+                                    type: 'primary',
+                                    size: 'small',
+                                    onClick: () => play1(row)
+                                },{ default: () => item });
+                            }
+                            
+                        })
+                    },
+                )
+            }
+        }
+    ]
+}
+
+const emit = defineEmits(['submitlogFun']);
+const columns = createColumns({
+    async play(row) {
+        let sessionStorageData:any = window.sessionStorage.getItem('task')
+        let task:any = JSON.parse(sessionStorageData)
+        const {data:result} = await HistoryDataList({
+            T_task_id:task.T_task_id,
+            T_time:row.T_time,
+            T_source:2,
+        })
+        if(result.Code==200){
+            HistoryListData.value = result.Data || []
+        }
+    },
+    async play1(row) {
+        let sessionStorageData:any = window.sessionStorage.getItem('task')
+        let task:any = JSON.parse(sessionStorageData)
+        const  {data:result} = await HistoryRecover({
+            T_task_id:task.T_task_id,
+            T_time:row.T_time,
+            T_source:2,
+        })
+        if(result.Code==200){
+            message.success('恢复成功')
+            emit("submitlogFun",true)
+        }
+    }
+})
+</script>
+<style lang="scss">
+</style>

+ 11 - 4
src/views/scheme/index.vue

@@ -4,7 +4,8 @@
       <template #title> 实施方案 </template>
       <template #extra>
         <n-space>
-          <n-popconfirm @positive-click="putTemplateData">
+            <submitlog @submitlogFun="getTemplateList()"/>
+          <n-popconfirm @positive-click="putTemplateData"> 
             <template #trigger>
               <n-button type="primary">生成报告</n-button>
             </template>
@@ -17,7 +18,7 @@
       </template>
     </n-page-header>
     <n-scrollbar :style="{ maxHeight: `${height - 150}px` }" trigger="none">
-      <FormList :form-list="formValue.formList" />
+      <FormList ref="FormListRef" :form-list="formValue.formList" @updatas="getTemplateList()"/>
     </n-scrollbar>
   </div>
   <n-modal style="width: 60%" v-model:show="modal.showModal" :on-after-leave="afterLeave" :show-icon="false" preset="dialog" :title="modal.title" @close="onCloseModal">
@@ -78,6 +79,8 @@ import { NButton, useMessage } from 'naive-ui';
 import { useWindowSize } from '@vueuse/core';
 import { onBeforeUnmount } from 'vue';
 import FormList from '@/components/FormList.vue';
+import submitlog from './submitlog.vue';
+
 import { useStore } from 'vuex';
 
 const { height } = useWindowSize();
@@ -85,7 +88,7 @@ const { height } = useWindowSize();
 const message = useMessage();
 const loadingFun = ref(false)
 const scrollbarRef = ref(null);
-
+const FormListRef = ref()
 const task = window.sessionStorage.getItem('task')
   ? JSON.parse(window.sessionStorage.getItem('task'))
   : {};
@@ -273,6 +276,10 @@ const handleDownload = () => {
  * @returns {Promise<void>}
  */
 const putTemplateData = async () => {
+    let {picker1,picker2,...objs} = FormListRef.value.person
+    console.log('提交',objs,formValue.formList)
+    await editTask(objs);//提交验证设备数据时间范围,绑定设备数据时间范围
+    // return
   try {
     const arr = toRaw(formValue.formList);
     //  return
@@ -375,7 +382,7 @@ const putTemplateData = async () => {
           T_min_time: item.T_min_time,
         };
       }
-    });
+    }); 
     console.log('提交参数', VerifyTemplateMapData)
     // return
     const token = getToken();

+ 145 - 0
src/views/scheme/submitlog.vue

@@ -0,0 +1,145 @@
+<template>
+    <div class="">
+        <n-button type="primary" @click="activate">历史提交记录</n-button>
+        <n-drawer v-model:show="active" default-width="98%" placement="right" resizable>
+            <n-drawer-content title="历史提交记录" :closable="true">
+                <div style="display: flex;height: 100%;overflow: hidden;">
+                    <div style="height: 100%;overflow-y: auto;">
+                        <n-data-table :columns="columns" :data="dataTable" :bordered="true" :single-line="false"/>
+                    </div>
+                    <div v-if="HistoryListData.length!=0" style="flex: 1;padding:0 20px;overflow-y: auto;">
+                        <n-descriptions label-placement="top" size="large" bordered>
+                            <n-descriptions-item v-for="item,j in HistoryListData" :key="j">
+                                <template #label>
+                                    {{item.T_name}}
+                                </template>
+                                <div v-if="item.T_label==10 || item.T_label==11">
+                                    <n-image v-if="item.T_value" width="20" :src="item.T_value" />
+                                    <span v-else style="color: red;">*</span>
+                                </div>
+                                <div v-else>
+                                    <span v-if="item.T_value">{{item.T_value}}</span>
+                                    <span v-else style="color: red;">*</span>
+                                </div>
+                            </n-descriptions-item>
+                        </n-descriptions>
+                    </div>
+                    <div v-else style="flex: 1;
+                    display: flex;justify-content: center;align-items: center;color: #ccc;
+                    border: 1px solid rgb(239 239 245);height: 200px;margin-left: 20px;">
+                        暂无数据
+                    </div>
+                </div>
+            </n-drawer-content>
+        </n-drawer>
+    </div>
+</template>
+
+<script setup lang='ts'>
+import {
+    HistoryList,
+    HistoryRecover,
+    HistoryDataList
+} from '@/api';
+import { h, ref } from 'vue'
+import { NButton,NSpace, useMessage } from 'naive-ui'
+import type { DataTableColumns } from 'naive-ui'
+const active = ref(false)
+const HistoryListData:any = ref([])
+const activate = async() => {
+    HistoryListData.value = []
+    dataTable.value = [] 
+    let sessionStorageData:any = window.sessionStorage.getItem('task')
+    let task:any = JSON.parse(sessionStorageData)
+    let init = {
+        T_task_id:task.T_task_id,
+        T_source:1
+    }
+    const {data:result} = await HistoryList(init)
+    if(result.Code==200){
+        dataTable.value = result.Data || []
+    }
+    active.value = true
+    console.log('列表',result,)
+}
+const message = useMessage()
+const dataTable = ref([])
+function createColumns({play,play1}: {
+    play: (row) => void
+    play1: (row) => void
+
+}): DataTableColumns {
+    return [
+        {
+            title: '提交人',
+            key: 'T_uuid_name'
+        },
+        {
+            title: '提交时间',
+            key: 'T_time'
+        },
+        {
+            title: '操作',
+            key: 'actions',
+            render(row) {
+                return h(NSpace,{
+                        strong: true,
+                        tertiary: true,
+                        size: 'small',
+                    },
+                    { 
+                        default: () => 
+                        ['查看', '恢复'].map((item) => {
+                            if (item === '查看') {
+                                return h(NButton,{
+                                    type: 'primary',
+                                    size: 'small',
+                                    onClick: () => play(row)
+                                },{ default: () => item });
+                            }else{
+                                return h(NButton,{
+                                    type: 'primary',
+                                    size: 'small',
+                                    onClick: () => play1(row)
+                                },{ default: () => item });
+                            }
+                            
+                        })
+                    },
+                )
+            }
+        }
+    ]
+}
+
+const emit = defineEmits(['submitlogFun']);
+const columns = createColumns({
+    async play(row) {
+        let sessionStorageData:any = window.sessionStorage.getItem('task')
+        let task:any = JSON.parse(sessionStorageData)
+        const {data:result} = await HistoryDataList({
+            T_task_id:task.T_task_id,
+            T_time:row.T_time,
+            T_source:1,
+        })
+        if(result.Code==200){
+            HistoryListData.value = result.Data || []
+        }
+    },
+    async play1(row) {
+        let sessionStorageData:any = window.sessionStorage.getItem('task')
+        let task:any = JSON.parse(sessionStorageData)
+        const  {data:result} = await HistoryRecover({
+            T_task_id:task.T_task_id,
+            T_time:row.T_time,
+            T_source:1,
+        })
+        if(result.Code==200){
+            message.success('恢复成功')
+            emit("submitlogFun",true)
+        }
+    }
+})
+</script>
+<style lang="scss">
+</style>

BIN
冷链2.0线下.rar


+ 1 - 1
冷链2.0线下/assets/Add-ac63c68f.js → 冷链2.0线下/assets/Add-f2559956.js

@@ -1 +1 @@
-import{d as e,i as o}from"./index-ef5fbb69.js";const r=e({name:"Add",render(){return o("svg",{width:"512",height:"512",viewBox:"0 0 512 512",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o("path",{d:"M256 112V400M400 256H112",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round"}))}});export{r as A};
+import{d as e,k as o}from"./index-e497b666.js";const r=e({name:"Add",render(){return o("svg",{width:"512",height:"512",viewBox:"0 0 512 512",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o("path",{d:"M256 112V400M400 256H112",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round"}))}});export{r as A};

Разница между файлами не показана из-за своего большого размера
+ 4 - 4
冷链2.0线下/assets/Certificate-813c5f89.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/DataTable-41a24bfd.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/DatePicker-02d3d64b.js


+ 1 - 1
冷链2.0线下/assets/DeviceClassList-ae8e72d0.js → 冷链2.0线下/assets/DeviceClassList-c188dd4c.js

@@ -1 +1 @@
-import{an as s,aw as t}from"./index-ef5fbb69.js";const i=e=>s.request({method:"POST",url:"/DeviceClassList/Copy",data:e,baseURL:t}),r=e=>s.request({method:"POST",url:"/DeviceClassList/List",data:e,baseURL:t}),l=e=>s.request({method:"POST",url:"/DeviceClassList/Add",data:e,baseURL:t}),L=e=>s.request({method:"POST",url:"/DeviceClassList/Up",data:e,baseURL:t}),c=e=>s.request({method:"POST",url:"/DeviceClassList/Del",data:e,baseURL:t});export{i as a,l as b,c as d,L as e,r as g};
+import{an as s,aw as t}from"./index-e497b666.js";const i=e=>s.request({method:"POST",url:"/DeviceClassList/Copy",data:e,baseURL:t}),r=e=>s.request({method:"POST",url:"/DeviceClassList/List",data:e,baseURL:t}),l=e=>s.request({method:"POST",url:"/DeviceClassList/Add",data:e,baseURL:t}),L=e=>s.request({method:"POST",url:"/DeviceClassList/Up",data:e,baseURL:t}),c=e=>s.request({method:"POST",url:"/DeviceClassList/Del",data:e,baseURL:t});export{i as a,l as b,c as d,L as e,r as g};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/FormList-130de498.js


+ 1 - 0
冷链2.0线下/assets/FormList-638639bd.css

@@ -0,0 +1 @@
+.hoverIcon[data-v-493f27cc]:hover{color:red;cursor:pointer}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/FormList-eb0fbdb5.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 1
冷链2.0线下/assets/PageHeader-74caddbf.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/Popconfirm-7119bd46.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/RadioGroup-1ab2d39f.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/RadioGroup-6edab0a1.js


+ 1 - 1
冷链2.0线下/assets/Scrollbar-9c297547.js → 冷链2.0线下/assets/Scrollbar-cb9be281.js

@@ -1 +1 @@
-import{$ as e,d as l,b as n,i as t,dE as a}from"./index-ef5fbb69.js";const c=Object.assign(Object.assign({},e.props),{trigger:String,xScrollable:Boolean,onScroll:Function,size:Number}),i=l({name:"Scrollbar",props:c,setup(){const r=n(null);return Object.assign(Object.assign({},{scrollTo:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollTo(o[0],o[1])},scrollBy:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollBy(o[0],o[1])}}),{scrollbarInstRef:r})},render(){return t(a,Object.assign({ref:"scrollbarInstRef"},this.$props),this.$slots)}}),u=i;export{u as _};
+import{$ as e,d as l,f as n,k as t,b2 as a}from"./index-e497b666.js";const c=Object.assign(Object.assign({},e.props),{trigger:String,xScrollable:Boolean,onScroll:Function,size:Number}),i=l({name:"Scrollbar",props:c,setup(){const r=n(null);return Object.assign(Object.assign({},{scrollTo:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollTo(o[0],o[1])},scrollBy:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollBy(o[0],o[1])}}),{scrollbarInstRef:r})},render(){return t(a,Object.assign({ref:"scrollbarInstRef"},this.$props),this.$slots)}}),u=i;export{u as _};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/Space-84278c21.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/Tabs-3c1baf8d.js


+ 1 - 0
冷链2.0线下/assets/Task-28f1f3c2.js

@@ -0,0 +1 @@
+import{an as t,aw as s}from"./index-e497b666.js";const r=e=>t.request({method:"POST",url:"/Task/Get",data:e,baseURL:s}),o=e=>t.request({method:"POST",url:"/Task/List",data:e,baseURL:s}),u=e=>t.request({method:"POST",url:"/Task/UpDeliveryState",data:e,baseURL:s}),T=e=>t.request({method:"POST",url:"/Task/UpCollectionState",data:e,baseURL:s}),n=e=>t.request({method:"POST",url:"/Task/Up",data:e,baseURL:s});export{u as a,T as b,r as c,n as e,o as g};

+ 0 - 1
冷链2.0线下/assets/Task-82b35f13.js

@@ -1 +0,0 @@
-import{an as s,aw as t}from"./index-ef5fbb69.js";const r=e=>s.request({method:"POST",url:"/Task/Get",data:e,baseURL:t}),o=e=>s.request({method:"POST",url:"/Task/List",data:e,baseURL:t}),u=e=>s.request({method:"POST",url:"/Task/Up",data:e,baseURL:t});export{r as a,u as e,o as g};

+ 1 - 0
冷链2.0线下/assets/TaskData-11f744cb.js

@@ -0,0 +1 @@
+import{an as t,ap as e,aq as s,aw as r}from"./index-e497b666.js";const l=a=>t.request({method:"POST",url:"/VerifyTemplateMapData/Clear_Value",data:a,baseURL:r}),T=a=>t.request({method:"POST",url:"/DeviceClassList/List",data:a,baseURL:r}),u=a=>(console.log("任务数据接口1",e,s),t.request({method:"POST",url:"/TaskData/TaskDataClass_List",data:a,baseURL:e})),n=a=>t.request({method:"POST",url:"/TaskData/Check",data:a,baseURL:localStorage.getItem("ping")?e:s}),g=a=>t.request({method:"POST",url:"/TaskData/Extract_TaskData",data:a,baseURL:r}),D=a=>t.request({method:"POST",url:"/TaskData/List",data:a,baseURL:localStorage.getItem("ping")?e:s}),c=a=>t.request({method:"POST",url:"/TaskData/Up_TaskData",data:a,baseURL:localStorage.getItem("ping")?e:s}),k=a=>t.request({method:"POST",url:"/TaskData/Add",data:a,baseURL:localStorage.getItem("ping")?e:s}),m=a=>t.request({method:"POST",url:"/TaskData//AddS",data:a,baseURL:localStorage.getItem("ping")?e:s}),d=a=>t.request({method:"POST",url:"/TaskData/Up",data:a,baseURL:localStorage.getItem("ping")?e:s}),S=a=>t.request({method:"POST",url:"/TaskData/Del",data:a,baseURL:localStorage.getItem("ping")?e:s}),i=a=>t.request({method:"POST",url:"/TaskData/Export_Data_Excel",data:a,baseURL:localStorage.getItem("ping")?e:s}),L=a=>t.request({method:"POST",url:"/TaskData/TaskDataClass_Edit",data:a,baseURL:localStorage.getItem("ping")?e:s}),p=a=>t.request({method:"POST",url:"/TaskData/TaskDataClass_Del",data:a,baseURL:localStorage.getItem("ping")?e:s}),U=a=>t.request({method:"POST",url:"/TaskData/jpg",data:a,baseURL:localStorage.getItem("ping")?e:s}),b=a=>t.request({method:"POST",url:"/TaskData/JPG/State",data:a,baseURL:localStorage.getItem("ping")?e:s});export{U as T,k as a,m as b,i as c,p as d,g as e,L as f,D as g,u as h,b as i,S as j,d as k,n as l,l as m,T as n,c as u};

+ 0 - 1
冷链2.0线下/assets/TaskData-9daaac93.js

@@ -1 +0,0 @@
-import{an as e,ap as t,aq as s,aw as r}from"./index-ef5fbb69.js";const l=a=>(console.log("任务数据接口1",t,s),e.request({method:"POST",url:"/DeviceClassList/List",data:a,baseURL:r})),T=a=>(console.log("任务数据接口1",t,s),e.request({method:"POST",url:"/TaskData/TaskDataClass_List",data:a,baseURL:t})),u=a=>e.request({method:"POST",url:"/TaskData/Check",data:a,baseURL:localStorage.getItem("ping")?t:s}),g=a=>e.request({method:"POST",url:"/TaskData/Extract_TaskData",data:a,baseURL:r}),n=a=>e.request({method:"POST",url:"/TaskData/List",data:a,baseURL:localStorage.getItem("ping")?t:s}),c=a=>e.request({method:"POST",url:"/TaskData/Up_TaskData",data:a,baseURL:localStorage.getItem("ping")?t:s}),D=a=>e.request({method:"POST",url:"/TaskData/Add",data:a,baseURL:localStorage.getItem("ping")?t:s}),k=a=>e.request({method:"POST",url:"/TaskData//AddS",data:a,baseURL:localStorage.getItem("ping")?t:s}),d=a=>e.request({method:"POST",url:"/TaskData/Up",data:a,baseURL:localStorage.getItem("ping")?t:s}),m=a=>e.request({method:"POST",url:"/TaskData/Del",data:a,baseURL:localStorage.getItem("ping")?t:s}),S=a=>e.request({method:"POST",url:"/TaskData/Export_Data_Excel",data:a,baseURL:localStorage.getItem("ping")?t:s}),i=a=>e.request({method:"POST",url:"/TaskData/TaskDataClass_Edit",data:a,baseURL:localStorage.getItem("ping")?t:s}),L=a=>e.request({method:"POST",url:"/TaskData/TaskDataClass_Del",data:a,baseURL:localStorage.getItem("ping")?t:s}),p=a=>e.request({method:"POST",url:"/TaskData/jpg",data:a,baseURL:localStorage.getItem("ping")?t:s}),U=a=>e.request({method:"POST",url:"/TaskData/JPG/State",data:a,baseURL:localStorage.getItem("ping")?t:s});export{p as T,D as a,k as b,S as c,L as d,g as e,i as f,n as g,T as h,U as i,m as j,d as k,u as l,l as m,c as u};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/Tooltip-f5d13d70.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/Upload-e16a41ce.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/VerifyTemplateMapData-390e39cc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/VerifyTemplateMapData-c79050aa.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-0aaa87c2.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-0b817cc7.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-0f8122cd.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-10f631dd.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-135f9ab8.js


+ 1 - 0
冷链2.0线下/assets/index-1d842d3b.js

@@ -0,0 +1 @@
+import{r as d,f as s,o as u,c as m,i as o,w as p,j as n,k as f,N as k,l as g}from"./index-e497b666.js";import{l as y}from"./TaskData-11f744cb.js";import{_ as h}from"./PageHeader-74caddbf.js";import{_ as T}from"./DataTable-41a24bfd.js";import"./RadioGroup-6edab0a1.js";import"./get-slot-1efb97e5.js";const x={class:"h-full flex flex-col gap-y-3"},I={__name:"index",setup(v){const l=window.sessionStorage.getItem("task")?JSON.parse(window.sessionStorage.getItem("task")):{},r=d({T_task_id:l.T_task_id}),i=[{title:"编号",key:"T_id"},{title:"SN",key:"T_sn"},{title:"数据量",key:"T_unm"},{title:"时间间隔",key:"T_time_interval"},{title:"开始时间",key:"Time_start"},{title:"结束时间",key:"Time_end"},{title:"结果",key:"Result",width:700,render(e){return f(k,{type:e.Result===200?"success":"error",bordered:!1,size:"large"},{default:()=>e.Result===200?"OK":e.Result_str})}}],a=s([]),t=s(!1);return(async()=>{try{t.value=!0;const{data:e}=await y(r);a.value=e.Data?e.Data:[]}catch(e){console.log(e)}finally{t.value=!1}})(),(e,D)=>{const c=h,_=T;return u(),m("div",x,[o(c,{onBack:e.$router.back},{title:p(()=>[g(" 数据校验 ")]),_:1},8,["onBack"]),o(_,{remote:"",loading:n(t),columns:i,data:n(a),bordered:!1,"flex-height":"",class:"flex-1"},null,8,["loading","data"])])}}};export{I as default};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-30bea123.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-30c8a192.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-46c26e12.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-50d7dec3.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-60bc9da8.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-637abe16.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-69825ccb.js


+ 0 - 1
冷链2.0线下/assets/index-7acde4b8.js

@@ -1 +0,0 @@
-import{r as d,b as s,o as m,c as u,g as o,w as p,h as n,i as f,N as k,j as g}from"./index-ef5fbb69.js";import{l as y}from"./TaskData-9daaac93.js";import{_ as h}from"./PageHeader-e5e3a363.js";import{_ as T}from"./DataTable-328b5f5d.js";import"./RadioGroup-1ab2d39f.js";import"./get-slot-1efb97e5.js";import"./Tooltip-f5d13d70.js";const x={class:"h-full flex flex-col gap-y-3"},O={__name:"index",setup(v){const l=window.sessionStorage.getItem("task")?JSON.parse(window.sessionStorage.getItem("task")):{},r=d({T_task_id:l.T_task_id}),i=[{title:"编号",key:"T_id"},{title:"SN",key:"T_sn"},{title:"数据量",key:"T_unm"},{title:"时间间隔",key:"T_time_interval"},{title:"开始时间",key:"Time_start"},{title:"结束时间",key:"Time_end"},{title:"结果",key:"Result",width:700,render(e){return f(k,{type:e.Result===200?"success":"error",bordered:!1,size:"large"},{default:()=>e.Result===200?"OK":e.Result_str})}}],a=s([]),t=s(!1);return(async()=>{try{t.value=!0;const{data:e}=await y(r);a.value=e.Data?e.Data:[]}catch(e){console.log(e)}finally{t.value=!1}})(),(e,D)=>{const c=h,_=T;return m(),u("div",x,[o(c,{onBack:e.$router.back},{title:p(()=>[g(" 数据校验 ")]),_:1},8,["onBack"]),o(_,{remote:"",loading:n(t),columns:i,data:n(a),bordered:!1,"flex-height":"",class:"flex-1"},null,8,["loading","data"])])}}};export{O as default};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-cceaeb3e.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-d2fcbb1e.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-e497b666.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-e97eb066.js


Разница между файлами не показана из-за своего большого размера
+ 73 - 0
冷链2.0线下/assets/index-f2c1e765.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/index-ff2c7ece.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/vue.runtime.esm-bundler-179ff6e5.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/vue.runtime.esm-bundler-8d6a0dde.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/vue3-pdf-embed-3a5703cb.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
冷链2.0线下/assets/xlsx-97c7c9c5.js


+ 1 - 1
冷链2.0线下/index.html

@@ -5,7 +5,7 @@
     <link rel="icon" href="./favicon.ico" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>冷链验证报告生成系统</title>
-    <script type="module" crossorigin src="./assets/index-ef5fbb69.js"></script>
+    <script type="module" crossorigin src="./assets/index-e497b666.js"></script>
     <link rel="stylesheet" href="./assets/index-dbd9e951.css">
   </head>
   <body>

Некоторые файлы не были показаны из-за большого количества измененных файлов