From f6b61a485501f326debe52d77ea65d87fb34b37f Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期三, 05 三月 2025 17:57:09 +0800
Subject: [PATCH] 完善集成日志查询

---
 Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue |  228 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 184 insertions(+), 44 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue b/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
index 82411d9..6f8e57b 100644
--- a/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
+++ b/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
@@ -1,73 +1,213 @@
 <template>
-  <div style="display: flex" >
+  <div style="display: flex">
     <el-form :inline="true" :model="formInline" class="demo-form-inline">
-      <el-form-item label="绫诲瀷:" size="small">
-        <el-select v-model="formInline.type" placeholder="璇疯緭鍏ョ被鍨�" @change="SelectChange">
-          <el-option :label="item.label" :value="item.value" v-for="item in SearchObject.searchData" ></el-option>
+      <!--      闆嗘垚鏃ュ織 浠诲姟 鏁版嵁鍏ㄩ儴鍏敤-->
+      <el-form-item label="闆嗘垚鏌ヨ:" size="small">
+        <el-select v-model="formInline.type" placeholder="璇烽�夋嫨鍒嗙被" @change="SelectChange">
+          <el-option v-for="(item,index) in SearchObject.searchData" :key="item.value" :label="item.label"
+                     :value="item.value"></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item v-if="typeFlag" size="small">
-        <el-select v-model="formInline.check" placeholder="璇烽�夋嫨鍒嗙被">
-          <el-option label="1" value="0"></el-option>
-          <el-option label="2" value="1"></el-option>
+      <!--      闆嗘垚鏃ュ織 鏄惁鎴愬姛-->
+      <el-form-item v-if="(status.type == 'loge' && status.stateFlag)" size="small">
+        <el-select v-model="formInline.state" placeholder="璇烽�夋嫨鐘舵��">
+          <el-option label="鏄�" value="true"></el-option>
+          <el-option label="鍚�" value="false"></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item size="small" v-if="dateFlag">
+      <!--      闆嗘垚鏃ュ織绫诲瀷-->
+      <el-form-item v-if="(status.type == 'loge' && status.typeFlag)" size="small">
+        <el-select v-model="formInline.cut" placeholder="璇烽�夋嫨绫诲瀷">
+          <el-option label="鏁版嵁鎺ㄩ��" value="pushData"></el-option>
+          <el-option label="鍒嗙被鎺ㄩ��" value="pushClassifyData"></el-option>
+          <el-option label="缂栫爜鐢宠" value="applyCode"></el-option>
+          <el-option label="缂栫爜缁存姢" value="syncEditData"></el-option>
+          <el-option label="鍒嗙被鏌ヨ" value="queryClassify"></el-option>
+          <el-option label="鍚紪鐮佽鍒欑殑鍒嗙被鏌ヨ" value="queryClassifyRule"></el-option>
+          <el-option label="鏁版嵁鏌ヨ" value="queryData"></el-option>
+          <el-option label="鏍囧噯鐢宠" value="applyCodeForBZ"></el-option>
+          <el-option label="閮ㄩ棬鐢宠" value="syncDataForOrg"></el-option>
+          <el-option label="浜哄憳鐢宠" value="syncDataForPerson"></el-option>
+        </el-select>
+      </el-form-item>
+      <!--      闆嗘垚浠诲姟 鏄惁鎺ㄩ�佹垚鍔�
+      闆嗘垚鏁版嵁  鏄惁鍒嗚В浠诲姟-->
+      <el-form-item v-if="((status.type == 'task' || status.type == 'data')&& status.stateTaskDataFlag)" size="small">
+        <el-select v-model="formInline.stateTask" placeholder="璇烽�夋嫨鐘舵��">
+          <el-option label="鏄�" value="true"></el-option>
+          <el-option label="鍚�" value="false"></el-option>
+        </el-select>
+      </el-form-item>
+      <!--      闆嗘垚浠诲姟 闆嗘垚鏁版嵁 鎺ㄩ�佺被鍨�-->
+      <el-form-item v-if="((status.type === 'task' || status.type === 'data') && status.sendTypeFlga)" size="small">
+        <el-select v-model="formInline.taskCut" placeholder="璇烽�夋嫨鎺ㄩ�佺被鍨�">
+          <el-option label="鍙戝竷" value="Enabled"></el-option>
+          <el-option label="鍥炴敹" value="TakeBack"></el-option>
+          <el-option label="鍋滅敤" value="Disabled"></el-option>
+        </el-select>
+      </el-form-item>
+      <!--      闆嗘垚浠诲姟 鍒涘缓鏃ユ湡  闆嗘垚鏃ュ織 璁板綍鏃堕棿-->
+      <el-form-item v-if="((status.type == 'loge' ||status.type == 'task') && status.dateFlag)" size="small">
         <el-date-picker
           v-model="formInline.Date"
