Browse Source

领域检索修改

xiaoqiao 7 months ago
parent
commit
7458d98330

+ 3 - 0
.idea/compiler.xml

@@ -2,11 +2,13 @@
 <project version="4">
   <component name="CompilerConfiguration">
     <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
       <profile name="Maven default annotation processors profile" enabled="true">
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
         <module name="cloudphone" />
+        <module name="shvvue" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
@@ -16,6 +18,7 @@
   <component name="JavacSettings">
     <option name="ADDITIONAL_OPTIONS_OVERRIDE">
       <module name="cloudphone" options="-parameters" />
+      <module name="shvvue" options="-parameters" />
     </option>
   </component>
 </project>

+ 2 - 2
.idea/jarRepositories.xml

@@ -4,12 +4,12 @@
     <remote-repository>
       <option name="id" value="central" />
       <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
+      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
       <option name="name" value="Central Repository" />
-      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />

+ 1 - 0
.idea/misc.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="MavenProjectsManager">
     <option name="originalFiles">
       <list>

+ 60 - 0
doc/已更新脚本.txt

@@ -619,3 +619,63 @@ insert sys_dictionary values('Characteristics','问题特性',25,1);
 insert sys_dictionary_item values('24870d11-ad0d-175e-a6c5-7085c84ej79e','','Characteristics',1,'共性',1,1,0);
 insert sys_dictionary_item values('24870d11-84id-15rt-iuj5-784oj467j78h','','Characteristics',2,'个性',2,1,0);
 
+---2024-5-30日 购物车mysql脚本
+
+create table cf_apply_form
+(
+    applyId              varchar(50) not null,
+    applyUserId          varchar(50),
+    applyUserName        varchar(50),
+    status               int comment '1、审核中2、审核通过3、驳回',
+    applyDate            datetime comment '申请时间',
+    reason               varchar(300) comment '申请原因',
+    primary key (applyId)
+);
+
+create table cf_apply_form_reviewer
+(
+    reviewerId           varchar(50) not null,
+    applyId              varchar(50),
+    reviewerUserId       varchar(50),
+    reviewerUserName     varchar(50),
+    reviewerAction       int,
+    comments             varchar(300),
+    reviewerDate         datetime,
+    primary key (reviewerId)
+);
+
+alter table cf_apply_form_reviewer add constraint FK_Reference_34 foreign key (applyId)
+    references cf_apply_form (applyId) on delete restrict on update restrict;
+
+create table cf_apply_form_well_file
+(
+    wellFileId           varchar(50) not null,
+    applyId              varchar(50) comment '关联申请单',
+    well_common_name     varchar(200) comment '井',
+    file_name            varchar(200) comment '文件名称',
+    primary key (wellFileId)
+);
+
+alter table cf_apply_form_well_file add constraint FK_Reference_35 foreign key (applyId)
+    references cf_apply_form (applyId) on delete restrict on update restrict;
+
+INSERT INTO sys_function_code (FunctionCode, FunctionName, ParentFunctionCode, OrderNo) VALUES ('T0111', '我的审批', 'T01', 9);
+INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
+VALUES ('T0111', 4, '我的审批', 'MailOutlined', 'views/reviewer', '/reviewer', 'T01', null, 0, 1, 1, 'T0111', 1, null);
+INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
+VALUES ('T011101', 1, '我的审批', '', 'views/reviewerList', '/reviewer/list', 'T0111', null, 0, 0, 1, 'T0111', 1, null);
+
+INSERT INTO sys_function_code (FunctionCode, FunctionName, ParentFunctionCode, OrderNo) VALUES ('T0110', '我的申请', 'T01', 9);
+INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
+VALUES ('T0110', 4, '我的申请', 'FileDoneOutlined', 'views/apply', '/apply', 'T01', null, 0, 1, 1, 'T0110', 1, null);
+INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
+VALUES ('T011001', 1, '我的申请', '', 'views/applyList', '/apply/list', 'T0110', null, 0, 0, 1, 'T0110', 1, null);
+
+UPDATE sys_menu SET OrderNo=6 WHERE MenuNo='T0108';
+UPDATE sys_menu SET OrderNo=5 WHERE MenuNo='T0109';
+
+
+insert into sys_dictionary value('applyFormStatus','申请单状态',1,1);
+insert into sys_dictionary_item values (uuid(),'','applyFormStatus',1,'审核中',1,1,1);
+insert into sys_dictionary_item values (uuid(),'','applyFormStatus',2,'通过',2,1,1);
+insert into sys_dictionary_item values (uuid(),'','applyFormStatus',3,'驳回',3,1,1);

