田源
2024-09-06 bf70f3cf825f44c457dba2bebd26e7af73e4b2a8
Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
@@ -1,21 +1,15 @@
<template>
  <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-option :label="item.label" :value="item.value" :key="item.value" v-for="(item,index) in SearchObject.searchData"></el-option>
        </el-select>
      </el-form-item>
<!--      集成日志是否成功-->
<!--      集成日志 是否成功-->
      <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 v-if="(status.type == 'task' && status.stateTaskFlag)" 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>
@@ -30,17 +24,28 @@
          <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.sendTypeFlga)" size="small">
<!--      集成任务 是否推送成功
集成数据  是否分解任务-->
      <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 size="small" v-if="((status.type == 'loge' ||status.type == 'task') && status.dateFlag)">
        <el-date-picker
          v-model="formInline.Date"
@@ -48,7 +53,7 @@
          placeholder="选择日期时间">
        </el-date-picker>
      </el-form-item>
<!--      最后推送时间-->
<!--      集成任务 最后推送时间-->
      <el-form-item size="small" v-if="status.type == 'task' && status.lastDateFlag">
        <el-date-picker
          v-model="formInline.lastDate"
@@ -56,20 +61,23 @@
          placeholder="选择日期时间">
        </el-date-picker>
      </el-form-item>
<!--      公用模块-->
<!--      输入内容-->
      <el-form-item size="small" v-if="shouldShowInput">
        <el-input v-model="formInline.text" placeholder="请输入内容" @keyup.enter.native="SaveHandler"></el-input>
        <el-input v-model="formInline.text" placeholder="按下回车键进行查询!" @keyup.enter.native="SaveHandler"></el-input>
      </el-form-item>
<!--      查询按钮-->
      <el-form-item size="small" v-if="shouldShowButton">
        <el-button type="success" size="small">查询</el-button>
        <el-button type="success" size="small" @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','formInline','status'],
@@ -82,18 +90,22 @@
    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.stateTaskFlag && !this.status.dateFlag && !this.status.lastDateFlag && !this.status.sendTypeFlga)
        (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.stateTaskFlag || this.status.dateFlag || this.status.lastDateFlag || this.status.sendTypeFlga))
        (isTaskType && (this.status.stateTaskDataFlag || this.status.dateFlag || this.status.lastDateFlag || this.status.sendTypeFlga)) ||
        (isDataType && (this.status.stateTaskDataFlag || this.status.sendTypeFlga))
      );
    }
  },
@@ -101,18 +113,90 @@
    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.stateTaskFlag = taskType && val === 8;
      this.status.lastDateFlag = taskType && val === 7;
      this.status.sendTypeFlga = taskType && val === 5;
      this.status.stateTaskDataFlag = (taskType && val === 8) || (dataType && val === 4);
      this.status.sendTypeFlga = (taskType && val === 5) || (dataType && val === 3);
    },
    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);
      });
      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);
      }
    },
    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);
      }
    }
  }
}