Browse Source

数据探查修改

Rgx 6 months ago
parent
commit
156b25c974

+ 35 - 25
src/views/modules/snoop/home.vue

@@ -10,17 +10,17 @@
     <el-form :inline="true" :model="dataForm" @keyup.enter.native="getMeasureOrJobList">
       <el-form-item>
         <el-button v-if="isAuth('snoop:save')" type="primary" @click="addHandle()">新建探测</el-button>
-        <el-button v-if="isAuth('snoop:delete')" type="danger" @click="measureAndJobDelete()"
-                   :disabled="dataListSelections.length <= 0">批量删除
-        </el-button>
-      </el-form-item>
-      <el-form-item>
-        <el-input v-model="dataForm.algorithmName" :placeholder="classificationtag=='度量'?'请输入度量名称':'请输入任务名称' " clearable
-                  @keyup.enter.native="pageIndex = 1;getMeasureList()"></el-input>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="pageIndex = 1;getMeasureList()">查询</el-button>
+<!--        <el-button v-if="isAuth('snoop:delete')" type="danger" @click="measureAndJobDelete()"-->
+<!--                   :disabled="dataListSelections.length <= 0">批量删除-->
+<!--        </el-button>-->
       </el-form-item>
+<!--      <el-form-item>-->
+<!--        <el-input v-model="dataForm.algorithmName" :placeholder="classificationtag=='度量'?'请输入度量名称':'请输入任务名称' " clearable-->
+<!--                  @keyup.enter.native="pageIndex = 1;getMeasureList()"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item>-->
+<!--        <el-button @click="pageIndex = 1;getMeasureList()">查询</el-button>-->
+<!--      </el-form-item>-->
       <el-form-item>
         <el-tag>筛选:</el-tag>
         <el-select v-model="classificationtag" placeholder="类别" size="mini" style="width: 130px;"
@@ -53,8 +53,8 @@
         </el-table-column>
         <el-table-column fixed="right" header-align="center" align="center" width="250" label="操作">
           <template slot-scope="scope">
