Ver código fonte

井筒-领域检索

xiaoqiao 1 ano atrás
pai
commit
d37210754d

+ 8 - 5
lib/华北油田Ai检索.pdb

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?PowerDesigner AppLocale="UTF16" ID="{88086B01-C9E1-11D4-9552-0090277716A9}" Label="" LastModificationDate="1706778212" Name="SmartSearch" Objects="442" Symbols="58" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.0.0.3514"?>
+<?PowerDesigner AppLocale="UTF16" ID="{88086B01-C9E1-11D4-9552-0090277716A9}" Label="" LastModificationDate="1706838704" Name="SmartSearch" Objects="420" Symbols="55" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.0.0.3514"?>
 <!-- do not edit this file -->
 
 <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@@ -7208,8 +7208,9 @@ LABL 0 Microsoft Sans Serif,8,N</a:FontList>
 <a:Code>indexName</a:Code>
 <a:CreationDate>1706777157</a:CreationDate>
 <a:Creator>qiao</a:Creator>
-<a:ModificationDate>1706777258</a:ModificationDate>
+<a:ModificationDate>1706838701</a:ModificationDate>
 <a:Modifier>qiao</a:Modifier>
+<a:Comment>索引名称</a:Comment>
 <a:DataType>varchar(100)</a:DataType>
 <a:Length>100</a:Length>
 <a:Column.Mandatory>1</a:Column.Mandatory>
@@ -7220,8 +7221,9 @@ LABL 0 Microsoft Sans Serif,8,N</a:FontList>
 <a:Code>indexCode</a:Code>
 <a:CreationDate>1706777157</a:CreationDate>
 <a:Creator>qiao</a:Creator>
-<a:ModificationDate>1706777258</a:ModificationDate>
+<a:ModificationDate>1706838704</a:ModificationDate>
 <a:Modifier>qiao</a:Modifier>
+<a:Comment>索引编码</a:Comment>
 <a:DataType>varchar(100)</a:DataType>
 <a:Length>100</a:Length>
 <a:Column.Mandatory>1</a:Column.Mandatory>
@@ -7234,11 +7236,12 @@ LABL 0 Microsoft Sans Serif,8,N</a:FontList>
 <o:Column Id="o329">
 <a:ObjectID>594D1BD3-C8A9-40EE-B2E2-468F235B24F2</a:ObjectID>
 <a:Name>描述</a:Name>
-<a:Code>describe</a:Code>
+<a:Code>indexDesc</a:Code>
 <a:CreationDate>1706777157</a:CreationDate>
 <a:Creator>qiao</a:Creator>
-<a:ModificationDate>1706777258</a:ModificationDate>
+<a:ModificationDate>1706838693</a:ModificationDate>
 <a:Modifier>qiao</a:Modifier>
+<a:Comment>描述</a:Comment>
 <a:DataType>varchar(200)</a:DataType>
 <a:Length>200</a:Length>
 </o:Column>

BIN
vue/src/assets/images/info.png


+ 144 - 0
vue/src/components/basic/es-result/query-criteria.vue