-          type="date"
-          placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+          placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+          type="date">
         </el-date-picker>
       </el-form-item>
-      <el-form-item size="small" >
-        <el-input v-model="formInline.text" placeholder="璇疯緭鍏ュ唴瀹�" @keyup.enter.native="SaveHandler"></el-input>
+      <!--      闆嗘垚浠诲姟 鏈�鍚庢帹閫佹椂闂�-->
+      <el-form-item v-if="status.type == 'task' && status.lastDateFlag" size="small">
+        <el-date-picker
+          v-model="formInline.lastDate"
+          placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+          type="date">
+        </el-date-picker>
+      </el-form-item>
+      <!--      鍏敤妯″潡-->
+      <!--      杈撳叆鍐呭-->
+      <el-form-item v-if="shouldShowInput" size="small">
+        <el-input v-model.trim="formInline.text" placeholder="鎸変笅鍥炶溅閿繘琛屾煡璇紒" @keyup.enter.native="SaveHandler"></el-input>
+      </el-form-item>
+      <!--      鏌ヨ鎸夐挳-->
+      <el-form-item v-if="shouldShowButton" size="small">
+        <el-button size="small" type="success" @click="handleSearch">鏌ヨ</el-button>
       </el-form-item>
     </el-form>
   </div>
 </template>
 
 <script>