+ 3 - 59
doc/待更新脚本.txt

@@ -1,60 +1,4 @@
----2024-5-30日 购物车mysql脚本
 
-create table cf_apply_form
-(
-    applyId              varchar(50) not null,
-    applyUserId          varchar(50),
-    applyUserName        varchar(50),
-    status               int comment '1、审核中2、审核通过3、驳回',
-    applyDate            datetime comment '申请时间',
-    reason               varchar(300) comment '申请原因',
-    primary key (applyId)
-);
-
-create table cf_apply_form_reviewer
-(
-    reviewerId           varchar(50) not null,
-    applyId              varchar(50),
-    reviewerUserId       varchar(50),
-    reviewerUserName     varchar(50),
-    reviewerAction       int,
-    comments             varchar(300),
-    reviewerDate         datetime,
-    primary key (reviewerId)
-);
-
-alter table cf_apply_form_reviewer add constraint FK_Reference_34 foreign key (applyId)
-    references cf_apply_form (applyId) on delete restrict on update restrict;
-
-create table cf_apply_form_well_file
-(
-    wellFileId           varchar(50) not null,
-    applyId              varchar(50) comment '关联申请单',
-    well_common_name     varchar(200) comment '井',
-    file_name            varchar(200) comment '文件名称',
-    primary key (wellFileId)
-);
-
-alter table cf_apply_form_well_file add constraint FK_Reference_35 foreign key (applyId)
-    references cf_apply_form (applyId) on delete restrict on update restrict;
-
-INSERT INTO sys_function_code (FunctionCode, FunctionName, ParentFunctionCode, OrderNo) VALUES ('T0111', '我的审批', 'T01', 9);
-INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
-VALUES ('T0111', 4, '我的审批', 'MailOutlined', 'views/reviewer', '/reviewer', 'T01', null, 0, 1, 1, 'T0111', 1, null);
-INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
-VALUES ('T011101', 1, '我的审批', '', 'views/reviewerList', '/reviewer/list', 'T0111', null, 0, 0, 1, 'T0111', 1, null);
-
-INSERT INTO sys_function_code (FunctionCode, FunctionName, ParentFunctionCode, OrderNo) VALUES ('T0110', '我的申请', 'T01', 9);
-INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
-VALUES ('T0110', 4, '我的申请', 'FileDoneOutlined', 'views/apply', '/apply', 'T01', null, 0, 1, 1, 'T0110', 1, null);
-INSERT INTO sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
-VALUES ('T011001', 1, '我的申请', '', 'views/applyList', '/apply/list', 'T0110', null, 0, 0, 1, 'T0110', 1, null);
-
-UPDATE sys_menu SET OrderNo=6 WHERE MenuNo='T0108';
-UPDATE sys_menu SET OrderNo=5 WHERE MenuNo='T0109';
-
-
-insert into sys_dictionary value('applyFormStatus','申请单状态',1,1);
-insert into sys_dictionary_item values (uuid(),'','applyFormStatus',1,'审核中',1,1,1);
-insert into sys_dictionary_item values (uuid(),'','applyFormStatus',2,'通过',2,1,1);
-insert into sys_dictionary_item values (uuid(),'','applyFormStatus',3,'驳回',3,1,1);
+---2024-08-09
+insert into smartsearchdb.sys_menu (MenuNo, OrderNo, MenuName, Icon, ViewPath, Url, ParentMenuNo, Description, IsTopMenu, IsVisible, IsLeaf, FunctionCode, RecordStatus, ShortcutIcon)
+values ('T010403', 3, '领域检索井信息', null, 'views/domainWell', '/domain/well', 'T0104', null, 0, 0, 1, 'T0104', 1, null);