@@ -0,0 +1,144 @@
+<template>
+  <a-divider orientation="left"><b style="color:#4E61D0">1.输入检索控制条件</b></a-divider>
+  <a-row :gutter="24">
+    <a-col :span="24">
+      <div class="col-title">组织单位:</div>
+      <a-input v-model:value="formState.text" style="width: 400px"></a-input>
+    </a-col>
+    <a-col :span="24">
+      <div class="col-title">作业区/项目部:</div>
+      <a-input v-model:value="formState.text" style="width: 400px"></a-input>
+    </a-col>
+    <a-col :span="24">
+      <div class="col-title">井名:</div>
+      <a-input v-model:value="formState.well_common_name" style="width: 400px"></a-input>
+    </a-col>
+    <a-col :span="24">
+      <div class="col-title">地层名称:</div>
+      <a-input v-model:value="formState.formation_name" style="width: 400px"></a-input>
+    </a-col>
+  </a-row>
+  <a-divider orientation="left"><b style="color:#4E61D0">2.输入检索内容条件</b></a-divider>
+  <a-row :gutter="24">
+    <a-col :span="24" class="query-row">
+      <div class="col-title"></div>
+      <a-select v-model:value="formState.defaultField" :options="fieldList" class="operTexts"></a-select>
+      <!--AutoComplete继承至vue-->
+      <QueryHistoryComplete v-model:value="formState.defaultKeyString" style="width: 285px"></QueryHistoryComplete>
+      <img src="~@/assets/images/add.png" @click="addQuery"/>
+    </a-col>
+    <a-col :span="24" class="query-row" v-for="(it,index) in queryList">
+      <div class="col-title"></div>
+      <!--a-select v-model:value="it.oper" :options="operTexts" class="operTexts"></a-select-->
+      <a-select v-model:value="it.field" :options="fieldList" class="operTexts"></a-select>
+      <QueryHistoryComplete v-model:value="it.keyString" style="width: 285px"></QueryHistoryComplete>
+      <img src="~@/assets/images/sub.png" @click="onDelete(index)"/>
+    </a-col>
+
+  </a-row>
+</template>
+
+<script lang="ts">
+import {defineComponent, reactive, ref} from 'vue';
+import type {SelectProps} from "ant-design-vue";
+import QueryHistoryComplete from '@/components/basic/querylog/history-complete.vue'
+
+export default defineComponent({
+  name: 'query-criteria',
+  components: {QueryHistoryComplete},
+  props: {},
+  setup(props) {
+    console.log(props);
+    const formState = reactive({
+      page: 1, rows: 10,
+      well_common_name: '',
+      formation_name: '',
+      text: '',
+      defaultField: '',
+      defaultKeyString: ''
+    });
+    const queryList = ref<any>([]);
+
+    const operTexts = [
+      {value: '=', label: '等于'},
+      {value: 'like', label: '包含'},
+      {value: 'null', label: '为空'},
+      {value: 'not null', label: '不为空'}
+    ] as SelectProps['options'];
+
+    const fieldList = [
+      {value: '', label: '不限'},
+      {value: 'well_id', label: '井号'},
+      {value: 'well_common_name', label: '井名'},
+      {value: 'historys.testing_name', label: '测试'}
+    ] as SelectProps['options'];
+
+    function addQuery() {
+      queryList.value.push({field: '', keyString: ''});
+    }
+
+    function onDelete(index) {
+      queryList.value.splice(index, 1);
+    }
+
+    function getQuery() {
+      //组装查询条件
+      let queryObject = {
+        queryList: JSON.parse(JSON.stringify(queryList.value)),
+        limiters: [] as any,
+        page: 0,
+        limit: 10
+      };
+      //第一条默认查询条件
+      queryObject.queryList.splice(0, 0, {
+        field: formState.defaultField,
+        keyString: formState.defaultKeyString
+      });
+      //限定条件写入
+      //{"fieldName":"开钻日期", "fields":["spud_date"],"opreation":"大于","value":"2022-03-28"}
+      queryObject.limiters.push({
+        fields: ["well_common_name.keyword"],
+        opreation: '等于',
+        value: formState.well_common_name
+      });
+      //多个值测试,如 组织单位 in 哪些值
+      queryObject.limiters.push({fields: ["well_type.keyword"], opreation: '包括IN', value: '直井'});
+
+      console.log(queryObject);
+      return queryObject;
+      //localStorage.setItem("queryObject",JSON.stringify(queryObject));
+    }
+
+    return {
+      formState, queryList, operTexts, fieldList, addQuery, onDelete, getQuery
+    };
+  }
+});
+</script>
+
+<style lang="less" scoped>
+.ant-row {
+
+  .ant-col {
+    margin: 10px 0px;
+
+    .col-title {
+      width: 120px;
+      text-align: left;
+      float: left;
+    }
+  }
+
+  .query-row {
+    display: flex;
+
+    img {
+      margin-left: 5px;
+    }
+  }
+}
+
+.operTexts {
+  width: 80px;
+}
+</style>