-import {getList} from "@/api/docking/loge";
+import {getLogoList} from "@/api/docking/loge";
+import {getDataList} from "@/api/docking/data";
+import {getTaskList} from "@/api/docking/task";
+
 export default {
   name: "VciDockingSearch",
-  props:['SearchObject','page'],
+  props: ['SearchObject', 'page', 'formInline', 'status'],
   data() {
-    return {
-      typeFlag:false,
-      dateFlag:false,
-      formInline:{
-        type:'',
-        check:'',
-        text:'',
-        Date:''
-      },
+    return {}
+  },
+  computed: {
+    //杈撳叆妗嗗垽鏂�
+    shouldShowInput() {
+      const isLogeType = this.status.type === 'loge';
+      const isTaskType = this.status.type === 'task';
+      const isDataType = this.status.type === 'data';
+      return (
+        (isLogeType && !this.status.stateFlag && !this.status.dateFlag && !this.status.typeFlag) ||
+        (isTaskType && !this.status.stateTaskDataFlag && !this.status.dateFlag && !this.status.lastDateFlag && !this.status.sendTypeFlga) ||
+        (isDataType && !this.status.stateTaskDataFlag && !this.status.sendTypeFlga)
+      );
+    },
+    //鎸夐挳鍒ゆ柇
+    shouldShowButton() {
+      const isLogeType = this.status.type === 'loge';
+      const isTaskType = this.status.type === 'task';
+      const isDataType = this.status.type === 'data';
+      return (
+        (isLogeType && (this.status.dateFlag || this.status.stateFlag || this.status.typeFlag)) ||
+        (isTaskType && (this.status.stateTaskDataFlag || this.status.dateFlag || this.status.lastDateFlag || this.status.sendTypeFlga)) ||
+        (isDataType && (this.status.stateTaskDataFlag || this.status.sendTypeFlga))
+      );
     }
   },
-  methods:{
-    SelectChange(val){
-      if(this.SearchObject.type === 'loge'){
-        if(val === 5){
-          this.typeFlag=true;
-        }else {
-          this.typeFlag=false;
-        }
-        if(val === 6){
-          this.dateFlag=true;
-        }else {
-          this.dateFlag=false;
-        }
+  methods: {
+    SelectChange(val) {
+      const logeType = this.status.type === 'loge';
+      const taskType = this.status.type === 'task';
+      const dataType = this.status.type === 'data';
+      this.status.typeFlag = logeType && val === 5;
+      this.status.dateFlag = (logeType && val === 6) || (taskType && val === 6);
+      this.status.stateFlag = logeType && val === 7;
+      this.status.lastDateFlag = taskType && val === 7;
+      this.status.stateTaskDataFlag = (taskType && val === 8) || (dataType && val === 4);
+      this.status.sendTypeFlga = (taskType && val === 5) || (dataType && val === 3);
+    },
+    SaveHandler() {
+      let searchDataItem = Object.values(this.SearchObject.searchData).find(item => item.value === this.formInline.type);
+      let name = searchDataItem ? searchDataItem.prop : null;
+      // if (!searchDataItem) {
+      //   this.$message.error('鏈壘鍒板搴旀悳绱㈢被鍨嬭鏌ョ湅鎺у埗鍙拌緭鍑猴紒')
+      // }
+      const requestApi = (api) => {
+        api(this.page.currentPage, this.page.pageSize, 'createTime', 'desc', {[`conditionMap[${name}_like]`]: this.formInline.text})
+          .then(res => {
+            if (!res.data.data.records) {
+              this.$message.error('鏆傛湭鏌ュ埌鏁版嵁锛�');
+            } else {
+              let Data = res.data.data;
+              this.$emit('getList', Data);
+            }
+          });
+      }
+
+      //鏃ュ織
+      if (this.status.type == 'loge') {
+        requestApi(getLogoList);
+      }
+      //鏁版嵁
+      if (this.status.type == 'data') {
+        requestApi(getDataList);
+      }
+      //浠诲姟
+      if (this.status.type == 'task') {
+        requestApi(getTaskList);
       }
     },
-    SaveHandler(){
-      let name = this.SearchObject.searchData[this.formInline.type].prop;
-      getList(this.page.currentPage, this.page.pageSize, {[name]: this.formInline.text}).then(res => {
-        console.log(res);
-      });
+    handleSearch() {
+      const {type, typeFlag, stateFlag, stateTaskDataFlag, dateFlag, lastDateFlag, sendTypeFlga} = this.status;
+      const {currentPage, pageSize} = this.page;
+      const {cut, state, stateTask, Date, lastDate, taskCut} = this.formInline;
+      const requestParams = {};
+      const requestApi = (api) => {
+        api(currentPage, pageSize, 'createTime', 'desc', requestParams).then(res => {
+          if (!res.data.data.records) {
+            this.$message.error('鏆傛湭鏌ュ埌鏁版嵁锛�');
+          } else {
+            let Data = res.data.data;
+            this.$emit('getList', Data);
+          }
+        });
+      }
+      // 闆嗘垚鏃ュ織绫诲瀷
+      if (type === 'loge' && typeFlag) {
+        requestParams['conditionMap[type_like]'] = cut;
+      }
+      // 闆嗘垚鏃ュ織鏄惁鎴愬姛
+      if (type === 'loge' && stateFlag) {
+        requestParams['conditionMap[interfaceStatus_like]'] = state;
+      }
+      // 闆嗘垚浠诲姟 鏄惁鎺ㄩ�佹垚鍔�  闆嗘垚鏁版嵁  鏄惁鍒嗚В浠诲姟
+      if ((type === 'task' || type === 'data') && stateTaskDataFlag) {
+        requestParams['conditionMap[sendFlag_like]'] = stateTask;
+      }
+      // 闆嗘垚浠诲姟 鍒涘缓鏃ユ湡 鍜� 闆嗘垚鏃ュ織 璁板綍鏃堕棿
+      if ((type === 'loge' || type === 'task') && dateFlag) {
+        const formattedDate = this.$moment(Date).format('YYYY-M-D');
+        requestParams['conditionMap[createTime_like]'] = formattedDate;
+      }
+      // 闆嗘垚浠诲姟 鏈�鍚庢帹閫佹椂闂�
+      if (type === 'task' && lastDateFlag) {
+        const formattedDate = this.$moment(lastDate).format('YYYY-M-D');
+        requestParams['conditionMap[lastModifyTime_like]'] = formattedDate;
+      }
+      // 闆嗘垚浠诲姟 闆嗘垚鏁版嵁 鎺ㄩ�佺被鍨�
+      if ((type === 'task' || type === 'data') && sendTypeFlga) {
+        requestParams['conditionMap[sendType_like]'] = taskCut;
+      }
+
+      if (type == 'loge') {
+        requestApi(getLogoList);
+      }
+      if (type == 'data') {
+        requestApi(getDataList);
+      }
+      if (type == 'task') {
+        requestApi(getTaskList);
+      }
     }
   }
 }
 </script>
 
-<style scoped>
-
+<style lang="scss" scoped>
 </style>

--
Gitblit v1.9.3