+ 8 - 0
src/main/java/com/bowintek/practice/controller/EsQueryController.java

@@ -79,6 +79,14 @@ public class EsQueryController {
                 }});
             }
         }
+        if(!StringUtils.IsNullEmpty(model.getWellId())){
+            limiters.add(new ComparisonResult() {{
+                setValue(model.getWellId());
+                setOpreation("等于");
+                setFields("well_id");
+                setRelation("AND");
+            }});
+        }
         Map<String, Object> results = esQueryService.query(queryList,
                 limiters,
                 model.getPage(),

+ 2 - 10
src/main/java/com/bowintek/practice/services/impl/EsQueryServiceImpl.java

@@ -149,7 +149,6 @@ public class EsQueryServiceImpl implements EsQueryService {
             }
             //[3]限定查询条件,都是有条件的查询
             for (ComparisonResult cmp : limiters) {
-                //List<Query> cmpQuerys = new ArrayList<>();
                 //检查查询、对比的值是否为空
                 if (StringUtils.IsNullEmpty(cmp.getValue())) continue;
 
@@ -163,13 +162,6 @@ public class EsQueryServiceImpl implements EsQueryService {
                 } else {
                     boolQuery.must(getRangeQueryByComparison(cmp));
                 }
-                //第二级,对比搜索
-               /* for (String path : pathList) {
-                    cmpQuerys.addAll(getNestedRangeQueryByComparison(cmp, path));
-                }*/
-                /*if (cmpQuerys.size() > 0) {
-                    queryMustList.addAll(cmpQuerys);
-                }*/
             }
 
             //[4]建立查询参数分析
@@ -186,6 +178,7 @@ public class EsQueryServiceImpl implements EsQueryService {
             }
             Query queryMust = Query.of(q -> q.bool(boolQuery.build()));
 
+            //排序
             if (orderType != null && !StringUtils.IsNullEmpty(orderBy)) {
                 SortOptions.Builder sb = new SortOptions.Builder();
                 sb.field(f -> f.field(orderBy).order(orderType.equals("asc") ? SortOrder.Asc : SortOrder.Desc));
@@ -196,8 +189,7 @@ public class EsQueryServiceImpl implements EsQueryService {
             //==>高亮设置
             searchRequest.highlight(h -> h.fields("*", f -> f.preTags("<font color='red'>")
                     .postTags("</font>")));
-            //排序
-            //searchRequest.sort(f->f.field(v->v.field("well_id").order(SortOrder.Asc)));
+
             //查询后分组
             searchRequest.aggregations("group_well", a -> a.terms(t -> t.field("well_id")));
 

+ 1 - 0
src/main/java/com/bowintek/practice/vo/Analyze/EsQueryModel.java

@@ -14,4 +14,5 @@ public class EsQueryModel {
     private int limit;
     private String orderType;
     private String orderBy;
+    private String wellId;
 }

+ 41 - 42
target/classes/META-INF/MANIFEST.MF

@@ -1,45 +1,44 @@
 Manifest-Version: 1.0
 Main-Class: com.bowintek.practice.PracticeApplication
-Class-Path: spring-beans-5.3.22.jar spring-web-5.3.22.jar poi-ooxml-4.0.
- 0.jar opentelemetry-api-1.29.0.jar aspectjrt-1.9.7.jar druid-spring-boo
- t-starter-1.2.11.jar lucene-core-4.7.2.jar tomcat-embed-el-9.0.65.jar p
- agehelper-5.3.1.jar mysql-connector-java-8.0.29.jar jakarta.json-api-2.
- 0.1.jar mybatis-spring-boot-starter-2.2.2.jar logback-classic-1.2.11.ja
- r spring-boot-starter-web-2.7.2.jar jackson-annotations-2.13.3.jar comm
- ons-collections4-4.2.jar spring-context-support-5.3.22.jar reactive-str
- eams-1.0.4.jar mybatis-spring-boot-autoconfigure-2.2.2.jar spring-webmv
- c-5.3.22.jar spring-data-commons-2.7.2.jar elasticsearch-java-8.11.1.ja
- r pagehelper-spring-boot-starter-1.4.3.jar jsqlparser-4.2.jar netty-tra
- nsport-4.1.79.Final.jar httpclient-4.5.9.jar spring-context-5.3.22.jar 
- commons-lang3-3.5.jar jackson-datatype-jsr310-2.13.3.jar spring-jdbc-5.
- 3.22.jar spring-data-redis-2.7.2.jar spring-tx-5.3.22.jar httpasyncclie
- nt-4.1.5.jar commons-beanutils-1.9.4.jar parsson-1.0.0.jar spring-boot-
- devtools-2.7.2.jar netty-transport-native-unix-common-4.1.79.Final.jar 
- spring-core-5.3.22.jar pagehelper-spring-boot-autoconfigure-1.4.3.jar j
- sr305-3.0.2.jar spring-boot-2.7.2.jar commons-pool2-2.11.1.jar ikanalyz
- er-2012_u6.jar reactor-core-3.4.21.jar spring-data-keyvalue-2.7.2.jar s
- pring-boot-starter-data-redis-2.7.2.jar spring-jcl-5.3.22.jar jakarta.a
- nnotation-api-1.3.5.jar spring-expression-5.3.22.jar opentelemetry-cont
- ext-1.29.0.jar log4j-to-slf4j-2.17.2.jar spring-boot-starter-json-2.7.2
- .jar lucene-sandbox-4.7.2.jar commons-net-3.6.jar java-jwt-3.9.0.jar lo
- g4j-api-2.17.2.jar spring-boot-starter-2.7.2.jar commons-collections-3.
- 2.2.jar httpcore-4.4.15.jar lucene-queryparser-4.7.2.jar aspose-words-1
- 5.8.0-jdk16.jar postgresql-42.3.6.jar lettuce-core-6.1.9.RELEASE.jar to
- mcat-embed-core-9.0.65.jar fastjson-1.2.47.jar netty-common-4.1.79.Fina
- l.jar druid-1.2.11.jar aspectjweaver-1.9.7.jar postgresql-42.3.4.jar ch
- ecker-qual-3.5.0.jar spring-boot-starter-jdbc-2.7.2.jar elasticsearch-r
- est-client-7.17.4.jar spring-aop-5.3.22.jar poi-scratchpad-4.0.0.jar ja
- ckson-databind-2.13.3.jar netty-resolver-4.1.79.Final.jar lucene-querie
- s-4.7.2.jar commons-codec-1.15.jar jackson-core-2.13.3.jar lucene-analy
- zers-common-4.7.2.jar spring-boot-starter-logging-2.7.2.jar netty-handl
- er-4.1.79.Final.jar HikariCP-4.0.3.jar mybatis-3.5.9.jar jul-to-slf4j-1
- .7.36.jar spring-oxm-5.3.22.jar curvesapi-1.04.jar slf4j-api-1.7.36.jar
-  poi-ooxml-schemas-4.0.0.jar jackson-module-parameter-names-2.13.3.jar 
- tomcat-embed-websocket-9.0.65.jar netty-buffer-4.1.79.Final.jar poi-4.0
- .0.jar logback-core-1.2.11.jar lombok-1.18.20.jar commons-compress-1.18
- .jar spring-boot-starter-tomcat-2.7.2.jar jackson-datatype-jdk8-2.13.3.
- jar xmlbeans-3.0.1.jar spring-boot-autoconfigure-2.7.2.jar aspose-cells
- -18.9.jar snakeyaml-1.30.jar commons-logging-1.2.jar mybatis-spring-2.0
- .7.jar json-20190722.jar httpcore-nio-4.4.15.jar netty-codec-4.1.79.Fin
- al.jar
+Class-Path: spring-boot-starter-web-2.7.2.jar tomcat-embed-el-9.0.65.jar
+  commons-codec-1.15.jar jul-to-slf4j-1.7.36.jar postgresql-42.3.6.jar n
+ etty-transport-4.1.79.Final.jar mybatis-spring-boot-starter-2.2.2.jar c
+ ommons-pool2-2.11.1.jar poi-ooxml-schemas-4.0.0.jar mybatis-spring-2.0.
+ 7.jar spring-boot-starter-json-2.7.2.jar spring-beans-5.3.22.jar spring
+ -oxm-5.3.22.jar elasticsearch-java-8.11.1.jar elasticsearch-rest-client
+ -7.17.4.jar spring-jcl-5.3.22.jar lombok-1.18.20.jar spring-data-keyval
+ ue-2.7.2.jar netty-resolver-4.1.79.Final.jar lucene-sandbox-4.7.2.jar n
+ etty-handler-4.1.79.Final.jar curvesapi-1.04.jar commons-beanutils-1.9.
+ 4.jar jackson-datatype-jdk8-2.13.3.jar tomcat-embed-core-9.0.65.jar jak
+ arta.annotation-api-1.3.5.jar spring-boot-devtools-2.7.2.jar netty-code
+ c-4.1.79.Final.jar logback-classic-1.2.11.jar commons-compress-1.18.jar
+  mybatis-3.5.9.jar pagehelper-5.3.1.jar aspectjrt-1.9.7.jar lettuce-cor
+ e-6.1.9.RELEASE.jar druid-1.2.11.jar pagehelper-spring-boot-starter-1.4
+ .3.jar commons-collections4-4.2.jar jackson-datatype-jsr310-2.13.3.jar 
+ spring-expression-5.3.22.jar mysql-connector-java-8.0.29.jar httpcore-4
+ .4.15.jar jackson-module-parameter-names-2.13.3.jar spring-web-5.3.22.j
+ ar lucene-queries-4.7.2.jar fastjson-1.2.47.jar httpasyncclient-4.1.5.j
+ ar spring-context-support-5.3.22.jar aspectjweaver-1.9.7.jar lucene-que
+ ryparser-4.7.2.jar spring-tx-5.3.22.jar spring-boot-starter-jdbc-2.7.2.
+ jar netty-buffer-4.1.79.Final.jar HikariCP-4.0.3.jar spring-core-5.3.22
+ .jar opentelemetry-api-1.29.0.jar spring-data-redis-2.7.2.jar spring-bo
+ ot-starter-logging-2.7.2.jar mybatis-spring-boot-autoconfigure-2.2.2.ja
+ r poi-4.0.0.jar lucene-analyzers-common-4.7.2.jar commons-collections-3
+ .2.2.jar httpclient-4.5.9.jar commons-logging-1.2.jar poi-ooxml-4.0.0.j
+ ar log4j-api-2.17.2.jar jsr305-3.0.2.jar lucene-core-4.7.2.jar spring-b
+ oot-starter-2.7.2.jar spring-jdbc-5.3.22.jar spring-data-commons-2.7.2.
+ jar netty-common-4.1.79.Final.jar commons-net-3.6.jar spring-webmvc-5.3
+ .22.jar ikanalyzer-2012_u6.jar jakarta.json-api-2.0.1.jar druid-spring-
+ boot-starter-1.2.11.jar spring-boot-starter-tomcat-2.7.2.jar checker-qu
+ al-3.5.0.jar httpcore-nio-4.4.15.jar spring-boot-2.7.2.jar jackson-core
+ -2.13.3.jar logback-core-1.2.11.jar log4j-to-slf4j-2.17.2.jar spring-bo
+ ot-starter-data-redis-2.7.2.jar pagehelper-spring-boot-autoconfigure-1.
+ 4.3.jar poi-scratchpad-4.0.0.jar jackson-databind-2.13.3.jar snakeyaml-
+ 1.30.jar slf4j-api-1.7.36.jar spring-boot-autoconfigure-2.7.2.jar netty
+ -transport-native-unix-common-4.1.79.Final.jar aspose-cells-18.9.jar as
+ pose-words-15.8.0-jdk16.jar jsqlparser-4.2.jar parsson-1.0.0.jar xmlbea
+ ns-3.0.1.jar commons-lang3-3.5.jar spring-aop-5.3.22.jar tomcat-embed-w
+ ebsocket-9.0.65.jar spring-context-5.3.22.jar opentelemetry-context-1.2
+ 9.0.jar jackson-annotations-2.13.3.jar java-jwt-3.9.0.jar json-20190722
+ .jar reactive-streams-1.0.4.jar reactor-core-3.4.21.jar
 

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

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div style="margin: auto;width: 500px;">
     <a-space>
       <QueryHistoryComplete v-model:value="formState.defaultKeyString" style="width: 520px"></QueryHistoryComplete>
       <a-button type="primary" html-type="submit" @click="getQuery">查询</a-button>
@@ -16,7 +16,7 @@
       <DoubleLeftOutlined rotate="90"/>
     </template>
   </a-divider>
-  <div v-show="formState.showMoreQuery">
+  <div style="margin: auto;width: 500px;" v-show="formState.showMoreQuery">
     <a-divider orientation="left"><b style="color:#4E61D0">1.输入检索控制条件</b></a-divider>
     <a-row :gutter="24">
       <a-col :span="24">

+ 1 - 0
vue/src/router/asyncModules/sale.ts

@@ -11,6 +11,7 @@ export default {
   'views/wellinfoDetail': () => import( '@/views/wellinfo/detail.vue'),
   'views/domain': () => import( '@/views/esdomain/index.vue'),
   'views/domainResult': () => import( '@/views/esdomain/result.vue'),
+  'views/domainWell': () => import( '@/views/esdomain/well.vue'),
   'views/esindexlist': () => import( '@/views/esindex/index.vue'),
   'views/esindexedit': () => import( '@/views/esindex/edit.vue'),
   'views/esindexdetail': () => import( '@/views/esindex/detail.vue'),

+ 7 - 2
vue/src/views/esdomain/result.vue

@@ -2,7 +2,7 @@
   <div class="card-search">
     <queryCriteria ref="queryRef" :queryObject="queryObject" @query="onQuery"></queryCriteria>
     <a-spin :spinning="pageState.loading">
-      <div class="search-group" :style="{ height: pageState.showMoreKey? '150px':'38px' }">
+      <div class="search-group" :style="{ maxHeight: pageState.showMoreKey? '150px':'38px' }">
         <div class="search-group-title">检索井名:</div>
         <div class="search-group-item">
           <template v-for="it in keyList">
@@ -22,7 +22,7 @@
                   <a-descriptions-item label="生产井段:">{{ wellInfo?.well_production_sections }}</a-descriptions-item>
                 </a-descriptions>
               </template>
-              <span>{{ it.key }}</span>
+              <span @click="redirectWell(it.key)">{{ it.key }}</span>
             </a-popover>
           </template>
         </div>
@@ -205,6 +205,10 @@ export default defineComponent({
     const showWell = (well_id) => {
       tabsViewStore.addTabByPath('/wellinfo/detail', {id: well_id});
     }
+    const redirectWell=(well_id)=>
+    {
+      tabsViewStore.addTabByPath('/domain/well', {id: well_id});
+    }
 
     function onQuery(args) {
       queryObject.value = args;
@@ -267,6 +271,7 @@ export default defineComponent({
       formRef,
       onQuery,
       showWell,
+      redirectWell,
       pageState,
       listData,
       queryRef,

+ 201 - 0
vue/src/views/esdomain/well.vue

@@ -0,0 +1,201 @@
+<template>
+  <div class="card-search">
+    <a-spin :spinning="loading">
+      <div class="well-search-container">
+        <div class="search-body">
+          <template v-for="(it) in dataList">
+            <div>
+              <div class="search-body-title">
+                井名:<span v-html="it.well_common_name"></span>
+                <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="cycleView" :indexSetting="it.indexSetting" :data="it" :key="it.key"></component>
+                <component is="tableView" :indexSetting="it.indexSetting" :data="it" :key="it.key"></component>
+                <component is="chatView" :indexSetting="it.indexSetting" :well_id="it.well_id"
+                           :data="it.dws_dm_analytical_assays_new" :key="it.key"></component>
+                <component is="listView" :indexSetting="it.indexSetting"
+                           :fieldCode="'fact_dwr_brief_history_assignment'" :data="it.fact_dwr_brief_history_assignment"
+                           :key="it.key"></component>
+                <component is="listView" :indexSetting="it.indexSetting" :fieldCode="'fact_dwr_wl_ach_borehole_inter'"
+                           :data="it.fact_dwr_wl_ach_borehole_inter" :key="it.key"></component>
+                <component is="listView" :indexSetting="it.indexSetting" :fieldCode="'dws_dm_analytical_assays_new'"
+                           :data="it.dws_dm_analytical_assays_new" :key="it.key"></component>
+                <component is="docView" :indexSetting="it.indexSetting" :data="it.fact_dwr_well_data_index"
+                           :key="it.key"></component>
+              </div>
+            </div>
+          </template>
+        </div>
+      </div>
+    </a-spin>
+  </div>
+</template>
+
+<script lang="ts">
+import {defineComponent, reactive, ref} from 'vue';
+import {useRoute, useRouter} from "vue-router";
+import type {FormInstance} from "ant-design-vue";
+import tableView from '@/components/basic/es-result/table-view.vue';
+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 QueryHistoryComplete from '@/components/basic/querylog/history-complete.vue'
+
+export default defineComponent({
+  name: 'esdomainWell',
+  components: {tableView, listView, chatView, docView, cycleView, queryCriteria, QueryHistoryComplete},
+  setup() {
+
+    const route = useRoute();
+    const router = useRouter();
+    const formRef = ref<FormInstance>();
+    const tabsViewStore = useTabsViewStore();
+    const dataList = ref<any>([]);
+    const indexList = ref<any>([]);
+    const keyList = ref<any>([]);
+    const loading = ref(false);
+    const formState = reactive({
+      page: 1, rows: 10, subjectName: '', tabName: '', tabCode: null, total: 0
+    });
+    const displayType = ['cycleView', 'tableView', 'listView', 'chatView', 'docView'];
+    const queryObject = ref();
+
+    const getIndex = async () => {
+      const result = await get('esindex/getAllList', {});
+      indexList.value = result;
+    }
+    const showWell = (well_id) => {
+      tabsViewStore.addTabByPath('/wellinfo/detail', {id: well_id});
+    }
+
+    function loadData() {
+      queryObject.value.page = 0;
+      queryObject.value.limit = 1;
+
+      loading.value = true;
+      postData('esquery/Query', queryObject.value).then(result => {
+        loading.value = false;
+        console.log(result);
+        dataList.value = (result as any).rows;
+
+        keyList.value = (result as any).agg;
+        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 wellInfo = ref();
+
+    function onVisible(visible, key) {
+      if (visible) {
+        get('wellInfo/getWellBaseInfo', {well_id: key}).then(data => {
+          wellInfo.value = data;
+        })
+      }
+    }
+
+    return {
+      router,
+      route,
+      formState,
+      formRef,
+      showWell,
+      loadData,
+      dataList,
+      getIndex,
+      keyList, onVisible, wellInfo, loading,tabsViewStore,
+      queryObject
+    };
+  },
+  created() {
+    this.getIndex().then(() => {
+      const id = history.state.params?.id;
+      if(id==null){
+        this.tabsViewStore.closeCurrentTab(this.route);
+        this.router.back();
+      }else{
+        this.queryObject = {wellId: id, queryList: [],limiters:[]};
+        this.loadData();
+      }
+    });
+  }
+});
+</script>
+
+<style lang="less">
+
+
+.well-search-container {
+  display: flex;
+
+  .search-body {
+    width: 100%;
+    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;
+      justify-content: flex-end;
+
+      div {
+        display: flex;
+        margin-right: 10px;
+      }
+
+      .search-order-icon {
+        width: 15px;
+        height: 15px;
+        display: flex;
+        flex-wrap: wrap;
+
+        span {
+          height: 9px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
+</style>