+ 18 - 18
vue/src/components/basic/es-result/table-view.vue

@@ -1,37 +1,37 @@
 <template>
-<div>
-  <div class="search-title">业务解释</div>
-  <div class="search-view">
-    <span>井号:留70-175X</span>
-    <span>井ID: HB_la0X7IYDTvIlePbaHlRc4SF3sfx33</span>
-    <span>作业阶段ID:sdfsfasefewesf3322233fsmtSddwg2r24F</span>
-    <span>起始时间:2021-7-30  12:00:00</span>
-    <span>终止时间:2022-1-30  20:00:00</span>
-    <span>井号:留70-175X</span>
-    <span>井ID: HB_la0X7IYDTvIlePbaHlRc4SF3sfx33</span>
-    <span>作业阶段ID:sdfsfasefewesf3322233fsmtSddwg2r24F</span>
-    <span>起始时间:2021-7-30  12:00:00</span>
-    <span>终止时间:2022-1-30  20:00:00</span>
+  <div>
+    <div class="search-title">{{ title }}</div>
+    <div class="search-view">
+      <template v-for="it in fieldData">
+        <span>{{ it.fieldName }}:{{data[it.fieldCode]}}</span>
+      </template>
+    </div>
   </div>
-</div>
 </template>
 
 
 <script lang="ts">
 import {defineComponent, ref} from 'vue';
+import {get} from "@/api/common";
 
 export default defineComponent({
   name: 'table-view',
   components: {},
   props: {
-    kid: String,
+    indexSetting: Object,
+    data: Object,
   },
   setup(props) {
     console.log(props);
-    const data = ref([]);
-
+    const title = props.indexSetting?.indexName;
+    const fieldData = ref([]);
+    const data = props.data;
+    get('esindex/getFieldList',
+      {indexId: props.indexSetting?.indexId}).then(result => {
+      fieldData.value = result;
+    })
     return {
-      data
+      fieldData, data,title
     };
   }
 });

+ 12 - 121
vue/src/views/esdomain/index.vue

@@ -4,50 +4,13 @@
       ref="formRef"
       name="advanced_search"
       class="ant-advanced-search-form"
-      :model="formState"
       @finish="onQuery"
     >
-      <a-divider orientation="left"><b style="color:#4E61D0">1.输入检索控制条件</b></a-divider>
-      <a-row :gutter="24">
-        <a-col :span="24">
-          <div class="col-title">组织单位:</div>
-          <a-input v-model:value="formState.text" style="width: 400px"></a-input>
-        </a-col>
-        <a-col :span="24">
-          <div class="col-title">作业区/项目部:</div>
-          <a-input v-model:value="formState.text" style="width: 400px"></a-input>
-        </a-col>
-        <a-col :span="24">
-          <div class="col-title">井名:</div>
-          <a-input v-model:value="formState.well_common_name" style="width: 400px"></a-input>
-        </a-col>
-        <a-col :span="24">
-          <div class="col-title">地层名称:</div>
-          <a-input v-model:value="formState.formation_name" style="width: 400px"></a-input>
-        </a-col>
-      </a-row>
-      <a-divider orientation="left"><b style="color:#4E61D0">2.输入检索内容条件</b></a-divider>
-      <a-row :gutter="24">
-        <a-col :span="24" class="query-row">
-          <div class="col-title"></div>
-          <a-select v-model:value="formState.defaultField" :options="fieldList" class="operTexts"></a-select>
-          <!--AutoComplete继承至vue-->
-          <QueryHistoryComplete v-model:value="formState.defaultKeyString" style="width: 285px"></QueryHistoryComplete>
-          <img src="~@/assets/images/add.png" @click="addQuery"/>
-        </a-col>
-        <a-col :span="24" class="query-row" v-for="(it,index) in queryList">
-          <div class="col-title"></div>
-          <!--a-select v-model:value="it.oper" :options="operTexts" class="operTexts"></a-select-->
-          <a-select v-model:value="it.field" :options="fieldList" class="operTexts"></a-select>
-          <QueryHistoryComplete v-model:value="it.keyString" style="width: 285px"></QueryHistoryComplete>
-          <img src="~@/assets/images/sub.png" @click="onDelete(index)"/>
-        </a-col>
-
-      </a-row>
+      <queryCriteria ref="queryRef"></queryCriteria>
       <a-row :gutter="24">
         <a-col :span="24" class="query-row">
           <div class="col-title"></div>