-            <el-button type="text" size="small"  v-if="isAuth('snoop:measure:look')" @click="userwatch(scope.row)">查看</el-button>
-            <el-button type="text" size="small"  v-if="isAuth('snoop:delete')"  @click="measureDeleteHandle(scope.row)">删除</el-button>
+            <el-button type="text" size="small"  @click="userwatch(scope.row)">查看结果</el-button>
+            <el-button type="text" size="small"  @click="measureDeleteHandle(scope.row)">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -170,7 +170,7 @@ export default {
       jobLoghVisible: false,
       jobResVisible: false,
       classificationtag: '',
-      classification: ['度量', '任务']
+      classification: ['度量']
     }
   },
   components: {
@@ -236,20 +236,28 @@ export default {
       // ]
       this.$http({
         // url: '"http://lab2:8099/api/v1/measures/owner/' + this.userName,
-        url: this.$http.adornUrl('/v1/measures/owner/') + this.userName,
-        methods: 'get'
-      }).then((datas) => {
+        url: this.$http.adornUrl('/snoop/list'),
+        methods: 'get',
+        params: this.$http.adornParams({
+          currentUserId: this.userID,
+          page: this.pageIndex,
+          limit: this.pageSize,
+          datasetName: this.dataForm.datasetName
+        })
+      }).then((data) => {
         this.measureListAll = []
         this.measureList = []
-        if (datas && datas.status === 200) {
-          var res = datas.data.reverse()
-          // console.log(res)
+        console.log('----------123-------')
+        console.log(data)
+        if (data && data.data.code === 0) {
+          var res = data.data.page.list
+          console.log(res)
           res.map((info) => {
             var measure = {
               'measureID': info['id'],
-              'measureName': info['name'],
-              'measureType': info['dq.type'],
-              'remark': info['description']
+              'measureName': info['snoopName'],
+              'measureType': info['snoopType'],
+              'remark': info['remark']
             }
             this.measureListAll.push(measure)
           })
@@ -480,8 +488,10 @@ export default {
     // ********** 删除
     measureDeleteHandle (info) {
       this.measDataListLoading = true
+      console.log('info:', info)
+      console.log('info.measureID:', info.measureID)
       MessageBox.confirm(
-        `确定对[${info.measureName}]进行[删除]操作? 删除后,对应job也会被删除`,
+        `确定对[${info.measureName}]进行[删除]操作?`,
         '提示',
         {
           confirmButtonText: '确定',
@@ -491,8 +501,8 @@ export default {
       )
         .then(() => {
           this.$http({
-            url: this.$http.adornUrl('/v1/measures/') + info.measureID,
-            method: 'delete'
+            url: this.$http.adornUrl('/snoop/delete/' + info.measureID),
+            method: 'post',
           }).then(({data}) => {
             if (!data.data) {
               Message({

+ 973 - 873
src/views/modules/snoop/measure.vue

@@ -7,956 +7,1056 @@
       <el-breadcrumb-item>创建度量标准</el-breadcrumb-item>
     </el-breadcrumb>
     <el-divider class="divi"></el-divider>
-   <div v-loading="loading">
-    <el-steps :active="active" align-center finish-status="success" style="margin: 50px 20px 0px 10px;">
-      <el-step title="选择目标" description="选择需要度量的目标数据集字段"></el-step>
-      <el-step title="定义/选择模型" description="定义将应用于所选字段的语法检查逻辑"></el-step>
-      <el-step title="分区配置" description="设置目标数据集的分区配置"></el-step>
-      <el-step title="完成" description="设置模型的基本配置"></el-step>
-    </el-steps>
-    <div style=" margin: 10px 120px 0px 166px;height: 420px;">
-      <el-row :gutter="50">
-        <div v-if="active == 0">
-          <el-col :span="8" style="height: 100% ">
-            <h4>1.1 选择数据源</h4>
-            <div style="height: 360px;border: 1px solid rgb(0, 0, 0);overflow: scroll; ">
-              <div style="margin: 10px;"> <!-- 控制左边树形区域的下方的div -->
-                <el-tree
-                  v-if="showTree"
-                  id='tree'
-                  node-key="subEquipmentid"
-                  :props="defaultProps"
-                  ref="tree"
-                  :load="loadTreeNode"
-                  lazy
-                  @node-click="treeNodeClick">
+    <div v-loading="loading">
+      <el-steps :active="active" align-center finish-status="success" style="margin: 50px 20px 0px 10px;">
+        <el-step title="选择目标" description="选择需要度量的目标数据集字段"></el-step>
+        <el-step title="定义/选择模型" description="定义将应用于所选字段的语法检查逻辑"></el-step>
+        <el-step title="分区配置" description="设置目标数据集的分区配置"></el-step>
+        <el-step title="完成" description="设置模型的基本配置"></el-step>
+      </el-steps>
+      <div style=" margin: 10px 120px 0px 166px;height: 420px;">
+        <el-row :gutter="50">
+          <div v-if="active == 0">
+            <el-col :span="8" style="height: 100% ">
+              <h4>1.1 选择数据源</h4>
+              <div style="height: 360px;border: 1px solid rgb(0, 0, 0);overflow: scroll; ">
+                <div style="margin: 10px;"> <!-- 控制左边树形区域的下方的div -->
+                  <el-tree
+                    v-if="showTree"
+                    id='tree'
+                    node-key="subEquipmentid"
+                    :props="defaultProps"
+                    ref="tree"
+                    :load="loadTreeNode"
+                    lazy
+                    @node-click="treeNodeClick">
                 <span class="custom-tree-node" slot-scope="{ node, data }">
                   <span>
                       <i :class="data.icon" style="margin-right: 4px"></i>{{ node.label }}
                   </span>
                </span>
-                </el-tree>
+                  </el-tree>
+                </div>
               </div>
-            </div>
-          </el-col>
-          <el-col :span="16" style="height: 100%">
-            <h4>1.2 选择字段</h4>
-            <div style="height: 360px;border: 1px solid rgb(0, 0, 0) ;padding: 10px;    overflow: auto;">
-              <el-table
-                ref="multipleTable"
-                :data="tableData"
-                tooltip-effect="dark"
-                style="width: 100%"
-                @selection-change="handleSelectionChange">
-                <el-table-column
-                  type="selection"
-                  width="55">
-                </el-table-column>
-                <el-table-column
-                  prop="colname"
-                  label="列名"
-                  width="120">
-                </el-table-column>
-                <el-table-column
-                  prop="type"
-                  label="类型"
-                  width="120">
-                </el-table-column>
-                <el-table-column
-                  prop="comment"
-                  label="备注"
-                  show-overflow-tooltip>
-                </el-table-column>
-              </el-table>
-            </div>
-          </el-col>
-        </div>
-
-        <div v-if="active == 1">
-          <el-col :span="16" style="height: 100%;margin-left: 160px;">
-            <h4>2. 请选择下列其中一种分析模式 :</h4>
-            <div style="height: 360px;border: 1px solid rgb(0, 0, 0) ;padding: 10px;overflow-scrolling: auto">
-              <el-table
-                :data="goal_info.chooseCloum"
-                style="width: 100%">
-                <el-table-column prop="colname" label="列名" width="120"></el-table-column>
-                <el-table-column prop="type" label="类型" width="120"></el-table-column>
-                <el-table-column prop="comment" label="rule" show-overflow-tooltip>
-                  <template slot="header" slot-scope="scope">
-                    <span>rule</span>
-                    <i class="el-icon-info"
-                       :class="isShowRules"
-                       @mouseover="isShowRules.showRules = true"
-                       @mouseleave="isShowRules.showRules = false"
-                       @click="showrule"
-                    ></i>
-                  </template>
-
-<!--                  <template slot="header">-->
+            </el-col>
+            <el-col :span="16" style="height: 100%">
+              <h4>1.2 选择字段</h4>
+              <div style="height: 360px;border: 1px solid rgb(0, 0, 0) ;padding: 10px;    overflow: auto;">
+                <el-table
+                  ref="multipleTable"
+                  :data="tableData"
+                  tooltip-effect="dark"
+                  style="width: 100%"
+                  @selection-change="handleSelectionChange">
+                  <el-table-column
+                    type="selection"
+                    width="55">
+                  </el-table-column>
+                  <el-table-column
+                    prop="colname"
+                    label="列名"
+                    width="120">
+                  </el-table-column>
+                  <el-table-column
+                    prop="type"
+                    label="字段名"
+                    width="280">
+                  </el-table-column>
+                  <el-table-column
+                    prop="comment"
+                    label="创建时间"
+                    show-overflow-tooltip>
+                  </el-table-column>
+                </el-table>
+              </div>
+            </el-col>
+          </div>
 
-<!--                    <i class="el-icon-info"-->
-<!--                       @mouseover="isShowRules.showRules = true"-->
-<!--                       @mouseleave="isShowRules.showRules = false"-->
-<!--                       @click="showrule"></i>-->
-<!--                  </template>-->
+          <div v-if="active == 1">
+            <el-col :span="16" style="height: 100%;margin-left: 160px;">
+              <h4>2. 请选择下列其中一种分析模式 :</h4>
+              <div style="height: 360px;border: 1px solid rgb(0, 0, 0) ;padding: 10px;overflow-scrolling: auto">
+                <el-table
+                  :data="goal_info.chooseCloum"
+                  style="width: 100%">
+                  <el-table-column prop="colname" label="列名" width="120"></el-table-column>
+                  <el-table-column prop="type" label="字段名" width="260"></el-table-column>
+                  <el-table-column prop="comment" label="rule" show-overflow-tooltip>
+<!--                    图标-->
+                    <template slot="header" slot-scope="scope">
+                      <span>rule</span>
+                      <i class="el-icon-info"
+                         :class="isShowRules"
+                         @mouseover="isShowRules.showRules = true"
+                         @mouseleave="isShowRules.showRules = false"
+                         @click="showrule"
+                      ></i>
+                    </template>
+                    <template slot-scope="scope" style="width: 80%">
+                      <el-select
+                        v-model="scope.row.rule"
+                        filterable
+                        style="width: 80%"
+                        placeholder="请选择">
+                        <el-option-group
+                          v-for="group in scope.row.dropdownList"
+                          :key="group.label"
+                          :label="group.label"
 
-                  <template slot-scope="scope" style="width: 80%">
-                    <!--                                        <el-button type="text" size="small" @click="userwatch(scope)">查看-->
-                    <!--                                        </el-button>-->
+                        >
+                          <el-option
+                            v-for="item in group.options"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                          </el-option>
+                        </el-option-group>
 
-                    <el-select
-                      v-model="scope.row.rule"
-                      multiple
-                      filterable
-                      style="width: 80%"
-                      placeholder="请选择">
-                      <el-option-group
-                        v-for="group in scope.row.dropdownList"
-                        :key="group.label"
-                        :label="group.label"
+                      </el-select>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </div>
+            </el-col>
+          </div>
 
-                      >
-                        <el-option
-                          v-for="item in group.options"
-                          :key="item.value"
-                          :label="item.label"
-                          :value="item.value">
-                        </el-option>
-                      </el-option-group>
+          <div v-if="active == 2">
+            <el-col :span="16" style="height: 100%;margin-left: 160px;">
+              <h4>3. 配置信息 :</h4>
+              <div style="height: 360px;overflow-scrolling: auto">
+                <h5>度量配置 : </h5>
+                <el-form ref="form" :model="datacForm" label-width="100px" :rules="rules">
+                  <el-form-item label="度量名称 :" prop="name">
+                    <el-input v-model="datacForm.name"></el-input>
+                  </el-form-item>
+                  <el-form-item label="度量描述 :">
+                    <el-input v-model="datacForm.description" onkeyup="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')"></el-input>
+                  </el-form-item>
 
+                  <h5>数据源配置 : </h5>
+<!--                  <el-form-item label="查询条件 :">-->
+<!--                    <el-input v-model="datacForm.where"></el-input>-->
+<!--                  </el-form-item>-->
+                  <el-form-item label="分区大小 :">
+                    <el-input-number v-model="datacForm.num" controls-position="right" :min="0"></el-input-number>
+                    <el-select v-model="datacForm.timetype" placeholder="请选择">
+                      <el-option label="day" value="day"></el-option>
+                      <el-option label="hour" value="hour"></el-option>
+                      <el-option label="minute" value="minute"></el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item label="时 区 :">
+                    <el-select v-model="datacForm.timezone" placeholder="请选择">
+                      <el-option
+                        v-for="item in timezones"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                      </el-option>
                     </el-select>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </div>
-          </el-col>
-        </div>
-
-        <div v-if="active == 2">
-          <el-col :span="16" style="height: 100%;margin-left: 160px;">
-            <h4>3. 配置信息 :</h4>
-            <div style="height: 360px;overflow-scrolling: auto">
-              <h5>度量配置 : </h5>
-              <el-form ref="form" :model="datacForm" label-width="100px" :rules="rules">
-                <el-form-item label="度量名称 :" prop="name">
-                  <el-input v-model="datacForm.name"></el-input>
-                </el-form-item>
-                <el-form-item label="度量描述 :">
-                  <el-input v-model="datacForm.description" onkeyup="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')"></el-input>
-                </el-form-item>
-
-                <h5>数据源配置 : </h5>
-                <el-form-item label="查询条件 :">
-                  <el-input v-model="datacForm.where"></el-input>
-                </el-form-item>
-                <el-form-item label="分区大小 :">
-                  <el-input-number v-model="datacForm.num" controls-position="right" :min="0"></el-input-number>
-                  <el-select v-model="datacForm.timetype" placeholder="请选择">
-                    <el-option label="day" value="day"></el-option>
-                    <el-option label="hour" value="hour"></el-option>
-                    <el-option label="minute" value="minute"></el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="时 区 :">
-                  <el-select v-model="datacForm.timezone" placeholder="请选择">
-                    <el-option
-                      v-for="item in timezones"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value">
-                    </el-option>
-                  </el-select>
 
-                </el-form-item>
-              </el-form>
-            </div>
-          </el-col>
-        </div>
+                  </el-form-item>
+                </el-form>
+              </div>
+            </el-col>
+          </div>
 
-        <div v-if="active == 3">
-          <el-col :span="16" style="height: 100%;margin-left: 160px;">
-            <h4>4. 信息校对 :</h4>
-            <div style="height: 360px;overflow-scrolling: auto">
+          <div v-if="active == 3">
+            <el-col :span="16" style="height: 100%;margin-left: 160px;">
+              <h4>4. 信息校对 :</h4>
+              <div style="height: 360px;overflow-scrolling: auto">
 
-              <el-form ref="measureform" :model="goal_info" label-width="100px" :rules="rules">
-                <el-form-item label="度量名称 :" prop="name">
-                  <!--                  <el-input v-model="goal_info.config.name"></el-input>-->
-                  <span>{{ goal_info.config.name }}</span>
-                </el-form-item>
-                <el-form-item label="度量描述 :">
-                  <span>{{ goal_info.config.description }}</span>
-                  <!--                  <el-input v-model="goal_info.config.description"></el-input>-->
-                </el-form-item>
-                <el-form-item label="数据源 :">
-                  <span>{{ goal_info.equipment.name }}</span>
-                  <!--                  <el-input v-model="goal_info.equipment.name"></el-input>-->
-                </el-form-item>
-                <!--                <el-form-item label="查询条件 :">-->
-                <!--                  <span>{{goal_info.config.where}}</span>-->
-                <!--&lt;!&ndash;                  <el-input v-model="goal_info.config.where"></el-input>&ndash;&gt;-->
-                <!--                </el-form-item>-->
-                                <el-form-item label="分区信息 :">
-                                  <span>{{goal_info.config.num  + "  " + goal_info.config.timetype + " " + goal_info.config.timezone}}</span>
-<!--                                  <el-input v-model="goal_info.config.num" >{{goal_info.config.num + goal_info.config.timetype}}</el-input>-->
-<!--                                  <el-input v-model="goal_info.config.timezone"></el-input>-->
-                                </el-form-item>
-                <el-form-item label="度量规则 :">
-                  <!--                  <el-input-number v-model="datacForm.num" controls-position="right" :min="0"></el-input-number>-->
-                  <div style="height: 100px;overflow: auto">
-                    <template v-for="rule in  goal_info.chooseCloum">
-                      <li>{{ rule.colname }} : {{ rule.rule }}</li>
-                    </template>
+                <el-form ref="measureform" :model="goal_info" label-width="100px" :rules="rules">
+                  <el-form-item label="度量名称 :" prop="name">
+                    <!--                  <el-input v-model="goal_info.config.name"></el-input>-->
+                    <span>{{ goal_info.config.name }}</span>
+                  </el-form-item>
+                  <el-form-item label="度量描述 :">
+                    <span>{{ goal_info.config.description }}</span>
+                    <!--                  <el-input v-model="goal_info.config.description"></el-input>-->
+                  </el-form-item>
+                  <el-form-item label="数据源 :">
+                    <span>{{ goal_info.equipment.name }}</span>
+                    <!--                  <el-input v-model="goal_info.equipment.name"></el-input>-->
+                  </el-form-item>
+                  <!--                <el-form-item label="查询条件 :">-->
+                  <!--                  <span>{{goal_info.config.where}}</span>-->
+                  <!--&lt;!&ndash;                  <el-input v-model="goal_info.config.where"></el-input>&ndash;&gt;-->
+                  <!--                </el-form-item>-->
+                  <el-form-item label="分区信息 :">
+                    <span>{{goal_info.config.num  + "  " + goal_info.config.timetype + " " + goal_info.config.timezone}}</span>
+                    <!--                                  <el-input v-model="goal_info.config.num" >{{goal_info.config.num + goal_info.config.timetype}}</el-input>-->
+                    <!--                                  <el-input v-model="goal_info.config.timezone"></el-input>-->
+                  </el-form-item>
+                  <el-form-item label="度量规则 :">
+                    <!--                  <el-input-number v-model="datacForm.num" controls-position="right" :min="0"></el-input-number>-->
+                    <div style="height: 100px;overflow: auto">
+                      <template v-for="rule in  goal_info.chooseCloum">
+                        <li>{{ rule.colname }} : {{ rule.rule }}</li>
+                      </template>
 
-                    <!--    <template v-for="rule in  timezones" >-->
-                    <!--      <li>{{rule.label}} : {{rule.value}}</li>-->
-                    <!--    </template>-->
-                  </div>
-                </el-form-item>
-              </el-form>
-            </div>
-          </el-col>
-        </div>
-      </el-row>
+                      <!--    <template v-for="rule in  timezones" >-->
+                      <!--      <li>{{rule.label}} : {{rule.value}}</li>-->
+                      <!--    </template>-->
+                    </div>
+                  </el-form-item>
+                </el-form>
+              </div>
+            </el-col>
+          </div>
+        </el-row>
 
 
+      </div>
+      <el-form :inline="true">
+        <el-form-item style="float:left">
+          <el-button type="primary" @click="preStey()" :disabled = bottonDisable.pre>上一步</el-button>
+        </el-form-item>
+        <el-form-item style="float:right">
+          <el-button v-if="!buttonFinish" ref="buttonFinish" type="primary" @click="next()" :disabled = bottonDisable.next>下一步</el-button>
+          <el-button v-if="buttonFinish" type="primary" @click="submitForm()" >完成</el-button>
+        </el-form-item>
+      </el-form>
     </div>
-    <el-form :inline="true">
-      <el-form-item style="float:left">
-        <el-button type="primary" @click="preStey()" :disabled = bottonDisable.pre>上一步</el-button>
-      </el-form-item>
-      <el-form-item style="float:right">
-        <el-button v-if="!buttonFinish" ref="buttonFinish" type="primary" @click="next()" :disabled = bottonDisable.next>下一步</el-button>
-        <el-button v-if="buttonFinish" type="primary" @click="submitForm()" >完成</el-button>
-      </el-form-item>
-    </el-form>
-   </div>
     <show-rules v-if="isShowRulesDrog" ref="ShowRulesDrogref"></show-rules>
   </div>
 </template>
 
 <script>
-// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
-// 例如:import 《组件名称》 from '《组件路径》';
-import showRules from './showRules'
-import { MessageBox } from 'element-ui'
-import { Message } from 'element-ui'
+  // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+  // 例如:import 《组件名称》 from '《组件路径》';
+  import showRules from './showRules'
+  import { MessageBox } from 'element-ui'
+  import { Message } from 'element-ui'
 
-export default {
-  created () {
+  export default {
+    created () {
 
-  },
-  components: {
-    showRules
-  },
-  data () {
-    return {
-      value: [],
-      loading: false,
-      showTree: true,
-      visible: false,
-      chooseEqpment: '',
-      active: 0,
-      goal_info: {},
-      hiveTable: '',
-      userID: this.$store.state.user.id, // 用户编号
-      // userName: this.$store.state.user.name, // 用户编号
-      userName: 'test', // 用户编号
-      submit: false,
-      isShowRules: {
-        showRules: false
-      },
+    },
+    components: {
+      showRules
+    },
+    data () {
+      return {
+        value: [],
+        loading: false,
+        showTree: true,
+        visible: false,
+        chooseEqpment: '',
+        active: 0,
+        goal_info: {},
+        hiveTable: '',
+        userID: this.$store.state.user.id, // 用户编号
+        // userName: this.$store.state.user.name, // 用户编号
+        userName: 'test', // 用户编号
+        submit: false,
+        isShowRules: {
+          showRules: false
+        },
 
-      transrule: [],
-      transenumrule: [],
-      transnullrule: [],
-      transregexrule: [],
-      newMeasure: {},
-      rulesDesc: [],
+        transrule: [],
+        transenumrule: [],
+        transnullrule: [],
+        transregexrule: [],
+        newMeasure: {},
+        rulesDesc: [],
 
-      buttonFinish: false,
-      bottonDisable: {
-        pre: true,
-        next: true
-      },
-      rules: {
-        name: [
-          {required: true, message: '请输入度量名称', trigger: 'blur'},
-          {min: 3, max: 18, message: '长度在 3 到 18 个字符', trigger: 'blur'}
-        ]
-      },
-      isShowRulesDrog: false,
-      datacForm: {
-        name: '',
-        description: '',
-        where: '',
-        timezone: '',
-        num: 1,
-        timetype: 'day',
-        needpath: false,
-        path: ''
-      },
-      options_int: [{
-        label: 'Simple Statistics',
-        options: [{
-          id: 1,
-          value: 'Null Count',
-          label: 'Null Count'
-        }, {
-          id: 2,
-          value: 'Distinct Count',
-          label: 'Distinct Count'
-        }]
-      }, {
-        label: 'Summary Statistics',
-        options: [{
-          id: 3,
-          value: 'Total Count',
-          label: 'Total Count'
+        buttonFinish: false,
+        bottonDisable: {
+          pre: true,
+          next: true
+        },
+        rules: {
+          name: [
+            {required: true, message: '请输入度量名称', trigger: 'blur'},
+            {min: 3, max: 18, message: '长度在 3 到 18 个字符', trigger: 'blur'}
+          ]
+        },
+        isShowRulesDrog: false,
+        datacForm: {
+          name: '',
+          description: '',
+          where: '',
+          timezone: '',
+          num: 1,
+          timetype: 'day',
+          needpath: false,
+          path: ''
+        },
+        options_int: [{
+          label: 'Simple Statistics',
+          options: [{
+            id: 1,
+            value: 'Null Count',
+            label: 'Null Count'
+          }]
         }, {
-          id: 4,
-          value: 'Maximum',
-          label: 'Maximum'
+          label: 'Summary Statistics',
+          options: [{
+            id: 3,
+            value: 'Total Count',
+            label: 'Total Count'
+          }, {
+            id: 4,
+            value: 'Maximum',
+            label: 'Maximum'
+          }, {
+            id: 5,
+            value: 'Minimum',
+            label: 'Minimum'
+          }, {
+            id: 6,
+            value: 'Average',
+            label: 'Average'
+          }]
         }, {
-          id: 5,
-          value: 'Minimum',
-          label: 'Minimum'
+          label: 'Advanced Statistics',
+          options: [{
+            id: 7,
+            value: 'Mode',
+            label: 'Mode'
+          }]
+        }
+        ],
+        options_str: [{
+          label: 'Simple Statistics',
+          options: [{
+            id: 1,
+            value: 'Null Count',
+            label: 'Null Count'
+          }]
         }, {
-          id: 6,
-          value: 'Average',
-          label: 'Average'
-        }]
-      }, {
-        label: 'Advanced Statistics',
-        options: [{
-          id: 7,
-          value: 'Enum Detection Top10 Count',
-          label: 'Enum Detection Top10 Count'
-        }]
-      }
-      ],
-      options_str: [{
-        label: 'Simple Statistics',
-        options: [{
-          id: 1,
-          value: 'Null Count',
-          label: 'Null Count'
+          label: 'Summary Statistics',
+          options: [{
+            id: 3,
+            value: 'Total Count',
+            label: 'Total Count'
+          }, {
+            id: 4,
+            value: 'Maximum',
+            label: 'Maximum'
+          }, {
+            id: 5,
+            value: 'Minimum',
+            label: 'Minimum'
+          }, {
+            id: 6,
+            value: 'Average',
+            label: 'Average'
+          }]
         }, {
-          id: 2,
-          value: 'Distinct Count',
-          label: 'Distinct Count'
-        }]
-      }, {
-        label: 'Summary Statistics',
-        options: [{
-          id: 3,
-          value: 'Total Count',
-          label: 'Total Count'
-        }]
-      }, {
-        label: 'Advanced Statistics',
-        options: [{
-          id: 9,
-          value: 'Enum Detection Top10 Count',
-          label: 'Enum Detection Top10 Count'
-        }]
-      }
-      ],
-      treedata: [{ // 左侧默认树数据'
-        icon: 'el-icon-success',
-        name: '煤矿',
-        limit: '',
-        children: [{
-          name: '系统',
+          label: 'Advanced Statistics',
+          options: [{
+            id: 7,
+            value: 'Mode',
+            label: 'Mode'
+          }]
+        }
+        ],
+        treedata: [{ // 左侧默认树数据'
+          icon: 'el-icon-success',
+          name: '煤矿',
           limit: '',
           children: [{
-            name: '系统',
+            name: '系统',
             limit: '',
             children: [{
-              name: '设备',
+              name: '子系统',
               limit: '',
               children: [{
+                name: '设备',
+                limit: '',
+                children: [{
 
-                name: '子设备',
-                limit: ''
+                  name: '子设备',
+                  limit: ''
+                }]
               }]
             }]
           }]
-        }]
-      }, {
-        name: '系统666',
-        limit: '',
-        children: [{
-          name: '设备2',
-          limit: ''
-        }]
-      }],
-      defaultProps: {
-        children: 'children',
-        label: 'name',
-        isLeaf: 'leaf'
-      },
-      tableData: [],
-      timezones: [
-        {label: 'UTC-12(IDL)', value: 'GMT-12'},
-        {label: 'UTC-11(MIT)', value: 'GMT-11'},
-        {label: 'UTC-10(HST)', value: 'GMT-10'},
-        {label: 'UTC-9:30(MSIT)', value: 'GMT-9:30'},
-        {label: 'UTC-9(AKST)', value: 'GMT-9'},
-        {label: 'UTC-8(PST)', value: 'GMT-8'},
-        {label: 'UTC-7(MST)', value: 'GMT-7'},
-        {label: 'UTC-6(CST)', value: 'GMT-6'},
-        {label: 'UTC-5(EST)', value: 'GMT-5'},
-        {label: 'UTC-4(AST)', value: 'GMT-4'},
-        {label: 'UTC-3:30(NST)', value: 'GMT-3:30'},
-        {label: 'UTC-3(SAT)', value: 'GMT-3'},
-        {label: 'UTC-2(BRT)', value: 'GMT-2'},
-        {label: 'UTC-1(CVT)', value: 'GMT-1'},
-        {label: 'UTC(WET,GMT)', value: 'GMT'},
-        {label: 'UTC+1(CET)', value: 'GMT+1'},
-        {label: 'UTC+2(EET)', value: 'GMT+2'},
-        {label: 'UTC+3(MSK)', value: 'GMT+3'},
-        {label: 'UTC+3:30(IRT)', value: 'GMT+3:30'},
-        {label: 'UTC+4(META)', value: 'GMT+4'},
-        {label: 'UTC+4:30(AFT)', value: 'GMT+4:30'},
-        {label: 'UTC+5(METB)', value: 'GMT+5'},
-        {label: 'UTC+5:30(IDT)', value: 'GMT+5:30'},
-        {label: 'UTC+5:45(NPT)', value: 'GMT+5:45'},
-        {label: 'UTC+6(BHT)', value: 'GMT+6'},
-        {label: 'UTC+6:30(MRT)', value: 'GMT+6:30'},
-        {label: 'UTC+7(IST)', value: 'GMT+7'},
-        {label: 'UTC+8(EAT)', value: 'GMT+8'},
-        {label: 'UTC+8:30(KRT)', value: 'GMT+8:30'},
-        {label: 'UTC+9(FET)', value: 'GMT+9'},
-        {label: 'UTC+9:30(ACST)', value: 'GMT+9:30'},
-        {label: 'UTC+10(AEST)', value: 'GMT+10'},
-        {label: 'UTC+10:30(FAST)', value: 'GMT+10:30'},
-        {label: 'UTC+11(VTT)', value: 'GMT+11'},
-        {label: 'UTC+11:30(NFT)', value: 'GMT+11:30'},
-        {label: 'UTC+12(PSTB)', value: 'GMT+12'},
-        {label: 'UTC+12:45(CIT)', value: 'GMT+12:45'},
-        {label: 'UTC+13(PSTC)', value: 'GMT+13'},
-        {label: 'UTC+14(PSTD)', value: 'GMT+14'}
-      ]
-
-    }
-  },
-  methods: {
+        }, {
+          name: '系统666',
+          limit: '',
+          children: [{
+            name: '设备2',
+            limit: ''
+          }]
+        }],
+        defaultProps: {
+          children: 'children',
+          label: 'name',
+          isLeaf: 'leaf'
+        },
+        tableData: [],
+        columnRule: [],
+        timezones: [
+          {label: 'UTC-12(IDL)', value: 'GMT-12'},
+          {label: 'UTC-11(MIT)', value: 'GMT-11'},
+          {label: 'UTC-10(HST)', value: 'GMT-10'},
+          {label: 'UTC-9:30(MSIT)', value: 'GMT-9:30'},
+          {label: 'UTC-9(AKST)', value: 'GMT-9'},
+          {label: 'UTC-8(PST)', value: 'GMT-8'},
+          {label: 'UTC-7(MST)', value: 'GMT-7'},
+          {label: 'UTC-6(CST)', value: 'GMT-6'},
+          {label: 'UTC-5(EST)', value: 'GMT-5'},
+          {label: 'UTC-4(AST)', value: 'GMT-4'},
+          {label: 'UTC-3:30(NST)', value: 'GMT-3:30'},
+          {label: 'UTC-3(SAT)', value: 'GMT-3'},
+          {label: 'UTC-2(BRT)', value: 'GMT-2'},
+          {label: 'UTC-1(CVT)', value: 'GMT-1'},
+          {label: 'UTC(WET,GMT)', value: 'GMT'},
+          {label: 'UTC+1(CET)', value: 'GMT+1'},
+          {label: 'UTC+2(EET)', value: 'GMT+2'},
+          {label: 'UTC+3(MSK)', value: 'GMT+3'},
+          {label: 'UTC+3:30(IRT)', value: 'GMT+3:30'},
+          {label: 'UTC+4(META)', value: 'GMT+4'},
+          {label: 'UTC+4:30(AFT)', value: 'GMT+4:30'},
+          {label: 'UTC+5(METB)', value: 'GMT+5'},
+          {label: 'UTC+5:30(IDT)', value: 'GMT+5:30'},
+          {label: 'UTC+5:45(NPT)', value: 'GMT+5:45'},
+          {label: 'UTC+6(BHT)', value: 'GMT+6'},
+          {label: 'UTC+6:30(MRT)', value: 'GMT+6:30'},
+          {label: 'UTC+7(IST)', value: 'GMT+7'},
+          {label: 'UTC+8(EAT)', value: 'GMT+8'},
+          {label: 'UTC+8:30(KRT)', value: 'GMT+8:30'},
+          {label: 'UTC+9(FET)', value: 'GMT+9'},
+          {label: 'UTC+9:30(ACST)', value: 'GMT+9:30'},
+          {label: 'UTC+10(AEST)', value: 'GMT+10'},
+          {label: 'UTC+10:30(FAST)', value: 'GMT+10:30'},
+          {label: 'UTC+11(VTT)', value: 'GMT+11'},
+          {label: 'UTC+11:30(NFT)', value: 'GMT+11:30'},
+          {label: 'UTC+12(PSTB)', value: 'GMT+12'},
+          {label: 'UTC+12:45(CIT)', value: 'GMT+12:45'},
+          {label: 'UTC+13(PSTC)', value: 'GMT+13'},
+          {label: 'UTC+14(PSTD)', value: 'GMT+14'}
+        ]
 
-    next () {
-      // if (this.active++ > 2) this.active = 0
-      this.active++
-      switch (this.active) {
-        case 0 :
-          // console.log('000')
-          break
-        case 1 :
-          this.bottonDisable.pre = false
-          break
-        case 2 :
-          break
-        case 3 :
-          this.goal_info.config = this.datacForm
-          this.buttonFinish = true
-          // console.info(this.$refs.buttonFinish)
-          break
-        default :
-          // console.log('000')
       }
     },
-    preStey () {
-      // if (this.active-- < 0) this.active = 3
-      this.active--
-      this.buttonFinish = false
-      if (this.active <= 0) {
-        this.bottonDisable.pre = true
-        this.bottonDisable.next = true
-      }
-    },
-    treeNodeClick (data, node) {
-      this.tableData = []
-      if (data.limit === 'children') {
-        // node.data.icon = 'iconfont icon-xitong4'
-        this.chooseEqpment = data
+    methods: {
 
-        // 进行ajax 请求
-        this.hiveTable = 'ods_' + this.chooseEqpment.hbaseTableName.replaceAll('-', '_')
-        // table = this.chooseEqpment.hbaseTableName
-        console.log(this.hiveTable)
-        var info = {
-          db: 'db=bigdatawh',
-          table: 'table=' + this.hiveTable
+      next () {
+        // if (this.active++ > 2) this.active = 0
+        this.active++
+        switch (this.active) {
+          case 0 :
+            // console.log('000')
+            break
+          case 1 :
+            this.bottonDisable.pre = false
+            break
+          case 2 :
+            break
+          case 3 :
+            this.goal_info.config = this.datacForm
+            this.buttonFinish = true
+            // console.info(this.$refs.buttonFinish)
+            break
+          default :
+          // console.log('000')
         }
-        this.$http({
-          url: this.$http.adornUrl('/v1/metadata/hive/table?') + info.db + '&' + info.table,
-          method: 'get'
-        }).then((data) => {
-          if (data.status === 200) {
-            var res = data.data.sd.cols
-            for (const resKey in res) {
-              var table = {
-                colname: res[resKey].name,
-                type: res[resKey].type,
-                comment: res[resKey].comment
-              }
-              this.tableData.push(table)
-            }
-          } else {
-            Message({
-              message: '获取   ' + this.chooseEqpment.name + '   列数据失败',
-              type: 'error'
-            })
-          }
-        })
-        // this.tableData = [{
-        //   colname: 'id',
-        //   type: 'bigint',
-        //   comment: '测试字段1'
-        // }, {
-        //   colname: 'age',
-        //   type: 'int',
-        //   comment: '测试字段2'
-        // }, {
-        //   colname: 'desc',
-        //   type: 'string',
-        //   comment: '测试字段3'
-        // }]
-      }
-    },
-    handleSelectionChange (data) {
-      if (data.length > 0) {
-        this.bottonDisable.next = false
-      } else {
-        this.bottonDisable.next = true
-      }
-      this.goal_info = {
-        equipment: this.chooseEqpment,
-        chooseCloum: data
-      }
-      // chooseCloum.cloum = data
-      var patt = new RegExp('int|double|float/i')
-      if (patt.test(this.type)) {
-        this.isNum = true
-      }
-      for (let da of data) {
-        if (patt.test(da.type)) {
-          da.isNum = true
-          da.dropdownList = this.options_int
-        } else {
-          da.isNum = false
-          da.dropdownList = this.options_str
+      },
+      preStey () {
+        // if (this.active-- < 0) this.active = 3
+        this.active--
+        this.buttonFinish = false
+        if (this.active <= 0) {
+          this.bottonDisable.pre = true
+          this.bottonDisable.next = true
         }
-      }
-    },
-    showrule () {
-      this.isShowRulesDrog = true
-      this.$nextTick(() => {
-        this.$refs.ShowRulesDrogref.init()
-      })
-    },
-    // 向后台提交数据
-    async finallySubmit () {
-      this.loading = true
-      this.newMeasure = {
-        'name': this.goal_info.config.name,
-        'measure.type': 'griffin',
-        'dq.type': 'PROFILING',
-        'rule.description': {
-          'details': this.rulesDesc
-        },
-        'process.type': 'BATCH',
-        'owner': this.userName,
-        'description': this.goal_info.config.description,
-        'data.sources': [
-          {
-            'name': 'source',
-            'connector': {
-              'name': 'source' + new Date().getTime(),
-              'type': 'HIVE',
-              'version': '1.2',
-              'data.unit': this.goal_info.config.num + this.goal_info.config.timetype,
-              'data.time.zone': this.goal_info.config.timezone,
-              'config': {
-                'database': 'bigdatawh',
-                'table.name': this.hiveTable,
-                // 'database': 'default',
-                // 'table.name': 'demo_src',
-                'where': this.goal_info.config.where
+      },
+      treeNodeClick (data, node) {
+        this.tableData = []
+        console.log("这里是treeNodeClick")
+        if (data.limit === 'coal') {
+          // node.data.icon = 'iconfont icon-xitong4'
+          this.chooseEqpment = data
+
+          // 进行ajax 请求
+          this.hiveTable = this.chooseEqpment.hbaseTableName.replaceAll('-', '_')
+          // table = this.chooseEqpment.hbaseTableName
+          console.log(this.hiveTable)
+          var info = {
+            db: 'db=bigdatawh',
+            table: 'table=' + this.hiveTable
+          }
+          console.log("这里是treeNodeClick2222222")
+          this.$http({
+            url: this.$http.adornUrl('/universaltable/getOtherLeafItem?tableId=' + node.data.levelId + '&id=' + node.data.coalid),
+            method: 'get'
+          }).then((data) => {
+            if (data.status === 200) {
+              let res = data.data.data
+              let pinyin = data.data.pinyin
+              for (let i = 0; i < res.length; i++) {
+                var table = {
+                  colname: res[i].name,
+                  type: pinyin[i],
+                  comment: res[i].create_time
+                }
+                this.tableData.push(table)
               }
+            } else {
+              Message({
+                message: '获取   ' + this.chooseEqpment.name + '   列数据失败',
+                type: 'error'
+              })
             }
-          }
-        ],
-        'evaluate.rule': {
-          'out.dataframe.name': 'profiling',
-          rules: []
+          })
+          // this.tableData = [{
+          //   colname: 'id',
+          //   type: 'bigint',
+          //   comment: '测试字段1'
+          // }, {
+          //   colname: 'age',
+          //   type: 'int',
+          //   comment: '测试字段2'
+          // }, {
+          //   colname: 'desc',
+          //   type: 'string',
+          //   comment: '测试字段3'
+          // }]
         }
-      }
-      this.getGrouprule()
-      // console.log(666)
-      // console.log(this.newMeasure)
-      await this.$http({
-        url: this.$http.adornUrl('/v1/measures'),
-        method: 'post',
-        data: this.$http.adornData(this.newMeasure)
-      }).then((datas) => {
-        console.log(datas)
-        if (datas.status === 201) {
-          this.submit = true
+      },
+      handleSelectionChange (data) {
+        if (data.length > 0) {
+          this.bottonDisable.next = false
         } else {
-          this.submit = false
+          this.bottonDisable.next = true
         }
-      })
-    },
-    submitForm () {
-      this.finallySubmit()
-      setTimeout(() => {
-        this.loading = true
-        if (this.submit) {
-          Message({
-            message: '度量标准   ' + this.datacForm.name + '   创建成功',
-            type: 'success'
-          })
-        } else {
-          Message({
-            message: '度量标准   ' + this.datacForm.name + '   创建失败',
-            type: 'error'
-          })
+        this.goal_info = {
+          equipment: this.chooseEqpment,
+          chooseCloum: data
         }
-        this.loading = false
-        this.$router.replace({path: '/snoop-home', query: {'status': '0'}})
-        this.$destroy()
-
-      }, 2 * 1000)
-    },
-    getGrouprule () {
-      var selected = {name: ''}
-      var value = ''
-      var nullvalue = ''
-      var nullname = ''
-      var enmvalue = ''
-      var regexvalue = ''
-      var regexname = ''
-      var grpname = ''
-      for (const key in this.goal_info.chooseCloum) {
-        selected.name = this.goal_info.chooseCloum[key].colname
-        let info = ''
-        let otherinfo = ''
-        for (let i = 0; i < this.goal_info.chooseCloum[key].rule.length; i++) {
-          const originrule = this.goal_info.chooseCloum[key].rule[i]
-          info = info + originrule + ','
-
-          if (originrule === 'Enum Detection Top10 Count') {
-            enmvalue = this.transferRule(originrule, selected)
-            grpname = `${selected.name}_top10count`
-            this.transenumrule.push(enmvalue)
-            this.pushEnmRule(enmvalue, grpname)
-          } else if (originrule === 'Null Count') {
-            nullvalue = this.transferRule(originrule, selected)
-            nullname = `${selected.name}_nullcount`
-            this.transnullrule.push(nullvalue)
-            this.pushNullRule(nullvalue, nullname)
-          } else if (originrule === 'Empty Count') {
-            nullvalue = this.transferRule(originrule, selected)
-            nullname = `${selected.name}_emptycount`
-            this.transnullrule.push(nullvalue)
-            this.pushNullRule(nullvalue, nullname)
-          } else if (originrule === 'Regular Expression Detection Count') {
-            selected['regex'] = ''
-            regexvalue = this.transferRule(originrule, selected)
-            regexname = `${selected.name}_regexcount`
-            this.transregexrule.push(regexvalue)
-            this.pushRegexRule(regexvalue, regexname)
+        // chooseCloum.cloum = data
+        var patt = new RegExp('int|double|float/i')
+        if (patt.test(this.type)) {
+          this.isNum = true
+        }
+        for (let da of data) {
+          if (patt.test(da.type)) {
+            da.isNum = true
+            da.dropdownList = this.options_int
           } else {
-            otherinfo = otherinfo + originrule + ','
-            value = this.transferRule(originrule, selected)
-            this.transrule.push(value)
+            da.isNum = false
+            da.dropdownList = this.options_str
           }
         }
-
-        info = info.substring(0, info.lastIndexOf(','))
-        this.rulesDesc.push({
-          name: this.goal_info.chooseCloum[key].colname,
-          infos: info
+      },
+      showrule () {
+        this.isShowRulesDrog = true
+        this.$nextTick(() => {
+          this.$refs.ShowRulesDrogref.init()
         })
-      }
-      if (this.transrule.length !== 0) {
-        this.getRule(this.transrule)
-      }
-    },
-    getRule (trans) {
-      var rule = ''
-      for (let i of trans) {
-        rule = rule + i + ','
-      }
-      rule = rule.substring(0, rule.lastIndexOf(','))
-      this.pushRule(rule)
-    },
-    pushEnmRule (rule, grpname) {
-      this.newMeasure['evaluate.rule'].rules.push({
-        'dsl.type': 'griffin-dsl',
-        'dq.type': 'PROFILING',
-        rule: rule,
-        'out.dataframe.name': grpname,
-        'out': [
-          {
-            'type': 'metric',
-            'name': grpname,
-            'flatten': 'array'
+      },
+      // 向后台提交数据
+      async finallySubmit () {
+        this.loading = true
+        for (const key in this.goal_info.chooseCloum) {
+          var snoopValueEntity = {
+            measureColumn: this.goal_info.chooseCloum[key].colname,
+            measureType: this.goal_info.chooseCloum[key].rule
           }
-        ]
-      })
-    },
-    pushNullRule (rule, nullname) {
-      this.newMeasure['evaluate.rule'].rules.push({
-        'dsl.type': 'griffin-dsl',
-        'dq.type': 'PROFILING',
-        rule: rule,
-        'out.dataframe.name': nullname
-      })
-    },
+          this.columnRule.push(snoopValueEntity)
+        }
+        this.newMeasure = {
+          'snoopName': this.goal_info.config.name,
+          'hbaseName': this.hiveTable,
+          'remark': this.goal_info.config.description,
+          'snoopValueEntityList': this.columnRule
+          // 'measure.type': 'griffin',
+          // 'dq.type': 'PROFILING',
+          // 'rule.description': {
+          //   'details': this.rulesDesc
+          // },
+          // 'process.type': 'BATCH',
+          // 'owner': this.userName,
+          // 'description': this.goal_info.config.description,
+          // 'data.sources': [
+          //   {
+          //     'name': 'source',
+          //     'connector': {
+          //       'name': 'source' + new Date().getTime(),
+          //       'type': 'HIVE',
+          //       'version': '1.2',
+          //       'data.unit': this.goal_info.config.num + this.goal_info.config.timetype,
+          //       'data.time.zone': this.goal_info.config.timezone,
+          //       'config': {
+          //         'database': 'bigdatawh',
+          //         'table.name': this.hiveTable,
+          //         // 'database': 'default',
+          //         // 'table.name': 'demo_src',
+          //         'where': this.goal_info.config.where
+          //       }
+          //     }
+          //   }
+          // ],
+          // 'evaluate.rule': {
+          //   'out.dataframe.name': 'profiling',
+          //   rules: []
+          // }
+        }
+        // this.getGrouprule()
+        console.log('查看是否进入了目标方法')
+        console.log(this.columnRule)
+        // console.log(this.newMeasure)
+        this.$http({
+          url: this.$http.adornUrl('/snoop/save'),
+          method: 'post',
+          data: this.$http.adornData(this.newMeasure)
+        }).then((datas) => {
+          console.log(datas)
+          if (datas.status === 200) {
+            this.submit = true
+          } else {
+            this.submit = false
+          }
+        })
+      },
+      submitForm () {
+        this.finallySubmit()
+        setTimeout(() => {
+          this.loading = true
+          if (this.submit) {
+            Message({
+              message: '度量标准   ' + this.datacForm.name + '   创建成功',
+              type: 'success'
+            })
+          } else {
+            Message({
+              message: '度量标准   ' + this.datacForm.name + '   创建失败',
+              type: 'error'
+            })
+          }
+          this.loading = false
+          this.$router.replace({path: '/snoop-home', query: {'status': '0'}})
+          this.$destroy()
 
-    pushRegexRule (rule, nullname) {
-      this.newMeasure['evaluate.rule'].rules.push({
-        'dsl.type': 'griffin-dsl',
-        'dq.type': 'PROFILING',
-        rule: rule,
-        'out.dataframe.name': nullname
-      })
-    },
+        }, 2 * 1000)
+      },
+      getGrouprule () {
+        var selected = {name: ''}
+        var value = ''
+        var nullvalue = ''
+        var nullname = ''
+        var enmvalue = ''
+        var regexvalue = ''
+        var regexname = ''
+        var grpname = ''
+        for (const key in this.goal_info.chooseCloum) {
+          selected.name = this.goal_info.chooseCloum[key].colname
+          let info = ''
+          let otherinfo = ''
+          for (let i = 0; i < this.goal_info.chooseCloum[key].rule.length; i++) {
+            const originrule = this.goal_info.chooseCloum[key].rule[i]
+            info = info + originrule + ','
 
-    pushRule (rule) {
-      this.newMeasure['evaluate.rule'].rules.push({
-        'dsl.type': 'griffin-dsl',
-        'dq.type': 'PROFILING',
-        rule: rule,
-        name: 'profiling'
-      })
-    },
-    transferRule (rule, col) {
-      switch (rule) {
-        case 'Total Count':
-          return (
-            `count(source.${col.name}) AS \`${col.name}_count\``
-          )
-        case 'Distinct Count':
-          return (
-            `approx_count_distinct(source.${col.name}) AS \`${col.name}_distcount\``
-          )
-        case 'Null Count':
-          return (
-            `count(source.${col.name}) AS \`${col.name}_nullcount\` WHERE source.${col.name} IS NULL`
-          )
-        case 'Maximum':
-          return (
-            `max(source.${col.name}) AS \`${col.name}_max\``
-          )
-        case 'Minimum':
-          return (
-            `min(source.${col.name}) AS \`${col.name}_min\``
-          )
-        case 'Average':
-          return (
-            `avg(source.${col.name}) AS \`${col.name}_average\``
-          )
-        case 'Empty Count':
-          return (
-            `count(source.${col.name}) AS \`${col.name}_emptycount\` WHERE source.${col.name} = ''`
-          )
-        case 'Regular Expression Detection Count':
-          return (
-            `count(source.${col.name}) AS \`${col.name}_regexcount\` WHERE source.${col.name} RLIKE '^[0-9]{4}$'`
-          )
-        case 'Enum Detection Top10 Count':
-          return (
-            `source.${col.name} AS ${col.name}, count(*) AS count GROUP BY source.${col.name} ORDER BY count DESC LIMIT 10`
-          )
-      }
-    },
-    getCoal (resolve) {
-      var coalData = {
-        userID: this.userID
-      }
-      let coalAll = []
-      this.$http({
-        url: this.$http.adornUrl('/dataset/tree/getcoal'),
-        method: 'post',
-        data: this.$http.adornData(coalData, false)
-      }).then(({data}) => {
-        const coalContent = data.info
-        for (let sign = 0; sign < coalContent.length; sign++) {
-          var coal = {
-            name: coalContent[sign].name,
-            coalid: coalContent[sign].id,
-            limit: 'coal',
-            hbaseTableName: '',
-            icon: 'iconfont icon-xitongfuwu',
-            leaf: false
+            if (originrule === 'Enum Detection Top10 Count') {
+              enmvalue = this.transferRule(originrule, selected)
+              grpname = `${selected.name}_top10count`
+              this.transenumrule.push(enmvalue)
+              this.pushEnmRule(enmvalue, grpname)
+            } else if (originrule === 'Null Count') {
+              nullvalue = this.transferRule(originrule, selected)
+              nullname = `${selected.name}_nullcount`
+              this.transnullrule.push(nullvalue)
+              this.pushNullRule(nullvalue, nullname)
+            } else if (originrule === 'Empty Count') {
+              nullvalue = this.transferRule(originrule, selected)
+              nullname = `${selected.name}_emptycount`
+              this.transnullrule.push(nullvalue)
+              this.pushNullRule(nullvalue, nullname)
+            } else if (originrule === 'Regular Expression Detection Count') {
+              selected['regex'] = ''
+              regexvalue = this.transferRule(originrule, selected)
+              regexname = `${selected.name}_regexcount`
+              this.transregexrule.push(regexvalue)
+              this.pushRegexRule(regexvalue, regexname)
+            } else {
+              otherinfo = otherinfo + originrule + ','
+              value = this.transferRule(originrule, selected)
+              this.transrule.push(value)
+            }
           }
-          coalAll.push(coal)
+
+          info = info.substring(0, info.lastIndexOf(','))
+          this.rulesDesc.push({
+            name: this.goal_info.chooseCloum[key].colname,
+            infos: info
+          })
         }
-        return resolve(coalAll)
-        // console.log('***************')
-        // console.log(coalAll)
-      })
-    },
-    getSystem (coalId, resolve) {
-      var coalData = {
-        userID: this.userID,
-        coalid: coalId
-      }
-      this.$http({
-        url: this.$http.adornUrl('/dataset/tree/getfisystem'),
-        method: 'post',
-        data: this.$http.adornData(coalData, false)
-      }).then(systemRespond => {
-        let systemAll = []
-        const systemContent = systemRespond.data
-        for (let i = 0; i < systemContent.length; i++) {
-          var system = {
-            name: systemContent[i].name,
-            systemid: systemContent[i].id,
-            limit: 'system',
-            icon: 'icon iconfont icon-xitongfuwu',
-            hbaseTableName: '',
-            leaf: false
-          }
-          systemAll.push(system)
+        if (this.transrule.length !== 0) {
+          this.getRule(this.transrule)
         }
-        return resolve(systemAll)
-      })
-    },
-    getSubSystem (systemid, resolve) {
-      const systemData = {
-        systemid: systemid,
-        userID: this.userID
-      }
-      this.$http({
-        url: this.$http.adornUrl('/dataset/tree/getsubSystem'),
-        method: 'post',
-        data: this.$http.adornData(systemData, false)
-      }).then(subrespond => {
-        let subSystemAll = []
-        let subSystemContent = subrespond.data
+      },
+      getRule (trans) {
+        var rule = ''
+        for (let i of trans) {
+          rule = rule + i + ','
+        }
+        rule = rule.substring(0, rule.lastIndexOf(','))
+        this.pushRule(rule)
+      },
+      pushEnmRule (rule, grpname) {
+        this.newMeasure['evaluate.rule'].rules.push({
+          'dsl.type': 'griffin-dsl',
+          'dq.type': 'PROFILING',
+          rule: rule,
+          'out.dataframe.name': grpname,
+          'out': [
+            {
+              'type': 'metric',
+              'name': grpname,
+              'flatten': 'array'
+            }
+          ]
+        })
+      },
+      pushNullRule (rule, nullname) {
+        this.newMeasure['evaluate.rule'].rules.push({
+          'dsl.type': 'griffin-dsl',
+          'dq.type': 'PROFILING',
+          rule: rule,
+          'out.dataframe.name': nullname
+        })
+      },
 
-        for (let j = 0; j < subSystemContent.length; j++) {
-          var subSystem = {
-            name: subSystemContent[j].name,
-            subSustemid: subSystemContent[j].id,
-            limit: 'subSystem',
-            icon: 'iconfont icon-xitongfuwu',
-            leaf: false
-          }
-          subSystemAll.push(subSystem)
+      pushRegexRule (rule, nullname) {
+        this.newMeasure['evaluate.rule'].rules.push({
+          'dsl.type': 'griffin-dsl',
+          'dq.type': 'PROFILING',
+          rule: rule,
+          'out.dataframe.name': nullname
+        })
+      },
+
+      pushRule (rule) {
+        this.newMeasure['evaluate.rule'].rules.push({
+          'dsl.type': 'griffin-dsl',
+          'dq.type': 'PROFILING',
+          rule: rule,
+          name: 'profiling'
+        })
+      },
+      transferRule (rule, col) {
+        switch (rule) {
+          case 'Total Count':
+            return (
+              `count(source.${col.name}) AS \`${col.name}_count\``
+            )
+          case 'Distinct Count':
+            return (
+              `approx_count_distinct(source.${col.name}) AS \`${col.name}_distcount\``
+            )
+          case 'Null Count':
+            return (
+              `count(source.${col.name}) AS \`${col.name}_nullcount\` WHERE source.${col.name} IS NULL`
+            )
+          case 'Maximum':
+            return (
+              `max(source.${col.name}) AS \`${col.name}_max\``
+            )
+          case 'Minimum':
+            return (
+              `min(source.${col.name}) AS \`${col.name}_min\``
+            )
+          case 'Average':
+            return (
+              `avg(source.${col.name}) AS \`${col.name}_average\``
+            )
+          case 'Empty Count':
+            return (
+              `count(source.${col.name}) AS \`${col.name}_emptycount\` WHERE source.${col.name} = ''`
+            )
+          case 'Regular Expression Detection Count':
+            return (
+              `count(source.${col.name}) AS \`${col.name}_regexcount\` WHERE source.${col.name} RLIKE '^[0-9]{4}$'`
+            )
+          case 'Enum Detection Top10 Count':
+            return (
+              `source.${col.name} AS ${col.name}, count(*) AS count GROUP BY source.${col.name} ORDER BY count DESC LIMIT 10`
+            )
         }
-        return resolve(subSystemAll)
-      })
-    },
-    getEquipment (subSustemid, resolve) {
-      const subSystemData = {
-        subSystemid: subSustemid,
-        userID: this.userID
-      }
-      this.$http({
-        url: this.$http.adornUrl('/dataset/tree/getequipment'),
-        method: 'post',
-        data: this.$http.adornData(subSystemData, false)
-      }).then(eqprespond => {
-        let equipmentAll = []
-        const eqpSystemContent = eqprespond.data
-        if (eqpSystemContent.length !== 0) {
-          for (let k = 0; k < eqpSystemContent.length; k++) {
-            var equipment = {
-              name: eqpSystemContent[k].name,
-              equipmentid: eqpSystemContent[k].id,
-              limit: 'equipment',
-              hbaseTableName: '',
-              icon: 'iconfont icon-xitongfuwu',
-              leaf: false
+      },
+      loadTreeNode (node, resolve) {
+        let coalAll = []
+        console.log('loadTreeNode')
+        if (node.level === 0) {
+          this.$http({
+            url: this.$http.adornUrl('/levelManage/projectattributes/getAllProject'),
+            method: 'post'
+          }).then(({data}) => {
+            console.log('后端返回的项目信息:' + JSON.stringify(data))
+            if (!(data && data.code === 0)) {
+              Message.error(data.msg)
+            } else {
+              let coalContent = data.data
+              for (let sign = 0; sign < coalContent.length; sign++) {
+                var coal = {
+                  name: coalContent[sign].name,
+                  coalid: coalContent[sign].id,
+                  limit: 'coal',
+                  hbaseTableName: '',
+                  icon: 'iconfont icon-xitongfuwu',
+                  leaf: false
+                }
+                if (data.data[sign].disabled === 0) {
+                  coal.isdisabled = 1
+                } else {
+                  coal.isdisabled = 0
+                }
+                coal.treeNodeDeep = 1
+                coalAll.push(coal)
+              }
             }
-            equipmentAll.push(equipment)
+            console.log(coalAll)
+            return resolve(coalAll)
+          })
+        }
+        if (node.level === 1) {
+          if (node.data.isdisabled === 1) return resolve([])
+          else {
+            this.$http({
+              url: this.$http.adornUrl('/universaltable/getRootLevel?id=' + node.data.coalid),
+              method: 'post'
+            }).then(({data}) => {
+              console.log('第二层非叶子节点信息:' + JSON.stringify(data))
+              let data1 = []
+              let coalContent = data.data
+              for (let j = 0; j < coalContent.length; j++) {
+                let coal = {
+                  name: coalContent[j].name,
+                  coalid: coalContent[j].id,
+                  limit: 'coal',
+                  hbaseTableName: coalContent[j].hbaseTableName,
+                  icon: 'icon iconfont icon-xitongfuwu',
+                  // leaf: true,
+                  levelId: data.levelId,
+                  flag: 'subEquipment'
+                }
+                coal.treeNodeDeep = 2
+                data1.push(coal)
+              }
+              return resolve(data1)
+            })
           }
         }
-        return resolve(equipmentAll)
-      })
-    },
-    getSubEquipment (equipmentid, resolve) {
-      const equimentData = {
-        userID: this.userID,
-        equipment: equipmentid
-      }
-      this.$http({
-        url: this.$http.adornUrl('/dataset/tree/getsubequipment'),
-        method: 'post',
-        data: this.$http.adornData(equimentData, false)
-      }).then(subEqpRespond => {
-        let subEquimentAll = []
-        const subEqpSystemContent = subEqpRespond.data
-        for (let m = 0; m < subEqpSystemContent.length; m++) {
-          var subEquiment = {
-            name: subEqpSystemContent[m].name,
-            subEquipmentid: subEqpSystemContent[m].id,
-            hbaseTableName: subEqpSystemContent[m].hbaseTableName,
-            limit: 'children',
-            icon: 'iconfont icon-xitong3',
-            leaf: true
+        if (node.level > 1) {
+          for (let i = 2; i < 50; i++) {
+            if (node.level === i) {
+              this.$http({
+                url: this.$http.adornUrl('/universaltable/getSonLevel?tableId=' + node.data.levelId + '&id=' + node.data.coalid),
+                method: 'post'
+              }).then(({data}) => {
+                console.log('第三次非叶子节点信息:' + JSON.stringify(data.data))
+                let data2 = []
+                let coalContent = data.data
+                for (let j = 0; j < coalContent.length; j++) {
+                  let coal = {
+                    name: coalContent[j].name,
+                    coalid: coalContent[j].id,
+                    limit: 'coal',
+                    hbaseTableName: coalContent[j].hbaseTableName,
+                    icon: 'icon iconfont icon-xitongfuwu',
+                    // leaf: true,
+                    levelId: data.levelId,
+                    flag: 'subEquipment'
+                  }
+                  coal.treeNodeDeep = i + 1
+                  data2.push(coal)
+                }
+                return resolve(data2)
+              })
+            }
           }
-          subEquimentAll.push(subEquiment)
         }
-        return resolve(subEquimentAll)
-      })
-    },
-    // 左侧树的懒加载 五层结构
-    loadTreeNode (node, resolve) {
-      if (node.level === 0) {
-        this.getCoal(resolve)
-      } else if (node.level === 1) {
-        this.getSystem(node.data.coalid, resolve)
-      } else if (node.level === 2) {
-        this.getSubSystem(node.data.systemid, resolve)
-      } else if (node.level === 3) {
-        this.getEquipment(node.data.subSustemid, resolve)
-      } else {
-        this.getSubEquipment(node.data.equipmentid, resolve)
       }
-    }
-    // // 左侧树的懒加载 三层结构
-    // loadTreeNode (node, resolve) {
-    //   if (node.level === 0) {
-    //     this.getSubSystem(resolve)
-    //   } else if (node.level === 1) {
-    //     this.getEquipment(node.data.subSustemid, resolve)
-    //   } else {
-    //     this.getSubEquipment(node.data.equipmentid, resolve)
-    //   }
-    // }
-  },
-  watch: {
-    chooseEqpment (newVal, oldVal) {
-      if (oldVal.hasOwnProperty('icon')) {
-        oldVal.icon = 'iconfont icon-xitong3'
+      // getCoal (resolve) {
+      //   var coalData = {
+      //     userID: this.userID
+      //   }
+      //   let coalAll = []
+      //   this.$http({
+      //     url: this.$http.adornUrl('/dataset/tree/getcoal'),
+      //     method: 'post',
+      //     data: this.$http.adornData(coalData, false)
+      //   }).then(({data}) => {
+      //     const coalContent = data.info
+      //     for (let sign = 0; sign < coalContent.length; sign++) {
+      //       var coal = {
+      //         name: coalContent[sign].name,
+      //         coalid: coalContent[sign].id,
+      //         limit: 'coal',
+      //         hbaseTableName: '',
+      //         icon: 'iconfont icon-xitongfuwu',
+      //         leaf: false
+      //       }
+      //       coalAll.push(coal)
+      //     }
+      //     return resolve(coalAll)
+      //     // console.log('***************')
+      //     // console.log(coalAll)
+      //   })
+      // },
+      // getSystem (coalId, resolve) {
+      //   var coalData = {
+      //     userID: this.userID,
+      //     coalid: coalId
+      //   }
+      //   this.$http({
+      //     url: this.$http.adornUrl('/dataset/tree/getfisystem'),
+      //     method: 'post',
+      //     data: this.$http.adornData(coalData, false)
+      //   }).then(systemRespond => {
+      //     let systemAll = []
+      //     const systemContent = systemRespond.data
+      //     for (let i = 0; i < systemContent.length; i++) {
+      //       var system = {
+      //         name: systemContent[i].name,
+      //         systemid: systemContent[i].id,
+      //         limit: 'system',
+      //         icon: 'icon iconfont icon-xitongfuwu',
+      //         hbaseTableName: '',
+      //         leaf: false
+      //       }
+      //       systemAll.push(system)
+      //     }
+      //     return resolve(systemAll)
+      //   })
+      // },
+      // getSubSystem (systemid, resolve) {
+      //   const systemData = {
+      //     systemid: systemid,
+      //     userID: this.userID
+      //   }
+      //   this.$http({
+      //     url: this.$http.adornUrl('/dataset/tree/getsubSystem'),
+      //     method: 'post',
+      //     data: this.$http.adornData(systemData, false)
+      //   }).then(subrespond => {
+      //     let subSystemAll = []
+      //     let subSystemContent = subrespond.data
+      //
+      //     for (let j = 0; j < subSystemContent.length; j++) {
+      //       var subSystem = {
+      //         name: subSystemContent[j].name,
+      //         subSustemid: subSystemContent[j].id,
+      //         limit: 'subSystem',
+      //         icon: 'iconfont icon-xitongfuwu',
+      //         leaf: false
+      //       }
+      //       subSystemAll.push(subSystem)
+      //     }
+      //     return resolve(subSystemAll)
+      //   })
+      // },
+      // getEquipment (subSustemid, resolve) {
+      //   const subSystemData = {
+      //     subSystemid: subSustemid,
+      //     userID: this.userID
+      //   }
+      //   this.$http({
+      //     url: this.$http.adornUrl('/dataset/tree/getequipment'),
+      //     method: 'post',
+      //     data: this.$http.adornData(subSystemData, false)
+      //   }).then(eqprespond => {
+      //     let equipmentAll = []
+      //     const eqpSystemContent = eqprespond.data
+      //     if (eqpSystemContent.length !== 0) {
+      //       for (let k = 0; k < eqpSystemContent.length; k++) {
+      //         var equipment = {
+      //           name: eqpSystemContent[k].name,
+      //           equipmentid: eqpSystemContent[k].id,
+      //           limit: 'equipment',
+      //           hbaseTableName: '',
+      //           icon: 'iconfont icon-xitongfuwu',
+      //           leaf: false
+      //         }
+      //         equipmentAll.push(equipment)
+      //       }
+      //     }
+      //     return resolve(equipmentAll)
+      //   })
+      // },
+      // getSubEquipment (equipmentid, resolve) {
+      //   const equimentData = {
+      //     userID: this.userID,
+      //     equipment: equipmentid
+      //   }
+      //   this.$http({
+      //     url: this.$http.adornUrl('/dataset/tree/getsubequipment'),
+      //     method: 'post',
+      //     data: this.$http.adornData(equimentData, false)
+      //   }).then(subEqpRespond => {
+      //     let subEquimentAll = []
+      //     const subEqpSystemContent = subEqpRespond.data
+      //     for (let m = 0; m < subEqpSystemContent.length; m++) {
+      //       var subEquiment = {
+      //         name: subEqpSystemContent[m].name,
+      //         subEquipmentid: subEqpSystemContent[m].id,
+      //         hbaseTableName: subEqpSystemContent[m].hbaseTableName,
+      //         limit: 'children',
+      //         icon: 'iconfont icon-xitong3',
+      //         leaf: true
+      //       }
+      //       subEquimentAll.push(subEquiment)
+      //     }
+      //     return resolve(subEquimentAll)
+      //   })
+      // },
+      // // 左侧树的懒加载 五层结构
+      // loadTreeNode (node, resolve) {
+      //   if (node.level === 0) {
+      //     this.getCoal(resolve)
+      //   } else if (node.level === 1) {
+      //     this.getSystem(node.data.coalid, resolve)
+      //   } else if (node.level === 2) {
+      //     this.getSubSystem(node.data.systemid, resolve)
+      //   } else if (node.level === 3) {
+      //     this.getEquipment(node.data.subSustemid, resolve)
+      //   } else {
+      //     this.getSubEquipment(node.data.equipmentid, resolve)
+      //   }
+      // }
+      // // 左侧树的懒加载 三层结构
+      // loadTreeNode (node, resolve) {
+      //   if (node.level === 0) {
+      //     this.getSubSystem(resolve)
+      //   } else if (node.level === 1) {
+      //     this.getEquipment(node.data.subSustemid, resolve)
+      //   } else {
+      //     this.getSubEquipment(node.data.equipmentid, resolve)
+      //   }
+      // }
+    },
+    watch: {
+      chooseEqpment (newVal, oldVal) {
+        if (oldVal.hasOwnProperty('icon')) {
+          oldVal.icon = 'iconfont icon-xitong3'
+        }
+        newVal.icon = 'iconfont icon-xitong4'
       }
-      newVal.icon = 'iconfont icon-xitong4'
     }
   }
-}
 </script>
 <style scoped>
-.divi {
-  display: block;
-  height: 1px;
-  width: 100%;
-  margin: 24px 0;
-  background-color: #dcdfe6;
-  position: relative;
-}
+  .divi {
+    display: block;
+    height: 1px;
+    width: 100%;
+    margin: 24px 0;
+    background-color: #dcdfe6;
+    position: relative;
+  }
 
-.divi2 {
-  display: block;
-  height: 1px;
-  width: 100%;
-  position: relative;
-}
+  .divi2 {
+    display: block;
+    height: 1px;
+    width: 100%;
+    position: relative;
+  }
 
-.showRules {
-  color: #409eff
-}
+  .showRules {
+    color: #409eff
+  }
 </style>

+ 86 - 53
src/views/modules/snoop/measureUserWatch.vue

@@ -3,49 +3,59 @@
 
 
 
-  <el-dialog :title="'查看度量'" :close-on-click-modal="false" :visible.sync="visible">
+  <el-dialog :title="'度量结果'" :close-on-click-modal="false" :visible.sync="visible" :before-close="handleClose">
+    <el-table
+      :data="snoopValueAll"
+      style="width: 100%">
+      <el-table-column
+        prop="measureColumn"
+        label="字段名"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="measureType"
+        label="探查类型"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="measureValue"
+        label="探查结果">
+      </el-table-column>
+    </el-table>
+<!--    <el-form  :model="snoopValueAll" label-width="100px"  v-loading="measDataListLoading"  style="word-break: break-word">-->
+<!--      <el-form-item label="度量名称 :" prop="name">-->
+<!--                          <el-input v-model="goal_info.config.name"></el-input>-->
+<!--&lt;!&ndash;        <span>{{ snoopValueAll[0].measureType  }}</span>&ndash;&gt;-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="度量描述 :">-->
+<!--        <span>{{ snoopValueAll[0].measureValue }}</span>-->
+<!--        &lt;!&ndash;                  <el-input v-model="goal_info.config.description"></el-input>&ndash;&gt;-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="数据源 :">-->
+<!--        <span>{{ snoopValueAll[0].measureColumn }}</span>-->
+<!--        &lt;!&ndash;                  <el-input v-model="goal_info.equipment.name"></el-input>&ndash;&gt;-->
+<!--      </el-form-item>-->
+<!--      &lt;!&ndash;                <el-form-item label="查询条件 :">&ndash;&gt;-->
+<!--      &lt;!&ndash;                  <span>{{goal_info.config.where}}</span>&ndash;&gt;-->
+<!--      &lt;!&ndash;&lt;!&ndash;                  <el-input v-model="goal_info.config.where"></el-input>&ndash;&gt;&ndash;&gt;-->
+<!--      &lt;!&ndash;                </el-form-item>&ndash;&gt;-->
+<!--&lt;!&ndash;      <el-form-item label="分区信息 :">&ndash;&gt;-->
+<!--&lt;!&ndash;        <span>{{snoopValueAll[0].partition}}</span>&ndash;&gt;-->
+<!--&lt;!&ndash;        &lt;!&ndash;                                  <el-input v-model="goal_info.config.num" >{{goal_info.config.num + goal_info.config.timetype}}</el-input>&ndash;&gt;&ndash;&gt;-->
+<!--&lt;!&ndash;        &lt;!&ndash;                                  <el-input v-model="goal_info.config.timezone"></el-input>&ndash;&gt;&ndash;&gt;-->
+<!--&lt;!&ndash;      </el-form-item>&ndash;&gt;-->
+<!--      <el-form-item label="度量规则 :">-->
+<!--          <template v-for="rule in  goal_info.Cloum">-->
+<!--            <li>{{ rule.name }} : {{ rule.infos }}</li>-->
+<!--          </template>-->
+<!--      </el-form-item>-->
+<!--    </el-form>-->
 
-    <el-form  :model="goal_info" label-width="100px"  v-loading="measDataListLoading"  style="word-break: break-word">
-      <el-form-item label="度量名称 :" prop="name">
-        <!--                  <el-input v-model="goal_info.config.name"></el-input>-->
-        <span>{{ goal_info.name  }}</span>
-      </el-form-item>
-      <el-form-item label="度量描述 :">
-        <span>{{ goal_info.description }}</span>
-        <!--                  <el-input v-model="goal_info.config.description"></el-input>-->
-      </el-form-item>
-      <el-form-item label="数据源 :">
-        <span>{{ goal_info.dataSources }}</span>
-        <!--                  <el-input v-model="goal_info.equipment.name"></el-input>-->
-      </el-form-item>
-      <!--                <el-form-item label="查询条件 :">-->
-      <!--                  <span>{{goal_info.config.where}}</span>-->
-      <!--&lt;!&ndash;                  <el-input v-model="goal_info.config.where"></el-input>&ndash;&gt;-->
-      <!--                </el-form-item>-->
-      <el-form-item label="分区信息 :">
-        <span>{{goal_info.partition}}</span>
-        <!--                                  <el-input v-model="goal_info.config.num" >{{goal_info.config.num + goal_info.config.timetype}}</el-input>-->
-        <!--                                  <el-input v-model="goal_info.config.timezone"></el-input>-->
-      </el-form-item>
-      <el-form-item label="度量规则 :">
-        <!--                  <el-input-number v-model="datacForm.num" controls-position="right" :min="0"></el-input-number>-->
-<!--        <div style="height: 100px;overflow: auto">-->
-          <template v-for="rule in  goal_info.Cloum">
-            <li>{{ rule.name }} : {{ rule.infos }}</li>
-          </template>
 
-<!--          &lt;!&ndash;    <template v-for="rule in  timezones" >&ndash;&gt;-->
-<!--          &lt;!&ndash;      <li>{{rule.label}} : {{rule.value}}</li>&ndash;&gt;-->
-<!--          &lt;!&ndash;    </template>&ndash;&gt;-->
-<!--        </div>-->
-      </el-form-item>
-    </el-form>
-
-
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
-      <el-button type="primary" @click="visible=false">确定</el-button>
-    </span>
+<!--    <span slot="footer" class="dialog-footer">-->
+<!--      <el-button @click="visible = false">取消</el-button>-->
+<!--      <el-button type="primary" @click="visible=false">确定</el-button>-->
+<!--    </span>-->
   </el-dialog>
 
 </div>
@@ -58,7 +68,8 @@ export default {
     return {
       goal_info: {},
       visible: false,
-      measDataListLoading: false
+      measDataListLoading: false,
+      snoopValueAll: []
     }
   },
   methods: {
@@ -68,23 +79,45 @@ export default {
       // console.info(info)
       this.getMeasureListById(info.measureID)
     },
+    handleClose(done) {
+      this.$confirm('确认关闭?')
+        .then(_ => {
+          done();
+          this.snoopValueAll = []
+        })
+        .catch(_ => {});
+
+    },
     getMeasureListById (id) {
       this.measDataListLoading = true
       this.classificationtag = null
       this.$http({
-        url: this.$http.adornUrl('/v1/measures/') + id,
-        methods: 'get'
+        url: this.$http.adornUrl('/snoopvalue/selectBySnoopId'),
+        methods: 'get',
+        params: this.$http.adornParams({
+          snoopId: id
+        })
       }).then((data) => {
-        if (data && data.status === 200) {
-          var info = data.data
-          this.goal_info.name = info.name
-          this.goal_info.description = info.description
-          var dataScore = info['data.sources'][0].connector.config
-          this.goal_info.dataSources = dataScore.database + '  : ' + dataScore['table.name']
-          this.goal_info.partition = info['data.sources'][0].connector['data.unit']
-          this.goal_info.Cloum = info['rule.description'].details
+        console.log(data)
+        if (data && data.data.code === 0) {
+          var res = data.data.snoopvaluelist
+          for (let i = 0; i < res.length; i++) {
+            var snoopValue = {
+              measureType: res[i].measureType,
+              measureValue: res[i].measureValue,
+              measureColumn: res[i].measureColumn
+            }
+            this.snoopValueAll.push(snoopValue)
+          }
+          // var info = data.data
+          // this.goal_info.name = info.name
+          // this.goal_info.description = info.description
+          // var dataScore = info['data.sources'][0].connector.config
+          // this.goal_info.dataSources = dataScore.database + '  : ' + dataScore['table.name']
+          // this.goal_info.partition = info['data.sources'][0].connector['data.unit']
+          // this.goal_info.Cloum = info['rule.description'].details
         }
-        // console.log(this.goal_info)
+        console.log('snoopValueAll', this.snoopValueAll)
         this.measDataListLoading = false
       })
     }

+ 2 - 2
src/views/modules/snoop/snoop-add.vue

@@ -4,8 +4,8 @@
       label-width="100px">
       <el-form-item label="步骤" size="mini">
         <el-radio-group v-model="datasetStatus">
-          <el-radio :label="1">1.创建度量标准</el-radio>
-          <el-radio :label="2">2.创建任务</el-radio>
+          <el-radio :label="1">创建度量标准</el-radio>
+<!--          <el-radio :label="2">2.创建任务</el-radio>-->
         </el-radio-group>
       </el-form-item>
     </el-form>