YangJian0701 1 жил өмнө
parent
commit
fec342f3b2

BIN
dist.rar


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

@@ -10,6 +10,15 @@ export const TaskCopy = (data) => {
     baseURL: baseURL4,
   });
 };
+//平均复制到
+export const CopyFromPosit = (data) => {
+  return service.request({
+    method: 'POST',
+    url: '/TaskData/CopyFromPositionAverageSN',
+    data,
+    baseURL: baseURL4,
+  });
+};
 
 //补漏
 export const TaskRepairSen = (data) => {

+ 163 - 0
src/views/data/edit/AverageCopy.vue

@@ -0,0 +1,163 @@
+<template>
+  <!-- 平均复制 -->
+  <n-button @click="showImportModal">平均复制到</n-button>
+  <n-modal style="width: 40%" v-model:show="showModal" title="平均复制到:" :mask-closable="false" :show-icon="false" preset="dialog">
+    <n-form ref="formRef" :model="model" :rules="rules" label-placement="left" require-mark-placement="left" label-width="100">
+      <n-form-item label="开始时间">
+        <n-date-picker v-model:value="model.StartTime" format="yyyy-MM-dd HH:mm" disabled type="datetime" style="width: 100%;" />
+      </n-form-item>
+      <n-form-item label="结束时间">
+        <n-date-picker v-model:value="model.EndTime" format="yyyy-MM-dd HH:mm" disabled type="datetime" style="width: 100%;" />
+      </n-form-item>
+      <n-form-item label="复制到时间" path="CopyTime">
+        <n-date-picker v-model:value="model.CopyTime" format="yyyy-MM-dd HH:mm" type="datetime" style="width: 100%;" />
+      </n-form-item>
+      <n-form-item label="复制到设备" path="selectSn">
+        <n-select v-model:value="T_sn_list" label-field="T_id" value-field="T_snid" :options="options">
+        </n-select>
+      </n-form-item>
+      <div style="display: flex; justify-content: flex-end">
+        <n-button @click="showModal = false" style="margin-right: 10px;">取消</n-button>
+        <n-button type="primary" @click="handleValidateButtonClick">立即提交</n-button>
+      </div>
+    </n-form>
+  </n-modal>
+</template>
+
+<script setup>
+import {CopyFromPosit } from '@/api';
+import { reactive, ref, watch } from 'vue'
+import { useMessage } from 'naive-ui';
+import {TimeDate} from '@/plugin/timeFun.js'
+const message = useMessage();
+
+const props = defineProps({
+  queryObj: {
+    type: Object,
+    default: () => ({}),
+  },
+  checkData:{
+    type:Array,
+    default: () => ([])
+  },
+  classList:{
+    type:Array,
+    default: () => ([])
+  }
+})
+const options = computed(() => {
+  
+  let arr = [...props.classList]
+  arr.forEach(item=>{
+    item.T_snid = item.T_sn + ',' + item.T_id
+  })
+  return arr;
+});
+
+const data = reactive({
+  CopySN:'',
+    CopyID:'',
+  T_saveT: 60,
+  T_task_id: '',
+  SN_List: ''
+})
+const T_sn_list = ref(null)
+const model = reactive({
+    StartTime:null,
+    EndTime:null,
+    CopyTime: null, 
+    
+})
+watch(()=>T_sn_list.value,(newValue)=>{
+  if(newValue!=null){
+    rules.selectSn.required = false
+  }else{
+    rules.selectSn.required = true
+  }
+})
+
+const rules = reactive({
+  CopyTime: {
+    type: "number",
+    required: true,
+    trigger: ["blur", "change"],
+    message: "请选择结束时间"
+  },
+  selectSn:{
+    required: true,
+    trigger: "blur",
+    message: "请选择复制设备"
+  }
+})
+
+const showModal = ref(false)
+const showImportModal = () => {
+  Object.keys(model).forEach(item=>{
+    console.log(item)
+    model[item] = null
+  })
+  if(props.checkData==null){
+    message.error('请选择需要复制的设备')
+    return
+  }else if(props.checkData.length!=2){
+    message.error('平均复制到需要选择2项哦')
+    return
+  }else if(props.queryObj.Time_start=='' && props.queryObj.Time_end==''){
+    message.error('请选择复制时间')
+    return
+  }else{
+    data.T_task_id = props.queryObj.T_task_id
+    model.StartTime = new Date(props.queryObj.Time_start).getTime()
+    model.EndTime = new Date(props.queryObj.Time_end).getTime()
+    console.log(model,props.queryObj,props.checkData)
+    rules.selectSn.required = true
+    T_sn_list.value = null
+    showModal.value = true
+  }
+}
+
+
+const formRef = ref(null);
+
+
+//提交
+const handleValidateButtonClick = ()=>{
+  formRef.value?.validate((errors) => {
+    if (!errors) {
+      TaskCopyApi()
+    }
+  });
+}
+const TaskCopyApi = async()=>{
+  let resIt = await dataFun()  
+  CopyFromPosit(resIt).then(res=>{
+    if(res.data.Code==200){
+      message.success(res.data.Msg)
+      showModal.value = false
+    }
+  })
+}
+const dataFun = ()=>{
+  
+  return new Promise(resolve=>{
+    data.CopySN = T_sn_list.value.split(',')[0]
+    data.CopyID = T_sn_list.value.split(',')[1]
+    let models = {...model}
+    let snList = [...props.checkData]
+    //处理时间戳转时间格式
+    Object.keys(models).forEach(item=>{
+      models[item] = TimeDate(models[item])+':00'
+    })
+
+    //处理sn List
+    const arr1 = snList.map(item => item.T_sn + ',' +item.T_id)
+    data.SN_List = arr1.join('|')+'|'
+    console.log(data,models)
+    resolve({
+      ...data,...models
+    })
+  })
+}
+</script>
+
+<style lang="scss" scoped></style>

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

@@ -73,7 +73,7 @@
           <n-input v-model:value="item.T_value" />
         </template>
         <!-- 描述 -->
-        <n-popover trigger="hover">
+        <!-- <n-popover trigger="hover">
           <template #trigger>
             <n-icon size="24" class="ml-3">
               <InformationCircleOutline />
@@ -81,7 +81,7 @@
           </template>
           <n-image width="200" :src="item.T_text" v-if="item.T_label === 10 || item.T_label === 11" />
           <span v-else>{{ item.T_text }}</span>
-        </n-popover>
+        </n-popover> -->
       </n-form-item-gi>
     </n-grid>
   </n-form>

+ 11 - 7
src/views/data/edit/editCopy.vue

@@ -2,7 +2,7 @@
   <!-- 复制到 -->
   <n-button @click="showImportModal">复制到</n-button>
   <n-modal style="width: 40%" v-model:show="showModal" title="复制到:" :mask-closable="false" :show-icon="false" preset="dialog">
-    <n-form ref="formRef" :model="model" :rules="rules" label-placement="left" label-width="100">
+    <n-form ref="formRef" :model="model" :rules="rules" label-placement="left" require-mark-placement="left" label-width="100">
       <n-form-item label="开始时间">
         <n-date-picker v-model:value="model.StartTime" format="yyyy-MM-dd HH:mm" disabled type="datetime" style="width: 100%;" />
       </n-form-item>
@@ -13,7 +13,7 @@
         <n-date-picker v-model:value="model.CopyTime" format="yyyy-MM-dd HH:mm" type="datetime" style="width: 100%;" />
       </n-form-item>
       <n-form-item label="复制到设备" path="selectSn">
-        <n-select v-model:value="T_sn_list" label-field="T_id" value-field="T_snid" :options="options" clearable>
+        <n-select v-model:value="T_sn_list" label-field="T_id" value-field="T_snid" :options="options">
         </n-select>
       </n-form-item>
       <div style="display: flex; justify-content: flex-end">
@@ -68,11 +68,14 @@ const model = reactive({
     EndTime:null,
     CopyTime: null, 
     
-    
 })
-// watch(()=>,(newValue)=>{
-//   console.log('时间变化',)
-// })
+watch(()=>T_sn_list.value,(newValue)=>{
+  if(newValue!=null){
+    rules.selectSn.required = false
+  }else{
+    rules.selectSn.required = true
+  }
+})
 
 const rules = reactive({
   CopyTime: {
@@ -85,7 +88,6 @@ const rules = reactive({
     required: true,
     trigger: "blur",
     message: "请选择复制设备"
-
   }
 })
 
@@ -109,6 +111,8 @@ const showImportModal = () => {
     model.StartTime = new Date(props.queryObj.Time_start).getTime()
     model.EndTime = new Date(props.queryObj.Time_end).getTime()
     console.log(model,props.queryObj,props.checkData)
+    rules.selectSn.required = true
+    T_sn_list.value = null
     showModal.value = true
   }
 }

+ 5 - 1
src/views/data/edit/index.vue

@@ -4,7 +4,7 @@
       <template #title> 数据编辑 </template>
     </n-page-header>
     <div class="flex-1 grid grid-cols-4 gap-x-3" style="display: flex;">
-      <n-card style="width: 250px;flex-shrink: 0;">
+      <n-card style="width: 370px;flex-shrink: 0;">
         <n-tabs display-directive="show">
           <n-tab-pane name="1" tab="设备">
             <n-list>
@@ -68,6 +68,7 @@
               <AddVue :class-list="classList" :task="task" />
               <SetVue/>
               <editCopy :queryObj="queryData" :checkData="checkValues" :classList="classList"/>
+              <AverageCopy :queryObj="queryData" :checkData="checkValues" :classList="classList"></AverageCopy>
               <editLeak :queryObj="queryData" :checkData="checkValues"/>
               <editTendency :queryObj="queryData" :checkData="checkValues"/>
 
@@ -148,6 +149,9 @@ import FormList from './FormList.vue';
 
 //数据编辑移动的功能
 import editCopy from './editCopy.vue';
+import AverageCopy from './AverageCopy.vue';
+
+
 import editLeak from './editLeak.vue';
 import editTendency from './editTendency.vue';
 import editMath from './editMath.vue';

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

@@ -39,13 +39,13 @@
               " type="line" gap-position="bottom" :percentage="keyInfo.Schedule" />
           </div>
         </template>
-        <div class="pis" v-show="!loadingFun" style="overflow:auto;height:400px;" ref="scrollbarRef">
+        <div class="pis" v-show="loadingFun==false" style="overflow:auto;height:400px;" ref="scrollbarRef">
           <div class="flex" v-for="(item, index) of items" :key="index"> <!-- items -->
             <n-badge class="mr-5" type="info" :value="index + 1" />
             <span>{{ item }}</span>
           </div>
         </div>
-        <n-spin v-show="loadingFun" :show="true">
+        <n-spin v-show="loadingFun==true" :show="true">
           <n-alert title="请等待..." type="success">
             服务器正在处理中,请等待...
           </n-alert>
@@ -188,6 +188,7 @@ const editTaskInfo = async () => {
 const obsData = reactive({
   obj: {}
 })
+
 // 验证报告生成 报告
 const generateReportInfo = async (obj) => {
   obsData.obj = obj
@@ -198,10 +199,11 @@ const generateReportInfo = async (obj) => {
     T_VerifyTemplate_id: task.T_VerifyTemplate_id,
     ...obj,
   })
+ 
   if (res.Code === 200) {
     loadingFun.value = false
     generateKeyInfo(res.Data);
-  } else if (res.Code == '501') {
+  } else if (res.Code == 501) {
     loadingFun.value = true
     times = setTimeout(() => {
       generateReportInfo(obsData.obj);