-          <a-button type="primary" html-type="submit">查询</a-button>
+          <a-button type="primary" @click="onQuery">查询</a-button>
           <a-button style="margin: 0 8px" @click="() => {formRef.resetFields();}">重置</a-button>
         </a-col>
       </a-row>
@@ -57,78 +20,31 @@
 
 
 <script lang="ts">
-import {reactive, defineComponent, ref} from 'vue';
+import {defineComponent, ref} from 'vue';
 import {useRoute, useRouter} from "vue-router";
 import {DownOutlined, UpOutlined} from "@ant-design/icons-vue";
-import type {FormInstance, SelectProps} from "ant-design-vue";
+import type {FormInstance} from "ant-design-vue";
 import {useTabsViewStore} from "@/store/modules/tabsView";
-import {save} from "@/api/common";
-import QueryHistoryComplete from '@/components/basic/querylog/history-complete.vue'
+import queryCriteria from '@/components/basic/es-result/query-criteria.vue';
 
 export default defineComponent({
   name: 'domainESIndex',
-  components: {DownOutlined, UpOutlined, QueryHistoryComplete},
+  components: {DownOutlined, UpOutlined,queryCriteria},
   setup() {
     const tabsViewStore = useTabsViewStore();
     const route = useRoute();
     const router = useRouter();
     const formRef = ref<FormInstance>();
-    const formState = reactive({
-      page: 1, rows: 10,
-      well_common_name: '',
-      formation_name: '',
-      text:'',
-      defaultField:'',
-      defaultKeyString:''
-    });
-    const queryList= ref<any>([]);
-
-    const operTexts = [
-      {value: '=', label: '等于'},
-      {value: 'like', label: '包含'},
-      {value: 'null', label: '为空'},
-      {value: 'not null', label: '不为空'}
-    ] as SelectProps['options'];
-
-    const fieldList = [
-      {value: '', label: '不限'},
-      {value: 'well_id', label: '井号'},
-      {value: 'well_common_name', label: '井名'},
-      {value: 'historys.testing_name', label: '测试'}
-    ] as SelectProps['options'];
+    const queryRef = ref<typeof queryCriteria>();
 
     const onQuery = () => {
-      if(false) tabsViewStore.addTabByPath('/domain/result', {});
-      //组装查询条件
-      let queryObject = {
-        queryList : JSON.parse(JSON.stringify(queryList.value)),
-        limiters : [] as any,
-        page : 0,
-        limit : 10
-      };
-      //第一条默认查询条件
-      queryObject.queryList.splice(0, 0, {
-        field:formState.defaultField,
-        keyString:formState.defaultKeyString});
-      //限定条件写入
-      //{"fieldName":"开钻日期", "fields":["spud_date"],"opreation":"大于","value":"2022-03-28"}
-      queryObject.limiters.push({ fields:["well_common_name.keyword"], opreation:'等于', value:formState.well_common_name });
-      //多个值测试,如 组织单位 in 哪些值
-      queryObject.limiters.push({ fields:["well_type.keyword"], opreation:'包括IN', value:'直井' });
-
-      console.log(queryObject);
-      save('esquery/Query', queryObject).then(result => {
-        console.log(result);
-      });
-    }
-    function addQuery(){
-      queryList.value.push({field:'', keyString:''});
-    }
-    function onDelete(index) {
-      queryList.value.splice(index, 1);
+      let queryObject = queryRef.value?.getQuery();
+      localStorage.setItem("queryObject",JSON.stringify(queryObject));
+      tabsViewStore.addTabByPath('/domain/result', {});
     }
+
     return {
-      router, route, formState, formRef, onQuery, operTexts, fieldList,addQuery,queryList,onDelete
+      router, route, formRef, onQuery,queryRef,
     };
   },
   created() {
@@ -137,28 +53,3 @@ export default defineComponent({
   }
 });
 </script>
-
-<style lang="less">
-.ant-row {
-
-  .ant-col {
-    margin: 10px 0px;
-
-    .col-title {
-      width: 120px;
-      text-align: left;
-      float: left;
-    }
-  }
-  .query-row{
-    display: flex;
-
-    img{
-      margin-left:5px;
-    }
-  }
-}
-.operTexts{
-  width:80px;
-}
-</style>

+ 179 - 51
vue/src/views/esdomain/result.vue

@@ -1,52 +1,75 @@
 <template>
   <div class="card-search">
     <div>
-      <a-form
-        ref="formRef"
-        name="advanced_search"
-        class="ant-advanced-search-form"
-        :model="formState"
-        @finish="onQuery"
-      >
-        <div>
-          <a-space>
-            <a-select v-model:value="formState.tabName" :options="fieldList" class="operTexts"></a-select>
-            <a-input v-model:value="formState.subjectName" style="width: 400px"></a-input>
-            <a-button type="primary" html-type="submit" @click="onQuery">查询</a-button>
-            <a-button @click="() => {formRef.resetFields();}">重置</a-button>
-          </a-space>
-        </div>
-        <a-divider orientation="center" @click="pageState.showMoreQuery=!pageState.showMoreQuery">
-          <template v-if="pageState.showMoreQuery">
-            展开更多
-            <DoubleRightOutlined rotate="90"/>
-          </template>
-          <template v-else>
-            折 叠
-            <DoubleLeftOutlined rotate="90"/>
-          </template>
-        </a-divider>
-      </a-form>
+      <a-space>
+        <a-select v-model:value="formState.tabName" :options="fieldList" class="operTexts"></a-select>
+        <a-input v-model:value="formState.subjectName" style="width: 400px"></a-input>
+        <a-button type="primary" html-type="submit" @click="onQuery">查询</a-button>
+        <a-button @click="() => {formRef.resetFields();}">重置</a-button>
+      </a-space>
+    </div>
+    <div v-show="pageState.showMoreQuery">
+      <queryCriteria ref="queryRef"></queryCriteria>
+    </div>
+    <a-divider orientation="center" @click="pageState.showMoreQuery=!pageState.showMoreQuery">
+      <template v-if="!pageState.showMoreQuery">
+        展开更多
+        <DoubleRightOutlined rotate="90"/>
+      </template>
+      <template v-else>
+        收 起
+        <DoubleLeftOutlined rotate="90"/>
+      </template>
+    </a-divider>
+    <a-spin :spinning="pageState.loading">
       <div class="search-container">
         <div class="search-body">
           <div class="search-order">
             <div>综合排序
               <p class="search-order-icon">
-              <caret-up-outlined @click="pageState.defaultOrder='asc'" :style="{ color: pageState.defaultOrder=='asc'? '#1890FF':'#cccccc' }"/>
-              <caret-down-outlined @click="pageState.defaultOrder='desc'" :style="{ color: pageState.defaultOrder=='desc'? '#1890FF':'#cccccc' }"/></p></div>
+                <caret-up-outlined @click="pageState.defaultOrder='asc'"
+                                   :style="{ color: pageState.defaultOrder=='asc'? '#1890FF':'#cccccc' }"/>
+                <caret-down-outlined @click="pageState.defaultOrder='desc'"
+                                     :style="{ color: pageState.defaultOrder=='desc'? '#1890FF':'#cccccc' }"/>
+              </p>
+            </div>
             <div>创建时间
               <p class="search-order-icon">
-                <caret-up-outlined @click="pageState.timeOrder='asc'" :style="{ color: pageState.timeOrder=='asc'? '#1890FF':'#cccccc' }"/>
-                <caret-down-outlined @click="pageState.timeOrder='desc'" :style="{ color: pageState.timeOrder=='desc'? '#1890FF':'#cccccc' }"/></p>
+                <caret-up-outlined @click="pageState.timeOrder='asc'"
+                                   :style="{ color: pageState.timeOrder=='asc'? '#1890FF':'#cccccc' }"/>
+                <caret-down-outlined @click="pageState.timeOrder='desc'"
+                                     :style="{ color: pageState.timeOrder=='desc'? '#1890FF':'#cccccc' }"/>
+              </p>
             </div>
           </div>
-          <component is="cycleView" :kid="'id'"></component>
-          <component is="listView" :kid="'id'"></component>
-          <component is="tableView"></component>
-          <component is="listView"></component>
-          <component is="tableView"></component>
-          <component is="chatView" :kid="'id'"></component>
-          <component is="docView"></component>
+          <template v-for="(it,index) in dataList">
+            <div>
+              <div class="search-body-title">
+                井名:{{ it.well_common_name }}<p @click="showWell(it.well_id)">
+                <img src="~@/assets/images/info.png" width="18" height="16"/>查看井基础信息</p>
+              </div>
+              <div class="search-body-item">
+                <component :is="it.component" :indexSetting="it.indexSetting" :data="it" v-show="it.showMore||index<=3"></component>
+
+                <a-divider orientation="center" @click="it.showMore=!it.showMore">
+                  <template v-if="!it.showMore">
+                    展开更多
+                    <DoubleRightOutlined rotate="90"/>
+                  </template>
+                  <template v-else>
+                    收 起
+                    <DoubleLeftOutlined rotate="90"/>
+                  </template>
+                </a-divider>
+              </div>
+            </div>
+          </template>
+          <a-pagination show-size-changer
+                        v-model:current="pageParams.current" :total="pageParams.total"
+                        style="float: right;margin-top: 10px;"
+                        :pageSize="pageParams.pageSize" :show-total="total => `共 ${total} 条`"
+                        @change="(current)=>handleChange({ current: current,pageSize: pageParams.pageSize })"
+                        @showSizeChange="(current,pageSize)=>handleChange({ current: current,pageSize: pageSize })"/>
         </div>
         <div class="search-sider">
           <div class="search-sider-block">
@@ -83,7 +106,7 @@
           </div>
         </div>
       </div>
-    </div>
+    </a-spin>
   </div>
 </template>
 
@@ -96,32 +119,92 @@ import listView from '@/components/basic/es-result/list-view.vue';
 import chatView from '@/components/basic/es-result/chat-view.vue';
 import docView from '@/components/basic/es-result/doc-view.vue';
 import cycleView from '@/components/basic/es-result/cycle-view.vue';
+import {get, postData} from "@/api/common";
+import queryCriteria from '@/components/basic/es-result/query-criteria.vue';
+import {useTabsViewStore} from "@/store/modules/tabsView";
+import {getPaginationTotalTitle} from "@/utils/common";
+import type {TableProps} from "ant-design-vue";
 
 export default defineComponent({
   name: 'esdomainResult',
-  components: {tableView, listView, chatView, docView,cycleView},
+  components: {tableView, listView, chatView, docView, cycleView, queryCriteria},
   setup() {
 
     const route = useRoute();
     const router = useRouter();
     const formRef = ref<FormInstance>();
+    const tabsViewStore = useTabsViewStore();
+    const dataList = ref<any>([]);
+    const indexList = ref<any>([]);
     const formState = reactive({
       page: 1, rows: 10, subjectName: '', tabName: '', tabCode: null, total: 0
     });
+    const displayType = ['cycleView', 'tableView', 'listView', 'chatView', 'docView'];
+
     const pageState = reactive({
       showMoreQuery: false,
-      defaultOrder:'',
-      timeOrder:''
+      defaultOrder: '',
+      timeOrder: '',
+      loading: false
+    });
+    const pageParams = ref({
+      total: 0,
+      current: 1,
+      pageSize: 3,
+      showSizeChanger: true,
+      showTotal: total => getPaginationTotalTitle(total)
     });
 
+    const handleChange: TableProps['onChange'] = (
+      pag: { pageSize: number; current: number },
+    ) => {
+      pageParams.value.current = pag.current;
+      pageParams.value.pageSize = pag.pageSize;
+      onQuery();
+    };
+
+    const queryRef = ref<typeof queryCriteria>();
     const fieldList = [
       {value: '', label: '不限'},
       {value: 'wellId', label: '井号'},
       {value: 'wellName', label: '井名'}
     ] as SelectProps['options'];
 
+    get('esindex/getList', {page: 1, rows: 99}).then(result => {
+      indexList.value = result.list;
+    })
+    const showWell = (well_id) => {
+      tabsViewStore.addTabByPath('/wellinfo/detail', {id: well_id});
+    }
+
     function onQuery() {
-      console.log("");
+      let queryObject = queryRef.value?.getQuery();
+      loadData(queryObject);
+    }
+
+    function loadData(queryObject) {
+      queryObject.page = pageParams.value.current - 1;
+      queryObject.limit = pageParams.value.pageSize;
+
+      pageState.loading = true;
+      postData('esquery/Query', queryObject).then(result => {
+        pageState.loading = false;
+        console.log(result);
+        dataList.value = (result as any).rows;
+        pageParams.value.total = (result as any).total;
+
+        getIndexSetting();
+      });
+    }
+
+    function getIndexSetting() {
+      dataList.value.forEach(it => {
+        let itSetting = indexList.value.find(ind => ind.indexCode == it.index);
+        if (itSetting) {
+          it.component = displayType[itSetting.displayType-1];
+          it.indexSetting = itSetting;
+        }
+      })
     }
 
     const listData: string[] = [
@@ -134,10 +217,27 @@ export default defineComponent({
       '井号5-1',
     ];
     return {
-      router, route, formState, fieldList, formRef, onQuery, pageState, listData
+      router,
+      route,
+      formState,
+      fieldList,
+      formRef,
+      onQuery,
+      showWell,
+      pageState,
+      listData,
+      queryRef,
+      loadData,
+      dataList,
+      handleChange,
+      pageParams
     };
   },
   created() {
+    let queryObject = localStorage.getItem("queryObject");
+    if (queryObject != null) {
+      this.loadData(JSON.parse(queryObject));
+    }
   },
   activated() {
   }
@@ -152,25 +252,52 @@ export default defineComponent({
     width: 80%;
     min-width: 800px;
 
+    .search-body-title {
+      font-weight: bold;
+      font-size: 16px;
+      padding-left: 10px;
+      padding-bottom: 10px;
+      margin-top: 10px;
+      display: flex;
+      align-items: center;
+
+      p {
+        cursor: pointer;
+        margin-left: 10px;
+        font-weight: normal;
+        display: flex;
+        border: 1px solid #c9c9c9;
+        padding: 3px 10px;
+        font-size: 14px;
+      }
+    }
+
+    .search-body-item {
+      padding: 10px 20px;
+      margin-right: 10px;
+      box-shadow: 3px 2px 10px #999;
+      opacity: 0.8;
+    }
+
     .search-order {
       display: flex;
       font-size: 16px;
-      margin-bottom: 9px;
       justify-content: flex-end;
 
-      div{
+      div {
         display: flex;
         margin-right: 10px;
       }
-      .search-order-icon{
+
+      .search-order-icon {
         width: 15px;
         height: 15px;
         display: flex;
         flex-wrap: wrap;
 
-        span{
+        span {
           height: 9px;
-          cursor:pointer;
+          cursor: pointer;
         }
       }
     }
@@ -183,15 +310,16 @@ export default defineComponent({
     .search-sider-block {
       margin-bottom: 10px;
 
-      .search-sider-process{
+      .search-sider-process {
         display: flex;
         flex-wrap: wrap;
-        span{
+
+        span {
           padding: 3px 10px;
           border: 1px solid black;
           margin: 5px;
           background-color: #f5f5f5;
-          cursor:pointer;
+          cursor: pointer;
         }
       }
     }